Register the docker local ContainerFactory as a service.
diff --git a/containers-api/src/main/java/org/apache/aries/containers/Container.java b/containers-api/src/main/java/org/apache/aries/containers/Container.java
index 9c4d569..6ec8148 100644
--- a/containers-api/src/main/java/org/apache/aries/containers/Container.java
+++ b/containers-api/src/main/java/org/apache/aries/containers/Container.java
@@ -20,6 +20,9 @@
import java.util.Map;
+import org.osgi.annotation.versioning.ProviderType;
+
+@ProviderType
public interface Container extends Comparable<Container> {
@Override
default int compareTo(Container other) {
diff --git a/containers-api/src/main/java/org/apache/aries/containers/ContainerFactory.java b/containers-api/src/main/java/org/apache/aries/containers/ContainerFactory.java
index d6d91d9..6f47cc8 100644
--- a/containers-api/src/main/java/org/apache/aries/containers/ContainerFactory.java
+++ b/containers-api/src/main/java/org/apache/aries/containers/ContainerFactory.java
@@ -6,6 +6,8 @@
@ProviderType
public interface ContainerFactory {
+ public static final String BINDING = "container.factory.binding";
+
Service getService(ServiceConfig config) throws Exception;
Set<String> listServices() throws Exception;
diff --git a/containers-docker-local/pom.xml b/containers-docker-local/pom.xml
index b74d85a..6c78d4f 100644
--- a/containers-docker-local/pom.xml
+++ b/containers-docker-local/pom.xml
@@ -34,6 +34,12 @@
<dependencies>
<dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
+ <dependency>
<groupId>${project.groupId}</groupId>
<artifactId>org.apache.aries.containers.api</artifactId>
<version>${project.version}</version>
@@ -62,6 +68,7 @@
</executions>
<configuration>
<bnd><![CDATA[
+ Bundle-Activator: org.apache.aries.containers.docker.local.impl.Activator
Conditional-Package: org.apache.felix.utils.json.*
]]></bnd>
</configuration>
diff --git a/containers-docker-local/src/main/java/org/apache/aries/containers/docker/local/impl/Activator.java b/containers-docker-local/src/main/java/org/apache/aries/containers/docker/local/impl/Activator.java
new file mode 100644
index 0000000..561c55b
--- /dev/null
+++ b/containers-docker-local/src/main/java/org/apache/aries/containers/docker/local/impl/Activator.java
@@ -0,0 +1,23 @@
+package org.apache.aries.containers.docker.local.impl;
+
+import java.util.Dictionary;
+import java.util.Hashtable;
+
+import org.apache.aries.containers.ContainerFactory;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+
+public class Activator implements BundleActivator {
+ @Override
+ public void start(BundleContext context) throws Exception {
+ Dictionary<String, Object> props = new Hashtable<>();
+ props.put(ContainerFactory.BINDING, "docker.local");
+ context.registerService(ContainerFactory.class,
+ new LocalDockerContainerFactory(), props);
+ }
+
+ @Override
+ public void stop(BundleContext context) throws Exception {
+ // Nothing to do
+ }
+}