You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pa...@apache.org on 2020/09/25 21:18:39 UTC

[felix-atomos] branch mergeLibExamples created (now 04f32c7)

This is an automated email from the ASF dual-hosted git repository.

pauls pushed a change to branch mergeLibExamples
in repository https://gitbox.apache.org/repos/asf/felix-atomos.git.


      at 04f32c7  Merge atomos.examples.substrate felix and equinox into a lib project

This branch includes the following new commits:

     new 04f32c7  Merge atomos.examples.substrate felix and equinox into a lib project

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[felix-atomos] 01/01: Merge atomos.examples.substrate felix and equinox into a lib project

Posted by pa...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

pauls pushed a commit to branch mergeLibExamples
in repository https://gitbox.apache.org/repos/asf/felix-atomos.git

commit 04f32c75bd70e6d13b323a2ea48f688edbabf64a
Author: Karl Pauls <ka...@gmail.com>
AuthorDate: Fri Sep 25 23:18:20 2020 +0200

    Merge atomos.examples.substrate felix and equinox into a lib project
---
 .../graal_proxy_config.json                        |   3 -
 .../atomos.examples.substrate.felix/README.md      |   8 -
 .../graal_class_config.json                        | 272 ---------------------
 .../graal_resource_config.json                     |   8 -
 .../atomos.examples.substrate.felix/pom.xml        | 183 --------------
 .../README.md                                      |   0
 .../graal_class_config.json                        |   9 +
 .../graal_proxy_config.json                        |   0
 .../graal_resource_config.json                     |   0
 .../pom.xml                                        |  40 ++-
 atomos.examples/pom.xml                            |   3 +-
 11 files changed, 44 insertions(+), 482 deletions(-)

