diff --git a/.github/workflows/maven-ci.yml b/.github/workflows/maven-ci.yml
index 68e223727d..66b1ed881c 100644
--- a/.github/workflows/maven-ci.yml
+++ b/.github/workflows/maven-ci.yml
@@ -23,6 +23,7 @@ on:
- 'log.extension/**'
- 'examples/**'
- 'configadmin/**'
+ - 'dependencymanager/**'
pull_request:
branches: [ "master", "feature/**", "maintenance/**" ]
paths:
@@ -45,6 +46,7 @@ on:
- 'log.extension/**'
- 'examples/**'
- 'configadmin/**'
+ - 'dependencymanager/**'
# Cancel superseded runs for the same branch. github.head_ref is only set for
# pull_request events, so pushes fall back to github.ref, which groups per branch:
@@ -118,6 +120,8 @@ jobs:
- 'log.extension/**'
examples:
- 'examples/**'
+ dependencymanager:
+ - 'dependencymanager/**'
- name: Felix Configuration JSON
if: steps.changes.outputs.cm-json == 'true' || steps.changes.outputs.configurator == 'true'
run: mvn -B -V -Dstyle.color=always --file cm.json/pom.xml clean install
@@ -133,7 +137,7 @@ jobs:
# code being changed rather than the last release. A producer is therefore built and
# installed whenever it or one of its consumers changed. See FELIX-6870.
- name: Resolve the versions built in this repository
- if: steps.changes.outputs.framework == 'true' || steps.changes.outputs.http == 'true' || steps.changes.outputs.configadmin == 'true' || steps.changes.outputs.scr == 'true' || steps.changes.outputs.gogo == 'true' || steps.changes.outputs.utils == 'true' || steps.changes.outputs.resolver == 'true'
+ if: steps.changes.outputs.framework == 'true' || steps.changes.outputs.http == 'true' || steps.changes.outputs.configadmin == 'true' || steps.changes.outputs.scr == 'true' || steps.changes.outputs.gogo == 'true' || steps.changes.outputs.utils == 'true' || steps.changes.outputs.resolver == 'true' || steps.changes.outputs.dependencymanager == 'true'
run: |
record() {
echo "$1=$2" >> "$GITHUB_ENV"
@@ -147,10 +151,10 @@ jobs:
record "GOGO_$(echo "$module" | tr 'a-z' 'A-Z')_VERSION" "$(mvn -B -q --file gogo/pom.xml -pl "$module" help:evaluate -Dexpression=project.version -DforceStdout)"
done
- name: Felix Framework
- if: steps.changes.outputs.framework == 'true' || steps.changes.outputs.http == 'true' || steps.changes.outputs.configadmin == 'true' || steps.changes.outputs.scr == 'true' || steps.changes.outputs.gogo == 'true'
+ if: steps.changes.outputs.framework == 'true' || steps.changes.outputs.http == 'true' || steps.changes.outputs.configadmin == 'true' || steps.changes.outputs.scr == 'true' || steps.changes.outputs.gogo == 'true' || steps.changes.outputs.dependencymanager == 'true'
run: mvn -B -V -Dstyle.color=always --file framework/pom.xml clean install
- name: Felix Config Admin
- if: steps.changes.outputs.configadmin == 'true' || steps.changes.outputs.scr == 'true'
+ if: steps.changes.outputs.configadmin == 'true' || steps.changes.outputs.scr == 'true' || steps.changes.outputs.dependencymanager == 'true'
run: mvn -B -V -Dstyle.color=always --file configadmin/pom.xml clean install "-Dfelix.framework.version=$FRAMEWORK_VERSION"
- name: Felix SCR
if: steps.changes.outputs.scr == 'true'
@@ -174,8 +178,8 @@ jobs:
if: steps.changes.outputs.main == 'true'
run: mvn -B -V -Dstyle.color=always --file main/pom.xml clean verify
- name: Felix Gogo Shell
- if: steps.changes.outputs.gogo == 'true'
- run: mvn -B -V -Dstyle.color=always --file gogo/pom.xml clean verify "-Dfelix.gogo.command.version=$GOGO_COMMAND_VERSION" "-Dfelix.gogo.runtime.version=$GOGO_RUNTIME_VERSION" "-Dfelix.gogo.shell.version=$GOGO_SHELL_VERSION" "-Dfelix.gogo.jline.version=$GOGO_JLINE_VERSION" "-Dfelix.framework.version=$FRAMEWORK_VERSION"
+ if: steps.changes.outputs.gogo == 'true' || steps.changes.outputs.dependencymanager == 'true'
+ run: mvn -B -V -Dstyle.color=always --file gogo/pom.xml clean install "-Dfelix.gogo.command.version=$GOGO_COMMAND_VERSION" "-Dfelix.gogo.runtime.version=$GOGO_RUNTIME_VERSION" "-Dfelix.gogo.shell.version=$GOGO_SHELL_VERSION" "-Dfelix.gogo.jline.version=$GOGO_JLINE_VERSION" "-Dfelix.framework.version=$FRAMEWORK_VERSION"
- name: Felix utils
if: steps.changes.outputs.utils == 'true' || steps.changes.outputs.resolver == 'true'
run: mvn -B -V -Dstyle.color=always --file utils/pom.xml clean install
@@ -194,6 +198,11 @@ jobs:
- name: Felix examples
if: steps.changes.outputs.examples == 'true'
run: mvn -B -V -Dstyle.color=always --file examples/pom.xml clean verify
+ # The Dependency Manager runs last. Its integration tests run on the framework, Gogo and
+ # Config Admin built and installed by the steps above, see FELIX-6870.
+ - name: Felix Dependency Manager
+ if: steps.changes.outputs.dependencymanager == 'true'
+ run: mvn -B -V -Dstyle.color=always --file dependencymanager/pom.xml clean verify "-Dframework.version=$FRAMEWORK_VERSION" "-Dconfigadmin.version=$CONFIGADMIN_VERSION" "-Dgogo.runtime.version=$GOGO_RUNTIME_VERSION" "-Dgogo.shell.version=$GOGO_SHELL_VERSION" "-Dgogo.command.version=$GOGO_COMMAND_VERSION"
- name: Upload Test Results
if: always()
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
@@ -204,4 +213,5 @@ jobs:
${{ github.workspace }}/**/target/surefire-reports/*.xml
${{ github.workspace }}/**/target/failsafe-reports/*.xml
${{ github.workspace }}/**/target/test-reports/tck/*.xml
+ ${{ github.workspace }}/dependencymanager/**/target/test-reports/test/*.xml
diff --git a/dependencymanager/.gitignore b/dependencymanager/.gitignore
index de001d36b8..88bf8e6ae4 100644
--- a/dependencymanager/.gitignore
+++ b/dependencymanager/.gitignore
@@ -1,8 +1,4 @@
-/.gradle/
-/reports/
+/target/
+**/target/
/generated/
-/.metadata/
-/.recommenders/
-/RemoteSystemsTempFiles/
-/rat-report.xml
-
+**/generated/
diff --git a/dependencymanager/.gradle-wrapper/gradle-wrapper.properties b/dependencymanager/.gradle-wrapper/gradle-wrapper.properties
deleted file mode 100644
index e65df494a7..0000000000
--- a/dependencymanager/.gradle-wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-/*
- * 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.
- */
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-bin.zip
diff --git a/dependencymanager/README b/dependencymanager/README
index 6cd3557eba..ded294e9d4 100644
--- a/dependencymanager/README
+++ b/dependencymanager/README
@@ -21,12 +21,33 @@ Welcome to Apache Felix Dependency Manager
Apache Felix Dependency Manager is a versatile java API, allowing to declaratively
register, acquire, and manage dynamic OSGi services.
-Please refer to release/resources/src/README
+The bundles are documented on the website:
+
+ http://felix.apache.org/documentation/subprojects/apache-felix-dependency-manager.html
Building and testing Apache Felix Dependency Manager
====================================================
-The build instructions can be found from release/resources/src/README.src
+Apache Felix Dependency Manager is built with Maven (a recent JDK, 11 or later, is required):
+
+ mvn clean install
+
+This builds the bundles, runs their unit tests and runs the OSGi integration tests inside a
+framework (bnd-testing-maven-plugin). The framework, Gogo and Config Admin modules of this
+repository, which the integration tests run on, have to be installed in the local Maven
+repository first, or be available as released versions.
+
+The modules are:
+
+ org.apache.felix.dependencymanager the Dependency Manager API and implementation
+ org.apache.felix.dependencymanager.annotation the annotations and the bnd plugin which processes them
+ org.apache.felix.dependencymanager.runtime loads the components declared with annotations
+ org.apache.felix.dependencymanager.shell the Gogo shell commands
+ org.apache.felix.dependencymanager.lambda the lambda based API
+ org.apache.felix.dependencymanager.*.itest.* the integration tests
+ org.apache.felix.dependencymanager.samples samples, see org.apache.felix.dependencymanager.samples/README.samples
+ org.apache.felix.dependencymanager.lambda.samples
+ org.apache.felix.dependencymanager.benchmark a stress test, see org.apache.felix.dependencymanager.benchmark/README
Getting Started
===============
diff --git a/dependencymanager/build.gradle b/dependencymanager/build.gradle
deleted file mode 100644
index 71ae1fde12..0000000000
--- a/dependencymanager/build.gradle
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * 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.
- */
-
-tasks.named('wrapper') {
- jarFile = rootProject.file('.gradle-wrapper/gradle-wrapper.jar')
-}
diff --git a/dependencymanager/changelog.txt b/dependencymanager/changelog.txt
index 2672e66815..b0b4139681 100644
--- a/dependencymanager/changelog.txt
+++ b/dependencymanager/changelog.txt
@@ -1,3 +1,21 @@
+Release Notes - Felix - Dependency Manager
+==========================================
+
+** List of bundles being part of the release:
+ * org.apache.felix.dependencymanager; version=5.0.0
+ * org.apache.felix.dependencymanager.shell; version=5.0.0
+ * org.apache.felix.dependencymanager.runtime; version=5.0.0
+ * org.apache.felix.dependencymanager.annotation; version=6.0.0
+ * org.apache.felix.dependencymanager.lambda; version=2.0.0
+
+** Improvement
+ * [FELIX-6872] - Support current JDKs (up to Java 25) and build the Dependency Manager with Maven
+
+ The minimum Java version is now 11, which is why the bundles get a new major version.
+ The exported packages are unchanged compared with the previous release.
+ The bundles are still compiled against OSGi R6, so their imports have not changed.
+ The deprecated use of AccessController in the service tracker and in the runtime has been removed.
+
Release Notes - Felix - Version org.apache.felix.dependencymanager-r16
======================================================================
diff --git a/dependencymanager/cnf/.classpath b/dependencymanager/cnf/.classpath
deleted file mode 100644
index fb5011632c..0000000000
--- a/dependencymanager/cnf/.classpath
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
diff --git a/dependencymanager/cnf/.gitignore b/dependencymanager/cnf/.gitignore
deleted file mode 100644
index 120f0c4575..0000000000
--- a/dependencymanager/cnf/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/generated/
-/cache/
diff --git a/dependencymanager/cnf/.project b/dependencymanager/cnf/.project
deleted file mode 100644
index 1397bbe620..0000000000
--- a/dependencymanager/cnf/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- cnf
-
-
-
-
-
-
-
-
diff --git a/dependencymanager/cnf/build.bnd b/dependencymanager/cnf/build.bnd
deleted file mode 100644
index b5144dc788..0000000000
--- a/dependencymanager/cnf/build.bnd
+++ /dev/null
@@ -1,75 +0,0 @@
-# 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.
-#
-
-#
-# Set here bnd repositories
-#
--plugin.1.Release: aQute.bnd.deployer.repository.LocalIndexedRepo; \
- name=Release; \
- local=${workspace}/cnf/releaserepo; \
- pretty=true
-
--plugin.2.Local: aQute.bnd.deployer.repository.LocalIndexedRepo; \
- name=Local; \
- local=${workspace}/cnf/localrepo; \
- pretty=true
-
--plugin.3.Repository: aQute.bnd.repository.maven.provider.MavenBndRepository; \
- releaseUrl = 'https://repo1.maven.org/maven2'; \
- name = Repository; \
- index = ${.}/repository.mvn; \
- noupdateOnRelease=true
-
-#
-# configure release and baseline repos
-#
--releaserepo: Release
--baselinerepo: Repository
--baseline: *
-
-#
-# Set here the maven group id for the workspace bundles
-#
--pom: groupid = org.apache.felix
-
-#
-# do not include pom dependencies
-#
--maven-dependencies:
-
-#
-# Don't include sources in generated bundles
-#
--sources: true
-
-#
-# Java parameters
-#
-javac.source: 1.8
-javac.target: 1.8
-
-#
-# Removes some headers in order to reduce binary diff between same bundles that are not changed between subsequent releases.
-#
--removeheaders: Bnd-LastModified,Tool,Created-By,Include-Resource
-
-#
-# Add pom scm section in generated poms
-#
-Bundle-SCM: \
- url='https://gitbox.apache.org/repos/asf?p=felix-dev.git',\
- connection='scm:git:https://github.com/apache/felix-dev.git',\
- developerConnection='scm:git:https://github.com/apache/felix-dev.git'
diff --git a/dependencymanager/cnf/ext/junit.bnd b/dependencymanager/cnf/ext/junit.bnd
deleted file mode 100644
index 129c585689..0000000000
--- a/dependencymanager/cnf/ext/junit.bnd
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# 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.
-#
-
-junit: org.apache.servicemix.bundles.junit; version=4.12
-test-reports: test-results
diff --git a/dependencymanager/cnf/ext/libraries.bnd b/dependencymanager/cnf/ext/libraries.bnd
deleted file mode 100644
index 9148780069..0000000000
--- a/dependencymanager/cnf/ext/libraries.bnd
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# 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.
-#
-
-##
-# metatype service
-metatype=org.apache.felix.metatype;version=1.0.4
-
-##
-# log service
-log=org.apache.felix.log;version=1.0.1
-
-##
-# Gogo bundles
-gogo=\
- org.apache.felix.gogo.command;version=1.0.2,\
- org.apache.felix.gogo.runtime;version=1.0.10,\
- org.apache.felix.gogo.shell;version=1.0.0,\
- org.jline;version=3.0.4,\
- org.fusesource.jansi;version=1.16.0
-
-
-##
-# Configuration Admin
-configadmin=org.apache.felix.configadmin;version=1.8.8
-
-##
-# Event Admin
-eventadmin=org.apache.felix.eventadmin;version=1.4.4
-
-##
-# Web Console
-webconsole=\
- org.apache.felix.http.api;version=3.0.0,\
- org.apache.felix.http.servlet-api;version=1.1.2,\
- org.apache.felix.http.jetty;version="[3.4.8,3.4.9]",\
- org.apache.felix.webconsole;version=4.3.4,\
- org.apache.commons.fileupload;version=1.2.1,\
- org.apache.commons.io;version=2.4.0
-
-##
-# bndlib
-bndlib=biz.aQute.bndlib;version=5.2.0
-
-##
-# mockito
-mockito=org.mockito.mockito-core;version=1.10.19
-
-##
-# objenesis
-objenesis=org.objenesis;version=2.2
-
-##
-# runtime dependencies used by integration tests
-#
-itest.run=\
- org.apache.servicemix.bundles.junit;version=4.12,\
- org.mockito.mockito-core;version='[1.10.19,1.10.20)',\
- org.objenesis;version='[2.2.0,2.2.1)'
-
-##
-# Felix Framework
-#
-felix.framework=org.apache.felix.framework;version='[5.6.10,5.6.10]'
diff --git a/dependencymanager/cnf/repository.mvn b/dependencymanager/cnf/repository.mvn
deleted file mode 100644
index 46d73cba8c..0000000000
--- a/dependencymanager/cnf/repository.mvn
+++ /dev/null
@@ -1,53 +0,0 @@
-#
-# 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.
-#
-
-ant:ant:1.5
-biz.aQute.bnd:biz.aQute.bnd.gradle:5.2.0
-biz.aQute.bnd:biz.aQute.bndlib:5.2.0
-org.apache.felix:org.apache.felix.framework:5.6.10
-org.apache.felix:org.apache.felix.eventadmin:1.4.4
-org.apache.felix:org.apache.felix.gogo.command:1.0.2
-org.apache.felix:org.apache.felix.gogo.shell:1.0.0
-org.apache.felix:org.apache.felix.gogo.runtime:1.0.10
-org.jline:jline:3.0.4
-org.apache.felix:org.apache.felix.http.api:3.0.0
-org.apache.felix:org.apache.felix.http.servlet-api:1.1.2
-org.apache.felix:org.apache.felix.configadmin:1.8.8
-org.apache.felix:org.apache.felix.log:1.0.1
-org.apache.felix:org.apache.felix.metatype:1.1.2
-org.apache.felix:org.apache.felix.http.jetty:3.4.8
-org.apache.felix:org.apache.felix.webconsole:4.3.4
-org.apache.felix:org.apache.felix.dependencymanager:4.6.1
-org.apache.felix:org.apache.felix.dependencymanager.annotation:5.0.2
-org.apache.felix:org.apache.felix.dependencymanager.lambda:1.2.2
-org.apache.felix:org.apache.felix.dependencymanager.runtime:4.0.8
-org.apache.felix:org.apache.felix.dependencymanager.shell:4.0.9
-org.jline:jline-builtins:3.3.0
-org.apache.servicemix.bundles:org.apache.servicemix.bundles.junit:4.12_1
-org.mockito:mockito-core:1.10.19
-org.objenesis:objenesis:2.2
-org.osgi:osgi.annotation:6.0.1
-org.osgi:osgi.cmpn:6.0.0
-org.osgi:osgi.core:6.0.0
-biz.aQute.bnd:biz.aQute.bnd.annotation:3.5.0
-org.slf4j:slf4j-simple:1.7.7
-org.slf4j:slf4j-api:1.7.7
-commons-fileupload:commons-fileupload:1.2.1
-org.fusesource.jansi:jansi:1.16
-commons-io:commons-io:2.4
-
-
diff --git a/dependencymanager/docs/.project b/dependencymanager/docs/.project
deleted file mode 100644
index e248a4fa70..0000000000
--- a/dependencymanager/docs/.project
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
- docs
-
-
-
-
-
-
-
-
diff --git a/dependencymanager/gradle.properties b/dependencymanager/gradle.properties
deleted file mode 100644
index 35354fb51e..0000000000
--- a/dependencymanager/gradle.properties
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * 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.
- */
-
-bnd_version=5.2.0
-# bnd_plugin is the dependency declaration for the bnd gradle plugin
-bnd_plugin=biz.aQute.bnd:biz.aQute.bnd.gradle:5.2.0
-
-org.gradle.jvmargs=-Xmx2g
-
-
diff --git a/dependencymanager/gradlew b/dependencymanager/gradlew
deleted file mode 100755
index 6a4bf153fc..0000000000
--- a/dependencymanager/gradlew
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/usr/bin/env sh
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
- echo "$*"
-}
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-if [ ! -f $APP_HOME/.gradle-wrapper/gradle-wrapper.jar ]
-then
- mkdir -p $APP_HOME/.gradle-wrapper
- curl https://raw.githubusercontent.com/gradle/gradle/master/gradle/wrapper/gradle-wrapper.jar -o $APP_HOME/.gradle-wrapper/gradle-wrapper.jar
-fi
-
-CLASSPATH=$APP_HOME/.gradle-wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=$(save "$@")
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
- cd "$(dirname "$0")"
-fi
-
-exec "$JAVACMD" "$@"
diff --git a/dependencymanager/org.apache.felix.dependencymanager.annotation/.classpath b/dependencymanager/org.apache.felix.dependencymanager.annotation/.classpath
deleted file mode 100644
index 7a6fc25436..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.annotation/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dependencymanager/org.apache.felix.dependencymanager.annotation/.gitignore b/dependencymanager/org.apache.felix.dependencymanager.annotation/.gitignore
deleted file mode 100644
index 90dde36e4a..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.annotation/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/bin_test/
-/generated/
diff --git a/dependencymanager/org.apache.felix.dependencymanager.annotation/.project b/dependencymanager/org.apache.felix.dependencymanager.annotation/.project
deleted file mode 100644
index 35b34cacf3..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.annotation/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- org.apache.felix.dependencymanager.annotation
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- bndtools.core.bndbuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- bndtools.core.bndnature
-
-
diff --git a/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd b/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd
deleted file mode 100644
index 9d04b269de..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.annotation/bnd.bnd
+++ /dev/null
@@ -1,30 +0,0 @@
-#
-# 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.
-#
-Bundle-Version: 5.0.3
--buildpath: \
- osgi.core;version=6.0,\
- osgi.cmpn;version=6.0,\
- biz.aQute.bndlib;version=3.5
-Private-Package: org.apache.felix.dm.annotation.plugin.bnd
-Export-Package: org.apache.felix.dm.annotation.api
-Include-Resource: META-INF/=resources/,META-INF/changelog.txt=changelog.txt
-Bundle-Name: Apache Felix Dependency Manager Annotations
-Bundle-Description: Annotations for Apache Felix Dependency Manager
-Bundle-Category: osgi
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Vendor: The Apache Software Foundation
-Bundle-DocURL: http://felix.apache.org/documentation/subprojects/apache-felix-dependency-manager/apache-felix-dependency-manager-using-annotations.html
diff --git a/dependencymanager/org.apache.felix.dependencymanager.annotation/changelog.txt b/dependencymanager/org.apache.felix.dependencymanager.annotation/changelog.txt
index 0dfd0db301..efcb2b3f73 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.annotation/changelog.txt
+++ b/dependencymanager/org.apache.felix.dependencymanager.annotation/changelog.txt
@@ -1,3 +1,21 @@
+Release Notes - Felix - Version org.apache.felix.dependencymanager.annotation-6.0.0
+===================================================================================
+
+** List of bundles being part of the release:
+ * org.apache.felix.dependencymanager; version=5.0.0
+ * org.apache.felix.dependencymanager.shell; version=5.0.0
+ * org.apache.felix.dependencymanager.runtime; version=5.0.0
+ * org.apache.felix.dependencymanager.annotation; version=6.0.0
+ * org.apache.felix.dependencymanager.lambda; version=2.0.0
+
+** Improvement
+ * [FELIX-6872] - Support current JDKs (up to Java 25) and build the Dependency Manager with Maven
+
+ The minimum Java version is now 11, which is why the bundles get a new major version.
+ The exported packages are unchanged compared with the previous release.
+ The bundles are still compiled against OSGi R6, so their imports have not changed.
+ The deprecated use of AccessController in the service tracker and in the runtime has been removed.
+
Release Notes - Felix - Version org.apache.felix.dependencymanager-r16
======================================================================
diff --git a/dependencymanager/org.apache.felix.dependencymanager.annotation/pom.xml b/dependencymanager/org.apache.felix.dependencymanager.annotation/pom.xml
new file mode 100644
index 0000000000..4fb70caa65
--- /dev/null
+++ b/dependencymanager/org.apache.felix.dependencymanager.annotation/pom.xml
@@ -0,0 +1,88 @@
+
+
+
+ 4.0.0
+
+
+ org.apache.felix
+ dependencymanager-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ org.apache.felix.dependencymanager.annotation
+ 6.0.0-SNAPSHOT
+ bundle
+
+ Apache Felix Dependency Manager Annotations
+ Annotations for Apache Felix Dependency Manager
+
+
+ scm:git:https://github.com/apache/felix-dev.git
+ scm:git:https://github.com/apache/felix-dev.git
+ https://gitbox.apache.org/repos/asf?p=felix-dev.git;f=dependencymanager/org.apache.felix.dependencymanager.annotation
+ HEAD
+
+
+
+
+ org.osgi
+ osgi.core
+
+
+ org.osgi
+ osgi.cmpn
+
+
+ biz.aQute.bnd
+ biz.aQute.bndlib
+ ${bnd.version}
+ provided
+
+
+
+
+ src
+ test
+
+
+
+ src
+
+ **/packageinfo
+
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+
+
+ META-INF/=resources/,META-INF/changelog.txt=changelog.txt
+ org.apache.felix.dm.annotation.plugin.bnd
+ org.apache.felix.dm.annotation.api
+ https://felix.apache.org/documentation/subprojects/apache-felix-dependency-manager/apache-felix-dependency-manager-using-annotations.html
+
+
+
+
+
+
diff --git a/dependencymanager/org.apache.felix.dependencymanager.annotation/src/.gitignore b/dependencymanager/org.apache.felix.dependencymanager.annotation/src/.gitignore
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/dependencymanager/org.apache.felix.dependencymanager.annotation/test/.gitignore b/dependencymanager/org.apache.felix.dependencymanager.annotation/test/.gitignore
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/.classpath b/dependencymanager/org.apache.felix.dependencymanager.benchmark/.classpath
deleted file mode 100644
index 7a6fc25436..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/.gitignore b/dependencymanager/org.apache.felix.dependencymanager.benchmark/.gitignore
deleted file mode 100644
index 90dde36e4a..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/bin_test/
-/generated/
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/.project b/dependencymanager/org.apache.felix.dependencymanager.benchmark/.project
deleted file mode 100644
index e601a910ba..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- org.apache.felix.dependencymanager.benchmark
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- bndtools.core.bndbuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- bndtools.core.bndnature
-
-
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/bnd.bnd b/dependencymanager/org.apache.felix.dependencymanager.benchmark/bnd.bnd
deleted file mode 100644
index 57c6346496..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/bnd.bnd
+++ /dev/null
@@ -1,32 +0,0 @@
-#
-# 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.
-#
-javac.source: 1.8
-javac.target: 1.8
-Bundle-Version: 1.0.0
--buildpath: \
- org.apache.felix.dependencymanager;version=latest,\
- osgi.core;version=6.0,\
- osgi.cmpn;version=6.0
-
--sub: \
- *.bnd
-Export-Package: \
- org.apache.felix.dm.benchmark.scenario.impl
-
-# we do not release this project in binary distribution.
--releaserepo:
--baseline:
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/controller.bnd b/dependencymanager/org.apache.felix.dependencymanager.benchmark/controller.bnd
deleted file mode 100644
index d4fcced6d8..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/controller.bnd
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# 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.
-#
-Private-Package: \
- org.apache.felix.dm.benchmark.controller.impl
-Bundle-Activator: org.apache.felix.dm.benchmark.controller.impl.Activator
-Export-Package: \
- org.apache.felix.dm.benchmark.controller
\ No newline at end of file
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/dependencymanager.bnd b/dependencymanager/org.apache.felix.dependencymanager.benchmark/dependencymanager.bnd
deleted file mode 100644
index 8e12db1173..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/dependencymanager.bnd
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# 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.
-#
-Private-Package: \
- org.apache.felix.dm.benchmark.dependencymanager
-Bundle-Activator: org.apache.felix.dm.benchmark.dependencymanager.Activator
\ No newline at end of file
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/dependencymanager.parallel.bnd b/dependencymanager/org.apache.felix.dependencymanager.benchmark/dependencymanager.parallel.bnd
deleted file mode 100644
index b6ce3b27bc..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/dependencymanager.parallel.bnd
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# 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.
-#
-Bundle-Activator: org.apache.felix.dm.benchmark.dependencymanager.ParallelActivator
-Private-Package: \
- org.apache.felix.dm.benchmark.dependencymanager
\ No newline at end of file
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/index.bndrun b/dependencymanager/org.apache.felix.dependencymanager.benchmark/index.bndrun
deleted file mode 100644
index fb581164f4..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/index.bndrun
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# 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.
-#
--runbundles: \
- org.apache.felix.dependencymanager;version=latest,\
- org.apache.felix.dependencymanager.shell;version=latest,\
- org.apache.felix.metatype;version=1.0.10,\
- org.apache.felix.log;version=1.0.1,\
- ${gogo},\
- org.apache.felix.configadmin;version=1.8.8,\
- org.apache.felix.dependencymanager.benchmark.scenario;version=latest,\
- org.apache.felix.dependencymanager.benchmark.dependencymanager;version=latest,\
- org.apache.felix.dependencymanager.benchmark.dependencymanager.parallel;version=latest,\
- org.apache.felix.dependencymanager.benchmark.controller;version=latest
-
--runfw: ${felix.framework}
-
--runproperties: \
- ds.loglevel=warn,\
- org.osgi.framework.bootdelegation='sun.*,com.sun.*,org.netbeans.*',\
- org.apache.felix.dependencymanager.filterindex='objectClass,id'
--runvm: -server -Xmx1024m -Xms1024m
-javac.source: 1.8
-javac.target: 1.8
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/noindex.bndrun b/dependencymanager/org.apache.felix.dependencymanager.benchmark/noindex.bndrun
deleted file mode 100644
index b4a1eb0c15..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/noindex.bndrun
+++ /dev/null
@@ -1,37 +0,0 @@
-#
-# 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.
-#
--runbundles: \
- org.apache.felix.dependencymanager;version=latest,\
- org.apache.felix.dependencymanager.shell;version=latest,\
- org.apache.felix.metatype;version=1.0.10,\
- org.apache.felix.log;version=1.0.1,\
- ${gogo},\
- org.apache.felix.configadmin;version=1.8.8,\
- org.apache.felix.dependencymanager.benchmark.scenario;version=latest,\
- org.apache.felix.dependencymanager.benchmark.dependencymanager;version=latest,\
- org.apache.felix.dependencymanager.benchmark.dependencymanager.parallel;version=latest,\
- org.apache.felix.dependencymanager.benchmark.controller;version=latest
-
--runfw: ${felix.framework}
-
--runproperties: \
- ds.loglevel=warn,\
- org.osgi.framework.bootdelegation='sun.*,com.sun.*,org.netbeans.*'
--runvm: -server -Xmx1024m -Xms1024m
--runee: JavaSE-1.8
-javac.source: 1.8
-javac.target: 1.8
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/pom.xml b/dependencymanager/org.apache.felix.dependencymanager.benchmark/pom.xml
new file mode 100644
index 0000000000..3611a81394
--- /dev/null
+++ b/dependencymanager/org.apache.felix.dependencymanager.benchmark/pom.xml
@@ -0,0 +1,163 @@
+
+
+
+ 4.0.0
+
+
+ org.apache.felix
+ dependencymanager-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ org.apache.felix.dependencymanager.benchmark
+ 1.0.0-SNAPSHOT
+ jar
+
+ Apache Felix Dependency Manager Benchmark
+ Benchmark of Apache Felix Dependency Manager
+
+
+
+ true
+ true
+ true
+
+
+
+
+ org.osgi
+ osgi.core
+
+
+ org.osgi
+ osgi.cmpn
+
+
+ org.apache.felix
+ org.apache.felix.dependencymanager
+ ${dependencymanager.version}
+
+
+
+
+ src
+
+
+
+ org.apache.geronimo.genesis.plugins
+ tools-maven-plugin
+
+
+ verify-legal-files
+ none
+
+
+
+
+
+ maven-jar-plugin
+
+
+ default-jar
+ none
+
+
+
+
+ org.apache.felix
+ maven-bundle-plugin
+
+
+
+
+
+
+ controller
+ package
+
+ bundle
+
+
+ controller
+
+ org.apache.felix.dependencymanager.benchmark.controller
+ META-INF/DEPENDENCIES=${project.build.directory}/maven-shared-archive-resources/META-INF/DEPENDENCIES,META-INF/LICENSE=${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE,META-INF/NOTICE=${project.build.directory}/maven-shared-archive-resources/META-INF/NOTICE,org/apache/felix/dm/benchmark/controller=${project.build.outputDirectory}/org/apache/felix/dm/benchmark/controller,org/apache/felix/dm/benchmark/controller/impl=${project.build.outputDirectory}/org/apache/felix/dm/benchmark/controller/impl
+
+ org.apache.felix.dm.benchmark.controller
+ org.apache.felix.dm.benchmark.controller.impl.Activator
+
+
+
+
+ dependencymanager
+ package
+
+ bundle
+
+
+ dependencymanager
+
+ org.apache.felix.dependencymanager.benchmark.dependencymanager
+ META-INF/DEPENDENCIES=${project.build.directory}/maven-shared-archive-resources/META-INF/DEPENDENCIES,META-INF/LICENSE=${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE,META-INF/NOTICE=${project.build.directory}/maven-shared-archive-resources/META-INF/NOTICE,org/apache/felix/dm/benchmark/dependencymanager=${project.build.outputDirectory}/org/apache/felix/dm/benchmark/dependencymanager,org/apache/felix/dm/benchmark/scenario/impl=${project.build.outputDirectory}/org/apache/felix/dm/benchmark/scenario/impl
+
+ org.apache.felix.dm.benchmark.scenario.impl
+ org.apache.felix.dm.benchmark.dependencymanager.Activator
+
+
+
+
+ dependencymanager.parallel
+ package
+
+ bundle
+
+
+ dependencymanager.parallel
+
+ org.apache.felix.dependencymanager.benchmark.dependencymanager.parallel
+ META-INF/DEPENDENCIES=${project.build.directory}/maven-shared-archive-resources/META-INF/DEPENDENCIES,META-INF/LICENSE=${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE,META-INF/NOTICE=${project.build.directory}/maven-shared-archive-resources/META-INF/NOTICE,org/apache/felix/dm/benchmark/dependencymanager=${project.build.outputDirectory}/org/apache/felix/dm/benchmark/dependencymanager,org/apache/felix/dm/benchmark/scenario/impl=${project.build.outputDirectory}/org/apache/felix/dm/benchmark/scenario/impl
+
+ org.apache.felix.dm.benchmark.scenario.impl
+ org.apache.felix.dm.benchmark.dependencymanager.ParallelActivator
+
+
+
+
+ scenario
+ package
+
+ bundle
+
+
+ scenario
+
+ org.apache.felix.dependencymanager.benchmark.scenario
+ META-INF/DEPENDENCIES=${project.build.directory}/maven-shared-archive-resources/META-INF/DEPENDENCIES,META-INF/LICENSE=${project.build.directory}/maven-shared-archive-resources/META-INF/LICENSE,META-INF/NOTICE=${project.build.directory}/maven-shared-archive-resources/META-INF/NOTICE,org/apache/felix/dm/benchmark/scenario=${project.build.outputDirectory}/org/apache/felix/dm/benchmark/scenario,org/apache/felix/dm/benchmark/scenario/impl=${project.build.outputDirectory}/org/apache/felix/dm/benchmark/scenario/impl
+
+ org.apache.felix.dm.benchmark.scenario.impl,org.apache.felix.dm.benchmark.scenario
+
+
+
+
+
+
+
+
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/scenario.bnd b/dependencymanager/org.apache.felix.dependencymanager.benchmark/scenario.bnd
deleted file mode 100644
index 8ede3fc6f7..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.benchmark/scenario.bnd
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# 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.
-#
-Export-Package: \
- org.apache.felix.dm.benchmark.scenario.impl,\
- org.apache.felix.dm.benchmark.scenario
\ No newline at end of file
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/src/.gitignore b/dependencymanager/org.apache.felix.dependencymanager.benchmark/src/.gitignore
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/dependencymanager/org.apache.felix.dependencymanager.benchmark/test/.gitignore b/dependencymanager/org.apache.felix.dependencymanager.benchmark/test/.gitignore
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest.dynamic.customindex/pom.xml b/dependencymanager/org.apache.felix.dependencymanager.index.itest.dynamic.customindex/pom.xml
new file mode 100644
index 0000000000..d0598b159f
--- /dev/null
+++ b/dependencymanager/org.apache.felix.dependencymanager.index.itest.dynamic.customindex/pom.xml
@@ -0,0 +1,77 @@
+
+
+
+ 4.0.0
+
+
+ org.apache.felix
+ dependencymanager-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ org.apache.felix.dependencymanager.index.itest.dynamic.customindex
+ bundle
+
+ Apache Felix Dependency Manager integration tests Dynamic Custom Index
+ Dynamic custom filter index used by the Apache Felix Dependency Manager integration tests
+
+
+
+ true
+ true
+
+
+
+
+ org.osgi
+ osgi.core
+ 8.0.0
+
+
+ org.osgi
+ osgi.cmpn
+ 7.0.0
+
+
+ org.apache.felix
+ org.apache.felix.dependencymanager
+ ${dependencymanager.version}
+
+
+
+
+ src
+
+
+ org.apache.felix
+ maven-bundle-plugin
+
+
+ test
+ org.apache.felix.dm.index.itest.dynamiccustomindex
+ org.apache.felix.dm.impl.index.multiproperty
+ *
+
+
+
+
+
+
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/dynamiccustomindex/DynamicCustomFilterIndex.java b/dependencymanager/org.apache.felix.dependencymanager.index.itest.dynamic.customindex/src/org/apache/felix/dm/index/itest/dynamiccustomindex/DynamicCustomFilterIndex.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/dynamiccustomindex/DynamicCustomFilterIndex.java
rename to dependencymanager/org.apache.felix.dependencymanager.index.itest.dynamic.customindex/src/org/apache/felix/dm/index/itest/dynamiccustomindex/DynamicCustomFilterIndex.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest.static.customindex/pom.xml b/dependencymanager/org.apache.felix.dependencymanager.index.itest.static.customindex/pom.xml
new file mode 100644
index 0000000000..5d41ad7fc4
--- /dev/null
+++ b/dependencymanager/org.apache.felix.dependencymanager.index.itest.static.customindex/pom.xml
@@ -0,0 +1,78 @@
+
+
+
+ 4.0.0
+
+
+ org.apache.felix
+ dependencymanager-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ org.apache.felix.dependencymanager.index.itest.static.customindex
+ bundle
+
+ Apache Felix Dependency Manager integration tests Static Custom Index
+ Static custom filter index used by the Apache Felix Dependency Manager integration tests
+
+
+
+ true
+ true
+
+
+
+
+ org.osgi
+ osgi.core
+ 8.0.0
+
+
+ org.osgi
+ osgi.cmpn
+ 7.0.0
+
+
+ org.apache.felix
+ org.apache.felix.dependencymanager
+ ${dependencymanager.version}
+
+
+
+
+ src
+
+
+ org.apache.felix
+ maven-bundle-plugin
+
+
+ test
+ org.apache.felix.dependencymanager
+ org.apache.felix.dm.index.itest.staticcustomindex
+
+ !org.apache.felix.dm.*,*
+
+
+
+
+
+
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/staticcustomindex/StaticCustomFilterIndex.java b/dependencymanager/org.apache.felix.dependencymanager.index.itest.static.customindex/src/org/apache/felix/dm/index/itest/staticcustomindex/StaticCustomFilterIndex.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/staticcustomindex/StaticCustomFilterIndex.java
rename to dependencymanager/org.apache.felix.dependencymanager.index.itest.static.customindex/src/org/apache/felix/dm/index/itest/staticcustomindex/StaticCustomFilterIndex.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/pom.xml b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/pom.xml
new file mode 100644
index 0000000000..a39dc76cbc
--- /dev/null
+++ b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/pom.xml
@@ -0,0 +1,144 @@
+
+
+
+ 4.0.0
+
+
+ org.apache.felix
+ dependencymanager-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ org.apache.felix.dependencymanager.index.itest.tests
+ bundle
+
+ Apache Felix Dependency Manager FilterIndex tests
+ Integration tests for the filter indices of Apache Felix Dependency Manager
+
+
+
+ true
+ true
+
+
+
+
+ org.osgi
+ osgi.core
+ 8.0.0
+
+
+ org.osgi
+ osgi.cmpn
+ 7.0.0
+
+
+ junit
+ junit
+ provided
+
+
+ org.apache.felix
+ org.apache.felix.dependencymanager
+ ${dependencymanager.version}
+
+
+ org.apache.felix
+ org.apache.felix.dependencymanager.shell
+ ${dependencymanager.version}
+
+
+ org.apache.felix
+ org.apache.felix.gogo.runtime
+ ${gogo.runtime.version}
+
+
+ org.apache.felix
+ org.apache.felix.dependencymanager.index.itest.dynamic.customindex
+ ${project.version}
+
+
+ org.apache.felix
+ org.apache.felix.dependencymanager.index.itest.static.customindex
+ ${project.version}
+
+
+ org.apache.felix
+ org.apache.felix.configadmin
+ ${configadmin.version}
+ runtime
+
+
+ org.apache.felix
+ org.apache.felix.log
+ ${log.version}
+ runtime
+
+
+ org.apache.felix
+ org.apache.felix.metatype
+ ${metatype.version}
+ runtime
+
+
+ org.apache.felix
+ org.apache.felix.framework
+ ${framework.version}
+ runtime
+
+
+ org.apache.servicemix.bundles
+ org.apache.servicemix.bundles.junit
+ ${servicemix.junit.version}
+ runtime
+
+
+
+
+ src
+
+
+ org.apache.felix
+ maven-bundle-plugin
+
+
+ test
+ org.apache.felix.dm.index.itest.tests
+
+ $[classes;CONCRETE;EXTENDS;junit.framework.TestCase]
+
+
+
+
+ biz.aQute.bnd
+ bnd-testing-maven-plugin
+
+
+ ${project.build.directory}/${project.build.finalName}.jar
+
+
+ test.bndrun
+
+
+
+
+
+
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/DynamicCustomIndexTest.java b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/DynamicCustomIndexTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/DynamicCustomIndexTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/DynamicCustomIndexTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/Ensure.java b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/Ensure.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/Ensure.java
rename to dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/Ensure.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/FELIX3008_FilterIndexStartupTest.java b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/FELIX3008_FilterIndexStartupTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/FELIX3008_FilterIndexStartupTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/FELIX3008_FilterIndexStartupTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/FELIX3057_EmptyServiceReferenceArray.java b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/FELIX3057_EmptyServiceReferenceArray.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/FELIX3057_EmptyServiceReferenceArray.java
rename to dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/FELIX3057_EmptyServiceReferenceArray.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/FilterIndexResourceAdapterTest.java b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/FilterIndexResourceAdapterTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/FilterIndexResourceAdapterTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/FilterIndexResourceAdapterTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/ResourceProvider.java b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/ResourceProvider.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/ResourceProvider.java
rename to dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/ResourceProvider.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/StaticCustomIndexTest.java b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/StaticCustomIndexTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/StaticCustomIndexTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/StaticCustomIndexTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/TestBase.java b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/TestBase.java
similarity index 90%
rename from dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/TestBase.java
rename to dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/TestBase.java
index 36a98fe7a8..fa17ba1272 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.index.itest/src/org/apache/felix/dm/index/itest/tests/TestBase.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/src/org/apache/felix/dm/index/itest/tests/TestBase.java
@@ -223,15 +223,40 @@ protected void sleep(int ms) {
return (Dictionary) properties;
}
+ @Override
+ public org.osgi.service.log.Logger getLogger(String name) {
+ return null;
+ }
+
+ @Override
+ public org.osgi.service.log.Logger getLogger(Class> clazz) {
+ return null;
+ }
+
+ @Override
+ public L getLogger(Bundle bundle, String name, Class loggerType) {
+ return null;
+ }
+
+ @Override
+ public L getLogger(String name, Class loggerType) {
+ return null;
+ }
+
+ @Override
+ public L getLogger(Class> clazz, Class loggerType) {
+ return null;
+ }
+
public void log(int level, String message) {
- checkError(level, null);
+ checkError(level, message, null);
if (LOG_LEVEL >= level) {
System.out.println(getLevel(level) + " - " + Thread.currentThread().getName() + " : " + message);
}
}
public void log(int level, String message, Throwable exception) {
- checkError(level, exception);
+ checkError(level, message, exception);
if (LOG_LEVEL >= level) {
StringBuilder sb = new StringBuilder();
sb.append(getLevel(level) + " - " + Thread.currentThread().getName() + " : ");
@@ -242,7 +267,7 @@ public void log(int level, String message, Throwable exception) {
}
public void log(ServiceReference sr, int level, String message) {
- checkError(level, null);
+ checkError(level, message, null);
if (LOG_LEVEL >= level) {
StringBuilder sb = new StringBuilder();
sb.append(getLevel(level) + " - " + Thread.currentThread().getName() + " : ");
@@ -252,7 +277,7 @@ public void log(ServiceReference sr, int level, String message) {
}
public void log(ServiceReference sr, int level, String message, Throwable exception) {
- checkError(level, exception);
+ checkError(level, message, exception);
if (LOG_LEVEL >= level) {
StringBuilder sb = new StringBuilder();
sb.append(getLevel(level) + " - " + Thread.currentThread().getName() + " : ");
@@ -292,7 +317,16 @@ private String getLevel(int level) {
}
}
- private void checkError(int level, Throwable exception) {
+ // Config Admin logs this at error level when a factory configuration has been created but not updated yet
+ // while the factory registers. It provides the configuration with the update, so it is not an error.
+ private static boolean isIgnoredMessage(String message) {
+ return message != null && message.startsWith("Ignoring new configuration pid=");
+ }
+
+ private void checkError(int level, String message, Throwable exception) {
+ if (isIgnoredMessage(message) && exception == null) {
+ return;
+ }
if (level <= LOG_ERROR) {
m_errorsLogged = true;
}
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/test.bndrun b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/test.bndrun
new file mode 100644
index 0000000000..5d79ed17dc
--- /dev/null
+++ b/dependencymanager/org.apache.felix.dependencymanager.index.itest.tests/test.bndrun
@@ -0,0 +1,37 @@
+#
+# 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.
+#
+-runfw: org.apache.felix.framework;version='[8.0.0,9)'
+-runee: JavaSE-11
+-runvm: -ea
+-runsystempackages: sun.reflect
+-runproperties: \
+ org.apache.felix.dependencymanager.loglevel=2,\
+ org.apache.felix.log.maxSize=100000,\
+ org.apache.felix.log.storeDebug=true,\
+ gosh.args=--noshutdown,\
+ org.apache.felix.dependencymanager.filterindex=objectClass
+-runrequires: \
+ osgi.identity;filter:='(osgi.identity=org.apache.felix.dependencymanager.index.itest.tests)',\
+ osgi.identity;filter:='(osgi.identity=org.apache.felix.dependencymanager.index.itest.dynamic.customindex)',\
+ osgi.identity;filter:='(osgi.identity=org.apache.felix.dependencymanager.index.itest.static.customindex)',\
+ osgi.identity;filter:='(osgi.identity=org.apache.felix.dependencymanager)',\
+ osgi.identity;filter:='(osgi.identity=org.apache.felix.dependencymanager.shell)',\
+ osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.runtime)',\
+ osgi.identity;filter:='(osgi.identity=org.apache.felix.configadmin)',\
+ osgi.identity;filter:='(osgi.identity=org.apache.felix.log)',\
+ osgi.identity;filter:='(osgi.identity=org.apache.felix.metatype)',\
+ osgi.identity;filter:='(osgi.identity=org.apache.servicemix.bundles.junit)'
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/.classpath b/dependencymanager/org.apache.felix.dependencymanager.index.itest/.classpath
deleted file mode 100644
index 7a6fc25436..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.index.itest/.classpath
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/.gitignore b/dependencymanager/org.apache.felix.dependencymanager.index.itest/.gitignore
deleted file mode 100644
index 90dde36e4a..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.index.itest/.gitignore
+++ /dev/null
@@ -1,3 +0,0 @@
-/bin/
-/bin_test/
-/generated/
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/.project b/dependencymanager/org.apache.felix.dependencymanager.index.itest/.project
deleted file mode 100644
index e3699c3739..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.index.itest/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- org.apache.felix.dependencymanager.index.itest
-
-
-
-
-
- org.eclipse.jdt.core.javabuilder
-
-
-
-
- bndtools.core.bndbuilder
-
-
-
-
-
- org.eclipse.jdt.core.javanature
- bndtools.core.bndnature
-
-
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/bnd.bnd b/dependencymanager/org.apache.felix.dependencymanager.index.itest/bnd.bnd
deleted file mode 100644
index 48b9256ed0..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.index.itest/bnd.bnd
+++ /dev/null
@@ -1,54 +0,0 @@
-#
-# 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.
-#
--runbundles: \
- org.apache.servicemix.bundles.junit;version=4.12,\
- org.apache.felix.metatype;version=1.1.2,\
- org.apache.felix.log;version=1.0.1,\
- org.apache.felix.configadmin;version=1.8.8,\
- org.apache.felix.dependencymanager;version=latest,\
- org.apache.felix.dependencymanager.shell;version=latest,\
- org.apache.felix.dependencymanager.index.itest.dynamic.customindex;version=latest,\
- org.apache.felix.dependencymanager.index.itest.static.customindex;version=latest,\
- org.apache.felix.dependencymanager.index.itest.tests;version=latest,\
- org.apache.felix.gogo.runtime;version=1.0.6
-
--runee: JavaSE-1.8
--runvm: -ea
--runfw: org.apache.felix.framework;version='[5.6.10,5.6.10]'
--buildpath: \
- osgi.core;version=6.0,\
- osgi.cmpn;version=6.0,\
- org.apache.felix.dependencymanager;version=latest,\
- org.apache.felix.dependencymanager.shell;version=latest,\
- ${junit},\
- org.apache.felix.gogo.runtime;version=1.0
--runsystempackages: \
- sun.reflect
-Test-Cases: \
- ${classes;CONCRETE;EXTENDS;junit.framework.TestCase}
--runproperties: \
- org.apache.felix.dependencymanager.loglevel=2,\
- org.apache.felix.log.maxSize=100000,\
- org.apache.felix.log.storeDebug=true,\
- gosh.args=--noshutdown,\
- org.apache.felix.dependencymanager.filterindex=objectClass
-
-# we do not release this project in binary distribution.
--releaserepo:
--baseline:
-
--sub: *.bnd
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/dynamic.customindex.bnd b/dependencymanager/org.apache.felix.dependencymanager.index.itest/dynamic.customindex.bnd
deleted file mode 100644
index 099e509247..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.index.itest/dynamic.customindex.bnd
+++ /dev/null
@@ -1,24 +0,0 @@
-#
-# 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.
-#
-Export-Package: \
- org.apache.felix.dm.index.itest.dynamiccustomindex
-Private-Package: \
- org.apache.felix.dm.impl.index.multiproperty
-Import-Package: *
-Bundle-Category: test
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Vendor: The Apache Software Foundation
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/static.customindex.bnd b/dependencymanager/org.apache.felix.dependencymanager.index.itest/static.customindex.bnd
deleted file mode 100644
index cdb1d1f1ce..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.index.itest/static.customindex.bnd
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# 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.
-#
-Private-Package: org.apache.felix.dm.index.itest.staticcustomindex
-Fragment-Host: org.apache.felix.dependencymanager
-Import-Package: !org.apache.felix.dm.*,*
-Bundle-Name: Apache Felix Dependency Manager integration tests Static Custom Index
-Bundle-Category: test
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Vendor: The Apache Software Foundation
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/test/.gitignore b/dependencymanager/org.apache.felix.dependencymanager.index.itest/test/.gitignore
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/dependencymanager/org.apache.felix.dependencymanager.index.itest/tests.bnd b/dependencymanager/org.apache.felix.dependencymanager.index.itest/tests.bnd
deleted file mode 100644
index a681f12e6d..0000000000
--- a/dependencymanager/org.apache.felix.dependencymanager.index.itest/tests.bnd
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# 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.
-#
-Private-Package: org.apache.felix.dm.index.itest.tests
-Bundle-Name: Apache Felix Dependency Manager FilterIndex tests
-Bundle-Category: test
-Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
-Bundle-Vendor: The Apache Software Foundation
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest.api/pom.xml b/dependencymanager/org.apache.felix.dependencymanager.itest.api/pom.xml
new file mode 100644
index 0000000000..348a99fa31
--- /dev/null
+++ b/dependencymanager/org.apache.felix.dependencymanager.itest.api/pom.xml
@@ -0,0 +1,157 @@
+
+
+
+ 4.0.0
+
+
+ org.apache.felix
+ dependencymanager-parent
+ 1.0.0-SNAPSHOT
+ ../pom.xml
+
+
+ org.apache.felix.dependencymanager.itest.api
+ bundle
+
+ Apache Felix Dependency Manager integration tests
+ Integration tests for Apache Felix Dependency Manager
+
+
+
+ true
+ true
+
+
+
+
+ org.osgi
+ osgi.core
+ 8.0.0
+
+
+ org.osgi
+ osgi.cmpn
+ 7.0.0
+
+
+ junit
+ junit
+ provided
+
+
+ org.apache.felix
+ org.apache.felix.dependencymanager
+ ${dependencymanager.version}
+
+
+ org.apache.felix
+ org.apache.felix.dependencymanager.shell
+ ${dependencymanager.version}
+
+
+ org.apache.felix
+ org.apache.felix.dependencymanager.itest.bundle
+ ${project.version}
+
+
+ org.apache.felix
+ org.apache.felix.dependencymanager.itest.bundle2
+ ${project.version}
+
+
+ org.apache.felix
+ org.apache.felix.gogo.runtime
+ ${gogo.runtime.version}
+
+
+ org.apache.felix
+ org.apache.felix.gogo.shell
+ ${gogo.shell.version}
+ runtime
+
+
+ org.apache.felix
+ org.apache.felix.gogo.command
+ ${gogo.command.version}
+ runtime
+
+
+ org.apache.felix
+ org.apache.felix.configadmin
+ ${configadmin.version}
+ runtime
+
+
+ org.apache.felix
+ org.apache.felix.log
+ ${log.version}
+ runtime
+
+
+ org.apache.felix
+ org.apache.felix.metatype
+ ${metatype.version}
+ runtime
+
+
+ org.apache.felix
+ org.apache.felix.framework
+ ${framework.version}
+ runtime
+
+
+ org.apache.servicemix.bundles
+ org.apache.servicemix.bundles.junit
+ ${servicemix.junit.version}
+ runtime
+
+
+
+
+ src
+
+
+ org.apache.felix
+ maven-bundle-plugin
+
+
+ Apache Felix Dependency Manager integration tests
+ test
+ org.apache.felix.dm.itest.api
+ org.apache.felix.dm.itest.util
+ $[classes;CONCRETE;EXTENDS;junit.framework.TestCase]
+
+
+
+
+ biz.aQute.bnd
+ bnd-testing-maven-plugin
+
+
+ ${project.build.directory}/${project.build.finalName}.jar
+
+
+ test.bndrun
+
+
+
+
+
+
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AbstractServiceDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AbstractServiceDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AbstractServiceDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AbstractServiceDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterAndConsumerTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterAndConsumerTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterAndConsumerTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterAndConsumerTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterNoAutoConfigIfInstanceCallbackIsUsed.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterNoAutoConfigIfInstanceCallbackIsUsed.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterNoAutoConfigIfInstanceCallbackIsUsed.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterNoAutoConfigIfInstanceCallbackIsUsed.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithCallbackInstanceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithCallbackInstanceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithCallbackInstanceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithCallbackInstanceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithConfigurationAndMetaType.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithConfigurationAndMetaType.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithConfigurationAndMetaType.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithConfigurationAndMetaType.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithExtraDependenciesTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithExtraDependenciesTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithExtraDependenciesTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithExtraDependenciesTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithInstanceBoundDependencyParallelTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithInstanceBoundDependencyParallelTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithInstanceBoundDependencyParallelTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithInstanceBoundDependencyParallelTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithInstanceBoundDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithInstanceBoundDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithInstanceBoundDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithInstanceBoundDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithModifiedInstanceBoundDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithModifiedInstanceBoundDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithModifiedInstanceBoundDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithModifiedInstanceBoundDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithPropagationTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithPropagationTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithPropagationTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithPropagationTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithoutPropagationTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithoutPropagationTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AdapterWithoutPropagationTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AdapterWithoutPropagationTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectBaseTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectBaseTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectBaseTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectBaseTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectChainTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectChainTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectChainTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectChainTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectDynamicsTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectDynamicsTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectDynamicsTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectDynamicsTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectNotAlwaysInjectedWithRequiredDependencies.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectNotAlwaysInjectedWithRequiredDependencies.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectNotAlwaysInjectedWithRequiredDependencies.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectNotAlwaysInjectedWithRequiredDependencies.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectRaceParallelTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectRaceParallelTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectRaceParallelTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectRaceParallelTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectRaceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectRaceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectRaceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectRaceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectServiceDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectServiceDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectServiceDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectServiceDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectServiceDependencyWithSwapCallbackTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectServiceDependencyWithSwapCallbackTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectServiceDependencyWithSwapCallbackTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectServiceDependencyWithSwapCallbackTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectWhiteboardTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectWhiteboardTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectWhiteboardTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectWhiteboardTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectWithCallbacksServiceDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectWithCallbacksServiceDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectWithCallbacksServiceDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectWithCallbacksServiceDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectWithPropagationTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectWithPropagationTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AspectWithPropagationTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AspectWithPropagationTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AutoConfigTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AutoConfigTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/AutoConfigTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/AutoConfigTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/BundleAdapterTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/BundleAdapterTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/BundleAdapterTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/BundleAdapterTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/BundleAdapterWithCallbacksNotAutoConfiguredTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/BundleAdapterWithCallbacksNotAutoConfiguredTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/BundleAdapterWithCallbacksNotAutoConfiguredTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/BundleAdapterWithCallbacksNotAutoConfiguredTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/BundleDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/BundleDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/BundleDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/BundleDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ComponentStateListenerTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ComponentStateListenerTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ComponentStateListenerTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ComponentStateListenerTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ComponentTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ComponentTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ComponentTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ComponentTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ComponentTracker.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ComponentTracker.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ComponentTracker.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ComponentTracker.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/CompositionTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/CompositionTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/CompositionTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/CompositionTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ConfigurationCreator.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ConfigurationCreator.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ConfigurationCreator.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ConfigurationCreator.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ConfigurationDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ConfigurationDependencyTest.java
similarity index 94%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ConfigurationDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ConfigurationDependencyTest.java
index 23ab0d1924..e90581e0bb 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ConfigurationDependencyTest.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ConfigurationDependencyTest.java
@@ -27,6 +27,7 @@
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.itest.util.ConfigDeliveries;
import org.apache.felix.dm.itest.util.Ensure;
import org.apache.felix.dm.itest.util.TestBase;
import org.osgi.service.cm.Configuration;
@@ -40,7 +41,8 @@
*/
@SuppressWarnings({"unchecked", "rawtypes"})
public class ConfigurationDependencyTest extends TestBase {
- final static String PID = "ConfigurationDependencyTest.pid";
+ // Unique per test, so that the asynchronous deletion of the configuration of a previous test cannot reach the next one.
+ final String PID = "ConfigurationDependencyTest.pid." + System.nanoTime();
/**
* Tests that we can provision a type-safe configuration to a component.
@@ -222,6 +224,7 @@ public void destroy() throws IOException {
static class ConfigurationConsumer implements ManagedService, Runnable {
protected final Ensure m_ensure;
+ protected final ConfigDeliveries m_deliveries = new ConfigDeliveries();
public ConfigurationConsumer(Ensure e) {
m_ensure = e;
@@ -229,6 +232,9 @@ public ConfigurationConsumer(Ensure e) {
public void updated(Dictionary props) throws ConfigurationException {
Assert.assertNotNull(props);
+ if (m_deliveries.isRepeat(props)) {
+ return;
+ }
m_ensure.step(2);
if (!"testvalue".equals(props.get("testkey"))) {
Assert.fail("Could not find the configured property.");
@@ -253,6 +259,9 @@ public ConfigurationConsumer3(Ensure e) {
public void updated(Dictionary props) throws ConfigurationException {
Assert.assertNotNull(props);
+ if (m_deliveries.isRepeat(props)) {
+ return;
+ }
if (!"testvalue".equals(props.get("testkey"))) {
Assert.fail("Could not find the configured property.");
}
@@ -276,6 +285,9 @@ public ConfigurationConsumer4(Ensure e) {
}
public void updated(Dictionary props) throws ConfigurationException {
+ if (m_deliveries.isRepeat(props)) {
+ return;
+ }
if (! m_configured) {
Assert.assertNotNull(props);
if (!"testvalue".equals(props.get("testkey"))) {
@@ -310,6 +322,7 @@ public void updatedWithComponentArg(Component component, Dictionary props) throw
static class ConfigurationConsumerCallbackInstance {
private final Ensure m_ensure;
+ private final ConfigDeliveries m_deliveries = new ConfigDeliveries();
public ConfigurationConsumerCallbackInstance(Ensure e) {
m_ensure = e;
@@ -317,6 +330,9 @@ public ConfigurationConsumerCallbackInstance(Ensure e) {
public void updateConfiguration(Dictionary props) throws Exception {
Assert.assertNotNull(props);
+ if (m_deliveries.isRepeat(props)) {
+ return;
+ }
m_ensure.step(2);
if (!"testvalue".equals(props.get("testkey"))) {
Assert.fail("Could not find the configured property.");
@@ -368,6 +384,7 @@ static interface MyConfig {
static class ConfigurationConsumerWithTypeSafeConfiguration {
private final Ensure m_ensure;
+ private final ConfigDeliveries m_deliveries = new ConfigDeliveries();
public ConfigurationConsumerWithTypeSafeConfiguration(Ensure e) {
m_ensure = e;
@@ -376,6 +393,9 @@ public ConfigurationConsumerWithTypeSafeConfiguration(Ensure e) {
// configuration updates is always the first invoked callback (before init).
public void updated(Component component, MyConfig cfg) throws ConfigurationException {
if (cfg != null) {
+ if (m_deliveries.isRepeat((Object) cfg.getTestkey())) {
+ return;
+ }
Assert.assertNotNull(component);
Assert.assertNotNull(cfg);
m_ensure.step(2);
@@ -383,6 +403,7 @@ public void updated(Component component, MyConfig cfg) throws ConfigurationExcep
Assert.fail("Could not find the configured property.");
}
} else {
+ m_deliveries.isRepeat((Dictionary, ?>) null);
m_ensure.step();
}
}
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/DiagnosticsTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/DiagnosticsTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/DiagnosticsTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/DiagnosticsTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/DynamicProxyAspectTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/DynamicProxyAspectTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/DynamicProxyAspectTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/DynamicProxyAspectTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/DynamicScopedServiceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/DynamicScopedServiceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/DynamicScopedServiceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/DynamicScopedServiceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELI5155_AdapterCallbackInstanceCalledTwice.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELI5155_AdapterCallbackInstanceCalledTwice.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELI5155_AdapterCallbackInstanceCalledTwice.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELI5155_AdapterCallbackInstanceCalledTwice.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2078_ServiceDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2078_ServiceDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2078_ServiceDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2078_ServiceDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2344_ExtraDependencyWithAutoConfigTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2344_ExtraDependencyWithAutoConfigTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2344_ExtraDependencyWithAutoConfigTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2344_ExtraDependencyWithAutoConfigTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2344_ExtraDependencyWithCallbackTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2344_ExtraDependencyWithCallbackTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2344_ExtraDependencyWithCallbackTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2344_ExtraDependencyWithCallbackTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2348_ResourceAdapterTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2348_ResourceAdapterTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2348_ResourceAdapterTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2348_ResourceAdapterTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2369_ExtraDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2369_ExtraDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2369_ExtraDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2369_ExtraDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2696_ConfigurationAndServiceDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2696_ConfigurationAndServiceDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2696_ConfigurationAndServiceDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2696_ConfigurationAndServiceDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2875_ServiceDependencyWithoutServiceNameTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2875_ServiceDependencyWithoutServiceNameTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2875_ServiceDependencyWithoutServiceNameTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2875_ServiceDependencyWithoutServiceNameTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2955_ShellCommandTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2955_ShellCommandTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX2955_ShellCommandTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX2955_ShellCommandTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX3337_UpdatedConfigurationDependencyWithPropagationTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX3337_UpdatedConfigurationDependencyWithPropagationTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX3337_UpdatedConfigurationDependencyWithPropagationTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX3337_UpdatedConfigurationDependencyWithPropagationTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX4158_DependencyDeclarationTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX4158_DependencyDeclarationTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX4158_DependencyDeclarationTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX4158_DependencyDeclarationTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX4361_ConcurrentComponentListingTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX4361_ConcurrentComponentListingTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX4361_ConcurrentComponentListingTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX4361_ConcurrentComponentListingTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX4614_FactoryWithComponentInCreateParam.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX4614_FactoryWithComponentInCreateParam.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX4614_FactoryWithComponentInCreateParam.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX4614_FactoryWithComponentInCreateParam.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX4869_CallbackNotCalled.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX4869_CallbackNotCalled.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX4869_CallbackNotCalled.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX4869_CallbackNotCalled.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX4913_OptionalCallbackInvokedTwiceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX4913_OptionalCallbackInvokedTwiceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX4913_OptionalCallbackInvokedTwiceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX4913_OptionalCallbackInvokedTwiceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5045_OptionalDependencyCBCalledBeforeStartTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5045_OptionalDependencyCBCalledBeforeStartTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5045_OptionalDependencyCBCalledBeforeStartTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5045_OptionalDependencyCBCalledBeforeStartTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5054_CleanupInstanceBoundDependenciesInDestroy.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5054_CleanupInstanceBoundDependenciesInDestroy.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5054_CleanupInstanceBoundDependenciesInDestroy.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5054_CleanupInstanceBoundDependenciesInDestroy.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5153_StopBeforeUngetServiceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5153_StopBeforeUngetServiceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5153_StopBeforeUngetServiceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5153_StopBeforeUngetServiceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5200_FactoryPidNotRestartedTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5200_FactoryPidNotRestartedTest.java
similarity index 65%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5200_FactoryPidNotRestartedTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5200_FactoryPidNotRestartedTest.java
index 1bab665482..9b484f09d9 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5200_FactoryPidNotRestartedTest.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5200_FactoryPidNotRestartedTest.java
@@ -21,10 +21,10 @@
import java.io.IOException;
import java.util.Dictionary;
import java.util.Properties;
+import java.util.function.BooleanSupplier;
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
-import org.apache.felix.dm.itest.util.Ensure;
import org.apache.felix.dm.itest.util.TestBase;
import org.junit.Assert;
import org.osgi.service.cm.Configuration;
@@ -35,24 +35,22 @@
* The factory configuration is created, the "Required" service is registered, so a factory configuration adapter INSTANCE1 is then created.
* Now the "Required" service is unregistered: the factory config adapter INSTANCE1 is then stopped.
* And when the "Required" service comes up again, then a new factory config adapter INSTANCE2 should be re-created, updated and started.
+ * When the factory configuration is removed, the factory config adapter instance is stopped.
+ *
+ * Config Admin may deliver the configuration to the factory more than once (for example when the factory is
+ * registered again), which makes the adapter instance be replaced by an other one. The test does not depend on
+ * how often that happens: it follows the instances instead of counting the calls.
*
* @author Felix Project Team
*/
public class FELIX5200_FactoryPidNotRestartedTest extends TestBase {
- static FactoryPidComponent m_currentInstance;
+ private static final int TIMEOUT = 10000;
- static Ensure m_ensure = new Ensure();
+ // the instances of the adapter, in the order they have been started
+ static final java.util.List m_instances = new java.util.concurrent.CopyOnWriteArrayList<>();
- static Ensure.Steps m_steps = new Ensure.Steps(
- 1, // updated is called the first time the adapter instance is created
- 2, // component started
- 3, // "Required" service is unregistered, and adapter instance is stopped
- 4, // "Required" service is re-registered, a new adapter instance is created and called in updated
- 5, // the new adapter instance is then started
- 6 // the configuration is removed and the new adapter instance is stopped
- );
-
- public void testFactoryAdapterNotRestartedTest() {
+ public void testFactoryAdapterNotRestartedTest() throws InterruptedException {
+ m_instances.clear();
DependencyManager dm = getDM();
Component adapter = dm.createFactoryConfigurationAdapterService("factory.pid", "updated", false)
@@ -71,35 +69,48 @@ public void testFactoryAdapterNotRestartedTest() {
dm.add(adapter);
dm.add(required);
// adapter instance1 updated and started
- m_ensure.waitForStep(2, 5000);
- FactoryPidComponent currentInstance = m_currentInstance;
+ waitFor("the first adapter instance is started", () -> !m_instances.isEmpty());
+ FactoryPidComponent instance1 = m_instances.get(0);
+
dm.remove(required);
// adapter instance1 stopped
- m_ensure.waitForStep(3, 5000);
+ waitFor("the first adapter instance is stopped", () -> instance1.m_stopped);
+ int started = m_instances.size();
+
dm.add(required);
- // adapter instance2 updated and started
- m_ensure.waitForStep(5, 5000);
- // a new adapter instance should have been created
- Assert.assertNotEquals(currentInstance, m_currentInstance);
+ // a new adapter instance is created, updated and started
+ waitFor("a new adapter instance is started", () -> m_instances.size() > started);
+ FactoryPidComponent instance2 = m_instances.get(m_instances.size() - 1);
+ Assert.assertNotSame(instance1, instance2);
+
dm.remove(configurator);
- // adapter instance2 stopped
- m_ensure.waitForStep(6, 5000);
+ // the configuration is removed: the last adapter instance is stopped
+ waitFor("the adapter instance is stopped when the configuration is removed", () -> instance2.m_stopped);
+ }
+
+ private void waitFor(String what, BooleanSupplier condition) throws InterruptedException {
+ long end = System.currentTimeMillis() + TIMEOUT;
+ while (!condition.getAsBoolean()) {
+ if (System.currentTimeMillis() > end) {
+ Assert.fail("Timed out waiting until " + what);
+ }
+ Thread.sleep(10);
+ }
}
public static class FactoryPidComponent {
RequiredService m_required;
+ volatile boolean m_stopped;
void updated(Dictionary properties) {
- m_ensure.steps(m_steps);
}
void start() {
- m_ensure.steps(m_steps);
- m_currentInstance = this;
+ m_instances.add(this);
}
void stop() {
- m_ensure.steps(m_steps);
+ m_stopped = true;
}
}
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5238_TypeSafeConfigWithDefaultMethodTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5238_TypeSafeConfigWithDefaultMethodTest.java
similarity index 89%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5238_TypeSafeConfigWithDefaultMethodTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5238_TypeSafeConfigWithDefaultMethodTest.java
index 3c8c92eb59..0096e073b9 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5238_TypeSafeConfigWithDefaultMethodTest.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5238_TypeSafeConfigWithDefaultMethodTest.java
@@ -20,6 +20,7 @@
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.itest.util.ConfigDeliveries;
import org.apache.felix.dm.itest.util.Ensure;
import org.apache.felix.dm.itest.util.TestBase;
import org.junit.Assert;
@@ -34,7 +35,8 @@
* @author Felix Project Team
*/
public class FELIX5238_TypeSafeConfigWithDefaultMethodTest extends TestBase {
- final static String PID = "ConfigurationDependencyTest.pid";
+ // Unique per test, so that the asynchronous deletion of the configuration of a previous test cannot reach the next one.
+ final String PID = "FELIX5238_TypeSafeConfigWithDefaultMethodTest.pid." + System.nanoTime();
/**
* Tests that we can provision a type-safe config annotation to a component.
@@ -92,6 +94,7 @@ public static interface MyConfigInterface {
static class ConfigurationConsumerBase {
protected final Ensure m_ensure;
+ protected final ConfigDeliveries m_deliveries = new ConfigDeliveries();
public ConfigurationConsumerBase(Ensure e) {
m_ensure = e;
@@ -115,6 +118,9 @@ public ConfigurationConsumer1(Ensure e) {
// configuration updates is always the first invoked callback (before init).
public void updated(Component component, MyConfigAnnot cfg) throws ConfigurationException {
if (cfg != null) {
+ if (m_deliveries.isRepeat((Object) (cfg.getTestkey() + "/" + cfg.getTestkey2()))) {
+ return;
+ }
Assert.assertNotNull(component);
Assert.assertNotNull(cfg);
if (!"testvalue".equals(cfg.getTestkey())) {
@@ -125,6 +131,7 @@ public void updated(Component component, MyConfigAnnot cfg) throws Configuration
}
m_ensure.step(2);
} else {
+ m_deliveries.isRepeat((java.util.Dictionary, ?>) null);
m_ensure.step();
}
}
@@ -138,6 +145,9 @@ public ConfigurationConsumer2(Ensure e) {
// configuration updates is always the first invoked callback (before init).
public void updated(Component component, MyConfigInterface cfg) throws ConfigurationException {
if (cfg != null) {
+ if (m_deliveries.isRepeat((Object) (cfg.getTestkey() + "/" + cfg.getTestkey2()))) {
+ return;
+ }
Assert.assertNotNull(component);
Assert.assertNotNull(cfg);
if (!"testvalue".equals(cfg.getTestkey())) {
@@ -148,6 +158,7 @@ public void updated(Component component, MyConfigInterface cfg) throws Configura
}
m_ensure.step(2);
} else {
+ m_deliveries.isRepeat((java.util.Dictionary, ?>) null);
m_ensure.step();
}
}
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5243_ConfigUpdateMissedIfComponentIsRestartingTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5243_ConfigUpdateMissedIfComponentIsRestartingTest.java
similarity index 95%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5243_ConfigUpdateMissedIfComponentIsRestartingTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5243_ConfigUpdateMissedIfComponentIsRestartingTest.java
index ed7762c4df..1d3a206c5d 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5243_ConfigUpdateMissedIfComponentIsRestartingTest.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5243_ConfigUpdateMissedIfComponentIsRestartingTest.java
@@ -45,7 +45,8 @@
* @author Felix Project Team
*/
public class FELIX5243_ConfigUpdateMissedIfComponentIsRestartingTest extends TestBase {
- final static String PID = "ConfigurationDependencyTest.pid";
+ // Unique per test, so that the asynchronous deletion of the configuration of a previous test cannot reach the next one.
+ final String PID = "FELIX5243_ConfigUpdateMissedIfComponentIsRestartingTest.pid." + System.nanoTime();
public void testOptionalConfigurationConsumer() throws InterruptedException {
DependencyManager m = getDM();
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5268_AddRemoveServiceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5268_AddRemoveServiceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5268_AddRemoveServiceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5268_AddRemoveServiceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5274_CleanupInstanceBoundDependenciesInDestroy.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5274_CleanupInstanceBoundDependenciesInDestroy.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5274_CleanupInstanceBoundDependenciesInDestroy.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5274_CleanupInstanceBoundDependenciesInDestroy.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5305_DirectInjectionShouldSeeServiceUpdates.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5305_DirectInjectionShouldSeeServiceUpdates.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5305_DirectInjectionShouldSeeServiceUpdates.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5305_DirectInjectionShouldSeeServiceUpdates.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5355_ConfigTypesWithDotsTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5355_ConfigTypesWithDotsTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5355_ConfigTypesWithDotsTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5355_ConfigTypesWithDotsTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5399_DefaultListConfigType.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5399_DefaultListConfigType.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5399_DefaultListConfigType.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5399_DefaultListConfigType.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5399_DefaultMapConfigType.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5399_DefaultMapConfigType.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5399_DefaultMapConfigType.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5399_DefaultMapConfigType.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5400_OverrideDefaultMapConfigTypeWithEmptyList.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5400_OverrideDefaultMapConfigTypeWithEmptyList.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5400_OverrideDefaultMapConfigTypeWithEmptyList.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5400_OverrideDefaultMapConfigTypeWithEmptyList.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5401_OverrideDefaultListConfigTypeWithEmptyMap.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5401_OverrideDefaultListConfigTypeWithEmptyMap.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5401_OverrideDefaultListConfigTypeWithEmptyMap.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5401_OverrideDefaultListConfigTypeWithEmptyMap.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5426_OptionalCallbackNotCalledTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5426_OptionalCallbackNotCalledTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5426_OptionalCallbackNotCalledTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5426_OptionalCallbackNotCalledTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5426_OptionalChangeCallbackNotCalledTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5426_OptionalChangeCallbackNotCalledTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5426_OptionalChangeCallbackNotCalledTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5426_OptionalChangeCallbackNotCalledTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5428_CleanupDependenciesWhenComponentIsStopped.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5428_CleanupDependenciesWhenComponentIsStopped.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5428_CleanupDependenciesWhenComponentIsStopped.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5428_CleanupDependenciesWhenComponentIsStopped.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5429_AspectSwapCallbackNotCalledForOptionalDepenency.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5429_AspectSwapCallbackNotCalledForOptionalDepenency.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5429_AspectSwapCallbackNotCalledForOptionalDepenency.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5429_AspectSwapCallbackNotCalledForOptionalDepenency.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5471_CyclicDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5471_CyclicDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5471_CyclicDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5471_CyclicDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5471_SynchronousUnbindTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5471_SynchronousUnbindTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5471_SynchronousUnbindTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5471_SynchronousUnbindTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5630_NullObjectTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5630_NullObjectTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5630_NullObjectTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5630_NullObjectTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5636_PropagateServicePropertiesToAspectInitCallback.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5636_PropagateServicePropertiesToAspectInitCallback.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5636_PropagateServicePropertiesToAspectInitCallback.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5636_PropagateServicePropertiesToAspectInitCallback.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5683_GetServicePropertiesReturnsNullTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5683_GetServicePropertiesReturnsNullTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX5683_GetServicePropertiesReturnsNullTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX5683_GetServicePropertiesReturnsNullTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX_4168AdapterWithDynamicallyAddedDependencies.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX_4168AdapterWithDynamicallyAddedDependencies.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FELIX_4168AdapterWithDynamicallyAddedDependencies.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FELIX_4168AdapterWithDynamicallyAddedDependencies.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FactoryComponentWithMetaTypeTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FactoryComponentWithMetaTypeTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FactoryComponentWithMetaTypeTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FactoryComponentWithMetaTypeTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FactoryConfigurationAdapterTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FactoryConfigurationAdapterTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FactoryConfigurationAdapterTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FactoryConfigurationAdapterTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FactoryConfigurationCreator.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FactoryConfigurationCreator.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FactoryConfigurationCreator.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FactoryConfigurationCreator.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FactoryInjectedWithConfigurationBeforeTheCreateMethod.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FactoryInjectedWithConfigurationBeforeTheCreateMethod.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/FactoryInjectedWithConfigurationBeforeTheCreateMethod.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/FactoryInjectedWithConfigurationBeforeTheCreateMethod.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/InstanceBoundDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/InstanceBoundDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/InstanceBoundDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/InstanceBoundDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ModifiedBundleDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ModifiedBundleDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ModifiedBundleDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ModifiedBundleDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/MultipleExtraDependenciesTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/MultipleExtraDependenciesTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/MultipleExtraDependenciesTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/MultipleExtraDependenciesTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/MultipleExtraDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/MultipleExtraDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/MultipleExtraDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/MultipleExtraDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/MultipleExtraDependencyTest2.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/MultipleExtraDependencyTest2.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/MultipleExtraDependencyTest2.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/MultipleExtraDependencyTest2.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/MultipleServiceDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/MultipleServiceDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/MultipleServiceDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/MultipleServiceDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/OptionalConfigurationDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/OptionalConfigurationDependencyTest.java
similarity index 91%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/OptionalConfigurationDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/OptionalConfigurationDependencyTest.java
index 9be16c0255..49c3dcec22 100644
--- a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/OptionalConfigurationDependencyTest.java
+++ b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/OptionalConfigurationDependencyTest.java
@@ -20,6 +20,7 @@
import org.apache.felix.dm.Component;
import org.apache.felix.dm.DependencyManager;
+import org.apache.felix.dm.itest.util.ConfigDeliveries;
import org.apache.felix.dm.itest.util.Ensure;
import org.apache.felix.dm.itest.util.TestBase;
import org.junit.Assert;
@@ -40,7 +41,8 @@
* @author Felix Project Team
*/
public class OptionalConfigurationDependencyTest extends TestBase {
- final static String PID = "ConfigurationDependencyTest.pid";
+ // Unique per test, so that the asynchronous deletion of the configuration of a previous test cannot reach the next one.
+ final String PID = "OptionalConfigurationDependencyTest.pid." + System.nanoTime();
public void testOptionalConfigurationConsumer() {
DependencyManager m = getDM();
@@ -69,6 +71,7 @@ public static interface MyConfig {
static class OptionalConfigurationConsumer {
protected final Ensure m_ensure;
protected volatile int m_updateCount;
+ private final ConfigDeliveries m_deliveries = new ConfigDeliveries();
public OptionalConfigurationConsumer(Ensure e) {
m_ensure = e;
@@ -76,6 +79,9 @@ public OptionalConfigurationConsumer(Ensure e) {
public void updated(MyConfig cnf) { // optional configuration, called after start(), like any other optional dependency callbacks.
if (cnf != null) {
+ if (m_deliveries.isRepeat((Object) cnf.getTestkey())) {
+ return; // the same configuration delivered again
+ }
m_updateCount ++;
if (m_updateCount == 1) {
if (!"default".equals(cnf.getTestkey())) {
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/RemovedDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/RemovedDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/RemovedDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/RemovedDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ResourceAdapterDependencyAddAndRemoveTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ResourceAdapterDependencyAddAndRemoveTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ResourceAdapterDependencyAddAndRemoveTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ResourceAdapterDependencyAddAndRemoveTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ResourceAdapterDependencyAddAndRemoveTest2.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ResourceAdapterDependencyAddAndRemoveTest2.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ResourceAdapterDependencyAddAndRemoveTest2.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ResourceAdapterDependencyAddAndRemoveTest2.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ResourceAdapterTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ResourceAdapterTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ResourceAdapterTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ResourceAdapterTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ResourceDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ResourceDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ResourceDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ResourceDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ResourceProvider.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ResourceProvider.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ResourceProvider.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ResourceProvider.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ScopedAspectAdaptersServiceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ScopedAspectAdaptersServiceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ScopedAspectAdaptersServiceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ScopedAspectAdaptersServiceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ScopedServiceReferenceAndServiceObjectsTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ScopedServiceReferenceAndServiceObjectsTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ScopedServiceReferenceAndServiceObjectsTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ScopedServiceReferenceAndServiceObjectsTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ScopedServiceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ScopedServiceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ScopedServiceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ScopedServiceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ScopedServiceUnexpectedlyInstantiatedTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ScopedServiceUnexpectedlyInstantiatedTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ScopedServiceUnexpectedlyInstantiatedTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ScopedServiceUnexpectedlyInstantiatedTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceDependencyCallbackSignaturesTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceDependencyCallbackSignaturesTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceDependencyCallbackSignaturesTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceDependencyCallbackSignaturesTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceDependencyInjectionTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceDependencyInjectionTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceDependencyInjectionTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceDependencyInjectionTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceDependencyPropagateTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceDependencyPropagateTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceDependencyPropagateTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceDependencyPropagateTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceDependencyThroughCallbackInstanceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceDependencyThroughCallbackInstanceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceDependencyThroughCallbackInstanceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceDependencyThroughCallbackInstanceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceRaceParallelTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceRaceParallelTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceRaceParallelTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceRaceParallelTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceRaceParallelWithOrderedUnbindTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceRaceParallelWithOrderedUnbindTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceRaceParallelWithOrderedUnbindTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceRaceParallelWithOrderedUnbindTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceRaceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceRaceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceRaceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceRaceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceRaceWithOrderedUnbindTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceRaceWithOrderedUnbindTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceRaceWithOrderedUnbindTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceRaceWithOrderedUnbindTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceTrackerTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceTrackerTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceTrackerTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceTrackerTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceUpdateTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceUpdateTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/ServiceUpdateTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/ServiceUpdateTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/TemporalServiceDependencyTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/TemporalServiceDependencyTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/TemporalServiceDependencyTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/TemporalServiceDependencyTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/UngetAspectServiceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/UngetAspectServiceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/UngetAspectServiceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/UngetAspectServiceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/UngetServiceTest.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/UngetServiceTest.java
similarity index 100%
rename from dependencymanager/org.apache.felix.dependencymanager.itest/src/org/apache/felix/dm/itest/api/UngetServiceTest.java
rename to dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/api/UngetServiceTest.java
diff --git a/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/util/ConfigDeliveries.java b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/util/ConfigDeliveries.java
new file mode 100644
index 0000000000..8250ef8093
--- /dev/null
+++ b/dependencymanager/org.apache.felix.dependencymanager.itest.api/src/org/apache/felix/dm/itest/util/ConfigDeliveries.java
@@ -0,0 +1,61 @@
+/*
+ * 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.
+ */
+package org.apache.felix.dm.itest.util;
+
+import java.util.Collections;
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * Detects that Config Admin delivers the same configuration again to a callback.
+ *
+ * Config Admin can provide a configuration to a service twice, for example once because the service registers
+ * while the configuration is updated (an update of the registration and an update of the configuration, close
+ * together). The tests count the configuration updates they expect, and ignore such a repeated delivery.
+ */
+public class ConfigDeliveries {
+ private Object m_last;
+
+ /**
+ * @return true if the configuration is the one which has been delivered the last time. A lost configuration
+ * (null) is never a repeat.
+ */
+ public synchronized boolean isRepeat(Dictionary, ?> properties) {
+ if (properties == null) {
+ m_last = null;
+ return false;
+ }
+ Map