You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by tj...@apache.org on 2014/07/24 15:55:50 UTC
svn commit: r1613136 [2/2] - in /aries/branches/subsystemsR6: ./ blueprint/
blueprint/blueprint-authz/ blueprint/blueprint-bundle/
blueprint/blueprint-compatibility/ blueprint/blueprint-core/
blueprint/blueprint-core/src/main/java/org/apache/aries/blue...
Modified: aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/CountingEntityManagerFactory.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/CountingEntityManagerFactory.java?rev=1613136&r1=1613135&r2=1613136&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/CountingEntityManagerFactory.java (original)
+++ aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/CountingEntityManagerFactory.java Thu Jul 24 13:55:49 2014
@@ -18,15 +18,11 @@
*/
package org.apache.aries.jpa.container.impl;
-
import java.util.Map;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.AtomicReference;
-import javax.persistence.Cache;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.PersistenceUnitUtil;
+import javax.persistence.*;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.metamodel.Metamodel;
@@ -39,94 +35,123 @@ import org.osgi.framework.ServiceRegistr
* so that it can be quiesced
*/
public class CountingEntityManagerFactory implements EntityManagerFactory, DestroyCallback {
- /** Number of open EntityManagers */
- private final AtomicLong count = new AtomicLong(0);
- /** The real EMF */
- private final EntityManagerFactory delegate;
- /** The name of this unit */
- private final String name;
- /** A quiesce callback to call */
- private final AtomicReference<NamedCallback> callback = new AtomicReference<NamedCallback>();
- /** The service registration to unregister if we can quiesce */
- private final AtomicReference<ServiceRegistration> reg = new AtomicReference<ServiceRegistration>();
-
-
- public CountingEntityManagerFactory(
- EntityManagerFactory containerEntityManagerFactory, String name) {
- delegate = containerEntityManagerFactory;
- this.name = name;
- }
-
- public void close() {
- delegate.close();
- }
-
- public EntityManager createEntityManager() {
- EntityManager em = delegate.createEntityManager();
- count.incrementAndGet();
- return new EntityManagerWrapper(em, this);
- }
-
- public EntityManager createEntityManager(Map arg0) {
- EntityManager em = delegate.createEntityManager(arg0);
- count.incrementAndGet();
- return new EntityManagerWrapper(em, this);
- }
-
- public Cache getCache() {
- return delegate.getCache();
- }
-
- public CriteriaBuilder getCriteriaBuilder() {
- return delegate.getCriteriaBuilder();
- }
-
- public Metamodel getMetamodel() {
- return delegate.getMetamodel();
- }
-
- public PersistenceUnitUtil getPersistenceUnitUtil() {
- return delegate.getPersistenceUnitUtil();
- }
-
- public Map<String, Object> getProperties() {
- return delegate.getProperties();
- }
-
- public boolean isOpen() {
- return delegate.isOpen();
- }
-
- public void quiesce(NamedCallback callback, ServiceRegistration reg) {
- this.reg.compareAndSet(null, reg);
- this.callback.compareAndSet(null, callback);
- if(count.get() == 0) {
- AriesFrameworkUtil.safeUnregisterService(this.reg.getAndSet(null));
- this.callback.set(null);
- callback.callback(name);
- }
- }
-
- public void callback() {
-
- if(count.decrementAndGet() == 0) {
- NamedCallback c = callback.getAndSet(null);
- if(c != null) {
- AriesFrameworkUtil.safeUnregisterService(reg.getAndSet(null));
- c.callback(name);
- }
- }
-
- }
-
- public void clearQuiesce() {
- //We will already be unregistered
- reg.set(null);
- NamedCallback c = callback.getAndSet(null);
- //If there was a callback then call it in case time hasn't run out.
- if(c != null) {
- c.callback(name);
+
+ /**
+ * Number of open EntityManagers
+ */
+ private final AtomicLong count = new AtomicLong(0);
+ /**
+ * The real EMF
+ */
+ private final EntityManagerFactory delegate;
+ /**
+ * The name of this unit
+ */
+ private final String name;
+ /**
+ * A quiesce callback to call
+ */
+ private final AtomicReference<NamedCallback> callback = new AtomicReference<NamedCallback>();
+ /**
+ * The service registration to unregister if we can quiesce
+ */
+ private final AtomicReference<ServiceRegistration> reg = new AtomicReference<ServiceRegistration>();
+
+
+ public CountingEntityManagerFactory(
+ EntityManagerFactory containerEntityManagerFactory, String name) {
+ delegate = containerEntityManagerFactory;
+ this.name = name;
+ }
+
+ public void close() {
+ delegate.close();
+ }
+
+ public EntityManager createEntityManager() {
+ EntityManager em = delegate.createEntityManager();
+ count.incrementAndGet();
+ return new EntityManagerWrapper(em, this);
+ }
+
+ public EntityManager createEntityManager(Map arg0) {
+ EntityManager em = delegate.createEntityManager(arg0);
+ count.incrementAndGet();
+ return new EntityManagerWrapper(em, this);
+ }
+
+ public Cache getCache() {
+ return delegate.getCache();
+ }
+
+ public CriteriaBuilder getCriteriaBuilder() {
+ return delegate.getCriteriaBuilder();
+ }
+
+ public Metamodel getMetamodel() {
+ return delegate.getMetamodel();
+ }
+
+ public PersistenceUnitUtil getPersistenceUnitUtil() {
+ return delegate.getPersistenceUnitUtil();
+ }
+
+ public Map<String, Object> getProperties() {
+ return delegate.getProperties();
+ }
+
+ public boolean isOpen() {
+ return delegate.isOpen();
+ }
+
+ public void quiesce(NamedCallback callback, ServiceRegistration reg) {
+ this.reg.compareAndSet(null, reg);
+ this.callback.compareAndSet(null, callback);
+ if (count.get() == 0) {
+ AriesFrameworkUtil.safeUnregisterService(this.reg.getAndSet(null));
+ this.callback.set(null);
+ callback.callback(name);
+ }
+ }
+
+ public void callback() {
+ if (count.decrementAndGet() == 0) {
+ NamedCallback c = callback.getAndSet(null);
+ if (c != null) {
+ AriesFrameworkUtil.safeUnregisterService(reg.getAndSet(null));
+ c.callback(name);
+ }
+ }
+ }
+
+ public void clearQuiesce() {
+ //We will already be unregistered
+ reg.set(null);
+ NamedCallback c = callback.getAndSet(null);
+ //If there was a callback then call it in case time hasn't run out.
+ if (c != null) {
+ c.callback(name);
+ }
+ }
+
+ public <T> void addNamedEntityGraph(String arg0, EntityGraph<T> arg1) {
+ delegate.addNamedEntityGraph(arg0, arg1);
+ }
+
+ public void addNamedQuery(String arg0, Query arg1) {
+ delegate.addNamedQuery(arg0, arg1);
+ }
+
+ public EntityManager createEntityManager(SynchronizationType arg0) {
+ return delegate.createEntityManager(arg0);
+ }
+
+ public EntityManager createEntityManager(SynchronizationType arg0, Map arg1) {
+ return delegate.createEntityManager(arg0, arg1);
+ }
+
+ public <T> T unwrap(Class<T> arg0) {
+ return delegate.unwrap(arg0);
}
- }
}
Modified: aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerWrapper.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerWrapper.java?rev=1613136&r1=1613135&r2=1613136&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerWrapper.java (original)
+++ aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/EntityManagerWrapper.java Thu Jul 24 13:55:49 2014
@@ -18,194 +18,238 @@
*/
package org.apache.aries.jpa.container.impl;
+import java.util.List;
import java.util.Map;
-import javax.persistence.EntityManager;
-import javax.persistence.EntityManagerFactory;
-import javax.persistence.EntityTransaction;
-import javax.persistence.FlushModeType;
-import javax.persistence.LockModeType;
-import javax.persistence.Query;
-import javax.persistence.TypedQuery;
+import javax.persistence.*;
import javax.persistence.criteria.CriteriaBuilder;
+import javax.persistence.criteria.CriteriaDelete;
import javax.persistence.criteria.CriteriaQuery;
+import javax.persistence.criteria.CriteriaUpdate;
import javax.persistence.metamodel.Metamodel;
/**
* Wrapper an EntityManager so that we know when it has been closed
*/
public class EntityManagerWrapper implements EntityManager {
-
- private final EntityManager delegate;
- /** Call this when the EntityManager is closed */
- private final DestroyCallback callback;
-
- public EntityManagerWrapper(EntityManager em, DestroyCallback callback) {
- delegate = em;
- this.callback = callback;
- }
-
- public void clear() {
- delegate.clear();
- }
-
- public void close() {
- delegate.close();
- //This will only ever be called once, the second time there
- //will be an IllegalStateException from the line above
- callback.callback();
- }
-
- public boolean contains(Object arg0) {
- return delegate.contains(arg0);
- }
-
- public <T> TypedQuery<T> createNamedQuery(String arg0, Class<T> arg1) {
- return delegate.createNamedQuery(arg0, arg1);
- }
-
- public Query createNamedQuery(String arg0) {
- return delegate.createNamedQuery(arg0);
- }
-
- public Query createNativeQuery(String arg0, Class arg1) {
- return delegate.createNativeQuery(arg0, arg1);
- }
-
- public Query createNativeQuery(String arg0, String arg1) {
- return delegate.createNativeQuery(arg0, arg1);
- }
-
- public Query createNativeQuery(String arg0) {
- return delegate.createNativeQuery(arg0);
- }
-
- public <T> TypedQuery<T> createQuery(CriteriaQuery<T> arg0) {
- return delegate.createQuery(arg0);
- }
-
- public <T> TypedQuery<T> createQuery(String arg0, Class<T> arg1) {
- return delegate.createQuery(arg0, arg1);
- }
-
- public Query createQuery(String arg0) {
- return delegate.createQuery(arg0);
- }
-
- public void detach(Object arg0) {
- delegate.detach(arg0);
- }
-
- public <T> T find(Class<T> arg0, Object arg1, LockModeType arg2,
- Map<String, Object> arg3) {
- return delegate.find(arg0, arg1, arg2, arg3);
- }
-
- public <T> T find(Class<T> arg0, Object arg1, LockModeType arg2) {
- return delegate.find(arg0, arg1, arg2);
- }
-
- public <T> T find(Class<T> arg0, Object arg1, Map<String, Object> arg2) {
- return delegate.find(arg0, arg1, arg2);
- }
-
- public <T> T find(Class<T> arg0, Object arg1) {
- return delegate.find(arg0, arg1);
- }
-
- public void flush() {
- delegate.flush();
- }
-
- public CriteriaBuilder getCriteriaBuilder() {
- return delegate.getCriteriaBuilder();
- }
-
- public Object getDelegate() {
- return delegate.getDelegate();
- }
-
- public EntityManagerFactory getEntityManagerFactory() {
- return delegate.getEntityManagerFactory();
- }
-
- public FlushModeType getFlushMode() {
- return delegate.getFlushMode();
- }
-
- public LockModeType getLockMode(Object arg0) {
- return delegate.getLockMode(arg0);
- }
-
- public Metamodel getMetamodel() {
- return delegate.getMetamodel();
- }
-
- public Map<String, Object> getProperties() {
- return delegate.getProperties();
- }
-
- public <T> T getReference(Class<T> arg0, Object arg1) {
- return delegate.getReference(arg0, arg1);
- }
-
- public EntityTransaction getTransaction() {
- return delegate.getTransaction();
- }
-
- public boolean isOpen() {
- return delegate.isOpen();
- }
-
- public void joinTransaction() {
- delegate.joinTransaction();
- }
-
- public void lock(Object arg0, LockModeType arg1, Map<String, Object> arg2) {
- delegate.lock(arg0, arg1, arg2);
- }
-
- public void lock(Object arg0, LockModeType arg1) {
- delegate.lock(arg0, arg1);
- }
-
- public <T> T merge(T arg0) {
- return delegate.merge(arg0);
- }
-
- public void persist(Object arg0) {
- delegate.persist(arg0);
- }
-
- public void refresh(Object arg0, LockModeType arg1, Map<String, Object> arg2) {
- delegate.refresh(arg0, arg1, arg2);
- }
-
- public void refresh(Object arg0, LockModeType arg1) {
- delegate.refresh(arg0, arg1);
- }
-
- public void refresh(Object arg0, Map<String, Object> arg1) {
- delegate.refresh(arg0, arg1);
- }
-
- public void refresh(Object arg0) {
- delegate.refresh(arg0);
- }
-
- public void remove(Object arg0) {
- delegate.remove(arg0);
- }
-
- public void setFlushMode(FlushModeType arg0) {
- delegate.setFlushMode(arg0);
- }
-
- public void setProperty(String arg0, Object arg1) {
- delegate.setProperty(arg0, arg1);
- }
-
- public <T> T unwrap(Class<T> arg0) {
- return delegate.unwrap(arg0);
- }
+
+ private final EntityManager delegate;
+ /**
+ * Call this when the EntityManager is closed
+ */
+ private final DestroyCallback callback;
+
+ public EntityManagerWrapper(EntityManager em, DestroyCallback callback) {
+ delegate = em;
+ this.callback = callback;
+ }
+
+ public void clear() {
+ delegate.clear();
+ }
+
+ public void close() {
+ delegate.close();
+ //This will only ever be called once, the second time there
+ //will be an IllegalStateException from the line above
+ callback.callback();
+ }
+
+ public boolean contains(Object arg0) {
+ return delegate.contains(arg0);
+ }
+
+ public <T> TypedQuery<T> createNamedQuery(String arg0, Class<T> arg1) {
+ return delegate.createNamedQuery(arg0, arg1);
+ }
+
+ public Query createNamedQuery(String arg0) {
+ return delegate.createNamedQuery(arg0);
+ }
+
+ public StoredProcedureQuery createNamedStoredProcedureQuery(String arg0) {
+ return delegate.createNamedStoredProcedureQuery(arg0);
+ }
+
+ public StoredProcedureQuery createStoredProcedureQuery(String arg0) {
+ return delegate.createStoredProcedureQuery(arg0);
+ }
+
+ public StoredProcedureQuery createStoredProcedureQuery(String arg0, Class ... arg1) {
+ return delegate.createStoredProcedureQuery(arg0, arg1);
+ }
+
+ public StoredProcedureQuery createStoredProcedureQuery(String arg0, String ... arg1) {
+ return delegate.createStoredProcedureQuery(arg0, arg1);
+ }
+
+ public Query createNativeQuery(String arg0, Class arg1) {
+ return delegate.createNativeQuery(arg0, arg1);
+ }
+
+ public Query createNativeQuery(String arg0, String arg1) {
+ return delegate.createNativeQuery(arg0, arg1);
+ }
+
+ public Query createNativeQuery(String arg0) {
+ return delegate.createNativeQuery(arg0);
+ }
+
+ public <T> TypedQuery<T> createQuery(CriteriaQuery<T> arg0) {
+ return delegate.createQuery(arg0);
+ }
+
+ public <T> TypedQuery<T> createQuery(String arg0, Class<T> arg1) {
+ return delegate.createQuery(arg0, arg1);
+ }
+
+ public Query createQuery(String arg0) {
+ return delegate.createQuery(arg0);
+ }
+
+ public Query createQuery(CriteriaUpdate arg0) {
+ return delegate.createQuery(arg0);
+ }
+
+ public Query createQuery(CriteriaDelete arg0) {
+ return delegate.createQuery(arg0);
+ }
+
+ public void detach(Object arg0) {
+ delegate.detach(arg0);
+ }
+
+ public <T> T find(Class<T> arg0, Object arg1, LockModeType arg2,
+ Map<String, Object> arg3) {
+ return delegate.find(arg0, arg1, arg2, arg3);
+ }
+
+ public <T> T find(Class<T> arg0, Object arg1, LockModeType arg2) {
+ return delegate.find(arg0, arg1, arg2);
+ }
+
+ public <T> T find(Class<T> arg0, Object arg1, Map<String, Object> arg2) {
+ return delegate.find(arg0, arg1, arg2);
+ }
+
+ public <T> T find(Class<T> arg0, Object arg1) {
+ return delegate.find(arg0, arg1);
+ }
+
+ public void flush() {
+ delegate.flush();
+ }
+
+ public CriteriaBuilder getCriteriaBuilder() {
+ return delegate.getCriteriaBuilder();
+ }
+
+ public Object getDelegate() {
+ return delegate.getDelegate();
+ }
+
+ public EntityManagerFactory getEntityManagerFactory() {
+ return delegate.getEntityManagerFactory();
+ }
+
+ public FlushModeType getFlushMode() {
+ return delegate.getFlushMode();
+ }
+
+ public LockModeType getLockMode(Object arg0) {
+ return delegate.getLockMode(arg0);
+ }
+
+ public Metamodel getMetamodel() {
+ return delegate.getMetamodel();
+ }
+
+ public Map<String, Object> getProperties() {
+ return delegate.getProperties();
+ }
+
+ public <T> T getReference(Class<T> arg0, Object arg1) {
+ return delegate.getReference(arg0, arg1);
+ }
+
+ public EntityTransaction getTransaction() {
+ return delegate.getTransaction();
+ }
+
+ public boolean isOpen() {
+ return delegate.isOpen();
+ }
+
+ public void joinTransaction() {
+ delegate.joinTransaction();
+ }
+
+ public boolean isJoinedToTransaction() {
+ return delegate.isJoinedToTransaction();
+ }
+
+ public void lock(Object arg0, LockModeType arg1, Map<String, Object> arg2) {
+ delegate.lock(arg0, arg1, arg2);
+ }
+
+ public void lock(Object arg0, LockModeType arg1) {
+ delegate.lock(arg0, arg1);
+ }
+
+ public <T> T merge(T arg0) {
+ return delegate.merge(arg0);
+ }
+
+ public void persist(Object arg0) {
+ delegate.persist(arg0);
+ }
+
+ public void refresh(Object arg0, LockModeType arg1, Map<String, Object> arg2) {
+ delegate.refresh(arg0, arg1, arg2);
+ }
+
+ public void refresh(Object arg0, LockModeType arg1) {
+ delegate.refresh(arg0, arg1);
+ }
+
+ public void refresh(Object arg0, Map<String, Object> arg1) {
+ delegate.refresh(arg0, arg1);
+ }
+
+ public void refresh(Object arg0) {
+ delegate.refresh(arg0);
+ }
+
+ public void remove(Object arg0) {
+ delegate.remove(arg0);
+ }
+
+ public void setFlushMode(FlushModeType arg0) {
+ delegate.setFlushMode(arg0);
+ }
+
+ public void setProperty(String arg0, Object arg1) {
+ delegate.setProperty(arg0, arg1);
+ }
+
+ public <T> T unwrap(Class<T> arg0) {
+ return delegate.unwrap(arg0);
+ }
+
+ public <T> EntityGraph<T> createEntityGraph(Class<T> arg0) {
+ return delegate.createEntityGraph(arg0);
+ }
+
+ public EntityGraph<?> createEntityGraph(String arg0) {
+ return delegate.createEntityGraph(arg0);
+ }
+
+ public EntityGraph<?> getEntityGraph(String arg0) {
+ return delegate.getEntityGraph(arg0);
+ }
+
+ public <T> List<EntityGraph<? super T>> getEntityGraphs(Class<T> arg0) {
+ return delegate.getEntityGraphs(arg0);
+ }
+
}
Modified: aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/PersistenceBundleManager.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/PersistenceBundleManager.java?rev=1613136&r1=1613135&r2=1613136&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/PersistenceBundleManager.java (original)
+++ aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/impl/PersistenceBundleManager.java Thu Jul 24 13:55:49 2014
@@ -20,6 +20,8 @@
package org.apache.aries.jpa.container.impl;
import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
@@ -485,7 +487,26 @@ public class PersistenceBundleManager im
boolean maxExclusive = false;
for(VersionRange range : versionRanges) {
- int minComparison = minVersion.compareTo(range.getMinimumVersion());
+ int minComparison = 0;
+ try {
+ minComparison = minVersion.compareTo(range.getMinimumVersion());
+ } catch (Exception t) {
+ // this is to catch a NoSuchMethodException that occurs due to a building against a newer version of OSGi than
+ // the one run with, need to call using Object version of method
+ try {
+ Method m = minVersion.getClass().getMethod("compareTo", Object.class);
+ Object ret = m.invoke(minVersion, range.getMinimumVersion());
+ minComparison = ((Integer) ret).intValue();
+ } catch (NoSuchMethodException e) {
+ throw new RuntimeException("PersistenceBundleManager.combineVersionRanges reflection compareTo failed",e);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException("PersistenceBundleManager.combineVersionRanges reflection compareTo failed",e);
+ } catch (IllegalArgumentException e) {
+ throw new RuntimeException("PersistenceBundleManager.combineVersionRanges reflection compareTo failed",e);
+ } catch (InvocationTargetException e) {
+ throw new RuntimeException("PersistenceBundleManager.combineVersionRanges reflection compareTo failed",e);
+ }
+ }
//If minVersion is smaller then we have a new, larger, minimum
if(minComparison < 0) {
minVersion = range.getMinimumVersion();
Modified: aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoFactoryImpl.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoFactoryImpl.java?rev=1613136&r1=1613135&r2=1613136&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoFactoryImpl.java (original)
+++ aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/unit/impl/ManagedPersistenceUnitInfoFactoryImpl.java Thu Jul 24 13:55:49 2014
@@ -57,7 +57,7 @@ public class ManagedPersistenceUnitInfoF
public void destroyPersistenceBundle(BundleContext containerContext, Bundle bundle) {
Collection<ManagedPersistenceUnitInfoImpl> mpus = persistenceUnits.remove(bundle);
if(mpus == null)
- throw new IllegalStateException(NLS.MESSAGES.getMessage("no.persistence.units.for.bundle", bundle.getSymbolicName(), bundle.getVersion()));
+ return; // already destroyed
for(ManagedPersistenceUnitInfoImpl impl : mpus) {
impl.destroy();
}
Modified: aries/branches/subsystemsR6/proxy/proxy-bundle/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/proxy/proxy-bundle/pom.xml?rev=1613136&r1=1613135&r2=1613136&view=diff
==============================================================================
--- aries/branches/subsystemsR6/proxy/proxy-bundle/pom.xml (original)
+++ aries/branches/subsystemsR6/proxy/proxy-bundle/pom.xml Thu Jul 24 13:55:49 2014
@@ -73,13 +73,13 @@
<dependency>
<groupId>org.apache.aries.proxy</groupId>
<artifactId>org.apache.aries.proxy.api</artifactId>
- <version>1.0.1-SNAPSHOT</version>
+ <version>1.0.2-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.aries.proxy</groupId>
<artifactId>org.apache.aries.proxy.impl</artifactId>
- <version>1.0.3-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: aries/branches/subsystemsR6/proxy/proxy-itests/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/proxy/proxy-itests/pom.xml?rev=1613136&r1=1613135&r2=1613136&view=diff
==============================================================================
--- aries/branches/subsystemsR6/proxy/proxy-itests/pom.xml (original)
+++ aries/branches/subsystemsR6/proxy/proxy-itests/pom.xml Thu Jul 24 13:55:49 2014
@@ -69,13 +69,13 @@
<groupId>org.apache.aries.proxy</groupId>
<artifactId>org.apache.aries.proxy.api</artifactId>
<scope>test</scope>
- <version>1.0.1-SNAPSHOT</version>
+ <version>1.0.2-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.aries.proxy</groupId>
<artifactId>org.apache.aries.proxy.impl</artifactId>
<scope>test</scope>
- <version>1.0.3-SNAPSHOT</version>
+ <version>1.0.4-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.aries</groupId>
Modified: aries/branches/subsystemsR6/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResourceUninstaller.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResourceUninstaller.java?rev=1613136&r1=1613135&r2=1613136&view=diff
==============================================================================
--- aries/branches/subsystemsR6/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResourceUninstaller.java (original)
+++ aries/branches/subsystemsR6/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/SubsystemResourceUninstaller.java Thu Jul 24 13:55:49 2014
@@ -66,10 +66,16 @@ public class SubsystemResourceUninstalle
private void removeReferences() {
if (!isExplicit()) {
removeReference();
- return;
}
- for (Subsystem subsystem : ((BasicSubsystem)resource).getParents())
- removeReference((BasicSubsystem)subsystem, (BasicSubsystem)resource);
+ else {
+ for (Subsystem subsystem : ((BasicSubsystem)resource).getParents())
+ removeReference((BasicSubsystem)subsystem, (BasicSubsystem)resource);
+ Subsystems subsystems = Activator.getInstance().getSubsystems();
+ // for explicit uninstall remove all references to subsystem.
+ for (BasicSubsystem s : subsystems.getSubsystemsReferencing(resource)) {
+ removeReference(s, resource);
+ }
+ }
}
private void removeSubsystem() {
Modified: aries/branches/subsystemsR6/transaction/transaction-itests/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/transaction/transaction-itests/pom.xml?rev=1613136&r1=1613135&r2=1613136&view=diff
==============================================================================
--- aries/branches/subsystemsR6/transaction/transaction-itests/pom.xml (original)
+++ aries/branches/subsystemsR6/transaction/transaction-itests/pom.xml Thu Jul 24 13:55:49 2014
@@ -60,7 +60,7 @@
<groupId>org.apache.aries.proxy</groupId>
<artifactId>org.apache.aries.proxy.impl</artifactId>
<scope>test</scope>
- <version>1.0.3-SNAPSHOT</version>
+ <version>1.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.aries.transaction</groupId>