Add Aries JAX-RS example
This example creates both an Atomos indexed uber JAR
and a substrate native image with a very simple
hello JAX-RS resource. The resource is a DS
component that gets injected with another
OSGi service.
The maven plugin should have calculated
the necessary configuration files for reflection
but there seemed to be things missing. This example
has additional AgentConfig.json files that were gathered
by using the graal agent to discover the necessary
resources and reflect configs for substrate.
diff --git a/atomos.examples/atomos.examples.jaxrs.bundle/pom.xml b/atomos.examples/atomos.examples.jaxrs.bundle/pom.xml
new file mode 100644
index 0000000..92321cf
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs.bundle/pom.xml
@@ -0,0 +1,61 @@
+<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>org.apache.felix.atomos.examples</groupId>
+ <artifactId>org.apache.felix.atomos.examples</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>org.apache.felix.atomos.examples.jaxrs.bundle</artifactId>
+ <name>atomos.examples.jaxrs.bundle</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>osgi.annotation</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.component.annotations</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jaxrs_2.1_spec</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.jaxrs</artifactId>
+ <version>1.0.0</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>default-compile</id>
+ <configuration>
+ <release>8</release>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>biz.aQute.bnd</groupId>
+ <artifactId>bnd-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/atomos.examples/atomos.examples.jaxrs.bundle/src/main/java/org/apache/felix/atomos/examples/jaxrs/bundle/HelloResource.java b/atomos.examples/atomos.examples.jaxrs.bundle/src/main/java/org/apache/felix/atomos/examples/jaxrs/bundle/HelloResource.java
new file mode 100644
index 0000000..c766dc2
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs.bundle/src/main/java/org/apache/felix/atomos/examples/jaxrs/bundle/HelloResource.java
@@ -0,0 +1,39 @@
+package org.apache.felix.atomos.examples.jaxrs.bundle;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+
+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.component.annotations.Reference;
+import org.osgi.service.component.annotations.ServiceScope;
+import org.osgi.service.jaxrs.whiteboard.propertytypes.JaxrsResource;
+
+@Component(service = HelloResource.class, scope = ServiceScope.PROTOTYPE)
+@JaxrsResource
+public class HelloResource
+{
+ private final HelloService helloService;
+
+ @Activate
+ public HelloResource(@Reference HelloService helloService)
+ {
+ this.helloService = helloService;
+ System.out.println(getClass().getSimpleName() + " JAX-RS activated");
+ }
+
+ @Deactivate
+ void deactivate()
+ {
+ System.out.println(getClass().getSimpleName() + " JAX-RS deactivated");
+ }
+
+ @GET
+ @Path("hello/{name}")
+ public String sayHello(@PathParam("name") String name)
+ {
+ return helloService.computeHelloMessage(name);
+ }
+}
diff --git a/atomos.examples/atomos.examples.jaxrs.bundle/src/main/java/org/apache/felix/atomos/examples/jaxrs/bundle/HelloService.java b/atomos.examples/atomos.examples.jaxrs.bundle/src/main/java/org/apache/felix/atomos/examples/jaxrs/bundle/HelloService.java
new file mode 100644
index 0000000..4d7a736
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs.bundle/src/main/java/org/apache/felix/atomos/examples/jaxrs/bundle/HelloService.java
@@ -0,0 +1,26 @@
+package org.apache.felix.atomos.examples.jaxrs.bundle;
+
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+
+@Component(service = HelloService.class)
+public class HelloService
+{
+ @Activate
+ void activate()
+ {
+ System.out.println(getClass().getSimpleName() + " activated");
+ }
+
+ @Deactivate
+ void deactivate()
+ {
+ System.out.println(getClass().getSimpleName() + " deactivated");
+ }
+
+ public String computeHelloMessage(String name)
+ {
+ return "Hello " + name;
+ }
+}
diff --git a/atomos.examples/atomos.examples.jaxrs/additionalResourceConfig.json b/atomos.examples/atomos.examples.jaxrs/additionalResourceConfig.json
new file mode 100644
index 0000000..2c0fa21
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs/additionalResourceConfig.json
@@ -0,0 +1,16 @@
+{
+ "resources": [
+ {
+ "pattern": "META-INF/services/.*$"
+ },
+ {
+ "pattern": "templates/.*$"
+ },
+ {
+ "pattern": "res/.*$"
+ },
+ {
+ "pattern": "/system/console/res/imgs/favicon.ico"
+ }
+ ]
+}
diff --git a/atomos.examples/atomos.examples.jaxrs/pom.xml b/atomos.examples/atomos.examples.jaxrs/pom.xml
new file mode 100644
index 0000000..9284f77
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs/pom.xml
@@ -0,0 +1,230 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.felix.atomos.examples</groupId>
+ <artifactId>org.apache.felix.atomos.examples</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>org.apache.felix.atomos.examples.jaxrs</artifactId>
+ <name>atomos.examples.jaxrs</name>
+ <description>Atomos example using Aries JAX-RS</description>
+
+ <repositories>
+ <repository>
+ <id>atomos-temp-m2repo</id>
+ <url>https://github.com/tjwatson/atomos-temp-m2repo/raw/master/repository</url>
+ <snapshots>
+ <enabled>true</enabled>
+ <updatePolicy>always</updatePolicy>
+ </snapshots>
+ </repository>
+ </repositories>
+ <properties>
+ <jaxb.version>2.3.3</jaxb.version>
+ <aries.jaxrs.version>1.0.9</aries.jaxrs.version>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.felix.atomos.osgi.frameworks.equinox</groupId>
+ <artifactId>atomos.osgi.framework</artifactId>
+ <version>${atomos.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>org.apache.felix.atomos.runtime</artifactId>
+ <version>${atomos.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix.atomos.examples</groupId>
+ <artifactId>org.apache.felix.atomos.examples.webconsole.bom</artifactId>
+ <version>${atomos.version}</version>
+ <type>pom</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.felix.atomos.examples</groupId>
+ <artifactId>org.apache.felix.atomos.examples.jaxrs.bundle</artifactId>
+ <version>${atomos.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.activation</groupId>
+ <artifactId>jakarta.activation</artifactId>
+ <version>1.2.2</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.xml.bind</groupId>
+ <artifactId>jaxb-osgi</artifactId>
+ <version>2.3.3</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.xml.bind</groupId>
+ <artifactId>jakarta.xml.bind-api</artifactId>
+ <version>${jaxb.version}</version>
+ <scope>runtime</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>jakarta.activation</groupId>
+ <artifactId>jakarta.activation-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>jakarta.annotation</groupId>
+ <artifactId>jakarta.annotation-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.xml.soap</groupId>
+ <artifactId>jakarta.xml.soap-api</artifactId>
+ <version>1.4.2</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>jakarta.xml.ws</groupId>
+ <artifactId>jakarta.xml.ws-api</artifactId>
+ <version>2.3.3</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.jaxrs</artifactId>
+ <version>1.0.0</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.aries.jax.rs</groupId>
+ <artifactId>org.apache.aries.jax.rs.whiteboard</artifactId>
+ <version>${aries.jaxrs.version}</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.aries.spifly</groupId>
+ <artifactId>org.apache.aries.spifly.dynamic.framework.extension</artifactId>
+ <version>1.3.0</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-annotation_1.3_spec</artifactId>
+ <version>1.1</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jaxrs_2.1_spec</artifactId>
+ <version>1.1</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.service.jaxrs</artifactId>
+ <version>1.0.0</version>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.slf4j</groupId>
+ <artifactId>slf4j-nop</artifactId>
+ <version>1.7.2</version>
+ <scope>runtime</scope>
+ </dependency>
+
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>atomos-maven-plugin</artifactId>
+ <version>${atomos.version}</version>
+ <configuration>
+ <nativeImage>
+ <debug>true</debug>
+ <additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.apache.felix.atomos.runtime</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.apache.felix.atomos.impl</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>javax.servlet</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.apache.felix.service.command.Converter</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.eclipse.jetty.util.TypeUtil</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.eclipse.jetty.http.HttpTokens</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.eclipse.jetty.util.log.Log</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.eclipse.jetty.util.log.StdErrLog</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.eclipse.jetty.util.Uptime</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.eclipse.jetty.server.HttpOutput</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.slf4j</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.slf4j.impl</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.apache.cxf.bus.managers.DestinationFactoryManagerImpl</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.apache.cxf.bus.managers.ConduitInitiatorManagerImpl</additionalInitializeAtBuildTime>
+ <additionalInitializeAtBuildTime>org.apache.cxf.bus.managers.BindingFactoryManagerImpl</additionalInitializeAtBuildTime>
+ <!-- <additionalInitializeAtBuildTime>org.apache.felix.atomos.impl.runtime.base</additionalInitializeAtBuildTime> -->
+ </additionalInitializeAtBuildTime>
+ <resourceConfigurationFiles>
+ <resourceConfigurationFile>additionalResourceConfig.json</resourceConfigurationFile>
+ <resourceConfigurationFile>resourceAgentConfig.json</resourceConfigurationFile>
+ </resourceConfigurationFiles>
+ <dynamicProxyConfigurationFiles>
+ <dynamicProxyConfigurationFile>proxy_config.json</dynamicProxyConfigurationFile>
+ </dynamicProxyConfigurationFiles>
+
+ <reflectionConfigurationFiles>
+ <reflectionConfigurationFile>reflectConfig_felix_atomos.json</reflectionConfigurationFile>
+ <reflectionConfigurationFile>reflectConfig_felix_gogo.json</reflectionConfigurationFile>
+ <reflectionConfigurationFile>reflectConfig_felix_web.json</reflectionConfigurationFile>
+ <reflectionConfigurationFile>reflectConfig_jdk.json</reflectionConfigurationFile>
+ <reflectionConfigurationFile>reflectConfig_jetty.json</reflectionConfigurationFile>
+ <reflectionConfigurationFile>reflectAgentConfig.json</reflectionConfigurationFile>
+ </reflectionConfigurationFiles>
+ <!-- <mainClass>org.apache.felix.atomos.launch.AtomosLauncher</mainClass> -->
+ </nativeImage>
+ </configuration>
+ <executions>
+ <execution>
+ <id>native-jaxrs-build</id>
+ <goals>
+ <goal>atomos-native-image</goal>
+ </goals>
+ <phase>package</phase>
+ </execution>
+ <execution>
+ <id>index-jaxrs-build</id>
+ <goals>
+ <goal>atomos-index</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-shade-plugin</artifactId>
+ <version>3.2.4</version>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>shade</goal>
+ </goals>
+ <configuration>
+ <transformers>
+ <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+ <mainClass>org.apache.felix.atomos.launch.AtomosLauncher</mainClass>
+ </transformer>
+ </transformers>
+ <filters>
+ <filter>
+ <artifact>*:*</artifact>
+ <excludes>
+ <exclude>META-INF/*.SF</exclude>
+ <exclude>META-INF/*.DSA</exclude>
+ <exclude>META-INF/*.RSA</exclude>
+ </excludes>
+ </filter>
+ </filters>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+</project>
diff --git a/atomos.examples/atomos.examples.jaxrs/proxy_config.json b/atomos.examples/atomos.examples.jaxrs/proxy_config.json
new file mode 100644
index 0000000..f5c672c
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs/proxy_config.json
@@ -0,0 +1,3 @@
+[
+ ["org.apache.felix.service.command.Converter"]
+]
diff --git a/atomos.examples/atomos.examples.jaxrs/reflectAgentConfig.json b/atomos.examples/atomos.examples.jaxrs/reflectAgentConfig.json
new file mode 100644
index 0000000..b35ac69
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs/reflectAgentConfig.json
@@ -0,0 +1,686 @@
+[
+{
+ "name":"apple.security.AppleProvider",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"java.io.PrintWriter"
+},
+{
+ "name":"java.lang.Boolean",
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"java.lang.Byte",
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"java.lang.ClassLoader",
+ "methods":[{"name":"getPlatformClassLoader","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.Double",
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"java.lang.Float",
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"java.lang.Integer",
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"java.lang.Long",
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"java.lang.Module",
+ "methods":[{"name":"getDescriptor","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.ModuleLayer",
+ "methods":[
+ {"name":"boot","parameterTypes":[] },
+ {"name":"modules","parameterTypes":[] }
+ ]
+},
+{
+ "name":"java.lang.Object",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true
+},
+{
+ "name":"java.lang.Object[]"
+},
+{
+ "name":"java.lang.Short",
+ "methods":[{"name":"valueOf","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"java.lang.String"
+},
+{
+ "name":"java.lang.String[]"
+},
+{
+ "name":"java.lang.System",
+ "allPublicMethods":true
+},
+{
+ "name":"java.lang.Thread",
+ "methods":[
+ {"name":"getId","parameterTypes":[] },
+ {"name":"getStackTrace","parameterTypes":[] }
+ ]
+},
+{
+ "name":"java.lang.management.ManagementFactory",
+ "methods":[{"name":"getRuntimeMXBean","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.management.RuntimeMXBean",
+ "methods":[{"name":"getUptime","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.module.Configuration",
+ "methods":[{"name":"findModule","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"java.lang.module.ModuleDescriptor",
+ "methods":[
+ {"name":"exports","parameterTypes":[] },
+ {"name":"isAutomatic","parameterTypes":[] },
+ {"name":"packages","parameterTypes":[] }
+ ]
+},
+{
+ "name":"java.lang.module.ModuleDescriptor$Exports",
+ "methods":[
+ {"name":"isQualified","parameterTypes":[] },
+ {"name":"source","parameterTypes":[] }
+ ]
+},
+{
+ "name":"java.lang.module.ModuleReference",
+ "methods":[{"name":"location","parameterTypes":[] }]
+},
+{
+ "name":"java.lang.module.ResolvedModule"
+},
+{
+ "name":"java.net.SetAccessible/0x0000000840096c40",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"java.net.URI",
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"java.security.MessageDigestSpi"
+},
+{
+ "name":"java.security.SecureRandomParameters"
+},
+{
+ "name":"java.util.ArrayList",
+ "methods":[{"name":"clone","parameterTypes":[] }]
+},
+{
+ "name":"javax.security.auth.login.Configuration"
+},
+{
+ "name":"javax.servlet.Servlet"
+},
+{
+ "name":"javax.servlet.ServletRequest",
+ "methods":[{"name":"isAsyncSupported","parameterTypes":[] }]
+},
+{
+ "name":"javax.servlet.WriteListener"
+},
+{
+ "name":"javax.ws.rs.core.Application",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"javax.ws.rs.ext.ExceptionMapper",
+ "allPublicMethods":true
+},
+{
+ "name":"javax.ws.rs.ext.MessageBodyReader",
+ "allPublicMethods":true
+},
+{
+ "name":"javax.ws.rs.ext.MessageBodyWriter",
+ "allPublicMethods":true
+},
+{
+ "name":"jdk.internal.loader.ClassLoaders$AppClassLoader",
+ "methods":[{"name":"appendToClassPathForInstrumentation","parameterTypes":["java.lang.String"] }]
+},
+{
+ "name":"org.apache.aries.jax.rs.whiteboard.activator.CxfJaxrsBundleActivator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.aries.jax.rs.whiteboard.internal.DefaultApplication",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.aries.jax.rs.whiteboard.internal.cxf.CxfJaxrsServiceRegistrator$1",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.aries.spifly.dynamic.DynamicWeavingActivator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.binding.AbstractBindingFactory",
+ "fields":[{"name":"bus"}]
+},
+{
+ "name":"org.apache.cxf.bus.managers.CXFBusLifeCycleManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ClientLifeCycleManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.EndpointResolverRegistryImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.HeaderManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.managers.PhaseManagerImpl",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ServerLifeCycleManagerImpl",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.ServerRegistryImpl",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.bus.managers.WorkQueueManagerImpl"
+},
+{
+ "name":"org.apache.cxf.bus.resource.ResourceManagerImpl"
+},
+{
+ "name":"org.apache.cxf.buslifecycle.BusLifeCycleManager"
+},
+{
+ "name":"org.apache.cxf.catalog.OASISCatalogManager"
+},
+{
+ "name":"org.apache.cxf.endpoint.ServerLifeCycleManager"
+},
+{
+ "name":"org.apache.cxf.endpoint.ServerRegistry"
+},
+{
+ "name":"org.apache.cxf.jaxrs.JAXRSBindingFactory",
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.jaxrs.client.spec.ClientBuilderImpl"
+},
+{
+ "name":"org.apache.cxf.jaxrs.ext.ContextProvider",
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.impl.RuntimeDelegateImpl"
+},
+{
+ "name":"org.apache.cxf.jaxrs.impl.WebApplicationExceptionMapper",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.nio.NioMessageBodyWriter",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.provider.AbstractConfigurableProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.provider.AbstractJAXBProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.provider.BinaryDataProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.provider.DataSourceProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.provider.FormEncodingProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.provider.JAXBElementProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.provider.JAXBElementTypedProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.provider.MultipartProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.provider.PrimitiveTextProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.provider.SourceProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.provider.StringTextProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.sse.SseContextProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.sse.SseEventSinkContextProvider",
+ "allDeclaredFields":true,
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.cxf.jaxrs.sse.client.SseEventSourceBuilderImpl"
+},
+{
+ "name":"org.apache.cxf.phase.PhaseManager"
+},
+{
+ "name":"org.apache.cxf.service.factory.FactoryBeanListenerManager",
+ "fields":[{"name":"bus"}],
+ "methods":[{"name":"<init>","parameterTypes":["org.apache.cxf.Bus"] }]
+},
+{
+ "name":"org.apache.cxf.transport.http.HTTPTransportFactory",
+ "fields":[{"name":"DEFAULT_NAMESPACES"}],
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.cxf.transport.sse.SseProvidersExtension",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.atomos.examples.jaxrs.bundle.HelloResource",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "allPublicConstructors":true
+},
+{
+ "name":"org.apache.felix.atomos.examples.jaxrs.bundle.HelloService",
+ "allDeclaredFields":true,
+ "allDeclaredMethods":true,
+ "allPublicMethods":true,
+ "allPublicConstructors":true
+},
+{
+ "name":"org.apache.felix.atomos.impl.runtime.base.AtomosCommands"
+},
+{
+ "name":"org.apache.felix.atomos.impl.runtime.modules.AtomosRuntimeModules",
+ "methods":[{"name":"<init>","parameterTypes":["java.util.Map"] }]
+},
+{
+ "name":"org.apache.felix.atomos.runtime.AtomosRuntime"
+},
+{
+ "name":"org.apache.felix.gogo.command.Activator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.gogo.command.Basic"
+},
+{
+ "name":"org.apache.felix.gogo.command.Files"
+},
+{
+ "name":"org.apache.felix.gogo.command.Inspect"
+},
+{
+ "name":"org.apache.felix.gogo.runtime.CommandProcessorImpl",
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.felix.gogo.runtime.activator.Activator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.gogo.shell.Activator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.gogo.shell.Builtin"
+},
+{
+ "name":"org.apache.felix.gogo.shell.Posix",
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.felix.gogo.shell.Procedural",
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.felix.gogo.shell.Shell",
+ "allPublicMethods":true
+},
+{
+ "name":"org.apache.felix.gogo.shell.Telnet"
+},
+{
+ "name":"org.apache.felix.http.base.internal.console.HttpServicePlugin",
+ "methods":[{"name":"printConfiguration","parameterTypes":["java.io.PrintWriter"] }]
+},
+{
+ "name":"org.apache.felix.http.jetty.internal.JettyActivator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.http.whiteboard.internal.WhiteboardActivator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.inventory.InventoryPrinter"
+},
+{
+ "name":"org.apache.felix.inventory.impl.Activator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.scr.impl.Activator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.scr.impl.ComponentCommands"
+},
+{
+ "name":"org.apache.felix.service.command.CommandProcessor"
+},
+{
+ "name":"org.apache.felix.service.command.CommandSession",
+ "allDeclaredMethods":true
+},
+{
+ "name":"org.apache.felix.service.command.Converter"
+},
+{
+ "name":"org.apache.felix.service.command.Function[]"
+},
+{
+ "name":"org.apache.felix.service.threadio.ThreadIO"
+},
+{
+ "name":"org.apache.felix.webconsole.ConfigurationPrinter"
+},
+{
+ "name":"org.apache.felix.webconsole.bundleinfo.BundleInfoProvider"
+},
+{
+ "name":"org.apache.felix.webconsole.internal.OsgiManagerActivator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.compendium.LogServlet",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.compendium.WireAdminConfigurationPrinter",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.configuration.ConfigManager",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.configuration.ConfigurationAdminConfigurationPrinter",
+ "methods":[
+ {"name":"<init>","parameterTypes":[] },
+ {"name":"getTitle","parameterTypes":[] },
+ {"name":"printConfiguration","parameterTypes":["java.io.PrintWriter"] }
+ ]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.core.BundlesConfigurationPrinter",
+ "methods":[
+ {"name":"<init>","parameterTypes":[] },
+ {"name":"getTitle","parameterTypes":[] },
+ {"name":"printConfiguration","parameterTypes":["java.io.PrintWriter"] }
+ ]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.core.BundlesServlet",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.core.PermissionsConfigurationPrinter",
+ "methods":[
+ {"name":"<init>","parameterTypes":[] },
+ {"name":"getTitle","parameterTypes":[] },
+ {"name":"printConfiguration","parameterTypes":["java.io.PrintWriter"] }
+ ]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.core.ServicesConfigurationPrinter",
+ "methods":[
+ {"name":"<init>","parameterTypes":[] },
+ {"name":"getTitle","parameterTypes":[] },
+ {"name":"printConfiguration","parameterTypes":["java.io.PrintWriter"] }
+ ]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.core.ServicesServlet",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.misc.LicenseServlet",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.misc.SystemPropertiesPrinter",
+ "methods":[
+ {"name":"<init>","parameterTypes":[] },
+ {"name":"getTitle","parameterTypes":[] },
+ {"name":"printConfiguration","parameterTypes":["java.io.PrintWriter"] }
+ ]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.misc.ThreadPrinter",
+ "methods":[
+ {"name":"<init>","parameterTypes":[] },
+ {"name":"getTitle","parameterTypes":[] },
+ {"name":"printConfiguration","parameterTypes":["java.io.PrintWriter","java.lang.String"] }
+ ]
+},
+{
+ "name":"org.apache.felix.webconsole.internal.system.VMStatPlugin",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.eclipse.equinox.log.ExtendedLogService"
+},
+{
+ "name":"org.eclipse.jetty.server.Handler[]"
+},
+{
+ "name":"org.eclipse.jetty.server.handler.ContextHandlerCollection$Branch[]"
+},
+{
+ "name":"org.eclipse.jetty.servlet.ServletMapping[]"
+},
+{
+ "name":"org.eclipse.jetty.util.log.Slf4jLog",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.eclipse.osgi.framework.log.FrameworkLog"
+},
+{
+ "name":"org.eclipse.osgi.internal.cds.CDSHookConfigurator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.eclipse.osgi.internal.connect.ConnectHookConfigurator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.eclipse.osgi.internal.framework.BundleContextImpl",
+ "allPublicMethods":true
+},
+{
+ "name":"org.eclipse.osgi.internal.framework.EquinoxBundle$SystemBundle",
+ "allPublicMethods":true
+},
+{
+ "name":"org.eclipse.osgi.internal.framework.SystemBundleActivator",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.eclipse.osgi.internal.signedcontent.SignedBundleHook",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"org.eclipse.osgi.service.datalocation.Location"
+},
+{
+ "name":"org.eclipse.osgi.service.debug.DebugOptions"
+},
+{
+ "name":"org.eclipse.osgi.service.debug.DebugOptionsListener"
+},
+{
+ "name":"org.eclipse.osgi.service.environment.EnvironmentInfo"
+},
+{
+ "name":"org.eclipse.osgi.service.localization.BundleLocalization"
+},
+{
+ "name":"org.eclipse.osgi.service.security.TrustEngine"
+},
+{
+ "name":"org.eclipse.osgi.service.urlconversion.URLConverter"
+},
+{
+ "name":"org.eclipse.osgi.signedcontent.SignedContentFactory"
+},
+{
+ "name":"org.osgi.framework.hooks.bundle.CollisionHook"
+},
+{
+ "name":"org.osgi.framework.hooks.resolver.ResolverHookFactory"
+},
+{
+ "name":"org.osgi.framework.hooks.weaving.WeavingHook"
+},
+{
+ "name":"org.osgi.service.cm.ConfigurationListener"
+},
+{
+ "name":"org.osgi.service.component.runtime.ServiceComponentRuntime"
+},
+{
+ "name":"org.osgi.service.condition.Condition"
+},
+{
+ "name":"org.osgi.service.condpermadmin.ConditionalPermissionAdmin"
+},
+{
+ "name":"org.osgi.service.http.HttpService"
+},
+{
+ "name":"org.osgi.service.http.context.ServletContextHelper"
+},
+{
+ "name":"org.osgi.service.http.runtime.HttpServiceRuntime"
+},
+{
+ "name":"org.osgi.service.jaxrs.client.SseEventSourceFactory"
+},
+{
+ "name":"org.osgi.service.jaxrs.runtime.JaxrsServiceRuntime"
+},
+{
+ "name":"org.osgi.service.log.LogService"
+},
+{
+ "name":"org.osgi.service.log.LoggerFactory"
+},
+{
+ "name":"org.osgi.service.log.admin.LoggerAdmin"
+},
+{
+ "name":"org.osgi.service.packageadmin.PackageAdmin"
+},
+{
+ "name":"org.osgi.service.permissionadmin.PermissionAdmin"
+},
+{
+ "name":"org.osgi.service.resolver.Resolver"
+},
+{
+ "name":"org.osgi.service.startlevel.StartLevel"
+},
+{
+ "name":"org.slf4j.LoggerFactory",
+ "methods":[{"name":"getILoggerFactory","parameterTypes":[] }]
+},
+{
+ "name":"org.slf4j.impl.StaticLoggerBinder"
+},
+{
+ "name":"sun.misc.Unsafe",
+ "fields":[{"name":"theUnsafe"}],
+ "methods":[{"name":"defineAnonymousClass","parameterTypes":["java.lang.Class","byte[]","java.lang.Object[]"] }]
+},
+{
+ "name":"sun.security.provider.NativePRNG",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+},
+{
+ "name":"sun.security.provider.SHA",
+ "methods":[{"name":"<init>","parameterTypes":[] }]
+}
+]
diff --git a/atomos.examples/atomos.examples.jaxrs/reflectConfig_felix_atomos.json b/atomos.examples/atomos.examples.jaxrs/reflectConfig_felix_atomos.json
new file mode 100644
index 0000000..9751c7a
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs/reflectConfig_felix_atomos.json
@@ -0,0 +1,9 @@
+[
+ {
+ "name" : "org.apache.felix.atomos.impl.runtime.base.AtomosCommands",
+ "allPublicMethods" : true,
+ "allDeclaredMethods" : true,
+ "allPublicFields" : true,
+ "allDeclaredFields" : true
+ }
+]
diff --git a/atomos.examples/atomos.examples.jaxrs/reflectConfig_felix_gogo.json b/atomos.examples/atomos.examples.jaxrs/reflectConfig_felix_gogo.json
new file mode 100644
index 0000000..8366da8
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs/reflectConfig_felix_gogo.json
@@ -0,0 +1,40 @@
+[
+ {
+ "name":"org.apache.felix.service.command.Converter"
+ },
+ {
+ "name" : "org.apache.felix.gogo.shell.Builtin",
+ "allPublicMethods" : true,
+ "allDeclaredMethods" : true,
+ "allPublicFields" : true,
+ "allDeclaredFields" : true
+ },
+ {
+ "name" : "org.apache.felix.gogo.shell.Shell",
+ "allPublicMethods" : true,
+ "allDeclaredMethods" : true,
+ "allPublicFields" : true,
+ "allDeclaredFields" : true
+ },
+ {
+ "name" : "org.apache.felix.gogo.shell.Procedural",
+ "allPublicMethods" : true,
+ "allDeclaredMethods" : true,
+ "allPublicFields" : true,
+ "allDeclaredFields" : true
+ },
+ {
+ "name" : "org.apache.felix.gogo.shell.Posix",
+ "allPublicMethods" : true,
+ "allDeclaredMethods" : true,
+ "allPublicFields" : true,
+ "allDeclaredFields" : true
+ },
+ {
+ "name" : "org.apache.felix.gogo.shell.Telnet",
+ "allPublicMethods" : true,
+ "allDeclaredMethods" : true,
+ "allPublicFields" : true,
+ "allDeclaredFields" : true
+ }
+]
diff --git a/atomos.examples/atomos.examples.jaxrs/reflectConfig_felix_web.json b/atomos.examples/atomos.examples.jaxrs/reflectConfig_felix_web.json
new file mode 100644
index 0000000..da00a20
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs/reflectConfig_felix_web.json
@@ -0,0 +1,43 @@
+[
+
+ {
+ "name" : "org.apache.felix.webconsole.internal.core.ServicesServlet",
+ "allPublicConstructors" : true,
+ "allPublicMethods" : true
+ },
+ {
+ "name" : "org.apache.felix.webconsole.internal.system.VMStatPlugin",
+ "allPublicConstructors" : true,
+ "allPublicMethods" : true
+ },
+ {
+ "name" : "org.apache.felix.webconsole.internal.configuration.ConfigManager",
+ "allPublicConstructors" : true,
+ "allPublicMethods" : true
+ },
+ {
+ "name" : "org.apache.felix.webconsole.internal.core.BundlesServlet",
+ "allPublicConstructors" : true,
+ "allPublicMethods" : true
+ },
+ {
+ "name" : "org.apache.felix.webconsole.internal.misc.LicenseServlet",
+ "allPublicConstructors" : true,
+ "allPublicMethods" : true
+ },
+ {
+ "name" : "org.apache.felix.webconsole.internal.compendium.LogServlet",
+ "allPublicConstructors" : true,
+ "allPublicMethods" : true
+ },
+ {
+ "name" : "org.apache.cxf.jaxrs.sse.client.SseEventSourceBuilderImpl",
+ "allPublicConstructors" : true,
+ "allPublicMethods" : true
+ },
+ {
+ "name" : "org.apache.cxf.bus.managers.DestinationFactoryManagerImpl",
+ "allPublicConstructors" : true,
+ "allPublicMethods" : true
+ }
+]
diff --git a/atomos.examples/atomos.examples.jaxrs/reflectConfig_jdk.json b/atomos.examples/atomos.examples.jaxrs/reflectConfig_jdk.json
new file mode 100644
index 0000000..281fba6
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs/reflectConfig_jdk.json
@@ -0,0 +1,7 @@
+[
+ {
+ "name" : "java.io.File",
+ "allPublicConstructors" : true,
+ "allPublicMethods" : true
+ }
+]
diff --git a/atomos.examples/atomos.examples.jaxrs/reflectConfig_jetty.json b/atomos.examples/atomos.examples.jaxrs/reflectConfig_jetty.json
new file mode 100644
index 0000000..8f4b6a3
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs/reflectConfig_jetty.json
@@ -0,0 +1,13 @@
+[
+ {
+ "name" : "org.eclipse.jetty.servlet.ServletMapping[]",
+ "allPublicConstructors" : true,
+ "allPublicMethods" : true
+ },
+ {
+ "name" : "org.eclipse.jetty.servlet.FilterMapping[]",
+ "allPublicConstructors" : true,
+ "allPublicMethods" : true
+ }
+
+]
diff --git a/atomos.examples/atomos.examples.jaxrs/resourceAgentConfig.json b/atomos.examples/atomos.examples.jaxrs/resourceAgentConfig.json
new file mode 100644
index 0000000..4f2bcce
--- /dev/null
+++ b/atomos.examples/atomos.examples.jaxrs/resourceAgentConfig.json
@@ -0,0 +1,99 @@
+{
+ "resources":[
+ {"pattern":"\\QMETA-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\QMETA-INF/cxf/bus-extensions.txt\\E"},
+ {"pattern":"\\QMETA-INF/services/javax.ws.rs.sse.SseEventSource.Builder\\E"},
+ {"pattern":"\\QMETA-INF/services/org.osgi.framework.connect.ConnectFrameworkFactory\\E"},
+ {"pattern":"\\QMETA-INF/services/org.osgi.framework.connect.FrameworkUtilHelper\\E"},
+ {"pattern":"\\QMETA-INF/services/org.osgi.framework.launch.FrameworkFactory\\E"},
+ {"pattern":"\\QMETA-INF/versions/9/\\E"},
+ {"pattern":"\\QOSGI-INF/l10n/bundle.properties\\E"},
+ {"pattern":"\\QOSGI-INF/org.apache.felix.atomos.examples.jaxrs.bundle.ExampleComponent.xml\\E"},
+ {"pattern":"\\Qatomos/0/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/1/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/10/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/11/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/11/META-INF/services/javax.ws.rs.client.ClientBuilder\\E"},
+ {"pattern":"\\Qatomos/11/META-INF/services/javax.ws.rs.ext.RuntimeDelegate\\E"},
+ {"pattern":"\\Qatomos/11/META-INF/services/javax.ws.rs.sse.SseEventSource$Builder\\E"},
+ {"pattern":"\\Qatomos/11/META-INF/services/org.apache.cxf.bus.factory\\E"},
+ {"pattern":"\\Qatomos/11/META-INF/services/org.apache.cxf.jaxrs.ext.JAXRSServerFactoryCustomizationExtension\\E"},
+ {"pattern":"\\Qatomos/12/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/12/systembundle.properties\\E"},
+ {"pattern":"\\Qatomos/13/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/14/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/15/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/16/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/17/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/18/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/2/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/20/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/21/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/22/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/23/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/24/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/25/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/26/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/27/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/28/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/29/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/3/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/30/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/31/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/32/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/33/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/34/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/5/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/6/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/7/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/8/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/9/META-INF/MANIFEST.MF\\E"},
+ {"pattern":"\\Qatomos/bundles.index\\E"},
+ {"pattern":"\\Qgosh_profile\\E"},
+ {"pattern":"\\Qlib/stax2-api.jar\\E"},
+ {"pattern":"\\Qlib/woodstox-core.jar\\E"},
+ {"pattern":"\\Qlib/xmlschema-core.jar\\E"},
+ {"pattern":"\\Qorg/apache/cxf/version/version.properties\\E"},
+ {"pattern":"\\Qorg/eclipse/jetty/http/encoding.properties\\E"},
+ {"pattern":"\\Qorg/eclipse/jetty/http/mime.properties\\E"},
+ {"pattern":"\\Qorg/eclipse/jetty/version/build.properties\\E"},
+ {"pattern":"\\Qorg/eclipse/osgi/internal/framework/osname.aliases\\E"},
+ {"pattern":"\\Qorg/eclipse/osgi/internal/framework/processor.aliases\\E"},
+ {"pattern":"\\Qorg/eclipse/osgi/internal/permadmin/implied.permissions\\E"},
+ {"pattern":"\\Qorg/eclipse/osgi/internal/url/SetAccessible.bytes\\E"},
+ {"pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E"},
+ {"pattern":"\\Qtemplates/bundles.html\\E"},
+ {"pattern":"\\Qtemplates/config.html\\E"},
+ {"pattern":"\\Qtemplates/license.html\\E"},
+ {"pattern":"\\Qtemplates/logs.html\\E"},
+ {"pattern":"\\Qtemplates/services.html\\E"},
+ {"pattern":"\\Qtemplates/vmstat.html\\E"},
+ {"pattern":"\\Qtemplates/vmstat_restart.html\\E"},
+ {"pattern":"\\Qtemplates/vmstat_stop.html\\E"}
+ ],
+ "bundles":[
+ {"name":"javax.servlet.LocalStrings"},
+ {"name":"javax.servlet.http.LocalStrings"},
+ {"name":"org.apache.cxf.Messages"},
+ {"name":"org.apache.cxf.bus.extension.Messages"},
+ {"name":"org.apache.cxf.bus.managers.Messages"},
+ {"name":"org.apache.cxf.common.annotation.Messages"},
+ {"name":"org.apache.cxf.common.injection.Messages"},
+ {"name":"org.apache.cxf.common.util.Messages"},
+ {"name":"org.apache.cxf.endpoint.Messages"},
+ {"name":"org.apache.cxf.interceptor.Messages"},
+ {"name":"org.apache.cxf.jaxrs.Messages"},
+ {"name":"org.apache.cxf.jaxrs.impl.Messages"},
+ {"name":"org.apache.cxf.jaxrs.interceptor.Messages"},
+ {"name":"org.apache.cxf.jaxrs.provider.Messages"},
+ {"name":"org.apache.cxf.jaxrs.utils.Messages"},
+ {"name":"org.apache.cxf.resource.Messages"},
+ {"name":"org.apache.cxf.service.factory.Messages"},
+ {"name":"org.apache.cxf.service.invoker.Messages"},
+ {"name":"org.apache.cxf.service.model.Messages"},
+ {"name":"org.apache.cxf.transport.http.Messages"},
+ {"name":"org.apache.cxf.transport.https.Messages"},
+ {"name":"org.apache.cxf.transport.servlet.Messages"},
+ {"name":"org.apache.cxf.ws.addressing.Messages"}
+ ]
+}
diff --git a/atomos.examples/pom.xml b/atomos.examples/pom.xml
index 0d24ac6..03af749 100644
--- a/atomos.examples/pom.xml
+++ b/atomos.examples/pom.xml
@@ -22,6 +22,8 @@
<modules>
<module>atomos.examples.webconsole.bom</module>
<module>atomos.examples.index</module>
+ <module>atomos.examples.jaxrs.bundle</module>
+ <module>atomos.examples.jaxrs</module>
<module>atomos.examples.jlink</module>
<module>atomos.examples.springloader</module>
<module>atomos.examples.substrate.equinox</module>