diff --git a/atomos.examples/atomos.examples.substrate.equinox/graal_proxy_config.json b/atomos.examples/atomos.examples.substrate.equinox/graal_proxy_config.json
deleted file mode 100644
index f5c672c..0000000
--- a/atomos.examples/atomos.examples.substrate.equinox/graal_proxy_config.json
+++ /dev/null
@@ -1,3 +0,0 @@
-[
-  ["org.apache.felix.service.command.Converter"]
-]
diff --git a/atomos.examples/atomos.examples.substrate.felix/README.md b/atomos.examples/atomos.examples.substrate.felix/README.md
deleted file mode 100644
index 15be9d8..0000000
--- a/atomos.examples/atomos.examples.substrate.felix/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Atomos Substrate Felix Example
-
-This example builds a native image that includes the Felix Framework implementation with a set of bundles using Graal Substrate.  See the substrate [README](../SUBSTRATE.md) for instructions on building the Substrate examples.
-
-Buiding this example will create a `target/atomos` executable. If you launch `atomos` it will give you a gogo `g!` prompt to run gogo commands.  Also included in this example is a version of the Felix web console.  The web console can be access with http://localhost:8080/system/console/bundles and the id/password is admin/admin.
-
-For this example a directory `target/atomos_lib/` is created.  This contains all the original bundle JARs that got compiled into the native image `atomos`.  In order to launch the native `atomos` you must be in the directory containing both `atomos` and the `atomos_lib/` folder.  This is a simple way for Atomos to discover the available bundles and load additional bundle entries at runtime.
-
diff --git a/atomos.examples/atomos.examples.substrate.felix/graal_class_config.json b/atomos.examples/atomos.examples.substrate.felix/graal_class_config.json
deleted file mode 100644
index d0b18f4..0000000
--- a/atomos.examples/atomos.examples.substrate.felix/graal_class_config.json
+++ /dev/null
@@ -1,272 +0,0 @@
-[
-{"name":"org.osgi.service.metatype.MetaTypeProvider"},
-{"name":"org.apache.felix.http.api.ExtHttpService"},
-{"name":"org.osgi.service.http.HttpService"},
-{"name":"org.apache.felix.http.api.ExtHttpService"},
-{"name":"org.osgi.service.http.runtime.HttpServiceRuntime"},
-{"name":"org.osgi.service.http.context.ServletContextHelper"},
-{"name":"org.osgi.service.cm.ManagedService"},
-{"name":"javax.servlet.Servlet"},
-{"name":"org.osgi.service.log.admin.LoggerAdmin"},
-{
-"name":"org.apache.felix.webconsole.ConfigurationPrinter"
-},
-{
-"name":"org.apache.felix.webconsole.bundleinfo.BundleInfoProvider"
-},
-{
-  "name":"java.lang.Boolean",
-  "methods":[{"name":"<init>","parameterTypes":["java.lang.String"] }]
-},
-{
-"name":"org.apache.felix.service.command.Converter"
-},
-{
-"name":"org.apache.felix.service.command.CommandProcessor"
-},
-{
-"name":"org.osgi.service.component.runtime.ServiceComponentRuntime"
-},
-{
-"name":"org.apache.felix.service.threadio.ThreadIO"
-},
-{
-"name":"org.apache.felix.atomos.runtime.AtomosRuntime"
-},
-{
-"name":"org.osgi.framework.Version",
-"allPublicConstructors" : true,
-    "allPublicMethods" : true
-},
-{
-"name":"org.osgi.framework.VersionRange",
-"allPublicConstructors" : true,
-    "allPublicMethods" : true
-},
-{
-"name":"org.osgi.framework.hooks.bundle.CollisionHook"
-},
-{
-"name":"org.osgi.framework.hooks.resolver.ResolverHookFactory"
-},
-   {
-     "name" : "java.net.URL",
- "allPublicConstructors" : true,
-    "allPublicMethods" : true,
-    "allDeclaredMethods" : true,
-    "allPublicFields" : true,
-    "allDeclaredFields" : true
-   },
-{
-     "name" : "java.net.URLStreamHandler",
-    "allPublicMethods" : true,
-    "allDeclaredMethods" : true,
-    "allPublicFields" : true,
-    "allDeclaredFields" : true
-   },
-   {
-    "name" : "org.apache.felix.log.Activator",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.scr.impl.Activator",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.gogo.shell.Activator",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.gogo.command.Activator",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.gogo.runtime.activator.Activator",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.atomos.tests.testbundles.service.impl.activator.Activator",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.atomos.tests.testbundles.service.contract.Echo"
-  },
-  {
-    "name" : "org.apache.felix.atomos.tests.testbundles.service.impl.EchoImpl",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.atomos.tests.testbundles.service.user.EchoUser",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true,
-    "allDeclaredMethods" : true,
-    "allPublicFields" : true,
-    "allDeclaredFields" : true
-  },
-  {
-    "name" : "org.apache.felix.atomos.tests.testbundles.service.user.EchoUser2",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true,
-    "allDeclaredMethods" : true,
-    "allPublicFields" : true,
-    "allDeclaredFields" : true
-  },
-  {
-    "name" : "org.apache.felix.atomos.substrate.config.ReflectConfig",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.atomos.substrate.config.ResourceConfig",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.atomos.substrate.config.SubstrateService",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true,
-    "allDeclaredFields" : true
-  },
-  {
-    "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
-  },
-  {
-    "name" : "org.apache.felix.gogo.command.Basic",
-    "allPublicMethods" : true,
-    "allDeclaredMethods" : true,
-    "allPublicFields" : true,
-    "allDeclaredFields" : true
-  },
-  {
-    "name" : "org.apache.felix.gogo.command.Inspect",
-    "allPublicMethods" : true,
-    "allDeclaredMethods" : true,
-    "allPublicFields" : true,
-    "allDeclaredFields" : true
-  },
-  {
-    "name" : "org.apache.felix.gogo.command.Files",
-    "allPublicMethods" : true,
-    "allDeclaredMethods" : true,
-    "allPublicFields" : true,
-    "allDeclaredFields" : true
-  },
-  {
-    "name" : "org.apache.felix.atomos.impl.runtime.base.AtomosCommands",
-    "allPublicMethods" : true,
-    "allDeclaredMethods" : true,
-    "allPublicFields" : true,
-    "allDeclaredFields" : true
-  },
-  {
-    "name" : "org.apache.felix.scr.impl.ComponentCommands",
-    "methods" : [
-      { "name" : "list", "parameterTypes" : [] },
-      { "name" : "list", "parameterTypes" : ["long"] },
-      { "name" : "info", "parameterTypes" : ["java.lang.String"] },
-      { "name" : "info", "parameterTypes" : ["long"] },
-      { "name" : "enable", "parameterTypes" : ["java.lang.String"] },
-      { "name" : "disable", "parameterTypes" : ["java.lang.String"] },
-      { "name" : "config", "parameterTypes" : [] }
-    ]
-  },
-  {
-    "name" : "java.io.File",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.http.whiteboard.internal.WhiteboardActivator",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.http.jetty.internal.JettyActivator",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.apache.felix.webconsole.internal.OsgiManagerActivator",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.eclipse.jetty.servlet.ServletMapping[]",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "name" : "org.eclipse.jetty.servlet.FilterMapping[]",
-    "allPublicConstructors" : true,
-    "allPublicMethods" : true
-  },
-  {
-    "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
-  }
-]
diff --git a/atomos.examples/atomos.examples.substrate.felix/graal_resource_config.json b/atomos.examples/atomos.examples.substrate.felix/graal_resource_config.json
deleted file mode 100644
index f0b7864..0000000
--- a/atomos.examples/atomos.examples.substrate.felix/graal_resource_config.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-  "resources": [
-    {"pattern": "templates/.*$"},
-    {"pattern": "res/.*$"},
-    {"pattern": "META-INF/services/.*$"},
-    {"pattern": ".*.properties$"}
-  ]
-}
diff --git a/atomos.examples/atomos.examples.substrate.felix/pom.xml b/atomos.examples/atomos.examples.substrate.felix/pom.xml
deleted file mode 100644
index e8ebe71..0000000
--- a/atomos.examples/atomos.examples.substrate.felix/pom.xml
+++ /dev/null
@@ -1,183 +0,0 @@
-<?xml version="1.0"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://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.substrate.felix</artifactId>
-    <name>atomos.examples.substrate.felix</name>
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <java.version>1.8</java.version>
-        <maven.compiler.release combine.self="override"></maven.compiler.release>
-        <maven.compiler.source>${java.version}</maven.compiler.source>
-        <maven.compiler.target>${java.version}</maven.compiler.target>
-    </properties>
-
-    <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>
-    <dependencies>
-        <!-- <dependency> <groupId>org.eclipse.platform</groupId> <artifactId>org.eclipse.osgi</artifactId> <exclusions> <exclusion> <groupId>*</groupId> <artifactId>*</artifactId> </exclusion> </exclusions> </dependency> -->
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.framework.connect</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.atomos.runtime</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix.atomos.tests</groupId>
-            <artifactId>org.apache.felix.atomos.tests.testbundles.service.contract</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix.atomos.tests</groupId>
-            <artifactId>org.apache.felix.atomos.tests.testbundles.service.impl</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix.atomos.tests</groupId>
-            <artifactId>org.apache.felix.atomos.tests.testbundles.service.impl.activator</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix.atomos.tests</groupId>
-            <artifactId>org.apache.felix.atomos.tests.testbundles.service.user</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.atomos.substrate.config</artifactId>
-            <version>0.0.1-SNAPSHOT</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>*</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.felix</groupId>
-            <artifactId>org.apache.felix.log</artifactId>
-            <scope>compile</scope>
-        </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>
-    </dependencies>
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <configuration>
-                    <source>${maven.compiler.source}</source>
-                    <target>${maven.compiler.target}</target>
-                    <showWarnings>true</showWarnings>
-                    <showDeprecation>true</showDeprecation>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-dependency-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <id>copy-dependencies</id>
-                        <phase>generate-resources</phase>
-                        <goals>
-                            <goal>copy-dependencies</goal>
-                        </goals>
-                        <configuration>
-                            <outputDirectory>${project.build.directory}/atomos_lib</outputDirectory>
-                            <overWriteReleases>false</overWriteReleases>
-                            <overWriteSnapshots>false</overWriteSnapshots>
-                            <overWriteIfNewer>true</overWriteIfNewer>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.graalvm.nativeimage</groupId>
-                <artifactId>native-image-maven-plugin</artifactId>
-                <version>20.2.0</version>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>native-image</goal>
-                        </goals>
-                        <phase>package</phase>
-                    </execution>
-                </executions>
-                <configuration>
-                    <imageName>atomos</imageName>
-                    <mainClass>org.apache.felix.atomos.launch.AtomosLauncher</mainClass>
-                    <buildArgs>
-                        --no-server
-                        --allow-incomplete-classpath
-                        --no-fallback
-                        --initialize-at-build-time=org.eclipse.jetty.util.TypeUtil,org.eclipse.jetty.http.HttpTokens,org.eclipse.jetty.util.log.Log,org.eclipse.jetty.util.log.StdErrLog,org.eclipse.jetty.util.Uptime,org.eclipse.jetty.server.HttpOutput,org.apache.felix.atomos.runtime,org.apache.felix.atomos.launch,org.apache.felix.atomos.impl,javax.servlet,org.apache.felix.framework.util.Util,org.apache.felix.framework.util.SecureAction,org.apache.felix.framework.BundleWiringImpl,org.apach [...]
-                        -H:ReflectionConfigurationFiles=${project.basedir}/graal_class_config.json
-                        -H:ResourceConfigurationFiles=${project.basedir}/graal_resource_config.json
-                        -H:DynamicProxyConfigurationFiles=${project.basedir}/graal_proxy_config.json
-                        -H:+ReportUnsupportedElementsAtRuntime
-                        -H:+ReportExceptionStackTraces
-                        -H:+TraceClassInitialization
-                        -H:+PrintClassInitialization
-                    </buildArgs>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-</project>
diff --git a/atomos.examples/atomos.examples.substrate.equinox/README.md b/atomos.examples/atomos.examples.substrate.lib/README.md
similarity index 100%
rename from atomos.examples/atomos.examples.substrate.equinox/README.md
rename to atomos.examples/atomos.examples.substrate.lib/README.md
diff --git a/atomos.examples/atomos.examples.substrate.equinox/graal_class_config.json b/atomos.examples/atomos.examples.substrate.lib/graal_class_config.json
similarity index 95%
rename from atomos.examples/atomos.examples.substrate.equinox/graal_class_config.json
rename to atomos.examples/atomos.examples.substrate.lib/graal_class_config.json
index d5ad74a..ec0747a 100644
--- a/atomos.examples/atomos.examples.substrate.equinox/graal_class_config.json
+++ b/atomos.examples/atomos.examples.substrate.lib/graal_class_config.json
@@ -193,5 +193,14 @@
     "name" : "org.apache.felix.webconsole.internal.compendium.LogServlet",
     "allPublicConstructors" : true,
     "allPublicMethods" : true
