Add bndtools launcher
diff --git a/.gitignore b/.gitignore
index 1a5f3d2..0fd82d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,6 @@
.settings
.classpath
.project
+paho*
+generated
+
diff --git a/pom.xml b/pom.xml
index 901ef1b..db993ce 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,111 +1,134 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>net.lr.reactive.component</groupId>
- <artifactId>rcomp-parent</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <packaging>pom</packaging>
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>net.lr.reactive.component</groupId>
+ <artifactId>rcomp-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
- <properties>
- <reactor.version>3.0.7.RELEASE</reactor.version>
- <jetty.version>8.1.15.v20140411</jetty.version>
- <cxf.version>3.2.0-SNAPSHOT</cxf.version>
- </properties>
+ <properties>
+ <reactor.version>3.0.7.RELEASE</reactor.version>
+ <jetty.version>8.1.15.v20140411</jetty.version>
+ <cxf.version>3.1.2</cxf.version>
+ </properties>
- <modules>
- <module>rcomp-api</module>
- <module>rcomp-eventadmin</module>
- <module>rcomp-mqtt</module>
- <module>rcomp-mail</module>
- <module>rcomp-examples</module>
- </modules>
+ <modules>
+ <module>rcomp-api</module>
+ <module>rcomp-eventadmin</module>
+ <module>rcomp-mqtt</module>
+ <module>rcomp-mail</module>
+ <module>rcomp-examples</module>
+ <module>rcomp-index</module>
+ </modules>
- <dependencies>
- <dependency>
- <groupId>org.reactivestreams</groupId>
- <artifactId>reactive-streams</artifactId>
- <version>1.0.0</version>
- </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-api</artifactId>
- <version>1.7.21</version>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>osgi.core</artifactId>
- <version>6.0.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.osgi</groupId>
- <artifactId>osgi.cmpn</artifactId>
- <version>6.0.0</version>
- <scope>provided</scope>
- </dependency>
+ <dependencies>
+ <dependency>
+ <groupId>org.reactivestreams</groupId>
+ <artifactId>reactive-streams</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-api</artifactId>
+ <version>1.7.21</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.core</artifactId>
+ <version>6.0.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.cmpn</artifactId>
+ <version>6.0.0</version>
+ <scope>provided</scope>
+ </dependency>
- <dependency>
- <groupId>org.slf4j</groupId>
- <artifactId>slf4j-jdk14</artifactId>
- <version>1.7.21</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.12</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-jdk14</artifactId>
+ <version>1.7.21</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>net.lr.reactive.component</groupId>
- <artifactId>rcomp-api</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>io.projectreactor</groupId>
- <artifactId>reactor-core</artifactId>
- <version>3.0.7.RELEASE</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>net.lr.reactive.component</groupId>
+ <artifactId>rcomp-api</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>io.projectreactor</groupId>
+ <artifactId>reactor-core</artifactId>
+ <version>3.0.7.RELEASE</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.5.1</version>
- <configuration>
- <source>1.8</source>
- <target>1.8</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>biz.aQute.bnd</groupId>
- <artifactId>bnd-maven-plugin</artifactId>
- <version>3.3.0</version>
- <executions>
- <execution>
- <goals>
- <goal>bnd-process</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>3.0.2</version>
- <configuration>
- <archive>
- <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
- </archive>
- </configuration>
- </plugin>
- </plugins>
- </build>
+
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>biz.aQute.bnd</groupId>
+ <artifactId>bnd-export-maven-plugin</artifactId>
+ <version>3.4.0-SNAPSHOT</version>
+ <configuration>
+ <resolve>true</resolve>
+ <failOnChanges>false</failOnChanges>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>export</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>3.5.1</version>
+ <configuration>
+ <source>1.8</source>
+ <target>1.8</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>biz.aQute.bnd</groupId>
+ <artifactId>bnd-maven-plugin</artifactId>
+ <version>3.3.0</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>bnd-process</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>3.0.2</version>
+ <configuration>
+ <archive>
+ <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
diff --git a/rcomp-examples/bnd.bnd b/rcomp-examples/bnd.bnd
index 8b6f883..6b034bd 100644
--- a/rcomp-examples/bnd.bnd
+++ b/rcomp-examples/bnd.bnd
@@ -1 +1,2 @@
Web-ContextPath:/rcomp-examples
+Private-Package: reactor.math
\ No newline at end of file
diff --git a/rcomp-examples/src/test/java/examples/TestRs.java b/rcomp-examples/src/test/java/examples/TestRs.java
index feef726..aa410dd 100644
--- a/rcomp-examples/src/test/java/examples/TestRs.java
+++ b/rcomp-examples/src/test/java/examples/TestRs.java
@@ -1,11 +1,6 @@
package examples;
-import static reactor.core.publisher.Mono.fromCompletionStage;
-
import java.io.IOException;
-import java.time.Duration;
-import java.util.List;
-import java.util.stream.Collectors;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
@@ -21,8 +16,6 @@
import org.eclipse.jetty.servlet.ServletHolder;
import org.junit.Test;
-import reactor.core.publisher.Mono;
-
public class TestRs {
@Test
@@ -31,6 +24,7 @@
server.start();
WebTarget client1 = ClientBuilder.newClient().target("http://localhost:8384/Hello");
WebTarget client2 = ClientBuilder.newClient().target("http://localhost:8384/World");
+ /*
Mono<String> get1 = fromCompletionStage(client1.request().rx().get(String.class));
Mono<String> get2 = fromCompletionStage(client2.request().rx().get(String.class));
List<String> result = Mono
@@ -41,6 +35,7 @@
.block(Duration.ofMillis(1500));
String resultSt = result.stream().collect(Collectors.joining(" "));
org.junit.Assert.assertEquals("Hello World", resultSt);
+ */
server.stop();
}
diff --git a/rcomp-index/pom.xml b/rcomp-index/pom.xml
new file mode 100644
index 0000000..0fc6c96
--- /dev/null
+++ b/rcomp-index/pom.xml
@@ -0,0 +1,149 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>net.lr.reactive.component</groupId>
+ <artifactId>rcomp-parent</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ </parent>
+ <artifactId>rcomp-index</artifactId>
+
+ <properties>
+ <rcomp.version>${project.version}</rcomp.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>net.lr.reactive.component</groupId>
+ <artifactId>rcomp-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>net.lr.reactive.component</groupId>
+ <artifactId>rcomp-eventadmin</artifactId>
+ <version>${rcomp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>net.lr.reactive.component</groupId>
+ <artifactId>rcomp-mail</artifactId>
+ <version>${rcomp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>net.lr.reactive.component</groupId>
+ <artifactId>rcomp-mqtt</artifactId>
+ <version>${rcomp.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>net.lr.reactive.component</groupId>
+ <artifactId>rcomp-examples</artifactId>
+ <version>${rcomp.version}</version>
+ </dependency>
+
+ <!-- Basic Felix bundles -->
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.framework</artifactId>
+ <version>5.4.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.eventadmin</artifactId>
+ <version>1.4.6</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.configadmin</artifactId>
+ <version>1.8.8</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.metatype</artifactId>
+ <version>1.1.2</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>kxml2</artifactId>
+ <groupId>net.sf.kxml</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.fileinstall</artifactId>
+ <version>3.5.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.gogo.command</artifactId>
+ <version>1.0.0</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>org.osgi.core</artifactId>
+ <groupId>org.osgi</groupId>
+ </exclusion>
+ <exclusion>
+ <artifactId>org.osgi.compendium</artifactId>
+ <groupId>org.osgi</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.gogo.jline</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jline</groupId>
+ <artifactId>jline</artifactId>
+ <version>3.0.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.scr</artifactId>
+ <version>2.0.2</version>
+ <exclusions>
+ <exclusion>
+ <artifactId>animal-sniffer-annotations</artifactId>
+ <groupId>org.codehaus.mojo</groupId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.http.jetty</artifactId>
+ <version>3.0.0</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.eclipse.jetty</groupId>
+ <artifactId>jetty-server</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.eclipse.jetty.websocket</groupId>
+ <artifactId>websocket-server</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.http.base</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.ops4j.pax.logging</groupId>
+ <artifactId>pax-logging-service</artifactId>
+ <version>1.8.5</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>biz.aQute.bnd</groupId>
+ <artifactId>bnd-export-maven-plugin</artifactId>
+ <configuration>
+ <bndruns>
+ <bndrun>rcomp-example.bndrun</bndrun>
+ </bndruns>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
diff --git a/rcomp-index/rcomp-example.bndrun b/rcomp-index/rcomp-example.bndrun
new file mode 100644
index 0000000..604baef
--- /dev/null
+++ b/rcomp-index/rcomp-example.bndrun
@@ -0,0 +1,53 @@
+#-standalone: ${.}/target/index.xml
+
+-standalone: true
+-plugin.enroute-distro = \
+ aQute.bnd.repository.maven.pom.provider.BndPomRepository; \
+ snapshotUrls=https://oss.sonatype.org/content/repositories/osgi/; \
+ releaseUrls=https://repo1.maven.org/maven2/; \
+ pom=${.}/pom.xml; \
+ name=rcomp
+
+-runsystemcapabilities: ${native_capability}
+
+-resolve.effective: active;skip:="osgi.service"
+
+-runblacklist: osgi.identity;filter:='(osgi.identity=slf4j.api)'
+
+-runfw: org.apache.felix.framework;version='[5.4.0,5.4.0]'
+-runee: JavaSE-1.8
+
+-runsystempackages: sun.misc,javax.annotation.meta
+
+-runproperties: \
+ osgi.console=8102,\
+ aries.rsa.hostname=172.17.0.1,\
+ felix.cm.loglevel=4,\
+ org.osgi.framework.bootdelegation=*,\
+ felix.fileinstall.log.level=4,\
+ org.ops4j.pax.logging.DefaultServiceLog.level=INFO,\
+ felix.fileinstall.dir=./etc,\
+ felix.fileinstall.noInitialDelay=true,\
+ felix.fileinstall.enableConfigSave=false
+-runrequires: \
+ osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.jline)',\
+ osgi.identity;filter:='(osgi.identity=org.apache.felix.gogo.command)',\
+ osgi.identity;filter:='(osgi.identity=rcomp-examples)',\
+ osgi.identity;filter:='(osgi.identity=rcomp-eventadmin)',\
+ osgi.identity;filter:='(osgi.identity=rcomp-mqtt)'
+-runbundles: \
+ io.projectreactor.reactor-core;version='[3.0.7,3.0.8)',\
+ org.apache.felix.scr;version='[2.0.2,2.0.3)',\
+ org.ops4j.pax.logging.pax-logging-api;version='[1.8.5,1.8.6)',\
+ org.reactivestreams.reactive-streams;version='[1.0.0,1.0.1)',\
+ rcomp-api;version='[1.0.0,1.0.1)',\
+ rcomp-examples;version='[1.0.0,1.0.1)',\
+ org.apache.felix.bundlerepository;version='[1.6.0,1.6.1)',\
+ org.apache.felix.gogo.command;version='[1.0.0,1.0.1)',\
+ org.apache.felix.gogo.jline;version='[1.0.0,1.0.1)',\
+ org.apache.felix.gogo.runtime;version='[1.0.0,1.0.1)',\
+ org.jline;version='[3.0.1,3.0.2)',\
+ rcomp-eventadmin;version='[1.0.0,1.0.1)',\
+ org.eclipse.paho.client.mqttv3;version='[1.1.1,1.1.2)',\
+ rcomp-mqtt;version='[1.0.0,1.0.1)',\
+ osgi.cmpn;version='[4.3.1,4.3.2)'
\ No newline at end of file