You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ace.apache.org by ma...@apache.org on 2013/07/25 09:32:12 UTC
svn commit: r1506833 - in /ace/trunk:
org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/
org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/impl/
run-server-allinone/
Author: marrs
Date: Thu Jul 25 07:32:11 2013
New Revision: 1506833
URL: http://svn.apache.org/r1506833
Log:
ACE-397 Bugfixes that fix events that were sent asynchronously whilst being used internally, and an event that was sent a bit too early (before changes to the superclass were processed. Also did some source cleanup.
Modified:
ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/AssociationRepositoryImpl.java
ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/ObjectRepositoryImpl.java
ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/RepositoryAdminImpl.java
ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/impl/StatefulTargetObjectImpl.java
ace/trunk/run-server-allinone/server-allinone.bndrun
Modified: ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/AssociationRepositoryImpl.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/AssociationRepositoryImpl.java?rev=1506833&r1=1506832&r2=1506833&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/AssociationRepositoryImpl.java (original)
+++ ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/AssociationRepositoryImpl.java Thu Jul 25 07:32:11 2013
@@ -107,8 +107,8 @@ public abstract class AssociationReposit
@Override
public void remove(T entity) {
synchronized (m_lock) {
- super.remove(entity);
entity.remove();
+ super.remove(entity);
}
}
}
Modified: ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/ObjectRepositoryImpl.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/ObjectRepositoryImpl.java?rev=1506833&r1=1506832&r2=1506833&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/ObjectRepositoryImpl.java (original)
+++ ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/ObjectRepositoryImpl.java Thu Jul 25 07:32:11 2013
@@ -128,7 +128,7 @@ abstract class ObjectRepositoryImpl<I ex
*/
@SuppressWarnings("unchecked")
void removeAll() {
- synchronized(m_repo) {
+ synchronized (m_repo) {
for (T object : m_repo) {
((I) object).setDeleted();
}
Modified: ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/RepositoryAdminImpl.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/RepositoryAdminImpl.java?rev=1506833&r1=1506832&r2=1506833&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/RepositoryAdminImpl.java (original)
+++ ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/impl/RepositoryAdminImpl.java Thu Jul 25 07:32:11 2013
@@ -473,7 +473,7 @@ public class RepositoryAdminImpl impleme
String[] topics = new String[rsd.m_objectRepositories.length];
for (int j = 0; j < impls.length; j++) {
impls[j] = m_repositories.get(rsd.m_objectRepositories[j]);
- topics[j] = impls[j].getTopicAll(true);
+ topics[j] = impls[j].getTopicAll(false);
}
result[i] = loadRepositorySet(context.getUser(), rsd, impls);
Modified: ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/impl/StatefulTargetObjectImpl.java
URL: http://svn.apache.org/viewvc/ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/impl/StatefulTargetObjectImpl.java?rev=1506833&r1=1506832&r2=1506833&view=diff
==============================================================================
--- ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/impl/StatefulTargetObjectImpl.java (original)
+++ ace/trunk/org.apache.ace.client.repository/src/org/apache/ace/client/repository/stateful/impl/StatefulTargetObjectImpl.java Thu Jul 25 07:32:11 2013
@@ -35,9 +35,9 @@ import org.apache.ace.client.repository.
import org.apache.ace.client.repository.object.ArtifactObject;
import org.apache.ace.client.repository.object.DeploymentArtifact;
import org.apache.ace.client.repository.object.DeploymentVersionObject;
-import org.apache.ace.client.repository.object.TargetObject;
import org.apache.ace.client.repository.object.Distribution2TargetAssociation;
import org.apache.ace.client.repository.object.DistributionObject;
+import org.apache.ace.client.repository.object.TargetObject;
import org.apache.ace.client.repository.stateful.StatefulTargetObject;
import org.apache.ace.log.AuditEvent;
import org.apache.ace.log.LogDescriptor;
@@ -46,7 +46,7 @@ import org.apache.ace.log.LogEvent;
/**
* A <code>StatefulTargetObjectImpl</code> uses the interface of a <code>StatefulTargetObject</code>,
* but delegates most of its calls to either an embedded <code>TargetObject</code>, or to its
- * parent <code>StatefulTargetRepository</code>. Once created, it will handle its own lifecycle
+ * parent <code>StatefulTargetRepository</code>. Once created, it will handle its own life cycle
* and remove itself once is existence is no longer necessary.
*/
public class StatefulTargetObjectImpl implements StatefulTargetObject {
@@ -55,7 +55,7 @@ public class StatefulTargetObjectImpl im
private TargetObject m_targetObject;
private List<LogDescriptor> m_processedAuditEvents = new ArrayList<LogDescriptor>();
private Map<String, String> m_attributes = new HashMap<String, String>();
- /** This boolean is used to suppress STATUS_CHANGED events during the creation of the object.*/
+ /** This boolean is used to suppress STATUS_CHANGED events during the creation of the object. */
private boolean m_inConstructor = true;
/**
@@ -104,20 +104,20 @@ public class StatefulTargetObjectImpl im
}
public boolean isRegistered() {
- synchronized(m_lock) {
+ synchronized (m_lock) {
return (m_targetObject != null);
}
}
public TargetObject getTargetObject() {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject;
}
}
public DeploymentArtifact[] getArtifactsFromDeployment() {
- synchronized(m_lock) {
+ synchronized (m_lock) {
DeploymentVersionObject mostRecentDeploymentVersion = m_repository.getMostRecentDeploymentVersion(getID());
if (mostRecentDeploymentVersion != null) {
return mostRecentDeploymentVersion.getDeploymentArtifacts();
@@ -131,19 +131,19 @@ public class StatefulTargetObjectImpl im
}
public boolean getLastInstallSuccess() {
- synchronized(m_lock) {
+ synchronized (m_lock) {
return Boolean.parseBoolean(getStatusAttribute(KEY_LAST_INSTALL_SUCCESS));
}
}
public String getLastInstallVersion() {
- synchronized(m_lock) {
+ synchronized (m_lock) {
return getStatusAttribute(KEY_LAST_INSTALL_VERSION);
}
}
public void acknowledgeInstallVersion(String version) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
addStatusAttribute(KEY_ACKNOWLEDGED_INSTALL_VERSION, version);
if (version.equals(getStatusAttribute(KEY_LAST_INSTALL_VERSION))) {
setProvisioningState(ProvisioningState.Idle);
@@ -182,7 +182,7 @@ public class StatefulTargetObjectImpl im
* reasons for existence.
*/
void updateTargetObject(boolean needsVerify) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
m_targetObject = m_repository.getTargetObject(getID());
determineRegistrationState();
if (needsVerify) {
@@ -198,7 +198,7 @@ public class StatefulTargetObjectImpl im
* reasons for existence.
*/
void updateAuditEvents(boolean needsVerify) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
determineProvisioningState();
if (needsVerify) {
verifyExistence();
@@ -211,7 +211,7 @@ public class StatefulTargetObjectImpl im
* to the targetID this object manages.
*/
void updateDeploymentVersions(DeploymentVersionObject deploymentVersionObject) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
determineProvisioningState();
determineStoreState(deploymentVersionObject);
}
@@ -230,7 +230,7 @@ public class StatefulTargetObjectImpl im
}
private void determineRegistrationState() {
- synchronized(m_lock) {
+ synchronized (m_lock) {
if (!isRegistered()) {
setRegistrationState(RegistrationState.Unregistered);
}
@@ -261,6 +261,8 @@ public class StatefulTargetObjectImpl im
return;
}
+ // TODO in the artifacts we get from the shop, there seem to be some duplicates
+ // which does not influence the algorithm below, but we might want to optimize this
for (ArtifactObject ao : artifactsFromShop) {
fromShop.add(ao.getURL());
}
@@ -298,7 +300,7 @@ public class StatefulTargetObjectImpl im
* will be stored, and also sets the state to OK or Failed, unless the version we found has already been
* acknowledged, the the state is set to Idle. Also, if there is no information whatsoever, we assume Idle.
*/
- synchronized(m_lock) {
+ synchronized (m_lock) {
List<LogDescriptor> allDescriptors = m_repository.getAllDescriptors(getID());
List<LogDescriptor> newDescriptors = m_repository.diffLogDescriptorLists(allDescriptors, m_processedAuditEvents);
@@ -307,7 +309,6 @@ public class StatefulTargetObjectImpl im
LogEvent event = newEvents.get(position);
// TODO we need to check here if the deployment package is actually the right one
-
String currentVersion = (String) event.getProperties().get(AuditEvent.KEY_VERSION);
if (event.getType() == AuditEvent.DEPLOYMENTCONTROL_INSTALL) {
addStatusAttribute(KEY_LAST_INSTALL_VERSION, currentVersion);
@@ -448,10 +449,6 @@ public class StatefulTargetObjectImpl im
return m_attributes.get(key);
}
- /* ******************
- * Delegates to TargetObject
- */
-
public String getID() {
return getStatusAttribute(KEY_ID);
}
@@ -461,42 +458,42 @@ public class StatefulTargetObjectImpl im
}
public List<Distribution2TargetAssociation> getAssociationsWith(DistributionObject distribution) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject.getAssociationsWith(distribution);
}
}
public List<DistributionObject> getDistributions() {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject.getDistributions();
}
}
public String addAttribute(String key, String value) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject.addAttribute(key, value);
}
}
public String removeAttribute(String key) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject.removeAttribute(key);
}
}
public String addTag(String key, String value) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject.addTag(key, value);
}
}
public String removeTag(String key) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject.removeTag(key);
}
@@ -504,7 +501,7 @@ public class StatefulTargetObjectImpl im
public String getAttribute(String key) {
// retrieve from both
- synchronized(m_lock) {
+ synchronized (m_lock) {
if (Arrays.binarySearch(KEYS_ALL, key) >= 0) {
return getStatusAttribute(key);
}
@@ -514,7 +511,7 @@ public class StatefulTargetObjectImpl im
}
public Enumeration<String> getAttributeKeys() {
- synchronized(m_lock) {
+ synchronized (m_lock) {
List<String> statusKeys = new ArrayList<String>();
for (String s : KEYS_ALL) {
statusKeys.add(s);
@@ -529,27 +526,27 @@ public class StatefulTargetObjectImpl im
public Dictionary<String, Object> getDictionary() {
// build our own dictionary
- synchronized(m_lock) {
+ synchronized (m_lock) {
return new StatefulTargetObjectDictionary();
}
}
public String getTag(String key) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject.getTag(key);
}
}
public Enumeration<String> getTagKeys() {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject.getTagKeys();
}
}
public boolean getAutoApprove() {
- synchronized(m_lock) {
+ synchronized (m_lock) {
if (m_targetObject != null) {
return m_targetObject.getAutoApprove();
}
@@ -561,7 +558,7 @@ public class StatefulTargetObjectImpl im
}
public void setAutoApprove(boolean approve) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
m_targetObject.setAutoApprove(approve);
}
@@ -569,14 +566,14 @@ public class StatefulTargetObjectImpl im
@SuppressWarnings("unchecked")
public <T extends Associatable> void add(Association association, Class<T> clazz) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
m_targetObject.add(association, clazz);
}
}
public <T extends Associatable> List<T> getAssociations(Class<T> clazz) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject.getAssociations(clazz);
}
@@ -584,14 +581,14 @@ public class StatefulTargetObjectImpl im
@SuppressWarnings("unchecked")
public <T extends Associatable, A extends Association> List<A> getAssociationsWith(Associatable other, Class<T> clazz, Class<A> associationType) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject.getAssociationsWith(other, clazz, associationType);
}
}
public <T extends Associatable> boolean isAssociated(Object obj, Class<T> clazz) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
return m_targetObject.isAssociated(obj, clazz);
}
@@ -599,7 +596,7 @@ public class StatefulTargetObjectImpl im
@SuppressWarnings("unchecked")
public <T extends Associatable> void remove(Association association, Class<T> clazz) {
- synchronized(m_lock) {
+ synchronized (m_lock) {
ensureTargetPresent();
m_targetObject.remove(association, clazz);
}
@@ -741,14 +738,14 @@ public class StatefulTargetObjectImpl im
return Integer.MAX_VALUE;
}
- @SuppressWarnings("unchecked")
+ @SuppressWarnings("rawtypes")
public Comparator getComparator() {
return null;
}
@Override
public String toString() {
- return "StatefulTargetObjectImpl[" + getStatusAttribute(KEY_ID) + " " + getRegistrationState() + " " + getStoreState() + " " + getProvisioningState() + "]";
+ return "StatefulTargetObjectImpl[" + getStatusAttribute(KEY_ID) + " R: " + getRegistrationState() + " A: " + getApprovalState() + " S: " + getStoreState() + " P: " + getProvisioningState() + "]";
}
public void resetApprovalState() {
Modified: ace/trunk/run-server-allinone/server-allinone.bndrun
URL: http://svn.apache.org/viewvc/ace/trunk/run-server-allinone/server-allinone.bndrun?rev=1506833&r1=1506832&r2=1506833&view=diff
==============================================================================
--- ace/trunk/run-server-allinone/server-allinone.bndrun (original)
+++ ace/trunk/run-server-allinone/server-allinone.bndrun Thu Jul 25 07:32:11 2013
@@ -73,3 +73,4 @@
org.apache.felix.log.maxSize=1000,\
launch.keep=true,\
launch.storage.dir=bundle-cache
+-runvm: -Xmx1G
\ No newline at end of file