+  },
+  {
+    "name" : "org.apache.felix.log.Activator",
+    "allPublicConstructors" : true,
+    "allPublicMethods" : true
+  },
+  {
+     "name":"java.lang.Boolean",
+     "methods":[{"name":"<init>","parameterTypes":["java.lang.String"] }]
   }
 ]
diff --git a/atomos.examples/atomos.examples.substrate.felix/graal_proxy_config.json b/atomos.examples/atomos.examples.substrate.lib/graal_proxy_config.json
similarity index 100%
rename from atomos.examples/atomos.examples.substrate.felix/graal_proxy_config.json
rename to atomos.examples/atomos.examples.substrate.lib/graal_proxy_config.json
diff --git a/atomos.examples/atomos.examples.substrate.equinox/graal_resource_config.json b/atomos.examples/atomos.examples.substrate.lib/graal_resource_config.json
similarity index 100%
rename from atomos.examples/atomos.examples.substrate.equinox/graal_resource_config.json
rename to atomos.examples/atomos.examples.substrate.lib/graal_resource_config.json
diff --git a/atomos.examples/atomos.examples.substrate.equinox/pom.xml b/atomos.examples/atomos.examples.substrate.lib/pom.xml
similarity index 84%
rename from atomos.examples/atomos.examples.substrate.equinox/pom.xml
rename to atomos.examples/atomos.examples.substrate.lib/pom.xml
index 81df360..975d3ed 100644
--- a/atomos.examples/atomos.examples.substrate.equinox/pom.xml
+++ b/atomos.examples/atomos.examples.substrate.lib/pom.xml
@@ -6,8 +6,8 @@
         <artifactId>org.apache.felix.atomos.examples</artifactId>
         <version>0.0.1-SNAPSHOT</version>
     </parent>
