You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by jw...@apache.org on 2016/06/15 19:23:47 UTC
svn commit: r1748624 [1/3] - in /aries/branches/java6support/blueprint: ./
blueprint-bundle/ blueprint-cm/
blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/
blueprint-cm/src/main/resources/OSGI-INF/blueprint/ blueprint-core/
blueprin...
Author: jwross
Date: Wed Jun 15 19:23:47 2016
New Revision: 1748624
URL: http://svn.apache.org/viewvc?rev=1748624&view=rev
Log:
Merge ^/aries/trunk/blueprint r1728111 through r1748620 into java6support branch.
Added:
aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/MissingNamespaceException.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/MissingNamespaceException.java
aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/pojos/PojoGenerics2.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/pojos/PojoGenerics2.java
aries/branches/java6support/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/ParserServiceImportXSDsBetweenNamespaceHandlersTest.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/ParserServiceImportXSDsBetweenNamespaceHandlersTest.java
aries/branches/java6support/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/cm/handler/
- copied from r1748620, aries/trunk/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/cm/handler/
aries/branches/java6support/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/cm/handler/Aries1503aNamespaceHandler.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/cm/handler/Aries1503aNamespaceHandler.java
aries/branches/java6support/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/cm/handler/Aries1503bNamespaceHandler.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/cm/handler/Aries1503bNamespaceHandler.java
aries/branches/java6support/blueprint/blueprint-itests/src/test/resources/ImportNamespacesTest.xml
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-itests/src/test/resources/ImportNamespacesTest.xml
aries/branches/java6support/blueprint/blueprint-itests/src/test/resources/blueprint-aries-1503-2.xml
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-itests/src/test/resources/blueprint-aries-1503-2.xml
aries/branches/java6support/blueprint/blueprint-itests/src/test/resources/blueprint-aries-1503-2.xsd
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-itests/src/test/resources/blueprint-aries-1503-2.xsd
aries/branches/java6support/blueprint/blueprint-itests/src/test/resources/blueprint-aries-1503.xml
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-itests/src/test/resources/blueprint-aries-1503.xml
aries/branches/java6support/blueprint/blueprint-itests/src/test/resources/blueprint-aries-1503.xsd
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-itests/src/test/resources/blueprint-aries-1503.xsd
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Activation.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Activation.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Argument.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Argument.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ArgumentWriter.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ArgumentWriter.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/service/
- copied from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/service/
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/service/ServiceProvider.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/service/ServiceProvider.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/service/ServiceProviderWriter.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/service/ServiceProviderWriter.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/AnnotatedService.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/AnnotatedService.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithSetters.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/BeanWithSetters.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean5.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean5.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean6.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean6.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBeanAsService.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBeanAsService.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryNamedBean.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryNamedBean.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyProducedWithConstructor.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyProducedWithConstructor.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/ServiceAImplQualified.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/ServiceAImplQualified.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/ServiceC.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/ServiceC.java
aries/branches/java6support/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerHeight.java
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-testbundlea/src/main/java/org/apache/aries/blueprint/testbundlea/NSHandlerHeight.java
aries/branches/java6support/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerheight.xsd
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerheight.xsd
aries/branches/java6support/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerheightinc2.xsd
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerheightinc2.xsd
aries/branches/java6support/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerheightincluded.xsd
- copied unchanged from r1748620, aries/trunk/blueprint/blueprint-testbundlea/src/main/resources/org/apache/aries/blueprint/testbundlea/nshandlerheightincluded.xsd
Removed:
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/OsgiServiceProviderWriter.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BuiltInBeanRef.java
Modified:
aries/branches/java6support/blueprint/ (props changed)
aries/branches/java6support/blueprint/blueprint-bundle/pom.xml
aries/branches/java6support/blueprint/blueprint-cm/pom.xml
aries/branches/java6support/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/CmNamespaceHandler.java
aries/branches/java6support/blueprint/blueprint-cm/src/main/resources/OSGI-INF/blueprint/blueprint-cm.xml
aries/branches/java6support/blueprint/blueprint-core/pom.xml
aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java
aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AggregateConverter.java
aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java
aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/GenericType.java
aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java
aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/WiringTest.java
aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/AggregateConverterTest.java
aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/BeanRecipeTest.java
aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/GenericTypeTest.java
aries/branches/java6support/blueprint/blueprint-core/src/test/resources/test-generics.xml
aries/branches/java6support/blueprint/blueprint-itests/pom.xml
aries/branches/java6support/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/SpringTest.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/ (props changed)
aries/branches/java6support/blueprint/blueprint-maven-plugin/pom.xml
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/FilteredClassFinder.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/GenerateMojo.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/Generator.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/OsgiServiceRefWriter.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Bean.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/BeanRef.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Context.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Introspector.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Matcher.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/OsgiServiceRef.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/ProducedBean.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/model/Property.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/GeneratorTest.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/bad/BadFieldBean1.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/bad/BadFieldBean2.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/bad/BadFieldBean3.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/bad/FieldBean4.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/bad/ParentWithField.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/bad/ParentWithInjectedField.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/model/BeanTest.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean1.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyBean4.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyFactoryBean.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/MyProduced.java
aries/branches/java6support/blueprint/blueprint-maven-plugin/src/test/java/org/apache/aries/blueprint/plugin/test/ServiceReferences.java
aries/branches/java6support/blueprint/blueprint-noosgi/pom.xml
aries/branches/java6support/blueprint/blueprint-parser/pom.xml
aries/branches/java6support/blueprint/blueprint-parser/src/main/java/org/apache/aries/blueprint/NamespaceHandler2.java
aries/branches/java6support/blueprint/blueprint-spring-extender/pom.xml
aries/branches/java6support/blueprint/blueprint-spring/pom.xml
aries/branches/java6support/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/BlueprintNamespaceHandler.java
aries/branches/java6support/blueprint/blueprint-spring/src/main/java/org/apache/aries/blueprint/spring/SpringApplicationContext.java
aries/branches/java6support/blueprint/blueprint-testbundlea/pom.xml
aries/branches/java6support/blueprint/blueprint-testbundlea/src/main/resources/OSGI-INF/blueprint/config.xml
aries/branches/java6support/blueprint/blueprint-testbundleb/pom.xml
aries/branches/java6support/blueprint/blueprint-testbundleb/src/main/resources/OSGI-INF/blueprint/config.xml
aries/branches/java6support/blueprint/blueprint-testbundles/src/main/resources/OSGI-INF/blueprint/config.xml
Propchange: aries/branches/java6support/blueprint/
------------------------------------------------------------------------------
--- svn:mergeinfo (added)
+++ svn:mergeinfo Wed Jun 15 19:23:47 2016
@@ -0,0 +1,2 @@
+/aries/branches/1.0-prototype/blueprint:1306564-1337594
+/aries/trunk/blueprint:1728111-1748620
Modified: aries/branches/java6support/blueprint/blueprint-bundle/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-bundle/pom.xml?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-bundle/pom.xml (original)
+++ aries/branches/java6support/blueprint/blueprint-bundle/pom.xml Wed Jun 15 19:23:47 2016
@@ -122,13 +122,13 @@
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>org.apache.aries.blueprint.core</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.6.3-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>org.apache.aries.blueprint.cm</artifactId>
- <version>1.0.8-SNAPSHOT</version>
+ <version>1.0.9-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
Modified: aries/branches/java6support/blueprint/blueprint-cm/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-cm/pom.xml?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-cm/pom.xml (original)
+++ aries/branches/java6support/blueprint/blueprint-cm/pom.xml Wed Jun 15 19:23:47 2016
@@ -31,7 +31,7 @@
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>org.apache.aries.blueprint.cm</artifactId>
<packaging>bundle</packaging>
- <version>1.0.8-SNAPSHOT</version>
+ <version>1.0.9-SNAPSHOT</version>
<name>Apache Aries Blueprint CM</name>
<description>
This bundle contains the ConfigAdmin namespace for blueprint.
@@ -56,9 +56,9 @@
</aries.osgi.private.pkg>
<blueprint.api.version>1.0.0</blueprint.api.version>
- <blueprint.core.version>1.2.0</blueprint.core.version>
- <blueprint.parser.version>1.1.0</blueprint.parser.version>
- <lastReleaseVersion>1.0.4</lastReleaseVersion>
+ <blueprint.core.version>1.6.3-SNAPSHOT</blueprint.core.version>
+ <blueprint.parser.version>1.4.0</blueprint.parser.version>
+ <lastReleaseVersion>1.0.8</lastReleaseVersion>
</properties>
<profiles>
@@ -66,8 +66,8 @@
<id>dev</id>
<properties>
<blueprint.api.version>1.0.1</blueprint.api.version>
- <blueprint.core.version>1.4.4-SNAPSHOT</blueprint.core.version>
- <blueprint.parser.version>1.3.2-SNAPSHOT</blueprint.parser.version>
+ <blueprint.core.version>1.6.1-SNAPSHOT</blueprint.core.version>
+ <blueprint.parser.version>1.4.0</blueprint.parser.version>
</properties>
</profile>
</profiles>
Modified: aries/branches/java6support/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/CmNamespaceHandler.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/CmNamespaceHandler.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/CmNamespaceHandler.java (original)
+++ aries/branches/java6support/blueprint/blueprint-cm/src/main/java/org/apache/aries/blueprint/compendium/cm/CmNamespaceHandler.java Wed Jun 15 19:23:47 2016
@@ -40,6 +40,8 @@ import org.apache.aries.blueprint.mutabl
import org.apache.aries.blueprint.mutable.MutableReferenceMetadata;
import org.apache.aries.blueprint.mutable.MutableValueMetadata;
import org.apache.aries.blueprint.utils.ServiceListener;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.FrameworkUtil;
import org.osgi.service.blueprint.container.ComponentDefinitionException;
import org.osgi.service.blueprint.reflect.BeanMetadata;
import org.osgi.service.blueprint.reflect.BeanProperty;
@@ -148,7 +150,7 @@ public class CmNamespaceHandler implemen
}
public void setConfigAdmin(ConfigurationAdmin configAdmin) {
- this.configAdmin = configAdmin;
+ CmNamespaceHandler.configAdmin = configAdmin;
}
public URL getSchemaLocation(String namespace) {
@@ -160,6 +162,21 @@ public class CmNamespaceHandler implemen
return getClass().getResource("blueprint-cm-1.1.0.xsd");
} else if (BLUEPRINT_CM_NAMESPACE_1_0.equals(namespace)) {
return getClass().getResource("blueprint-cm-1.0.0.xsd");
+ } else if (namespace.startsWith("http://aries.apache.org/blueprint/xmlns/blueprint-ext")) {
+ try {
+ Class<?> extNsHandlerClazz;
+ Bundle extBundle = FrameworkUtil.getBundle(PlaceholdersUtils.class);
+ if (extBundle == null) {
+ // we may not be in OSGi environment
+ extNsHandlerClazz = getClass().getClassLoader().loadClass("org.apache.aries.blueprint.ext.impl.ExtNamespaceHandler");
+ } else {
+ extNsHandlerClazz = extBundle.loadClass("org.apache.aries.blueprint.ext.impl.ExtNamespaceHandler");
+ }
+ return ((NamespaceHandler) extNsHandlerClazz.newInstance()).getSchemaLocation(namespace);
+ } catch (Throwable t) {
+ LOGGER.warn("Could not locate ext namespace schema", t);
+ return null;
+ }
} else {
return null;
}
Modified: aries/branches/java6support/blueprint/blueprint-cm/src/main/resources/OSGI-INF/blueprint/blueprint-cm.xml
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-cm/src/main/resources/OSGI-INF/blueprint/blueprint-cm.xml?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-cm/src/main/resources/OSGI-INF/blueprint/blueprint-cm.xml (original)
+++ aries/branches/java6support/blueprint/blueprint-cm/src/main/resources/OSGI-INF/blueprint/blueprint-cm.xml Wed Jun 15 19:23:47 2016
@@ -21,22 +21,34 @@
<bean id="CmNamespaceHandler" class="org.apache.aries.blueprint.compendium.cm.CmNamespaceHandler"/>
- <service ref="CmNamespaceHandler" interface="org.apache.aries.blueprint.NamespaceHandler">
+ <service ref="CmNamespaceHandler">
+ <interfaces>
+ <value>org.apache.aries.blueprint.NamespaceHandler</value>
+ </interfaces>
<service-properties>
<entry key="osgi.service.blueprint.namespace" value="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"/>
</service-properties>
</service>
- <service ref="CmNamespaceHandler" interface="org.apache.aries.blueprint.NamespaceHandler">
+ <service ref="CmNamespaceHandler">
+ <interfaces>
+ <value>org.apache.aries.blueprint.NamespaceHandler</value>
+ </interfaces>
<service-properties>
<entry key="osgi.service.blueprint.namespace" value="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"/>
</service-properties>
</service>
- <service ref="CmNamespaceHandler" interface="org.apache.aries.blueprint.NamespaceHandler">
+ <service ref="CmNamespaceHandler">
+ <interfaces>
+ <value>org.apache.aries.blueprint.NamespaceHandler</value>
+ </interfaces>
<service-properties>
<entry key="osgi.service.blueprint.namespace" value="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.2.0"/>
</service-properties>
</service>
- <service ref="CmNamespaceHandler" interface="org.apache.aries.blueprint.NamespaceHandler">
+ <service ref="CmNamespaceHandler">
+ <interfaces>
+ <value>org.apache.aries.blueprint.NamespaceHandler</value>
+ </interfaces>
<service-properties>
<entry key="osgi.service.blueprint.namespace" value="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.3.0"/>
</service-properties>
Modified: aries/branches/java6support/blueprint/blueprint-core/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-core/pom.xml?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-core/pom.xml (original)
+++ aries/branches/java6support/blueprint/blueprint-core/pom.xml Wed Jun 15 19:23:47 2016
@@ -32,7 +32,7 @@
<artifactId>org.apache.aries.blueprint.core</artifactId>
<packaging>bundle</packaging>
<name>Apache Aries Blueprint Core</name>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.6.3-SNAPSHOT</version>
<description>
This bundle contains the core implementation of Blueprint
along with the "ext" namespace handler.
@@ -91,12 +91,12 @@
</aries.osgi.include.resource>
<blueprint.annotation.api.version>1.0.0</blueprint.annotation.api.version>
<blueprint.api.version>1.0.0</blueprint.api.version>
- <blueprint.parser.version>1.5.0-SNAPSHOT</blueprint.parser.version>
+ <blueprint.parser.version>1.4.0</blueprint.parser.version>
<proxy.api.version>1.0.0</proxy.api.version>
<proxy.impl.version>1.0.3</proxy.impl.version>
<quiesce.api.version>1.0.0</quiesce.api.version>
<util.version>1.0.0</util.version>
- <lastReleaseVersion>1.4.0</lastReleaseVersion>
+ <lastReleaseVersion>1.6.0</lastReleaseVersion>
</properties>
<profiles>
@@ -105,7 +105,7 @@
<properties>
<blueprint.annotation.api.version>1.0.1</blueprint.annotation.api.version>
<blueprint.api.version>1.0.1</blueprint.api.version>
- <blueprint.parser.version>1.5.0-SNAPSHOT</blueprint.parser.version>
+ <blueprint.parser.version>1.4.0</blueprint.parser.version>
<proxy.api.version>1.0.1</proxy.api.version>
<proxy.impl.version>1.0.1</proxy.impl.version>
<quiesce.api.version>1.0.0</quiesce.api.version>
Modified: aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java (original)
+++ aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AbstractServiceReferenceRecipe.java Wed Jun 15 19:23:47 2016
@@ -89,7 +89,7 @@ public abstract class AbstractServiceRef
private final AtomicBoolean started = new AtomicBoolean();
private final AtomicBoolean satisfied = new AtomicBoolean();
- private SatisfactionListener satisfactionListener;
+ private volatile SatisfactionListener satisfactionListener;
private final AccessControlContext accessControlContext;
@@ -416,7 +416,10 @@ public abstract class AbstractServiceRef
// so that it will only be true if the value actually changed
if (satisfied.getAndSet(s) != s) {
LOGGER.debug("Service reference with filter {} satisfied {}", getOsgiFilter(), this.satisfied);
- this.satisfactionListener.notifySatisfaction(this);
+ SatisfactionListener listener = this.satisfactionListener;
+ if (listener != null) {
+ listener.notifySatisfaction(this);
+ }
}
}
Modified: aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AggregateConverter.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AggregateConverter.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AggregateConverter.java (original)
+++ aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/AggregateConverter.java Wed Jun 15 19:23:47 2016
@@ -20,7 +20,9 @@ import java.io.ByteArrayInputStream;
import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
+import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.security.AccessControlContext;
@@ -42,6 +44,7 @@ import java.util.concurrent.atomic.Atomi
import java.util.regex.Pattern;
import org.apache.aries.blueprint.container.BeanRecipe.UnwrapperedBeanHolder;
+import org.apache.aries.blueprint.container.GenericType.BoundType;
import org.apache.aries.blueprint.di.CollectionRecipe;
import org.apache.aries.blueprint.di.MapRecipe;
import org.apache.aries.blueprint.services.ExtendedBlueprintContainer;
@@ -460,18 +463,119 @@ public class AggregateConverter implemen
if (from.equals(to)) {
return true;
}
- Type t = from.getRawClass().getGenericSuperclass();
- if (t != null && isTypeAssignable(new GenericType(t), to)) {
- return true;
- }
- for (Type ti : from.getRawClass().getGenericInterfaces()) {
- if (ti != null && isTypeAssignable(new GenericType(ti), to)) {
- return true;
+ if (from.getRawClass() == to.getRawClass()) {
+ if (from.size() == to.size()) {
+ boolean ok = true;
+ for (int i = 0; i < from.size(); i++) {
+ ReifiedType tf = from.getActualTypeArgument(i);
+ ReifiedType tt = to.getActualTypeArgument(i);
+ if (!isWildcardCompatible(tf, tt)) {
+ ok = false;
+ break;
+ }
+ }
+ if (ok) {
+ return true;
+ }
+ }
+ } else {
+ ReifiedType t = getExactSuperType(from, to.getRawClass());
+ if (t != null) {
+ return isTypeAssignable(t, to);
}
}
return false;
}
+ private static ReifiedType getExactSuperType(ReifiedType from, Class<?> to) {
+ if (from.getRawClass() == to) {
+ return from;
+ }
+ if (!to.isAssignableFrom(from.getRawClass())) {
+ return null;
+ }
+ for (ReifiedType superType: getExactDirectSuperTypes(from)) {
+ ReifiedType result = getExactSuperType(superType, to);
+ if (result != null)
+ return result;
+ }
+ return null;
+ }
+
+ public static ReifiedType[] getExactDirectSuperTypes(ReifiedType type) {
+ Class<?> clazz = type.getRawClass();
+ Type[] superInterfaces = clazz.getGenericInterfaces();
+ Type superClass = clazz.getGenericSuperclass();
+ // the only supertype of an interface without superinterfaces is Object
+ if (superClass == null && superInterfaces.length == 0 && clazz.isInterface()) {
+ return new ReifiedType[] { new GenericType(Object.class) };
+ }
+ ReifiedType[] result;
+ int resultIndex;
+ if (superClass == null) {
+ result = new ReifiedType[superInterfaces.length];
+ resultIndex = 0;
+ } else {
+ result = new ReifiedType[superInterfaces.length + 1];
+ resultIndex = 1;
+ result[0] = mapTypeParameters(superClass, type);
+ }
+ for (Type superInterface : superInterfaces) {
+ result[resultIndex++] = mapTypeParameters(superInterface, type);
+ }
+ return result;
+ }
+
+ private static ReifiedType mapTypeParameters(Type toMapType, ReifiedType typeAndParams) {
+ if (typeAndParams.size() == 0 && typeAndParams.getRawClass().getTypeParameters().length > 0) {
+ // Missing generics information, return erased type
+ return new GenericType(new GenericType(toMapType).getRawClass());
+ }
+ if (toMapType instanceof Class) {
+ return new GenericType(toMapType);
+ }
+ Map<TypeVariable<?>, GenericType> map = new HashMap<TypeVariable<?>, GenericType>();
+ for (int i = 0; i < typeAndParams.size(); i++) {
+ map.put(typeAndParams.getRawClass().getTypeParameters()[i], (GenericType) typeAndParams.getActualTypeArgument(i));
+ }
+ return map(map, toMapType);
+ }
+
+
+ private static GenericType map(Map<TypeVariable<?>, GenericType> map, Type type) {
+ if (type instanceof Class) {
+ return new GenericType(type);
+ }
+ if (type instanceof TypeVariable) {
+ TypeVariable<?> tv = (TypeVariable<?>) type;
+ if (!map.containsKey(type)) {
+ throw new IllegalArgumentException("Unable to resolve TypeVariable: " + tv);
+ }
+ return map.get(type);
+ }
+ if (type instanceof ParameterizedType) {
+ ParameterizedType pType = (ParameterizedType) type;
+ GenericType[] args = new GenericType[pType.getActualTypeArguments().length];
+ for (int i = 0; i < args.length; i++) {
+ args[i] = map(map, pType.getActualTypeArguments()[i]);
+ }
+ return new GenericType((Class<?>) pType.getRawType(), args);
+ }
+ throw new RuntimeException("not implemented: mapping " + type.getClass() + " (" + type + ")");
+ }
+
+ private static boolean isWildcardCompatible(ReifiedType from, ReifiedType to) {
+ BoundType fromBoundType = GenericType.boundType(from);
+ BoundType toBoundType = GenericType.boundType(to);
+ if (toBoundType == BoundType.Extends) {
+ return fromBoundType != BoundType.Super && isTypeAssignable(from, GenericType.bound(to));
+ } else if (toBoundType == BoundType.Super) {
+ return fromBoundType != BoundType.Extends && isTypeAssignable(GenericType.bound(to), from);
+ } else {
+ return fromBoundType == BoundType.Exact && GenericType.bound(from).equals(GenericType.bound(to));
+ }
+ }
+
private static Class unwrap(Class c) {
Class u = primitives.get(c);
return u != null ? u : c;
Modified: aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java (original)
+++ aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintContainerImpl.java Wed Jun 15 19:23:47 2016
@@ -54,6 +54,7 @@ import org.apache.aries.blueprint.Proces
import org.apache.aries.blueprint.di.ExecutionContext;
import org.apache.aries.blueprint.di.Recipe;
import org.apache.aries.blueprint.di.Repository;
+import org.apache.aries.blueprint.namespace.MissingNamespaceException;
import org.apache.aries.blueprint.namespace.NamespaceHandlerRegistryImpl;
import org.apache.aries.blueprint.parser.ComponentDefinitionRegistryImpl;
import org.apache.aries.blueprint.parser.NamespaceHandlerSet;
@@ -314,7 +315,7 @@ public class BlueprintContainerImpl
{
List<String> missing = new ArrayList<String>();
List<URI> missingURIs = new ArrayList<URI>();
- for (URI ns : namespaces) {
+ for (URI ns : handlerSet.getNamespaces()) {
if (handlerSet.getNamespaceHandler(ns) == null) {
missing.add("(&(" + Constants.OBJECTCLASS + "=" + NamespaceHandler.class.getName() + ")(" + NamespaceHandlerRegistryImpl.NAMESPACE + "=" + ns + "))");
missingURIs.add(ns);
@@ -337,15 +338,21 @@ public class BlueprintContainerImpl
}
}
}
- if (xmlValidation == null || "true".equals(xmlValidation)) {
- parser.validate(handlerSet.getSchema(parser.getSchemaLocations()));
- } else if ("structure".equals(xmlValidation)) {
- parser.validate(handlerSet.getSchema(parser.getSchemaLocations()), new ValidationHandler());
- } else if ("psvi".equals(xmlValidation)) {
- parser.validatePsvi(handlerSet.getSchema(parser.getSchemaLocations()));
+ try {
+ if (xmlValidation == null || "true".equals(xmlValidation)) {
+ parser.validate(handlerSet.getSchema(parser.getSchemaLocations()));
+ } else if ("structure".equals(xmlValidation)) {
+ parser.validate(handlerSet.getSchema(parser.getSchemaLocations()), new ValidationHandler());
+ } else if ("psvi".equals(xmlValidation)) {
+ parser.validatePsvi(handlerSet.getSchema(parser.getSchemaLocations()));
+ }
+ parser.populate(handlerSet, componentDefinitionRegistry);
+ state = State.Populated;
+ } catch (MissingNamespaceException e) {
+ // If we found a missing namespace when parsing the schema,
+ // we remain in the current state
+ handlerSet.getNamespaces().add(e.getNamespace());
}
- parser.populate(handlerSet, componentDefinitionRegistry);
- state = State.Populated;
break;
}
case Populated:
@@ -926,13 +933,13 @@ public class BlueprintContainerImpl
}
public void namespaceHandlerRegistered(URI uri) {
- if (namespaces != null && namespaces.contains(uri)) {
+ if (handlerSet != null && handlerSet.getNamespaces().contains(uri)) {
schedule();
}
}
public void namespaceHandlerUnregistered(URI uri) {
- if (namespaces != null && namespaces.contains(uri)) {
+ if (handlerSet != null && handlerSet.getNamespaces().contains(uri)) {
synchronized (scheduled) {
if (destroyed.get()) {
return;
@@ -941,6 +948,10 @@ public class BlueprintContainerImpl
resetComponentDefinitionRegistry();
cancelFutureIfPresent();
this.repository = null;
+ handlerSet.removeListener(this);
+ handlerSet.destroy();
+ handlerSet = handlers.getNamespaceHandlers(namespaces, getBundle());
+ handlerSet.addListener(this);
state = State.WaitForNamespaceHandlers;
schedule();
}
Modified: aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/GenericType.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/GenericType.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/GenericType.java (original)
+++ aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/GenericType.java Wed Jun 15 19:23:47 2016
@@ -56,15 +56,27 @@ public class GenericType extends Reified
primitiveClasses.put("boolean", boolean.class);
}
+ enum BoundType {
+ Exact,
+ Extends,
+ Super
+ }
+
private GenericType[] parameters;
+ private BoundType boundType;
public GenericType(Type type) {
- this(getConcreteClass(type), parametersOf(type));
+ this(getConcreteClass(type), boundType(type), parametersOf(type));
}
public GenericType(Class clazz, GenericType... parameters) {
+ this(clazz, BoundType.Exact, parameters);
+ }
+
+ public GenericType(Class clazz, BoundType boundType, GenericType... parameters) {
super(clazz);
this.parameters = parameters;
+ this.boundType = boundType;
}
public static GenericType parse(String rawType, final Object loader) throws ClassNotFoundException, IllegalArgumentException {
@@ -92,6 +104,16 @@ public class GenericType extends Reified
if (primitiveClasses.containsKey(type)) {
return new GenericType(primitiveClasses.get(type));
}
+ // Extends
+ if (type.startsWith("? extends ")) {
+ String raw = type.substring("? extends ".length());
+ return new GenericType(((ClassLoader) loader).loadClass(raw), BoundType.Extends);
+ }
+ // Super
+ if (type.startsWith("? super ")) {
+ String raw = type.substring("? extends ".length());
+ return new GenericType(((ClassLoader) loader).loadClass(raw), BoundType.Super);
+ }
// Class
if (loader instanceof ClassLoader) {
return new GenericType(((ClassLoader) loader).loadClass(type));
@@ -133,6 +155,12 @@ public class GenericType extends Reified
@Override
public String toString() {
+ StringBuilder sb = new StringBuilder();
+ if (boundType == BoundType.Extends) {
+ sb.append("? extends ");
+ } else if (boundType == BoundType.Super) {
+ sb.append("? super ");
+ }
Class cl = getRawClass();
if (cl.isArray()) {
if (parameters.length > 0) {
@@ -141,9 +169,8 @@ public class GenericType extends Reified
return cl.getComponentType().getName() + "[]";
}
}
+ sb.append(cl.getName());
if (parameters.length > 0) {
- StringBuilder sb = new StringBuilder();
- sb.append(cl.getName());
sb.append("<");
for (int i = 0; i < parameters.length; i++) {
if (i > 0) {
@@ -152,9 +179,8 @@ public class GenericType extends Reified
sb.append(parameters[i].toString());
}
sb.append(">");
- return sb.toString();
}
- return cl.getName();
+ return sb.toString();
}
public boolean equals(Object object) {
@@ -165,6 +191,9 @@ public class GenericType extends Reified
if (getRawClass() != other.getRawClass()) {
return false;
}
+ if (boundType != other.boundType) {
+ return false;
+ }
if (parameters == null) {
return (other.parameters == null);
} else {
@@ -182,7 +211,33 @@ public class GenericType extends Reified
return true;
}
}
-
+
+ static ReifiedType bound(ReifiedType type) {
+ if (type instanceof GenericType
+ && ((GenericType) type).boundType != BoundType.Exact) {
+ GenericType t = (GenericType) type;
+ return new GenericType(t.getRawClass(), BoundType.Exact, t.parameters);
+ }
+ return type;
+ }
+
+ static BoundType boundType(ReifiedType type) {
+ if (type instanceof GenericType) {
+ return ((GenericType) type).boundType;
+ } else {
+ return BoundType.Exact;
+ }
+ }
+
+ static BoundType boundType(Type type) {
+ if (type instanceof WildcardType) {
+ WildcardType wct = (WildcardType) type;
+ return wct.getLowerBounds().length == 0
+ ? BoundType.Extends : BoundType.Super;
+ }
+ return BoundType.Exact;
+ }
+
static GenericType[] parametersOf(Type type) {
if (type instanceof Class) {
Class clazz = (Class) type;
Modified: aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java (original)
+++ aries/branches/java6support/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/namespace/NamespaceHandlerRegistryImpl.java Wed Jun 15 19:23:47 2016
@@ -18,6 +18,10 @@
*/
package org.apache.aries.blueprint.namespace;
+import static javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI;
+import static javax.xml.XMLConstants.XML_NS_URI;
+import static org.apache.aries.blueprint.parser.Parser.BLUEPRINT_NAMESPACE;
+
import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
@@ -44,7 +48,7 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CopyOnWriteArraySet;
-import javax.xml.XMLConstants;
+
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
@@ -74,8 +78,6 @@ import org.xml.sax.SAXException;
*/
public class NamespaceHandlerRegistryImpl implements NamespaceHandlerRegistry, ServiceTrackerCustomizer {
- public static final URI BLUEPRINT_NAMESPACE = URI.create("http://www.osgi.org/xmlns/blueprint/v1.0.0");
-
public static final String NAMESPACE = "osgi.service.blueprint.namespace";
private static final Logger LOGGER = LoggerFactory.getLogger(NamespaceHandlerRegistryImpl.class);
@@ -96,7 +98,7 @@ public class NamespaceHandlerRegistryImp
// Access to this factory is synchronized on itself
private final SchemaFactory schemaFactory =
- SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+ SchemaFactory.newInstance(W3C_XML_SCHEMA_NS_URI);
// Access to this variable is must be synchronized on itself
private final ArrayList<NamespaceHandlerSetImpl> sets =
@@ -251,25 +253,6 @@ public class NamespaceHandlerRegistryImp
tracker.close();
}
- private Schema getSchema(Map<URI, NamespaceHandler> handlers,
- final Bundle bundle,
- final Properties schemaMap,
- Map<String, String> locations) throws IOException, SAXException {
- if (schemaMap != null && !schemaMap.isEmpty()) {
- return createSchema(handlers, bundle, schemaMap, locations);
- }
- // Find a schema that can handle all the requested namespaces
- // If it contains additional namespaces, it should not be a problem since
- // they won't be used at all
- Schema schema = getExistingSchema(handlers);
- if (schema == null) {
- // Create schema
- schema = createSchema(handlers, bundle, schemaMap, locations);
- cacheSchema(handlers, schema);
- }
- return schema;
- }
-
private Schema getExistingSchema(Map<URI, NamespaceHandler> handlers) {
synchronized (schemas) {
for (Map<URI, NamespaceHandler> key : schemas.keySet()) {
@@ -324,48 +307,6 @@ public class NamespaceHandlerRegistryImp
}
}
- private Schema createSchema(Map<URI, NamespaceHandler> handlers,
- Bundle bundle,
- Properties schemaMap,
- Map<String, String> locations) throws IOException, SAXException {
- final List<StreamSource> schemaSources = new ArrayList<StreamSource>();
- try {
- schemaSources.add(new StreamSource(getClass().getResourceAsStream("/org/apache/aries/blueprint/blueprint.xsd")));
- // Create a schema for all namespaces known at this point
- // It will speed things as it can be reused for all other blueprint containers
- for (URI ns : handlers.keySet()) {
- URL url = handlers.get(ns).getSchemaLocation(ns.toString());
- if (url == null && locations != null) {
- String loc = locations.get(ns.toString());
- if (loc != null) {
- url = handlers.get(ns).getSchemaLocation(loc);
- }
- }
- if (url == null) {
- LOGGER.warn("No URL is defined for schema " + ns + ". This schema will not be validated");
- } else {
- schemaSources.add(new StreamSource(url.openStream(), url.toExternalForm()));
- }
- }
- for (Object ns : schemaMap.values()) {
- URL url = bundle.getResource(ns.toString());
- if (url == null) {
- LOGGER.warn("No URL is defined for schema " + ns + ". This schema will not be validated");
- } else {
- schemaSources.add(new StreamSource(url.openStream(), url.toExternalForm()));
- }
- }
- synchronized (schemaFactory) {
- schemaFactory.setResourceResolver(new BundleResourceResolver(schemaMap, bundle, schemaSources));
- return schemaFactory.newSchema(schemaSources.toArray(new Source[schemaSources.size()]));
- }
- } finally {
- for (StreamSource s : schemaSources) {
- closeQuietly(s.getInputStream());
- }
- }
- }
-
private static void closeQuietly(Closeable closeable) {
try {
if (closeable != null) {
@@ -376,82 +317,11 @@ public class NamespaceHandlerRegistryImp
}
}
- private class BundleResourceResolver implements LSResourceResolver {
- private final Properties schemaMap;
- private final Bundle bundle;
- private final List<StreamSource> schemaSources;
-
- public BundleResourceResolver(Properties schemaMap, Bundle bundle, List<StreamSource> schemaSources) {
- this.schemaMap = schemaMap;
- this.bundle = bundle;
- this.schemaSources = schemaSources;
- }
-
- public LSInput resolveResource(String type,
- final String namespaceURI,
- final String publicId,
- String systemId, String baseURI) {
- String loc = null;
- if (namespaceURI != null) {
- loc = schemaMap.getProperty(namespaceURI);
- }
- if (loc == null && publicId != null) {
- loc = schemaMap.getProperty(publicId);
- }
- if (loc == null && systemId != null) {
- loc = schemaMap.getProperty(systemId);
- }
- if (loc != null) {
- URL url = bundle.getResource(loc);
- if (url != null) {
- try {
- StreamSource source
- = new StreamSource(url.openStream(), url.toExternalForm());
- schemaSources.add(source);
- return new SourceLSInput(source, publicId, url);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- }
- URI uri = URI.create(namespaceURI);
- Set<NamespaceHandler> hs = NamespaceHandlerRegistryImpl.this.handlers.get(uri);
- if (hs == null) {
- return null;
- }
- for (NamespaceHandler h : hs) {
- URL url = h.getSchemaLocation(namespaceURI);
- if (url != null) {
- // handling include-relative-path case
- if (systemId != null && !systemId.matches("^[a-z][-+.0-9a-z]*:.*")) {
- try {
- url = new URL(url, systemId);
- } catch (Exception e) {
- // ignore and use the given systemId
- }
- }
- try {
- final StreamSource source = new StreamSource(url.openStream(), url.toExternalForm());
- schemaSources.add(source);
- return new SourceLSInput(source, publicId, url);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- }
- }
- return null;
- }
- }
-
- private class SourceLSInput implements LSInput {
+ private static class SourceLSInput implements LSInput {
private final StreamSource source;
- private final URL systemId;
- private final String publicId;
- public SourceLSInput(StreamSource source, String publicId, URL systemId) {
+ public SourceLSInput(StreamSource source) {
this.source = source;
- this.publicId = publicId;
- this.systemId = systemId;
}
public Reader getCharacterStream() {
@@ -476,14 +346,14 @@ public class NamespaceHandlerRegistryImp
}
public String getSystemId() {
- return systemId.toExternalForm();
+ return source.getSystemId();
}
public void setSystemId(String systemId) {
}
public String getPublicId() {
- return publicId;
+ return null;
}
public void setPublicId(String publicId) {
@@ -522,7 +392,7 @@ public class NamespaceHandlerRegistryImp
public NamespaceHandlerSetImpl(Set<URI> namespaces, Bundle bundle) {
this.listeners = new CopyOnWriteArrayList<Listener>();
- this.namespaces = namespaces;
+ this.namespaces = new HashSet<URI>(namespaces);
this.bundle = bundle;
handlers = new ConcurrentHashMap<URI, NamespaceHandler>();
for (URI ns : namespaces) {
@@ -571,11 +441,211 @@ public class NamespaceHandlerRegistryImp
throw new IllegalStateException("NamespaceHandlerSet is not complete");
}
if (schema == null) {
- schema = NamespaceHandlerRegistryImpl.this.getSchema(handlers, bundle, schemaMap, locations);
+ schema = doGetSchema(locations);
+ }
+ return schema;
+ }
+
+ private Schema doGetSchema(Map<String, String> locations) throws IOException, SAXException {
+ if (schemaMap != null && !schemaMap.isEmpty()) {
+ return createSchema(locations);
+ }
+ // Find a schema that can handle all the requested namespaces
+ // If it contains additional namespaces, it should not be a problem since
+ // they won't be used at all
+ Schema schema = getExistingSchema(handlers);
+ if (schema == null) {
+ // Create schema
+ schema = createSchema(locations);
+ cacheSchema(handlers, schema);
}
return schema;
}
+ private class Loader implements LSResourceResolver, Closeable {
+ final List<StreamSource> sources = new ArrayList<StreamSource>();
+ final Map<String, URL> loaded = new HashMap<String, URL>();
+ final Map<String, String> namespaces = new HashMap<String, String>();
+ @Override
+ public LSInput resolveResource(String type, String namespaceURI, String publicId, String systemId, String baseURI) {
+ // Compute id
+ String id;
+ String prevNamespace = baseURI != null ? namespaces.get(baseURI) : null;
+ if (namespaceURI != null && prevNamespace != null && namespaceURI.equals(prevNamespace)) {
+ // This is an include
+ id = getId(type, namespaceURI, publicId, systemId);
+ } else {
+ id = getId(type, namespaceURI, publicId, null);
+ }
+ // Check if it has already been loaded
+ if (loaded.containsKey(id)) {
+ return createLSInput(loaded.get(id), id, namespaceURI);
+ }
+ // Schema map
+ //-----------
+ // Use provided schema map to find the resource.
+ // If the schema map contains the namespaceURI, publicId or systemId,
+ // load the corresponding resource directly from the bundle.
+ String loc = null;
+ if (namespaceURI != null) {
+ loc = schemaMap.getProperty(namespaceURI);
+ }
+ if (loc == null && publicId != null) {
+ loc = schemaMap.getProperty(publicId);
+ }
+ if (loc == null && systemId != null) {
+ loc = schemaMap.getProperty(systemId);
+ }
+ if (loc != null) {
+ URL url = bundle.getResource(loc);
+ if (url != null) {
+ return createLSInput(url, id, namespaceURI);
+ }
+ }
+ // Relative uris
+ //---------------
+ // For relative uris, don't use the namespace handlers, but simply resolve the uri
+ // and use that one directly to load the resource.
+ String resolved = resolveIfRelative(systemId, baseURI);
+ if (resolved != null) {
+ URL url;
+ try {
+ url = new URL(resolved);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ return createLSInput(url, id, namespaceURI);
+ }
+ // Only support xml schemas from now on
+ if (namespaceURI == null || !W3C_XML_SCHEMA_NS_URI.equals(type)) {
+ return null;
+ }
+ // We are now loading a schema, or schema part with
+ // * notNull(namespaceURI)
+ // * null(systemId) or absolute(systemId)
+ URI nsUri = URI.create(namespaceURI);
+ String rid = systemId != null ? systemId : namespaceURI;
+ NamespaceHandler h = getNamespaceHandler(nsUri);
+ // This is a resource from a known namespace
+ if (h != null) {
+ URL url = h.getSchemaLocation(rid);
+ if (isCorrectUrl(url)) {
+ return createLSInput(url, id, namespaceURI);
+ }
+ }
+ else {
+ // Ask known handlers if they have this schema
+ for (NamespaceHandler hd : handlers.values()) {
+ URL url = hd.getSchemaLocation(rid);
+ if (isCorrectUrl(url)) {
+ return createLSInput(url, id, namespaceURI);
+ }
+ }
+ // Find a compatible namespace handler
+ h = findCompatibleNamespaceHandler(nsUri);
+ if (h != null) {
+ URL url = h.getSchemaLocation(namespaceURI);
+ if (url == null) {
+ url = h.getSchemaLocation(rid);
+ }
+ if (isCorrectUrl(url)) {
+ LOGGER.warn("Dynamically adding namespace handler {} to bundle {}/{}",
+ nsUri, bundle.getSymbolicName(), bundle.getVersion());
+ return createLSInput(url, id, namespaceURI);
+ }
+ }
+ }
+ LOGGER.warn("Unable to find namespace handler for {}", namespaceURI);
+ return null;
+ }
+
+ public String getId(String type, String namespaceURI, String publicId, String systemId) {
+ return type + "|" + namespaceURI + "|" + publicId + "|" + systemId;
+ }
+
+ public StreamSource use(URL resource, String id, String namespace) throws IOException {
+ String url = resource.toExternalForm();
+ StreamSource ss = new StreamSource(resource.openStream(), url);
+ sources.add(ss);
+ loaded.put(id, resource);
+ namespaces.put(url, namespace);
+ return ss;
+ }
+
+ @Override
+ public void close() {
+ for (StreamSource source : sources) {
+ closeQuietly(source.getInputStream());
+ }
+ }
+
+ public Source[] getSources() {
+ return sources.toArray(new Source[sources.size()]);
+ }
+
+ private boolean isCorrectUrl(URL url) {
+ return url != null && !loaded.values().contains(url);
+ }
+ private String resolveIfRelative(String systemId, String baseURI) {
+ if (baseURI != null && systemId != null) {
+ URI sId = URI.create(systemId);
+ if (!sId.isAbsolute()) {
+ return URI.create(baseURI).resolve(sId).toString();
+ }
+ }
+ return null;
+ }
+ private LSInput createLSInput(URL url, String id, String namespace) {
+ try {
+ return new SourceLSInput(use(url, id, namespace));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ private Schema createSchema(Map<String, String> locations) throws IOException, SAXException {
+ Loader loader = new Loader();
+ try {
+ loader.use(getClass().getResource("/org/osgi/service/blueprint/blueprint.xsd"),
+ loader.getId(W3C_XML_SCHEMA_NS_URI, BLUEPRINT_NAMESPACE, null, null),
+ BLUEPRINT_NAMESPACE);
+ loader.use(getClass().getResource("/org/apache/aries/blueprint/ext/impl/xml.xsd"),
+ loader.getId(W3C_XML_SCHEMA_NS_URI, XML_NS_URI, null, null),
+ XML_NS_URI);
+
+ // Create a schema for the namespaces
+ for (URI ns : handlers.keySet()) {
+ URL url = handlers.get(ns).getSchemaLocation(ns.toString());
+ if (url == null && locations != null) {
+ String loc = locations.get(ns.toString());
+ if (loc != null) {
+ url = handlers.get(ns).getSchemaLocation(loc);
+ }
+ }
+ if (url == null) {
+ LOGGER.warn("No URL is defined for schema " + ns + ". This schema will not be validated");
+ } else {
+ loader.use(url, loader.getId(W3C_XML_SCHEMA_NS_URI, ns.toString(), null, null), ns.toString());
+ }
+ }
+ for (Object ns : schemaMap.values()) {
+ URL url = bundle.getResource(ns.toString());
+ if (url == null) {
+ LOGGER.warn("No URL is defined for schema " + ns + ". This schema will not be validated");
+ } else {
+ loader.use(url, loader.getId(W3C_XML_SCHEMA_NS_URI, ns.toString(), null, null), ns.toString());
+ }
+ }
+ synchronized (schemaFactory) {
+ schemaFactory.setResourceResolver(loader);
+ return schemaFactory.newSchema(loader.getSources());
+ }
+ } finally {
+ loader.close();
+ }
+ }
+
public void addListener(Listener listener) {
listeners.add(listener);
}
@@ -649,6 +719,7 @@ public class NamespaceHandlerRegistryImp
}
}
if (compat) {
+ namespaces.add(ns);
handlers.put(ns, h);
return h;
}
Modified: aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/WiringTest.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/WiringTest.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/WiringTest.java (original)
+++ aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/WiringTest.java Wed Jun 15 19:23:47 2016
@@ -18,6 +18,7 @@
*/
package org.apache.aries.blueprint;
+import java.lang.reflect.Constructor;
import java.math.BigInteger;
import java.net.URI;
import java.util.ArrayList;
@@ -36,7 +37,9 @@ import java.util.TimeZone;
import junit.framework.Assert;
import org.apache.aries.blueprint.CallbackTracker.Callback;
+import org.apache.aries.blueprint.container.AggregateConverter;
import org.apache.aries.blueprint.container.BlueprintRepository;
+import org.apache.aries.blueprint.container.GenericType;
import org.apache.aries.blueprint.container.ServiceRecipe;
import org.apache.aries.blueprint.di.CircularDependencyException;
import org.apache.aries.blueprint.di.ExecutionContext;
@@ -52,6 +55,10 @@ import org.apache.aries.blueprint.pojos.
import org.apache.aries.blueprint.pojos.PojoA;
import org.apache.aries.blueprint.pojos.PojoB;
import org.apache.aries.blueprint.pojos.PojoGenerics;
+import org.apache.aries.blueprint.pojos.PojoGenerics2.MyClass;
+import org.apache.aries.blueprint.pojos.PojoGenerics2.MyObject;
+import org.apache.aries.blueprint.pojos.PojoGenerics2.Tata;
+import org.apache.aries.blueprint.pojos.PojoGenerics2.Toto;
import org.apache.aries.blueprint.pojos.PojoListener;
import org.apache.aries.blueprint.pojos.PojoRecursive;
import org.apache.aries.blueprint.pojos.Primavera;
@@ -399,6 +406,12 @@ public class WiringTest extends Abstract
assertEquals(map, ((Multiple)obj).getProperties());
}
+ public void testGenerics2() throws Exception {
+ ComponentDefinitionRegistryImpl registry = parse("/test-generics.xml");
+ Repository repository = new TestBlueprintContainer(registry).getRepository();
+ repository.create("gen2");
+ }
+
public void testGenerics() throws Exception {
ComponentDefinitionRegistryImpl registry = parse("/test-generics.xml");
Repository repository = new TestBlueprintContainer(registry).getRepository();
Modified: aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/AggregateConverterTest.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/AggregateConverterTest.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/AggregateConverterTest.java (original)
+++ aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/AggregateConverterTest.java Wed Jun 15 19:23:47 2016
@@ -19,6 +19,7 @@
package org.apache.aries.blueprint.container;
import java.io.ByteArrayOutputStream;
+import java.lang.reflect.Constructor;
import java.math.BigInteger;
import java.net.URI;
import java.net.URL;
@@ -33,6 +34,10 @@ import java.util.Properties;
import junit.framework.TestCase;
import org.apache.aries.blueprint.TestBlueprintContainer;
+import org.apache.aries.blueprint.pojos.PojoGenerics2.MyClass;
+import org.apache.aries.blueprint.pojos.PojoGenerics2.MyObject;
+import org.apache.aries.blueprint.pojos.PojoGenerics2.Tata;
+import org.apache.aries.blueprint.pojos.PojoGenerics2.Toto;
import org.osgi.service.blueprint.container.ReifiedType;
import org.osgi.service.blueprint.container.Converter;
@@ -193,6 +198,14 @@ public class AggregateConverterTest exte
assertNull(result);
}
+ public void testGenericWilcard() throws Exception {
+ Constructor cns = MyClass.class.getConstructor(MyObject.class);
+ assertTrue(AggregateConverter.isAssignable(new Toto(), new GenericType(cns.getGenericParameterTypes()[0])));
+
+ cns = Tata.class.getConstructor(MyObject.class);
+ assertTrue(AggregateConverter.isAssignable(new Toto(), new GenericType(cns.getGenericParameterTypes()[0])));
+ }
+
public void testGenericAssignable() throws Exception {
AggregateConverter s = new AggregateConverter(new TestBlueprintContainer(null));
Modified: aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/BeanRecipeTest.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/BeanRecipeTest.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/BeanRecipeTest.java (original)
+++ aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/BeanRecipeTest.java Wed Jun 15 19:23:47 2016
@@ -68,6 +68,16 @@ public class BeanRecipeTest {
public ExampleService(Example<String> e) {}
}
+ static public interface BaseInterface<T> { }
+ static public interface ExtendedInterface<T0, T1> extends BaseInterface<T1> {}
+ static public class MyClass implements ExtendedInterface<String, Integer> { }
+ static public class MyClass2<T> implements BaseInterface<T> { }
+ static public class MyClass3 extends MyClass2<Long> { }
+ static public class MyService {
+ public MyService(BaseInterface<? extends Number> e) {}
+ }
+
+
static public interface A {
String getA();
void setA(String a);
@@ -126,6 +136,26 @@ public class BeanRecipeTest {
recipe.setArgTypes(Arrays.<String>asList((String) null));
ExecutionContext.Holder.setContext(new BlueprintRepository(container));
recipe.create();
+ }
+
+ @Test
+ public void parameterWithComplexGenerics1() throws Exception {
+ BlueprintContainerImpl container = new BlueprintContainerImpl(null, null, null, null, null, null, null, null, null, null);
+ BeanRecipe recipe = new BeanRecipe("example", container, MyService.class, false);
+ recipe.setArguments(Arrays.<Object>asList(new MyClass()));
+ recipe.setArgTypes(Arrays.<String>asList((String) null));
+ ExecutionContext.Holder.setContext(new BlueprintRepository(container));
+ recipe.create();
+ }
+
+ @Test
+ public void parameterWithComplexGenerics2() throws Exception {
+ BlueprintContainerImpl container = new BlueprintContainerImpl(null, null, null, null, null, null, null, null, null, null);
+ BeanRecipe recipe = new BeanRecipe("example", container, MyService.class, false);
+ recipe.setArguments(Arrays.<Object>asList(new MyClass3()));
+ recipe.setArgTypes(Arrays.<String>asList((String) null));
+ ExecutionContext.Holder.setContext(new BlueprintRepository(container));
+ recipe.create();
}
@Test
Modified: aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/GenericTypeTest.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/GenericTypeTest.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/GenericTypeTest.java (original)
+++ aries/branches/java6support/blueprint/blueprint-core/src/test/java/org/apache/aries/blueprint/container/GenericTypeTest.java Wed Jun 15 19:23:47 2016
@@ -62,6 +62,11 @@ public class GenericTypeTest extends Tes
assertEquals(List[].class, type.getRawClass());
assertEquals(1, type.size());
assertEquals(Integer.class, type.getActualTypeArgument(0).getActualTypeArgument(0).getRawClass());
+
+ type = parse("java.util.List<? extends java.lang.Number>");
+ assertEquals(List.class, type.getRawClass());
+ assertEquals(1, type.size());
+ assertEquals(Number.class, type.getActualTypeArgument(0).getRawClass());
}
public void testBasic() throws Exception {
Modified: aries/branches/java6support/blueprint/blueprint-core/src/test/resources/test-generics.xml
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-core/src/test/resources/test-generics.xml?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-core/src/test/resources/test-generics.xml (original)
+++ aries/branches/java6support/blueprint/blueprint-core/src/test/resources/test-generics.xml Wed Jun 15 19:23:47 2016
@@ -20,6 +20,12 @@
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0"
default-availability="mandatory" >
+ <bean id="gen2" class="org.apache.aries.blueprint.pojos.PojoGenerics2$MyClass">
+ <argument>
+ <bean class="org.apache.aries.blueprint.pojos.PojoGenerics2$Toto"/>
+ </argument>
+ </bean>
+
<bean id="method" class="org.apache.aries.blueprint.pojos.PojoGenerics">
<property name="list">
<list>
Modified: aries/branches/java6support/blueprint/blueprint-itests/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-itests/pom.xml?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-itests/pom.xml (original)
+++ aries/branches/java6support/blueprint/blueprint-itests/pom.xml Wed Jun 15 19:23:47 2016
@@ -62,12 +62,12 @@
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>org.apache.aries.blueprint.core</artifactId>
- <version>1.6.0-SNAPSHOT</version>
+ <version>1.6.3-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>blueprint-parser</artifactId>
- <version>1.5.0-SNAPSHOT</version>
+ <version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
@@ -144,7 +144,7 @@
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>org.apache.aries.blueprint.cm</artifactId>
- <version>1.0.8-SNAPSHOT</version>
+ <version>1.0.9-SNAPSHOT</version>
<type>bundle</type>
<scope>compile</scope>
<exclusions>
@@ -188,7 +188,7 @@
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>org.apache.aries.blueprint.testbundlea</artifactId>
<scope>test</scope>
- <version>1.0.1-SNAPSHOT</version>
+ <version>1.1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
Modified: aries/branches/java6support/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/SpringTest.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/SpringTest.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/SpringTest.java (original)
+++ aries/branches/java6support/blueprint/blueprint-itests/src/test/java/org/apache/aries/blueprint/itests/SpringTest.java Wed Jun 15 19:23:47 2016
@@ -32,6 +32,7 @@ import static org.apache.aries.blueprint
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
+import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
public class SpringTest extends AbstractBlueprintIntegrationTest {
@@ -72,6 +73,8 @@ public class SpringTest extends Abstract
mvnBundle("org.apache.servicemix.bundles", "org.apache.servicemix.bundles.spring-aop"),
mvnBundle("org.apache.servicemix.bundles", "org.apache.servicemix.bundles.spring-expression"),
mvnBundle("org.apache.servicemix.bundles", "org.apache.servicemix.bundles.spring-tx"),
+ // Axon namespace handler for testing
+ mavenBundle("org.axonframework", "axon-core", "2.4.4"),
// test bundle
mvnBundle("org.apache.aries.blueprint", "org.apache.aries.blueprint.testbundles", false),
};
Propchange: aries/branches/java6support/blueprint/blueprint-maven-plugin/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Wed Jun 15 19:23:47 2016
@@ -5,3 +5,4 @@ target
.project
velocity.log
.externalToolBuilders
+.idea
Modified: aries/branches/java6support/blueprint/blueprint-maven-plugin/pom.xml
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-maven-plugin/pom.xml?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-maven-plugin/pom.xml (original)
+++ aries/branches/java6support/blueprint/blueprint-maven-plugin/pom.xml Wed Jun 15 19:23:47 2016
@@ -31,7 +31,7 @@
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>blueprint-maven-plugin</artifactId>
<packaging>maven-plugin</packaging>
- <version>1.4.0-SNAPSHOT</version>
+ <version>1.5.0-SNAPSHOT</version>
<name>Apache Aries Blueprint Maven Plugin</name>
<description>
Maven plugin to create blueprint files from annotations
@@ -57,6 +57,27 @@
<source>1.7</source>
</configuration>
</plugin>
+ <plugin>
+ <artifactId>maven-plugin-plugin</artifactId>
+ <version>3.4</version>
+ <executions>
+ <execution>
+ <id>default-descriptor</id>
+ <goals>
+ <goal>descriptor</goal>
+ </goals>
+ <phase>process-classes</phase>
+ </execution>
+ <execution>
+ <id>help-descriptor</id>
+ <goals>
+ <goal>helpmojo</goal>
+ </goals>
+ <phase>process-classes</phase>
+ </execution>
+ </executions>
+ </plugin>
+
</plugins>
<pluginManagement>
<plugins>
@@ -98,6 +119,11 @@
<dependencies>
<dependency>
+ <groupId>org.apache.maven.plugin-tools</groupId>
+ <artifactId>maven-plugin-annotations</artifactId>
+ <version>3.4</version>
+ </dependency>
+ <dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
@@ -226,14 +252,5 @@
</dependency>
</dependencies>
- <reporting>
- <plugins>
- <plugin>
- <artifactId>maven-plugin-plugin</artifactId>
- <version>2.9</version>
- </plugin>
- </plugins>
-
- </reporting>
</project>
Modified: aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/FilteredClassFinder.java
URL: http://svn.apache.org/viewvc/aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/FilteredClassFinder.java?rev=1748624&r1=1748623&r2=1748624&view=diff
==============================================================================
--- aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/FilteredClassFinder.java (original)
+++ aries/branches/java6support/blueprint/blueprint-maven-plugin/src/main/java/org/apache/aries/blueprint/plugin/FilteredClassFinder.java Wed Jun 15 19:23:47 2016
@@ -18,17 +18,16 @@
*/
package org.apache.aries.blueprint.plugin;
+import org.apache.xbean.finder.ClassFinder;
+import org.springframework.stereotype.Component;
+
+import javax.inject.Named;
+import javax.inject.Singleton;
import java.lang.annotation.Annotation;
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.apache.xbean.finder.ClassFinder;
-import org.springframework.stereotype.Component;
-
public class FilteredClassFinder {
@SuppressWarnings("unchecked")
@@ -50,12 +49,9 @@ public class FilteredClassFinder {
for (String packageName : packageNames) {
if (clazz.getPackage().getName().startsWith(packageName)) {
filteredClasses.add(clazz);
- continue;
}
}
}
- //System.out.println("Raw: " + rawClasses);
- //System.out.println("Filtered: " + beanClasses);
return filteredClasses;
}
}