diff --git a/docker-java-api/pom.xml b/docker-java-api/pom.xml index 1016da4ec4..9592323abc 100644 --- a/docker-java-api/pom.xml +++ b/docker-java-api/pom.xml @@ -68,13 +68,13 @@ - org.apache.felix - maven-bundle-plugin - true + biz.aQute.bnd + bnd-maven-plugin - - com.github.dockerjava.api.* - + diff --git a/docker-java-core/pom.xml b/docker-java-core/pom.xml index fed62f1a6c..a492e16893 100644 --- a/docker-java-core/pom.xml +++ b/docker-java-core/pom.xml @@ -80,13 +80,13 @@ - org.apache.felix - maven-bundle-plugin - true + biz.aQute.bnd + bnd-maven-plugin - - com.github.dockerjava.core.* - + diff --git a/docker-java-transport-httpclient5/pom.xml b/docker-java-transport-httpclient5/pom.xml index 057739a39d..970bcd18cf 100644 --- a/docker-java-transport-httpclient5/pom.xml +++ b/docker-java-transport-httpclient5/pom.xml @@ -34,6 +34,20 @@ + + org.osgi + org.osgi.service.component.annotations + 1.5.0 + provided + + + + org.osgi + org.osgi.service.metatype.annotations + 1.4.1 + provided + + net.java.dev.jna jna @@ -58,15 +72,14 @@ true - - org.apache.felix - maven-bundle-plugin - true + biz.aQute.bnd + bnd-maven-plugin - - com.github.dockerjava.httpclient5.* - + diff --git a/docker-java-transport-httpclient5/src/main/java/com/github/dockerjava/httpclient5/OSGiApacheDockerHttpClientService.java b/docker-java-transport-httpclient5/src/main/java/com/github/dockerjava/httpclient5/OSGiApacheDockerHttpClientService.java new file mode 100644 index 0000000000..931c80f918 --- /dev/null +++ b/docker-java-transport-httpclient5/src/main/java/com/github/dockerjava/httpclient5/OSGiApacheDockerHttpClientService.java @@ -0,0 +1,56 @@ +package com.github.dockerjava.httpclient5; + +import java.io.IOException; +import java.net.URI; +import java.time.Duration; + +import org.osgi.service.component.annotations.Activate; +import org.osgi.service.component.annotations.Component; +import org.osgi.service.component.annotations.Deactivate; +import org.osgi.service.metatype.annotations.ObjectClassDefinition; + +import com.github.dockerjava.transport.DockerHttpClient; +import com.github.dockerjava.transport.DockerHttpClientType; + +@DockerHttpClientType(value = OSGiApacheDockerHttpClientService.APACHE_HTTPCLIENT_5, transports = { DockerHttpClientType.TRANSPORT_STDIN_ATTACHMENT, + DockerHttpClientType.TRANSPORT_WINDOWS_NPIPE, DockerHttpClientType.TRANSPORT_UNIX_SOCKETS }) +@Component(service = DockerHttpClient.class, immediate = true, name = OSGiApacheDockerHttpClientService.PID) +public class OSGiApacheDockerHttpClientService extends ApacheDockerHttpClientImpl { + + static final String APACHE_HTTPCLIENT_5 = "apache.httpclient.5"; + public static final String PID = "com.github.dockerjava.httpclient5.basic"; + + @ObjectClassDefinition(pid = PID) + @interface Config { + String dockerHost() default "localhost"; + + int maxConnections() default Integer.MAX_VALUE;; + + long connectionTimeoutNanos() default -1; + + long responseTimeoutNanos() default -1; + } + + @Activate + protected OSGiApacheDockerHttpClientService(Config config) { + super(toDockerHost(config.dockerHost()), null, config.maxConnections(), + toDurationNanos(config.connectionTimeoutNanos()), toDurationNanos(config.responseTimeoutNanos())); + } + + private static Duration toDurationNanos(long value) { + if (value < 0) { + return null; + } + return Duration.ofNanos(value); + } + + private static URI toDockerHost(String config) { + return URI.create(config); + } + + @Deactivate + public void deactivate() throws IOException { + close(); + } + +} diff --git a/docker-java-transport-jersey/pom.xml b/docker-java-transport-jersey/pom.xml index c6e778c89e..ffacbf2c3e 100644 --- a/docker-java-transport-jersey/pom.xml +++ b/docker-java-transport-jersey/pom.xml @@ -114,13 +114,13 @@ - org.apache.felix - maven-bundle-plugin - true + biz.aQute.bnd + bnd-maven-plugin - - com.github.dockerjava.jaxrs.* - + diff --git a/docker-java-transport-netty/pom.xml b/docker-java-transport-netty/pom.xml index f9bc3bed98..cd94726c13 100644 --- a/docker-java-transport-netty/pom.xml +++ b/docker-java-transport-netty/pom.xml @@ -54,13 +54,13 @@ - org.apache.felix - maven-bundle-plugin - true + biz.aQute.bnd + bnd-maven-plugin - - com.github.dockerjava.netty.* - + diff --git a/docker-java-transport-okhttp/pom.xml b/docker-java-transport-okhttp/pom.xml index 41598807a9..2b07c498d1 100644 --- a/docker-java-transport-okhttp/pom.xml +++ b/docker-java-transport-okhttp/pom.xml @@ -64,13 +64,13 @@ - org.apache.felix - maven-bundle-plugin - true + biz.aQute.bnd + bnd-maven-plugin - - com.github.dockerjava.okhttp.* - + diff --git a/docker-java-transport-zerodep/pom.xml b/docker-java-transport-zerodep/pom.xml index 7d3fb40341..0b1c62715d 100644 --- a/docker-java-transport-zerodep/pom.xml +++ b/docker-java-transport-zerodep/pom.xml @@ -35,13 +35,13 @@ - org.apache.felix - maven-bundle-plugin - true + biz.aQute.bnd + bnd-maven-plugin - - com.github.dockerjava.zerodep.* - + diff --git a/docker-java-transport/pom.xml b/docker-java-transport/pom.xml index a7e76095d4..24aba9e2ba 100644 --- a/docker-java-transport/pom.xml +++ b/docker-java-transport/pom.xml @@ -36,18 +36,25 @@ 5.8.0 provided + + + org.osgi + org.osgi.service.component.annotations + 1.5.0 + provided + - org.apache.felix - maven-bundle-plugin - true + biz.aQute.bnd + bnd-maven-plugin - - com.github.dockerjava.transport.* - + diff --git a/docker-java-transport/src/main/java/com/github/dockerjava/transport/DockerHttpClientType.java b/docker-java-transport/src/main/java/com/github/dockerjava/transport/DockerHttpClientType.java new file mode 100644 index 0000000000..aeadfd8e13 --- /dev/null +++ b/docker-java-transport/src/main/java/com/github/dockerjava/transport/DockerHttpClientType.java @@ -0,0 +1,17 @@ +package com.github.dockerjava.transport; + +import org.osgi.service.component.annotations.ComponentPropertyType; + +@ComponentPropertyType +public @interface DockerHttpClientType { + + public static final String TRANSPORT_UNIX_SOCKETS = "unix.sockets"; + + public static final String TRANSPORT_WINDOWS_NPIPE = "windows.npipe"; + + public static final String TRANSPORT_STDIN_ATTACHMENT = "stdin.attacgment"; + + String value(); + + String[] transports(); +} diff --git a/docker-java/pom.xml b/docker-java/pom.xml index 453851ce13..61a9c6fed1 100644 --- a/docker-java/pom.xml +++ b/docker-java/pom.xml @@ -175,16 +175,27 @@ - org.apache.felix - maven-bundle-plugin - true + biz.aQute.bnd + bnd-maven-plugin - - !com.github.dockerjava.jaxrs.*,!com.github.dockerjava.netty.*,com.github.dockerjava.* - org.newsclub.net.unix;resolution:="optional",* - + false + + diff --git a/pom.xml b/pom.xml index 7da7062b3e..b920a25e18 100644 --- a/pom.xml +++ b/pom.xml @@ -80,7 +80,6 @@ 3.3.0 - 3.0.2 3.8.1 3.0.0-M1 3.0.0-M4 @@ -105,6 +104,20 @@ docker-java + + + bnd_snapshot_remove_after_release + https://bndtools.jfrog.io/bndtools/libs-snapshot/ + + true + + default + + false + + + + @@ -153,11 +166,19 @@ - org.apache.maven.plugins - maven-jar-plugin - ${maven-jar-plugin.version} + biz.aQute.bnd + bnd-maven-plugin + 6.3.0-SNAPSHOT + true + bnd-jar + + jar + + + + bnd-test-jar test-jar @@ -226,11 +247,6 @@ - - org.apache.felix - maven-bundle-plugin - 4.2.1 - @@ -282,6 +298,16 @@ + + biz.aQute.bnd + bnd-maven-plugin + + + + org.apache.maven.plugins maven-source-plugin