-    <artifactId>org.apache.felix.atomos.examples.substrate.equinox</artifactId>
-    <name>atomos.examples.substrate.equinox</name>
+    <artifactId>org.apache.felix.atomos.examples.substrate.lib</artifactId>
+    <name>atomos.examples.substrate.lib</name>
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <java.version>1.8</java.version>
@@ -26,12 +26,40 @@
             </snapshots>
         </repository>
     </repositories>
+    <profiles>
+        <profile>
+            <id>equinox</id>
+            <dependencies>
+                <dependency>
+                    <groupId>org.apache.felix.atomos.osgi.frameworks.equinox</groupId>
+                    <artifactId>atomos.osgi.framework</artifactId>
+                    <version>${atomos.version}</version>
+                </dependency>
+            </dependencies>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+            </activation>
+        </profile>
+        <profile>
+            <id>felix</id>
+            <properties>
+                <buildWithFelix>true</buildWithFelix>
+            </properties>
+            <dependencies>
+                <dependency>
+                    <groupId>org.apache.felix.atomos.osgi.frameworks.felix</groupId>
+                    <artifactId>atomos.osgi.framework</artifactId>
+                    <version>${atomos.version}</version>
+                </dependency>
+                <dependency>
+                    <groupId>org.apache.felix</groupId>
+                    <artifactId>org.apache.felix.log</artifactId>
+                </dependency>
+            </dependencies>
+        </profile>
+    </profiles>
     <dependencies>
         <dependency>
-            <groupId>org.eclipse.platform</groupId>
-            <artifactId>org.eclipse.osgi</artifactId>
-        </dependency>
-        <dependency>
             <groupId>org.apache.felix</groupId>
             <artifactId>org.apache.felix.atomos.runtime</artifactId>
             <version>${atomos.version}</version>
diff --git a/atomos.examples/pom.xml b/atomos.examples/pom.xml
index 03af749..ac64b0c 100644
--- a/atomos.examples/pom.xml
+++ b/atomos.examples/pom.xml
@@ -26,8 +26,7 @@
                 <module>atomos.examples.jaxrs</module>
                 <module>atomos.examples.jlink</module>
                 <module>atomos.examples.springloader</module>
-                <module>atomos.examples.substrate.equinox</module>
-                <module>atomos.examples.substrate.felix</module>
+                <module>atomos.examples.substrate.lib</module>
                 <module>atomos.examples.substrate.maven</module>
             </modules>
         </profile>