Merge pull request #111 from amergey/trunk-with-additional-namespace
ARIES-1995 ability to force waiting for custom namespace handlers
diff --git a/blueprint/blueprint-core/pom.xml b/blueprint/blueprint-core/pom.xml
index d94ac2f..1776218 100644
--- a/blueprint/blueprint-core/pom.xml
+++ b/blueprint/blueprint-core/pom.xml
@@ -136,7 +136,7 @@
<dependency>
<groupId>org.apache.aries.blueprint</groupId>
<artifactId>blueprint-parser</artifactId>
- <version>1.6.0</version>
+ <version>${blueprint.parser.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
diff --git a/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java b/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
index 280fef8..31ca19a 100644
--- a/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
+++ b/blueprint/blueprint-core/src/main/java/org/apache/aries/blueprint/container/BlueprintExtender.java
@@ -27,9 +27,16 @@
import java.util.Collections;
import java.util.Comparator;
import java.util.Enumeration;
+import java.util.HashSet;
import java.util.Hashtable;
import java.util.List;
-import java.util.concurrent.*;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.FutureTask;
+import java.util.concurrent.ScheduledExecutorService;
import org.apache.aries.blueprint.BlueprintConstants;
import org.apache.aries.blueprint.annotation.service.BlueprintAnnotationScanner;
@@ -68,6 +75,7 @@
public class BlueprintExtender implements BundleActivator, BundleTrackerCustomizer, SynchronousBundleListener {
/** The QuiesceParticipant implementation class name */
+ private static final String CONTAINER_ADDITIONAL_NAMESPACES = "org.apache.aries.blueprint.extender.additional.namespaces";
private static final String QUIESCE_PARTICIPANT_CLASS = "org.apache.aries.quiesce.participant.QuiesceParticipant";
private static final String EXTENDER_THREADS_PROPERTY = "org.apache.aries.blueprint.extender.threads";
private static final int DEFAULT_NUMBER_OF_THREADS = 3;
@@ -277,7 +285,23 @@
}
private boolean createContainer(Bundle bundle, List<URL> paths) {
- return createContainer(bundle, paths, null);
+ return createContainer(bundle, paths, getAdditionalNamespaces(bundle));
+ }
+
+ private Collection<URI> getAdditionalNamespaces(Bundle bundle) {
+ String additionalNamespacesProperty = bundle.getBundleContext().getProperty(CONTAINER_ADDITIONAL_NAMESPACES);
+ Set<URI> uris = null;
+ if(additionalNamespacesProperty != null) {
+ uris = new HashSet<URI>();
+ String[] strings = additionalNamespacesProperty.split(",");
+ for (String str : strings) {
+ str = str.trim();
+ if (str.length() != 0) {
+ uris.add(URI.create(str));
+ }
+ }
+ }
+ return uris;
}
private boolean createContainer(Bundle bundle, List<URL> paths, Collection<URI> namespaces) {