You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aries.apache.org by ro...@apache.org on 2018/04/14 01:10:31 UTC

svn commit: r1829115 [11/12] - in /aries/trunk/cdi: ./ cdi-extender/ cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/ cdi-extender/src/main/java/org/apache/aries/cdi/container/internal/bean/ cdi-extender/src/main/java/org/apache/arie...

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