Modified: aries/trunk/cdi/cdi-itests/cdi-executable.bndrun URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/cdi-executable.bndrun?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/cdi-executable.bndrun (original) +++ aries/trunk/cdi/cdi-itests/cdi-executable.bndrun Sat Apr 14 01:10:27 2018 @@ -6,29 +6,31 @@ -runrequires: \ osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.extension.http)',\ - osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.extension.jndi)',\ - osgi.identity;filter:='(osgi.identity=org.apache.aries.jndi.core)',\ - osgi.identity;filter:='(osgi.identity=org.apache.felix.configadmin)',\ osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\ - osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.jline)',\ - osgi.identity;filter:='(osgi.identity=ch.qos.logback.classic)' + osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.jline)' --runbundles: \ +-runpath: \ ch.qos.logback.classic;version='[1.2.3,1.2.4)',\ ch.qos.logback.core;version='[1.2.3,1.2.4)',\ + slf4j.api;version='[1.7.25,1.7.26)' + +-runsystempackages: \ + org.slf4j;version=1.7.25,\ + org.slf4j.helpers;version=1.7.25,\ + org.slf4j.spi;version=1.7.25 + +-runbundles: \ + javax.ejb-api;version='[3.2.0,3.2.1)',\ + javax.transaction-api;version='[1.2.0,1.2.1)',\ jboss-classfilewriter;version='[1.1.2,1.1.3)',\ org.apache.aries.cdi.extender;version='[0.0.1,0.0.2)',\ org.apache.aries.cdi.extension.http;version='[0.0.1,0.0.2)',\ - org.apache.aries.cdi.extension.jndi;version='[0.0.1,0.0.2)',\ org.apache.aries.javax.annotation-api;version='[0.0.1,0.0.2)',\ org.apache.aries.javax.cdi-api;version='[0.0.1,0.0.2)',\ org.apache.aries.javax.el-api;version='[0.0.1,0.0.2)',\ org.apache.aries.javax.inject-api;version='[0.0.1,0.0.2)',\ org.apache.aries.javax.interceptor-api;version='[0.0.1,0.0.2)',\ - org.apache.aries.jndi.api;version='[1.1.0,1.1.1)',\ - org.apache.aries.jndi.core;version='[1.0.2,1.0.3)',\ - org.apache.aries.util;version='[1.0.0,1.0.1)',\ - org.apache.felix.configadmin;version='[1.8.12,1.8.13)',\ + org.apache.felix.configadmin;version='[1.9.0,1.9.1)',\ org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\ org.apache.felix.gogo.jline;version='[1.0.2,1.0.3)',\ org.apache.felix.gogo.runtime;version='[1.0.2,1.0.3)',\ @@ -36,20 +38,22 @@ org.apache.felix.http.servlet-api;version='[1.1.2,1.1.3)',\ org.apache.logging.log4j.api;version='[2.7.0,2.7.1)',\ org.jboss.logging.jboss-logging;version='[3.2.1,3.2.2)',\ - org.jboss.weld.osgi-bundle;version='[3.0.1,3.0.2)',\ + org.jboss.weld.osgi-bundle;version='[3.0.2,3.0.3)',\ org.jline;version='[3.0.0,3.0.1)',\ org.osgi.service.cdi;version='[1.0.0,1.0.1)',\ org.osgi.service.event;version='[1.3.1,1.3.2)',\ - slf4j.api;version='[1.7.25,1.7.26)' + org.osgi.util.function;version='[1.1.0,1.1.1)',\ + org.osgi.util.promise;version='[1.1.0,1.1.1)' -resolve.effective: resolve, active -runee: JavaSE-1.8 -runsystemcapabilities.dflt: ${native_capability} --runfw: org.eclipse.osgi;version='[3.10.0,4.0.0)' +-runfw: org.eclipse.osgi;version='[3.13.0,4.0.0)' -runproperties: \ - logback.configurationFile=file:${.}/logback.xml,\ + eclipse.log.enabled=false,\ org.jboss.logging.provider=slf4j,\ org.osgi.service.http.port=8080,\ osgi.console.enable.builtin=false, \ osgi.console= --runsystempackages: javax.ejb;version=3.2.0 \ No newline at end of file + +# logback.configurationFile=file:${.}/logback.xml,\ \ No newline at end of file
Modified: aries/trunk/cdi/cdi-itests/itest.bndrun URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/itest.bndrun?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/itest.bndrun (original) +++ aries/trunk/cdi/cdi-itests/itest.bndrun Sat Apr 14 01:10:27 2018 @@ -5,19 +5,32 @@ -standalone: target/index.xml -runrequires: \ + osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.extender)',\ + osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.extension.http)',\ + osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.extension.jndi)',\ osgi.identity;filter:='(osgi.identity=org.apache.aries.cdi.itests)',\ osgi.identity;filter:='(osgi.identity=org.apache.aries.jndi.core)',\ osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\ - osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)',\ - osgi.identity;filter:='(osgi.identity=ch.qos.logback.classic)' + osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.shell)' --runbundles: \ +-runpath: \ ch.qos.logback.classic;version='[1.2.3,1.2.4)',\ ch.qos.logback.core;version='[1.2.3,1.2.4)',\ + slf4j.api;version='[1.7.25,1.7.26)' + +-runsystempackages: \ + org.slf4j;version=1.7.25,\ + org.slf4j.helpers;version=1.7.25,\ + org.slf4j.spi;version=1.7.25 + +-runbundles: \ + javax.ejb-api;version='[3.2.0,3.2.1)',\ + javax.transaction-api;version='[1.2.0,1.2.1)',\ jboss-classfilewriter;version='[1.1.2,1.1.3)',\ org.apache.aries.cdi.extender;version='[0.0.1,0.0.2)',\ org.apache.aries.cdi.extension.http;version='[0.0.1,0.0.2)',\ org.apache.aries.cdi.extension.jndi;version='[0.0.1,0.0.2)',\ + org.apache.aries.cdi.extra;version='[0.0.1,0.0.2)',\ org.apache.aries.cdi.itests;version='[0.0.1,0.0.2)',\ org.apache.aries.javax.annotation-api;version='[0.0.1,0.0.2)',\ org.apache.aries.javax.cdi-api;version='[0.0.1,0.0.2)',\ @@ -28,7 +41,7 @@ org.apache.aries.jndi.core;version='[1.0.2,1.0.3)',\ org.apache.aries.util;version='[1.0.0,1.0.1)',\ org.apache.commons.logging;version='[1.2.0,1.2.1)',\ - org.apache.felix.configadmin;version='[1.8.12,1.8.13)',\ + org.apache.felix.configadmin;version='[1.9.0,1.9.1)',\ org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\ org.apache.felix.gogo.runtime;version='[1.0.2,1.0.3)',\ org.apache.felix.gogo.shell;version='[1.0.0,1.0.1)',\ @@ -39,21 +52,22 @@ org.apache.httpcomponents.httpcore;version='[4.4.6,4.4.7)',\ org.apache.logging.log4j.api;version='[2.7.0,2.7.1)',\ org.jboss.logging.jboss-logging;version='[3.2.1,3.2.2)',\ - org.jboss.weld.osgi-bundle;version='[3.0.1,3.0.2)',\ + org.jboss.weld.osgi-bundle;version='[3.0.2,3.0.3)',\ org.osgi.service.cdi;version='[1.0.0,1.0.1)',\ org.osgi.service.event;version='[1.3.1,1.3.2)',\ + org.osgi.util.function;version='[1.1.0,1.1.1)',\ + org.osgi.util.promise;version='[1.1.0,1.1.1)',\ osgi.enroute.hamcrest.wrapper;version='[1.3.0,1.3.1)',\ - osgi.enroute.junit.wrapper;version='[4.12.0,4.12.1)',\ - slf4j.api;version='[1.7.25,1.7.26)' + osgi.enroute.junit.wrapper;version='[4.12.0,4.12.1)' -resolve.effective: resolve, active -runee: JavaSE-1.8 -runsystemcapabilities: ${native_capability} --runfw: org.eclipse.osgi;version='[3.10.0,4.0.0)' +-runfw: org.eclipse.osgi;version='[3.13.0,4.0.0)' -runproperties: \ + eclipse.log.enabled=false,\ logback.configurationFile=file:${.}/logback.xml,\ org.jboss.logging.provider=slf4j,\ org.osgi.service.http.port=8080,\ osgi.console.enable.builtin=false, \ - osgi.console= --runsystempackages: javax.ejb;version=3.2.0 \ No newline at end of file + osgi.console= \ No newline at end of file Added: aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/maven-metadata-local.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/maven-metadata-local.xml?rev=1829115&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/maven-metadata-local.xml (added) +++ aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/maven-metadata-local.xml Sat Apr 14 01:10:27 2018 @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<metadata modelVersion="1.1.0"> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.configadmin</artifactId> + <version>1.9.0-SNAPSHOT</version> + <versioning> + <snapshot> + <localCopy>true</localCopy> + </snapshot> + <lastUpdated>20180407030954</lastUpdated> + <snapshotVersions> + <snapshotVersion> + <classifier>sources</classifier> + <extension>jar</extension> + <value>1.9.0-SNAPSHOT</value> + <updated>20180407030954</updated> + </snapshotVersion> + <snapshotVersion> + <extension>pom</extension> + <value>1.9.0-SNAPSHOT</value> + <updated>20180407030954</updated> + </snapshotVersion> + <snapshotVersion> + <extension>jar</extension> + <value>1.9.0-SNAPSHOT</value> + <updated>20180407030835</updated> + </snapshotVersion> + <snapshotVersion> + <extension>bundle</extension> + <value>1.9.0-SNAPSHOT</value> + <updated>20180407030645</updated> + </snapshotVersion> + </snapshotVersions> + </versioning> +</metadata> Added: aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT-sources.jar URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT-sources.jar?rev=1829115&view=auto ============================================================================== Binary files aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT-sources.jar (added) and aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT-sources.jar Sat Apr 14 01:10:27 2018 differ Added: aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.bundle URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.bundle?rev=1829115&view=auto ============================================================================== Binary files aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.bundle (added) and aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.bundle Sat Apr 14 01:10:27 2018 differ Added: aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.jar URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.jar?rev=1829115&view=auto ============================================================================== Binary files aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.jar (added) and aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.jar Sat Apr 14 01:10:27 2018 differ Added: aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.pom URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.pom?rev=1829115&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.pom (added) +++ aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/1.9.0-SNAPSHOT/org.apache.felix.configadmin-1.9.0-SNAPSHOT.pom Sat Apr 14 01:10:27 2018 @@ -0,0 +1,290 @@ +<?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"> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.felix</groupId> + <artifactId>felix-parent</artifactId> + <version>4</version> + <relativePath/> + </parent> + + <artifactId>org.apache.felix.configadmin</artifactId> + <version>1.9.0-SNAPSHOT</version> + <packaging>bundle</packaging> + + <name>Apache Felix Configuration Admin Service</name> + <description> + Implementation of the OSGi Configuration Admin Service Specification 1.6 + </description> + + <scm> + <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/osgi-r7/configadmin</connection> + <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/osgi-r7/configadmin</developerConnection> + <url>http://svn.apache.org/repos/asf/felix/osgi-r7/configadmin</url> + </scm> + + <!-- + A Note on Testing + ================= + + This project contains two kinds of tests: regular unit tests running + in the test phase and integration tests based on PAX Exam running + in the integration-test phase. + + Basically the complete project is build using Java 1.3 source and target + compatibility (as inherited from the parent pom). The exception are the + unit tests in the "integration" packages. These have to be compiled with + Java 5 source and target compatibility because the employ annotations + and generics. + + For running the integration tests from the console using Maven nothing + special has to be done as the tests run automatically. To run the tests + in your IDE, the project has to be built to the "package" phase with + the profile "ide" enabled: + + $ mvn -Pide clean package + + This creates the scr.jar file in the target folder, which is used by + the integration tests when run from the IDE. Alternatively the + "project.bundle.file" system property may be set to the bundle JAR + in the IDE launcher. + --> + <properties> + <felix.java.version>7</felix.java.version> + <bundle.build.name> + ${basedir}/target + </bundle.build.name> + <bundle.file.name> + ${bundle.build.name}/${project.build.finalName}.jar + </bundle.file.name> + </properties> + + <dependencies> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>osgi.annotation</artifactId> + <version>6.0.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.core</artifactId> + <version>6.0.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.log</artifactId> + <version>1.3.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.service.coordinator</artifactId> + <version>1.0.2</version> + <scope>provided</scope> + </dependency> + + <!-- Integration Testing with Pax Exam --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-junit4</artifactId> + <version>2.6.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-container-native</artifactId> + <version>2.6.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.exam</groupId> + <artifactId>pax-exam-link-mvn</artifactId> + <version>2.6.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.url</groupId> + <artifactId>pax-url-aether</artifactId> + <version>1.5.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.ops4j.pax.tinybundles</groupId> + <artifactId>tinybundles</artifactId> + <version>1.0.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.geronimo.specs</groupId> + <artifactId>geronimo-atinject_1.0_spec</artifactId> + <version>1.0</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-simple</artifactId> + <version>1.7.1</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.framework</artifactId> + <version>5.6.1</version> + <scope>test</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.felix</groupId> + <artifactId>maven-bundle-plugin</artifactId> + <version>3.2.0</version> + <extensions>true</extensions> + <configuration> + <instructions> + <Bundle-Category>osgi</Bundle-Category> + <Bundle-SymbolicName> + ${project.artifactId} + </Bundle-SymbolicName> + <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor> + <Bundle-DocURL> + http://felix.apache.org/site/apache-felix-config-admin.html + </Bundle-DocURL> + <Bundle-Activator> + org.apache.felix.cm.impl.Activator + </Bundle-Activator> + <Export-Package> + <!-- just list, version from package-info classes --> + <!-- when the spec version changes, update the service property that includes the spec version in ConfigurationManager --> + org.apache.felix.cm; + org.apache.felix.cm.file, + org.osgi.service.cm;provide:=true + </Export-Package> + <Import-Package> + org.osgi.service.cm, + org.osgi.service.coordinator;resolution:=optional, + org.osgi.service.log;resolution:=optional, + * + </Import-Package> + <DynamicImport-Package> + org.osgi.service.coordinator;version="[1.0,2)", + org.osgi.service.log;version="[1.3,2)" + </DynamicImport-Package> + <Provide-Capability><![CDATA[ + osgi.service;objectClass:List<String>="org.osgi.service.cm.ConfigurationAdmin";uses:="org.osgi.service.cm,org.apache.felix.cm", + osgi.service;objectClass:List<String>="org.apache.felix.cm.PersistenceManager";uses:="org.osgi.service.cm,org.apache.felix.cm", + osgi.implementation;osgi.implementation="osgi.cm";uses:="org.osgi.service.cm,org.apache.felix.cm";version:Version="1.6" + ]]></Provide-Capability> + <Require-Capability><![CDATA[ + osgi.service;filter:="(objectClass=org.osgi.service.log.LogService)";effective:=active;resolution:=optional + ]]></Require-Capability> + </instructions> + </configuration> + <executions> + <execution> + <id>baseline</id> + <goals> + <goal>baseline</goal> + </goals> + </execution> + </executions> + </plugin> + <!-- + Exclude Integration tests in (default) unit tests and + conversely enable integration tests for integration testing + only. Helper classes are completely excluded from testing. + --> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <executions> + <execution> + <id>surefire-it</id> + <phase>integration-test</phase> + <goals> + <goal>test</goal> + </goals> + <configuration> + <systemProperties> + <property> + <name>project.bundle.file</name> + <value>${bundle.file.name}</value> + </property> + </systemProperties> + <excludes> + <exclude>**/cm/*</exclude> + <exclude>**/cm/file/*</exclude> + <exclude>**/cm/impl/**</exclude> + </excludes> + <includes> + <include>**/integration/*</include> + </includes> + </configuration> + </execution> + </executions> + <configuration> + <excludes> + <exclude>**/integration/**</exclude> + </excludes> + </configuration> + </plugin> + </plugins> + </build> + + <profiles> + <!-- + copy the package such that IDEs may easily use it without + setting the system property + --> + <profile> + <id>ide</id> + <build> + <plugins> + <plugin> + <artifactId>maven-antrun-plugin</artifactId> + <version>1.3</version> + <executions> + <execution> + <id>cm-file-create</id> + <phase>package</phase> + <goals> + <goal>run</goal> + </goals> + <configuration> + <tasks> + <copy file="${project.build.directory}/${project.build.finalName}.jar" tofile="${project.build.directory}/configadmin.jar" /> + </tasks> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> +</project> Added: aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/maven-metadata-local.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/maven-metadata-local.xml?rev=1829115&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/maven-metadata-local.xml (added) +++ aries/trunk/cdi/cdi-itests/local-repo/org/apache/felix/org.apache.felix.configadmin/maven-metadata-local.xml Sat Apr 14 01:10:27 2018 @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="UTF-8"?> +<metadata> + <groupId>org.apache.felix</groupId> + <artifactId>org.apache.felix.configadmin</artifactId> + <versioning> + <versions> + <version>1.9.0-SNAPSHOT</version> + </versions> + <lastUpdated>20180407030954</lastUpdated> + </versioning> +</metadata> Added: aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/3.13.0/org.eclipse.osgi-3.13.0.jar URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/3.13.0/org.eclipse.osgi-3.13.0.jar?rev=1829115&view=auto ============================================================================== Binary files aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/3.13.0/org.eclipse.osgi-3.13.0.jar (added) and aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/3.13.0/org.eclipse.osgi-3.13.0.jar Sat Apr 14 01:10:27 2018 differ Added: aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/3.13.0/org.eclipse.osgi-3.13.0.pom URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/3.13.0/org.eclipse.osgi-3.13.0.pom?rev=1829115&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/3.13.0/org.eclipse.osgi-3.13.0.pom (added) +++ aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/3.13.0/org.eclipse.osgi-3.13.0.pom Sat Apr 14 01:10:27 2018 @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <modelVersion>4.0.0</modelVersion> + <groupId>org.eclipse.platform</groupId> + <artifactId>org.eclipse.osgi</artifactId> + <version>3.13.0</version> + <description>POM was created from install:install-file</description> +</project> Added: aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/maven-metadata-local.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/maven-metadata-local.xml?rev=1829115&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/maven-metadata-local.xml (added) +++ aries/trunk/cdi/cdi-itests/local-repo/org/eclipse/platform/org.eclipse.osgi/maven-metadata-local.xml Sat Apr 14 01:10:27 2018 @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<metadata> + <groupId>org.eclipse.platform</groupId> + <artifactId>org.eclipse.osgi</artifactId> + <versioning> + <release>3.13.0</release> + <versions> + <version>3.13.0</version> + </versions> + <lastUpdated>20180315235604</lastUpdated> + </versioning> +</metadata> Modified: aries/trunk/cdi/cdi-itests/logback.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/logback.xml?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/logback.xml (original) +++ aries/trunk/cdi/cdi-itests/logback.xml Sat Apr 14 01:10:27 2018 @@ -1,15 +1,31 @@ <configuration> +<!-- scan="true" scanPeriod="5 seconds" debug="true"> --> <contextListener class="ch.qos.logback.classic.jul.LevelChangePropagator"> <resetJUL>true</resetJUL> </contextListener> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> - <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> + <pattern>%d{HH:mm:ss.SSS} [%.15thread] %-5level %logger{36}:%line - %msg%n</pattern> </encoder> </appender> - <logger name="org.apache.aries.cdi.container" level="ERROR"/> + <logger name="Events.Bundle" level="ERROR"/> + <logger name="Events.Framework" level="ERROR"/> + <logger name="Events.Service" level="ERROR"/> + <logger name="LogService" level="ERROR"/> + + <logger name="Events.Service.org" level="WARN"/> + <logger name="Events.Service.cdi-itests" level="INFO"/> + <logger name="Events.Service.org.apache.aries" level="INFO"/> + + <logger name="LogService.org.apache.aries.cdi.itests" level="OFF"/> + + <logger name="org.apache.aries.cdi" level="DEBUG"/> + <!-- <logger name="org.apache.aries.cdi.container.internal.container" level="ERROR"/> --> + + <logger name="org.eclipse" level="ERROR"/> + <logger name="org.jboss" level="ERROR"/> <root level="ERROR"> <appender-ref ref="STDOUT" /> Modified: aries/trunk/cdi/cdi-itests/pom.xml URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/pom.xml?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/pom.xml (original) +++ aries/trunk/cdi/cdi-itests/pom.xml Sat Apr 14 01:10:27 2018 @@ -104,19 +104,16 @@ <dependencies> <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.osgi.util.promise</artifactId> - <version>1.1.0-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>log4j-over-slf4j</artifactId> - <version>1.7.25</version> - </dependency> - <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>javax.ejb</groupId> + <artifactId>javax.ejb-api</artifactId> + <version>3.2</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.aries.cdi</groupId> @@ -125,28 +122,38 @@ </dependency> <dependency> <groupId>org.apache.aries.cdi</groupId> + <artifactId>org.apache.aries.cdi.extra</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.aries.cdi</groupId> <artifactId>org.apache.aries.cdi.extension.http</artifactId> <version>${project.version}</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.aries.cdi</groupId> <artifactId>org.apache.aries.cdi.extension.jndi</artifactId> <version>${project.version}</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.aries.jndi</groupId> <artifactId>org.apache.aries.jndi.core</artifactId> <version>1.0.2</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.configadmin</artifactId> - <version>1.8.12</version> + <version>1.9.0-SNAPSHOT</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.gogo.command</artifactId> <version>1.0.2</version> + <scope>runtime</scope> <exclusions> <exclusion> <groupId>org.osgi</groupId> @@ -162,21 +169,25 @@ <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.gogo.jline</artifactId> <version>1.0.2</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.gogo.runtime</artifactId> <version>1.0.2</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.gogo.shell</artifactId> <version>1.0.0</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.http.jetty</artifactId> <version>3.4.2</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.felix</groupId> @@ -187,6 +198,7 @@ <groupId>org.apache.felix</groupId> <artifactId>org.apache.felix.scr</artifactId> <version>2.0.8</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> @@ -202,16 +214,13 @@ <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.7</version> - </dependency> - <dependency> - <groupId>org.osgi</groupId> - <artifactId>org.eclipse.equinox.metatype</artifactId> - <version>1.4.100.v20150408-1437</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.eclipse.platform</groupId> <artifactId>org.eclipse.osgi</artifactId> - <version>3.11.3</version> + <version>3.13.0</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.osgi</groupId> @@ -225,20 +234,26 @@ </dependency> <dependency> <groupId>org.osgi</groupId> + <artifactId>org.osgi.annotation.bundle</artifactId> + <version>1.0.0-SNAPSHOT</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> <artifactId>org.osgi.namespace.extender</artifactId> <version>1.0.1</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.osgi</groupId> - <artifactId>org.osgi.service.component.annotations</artifactId> - <version>1.3.0</version> + <artifactId>org.osgi.namespace.service</artifactId> + <version>1.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.osgi</groupId> - <artifactId>org.osgi.service.event</artifactId> - <version>1.3.1</version> + <artifactId>org.osgi.service.component.annotations</artifactId> + <version>1.3.0</version> <scope>provided</scope> </dependency> <dependency> @@ -249,13 +264,51 @@ </dependency> <dependency> <groupId>org.osgi</groupId> - <artifactId>org.osgi.service.metatype</artifactId> - <version>1.3.0</version> + <artifactId>org.osgi.service.event</artifactId> + <version>1.3.1</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.util.function</artifactId> + <version>1.1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.util.promise</artifactId> + <version>1.1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.osgi</groupId> + <artifactId>org.osgi.util.pushstream</artifactId> + <version>1.0.0-SNAPSHOT</version> + <scope>runtime</scope> </dependency> <dependency> <groupId>org.osgi</groupId> <artifactId>osgi.core</artifactId> - <version>6.0.0</version> + <version>7.0.0-SNAPSHOT</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>log4j-over-slf4j</artifactId> + <version>1.7.25</version> + <scope>runtime</scope> </dependency> </dependencies> + + <repositories> + <repository> + <id>my-local-repo</id> + <url>file://${project.basedir}/local-repo/</url> + <releases> + <enabled>false</enabled> + <checksumPolicy>ignore</checksumPolicy> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> + </repositories> </project> Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/BeanWithReference.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/BeanWithReference.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/BeanWithReference.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/BeanWithReference.java Sat Apr 14 01:10:27 2018 @@ -14,48 +14,15 @@ package org.apache.aries.cdi.test.beans; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -import javax.enterprise.inject.Default; import javax.inject.Inject; -import javax.inject.Qualifier; import org.apache.aries.cdi.test.interfaces.BundleScoped; import org.osgi.service.cdi.annotations.Reference; public class BeanWithReference { - @Qualifier - @Retention(value = RetentionPolicy.RUNTIME) - @Target(value = { ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR }) - public @interface ComplexEnoughKey { - String complex_enough_key(); - } - - @Qualifier - @Retention(value = RetentionPolicy.RUNTIME) - @Target(value = { ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR }) - public @interface ComplexAnnotation { - String fee_fi(); - int fo_fum(); - } - - @Qualifier - @Retention(value = RetentionPolicy.RUNTIME) - @Target(value = { ElementType.FIELD, ElementType.METHOD, ElementType.PARAMETER, ElementType.CONSTRUCTOR }) - public @interface SimpleAnnotation { - String value(); - } - - @ComplexEnoughKey(complex_enough_key= "fum") - @ComplexAnnotation(fee_fi = "fee", fo_fum = 23) - @SimpleAnnotation("blah") @Inject @Reference - @Default BundleScoped bundleScoped; } Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ConstructorInjectedService.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ConstructorInjectedService.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ConstructorInjectedService.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ConstructorInjectedService.java Sat Apr 14 01:10:27 2018 @@ -18,10 +18,8 @@ import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.Pojo; -import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Service; -@Component @Service({ConstructorInjectedService.class, BeanService.class}) public class ConstructorInjectedService implements BeanService<Pojo> { Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedBundleScopedImpl.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedBundleScopedImpl.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedBundleScopedImpl.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedBundleScopedImpl.java Sat Apr 14 01:10:27 2018 @@ -23,11 +23,11 @@ import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.BundleScoped; import org.apache.aries.cdi.test.interfaces.FieldInjectedReference; import org.osgi.framework.ServiceReference; -import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Reference; import org.osgi.service.cdi.annotations.Service; +import org.osgi.service.cdi.annotations.SingleComponent; -@Component +@SingleComponent @Service({FieldInjectedBundleScopedImpl.class, FieldInjectedReference.class}) public class FieldInjectedBundleScopedImpl implements FieldInjectedReference<BundleScoped> { Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedPrototypeScopedImpl.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedPrototypeScopedImpl.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedPrototypeScopedImpl.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedPrototypeScopedImpl.java Sat Apr 14 01:10:27 2018 @@ -23,11 +23,11 @@ import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.FieldInjectedReference; import org.apache.aries.cdi.test.interfaces.PrototypeScoped; import org.osgi.framework.ServiceReference; -import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Reference; import org.osgi.service.cdi.annotations.Service; +import org.osgi.service.cdi.annotations.SingleComponent; -@Component +@SingleComponent @Service({FieldInjectedPrototypeScopedImpl.class, FieldInjectedReference.class}) public class FieldInjectedPrototypeScopedImpl implements FieldInjectedReference<PrototypeScoped> { Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedService.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedService.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedService.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/FieldInjectedService.java Sat Apr 14 01:10:27 2018 @@ -18,10 +18,8 @@ import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.Pojo; -import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Service; -@Component @Service({FieldInjectedService.class, BeanService.class}) public class FieldInjectedService implements BeanService<Pojo> { Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_Optional.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_Optional.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_Optional.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_Optional.java Sat Apr 14 01:10:27 2018 @@ -15,41 +15,34 @@ package org.apache.aries.cdi.test.beans; import java.util.Collection; -import java.util.concurrent.Callable; +import java.util.Iterator; -import javax.enterprise.inject.Instance; import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.BeanService; -import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Reference; import org.osgi.service.cdi.annotations.Service; +import org.osgi.service.cdi.annotations.SingleComponent; -@Component +@SingleComponent @Service({BeanService.class, Instance_Optional.class}) -@SuppressWarnings("rawtypes") -public class Instance_Optional implements BeanService<Callable<String>> { +public class Instance_Optional implements BeanService<Integer> { @Override public String doSomething() { - int count = 0; - Collection<Callable> callables = _instance.get(); - for (Callable callable : callables) { - System.out.println(callable); - count++; - } - return String.valueOf(count); + return String.valueOf(_instance.size()); } @Override - @SuppressWarnings("unchecked") - public Callable<String> get() { - Collection<Callable> iterator = _instance.get(); - return iterator.iterator().next(); + public Integer get() { + Iterator<Integer> iterator = _instance.iterator(); + if (iterator.hasNext()) + return iterator.next(); + return null; } @Inject - @Reference - Instance<Collection<Callable>> _instance; + @Reference(target = "(foo=bar)") + Collection<Integer> _instance; } Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceProperties.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceProperties.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceProperties.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceProperties.java Sat Apr 14 01:10:27 2018 @@ -15,37 +15,47 @@ package org.apache.aries.cdi.test.beans; import java.util.Iterator; +import java.util.List; import java.util.Map; -import javax.enterprise.inject.Instance; +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.BeanService; -import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Reference; import org.osgi.service.cdi.annotations.Service; +import org.osgi.service.cdi.annotations.SingleComponent; -@Component +@SingleComponent @Service({BeanService.class, Instance_ServiceProperties.class}) public class Instance_ServiceProperties implements BeanService<Map<String, Object>> { @Override public String doSomething() { - int count = 0; - for (Iterator<?> iterator = _instance.iterator();iterator.hasNext();) { - iterator.next(); - count++; - } - return String.valueOf(count); + return String.valueOf(_instance.size()); } @Override public Map<String, Object> get() { - return _instance.iterator().next(); + Iterator<Map<String, Object>> iterator = _instance.iterator(); + if (iterator.hasNext()) + return iterator.next(); + return null; } @Inject - @Reference - Instance<Map<String, Object>> _instance; + @Reference(Integer.class) + List<Map<String, Object>> _instance; + + @PostConstruct + private void postConstructed() { + System.out.println("PostConstructed " + this); + } + + @PreDestroy + private void preDestroyed() { + System.out.println("PreDestroyed " + this); + } } Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceReference.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceReference.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceReference.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/Instance_ServiceReference.java Sat Apr 14 01:10:27 2018 @@ -15,39 +15,37 @@ package org.apache.aries.cdi.test.beans; import java.util.Iterator; +import java.util.List; -import javax.enterprise.inject.Instance; import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.SingletonScoped; import org.osgi.framework.ServiceReference; -import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Reference; import org.osgi.service.cdi.annotations.Service; +import org.osgi.service.cdi.annotations.SingleComponent; -@Component +@SingleComponent @Service({BeanService.class, Instance_ServiceReference.class}) @SuppressWarnings("rawtypes") public class Instance_ServiceReference implements BeanService<ServiceReference> { @Override public String doSomething() { - int count = 0; - for (Iterator<?> iterator = _instance.iterator();iterator.hasNext();) { - iterator.next(); - count++; - } - return String.valueOf(count); + return String.valueOf(_instance.size()); } @Override public ServiceReference get() { - return _instance.iterator().next(); + Iterator<ServiceReference> iterator = _instance.iterator(); + if (iterator.hasNext()) + return iterator.next(); + return null; } @Inject @Reference(SingletonScoped.class) - Instance<ServiceReference> _instance; + List<ServiceReference> _instance; } Added: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/IntegerServiceProvider.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/IntegerServiceProvider.java?rev=1829115&view=auto ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/IntegerServiceProvider.java (added) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/IntegerServiceProvider.java Sat Apr 14 01:10:27 2018 @@ -0,0 +1,52 @@ +/** + * Licensed 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. + */ + +package org.apache.aries.cdi.test.beans; + +import javax.enterprise.context.ApplicationScoped; +import javax.enterprise.inject.Produces; + +import org.apache.aries.cdi.extra.propertytypes.ServiceRanking; +import org.osgi.service.cdi.annotations.Service; + +@ApplicationScoped +public class IntegerServiceProvider { + + @Produces + @Service(Integer.class) + @ServiceRanking(5000) + Integer int1() { + return new Integer(Double.valueOf(Math.random()).intValue()); + } + + @Produces + @Service(Integer.class) + @ServiceRanking(12000) + Integer int2() { + return new Integer(Double.valueOf(Math.random()).intValue()); + } + + @Produces + @Service(Integer.class) + @ServiceRanking(1000) + Integer int3() { + return new Integer(Double.valueOf(Math.random()).intValue()); + } + + @Produces + @Service(Integer.class) + @ServiceRanking(100000) + Integer int4 = new Integer(Double.valueOf(Math.random()).intValue()); + +} Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/MethodInjectedService.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/MethodInjectedService.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/MethodInjectedService.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/MethodInjectedService.java Sat Apr 14 01:10:27 2018 @@ -18,10 +18,8 @@ import javax.inject.Inject; import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.Pojo; -import org.osgi.service.cdi.annotations.Component; import org.osgi.service.cdi.annotations.Service; -@Component @Service({MethodInjectedService.class, BeanService.class}) public class MethodInjectedService implements BeanService<Pojo> { Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/beans/ServiceWithProperties.java Sat Apr 14 01:10:27 2018 @@ -14,27 +14,30 @@ package org.apache.aries.cdi.test.beans; -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.RUNTIME; +import static java.lang.annotation.ElementType.*; +import static java.lang.annotation.RetentionPolicy.*; import java.lang.annotation.Retention; import java.lang.annotation.Target; +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; import javax.inject.Inject; -import javax.inject.Qualifier; import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.Pojo; -import org.osgi.service.cdi.annotations.Component; +import org.osgi.service.cdi.annotations.ComponentPropertyType; import org.osgi.service.cdi.annotations.Service; +import org.osgi.service.cdi.annotations.SingleComponent; -@Component +@SingleComponent @Service({ServiceWithProperties.class, BeanService.class}) @ServiceWithProperties.Props @ServiceWithProperties.MoreProperties(glub_integer = 45, goo_string = "green") public class ServiceWithProperties implements BeanService<Pojo> { - @Qualifier @Retention(RUNTIME) @Target(TYPE) + @Retention(RUNTIME) @Target(TYPE) + @ComponentPropertyType public @interface Props { String test_key_b1() default "test.value.b1"; String test_key_b2() default "test.value.b2"; @@ -58,7 +61,8 @@ public class ServiceWithProperties imple String[] p_String_array() default {"black", "green"}; } - @Qualifier @Retention(RUNTIME) @Target(TYPE ) + @Retention(RUNTIME) @Target(TYPE ) + @ComponentPropertyType public @interface MoreProperties { String goo_string(); int glub_integer(); @@ -77,4 +81,14 @@ public class ServiceWithProperties imple @Inject private PojoImpl _pojo; + @PostConstruct + private void postConstructed() { + System.out.println("PostConstructed " + this); + } + + @PreDestroy + private void preDestroyed() { + System.out.println("PreDestroyed " + this); + } + } Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/AbstractTestCase.java Sat Apr 14 01:10:27 2018 @@ -14,54 +14,83 @@ package org.apache.aries.cdi.test.cases; +import static org.junit.Assert.*; + import java.io.InputStream; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Optional; import java.util.Set; -import java.util.concurrent.Callable; import javax.enterprise.context.spi.CreationalContext; import javax.enterprise.inject.Any; import javax.enterprise.inject.spi.Bean; import javax.enterprise.inject.spi.BeanManager; +import org.junit.After; +import org.junit.AfterClass; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Rule; +import org.junit.rules.TestName; +import org.osgi.annotation.bundle.Requirement; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; +import org.osgi.framework.Constants; import org.osgi.framework.Filter; import org.osgi.framework.FrameworkUtil; import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.ServiceReference; import org.osgi.framework.wiring.BundleWire; import org.osgi.framework.wiring.BundleWiring; import org.osgi.namespace.extender.ExtenderNamespace; -import org.osgi.service.cdi.CdiConstants; -import org.osgi.service.cdi.runtime.CdiRuntime; -import org.osgi.service.cdi.runtime.dto.ContainerDTO; -import org.osgi.util.promise.Promise; +import org.osgi.namespace.service.ServiceNamespace; +import org.osgi.service.cdi.CDIConstants; +import org.osgi.service.cdi.runtime.CDIComponentRuntime; import org.osgi.util.promise.PromiseFactory; import org.osgi.util.tracker.ServiceTracker; -import junit.framework.TestCase; +@Requirement( + effective = "active", + filter = "(objectClass=org.osgi.service.cm.ConfigurationAdmin)", + namespace = ServiceNamespace.SERVICE_NAMESPACE +) +public class AbstractTestCase { + + @Rule public TestName testName = new TestName(); + + @BeforeClass + public static void beforeClass() throws Exception { + runtimeTracker = new ServiceTracker<>( + bundleContext, CDIComponentRuntime.class, null); + runtimeTracker.open(); + servicesBundle = installBundle("services-one.jar"); + servicesBundle.start(); + } + + @AfterClass + public static void afterClass() throws Exception { + runtimeTracker.close(); + servicesBundle.uninstall(); + } -public class AbstractTestCase extends TestCase { + void testHeader() { + System.out.println("--------- TEST: " + getClass().getSimpleName() + "#" +testName.getMethodName()); + } - @Override - protected void setUp() throws Exception { - servicesBundle = bundleContext.installBundle("services-one.jar" , getBundle("services-one.jar")); - servicesBundle.start(); - cdiBundle = bundleContext.installBundle("basic-beans.jar" , getBundle("basic-beans.jar")); - cdiBundle.start(); + @Before + public void setUp() throws Exception { + testHeader(); - runtimeTracker = new ServiceTracker<>(bundleContext, CdiRuntime.class, null); - runtimeTracker.open(); cdiRuntime = runtimeTracker.waitForService(timeout); + cdiBundle = installBundle("basic-beans.jar"); + cdiBundle.start(); } - @Override - protected void tearDown() throws Exception { - runtimeTracker.close(); + @After + public void tearDown() throws Exception { cdiBundle.uninstall(); - servicesBundle.uninstall(); } void assertBeanExists(Class<?> clazz, BeanManager beanManager) { @@ -79,10 +108,8 @@ public class AbstractTestCase extends Te assertNotNull(pojo); } - InputStream getBundle(String name) { - Class<?> clazz = this.getClass(); - - ClassLoader classLoader = clazz.getClassLoader(); + static InputStream getBundle(String name) { + ClassLoader classLoader = AbstractTestCase.class.getClassLoader(); return classLoader.getResourceAsStream(name); } @@ -96,7 +123,7 @@ public class AbstractTestCase extends Te Map<String, Object> attributes = wire.getCapability().getAttributes(); String extender = (String)attributes.get(ExtenderNamespace.EXTENDER_NAMESPACE); - if (CdiConstants.CDI_CAPABILITY_NAME.equals(extender)) { + if (CDIConstants.CDI_CAPABILITY_NAME.equals(extender)) { return wire.getProvider().getBundle(); } } @@ -104,11 +131,11 @@ public class AbstractTestCase extends Te return null; } - public Bundle installBundle(String url) throws Exception { + public static Bundle installBundle(String url) throws Exception { return installBundle(url, true); } - public Bundle installBundle(String bundleName, boolean start) throws Exception { + public static Bundle installBundle(String bundleName, boolean start) throws Exception { Bundle b = bundleContext.installBundle(bundleName, getBundle(bundleName)); if (start) { @@ -127,15 +154,25 @@ public class AbstractTestCase extends Te } } + public <S,T> ServiceTracker<S, T> track(Filter filter) { + ServiceTracker<S, T> tracker = new ServiceTracker<>(bundleContext, filter, null); + tracker.open(); + return tracker; + } + + public <S,T> ServiceTracker<S, T> track(String pattern, Object... objects) { + return track(filter(pattern, objects)); + } + BeanManager getBeanManager(Bundle bundle) throws Exception { return getServiceTracker(bundle).waitForService(timeout); } ServiceTracker<BeanManager, BeanManager> getServiceTracker(Bundle bundle) throws Exception { ServiceTracker<BeanManager, BeanManager> serviceTracker = new ServiceTracker<>( - bundleContext, + bundle.getBundleContext(), filter( - "(&(objectclass=%s)(bundle.id=%d))", + "(&(objectClass=%s)(service.bundleid=%d))", BeanManager.class.getName(), bundle.getBundleId()), null); @@ -143,40 +180,24 @@ public class AbstractTestCase extends Te return serviceTracker; } - Promise<ContainerDTO> getContainerDTO() throws Exception { - return getContainerDTO(bundle); - } - - Promise<ContainerDTO> getContainerDTO(Bundle bundle) throws Exception { - final PromiseFactory factory = new PromiseFactory( - PromiseFactory.inlineExecutor()); - - Promise<ContainerDTO> promise = factory.submit(new Callable<ContainerDTO>() { - @Override - public ContainerDTO call() throws Exception { - while (!Thread.interrupted()) { - ContainerDTO containerDTO = cdiRuntime.getContainerDTO(bundle); - if (containerDTO == null) { - Thread.sleep(10); - continue; - } - return containerDTO; - } - return null; - } - }); - - return promise.timeout(timeout); + long getChangeCount(ServiceReference<?> reference) { + return Optional.ofNullable( + reference.getProperty(Constants.SERVICE_CHANGECOUNT) + ).map( + v -> (Long)v + ).orElse( + new Long(-1l) + ).longValue(); } static final Bundle bundle = FrameworkUtil.getBundle(CdiBeanTests.class); static final BundleContext bundleContext = bundle.getBundleContext(); static final long timeout = 5000; + static Bundle servicesBundle; + static ServiceTracker<CDIComponentRuntime, CDIComponentRuntime> runtimeTracker; Bundle cdiBundle; - Bundle servicesBundle; - CdiRuntime cdiRuntime; - Promise<ContainerDTO> containerDTO; - ServiceTracker<CdiRuntime, CdiRuntime> runtimeTracker; + CDIComponentRuntime cdiRuntime; + final PromiseFactory promiseFactory = new PromiseFactory(null); } \ No newline at end of file Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiBeanTests.java Sat Apr 14 01:10:27 2018 @@ -14,11 +14,10 @@ package org.apache.aries.cdi.test.cases; -import java.util.Iterator; -import java.util.List; +import static org.junit.Assert.*; + import java.util.Map; import java.util.Set; -import java.util.concurrent.Callable; import javax.enterprise.context.spi.CreationalContext; import javax.enterprise.inject.spi.Bean; @@ -28,47 +27,39 @@ import javax.enterprise.util.AnnotationL import org.apache.aries.cdi.test.interfaces.BeanService; import org.apache.aries.cdi.test.interfaces.BundleContextBeanQualifier; import org.apache.aries.cdi.test.interfaces.FieldInjectedReference; -import org.junit.Ignore; +import org.junit.Test; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceReference; +import org.osgi.service.cdi.ComponentType; +import org.osgi.service.cdi.runtime.dto.ComponentDTO; +import org.osgi.service.cdi.runtime.dto.ComponentInstanceDTO; +import org.osgi.service.cdi.runtime.dto.ContainerDTO; +import org.osgi.util.tracker.ServiceTracker; @SuppressWarnings("rawtypes") public class CdiBeanTests extends AbstractTestCase { - @Override - protected void setUp() throws Exception { - super.setUp(); - containerDTO = getContainerDTO(cdiBundle); - } - + @Test public void testConstructorInjectedService() throws Exception { - Iterator<ServiceReference<BeanService>> iterator = bundleContext.getServiceReferences( - BeanService.class, String.format("(objectClass=*.%s)","ConstructorInjectedService")).iterator(); - - assertTrue(iterator.hasNext()); + ServiceTracker<BeanService, BeanService> tracker = track( + "(&(objectClass=%s)(objectClass=*.%s))", + BeanService.class.getName(), + "ConstructorInjectedService"); - ServiceReference<BeanService> serviceReference = iterator.next(); + BeanService beanService = tracker.waitForService(timeout); - assertNotNull(serviceReference); - - BeanService bean = bundleContext.getService(serviceReference); - - assertNotNull(bean); - assertEquals("PREFIXCONSTRUCTOR", bean.doSomething()); + assertNotNull(beanService); + assertEquals("PREFIXCONSTRUCTOR", beanService.doSomething()); } + @Test public void testFieldInjectedReference_BundleScoped() throws Exception { - Iterator<ServiceReference<FieldInjectedReference>> iterator = bundleContext.getServiceReferences( - FieldInjectedReference.class, String.format("(objectClass=*.%s)","FieldInjectedBundleScopedImpl")).iterator(); - - assertTrue(iterator.hasNext()); - - ServiceReference<FieldInjectedReference> serviceReference = iterator.next(); + ServiceTracker<FieldInjectedReference, FieldInjectedReference> tracker = track( + "(&(objectClass=%s)(objectClass=*.%s))", + FieldInjectedReference.class.getName(), + "FieldInjectedBundleScopedImpl"); - assertNotNull(serviceReference); - assertNotNull(serviceReference.getBundle()); - - FieldInjectedReference fieldInjectedReference = bundleContext.getService(serviceReference); + FieldInjectedReference fieldInjectedReference = tracker.waitForService(timeout); assertNotNull(fieldInjectedReference); assertNotNull(fieldInjectedReference.getProperties()); @@ -80,18 +71,14 @@ public class CdiBeanTests extends Abstra assertEquals("value", fieldInjectedReference.getRawReference().getProperty("key")); } + @Test public void testFieldInjectedReference_PrototypeScoped() throws Exception { - Iterator<ServiceReference<FieldInjectedReference>> iterator = bundleContext.getServiceReferences( - FieldInjectedReference.class, String.format("(objectClass=*.%s)","FieldInjectedPrototypeScopedImpl")).iterator(); - - assertTrue(iterator.hasNext()); - - ServiceReference<FieldInjectedReference> serviceReference = iterator.next(); - - assertNotNull(serviceReference); - assertNotNull(serviceReference.getBundle()); + ServiceTracker<FieldInjectedReference, FieldInjectedReference> tracker = track( + "(&(objectClass=%s)(objectClass=*.%s))", + FieldInjectedReference.class.getName(), + "FieldInjectedPrototypeScopedImpl"); - FieldInjectedReference fieldInjectedReference = bundleContext.getService(serviceReference); + FieldInjectedReference fieldInjectedReference = tracker.waitForService(timeout); assertNotNull(fieldInjectedReference); assertNotNull(fieldInjectedReference.getProperties()); @@ -103,134 +90,106 @@ public class CdiBeanTests extends Abstra assertEquals("value", fieldInjectedReference.getRawReference().getProperty("key")); } + @Test public void testFieldInjectedService() throws Exception { - Iterator<ServiceReference<BeanService>> iterator = bundleContext.getServiceReferences( - BeanService.class, String.format("(objectClass=*.%s)","FieldInjectedService")).iterator(); - - assertTrue(iterator.hasNext()); - - ServiceReference<BeanService> serviceReference = iterator.next(); - - assertNotNull(serviceReference); + ServiceTracker<BeanService, BeanService> tracker = track( + "(&(objectClass=%s)(objectClass=*.%s))", + BeanService.class.getName(), + "FieldInjectedService"); - BeanService bean = bundleContext.getService(serviceReference); + BeanService beanService = tracker.waitForService(timeout); - assertNotNull(bean); - assertEquals("PREFIXFIELD", bean.doSomething()); + assertNotNull(beanService); + assertEquals("PREFIXFIELD", beanService.doSomething()); } + @Test public void testMethodInjectedService() throws Exception { - Iterator<ServiceReference<BeanService>> iterator = bundleContext.getServiceReferences( - BeanService.class, String.format("(objectClass=*.%s)","MethodInjectedService")).iterator(); + ServiceTracker<BeanService, BeanService> tracker = track( + "(&(objectClass=%s)(objectClass=*.%s))", + BeanService.class.getName(), + "MethodInjectedService"); - assertTrue(iterator.hasNext()); + BeanService beanService = tracker.waitForService(timeout); - ServiceReference<BeanService> serviceReference = iterator.next(); + assertNotNull(beanService); + assertEquals("PREFIXMETHOD", beanService.doSomething()); - assertNotNull(serviceReference); + ContainerDTO containerDTO = cdiRuntime.getContainerDTO(cdiBundle); + assertNotNull(containerDTO); - BeanService bean = bundleContext.getService(serviceReference); + ComponentDTO containerComponentDTO = containerDTO.components.stream().filter( + c -> c.template.type == ComponentType.CONTAINER).findFirst().orElse(null); + assertNotNull(containerComponentDTO); + assertEquals(8, containerComponentDTO.template.beans.size()); - assertNotNull(bean); - assertEquals("PREFIXMETHOD", bean.doSomething()); + // There's only one instance of the Container component + ComponentInstanceDTO componentInstanceDTO = containerComponentDTO.instances.get(0); + assertNotNull(componentInstanceDTO); + + assertEquals(0, componentInstanceDTO.configurations.size()); + assertNotNull("should have properties", componentInstanceDTO.properties); } - @SuppressWarnings("unchecked") + @Test public void testBeanAsServiceWithProperties() throws Exception { - Iterator<ServiceReference<BeanService>> iterator = bundleContext.getServiceReferences( - BeanService.class, String.format("(objectClass=*.%s)","ServiceWithProperties")).iterator(); - - assertTrue(iterator.hasNext()); + ServiceTracker<BeanService, BeanService> tracker = track( + "(&(objectClass=%s)(objectClass=*.%s))", + BeanService.class.getName(), + "ServiceWithProperties"); - ServiceReference<BeanService> serviceReference = iterator.next(); + BeanService beanService = tracker.waitForService(timeout); - assertNotNull(serviceReference); + assertNotNull(beanService); - BeanService bean = bundleContext.getService(serviceReference); - - assertNotNull(bean); + ServiceReference<BeanService> serviceReference = tracker.getServiceReference(); assertEquals("test.value.b2", serviceReference.getProperty("test.key.b2")); assertTrue(serviceReference.getProperty("p.Boolean") instanceof Boolean); - assertTrue(serviceReference.getProperty("p.Boolean.array") instanceof Boolean[]); - assertEquals(2, ((Boolean[])serviceReference.getProperty("p.Boolean.array")).length); - assertTrue(serviceReference.getProperty("p.Boolean.list") instanceof List); - assertEquals(2, ((List<Boolean>)serviceReference.getProperty("p.Boolean.list")).size()); - assertTrue(serviceReference.getProperty("p.Boolean.set") instanceof Set); - assertEquals(2, ((Set<Boolean>)serviceReference.getProperty("p.Boolean.set")).size()); + assertTrue(serviceReference.getProperty("p.Boolean.array") instanceof boolean[]); + assertEquals(2, ((boolean[])serviceReference.getProperty("p.Boolean.array")).length); assertTrue(serviceReference.getProperty("p.Byte") instanceof Byte); - assertTrue(serviceReference.getProperty("p.Byte.array") instanceof Byte[]); - assertEquals(2, ((Byte[])serviceReference.getProperty("p.Byte.array")).length); - assertTrue(serviceReference.getProperty("p.Byte.list") instanceof List); - assertEquals(2, ((List<Byte>)serviceReference.getProperty("p.Byte.list")).size()); - assertTrue(serviceReference.getProperty("p.Byte.set") instanceof Set); - assertEquals(2, ((Set<Byte>)serviceReference.getProperty("p.Byte.set")).size()); + assertTrue(serviceReference.getProperty("p.Byte.array") instanceof byte[]); + assertEquals(2, ((byte[])serviceReference.getProperty("p.Byte.array")).length); assertTrue(serviceReference.getProperty("p.Character") instanceof Character); - assertTrue(serviceReference.getProperty("p.Character.array") instanceof Character[]); - assertEquals(2, ((Character[])serviceReference.getProperty("p.Character.array")).length); - assertTrue(serviceReference.getProperty("p.Character.list") instanceof List); - assertEquals(2, ((List<Character>)serviceReference.getProperty("p.Character.list")).size()); - assertTrue(serviceReference.getProperty("p.Character.set") instanceof Set); - assertEquals(2, ((Set<Character>)serviceReference.getProperty("p.Character.set")).size()); + assertTrue(serviceReference.getProperty("p.Character.array") instanceof char[]); + assertEquals(2, ((char[])serviceReference.getProperty("p.Character.array")).length); assertTrue(serviceReference.getProperty("p.Double") instanceof Double); - assertTrue(serviceReference.getProperty("p.Double.array") instanceof Double[]); - assertEquals(2, ((Double[])serviceReference.getProperty("p.Double.array")).length); - assertTrue(serviceReference.getProperty("p.Double.list") instanceof List); - assertEquals(2, ((List<Double>)serviceReference.getProperty("p.Double.list")).size()); - assertTrue(serviceReference.getProperty("p.Double.set") instanceof Set); - assertEquals(2, ((Set<Double>)serviceReference.getProperty("p.Double.set")).size()); + assertTrue(serviceReference.getProperty("p.Double.array") instanceof double[]); + assertEquals(2, ((double[])serviceReference.getProperty("p.Double.array")).length); assertTrue(serviceReference.getProperty("p.Float") instanceof Float); - assertTrue(serviceReference.getProperty("p.Float.array") instanceof Float[]); - assertEquals(2, ((Float[])serviceReference.getProperty("p.Float.array")).length); - assertTrue(serviceReference.getProperty("p.Float.list") instanceof List); - assertEquals(2, ((List<Float>)serviceReference.getProperty("p.Float.list")).size()); - assertTrue(serviceReference.getProperty("p.Float.set") instanceof Set); - assertEquals(2, ((Set<Float>)serviceReference.getProperty("p.Float.set")).size()); + assertTrue(serviceReference.getProperty("p.Float.array") instanceof float[]); + assertEquals(2, ((float[])serviceReference.getProperty("p.Float.array")).length); assertTrue(serviceReference.getProperty("p.Integer") instanceof Integer); - assertTrue(serviceReference.getProperty("p.Integer.array") instanceof Integer[]); - assertEquals(2, ((Integer[])serviceReference.getProperty("p.Integer.array")).length); - assertTrue(serviceReference.getProperty("p.Integer.list") instanceof List); - assertEquals(2, ((List<Integer>)serviceReference.getProperty("p.Integer.list")).size()); - assertTrue(serviceReference.getProperty("p.Integer.set") instanceof Set); - assertEquals(2, ((Set<Integer>)serviceReference.getProperty("p.Integer.set")).size()); + assertTrue(serviceReference.getProperty("p.Integer.array") instanceof int[]); + assertEquals(2, ((int[])serviceReference.getProperty("p.Integer.array")).length); assertTrue(serviceReference.getProperty("p.Long") instanceof Long); - assertTrue(serviceReference.getProperty("p.Long.array") instanceof Long[]); - assertEquals(2, ((Long[])serviceReference.getProperty("p.Long.array")).length); - assertTrue(serviceReference.getProperty("p.Long.list") instanceof List); - assertEquals(2, ((List<Long>)serviceReference.getProperty("p.Long.list")).size()); - assertTrue(serviceReference.getProperty("p.Long.set") instanceof Set); - assertEquals(2, ((Set<Long>)serviceReference.getProperty("p.Long.set")).size()); + assertTrue(serviceReference.getProperty("p.Long.array") instanceof long[]); + assertEquals(2, ((long[])serviceReference.getProperty("p.Long.array")).length); assertTrue(serviceReference.getProperty("p.Short") instanceof Short); - assertTrue(serviceReference.getProperty("p.Short.array") instanceof Short[]); - assertEquals(2, ((Short[])serviceReference.getProperty("p.Short.array")).length); - assertTrue(serviceReference.getProperty("p.Short.list") instanceof List); - assertEquals(2, ((List<Short>)serviceReference.getProperty("p.Short.list")).size()); - assertTrue(serviceReference.getProperty("p.Short.set") instanceof Set); - assertEquals(2, ((Set<Short>)serviceReference.getProperty("p.Short.set")).size()); + assertTrue(serviceReference.getProperty("p.Short.array") instanceof short[]); + assertEquals(2, ((short[])serviceReference.getProperty("p.Short.array")).length); assertTrue(serviceReference.getProperty("p.String") instanceof String); assertTrue(serviceReference.getProperty("p.String.array") instanceof String[]); assertEquals(2, ((String[])serviceReference.getProperty("p.String.array")).length); - assertTrue(serviceReference.getProperty("p.String.list") instanceof List); - assertEquals(2, ((List<String>)serviceReference.getProperty("p.String.list")).size()); - assertTrue(serviceReference.getProperty("p.String.set") instanceof Set); - assertEquals(2, ((Set<String>)serviceReference.getProperty("p.String.set")).size()); // glubInteger = 45, gooString = "green" assertTrue(serviceReference.getProperty("glub.integer") instanceof Integer); assertEquals(45, ((Integer)serviceReference.getProperty("glub.integer")).intValue()); assertTrue(serviceReference.getProperty("goo.string") instanceof String); - assertEquals("green", ((String)serviceReference.getProperty("goo.string"))); + assertEquals("green", (serviceReference.getProperty("goo.string"))); } + @Test public void testBundleContextInjection() throws Exception { BeanManager beanManager = getBeanManager(cdiBundle); @@ -248,63 +207,51 @@ public class CdiBeanTests extends Abstra assertTrue(bti.get() instanceof BundleContext); } - @Ignore // This test doesn't make sense because there's only a single bean for the reference!!! - public void _testInstanceProperties() throws Exception { - Iterator<ServiceReference<BeanService>> iterator = bundleContext.getServiceReferences( - BeanService.class, String.format("(objectClass=*.%s)","Instance_ServiceProperties")).iterator(); - - assertTrue(iterator.hasNext()); + @Test + public void testInstanceProperties() throws Exception { + ServiceTracker<BeanService, BeanService> tracker = track( + "(&(objectClass=%s)(objectClass=*.%s))", + BeanService.class.getName(), + "Instance_ServiceProperties"); - ServiceReference<BeanService> serviceReference = iterator.next(); - - assertNotNull(serviceReference); + BeanService beanService = tracker.waitForService(timeout); + assertNotNull(beanService); + assertEquals(4, Integer.decode(beanService.doSomething()).intValue()); @SuppressWarnings("unchecked") - BeanService<Map<String, Object>> bean = bundleContext.getService(serviceReference); - - assertNotNull(bean); - assertEquals(3, Integer.decode(bean.doSomething()).intValue()); - Map<String, Object> map = bean.get(); + Map<String, Object> map = (Map<String, Object>)beanService.get(); assertNotNull(map); + assertEquals(100000, (int)map.get("service.ranking")); } - @Ignore // This test doesn't make sense because there's only a single bean for the reference!!! - public void _testInstanceServiceReference() throws Exception { - Iterator<ServiceReference<BeanService>> iterator = bundleContext.getServiceReferences( - BeanService.class, String.format("(objectClass=*.%s)","Instance_ServiceReference")).iterator(); - - assertTrue(iterator.hasNext()); + @Test + public void testInstanceServiceReference() throws Exception { + ServiceTracker<BeanService, BeanService> tracker = track( + "(&(objectClass=%s)(objectClass=*.%s))", + BeanService.class.getName(), + "Instance_ServiceReference"); - ServiceReference<BeanService> serviceReference = iterator.next(); + BeanService beanService = tracker.waitForService(timeout); - assertNotNull(serviceReference); - - @SuppressWarnings("unchecked") - BeanService<ServiceReference<?>> bean = bundleContext.getService(serviceReference); - - assertNotNull(bean); - assertEquals(3, Integer.decode(bean.doSomething()).intValue()); - ServiceReference<?> sr = bean.get(); + assertNotNull(beanService); + assertEquals(4, Integer.decode(beanService.doSomething()).intValue()); + ServiceReference<?> sr = (ServiceReference<?>)beanService.get(); assertNotNull(sr); + assertEquals(4, (int)sr.getProperty("service.ranking")); } - @Ignore // This test doesn't make sense because there's only a single bean for the reference!!! - public void _testInstance_Optional() throws Exception { - Iterator<ServiceReference<BeanService>> iterator = bundleContext.getServiceReferences( - BeanService.class, String.format("(objectClass=*.%s)","Instance_Optional")).iterator(); - - assertTrue(iterator.hasNext()); + @Test + public void testInstance_Optional() throws Exception { + ServiceTracker<BeanService, BeanService> tracker = track( + "(&(objectClass=%s)(objectClass=*.%s))", + BeanService.class.getName(), + "Instance_Optional"); - ServiceReference<BeanService> serviceReference = iterator.next(); - - assertNotNull(serviceReference); - - @SuppressWarnings("unchecked") - BeanService<Callable<String>> bean = bundleContext.getService(serviceReference); + BeanService beanService = tracker.waitForService(timeout); - assertNotNull(bean); - assertEquals(0, Integer.decode(bean.doSomething()).intValue()); - assertNull(bean.get()); + assertNotNull(beanService); + assertEquals(0, Integer.decode(beanService.doSomething()).intValue()); + assertNull(beanService.get()); } } \ No newline at end of file Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiContainerTests.java Sat Apr 14 01:10:27 2018 @@ -14,20 +14,18 @@ package org.apache.aries.cdi.test.cases; +import static org.junit.Assert.*; + import javax.enterprise.inject.spi.BeanManager; import javax.enterprise.inject.spi.CDI; import org.apache.aries.cdi.test.interfaces.Pojo; +import org.junit.Test; import org.osgi.framework.wiring.BundleWiring; public class CdiContainerTests extends AbstractTestCase { - @Override - protected void setUp() throws Exception { - super.setUp(); - containerDTO = getContainerDTO(cdiBundle); - } - + @Test public void testGetBeanFromCdiContainerService() throws Exception { BeanManager beanManager = getBeanManager(cdiBundle); @@ -35,6 +33,7 @@ public class CdiContainerTests extends A assertBeanExists(Pojo.class, beanManager); } + @Test public void testGetBeanManagerFromCDI() throws Exception { Thread currentThread = Thread.currentThread(); ClassLoader contextClassLoader = currentThread.getContextClassLoader(); Modified: aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiExtenderTests.java URL: http://svn.apache.org/viewvc/aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiExtenderTests.java?rev=1829115&r1=1829114&r2=1829115&view=diff ============================================================================== --- aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiExtenderTests.java (original) +++ aries/trunk/cdi/cdi-itests/src/main/java/org/apache/aries/cdi/test/cases/CdiExtenderTests.java Sat Apr 14 01:10:27 2018 @@ -14,32 +14,49 @@ package org.apache.aries.cdi.test.cases; +import static org.junit.Assert.*; + import javax.enterprise.inject.spi.BeanManager; +import org.junit.Test; import org.osgi.framework.Bundle; import org.osgi.util.tracker.ServiceTracker; public class CdiExtenderTests extends AbstractTestCase { + @Test public void testStopExtender() throws Exception { Bundle cdiExtenderBundle = getCdiExtenderBundle(); - ServiceTracker<BeanManager,BeanManager> serviceTracker = getServiceTracker(cdiBundle); + ServiceTracker<BeanManager, BeanManager> tracker = getServiceTracker(cdiBundle); - try { - assertNotNull(serviceTracker.waitForService(timeout)); + BeanManager beanManager = tracker.waitForService(timeout); - cdiExtenderBundle.stop(); + assertNotNull(beanManager); - assertTrue(serviceTracker.isEmpty()); + int trackingCount = tracker.getTrackingCount(); - cdiExtenderBundle.start(); + cdiExtenderBundle.stop(); - assertNotNull(serviceTracker.waitForService(timeout)); + for (int i = 10; (i > 0) && (tracker.getTrackingCount() == trackingCount); i--) { + Thread.sleep(20); } - finally { - serviceTracker.close(); + + beanManager = tracker.getService(); + + assertNull(beanManager); + + trackingCount = tracker.getTrackingCount(); + + cdiExtenderBundle.start(); + + for (int i = 10; (i > 0) && (tracker.getTrackingCount() == trackingCount); i--) { + Thread.sleep(20); } + + beanManager = tracker.getService(); + + assertNotNull(beanManager); } } \ No newline at end of file