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 2015/06/09 17:33:26 UTC
svn commit: r1684451 [3/4] - in /aries/branches/subsystemsR6: ./
application/application-itests/
application/application-itests/src/test/java/org/apache/aries/application/runtime/itests/
async/ blueprint/blueprint-authz/ blueprint/blueprint-authz/src/m...
Modified: aries/branches/subsystemsR6/jmx/jmx-core/src/main/java/org/apache/aries/jmx/agent/JMXAgentImpl.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jmx/jmx-core/src/main/java/org/apache/aries/jmx/agent/JMXAgentImpl.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jmx/jmx-core/src/main/java/org/apache/aries/jmx/agent/JMXAgentImpl.java (original)
+++ aries/branches/subsystemsR6/jmx/jmx-core/src/main/java/org/apache/aries/jmx/agent/JMXAgentImpl.java Tue Jun 9 15:33:24 2015
@@ -18,8 +18,10 @@ package org.apache.aries.jmx.agent;
import java.util.ArrayList;
import java.util.HashMap;
+import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.management.InstanceAlreadyExistsException;
import javax.management.InstanceNotFoundException;
@@ -62,7 +64,7 @@ public class JMXAgentImpl implements JMX
/**
* {@link MBeanHandler} store.
*/
- private List<MBeanServer> mbeanServers;
+ private Map<MBeanServer, Boolean> mbeanServers;
private Map<MBeanHandler, Boolean> mbeansHandlers;
private BundleContext context;
private Logger logger;
@@ -75,8 +77,8 @@ public class JMXAgentImpl implements JMX
public JMXAgentImpl(BundleContext context, Logger logger) {
this.context = context;
this.logger = logger;
- this.mbeanServers = new ArrayList<MBeanServer>();
- this.mbeansHandlers = new HashMap<MBeanHandler, Boolean>();
+ this.mbeanServers = new IdentityHashMap<MBeanServer, Boolean>();
+ this.mbeansHandlers = new IdentityHashMap<MBeanHandler, Boolean>();
}
/**
@@ -146,7 +148,7 @@ public class JMXAgentImpl implements JMX
}
}
}
- mbeanServers.add(server);
+ mbeanServers.put(server, Boolean.TRUE);
}
/**
@@ -155,25 +157,24 @@ public class JMXAgentImpl implements JMX
public synchronized void unregisterMBeans(final MBeanServer server) {
for (MBeanHandler mBeanHandler : mbeansHandlers.keySet()) {
if (mbeansHandlers.get(mBeanHandler) == Boolean.TRUE) {
- try
- {
- String name = mBeanHandler.getName();
- StandardMBean mbean = mBeanHandler.getMbean();
- if (mbean != null) {
- logger.log(LogService.LOG_INFO, "Unregistering " + mbean.getMBeanInterface().getName()
- + " to MBeanServer " + server + " with name " + name);
- server.unregisterMBean(new ObjectName(name));
- }
+ try {
+ String name = mBeanHandler.getName();
+ StandardMBean mbean = mBeanHandler.getMbean();
+ if (mbean != null) {
+ logger.log(LogService.LOG_INFO, "Unregistering " + mbean.getMBeanInterface().getName()
+ + " to MBeanServer " + server + " with name " + name);
+ server.unregisterMBean(new ObjectName(name));
+ }
} catch (MBeanRegistrationException e) {
- logger.log(LogService.LOG_ERROR, "Can't unregister MBean", e);
+ logger.log(LogService.LOG_ERROR, "Can't unregister MBean", e);
} catch (InstanceNotFoundException e) {
- logger.log(LogService.LOG_ERROR, "MBean doesn't exist in the repository", e);
+ logger.log(LogService.LOG_ERROR, "MBean doesn't exist in the repository", e);
} catch (MalformedObjectNameException e) {
- logger.log(LogService.LOG_ERROR, "Try to unregister with no valid objectname", e);
+ logger.log(LogService.LOG_ERROR, "Try to unregister with no valid objectname", e);
} catch (NullPointerException e) {
- logger.log(LogService.LOG_ERROR, "Name of objectname can't be null ", e);
+ logger.log(LogService.LOG_ERROR, "Name of objectname can't be null ", e);
} catch (Exception e) {
- logger.log(LogService.LOG_ERROR, "Cannot unregister MBean: " + mBeanHandler, e);
+ logger.log(LogService.LOG_ERROR, "Cannot unregister MBean: " + mBeanHandler, e);
}
}
}
@@ -184,7 +185,7 @@ public class JMXAgentImpl implements JMX
* @see org.apache.aries.jmx.agent.JMXAgent#registerMBean(org.apache.aries.jmx.MBeanHandler)
*/
public synchronized void registerMBean(final MBeanHandler mBeanHandler) {
- for (MBeanServer server : mbeanServers) {
+ for (MBeanServer server : mbeanServers.keySet()) {
String name = mBeanHandler.getName();
StandardMBean mbean = mBeanHandler.getMbean();
try {
@@ -214,7 +215,7 @@ public class JMXAgentImpl implements JMX
* @see org.apache.aries.jmx.agent.JMXAgent#unregisterMBean(org.apache.aries.jmx.MBeanHandler)
*/
public synchronized void unregisterMBean(final MBeanHandler mBeanHandler) {
- for (MBeanServer server : mbeanServers) {
+ for (MBeanServer server : mbeanServers.keySet()) {
String name = mBeanHandler.getName();
try {
logger.log(LogService.LOG_INFO, "Unregistering mbean " + " to MBeanServer " + server + " with name "
Modified: aries/branches/subsystemsR6/jpa/jpa-api/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/jpa-api/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/jpa-api/pom.xml (original)
+++ aries/branches/subsystemsR6/jpa/jpa-api/pom.xml Tue Jun 9 15:33:24 2015
@@ -22,36 +22,23 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.aries</groupId>
- <artifactId>parent</artifactId>
- <version>2.0.0</version>
- <relativePath>../../parent/pom.xml</relativePath>
+ <groupId>org.apache.aries.jpa</groupId>
+ <artifactId>org.apache.aries.jpa.parent</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ <relativePath>../jpa-parent</relativePath>
</parent>
- <groupId>org.apache.aries.jpa</groupId>
<artifactId>org.apache.aries.jpa.api</artifactId>
<packaging>bundle</packaging>
- <name>Aries JPA Container API</name>
- <version>1.0.3-SNAPSHOT</version>
-
- <scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/aries/trunk/jpa/jpa-api</connection>
- <developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/trunk/jpa/jpa-api</developerConnection>
- <url>http://svn.apache.org/viewvc/aries/trunk/jpa/jpa-api</url>
- </scm>
+ <name>Apache Aries JPA Container API</name>
<properties>
<!-- Export package versions are maintained in packageinfo files -->
<aries.osgi.export.pkg>
- org.apache.aries.jpa.container.parsing,
- org.apache.aries.jpa.container.sync,
- org.apache.aries.jpa.container,
- org.apache.aries.jpa.container.context
+ org.apache.aries.jpa.supplier,
+ org.apache.aries.jpa.template
</aries.osgi.export.pkg>
<aries.osgi.import>
- javax.persistence;version="[1.0.0,3.0.0)",
- javax.persistence.spi;version="[1.0.0,3.0.0)",
- org.osgi.framework;version="[1.5.0,2.0.0)"
</aries.osgi.import>
<aries.osgi.private.pkg />
<lastReleaseVersion>1.0.0</lastReleaseVersion>
@@ -71,7 +58,7 @@
</dependency>
</dependencies>
- <build>
+ <build>
<plugins>
<plugin>
<groupId>org.apache.aries.versioning</groupId>
Modified: aries/branches/subsystemsR6/jpa/jpa-container-eclipselink-adapter/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/jpa-container-eclipselink-adapter/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/jpa-container-eclipselink-adapter/pom.xml (original)
+++ aries/branches/subsystemsR6/jpa/jpa-container-eclipselink-adapter/pom.xml Tue Jun 9 15:33:24 2015
@@ -22,23 +22,16 @@
<modelVersion>4.0.0</modelVersion>
<parent>
- <groupId>org.apache.aries</groupId>
- <artifactId>parent</artifactId>
- <version>2.0.0</version>
- <relativePath>../../parent/pom.xml</relativePath>
+ <groupId>org.apache.aries.jpa</groupId>
+ <artifactId>org.apache.aries.jpa.parent</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ <relativePath>../jpa-parent</relativePath>
</parent>
<groupId>org.apache.aries.jpa</groupId>
<artifactId>org.apache.aries.jpa.eclipselink.adapter</artifactId>
<packaging>bundle</packaging>
- <version>1.0.0-SNAPSHOT</version>
- <name>Aries JPA Container adapter for use with EclipseLink</name>
-
- <scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/aries/trunk/jpa/jpa-container-eclipselink-adapter</connection>
- <developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/trunk/jpa/jpa-container-eclipselink-adapter</developerConnection>
- <url>http://svn.apache.org/viewvc/aries/trunk/jpa/jpa-container-eclipselink-adapter</url>
- </scm>
+ <name>Apache Aries JPA Container adapter for EclipseLink</name>
<properties>
<aries.osgi.export.pkg>
Modified: aries/branches/subsystemsR6/jpa/jpa-container-eclipselink-adapter/src/main/java/org/apache/aries/jpa/eclipselink/adapter/Activator.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/jpa-container-eclipselink-adapter/src/main/java/org/apache/aries/jpa/eclipselink/adapter/Activator.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/jpa-container-eclipselink-adapter/src/main/java/org/apache/aries/jpa/eclipselink/adapter/Activator.java (original)
+++ aries/branches/subsystemsR6/jpa/jpa-container-eclipselink-adapter/src/main/java/org/apache/aries/jpa/eclipselink/adapter/Activator.java Tue Jun 9 15:33:24 2015
@@ -141,22 +141,24 @@ public class Activator implements Bundle
for (Bundle b : context.getBundles()) {
BundleWiring bw = b.adapt(BundleWiring.class);
- List<BundleWire> wires = bw.getProvidedWires(BundleRevision.PACKAGE_NAMESPACE);
-
- for (BundleWire w : wires) {
- String pkgName = (String) w.getCapability().getAttributes().get(BundleRevision.PACKAGE_NAMESPACE);
-
- boolean add = false;
- if (b.equals(jpaBundle)) {
- add = true;
- } else if (pkgName.startsWith("org.eclipse.persistence")) {
- add = true;
- }
-
- if (add) {
- String suffix = ";" + Constants.BUNDLE_SYMBOLICNAME_ATTRIBUTE + "=" + b.getSymbolicName() + ";" + Constants.BUNDLE_VERSION_ATTRIBUTE + "=" + b.getVersion();
- result.add(pkgName + suffix);
- }
+ if(bw != null) {
+ List<BundleWire> wires = bw.getProvidedWires(BundleRevision.PACKAGE_NAMESPACE);
+
+ for (BundleWire w : wires) {
+ String pkgName = (String) w.getCapability().getAttributes().get(BundleRevision.PACKAGE_NAMESPACE);
+
+ boolean add = false;
+ if (b.equals(jpaBundle)) {
+ add = true;
+ } else if (pkgName.startsWith("org.eclipse.persistence")) {
+ add = true;
+ }
+
+ if (add) {
+ String suffix = ";" + Constants.BUNDLE_SYMBOLICNAME_ATTRIBUTE + "=" + b.getSymbolicName() + ";" + Constants.BUNDLE_VERSION_ATTRIBUTE + "=" + b.getVersion();
+ result.add(pkgName + suffix);
+ }
+ }
}
}
Modified: aries/branches/subsystemsR6/jpa/jpa-container/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/jpa-container/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/jpa-container/pom.xml (original)
+++ aries/branches/subsystemsR6/jpa/jpa-container/pom.xml Tue Jun 9 15:33:24 2015
@@ -17,142 +17,45 @@
specific language governing permissions and limitations
under the License.
-->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
-
<parent>
- <groupId>org.apache.aries</groupId>
- <artifactId>parent</artifactId>
- <version>2.0.0</version>
- <relativePath>../../parent/pom.xml</relativePath>
+ <groupId>org.apache.aries.jpa</groupId>
+ <artifactId>org.apache.aries.jpa.parent</artifactId>
+ <version>2.0.0-SNAPSHOT</version>
+ <relativePath>../jpa-parent</relativePath>
</parent>
-
- <groupId>org.apache.aries.jpa</groupId>
<artifactId>org.apache.aries.jpa.container</artifactId>
+ <name>Apache Aries JPA container</name>
+ <description>Implements the OSGi JPA Container from the enterprise spec. Provider a EntityManagerFactory and EntityManagerFactoryBuilder service</description>
<packaging>bundle</packaging>
- <version>1.0.3-SNAPSHOT</version>
- <name>Aries JPA Container</name>
- <scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/aries/trunk/jpa/jpa-container</connection>
- <developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/trunk/jpa/jpa-container</developerConnection>
- <url>http://svn.apache.org/viewvc/aries/trunk/jpa/jpa-container</url>
- </scm>
-
<properties>
- <!-- Export package versions are maintained in packageinfo files -->
- <aries.osgi.export.pkg />
- <aries.osgi.import>
- javax.persistence;version="[1.0.0,3.0.0)",
- javax.persistence.spi;version="[1.0.0,3.0.0)",
- javax.persistence.criteria;version="[1.1.0,3.0.0)";resolution:=optional,
- javax.persistence.metamodel;version="[1.1.0,3.0.0)";resolution:=optional,
- !javax.transaction,
- org.apache.aries.jpa.container*;provide:=true,
- org.apache.aries.quiesce.manager;provide:=true;resolution:=optional,
- org.apache.aries.quiesce.participant;provide:=true;resolution:=optional,
- org.osgi.framework;version="[1.5,2)",
- org.osgi.framework.hooks.weaving;resolution:=optional,
- org.osgi.framework.wiring;resolution:=optional,
- org.osgi.service.jdbc;resolution:=optional,
- *
- </aries.osgi.import>
- <aries.osgi.dynamic>
- javax.transaction;version="[1.1,2)"
- </aries.osgi.dynamic>
- <aries.osgi.activator>
- org.apache.aries.jpa.container.impl.PersistenceBundleManager
- </aries.osgi.activator>
- <lastReleaseVersion>1.0.0</lastReleaseVersion>
+ <aries.skip.version.check>true</aries.skip.version.check>
+ <aries.osgi.export>
+ org.osgi.service.jdbc,
+ org.osgi.service.jpa
+ </aries.osgi.export>
+ <aries.osgi.activator>
+ org.apache.aries.jpa.container.impl.Activator
+ </aries.osgi.activator>
</properties>
<dependencies>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.core</artifactId>
- <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>org.osgi.compendium</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <artifactId>org.apache.aries.jpa.api</artifactId>
- <groupId>org.apache.aries.jpa</groupId>
- <version>1.0.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.aries.quiesce</groupId>
- <artifactId>org.apache.aries.quiesce.api</artifactId>
- <version>1.0.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <artifactId>org.apache.aries.util</artifactId>
- <groupId>org.apache.aries</groupId>
- <version>1.0.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jpa_2.0_spec</artifactId>
- <version>1.1</version>
- <scope>provided</scope>
</dependency>
<dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-simple</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.aries.testsupport</groupId>
- <artifactId>org.apache.aries.testsupport.unit</artifactId>
- <version>1.0.0</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>org.osgi.enterprise</artifactId>
- <version>4.2.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jta_1.1_spec</artifactId>
- <version>1.1.1</version>
- <scope>provided</scope>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
+ <version>1.0.1.Final</version>
</dependency>
</dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.aries.versioning</groupId>
- <artifactId>org.apache.aries.versioning.plugin</artifactId>
- <executions>
- <execution>
- <id>default-verify</id>
- <phase>verify</phase>
- <goals>
- <goal>version-check</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
-</project>
+</project>
\ No newline at end of file
Modified: aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/JPAWeavingHook.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/JPAWeavingHook.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/JPAWeavingHook.java (original)
+++ aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/JPAWeavingHook.java Tue Jun 9 15:33:24 2015
@@ -20,112 +20,115 @@ package org.apache.aries.jpa.container.w
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.LinkedHashSet;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.ConcurrentMap;
+import java.util.Map;
import javax.persistence.spi.ClassTransformer;
-import org.apache.aries.jpa.container.impl.NLS;
import org.osgi.framework.Bundle;
-import org.osgi.framework.ServiceReference;
import org.osgi.framework.hooks.weaving.WeavingException;
import org.osgi.framework.hooks.weaving.WeavingHook;
import org.osgi.framework.hooks.weaving.WovenClass;
import org.osgi.framework.wiring.BundleWiring;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
- * This weaving hook delegates to any registered {@link ClassTransformer} instances
- * for a given bundle
+ * This weaving hook delegates to any registered {@link ClassTransformer} instances for a given bundle
*/
public class JPAWeavingHook implements WeavingHook, TransformerRegistry {
+ private static final Logger LOGGER = LoggerFactory.getLogger(JPAWeavingHook.class);
- /**
- * This constructor should not be called directly, the {@link JPAWeavingHookFactory}
- * should be used to ensure that Weaving support is available.
- */
- JPAWeavingHook() { }
-
- /**
- * With luck we will only have one persistence unit per bundle, but
- * if we don't we'll need to call them until one of them does a transform
- * or we run out.
- */
- private final ConcurrentMap<Bundle, LinkedHashSet<WrappingTransformer>> registeredTransformers
- = new ConcurrentHashMap<Bundle, LinkedHashSet<WrappingTransformer>>();
-
- public void weave(WovenClass wovenClass) {
-
- BundleWiring wiring = wovenClass.getBundleWiring();
-
- Collection<WrappingTransformer> transformers = registeredTransformers.get(
- wiring.getBundle());
-
- if(transformers != null) {
- Collection<WrappingTransformer> transformersToTry;
- synchronized (transformers) {
- transformersToTry = new ArrayList<WrappingTransformer>(transformers);
- }
- for(WrappingTransformer transformer : transformersToTry) {
+ /**
+ * This constructor should not be called directly, the {@link JPAWeavingHookFactory} should be used to
+ * ensure that Weaving support is available.
+ */
+ JPAWeavingHook() {
+ }
+
+ /**
+ * With luck we will only have one persistence unit per bundle, but if we don't we'll need to call them
+ * until one of them does a transform or we run out.
+ */
+ private final Map<Bundle, LinkedHashSet<ClassTransformer>> registeredTransformers = new HashMap<Bundle, LinkedHashSet<ClassTransformer>>();
+
+ public void weave(WovenClass wovenClass) {
+ BundleWiring wiring = wovenClass.getBundleWiring();
+ Bundle bundle = wiring.getBundle();
+ ClassLoader cl = wiring.getClassLoader();
+ Collection<ClassTransformer> transformersToTry = getTransformers(bundle);
+ if (transformersToTry.size() == 0 && wovenClass.getClassName().endsWith("Car")) {
+ LOGGER.error("Loading " + wovenClass.getClassName() + " before transformer is present");
+ //for (StackTraceElement el : Thread.currentThread().getStackTrace()) {
+// LOGGER.info(el.toString());
+// }
+ }
+ for (ClassTransformer transformer : transformersToTry) {
+
+ if (transformClass(wovenClass, cl, transformer)) {
+ LOGGER.info("Weaving " + wovenClass.getClassName() + " using " + transformer.getClass().getName());
+ break;
+ };
+ }
+ }
+
+ @SuppressWarnings("unchecked")
+ private synchronized Collection<ClassTransformer> getTransformers(Bundle bundle) {
+ LinkedHashSet<ClassTransformer> transformers = registeredTransformers.get(bundle);
+ return transformers != null ? new ArrayList<ClassTransformer>(transformers) : Collections.EMPTY_LIST;
+ }
+
+ private boolean transformClass(WovenClass wovenClass, ClassLoader cl, ClassTransformer transformer)
+ throws ThreadDeath, OutOfMemoryError {
try {
- byte[] result = transformer.transform(wiring.getClassLoader(),
- wovenClass.getClassName(), wovenClass.getDefinedClass(),
- wovenClass.getProtectionDomain(), wovenClass.getBytes());
- if(result != null) {
- wovenClass.setBytes(result);
- wovenClass.getDynamicImports().addAll(transformer.getPackagesToAdd());
- break;
- }
+ byte[] result = transformer
+ .transform(cl,
+ wovenClass.getClassName(),
+ wovenClass.getDefinedClass(),
+ wovenClass.getProtectionDomain(),
+ wovenClass.getBytes());
+ if (result != null) {
+ wovenClass.setBytes(result);
+ wovenClass.getDynamicImports().add("org.eclipse.persistence.*");
+ wovenClass.getDynamicImports().add("org.apache.openjpa.*");
+
+ return true;
+ }
} catch (Throwable t) {
- if(t instanceof ThreadDeath)
- throw (ThreadDeath)t;
- else if (t instanceof OutOfMemoryError)
- throw (OutOfMemoryError) t;
- else {
- Bundle b = wovenClass.getBundleWiring().getBundle();
- throw new WeavingException(NLS.MESSAGES.getMessage("jpa.weaving.failure", wovenClass.getClassName(), b.getSymbolicName(), b.getVersion(), transformer), t);
- }
- }
- }
- }
- }
-
- public void addTransformer(Bundle pBundle, ClassTransformer transformer, ServiceReference<?> provider) {
-
- //Optimised for single adds
-
- LinkedHashSet<WrappingTransformer> set = new LinkedHashSet<WrappingTransformer>();
- WrappingTransformer wt = new WrappingTransformer(transformer, provider);
- set.add(wt);
-
- LinkedHashSet<WrappingTransformer> existingSet = registeredTransformers.putIfAbsent(pBundle, set);
-
- if(existingSet != null) {
- synchronized (existingSet) {
- existingSet.add(wt);
- }
- }
- }
-
- public void removeTransformer(Bundle pBundle, ClassTransformer transformer) {
- LinkedHashSet<WrappingTransformer> set = registeredTransformers.get(pBundle);
-
- if(set == null || !!!safeRemove(set, transformer))
- throw new IllegalStateException(NLS.MESSAGES.getMessage("jpa.weaving.transformer.not.registered", transformer));
-
- if(set.isEmpty())
- registeredTransformers.remove(pBundle);
- }
-
- /**
- * Perform a remove on the collection while synchronized on it
- * @param set
- * @param t
- * @return
- */
- private boolean safeRemove(Collection<WrappingTransformer> set, ClassTransformer t) {
- synchronized(set) {
- return set.remove(new WrappingTransformer(t));
- }
- }
+ if (t instanceof ThreadDeath)
+ throw (ThreadDeath)t;
+ else if (t instanceof OutOfMemoryError)
+ throw (OutOfMemoryError)t;
+ else {
+ Bundle b = wovenClass.getBundleWiring().getBundle();
+ String msg = String.format("Weaving failure", wovenClass.getClassName(),
+ b.getSymbolicName(), b.getVersion(), transformer);
+ throw new WeavingException(msg, t);
+ }
+ }
+ return false;
+ }
+
+ public synchronized void addTransformer(Bundle pBundle, ClassTransformer transformer) {
+ LOGGER.info("Adding transformer " + transformer.getClass().getName());
+ LinkedHashSet<ClassTransformer> transformers = registeredTransformers.get(pBundle);
+ if (transformers == null) {
+ transformers = new LinkedHashSet<ClassTransformer>();
+ registeredTransformers.put(pBundle, transformers);
+ }
+ transformers.add(transformer);
+ }
+
+ public synchronized void removeTransformer(Bundle pBundle, ClassTransformer transformer) {
+ LinkedHashSet<ClassTransformer> set = registeredTransformers.get(pBundle);
+ if (set == null || !set.remove(transformer)) {
+ throw new IllegalStateException("Transformer " + transformer + " not registered");
+ }
+ if (set.isEmpty()) {
+ registeredTransformers.remove(pBundle);
+ }
+ }
+
}
Modified: aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/TransformerRegistry.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/TransformerRegistry.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/TransformerRegistry.java (original)
+++ aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/TransformerRegistry.java Tue Jun 9 15:33:24 2015
@@ -21,11 +21,10 @@ package org.apache.aries.jpa.container.w
import javax.persistence.spi.ClassTransformer;
import org.osgi.framework.Bundle;
-import org.osgi.framework.ServiceReference;
/**
* {@link ClassTransformer} instances should be registered with the
- * instance of this interface returned by {@link TransformerRegistryFactory#getTransformerRegistry()}
+ * instance of this interface returned by {@link TransformerRegistrySingleton#getTransformerRegistry()}
*/
public interface TransformerRegistry {
@@ -36,7 +35,7 @@ public interface TransformerRegistry {
* @param transformer The transformer to weave with
* @param provider The provider to provide packages from
*/
- public void addTransformer(Bundle pBundle, ClassTransformer transformer, ServiceReference<?> provider);
+ public void addTransformer(Bundle pBundle, ClassTransformer transformer);
/**
Modified: aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/WrappingTransformer.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/WrappingTransformer.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/WrappingTransformer.java (original)
+++ aries/branches/subsystemsR6/jpa/jpa-container/src/main/java/org/apache/aries/jpa/container/weaving/impl/WrappingTransformer.java Tue Jun 9 15:33:24 2015
@@ -25,7 +25,6 @@ import java.util.HashSet;
import javax.persistence.spi.ClassTransformer;
-import org.apache.aries.jpa.container.impl.NLS;
import org.osgi.framework.Bundle;
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
@@ -34,65 +33,63 @@ import org.osgi.framework.wiring.BundleR
import org.osgi.framework.wiring.BundleWiring;
class WrappingTransformer implements ClassTransformer {
- private final ClassTransformer delegate;
- private final Collection<String> packageImportsToAdd = new HashSet<String>();
-
- public WrappingTransformer(ClassTransformer delegate,
- ServiceReference<?> persistenceProvider) {
-
- if(delegate == null)
- throw new NullPointerException(NLS.MESSAGES.getMessage("jpa.weaving.null.transformer"));
-
- if(persistenceProvider == null) {
- throw new NullPointerException(NLS.MESSAGES.getMessage("jpa.weaving.null.provider"));
- }
-
- this.delegate = delegate;
-
- Object packages = persistenceProvider.getProperty("org.apache.aries.jpa.container.weaving.packages");
-
- if(packages instanceof String[]) {
- for(String s : (String[]) packages) {
- packageImportsToAdd.add(s);
- }
- } else {
- Bundle provider = persistenceProvider.getBundle();
- String suffix = ";" + Constants.BUNDLE_SYMBOLICNAME_ATTRIBUTE + "=" +
- provider.getSymbolicName() + ";" + Constants.BUNDLE_VERSION_ATTRIBUTE
- + "=" + provider.getVersion();
-
- BundleRevision br = provider.adapt(BundleWiring.class).getRevision();
- for(BundleCapability bc : br.getDeclaredCapabilities(BundleRevision.PACKAGE_NAMESPACE)) {
- packageImportsToAdd.add(bc.getAttributes().get(BundleRevision.PACKAGE_NAMESPACE) + suffix);
- }
- }
- }
-
- public WrappingTransformer(ClassTransformer transformer) {
- delegate = transformer;
- }
-
- public byte[] transform(ClassLoader arg0, String arg1, Class<?> arg2,
- ProtectionDomain arg3, byte[] arg4) throws IllegalClassFormatException {
- return delegate.transform(arg0, arg1, arg2, arg3, arg4);
- }
-
- public Collection<String> getPackagesToAdd() {
- return packageImportsToAdd;
- }
-
- public int hashCode() {
- return delegate.hashCode();
- }
-
- public boolean equals(Object o) {
- if(o instanceof WrappingTransformer)
- return delegate == ((WrappingTransformer) o).delegate;
-
- return false;
- }
-
- public String toString() {
- return "Transformer: " + delegate.toString() + " Packages to add: " + packageImportsToAdd;
- }
-}
\ No newline at end of file
+ private final ClassTransformer delegate;
+ private final Collection<String> packageImportsToAdd = new HashSet<String>();
+
+ public WrappingTransformer(ClassTransformer delegate, ServiceReference<?> persistenceProvider) {
+
+ if (delegate == null)
+ throw new NullPointerException("Transformer delegate may not be null");
+
+ if (persistenceProvider == null) {
+ throw new NullPointerException("PersistenceProvider may not be null");
+ }
+
+ this.delegate = delegate;
+
+ Object packages = persistenceProvider.getProperty("org.apache.aries.jpa.container.weaving.packages");
+
+ if (packages instanceof String[]) {
+ for (String s : (String[])packages) {
+ packageImportsToAdd.add(s);
+ }
+ } else {
+ Bundle provider = persistenceProvider.getBundle();
+ String suffix = ";" + Constants.BUNDLE_SYMBOLICNAME_ATTRIBUTE + "=" + provider.getSymbolicName()
+ + ";" + Constants.BUNDLE_VERSION_ATTRIBUTE + "=" + provider.getVersion();
+
+ BundleRevision br = provider.adapt(BundleWiring.class).getRevision();
+ for (BundleCapability bc : br.getDeclaredCapabilities(BundleRevision.PACKAGE_NAMESPACE)) {
+ packageImportsToAdd.add(bc.getAttributes().get(BundleRevision.PACKAGE_NAMESPACE) + suffix);
+ }
+ }
+ }
+
+ public WrappingTransformer(ClassTransformer transformer) {
+ delegate = transformer;
+ }
+
+ public byte[] transform(ClassLoader arg0, String arg1, Class<?> arg2, ProtectionDomain arg3, byte[] arg4)
+ throws IllegalClassFormatException {
+ return delegate.transform(arg0, arg1, arg2, arg3, arg4);
+ }
+
+ public Collection<String> getPackagesToAdd() {
+ return packageImportsToAdd;
+ }
+
+ public int hashCode() {
+ return delegate.hashCode();
+ }
+
+ public boolean equals(Object o) {
+ if (o instanceof WrappingTransformer)
+ return delegate == ((WrappingTransformer)o).delegate;
+
+ return false;
+ }
+
+ public String toString() {
+ return "Transformer: " + delegate.toString() + " Packages to add: " + packageImportsToAdd;
+ }
+}
Modified: aries/branches/subsystemsR6/jpa/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/jpa/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/jpa/pom.xml (original)
+++ aries/branches/subsystemsR6/jpa/pom.xml Tue Jun 9 15:33:24 2015
@@ -1,50 +1,43 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements. See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership. The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing,
- software distributed under the License is distributed on an
- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND, either express or implied. See the License for the
- specific language governing permissions and limitations
- under the License.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.aries.jpa</groupId>
+ <artifactId>org.apache.aries.jpa.main</artifactId>
+ <name>Apache Aries JPA parent</name>
+ <version>2.0.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
<parent>
<groupId>org.apache.aries</groupId>
<artifactId>parent</artifactId>
- <version>2.0.0</version>
+ <version>2.0.1</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
- <groupId>org.apache.aries.jpa</groupId>
- <artifactId>jpa</artifactId>
- <packaging>pom</packaging>
- <name>Aries JPA Component</name>
- <version>1.0.0-SNAPSHOT</version>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/aries/trunk/jpa</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/aries/trunk/jpa</developerConnection>
+ <url>http://svn.apache.org/viewvc/aries/trunk/jpa</url>
+ </scm>
<modules>
- <module>jpa-api</module>
- <module>jpa-container</module>
- <module>jpa-container-context</module>
- <module>jpa-blueprint-aries</module>
- <module>jpa-container-eclipselink-adapter</module>
- <module>jpa-container-testbundle</module>
- <module>jpa-container-testbundle-eclipselink</module>
- <module>jpa-container-advancedtestbundle</module>
- <module>jpa-container-itest</module>
- <module>jpa-blueprint-testbundle</module>
+ <module>jpa-api</module>
+ <module>jpa-container</module>
+ <module>jpa-support</module>
+ <module>jpa-blueprint</module>
+ <module>jpa-container-eclipselink-adapter</module>
+ <module>examples</module>
+ <module>itests</module>
+ <module>jpa-parent</module>
</modules>
+
</project>
+
Modified: aries/branches/subsystemsR6/parent/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/parent/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/parent/pom.xml (original)
+++ aries/branches/subsystemsR6/parent/pom.xml Tue Jun 9 15:33:24 2015
@@ -32,7 +32,7 @@
<groupId>org.apache.aries</groupId>
<artifactId>parent</artifactId>
<name>Aries :: Parent POM</name>
- <version>2.0.1-SNAPSHOT</version>
+ <version>2.0.2-SNAPSHOT</version>
<packaging>pom</packaging>
<description>
@@ -87,10 +87,12 @@
<repositories>
<repository>
- <id>codehaus.snapshots</id>
- <name>Codehaus Snapshots Repository</name>
- <url>http://snapshots.repository.codehaus.org</url>
- <layout>default</layout>
+ <id>EclipseLink Repo</id>
+ <url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url>
+ </repository>
+ <repository>
+ <id>ops4j.sonatype.snapshots.deploy</id>
+ <url>https://oss.sonatype.org/content/repositories/ops4j-snapshots</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>daily</updatePolicy>
@@ -100,11 +102,6 @@
<enabled>false</enabled>
</releases>
</repository>
-
- <repository>
- <id>EclipseLink Repo</id>
- <url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url>
- </repository>
</repositories>
<pluginRepositories>
@@ -122,21 +119,6 @@
<enabled>false</enabled>
</releases>
</pluginRepository>
-
- <pluginRepository>
- <id>codehaus.snapshots</id>
- <name>Codehaus Snapshots Repository</name>
- <url>http://snapshots.repository.codehaus.org</url>
- <layout>default</layout>
- <snapshots>
- <enabled>true</enabled>
- <updatePolicy>daily</updatePolicy>
- <checksumPolicy>ignore</checksumPolicy>
- </snapshots>
- <releases>
- <enabled>false</enabled>
- </releases>
- </pluginRepository>
</pluginRepositories>
<dependencyManagement>
@@ -279,7 +261,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
- <version>2.2</version>
+ <version>2.5.2</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
Modified: aries/branches/subsystemsR6/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/pom.xml (original)
+++ aries/branches/subsystemsR6/pom.xml Tue Jun 9 15:33:24 2015
@@ -41,7 +41,7 @@
<module>eba-maven-plugin</module>
<module>testsupport</module>
<module>util</module>
- <!--module>versioning</module-->
+ <module>versioning</module>
<module>proxy</module>
<module>quiesce</module>
<module>blueprint</module>
@@ -55,7 +55,9 @@
<module>jpa</module>
<module>spi-fly</module>
<module>samples</module>
+ <module>esa-ant-task</module>
<module>esa-maven-plugin</module>
+ <module>async</module>
</modules>
<build>
Modified: aries/branches/subsystemsR6/spi-fly/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/spi-fly/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/spi-fly/pom.xml (original)
+++ aries/branches/subsystemsR6/spi-fly/pom.xml Tue Jun 9 15:33:24 2015
@@ -31,7 +31,7 @@
<groupId>org.apache.aries.spifly</groupId>
<artifactId>spifly</artifactId>
<name>Apache Aries SPI Fly</name>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.0.2-SNAPSHOT</version>
<packaging>pom</packaging>
<description>
SPI support for OSGi
Modified: aries/branches/subsystemsR6/spi-fly/spi-fly-core/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/spi-fly/spi-fly-core/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/spi-fly/spi-fly-core/pom.xml (original)
+++ aries/branches/subsystemsR6/spi-fly/spi-fly-core/pom.xml Tue Jun 9 15:33:24 2015
@@ -30,7 +30,7 @@
<groupId>org.apache.aries.spifly</groupId>
<artifactId>org.apache.aries.spifly.core-internal</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.3-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Apache Aries SPI Fly Core (internal module)</name>
<description>
Modified: aries/branches/subsystemsR6/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java (original)
+++ aries/branches/subsystemsR6/spi-fly/spi-fly-core/src/main/java/org/apache/aries/spifly/ProviderBundleTrackerCustomizer.java Tue Jun 9 15:33:24 2015
@@ -106,10 +106,6 @@ public class ProviderBundleTrackerCustom
activator.registerProviderBundle(svc, bundle, customAttributes);
}
- URL servicesDir = bundle.getResource("/" + METAINF_SERVICES);
- if (servicesDir == null)
- return null;
-
List<URL> serviceFileURLs = new ArrayList<URL>();
@SuppressWarnings("unchecked")
Modified: aries/branches/subsystemsR6/spi-fly/spi-fly-dynamic-bundle/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/spi-fly/spi-fly-dynamic-bundle/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/spi-fly/spi-fly-dynamic-bundle/pom.xml (original)
+++ aries/branches/subsystemsR6/spi-fly/spi-fly-dynamic-bundle/pom.xml Tue Jun 9 15:33:24 2015
@@ -30,7 +30,7 @@
<groupId>org.apache.aries.spifly</groupId>
<artifactId>org.apache.aries.spifly.dynamic.bundle</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.3-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>Apache Aries SPI Fly Dynamic Weaving Bundle</name>
<description>
@@ -58,7 +58,7 @@
<dependency>
<groupId>org.apache.aries.spifly</groupId>
<artifactId>org.apache.aries.spifly.core-internal</artifactId>
- <version>1.0.1</version>
+ <version>1.0.3-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.osgi</groupId>
Modified: aries/branches/subsystemsR6/spi-fly/spi-fly-static-bundle/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/spi-fly/spi-fly-static-bundle/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/spi-fly/spi-fly-static-bundle/pom.xml (original)
+++ aries/branches/subsystemsR6/spi-fly/spi-fly-static-bundle/pom.xml Tue Jun 9 15:33:24 2015
@@ -30,7 +30,7 @@
<groupId>org.apache.aries.spifly</groupId>
<artifactId>org.apache.aries.spifly.static.bundle</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.3-SNAPSHOT</version>
<packaging>bundle</packaging>
<name>Apache Aries SPI Fly Static Weaving Bundle</name>
<description>
@@ -52,7 +52,7 @@
<dependency>
<groupId>org.apache.aries.spifly</groupId>
<artifactId>org.apache.aries.spifly.core-internal</artifactId>
- <version>1.0.1</version>
+ <version>1.0.3-SNAPSHOT</version>
</dependency>
<dependency>
Modified: aries/branches/subsystemsR6/spi-fly/spi-fly-static-tool/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/spi-fly/spi-fly-static-tool/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/spi-fly/spi-fly-static-tool/pom.xml (original)
+++ aries/branches/subsystemsR6/spi-fly/spi-fly-static-tool/pom.xml Tue Jun 9 15:33:24 2015
@@ -30,7 +30,7 @@
<groupId>org.apache.aries.spifly</groupId>
<artifactId>org.apache.aries.spifly.static.tool</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.3-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Apache Aries SPI Fly Static Weaving Tool</name>
<description>
@@ -53,7 +53,7 @@
<dependency>
<groupId>org.apache.aries.spifly</groupId>
<artifactId>org.apache.aries.spifly.core-internal</artifactId>
- <version>1.0.1</version>
+ <version>1.0.3-SNAPSHOT</version>
</dependency>
<dependency>
Modified: aries/branches/subsystemsR6/subsystem/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/subsystem/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/subsystem/pom.xml (original)
+++ aries/branches/subsystemsR6/subsystem/pom.xml Tue Jun 9 15:33:24 2015
@@ -48,6 +48,7 @@
<module>subsystem-itests</module>
<module>subsystem-itests-api-bundle</module>
<module>subsystem-bundle</module>
+ <module>subsystem-gogo-command</module>
</modules>
</project>
Modified: aries/branches/subsystemsR6/subsystem/subsystem-api/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/subsystem/subsystem-api/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/subsystem/subsystem-api/pom.xml (original)
+++ aries/branches/subsystemsR6/subsystem/subsystem-api/pom.xml Tue Jun 9 15:33:24 2015
@@ -32,7 +32,7 @@
<artifactId>org.apache.aries.subsystem.api</artifactId>
<packaging>bundle</packaging>
<name>Apache Aries Subsystem API</name>
- <version>1.1.0-SNAPSHOT</version>
+ <version>1.2.0-SNAPSHOT</version>
<description>Subsystems API.</description>
<scm>
Modified: aries/branches/subsystemsR6/subsystem/subsystem-api/src/main/java/org/apache/aries/subsystem/packageinfo
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/subsystem/subsystem-api/src/main/java/org/apache/aries/subsystem/packageinfo?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/subsystem/subsystem-api/src/main/java/org/apache/aries/subsystem/packageinfo (original)
+++ aries/branches/subsystemsR6/subsystem/subsystem-api/src/main/java/org/apache/aries/subsystem/packageinfo Tue Jun 9 15:33:24 2015
@@ -16,4 +16,4 @@
# specific language governing permissions and limitations
# under the License.
#
-version 1.1.0
+version 1.2.0
Modified: aries/branches/subsystemsR6/subsystem/subsystem-bundle/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/subsystem/subsystem-bundle/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/subsystem/subsystem-bundle/pom.xml (original)
+++ aries/branches/subsystemsR6/subsystem/subsystem-bundle/pom.xml Tue Jun 9 15:33:24 2015
@@ -32,7 +32,7 @@
<artifactId>org.apache.aries.subsystem</artifactId>
<packaging>bundle</packaging>
<name>Apache Aries Subsystems Bundle</name>
- <version>1.1.0-SNAPSHOT</version>
+ <version>1.2.1-SNAPSHOT</version>
<description>This is a standalone bundle to support Aries Subsystems.</description>
<scm>
@@ -66,12 +66,12 @@
<dependency>
<groupId>org.apache.aries.subsystem</groupId>
<artifactId>org.apache.aries.subsystem.api</artifactId>
- <version>1.1.0-SNAPSHOT</version>
+ <version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.aries.subsystem</groupId>
<artifactId>org.apache.aries.subsystem.core</artifactId>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.aries</groupId>
@@ -101,7 +101,7 @@
<dependency>
<groupId>org.apache.aries.proxy</groupId>
<artifactId>org.apache.aries.proxy</artifactId>
- <version>1.0.2-SNAPSHOT</version>
+ <version>1.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
@@ -119,7 +119,7 @@
<version>1.1.0.v20120522-1841</version>
</dependency>
<dependency>
- <groupId>org.eclipse</groupId>
+ <groupId>org.eclipse.tycho</groupId>
<artifactId>org.eclipse.osgi</artifactId>
<version>3.10.0.v20140606-1445</version>
</dependency>
Modified: aries/branches/subsystemsR6/subsystem/subsystem-core/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/subsystem/subsystem-core/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/subsystem/subsystem-core/pom.xml (original)
+++ aries/branches/subsystemsR6/subsystem/subsystem-core/pom.xml Tue Jun 9 15:33:24 2015
@@ -32,7 +32,7 @@
<artifactId>org.apache.aries.subsystem.core</artifactId>
<packaging>bundle</packaging>
<name>Apache Aries Subsystem Core</name>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
<description>Subsystems Core.</description>
<scm>
@@ -47,7 +47,7 @@
</aries.osgi.activator>
<aries.osgi.import>
org.osgi.service.subsystem;version="[1.1,1.2)",
- org.apache.aries.subsystem;version="[1.1,1.2)",
+ org.apache.aries.subsystem;version="[1.2,1.3)",
org.apache.aries.application.*;resolution:=optional,
*
</aries.osgi.import>
@@ -62,7 +62,7 @@
<dependency>
<groupId>org.apache.aries.subsystem</groupId>
<artifactId>org.apache.aries.subsystem.api</artifactId>
- <version>1.1.0-SNAPSHOT</version>
+ <version>1.2.0-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/StartAction.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/StartAction.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/StartAction.java (original)
+++ aries/branches/subsystemsR6/subsystem/subsystem-core/src/main/java/org/apache/aries/subsystem/core/internal/StartAction.java Tue Jun 9 15:33:24 2015
@@ -182,15 +182,45 @@ public class StartAction extends Abstrac
if (!frameworkWiring.resolveBundles(bundles)) {
//work out which bundles could not be resolved
Collection<Bundle> unresolved = new ArrayList<Bundle>();
+ StringBuilder diagnostics = new StringBuilder();
+ diagnostics.append(String.format("Unable to resolve bundles for subsystem/version/id %s/%s/%s:\n",
+ subsystem.getSymbolicName(), subsystem.getVersion(), subsystem.getSubsystemId()));
+ String fmt = "%d : STATE %s : %s : %s : %s";
for(Bundle bundle:bundles){
- if((bundle.getState() & Bundle.RESOLVED) != Bundle.RESOLVED){
+ if((bundle.getState() & Bundle.RESOLVED) != Bundle.RESOLVED) {
unresolved.add(bundle);
}
+ String state = null;
+ switch(bundle.getState()) {
+ case Bundle.ACTIVE :
+ state = "ACTIVE";
+ break;
+ case Bundle.INSTALLED :
+ state = "INSTALLED";
+ break;
+ case Bundle.RESOLVED :
+ state = "RESOLVED";
+ break;
+ case Bundle.STARTING :
+ state = "STARTING";
+ break;
+ case Bundle.STOPPING :
+ state = "STOPPING";
+ break;
+ case Bundle.UNINSTALLED :
+ state = "UNINSTALLED";
+ break;
+ default :
+ //convert common states to text otherwise default to just showing the ID
+ state = "[" + Integer.toString(bundle.getState()) + "]";
+ break;
+ }
+ diagnostics.append(String.format(fmt, bundle.getBundleId(), state,
+ bundle.getSymbolicName(), bundle.getVersion().toString(),
+ bundle.getLocation()));
+ diagnostics.append("\n");
}
- logger.error(
- "Unable to resolve bundles for subsystem/version/id {}/{}/{}: {}",
- new Object[] { subsystem.getSymbolicName(), subsystem.getVersion(),
- subsystem.getSubsystemId(), unresolved });
+ logger.error(diagnostics.toString());
throw new SubsystemException("Framework could not resolve the bundles: " + unresolved);
}
setExportIsolationPolicy(subsystem);
Modified: aries/branches/subsystemsR6/subsystem/subsystem-install/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/subsystem/subsystem-install/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/subsystem/subsystem-install/pom.xml (original)
+++ aries/branches/subsystemsR6/subsystem/subsystem-install/pom.xml Tue Jun 9 15:33:24 2015
@@ -49,7 +49,7 @@
<dependency>
<groupId>org.apache.aries.subsystem</groupId>
<artifactId>org.apache.aries.subsystem.api</artifactId>
- <version>0.1-SNAPSHOT</version>
+ <version>1.2.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
Modified: aries/branches/subsystemsR6/subsystem/subsystem-itests/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/subsystem/subsystem-itests/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/subsystem/subsystem-itests/pom.xml (original)
+++ aries/branches/subsystemsR6/subsystem/subsystem-itests/pom.xml Tue Jun 9 15:33:24 2015
@@ -129,7 +129,7 @@
<groupId>org.apache.aries.subsystem</groupId>
<artifactId>org.apache.aries.subsystem.api</artifactId>
<scope>test</scope>
- <version>1.1.0-SNAPSHOT</version>
+ <version>1.2.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.osgi</groupId>
@@ -141,7 +141,7 @@
<groupId>org.apache.aries.subsystem</groupId>
<artifactId>org.apache.aries.subsystem.core</artifactId>
<scope>test</scope>
- <version>1.2.0-SNAPSHOT</version>
+ <version>1.3.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>org.osgi</groupId>
Modified: aries/branches/subsystemsR6/subsystem/subsystem-obr/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/subsystem/subsystem-obr/pom.xml?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/subsystem/subsystem-obr/pom.xml (original)
+++ aries/branches/subsystemsR6/subsystem/subsystem-obr/pom.xml Tue Jun 9 15:33:24 2015
@@ -32,7 +32,7 @@
<artifactId>org.apache.aries.subsystem.obr</artifactId>
<packaging>bundle</packaging>
<name>Apache Aries Subsystem OBR</name>
- <version>1.0.1-SNAPSHOT</version>
+ <version>1.0.2-SNAPSHOT</version>
<description>Subsystems OBR support.</description>
<scm>
Modified: aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/BundleWideTxData.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/BundleWideTxData.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/BundleWideTxData.java (original)
+++ aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/BundleWideTxData.java Tue Jun 9 15:33:24 2015
@@ -22,16 +22,18 @@ import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;
+import org.apache.aries.transaction.annotations.TransactionPropagationType;
+
public final class BundleWideTxData
{
- private String value;
+ private TransactionPropagationType value;
private final List<Pattern> methodList = new ArrayList<Pattern>();
private final List<Pattern> beanList = new ArrayList<Pattern>();
- public BundleWideTxData(String value,
+ public BundleWideTxData(TransactionPropagationType value,
String method, String bean) {
- if(value == null || value.length() == 0)
- this.value = "Required";
+ if (value == null)
+ this.value = TransactionPropagationType.Required;
else
this.value = value;
setupPatterns(method, bean);
@@ -60,7 +62,7 @@ public final class BundleWideTxData
this.beanList.add(p);
}
}
- public String getValue() {
+ public TransactionPropagationType getValue() {
return this.value;
}
Modified: aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/BundleWideTxDataUtil.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/BundleWideTxDataUtil.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/BundleWideTxDataUtil.java (original)
+++ aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/BundleWideTxDataUtil.java Tue Jun 9 15:33:24 2015
@@ -23,6 +23,8 @@ import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import org.apache.aries.transaction.annotations.TransactionPropagationType;
+
public class BundleWideTxDataUtil {
@@ -36,14 +38,14 @@ public class BundleWideTxDataUtil {
* @param bundleData
* @return
*/
- public static String getAttribute(String compId, String method, List<BundleWideTxData> bundleData) {
+ public static TransactionPropagationType getAttribute(String compId, String method, List<BundleWideTxData> bundleData) {
BundleWideTxData txData = null;
if (bundleData.size() == 1) {
txData = bundleData.get(0);
List<Pattern> beans = txData.getBean();
List<Pattern> mtds = txData.getMethod();
- String value = txData.getValue();
+ TransactionPropagationType value = txData.getValue();
if (!beans.isEmpty() && !mtds.isEmpty()) {
for (Pattern bean : beans) {
@@ -81,7 +83,7 @@ public class BundleWideTxDataUtil {
return null;
}
- private static String getTransactionAttribute(List<BundleWideTxData> bundleData, String compId, String method) {
+ private static TransactionPropagationType getTransactionAttribute(List<BundleWideTxData> bundleData, String compId, String method) {
List<BundleWideTxData> bundleDataBothMethodAndBean = new ArrayList<BundleWideTxData>();
List<BundleWideTxData> bundleDataOnlyBean = new ArrayList<BundleWideTxData>();
List<BundleWideTxData> bundleDataOnlyMethod = new ArrayList<BundleWideTxData>();
@@ -107,7 +109,7 @@ public class BundleWideTxDataUtil {
for (BundleWideTxData txData : bundleDataBothMethodAndBean) {
List<Pattern> beans = txData.getBean();
List<Pattern> mtds = txData.getMethod();
- String value = txData.getValue();
+ TransactionPropagationType value = txData.getValue();
for (Pattern bean : beans) {
if (bean.matcher(compId).matches()) {
@@ -128,7 +130,7 @@ public class BundleWideTxDataUtil {
// let's then check bundle data that has bean only next
for (BundleWideTxData txData : bundleDataOnlyBean) {
List<Pattern> beans = txData.getBean();
- String value = txData.getValue();
+ TransactionPropagationType value = txData.getValue();
for (Pattern bean : beans) {
if (bean.matcher(compId).matches()) {
@@ -144,7 +146,7 @@ public class BundleWideTxDataUtil {
// let's then check bundle data that has method only next
for (BundleWideTxData txData : bundleDataOnlyMethod) {
List<Pattern> mtds = txData.getMethod();
- String value = txData.getValue();
+ TransactionPropagationType value = txData.getValue();
for (Pattern mtd : mtds) {
if (mtd.matcher(method).matches()) {
@@ -175,7 +177,7 @@ public class BundleWideTxDataUtil {
}
// this method assume matchedTxData isn't empty.
- private static String findBestMatch(List<MatchedTxData> matchedTxData) {
+ private static TransactionPropagationType findBestMatch(List<MatchedTxData> matchedTxData) {
if (matchedTxData.size() == 1) {
return matchedTxData.get(0).getValue();
@@ -209,7 +211,7 @@ public class BundleWideTxDataUtil {
}
// this method assume matchedTxData isn't empty.
- private static String findBestMatchBeanOnly(List<MatchedTxData> matchedTxData) {
+ private static TransactionPropagationType findBestMatchBeanOnly(List<MatchedTxData> matchedTxData) {
if (matchedTxData.size() == 1) {
return matchedTxData.get(0).getValue();
@@ -232,7 +234,7 @@ public class BundleWideTxDataUtil {
}
// this method assume matchedTxData isn't empty.
- private static String findBestMatchMethodOnly(List<MatchedTxData> matchedTxData) {
+ private static TransactionPropagationType findBestMatchMethodOnly(List<MatchedTxData> matchedTxData) {
if (matchedTxData.size() == 1) {
return matchedTxData.get(0).getValue();
Modified: aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/Constants.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/Constants.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/Constants.java (original)
+++ aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/Constants.java Tue Jun 9 15:33:24 2015
@@ -25,18 +25,7 @@ import org.apache.aries.util.nls.Message
public class Constants {
public static final Pattern WILDCARD = Pattern.compile("\\Q.*\\E");
- public static final String BEAN = "bean";
- public static final String VALUE = "value";
- public static final String METHOD = "method";
- public static final String TX12_SCHEMA = "transactionv12.xsd";
- public static final String TX11_SCHEMA = "transactionv11.xsd";
- public static final String TX10_SCHEMA = "transactionv10.xsd";
- public static final String ANNOTATION_PARSER_BEAN_NAME = ".org_apache_aries_transaction_annotations";
public static final int BANNED_MODIFIERS = Modifier.PRIVATE | Modifier.STATIC;
-
- public final static String TRANSACTION10URI = "http://aries.apache.org/xmlns/transactions/v1.0.0";
- public final static String TRANSACTION11URI = "http://aries.apache.org/xmlns/transactions/v1.1.0";
- public final static String TRANSACTION12URI = "http://aries.apache.org/xmlns/transactions/v1.2.0";
public static final MessageUtil MESSAGES = MessageUtil.createMessageUtil(Constants.class, "org.apache.aries.transaction.nls.blueprintTx");
}
Modified: aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/MatchedTxData.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/MatchedTxData.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/MatchedTxData.java (original)
+++ aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/MatchedTxData.java Tue Jun 9 15:33:24 2015
@@ -20,20 +20,22 @@ package org.apache.aries.transaction;
import java.util.regex.Pattern;
+import org.apache.aries.transaction.annotations.TransactionPropagationType;
+
public final class MatchedTxData
{
- private String value;
+ private TransactionPropagationType value;
private Pattern method;
private Pattern bean;
- public MatchedTxData(String value,
+ public MatchedTxData(TransactionPropagationType value,
Pattern method, Pattern bean) {
this.value = value;
this.method = method;
this.bean = bean;
}
- public String getValue() {
+ public TransactionPropagationType getValue() {
return this.value;
}
Modified: aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionAttribute.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionAttribute.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionAttribute.java (original)
+++ aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionAttribute.java Tue Jun 9 15:33:24 2015
@@ -28,6 +28,8 @@ import javax.transaction.SystemException
import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
+import org.apache.aries.transaction.annotations.TransactionPropagationType;
+
public enum TransactionAttribute {
MANDATORY
{
@@ -101,27 +103,18 @@ public enum TransactionAttribute {
public TransactionToken begin(TransactionManager man) throws SystemException, NotSupportedException,
InvalidTransactionException, IllegalStateException
{
- TransactionToken tranToken;
- if (man.getStatus() == Status.STATUS_ACTIVE) {
- tranToken = new TransactionToken(null, man.suspend(), REQUIRESNEW);
- } else {
- tranToken = new TransactionToken(null, null, REQUIRESNEW);
- }
+ Transaction suspendedTransaction = (man.getStatus() == Status.STATUS_ACTIVE) ? man.suspend() : null;
try {
man.begin();
} catch (SystemException e) {
- man.resume(tranToken.getSuspendedTransaction());
+ man.resume(suspendedTransaction);
throw e;
} catch (NotSupportedException e) {
- man.resume(tranToken.getSuspendedTransaction());
+ man.resume(suspendedTransaction);
throw e;
}
-
- tranToken.setActiveTransaction(man.getTransaction());
- tranToken.setCompletionAllowed(true);
-
- return tranToken;
+ return new TransactionToken(man.getTransaction(), suspendedTransaction, REQUIRESNEW, true);
}
public void finish(TransactionManager man, TransactionToken tranToken) throws SystemException,
@@ -155,9 +148,9 @@ public enum TransactionAttribute {
}
};
- public static TransactionAttribute fromValue(String value)
+ public static TransactionAttribute fromValue(TransactionPropagationType type)
{
- return valueOf(value.toUpperCase());
+ return valueOf(type.name().toUpperCase());
}
public TransactionToken begin(TransactionManager man) throws SystemException, NotSupportedException,
Modified: aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionToken.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionToken.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionToken.java (original)
+++ aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TransactionToken.java Tue Jun 9 15:33:24 2015
@@ -20,7 +20,7 @@ package org.apache.aries.transaction;
import javax.transaction.Transaction;
-class TransactionToken
+public class TransactionToken
{
private Transaction activeTransaction;
private Transaction suspendedTransaction;
@@ -46,31 +46,15 @@ class TransactionToken
return activeTransaction;
}
- public void setActiveTransaction(Transaction activeTransaction) {
- this.activeTransaction = activeTransaction;
- }
-
public Transaction getSuspendedTransaction() {
return suspendedTransaction;
}
- public void setSuspendedTransaction(Transaction suspendedTransaction) {
- this.suspendedTransaction = suspendedTransaction;
- }
-
public TransactionAttribute getTransactionAttribute() {
return transactionAttribute;
}
- public void setTransactionStrategy(TransactionAttribute transactionAttribute) {
- this.transactionAttribute = transactionAttribute;
- }
-
public boolean isCompletionAllowed() {
return isCompletionAllowed;
}
-
- public void setCompletionAllowed(boolean isCompletionAllowed) {
- this.isCompletionAllowed = isCompletionAllowed;
- }
}
\ No newline at end of file
Modified: aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxComponentMetaDataHelper.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxComponentMetaDataHelper.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxComponentMetaDataHelper.java (original)
+++ aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxComponentMetaDataHelper.java Tue Jun 9 15:33:24 2015
@@ -19,17 +19,18 @@
package org.apache.aries.transaction;
import org.apache.aries.blueprint.ComponentDefinitionRegistry;
+import org.apache.aries.transaction.annotations.TransactionPropagationType;
import org.osgi.service.blueprint.reflect.ComponentMetadata;
public interface TxComponentMetaDataHelper {
public void setComponentTransactionData(ComponentDefinitionRegistry registry,
- ComponentMetadata component, String value, String method);
+ ComponentMetadata component, TransactionPropagationType type, String method);
- public String getComponentMethodTxAttribute(
+ public TransactionPropagationType getComponentMethodTxAttribute(
ComponentMetadata component, String methodName);
- public void populateBundleWideTransactionData(ComponentDefinitionRegistry cdr, String value,
+ public void populateBundleWideTransactionData(ComponentDefinitionRegistry cdr, TransactionPropagationType value,
String method, String bean);
public void unregister(ComponentDefinitionRegistry registry);
Modified: aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxComponentMetaDataHelperImpl.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxComponentMetaDataHelperImpl.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxComponentMetaDataHelperImpl.java (original)
+++ aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxComponentMetaDataHelperImpl.java Tue Jun 9 15:33:24 2015
@@ -30,6 +30,7 @@ import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.aries.blueprint.ComponentDefinitionRegistry;
+import org.apache.aries.transaction.annotations.TransactionPropagationType;
import org.osgi.service.blueprint.reflect.ComponentMetadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -49,54 +50,58 @@ public class TxComponentMetaDataHelperIm
cache = new ConcurrentHashMap<String, String>();
}
- public void add(Pattern pattern, String txAttribute) {
- map.put(pattern, txAttribute);
+ public void add(Pattern pattern, TransactionPropagationType txAttribute) {
+ map.put(pattern, txAttribute.name());
}
- public String getAttribute(String name)
- {
+ public TransactionPropagationType getAttribute(String name) {
String txAttribute = cache.get(name);
-
- if (txAttribute == null) {
- List<Pattern> matches = findMatches(name);
- int size = matches.size();
-
- if (size == 0) {
- // we should default to no transaction since we cannot find a match
- txAttribute = null;
- }
- else if (size == 1) {
+
+ if (txAttribute != null) {
+ return getType(txAttribute);
+ }
+ List<Pattern> matches = findMatches(name);
+ int size = matches.size();
+
+ if (size == 0) {
+ // we should default to no transaction since we cannot find a match
+ return null;
+ }
+
+ if (size == 1) {
+ txAttribute = map.get(matches.get(0));
+ } else {
+ matches = selectPatternsWithFewestWildcards(matches);
+ size = matches.size();
+
+ if (size == 1) {
txAttribute = map.get(matches.get(0));
- }
- else {
- matches = selectPatternsWithFewestWildcards(matches);
+ } else {
+ matches = selectLongestPatterns(matches);
size = matches.size();
if (size == 1) {
txAttribute = map.get(matches.get(0));
+ } else {
+ throw new IllegalStateException(
+ Constants.MESSAGES
+ .getMessage("unable.to.apply.patterns", matches));
}
- else {
- matches = selectLongestPatterns(matches);
- size = matches.size();
-
- if (size == 1) {
- txAttribute = map.get(matches.get(0));
- }
- else {
- throw new IllegalStateException(Constants.MESSAGES.getMessage("unable.to.apply.patterns", matches));
- }
- }
- }
-
- if (txAttribute != null) {
- cache.put(name, txAttribute);
}
}
-
- return txAttribute;
- }
-
- private List<Pattern> findMatches(String name)
+
+ if (txAttribute != null) {
+ cache.put(name, txAttribute);
+ }
+
+ return getType(txAttribute);
+ }
+
+ private TransactionPropagationType getType(String typeSt) {
+ return typeSt == null || typeSt.length() == 0 ? null : TransactionPropagationType.valueOf(typeSt);
+ }
+
+ private List<Pattern> findMatches(String name)
{
List<Pattern> matches = new ArrayList<Pattern>();
for (Pattern p : map.keySet()) {
@@ -173,7 +178,7 @@ public class TxComponentMetaDataHelperIm
}
}
- public synchronized void setComponentTransactionData(ComponentDefinitionRegistry registry, ComponentMetadata component, String value, String method)
+ public synchronized void setComponentTransactionData(ComponentDefinitionRegistry registry, ComponentMetadata component, TransactionPropagationType value, String method)
{
TranData td = data.get(component);
@@ -188,8 +193,8 @@ public class TxComponentMetaDataHelperIm
if (method == null || method.length() == 0) {
method = "*";
}
- if(value == null || value.length() == 0) {
- value = "Required";
+ if(value == null) {
+ value = TransactionPropagationType.Required;
}
String[] names = method.split("[, \t]");
@@ -200,13 +205,13 @@ public class TxComponentMetaDataHelperIm
}
}
- public String getComponentMethodTxAttribute(ComponentMetadata component, String methodName)
+ public TransactionPropagationType getComponentMethodTxAttribute(ComponentMetadata component, String methodName)
{
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Getting the txAttribute for the component {0} and method {1}", component.getId(), methodName);
}
TranData td = data.get(component);
- String result = null;
+ TransactionPropagationType result = null;
if (td != null) {
// bean level transaction always overwrite bundle wide transaction
@@ -242,7 +247,7 @@ public class TxComponentMetaDataHelperIm
return result;
}
- public void populateBundleWideTransactionData(ComponentDefinitionRegistry cdr, String value,
+ public void populateBundleWideTransactionData(ComponentDefinitionRegistry cdr, TransactionPropagationType value,
String method, String bean) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Start populating bundle wide transaction data value {0} method {1} bean {2} per component definition registry", new Object[]{value, method, bean});
Modified: aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java
URL: http://svn.apache.org/viewvc/aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java?rev=1684451&r1=1684450&r2=1684451&view=diff
==============================================================================
--- aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java (original)
+++ aries/branches/subsystemsR6/transaction/transaction-blueprint/src/main/java/org/apache/aries/transaction/TxInterceptorImpl.java Tue Jun 9 15:33:24 2015
@@ -24,6 +24,7 @@ import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
import org.apache.aries.blueprint.Interceptor;
+import org.apache.aries.transaction.annotations.TransactionPropagationType;
import org.apache.aries.transaction.exception.TransactionRollbackException;
import org.osgi.service.blueprint.reflect.ComponentMetadata;
import org.slf4j.Logger;
@@ -99,13 +100,13 @@ public class TxInterceptorImpl implement
public Object preCall(ComponentMetadata cm, Method m,
Object... parameters) throws Throwable {
final String methodName = m.getName();
- final String attribute = metaDataHelper.getComponentMethodTxAttribute(cm, methodName);
+ final TransactionPropagationType type = metaDataHelper.getComponentMethodTxAttribute(cm, methodName);
// attribute could be null here which means no transaction
- if (attribute == null) {
+ if (type == null) {
return null;
}
- TransactionAttribute txAttribute = TransactionAttribute.fromValue(attribute);
+ TransactionAttribute txAttribute = TransactionAttribute.fromValue(type);
if (LOGGER.isDebugEnabled())
LOGGER.debug("Method: " + m + ", has transaction strategy: " + txAttribute);