diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..c47a946
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,28 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ permissions:
+ contents: read
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Set up JDK 11
+ uses: actions/setup-java@v4
+ with:
+ java-version: '11'
+ distribution: 'temurin'
+
+ - name: Build with Gradle
+ run: ./gradlew build -x testOSGi
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f0f3496
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+.gradle/
+build/
+generated/
+bin/
+bin_test/
diff --git a/bndtools.runtime.applaunch.eclipse3.test/.classpath b/bndtools.runtime.applaunch.eclipse3.test/.classpath
index 65687e7..eecb56c 100644
--- a/bndtools.runtime.applaunch.eclipse3.test/.classpath
+++ b/bndtools.runtime.applaunch.eclipse3.test/.classpath
@@ -1,7 +1,7 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/bndtools.runtime.applaunch.eclipse3.test/.settings/org.eclipse.jdt.core.prefs b/bndtools.runtime.applaunch.eclipse3.test/.settings/org.eclipse.jdt.core.prefs
index 54e493c..bb35fa0 100644
--- a/bndtools.runtime.applaunch.eclipse3.test/.settings/org.eclipse.jdt.core.prefs
+++ b/bndtools.runtime.applaunch.eclipse3.test/.settings/org.eclipse.jdt.core.prefs
@@ -1,11 +1,11 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/bndtools.runtime.applaunch.eclipse3.test/bnd.bnd b/bndtools.runtime.applaunch.eclipse3.test/bnd.bnd
index 4244893..e22e031 100644
--- a/bndtools.runtime.applaunch.eclipse3.test/bnd.bnd
+++ b/bndtools.runtime.applaunch.eclipse3.test/bnd.bnd
@@ -1,4 +1,3 @@
-Bundle-Version: 0.1.0.${tstamp}
Private-Package: \
bndtools.runtime.applaunch.eclipse3.test
Test-Cases: \
diff --git a/bndtools.runtime.applaunch.eclipse3.test/eclipse_3.8.2_testCommandLineArguments.bndrun b/bndtools.runtime.applaunch.eclipse3.test/eclipse_3.8.2_testCommandLineArguments.bndrun
index f0d3b16..3480ce3 100644
--- a/bndtools.runtime.applaunch.eclipse3.test/eclipse_3.8.2_testCommandLineArguments.bndrun
+++ b/bndtools.runtime.applaunch.eclipse3.test/eclipse_3.8.2_testCommandLineArguments.bndrun
@@ -1,6 +1,7 @@
--runee: JavaSE-1.6
+-runee: JavaSE-1.8
+-runfw: org.eclipse.osgi;version='[3.8,4)'
--runfw: org.eclipse.osgi;version='[3.8.2.v20130124-134944,3.8.2.v20130124-134944]'
+-runblacklist: bnd.identity;id='biz.aQute.launcher';version='[7.0.0,8)'
-runsystempackages: \
sun.reflect
@@ -8,23 +9,34 @@
-runvm: -ea\n\
-Dosgi.console
--include: \
- ${workspace}/cnf/lib/eclipse_3.8.x.lib,\
- ${workspace}/cnf/lib/develop.lib
-
--runbundles: \
- bndtools.runtime.applaunch.eclipse3;version=latest,\
- bndtools.runtime.applaunch.eclipse3.test;version=latest,\
- ${eclipse.core.runtime.bundles},\
- \
- ${gogo.bundles},\
- org.eclipse.equinox.console,\
- \
- example.equinox.headless;version='[0.1.0,0.1.1)'
-
-runproperties: \
launch.keep=false,\
launch.storage.dir=${project}/rt/cfg,\
osgi.instance.area=${project}/rt/data
--runprogramargs: -application example.equinox.headless.application
\ No newline at end of file
+-runprogramargs: -application example.equinox.headless.application
+
+-runrequires: \
+ ${eclipse.core.runtime.bundles},\
+ ${gogo.bundles},\
+ bnd.identity;id='example.equinox.headless',\
+ bnd.identity;id='bndtools.runtime.applaunch.eclipse3',\
+ bnd.identity;id='bndtools.runtime.applaunch.eclipse3.test'
+
+-runbundles: \
+ bndtools.runtime.applaunch.eclipse3;version='[0.2.0,0.2.1)',\
+ bndtools.runtime.applaunch.eclipse3.test;version=snapshot,\
+ example.equinox.headless;version='[0.1.0,0.1.1)',\
+ org.apache.felix.gogo.command;version='[0.8.0,0.8.1)',\
+ org.apache.felix.gogo.runtime;version='[0.8.0,0.8.1)',\
+ org.apache.felix.gogo.shell;version='[0.8.0,0.8.1)',\
+ org.eclipse.core.contenttype;version='[3.7.200,3.7.201)',\
+ org.eclipse.core.jobs;version='[3.10.200,3.10.201)',\
+ org.eclipse.core.runtime;version='[3.8.0,3.8.1)',\
+ org.eclipse.equinox.app;version='[1.4.0,1.4.1)',\
+ org.eclipse.equinox.common;version='[3.10.200,3.10.201)',\
+ org.eclipse.equinox.preferences;version='[3.7.200,3.7.201)',\
+ org.eclipse.equinox.registry;version='[3.8.200,3.8.201)',\
+ org.eclipse.osgi.services;version='[3.3.100,3.3.101)',\
+ org.hamcrest.core;version='[1.3.0,1.3.1)',\
+ org.junit;version='[4.12.0,4.12.1)'
\ No newline at end of file
diff --git a/bndtools.runtime.applaunch.eclipse3.test/src/bndtools/runtime/applaunch/eclipse3/test/ExampleTest.java b/bndtools.runtime.applaunch.eclipse3.test/src/bndtools/runtime/applaunch/eclipse3/test/ExampleTest.java
index e83892a..63698ae 100644
--- a/bndtools.runtime.applaunch.eclipse3.test/src/bndtools/runtime/applaunch/eclipse3/test/ExampleTest.java
+++ b/bndtools.runtime.applaunch.eclipse3.test/src/bndtools/runtime/applaunch/eclipse3/test/ExampleTest.java
@@ -21,11 +21,11 @@ public void testVMarguments() throws Exception {
public void testArgumentsService() throws Exception {
assertNotNull(context);
- ServiceReference srv = context
+ ServiceReference> srv = context
.getServiceReference(IApplicationContext.class.getName());
assertNotNull(srv);
IApplicationContext iac = (IApplicationContext) context.getService(srv);
- Map arguments = iac.getArguments();
+ Map, ?> arguments = iac.getArguments();
assertEquals("example.equinox.headless.application",
arguments.get("eclipse.application"));
}
diff --git a/bndtools.runtime.applaunch.eclipse3/.classpath b/bndtools.runtime.applaunch.eclipse3/.classpath
index f752d74..eecb56c 100644
--- a/bndtools.runtime.applaunch.eclipse3/.classpath
+++ b/bndtools.runtime.applaunch.eclipse3/.classpath
@@ -1,7 +1,7 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/bndtools.runtime.applaunch.eclipse3/.settings/org.eclipse.jdt.core.prefs b/bndtools.runtime.applaunch.eclipse3/.settings/org.eclipse.jdt.core.prefs
index 7535bda..a1d5d37 100644
--- a/bndtools.runtime.applaunch.eclipse3/.settings/org.eclipse.jdt.core.prefs
+++ b/bndtools.runtime.applaunch.eclipse3/.settings/org.eclipse.jdt.core.prefs
@@ -1,12 +1,12 @@
#Thu Apr 29 10:26:03 BST 2010
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/bndtools.runtime.applaunch.eclipse3/bnd.bnd b/bndtools.runtime.applaunch.eclipse3/bnd.bnd
index 5d5db0d..396ae60 100644
--- a/bndtools.runtime.applaunch.eclipse3/bnd.bnd
+++ b/bndtools.runtime.applaunch.eclipse3/bnd.bnd
@@ -1,9 +1,8 @@
-buildpath: org.eclipse.osgi;version="[3.7,3.9)"
Private-Package: bndtools.runtime.applaunch.eclipse3
-
+
Bundle-Activator: bndtools.runtime.applaunch.eclipse3.Activator
-Bundle-Version: 0.2.0.${tstamp;yyyyMMdd-HHmm}
Bundle-License: http://www.opensource.org/licenses/eclipse-1.0.php
Include-Resource: OSGI-OPT/license.html=epl-v10.html
Require-Bundle: org.eclipse.osgi;bundle-version="[3.7,3.9)"
\ No newline at end of file
diff --git a/bndtools.runtime.applaunch.eclipse3/build.xml b/bndtools.runtime.applaunch.eclipse3/build.xml
deleted file mode 100644
index 08009d1..0000000
--- a/bndtools.runtime.applaunch.eclipse3/build.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
diff --git a/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2.bndrun b/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2.bndrun
new file mode 100644
index 0000000..efb2e02
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2.bndrun
@@ -0,0 +1,24 @@
+-runee: JavaSE-1.8
+
+-runfw: org.eclipse.osgi;version='[3.8,4)'
+-runsystempackages: \
+ sun.reflect
+-runvm: -ea\n\
+ -DvmArg1
+
+-runrequires: \
+ ${eclipse.core.runtime.bundles},\
+ ${gogo.bundles},\
+ bnd.identity;id='example.equinox.headless',\
+ bnd.identity;id='bndtools.runtime.applaunch.eclipse3'
+
+-runproperties: \
+ launch.keep=false,\
+ launch.storage.dir=${project}/rt/cfg,\
+ osgi.instance.area=${project}/rt/data
+
+-runprogramargs: -application example.equinox.headless.application
+
+-runblacklist: bnd.identity;id='biz.aQute.launcher';version='[7.0.0,8)'
+
+-runbundles: \
diff --git a/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2_CommandLineArguments.bndrun b/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2_CommandLineArguments.bndrun
deleted file mode 100644
index 33448b3..0000000
--- a/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2_CommandLineArguments.bndrun
+++ /dev/null
@@ -1,24 +0,0 @@
--runee: JavaSE-1.6
-
--runfw: org.eclipse.osgi;version='[3.8.2.v20130124-134944,3.8.2.v20130124-134944]'
--runsystempackages: \
- sun.reflect
--runvm: -ea\n\
- -DvmArg1
-
--include: \
- ${workspace}/cnf/lib/eclipse_3.8.x.lib,\
- ${workspace}/cnf/lib/develop.lib
-
--runbundles: \
- bndtools.runtime.applaunch.eclipse3;version=latest,\
- ${eclipse.core.runtime.bundles},\
- \
- example.equinox.headless;version='[0.1.0,0.1.1)'
-
--runproperties: \
- launch.keep=false,\
- launch.storage.dir=${project}/rt/cfg,\
- osgi.instance.area=${project}/rt/data
-
--runprogramargs: -application example.equinox.headless.application
\ No newline at end of file
diff --git a/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2_RunProperties.bndrun b/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2_RunProperties.bndrun
deleted file mode 100644
index 7d63b77..0000000
--- a/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2_RunProperties.bndrun
+++ /dev/null
@@ -1,24 +0,0 @@
--runee: JavaSE-1.6
-
--runfw: org.eclipse.osgi;version='[3.8.2.v20130124-134944,3.8.2.v20130124-134944]'
-
--runsystempackages: \
- sun.reflect
-
--include: \
- ${workspace}/cnf/lib/eclipse_3.8.x.lib,\
- ${workspace}/cnf/lib/develop.lib
-
-
--runbundles: \
- bndtools.runtime.applaunch.eclipse3;version=latest,\
- ${gogo.bundles},\
- \
- example.equinox.headless;version='[0.1.0,0.1.1)',\
-
--runproperties: \
- launch.keep=false,\
- launch.storage.dir=${project}/rt/cfg,\
- osgi.instance.area=${project}/rt/data,\
- \
- eclipse.application=example.equinox.headless.application
diff --git a/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2_SystemProperty.bndrun b/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2_SystemProperty.bndrun
deleted file mode 100644
index f578bbe..0000000
--- a/bndtools.runtime.applaunch.eclipse3/eclipse_3.8.2_SystemProperty.bndrun
+++ /dev/null
@@ -1,24 +0,0 @@
--runee: JavaSE-1.6
-
--runfw: org.eclipse.osgi;version='[3.8.2.v20130124-134944,3.8.2.v20130124-134944]'
-
--runsystempackages: \
- sun.reflect
-
--include: \
- ${workspace}/cnf/lib/eclipse_3.8.x.lib,\
- ${workspace}/cnf/lib/develop.lib
-
-
--runbundles: \
- bndtools.runtime.applaunch.eclipse3;version=latest,\
- ${eclipse.core.runtime.bundles},\
- \
- example.equinox.headless;version='[0.1.0,0.1.1)'
-
--runproperties: \
- launch.keep=false,\
- launch.storage.dir=${project}/rt/cfg,\
- osgi.instance.area=${project}/rt/data
-
--runvm: -Declipse.application=example.equinox.headless.application -Dbndtools.runtime.eclipse.applaunch.keepAlive=true
diff --git a/bndtools.runtime.applaunch.eclipse3/src/bndtools/runtime/applaunch/eclipse3/Activator.java b/bndtools.runtime.applaunch.eclipse3/src/bndtools/runtime/applaunch/eclipse3/Activator.java
index b5797cc..10c8bef 100644
--- a/bndtools.runtime.applaunch.eclipse3/src/bndtools/runtime/applaunch/eclipse3/Activator.java
+++ b/bndtools.runtime.applaunch.eclipse3/src/bndtools/runtime/applaunch/eclipse3/Activator.java
@@ -146,7 +146,7 @@ public void removedService(final ServiceReference reference, final Object servic
}
private String getBsn(final Bundle bundle) {
- String bsn = bundle.getHeaders().get(Constants.BUNDLE_SYMBOLICNAME);
+ String bsn = (String) bundle.getHeaders().get(Constants.BUNDLE_SYMBOLICNAME);
int semiColonIndex = bsn.indexOf(';');
if (semiColonIndex > -1) {
bsn = bsn.substring(0, semiColonIndex);
@@ -157,7 +157,7 @@ private String getBsn(final Bundle bundle) {
private void prepareEnvService(final BundleContext context) {
String[] parameters = null;
try {
- ServiceReference>[] serviceReferences = context.getServiceReferences("aQute.launcher.Launcher",
+ ServiceReference[] serviceReferences = context.getServiceReferences("aQute.launcher.Launcher",
"(launcher.arguments=*)");
if ( (serviceReferences != null) && (serviceReferences.length > 0)) {
Object property = serviceReferences[0].getProperty("launcher.arguments");
diff --git a/bndtools.runtime.applaunch.eclipse4.test/.classpath b/bndtools.runtime.applaunch.eclipse4.test/.classpath
new file mode 100644
index 0000000..eecb56c
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse4.test/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/bndtools.runtime.applaunch.eclipse4.test/.gitignore b/bndtools.runtime.applaunch.eclipse4.test/.gitignore
new file mode 100644
index 0000000..57b3411
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse4.test/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/generated/
diff --git a/bndtools.runtime.applaunch.eclipse4.test/.project b/bndtools.runtime.applaunch.eclipse4.test/.project
new file mode 100644
index 0000000..a69caa3
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse4.test/.project
@@ -0,0 +1,23 @@
+
+
+ bndtools.runtime.applaunch.eclipse4.test
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ bndtools.core.bndbuilder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ bndtools.core.bndnature
+
+
diff --git a/bndtools.runtime.applaunch.eclipse4.test/.settings/org.eclipse.jdt.core.prefs b/bndtools.runtime.applaunch.eclipse4.test/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..3a21537
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse4.test/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/bndtools.runtime.applaunch.eclipse4.test/bnd.bnd b/bndtools.runtime.applaunch.eclipse4.test/bnd.bnd
new file mode 100644
index 0000000..0e0967d
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse4.test/bnd.bnd
@@ -0,0 +1,9 @@
+Private-Package: \
+ bndtools.runtime.applaunch.eclipse4.test
+Test-Cases: \
+ ${classes;CONCRETE;EXTENDS;junit.framework.TestCase}
+
+-buildpath: \
+ org.eclipse.osgi;version='[3.10,4)',\
+ org.eclipse.equinox.app;version='[1.3,2)',\
+ ${junit}
diff --git a/bndtools.runtime.applaunch.eclipse4.test/eclipse_4.4.1_testCommandLineArguments.bndrun b/bndtools.runtime.applaunch.eclipse4.test/eclipse_4.4.1_testCommandLineArguments.bndrun
new file mode 100644
index 0000000..9c48f75
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse4.test/eclipse_4.4.1_testCommandLineArguments.bndrun
@@ -0,0 +1,32 @@
+-runee: JavaSE-1.8
+
+-runfw: org.eclipse.osgi;version='[3.10.0,4)'
+
+-runsystempackages: \
+ sun.reflect
+
+-runvm: -ea\n\
+ -DtestVmArg1=eclipse4testvalue
+
+-runproperties: \
+ launch.keep=false,\
+ launch.storage.dir=${project}/rt/cfg,\
+ osgi.instance.area=${project}/rt/data
+
+-runprogramargs: \
+ -application example.equinox.headless.application \
+ -os linux \
+ -ws gtk \
+ -arch x86_64 \
+ -nl en_US \
+ -clean \
+ -consoleLog
+
+-runrequires: bnd.identity;id='bndtools.runtime.applaunch.eclipse4.test'
+-runbundles: \
+ bndtools.runtime.applaunch.eclipse4.test;version=snapshot,\
+ org.eclipse.equinox.app;version='[1.4.0,1.4.1)',\
+ org.eclipse.equinox.common;version='[3.10.200,3.10.201)',\
+ org.eclipse.equinox.registry;version='[3.8.200,3.8.201)',\
+ org.hamcrest.core;version='[1.3.0,1.3.1)',\
+ org.junit;version='[4.12.0,4.12.1)'
\ No newline at end of file
diff --git a/bndtools.runtime.applaunch.eclipse4.test/eclipse_4.4.1_testSystemProperty.bndrun b/bndtools.runtime.applaunch.eclipse4.test/eclipse_4.4.1_testSystemProperty.bndrun
new file mode 100644
index 0000000..289ff97
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse4.test/eclipse_4.4.1_testSystemProperty.bndrun
@@ -0,0 +1,35 @@
+-runee: JavaSE-1.8
+
+-runfw: org.eclipse.osgi;version='[3.10.0,4)'
+
+-runsystempackages: \
+ sun.reflect
+
+-runvm: -ea\n\
+ -DtestVmArg1=eclipse4testvalue
+
+-runbundles: \
+ example.equinox.headless;version='[0.1.0,0.1.1)',\
+ bndtools.runtime.applaunch.eclipse4.test;version=snapshot,\
+ org.eclipse.equinox.app;version='[1.4.0,1.4.1)',\
+ org.eclipse.equinox.common;version='[3.10.200,3.10.201)',\
+ org.eclipse.equinox.registry;version='[3.8.200,3.8.201)',\
+ org.hamcrest.core;version='[1.3.0,1.3.1)',\
+ org.junit;version='[4.12.0,4.12.1)'
+
+-runproperties: \
+ launch.keep=false,\
+ launch.storage.dir=${project}/rt/cfg,\
+ osgi.instance.area=${project}/rt/data
+
+-runprogramargs: \
+ -application example.equinox.headless.application \
+ -os linux \
+ -ws gtk \
+ -arch x86_64 \
+ -nl en_US \
+ -clean \
+ -consoleLog
+-runrequires: \
+ bnd.identity;id='bndtools.runtime.applaunch.eclipse4.test',\
+ bnd.identity;id='example.equinox.headless'
\ No newline at end of file
diff --git a/bndtools.runtime.applaunch.eclipse4/test/.gitignore b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.core.runtime/.manager/.fileTableLock
similarity index 100%
rename from bndtools.runtime.applaunch.eclipse4/test/.gitignore
rename to bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.core.runtime/.manager/.fileTableLock
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.core.runtime/.manager/.tmp14003956336701808690.instance b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.core.runtime/.manager/.tmp14003956336701808690.instance
new file mode 100644
index 0000000..e69de29
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.equinox.app/.manager/.fileTableLock b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.equinox.app/.manager/.fileTableLock
new file mode 100644
index 0000000..e69de29
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.equinox.app/.manager/.tmp15100584521190446573.instance b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.equinox.app/.manager/.tmp15100584521190446573.instance
new file mode 100644
index 0000000..e69de29
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/.manager/.fileTable.1 b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/.manager/.fileTable.1
new file mode 100644
index 0000000..75d8916
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/.manager/.fileTable.1
@@ -0,0 +1,4 @@
+#safe table
+#Fri Mar 13 11:56:25 CET 2026
+framework.info=0
+.crc6f07dd56.v1
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/.manager/.fileTable.2 b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/.manager/.fileTable.2
new file mode 100644
index 0000000..6f59c4e
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/.manager/.fileTable.2
@@ -0,0 +1,4 @@
+#safe table
+#Fri Mar 13 11:56:25 CET 2026
+framework.info=1
+.crc6ec5b761.v1
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/.manager/.fileTableLock b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/.manager/.fileTableLock
new file mode 100644
index 0000000..e69de29
diff --git a/cnf/eclipseutils/example.equinox.headless/example.equinox.headless-0.1.0.jar b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/1/0/bundleFile
similarity index 100%
rename from cnf/eclipseutils/example.equinox.headless/example.equinox.headless-0.1.0.jar
rename to bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/1/0/bundleFile
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/2/0/bundleFile b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/2/0/bundleFile
new file mode 100644
index 0000000..e4bd47c
Binary files /dev/null and b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/2/0/bundleFile differ
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/3/0/bundleFile b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/3/0/bundleFile
new file mode 100644
index 0000000..1a725b2
Binary files /dev/null and b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/3/0/bundleFile differ
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/4/0/bundleFile b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/4/0/bundleFile
new file mode 100644
index 0000000..debce2c
Binary files /dev/null and b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/4/0/bundleFile differ
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/5/0/bundleFile b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/5/0/bundleFile
new file mode 100644
index 0000000..0ea7c46
Binary files /dev/null and b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/5/0/bundleFile differ
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/6/0/bundleFile b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/6/0/bundleFile
new file mode 100644
index 0000000..659fc37
Binary files /dev/null and b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/6/0/bundleFile differ
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/7/0/.cp/junit.jar b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/7/0/.cp/junit.jar
new file mode 100644
index 0000000..3a7fc26
Binary files /dev/null and b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/7/0/.cp/junit.jar differ
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/7/0/bundleFile b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/7/0/bundleFile
new file mode 100644
index 0000000..17cb234
Binary files /dev/null and b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/7/0/bundleFile differ
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/8/0/bundleFile b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/8/0/bundleFile
new file mode 100644
index 0000000..63b5f28
Binary files /dev/null and b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/8/0/bundleFile differ
diff --git a/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/framework.info.1 b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/framework.info.1
new file mode 100644
index 0000000..7035b28
Binary files /dev/null and b/bndtools.runtime.applaunch.eclipse4.test/rt/cfg/org.eclipse.osgi/framework.info.1 differ
diff --git a/bndtools.runtime.applaunch.eclipse4.test/src/bndtools/runtime/applaunch/eclipse4/test/LauncherPropertiesTest.java b/bndtools.runtime.applaunch.eclipse4.test/src/bndtools/runtime/applaunch/eclipse4/test/LauncherPropertiesTest.java
new file mode 100644
index 0000000..f4448fd
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse4.test/src/bndtools/runtime/applaunch/eclipse4/test/LauncherPropertiesTest.java
@@ -0,0 +1,213 @@
+package bndtools.runtime.applaunch.eclipse4.test;
+
+import java.util.Map;
+
+import junit.framework.TestCase;
+
+import org.eclipse.equinox.app.IApplicationContext;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+
+/**
+ * OSGi integration tests verifying that the bndtools.runtime.applaunch.eclipse4
+ * plugin correctly processes all command-line arguments and VM arguments, and
+ * makes them available as properties and services within the Eclipse OSGi
+ * runtime.
+ *
+ *
+ * Each test method verifies one specific aspect of the launcher plugin's
+ * behaviour. The required setup for each test (VM args, program args, run
+ * properties) is documented in the test method's Javadoc and configured via the
+ * corresponding .bndrun launch files.
+ *
+ *
+ *
+ * Required {@code .bndrun} configuration for all tests in this class:
+ *
+ * - {@code -runvm: -DtestVmArg1=eclipse4testvalue}
+ * - {@code -runprogramargs: -application example.equinox.headless.application
+ * -os linux -ws gtk -arch x86_64 -nl en_US -clean -consoleLog}
+ *
+ *
+ */
+public class LauncherPropertiesTest extends TestCase {
+
+ private final BundleContext context = FrameworkUtil.getBundle(
+ this.getClass()).getBundleContext();
+
+ // -----------------------------------------------------------------------
+ // VM argument tests
+ // -----------------------------------------------------------------------
+
+ /**
+ * Verifies that JVM system properties set via {@code -runvm} in the
+ * {@code .bndrun} file are accessible through {@link System#getProperty}.
+ *
+ *
+ * Required {@code .bndrun} setup:
+ * {@code -runvm: -DtestVmArg1=eclipse4testvalue}
+ *
+ */
+ public void testVMArguments() throws Exception {
+ assertEquals("eclipse4testvalue", System.getProperty("testVmArg1"));
+ }
+
+ // -----------------------------------------------------------------------
+ // IApplicationContext service tests
+ // -----------------------------------------------------------------------
+
+ /**
+ * Verifies that the {@link IApplicationContext} OSGi service is registered
+ * and retrievable from the service registry after the Eclipse application
+ * launcher has initialised.
+ */
+ public void testApplicationContextServiceAvailable() throws Exception {
+ assertNotNull("BundleContext must not be null", context);
+ ServiceReference> srv = context
+ .getServiceReference(IApplicationContext.class.getName());
+ assertNotNull("IApplicationContext service must be registered in the "
+ + "OSGi service registry", srv);
+ }
+
+ /**
+ * Verifies that the {@code eclipse.application} entry in the
+ * {@link IApplicationContext} arguments map matches the application
+ * identifier specified via {@code -application} in
+ * {@code -runprogramargs}.
+ *
+ *
+ * Required {@code .bndrun} setup:
+ * {@code -runprogramargs: -application example.equinox.headless.application}
+ *
+ */
+ @SuppressWarnings("rawtypes")
+ public void testEclipseApplicationArgument() throws Exception {
+ ServiceReference srv = context
+ .getServiceReference(IApplicationContext.class.getName());
+ assertNotNull(srv);
+ @SuppressWarnings("unchecked")
+ IApplicationContext iac = (IApplicationContext) context.getService(srv);
+ assertNotNull("IApplicationContext service object must not be null", iac);
+ Map arguments = iac.getArguments();
+ assertNotNull("IApplicationContext arguments map must not be null",
+ arguments);
+ assertEquals("example.equinox.headless.application",
+ arguments.get("eclipse.application"));
+ }
+
+ // -----------------------------------------------------------------------
+ // Command-line argument → OSGi property tests
+ // -----------------------------------------------------------------------
+
+ /**
+ * Verifies that the {@code -os} program argument is translated to the
+ * {@code osgi.os} framework property.
+ *
+ *
+ * Required {@code .bndrun} setup:
+ * {@code -runprogramargs: ... -os linux ...}
+ *
+ */
+ public void testOsArgument() throws Exception {
+ String osProperty = context.getProperty("osgi.os");
+ assertNotNull("osgi.os property must be set when -os argument is "
+ + "passed as a program argument", osProperty);
+ assertEquals("linux", osProperty);
+ }
+
+ /**
+ * Verifies that the {@code -ws} program argument is translated to the
+ * {@code osgi.ws} framework property.
+ *
+ *
+ * Required {@code .bndrun} setup:
+ * {@code -runprogramargs: ... -ws gtk ...}
+ *
+ */
+ public void testWsArgument() throws Exception {
+ String wsProperty = context.getProperty("osgi.ws");
+ assertNotNull("osgi.ws property must be set when -ws argument is "
+ + "passed as a program argument", wsProperty);
+ assertEquals("gtk", wsProperty);
+ }
+
+ /**
+ * Verifies that the {@code -arch} program argument is translated to the
+ * {@code osgi.arch} framework property.
+ *
+ *
+ * Required {@code .bndrun} setup:
+ * {@code -runprogramargs: ... -arch x86_64 ...}
+ *
+ */
+ public void testArchArgument() throws Exception {
+ String archProperty = context.getProperty("osgi.arch");
+ assertNotNull("osgi.arch property must be set when -arch argument is "
+ + "passed as a program argument", archProperty);
+ assertEquals("x86_64", archProperty);
+ }
+
+ /**
+ * Verifies that the {@code -nl} program argument is translated to the
+ * {@code osgi.nl} framework property.
+ *
+ *
+ * Required {@code .bndrun} setup:
+ * {@code -runprogramargs: ... -nl en_US ...}
+ *
+ */
+ public void testNlArgument() throws Exception {
+ String nlProperty = context.getProperty("osgi.nl");
+ assertNotNull("osgi.nl property must be set when -nl argument is "
+ + "passed as a program argument", nlProperty);
+ assertEquals("en_US", nlProperty);
+ }
+
+ /**
+ * Verifies that the {@code -clean} flag sets the {@code osgi.clean}
+ * framework property to {@code "true"}.
+ *
+ *
+ * Required {@code .bndrun} setup:
+ * {@code -runprogramargs: ... -clean ...}
+ *
+ */
+ public void testCleanArgument() throws Exception {
+ assertEquals("osgi.clean must be \"true\" when -clean flag is present",
+ "true", context.getProperty("osgi.clean"));
+ }
+
+ /**
+ * Verifies that the {@code -consoleLog} flag sets the
+ * {@code eclipse.consoleLog} framework property to {@code "true"}.
+ *
+ *
+ * Required {@code .bndrun} setup:
+ * {@code -runprogramargs: ... -consoleLog ...}
+ *
+ */
+ public void testConsoleLogArgument() throws Exception {
+ assertEquals("eclipse.consoleLog must be \"true\" when -consoleLog "
+ + "flag is present",
+ "true", context.getProperty("eclipse.consoleLog"));
+ }
+
+ // -----------------------------------------------------------------------
+ // Run-properties tests
+ // -----------------------------------------------------------------------
+
+ /**
+ * Verifies that OSGi framework properties set via {@code -runproperties}
+ * in the {@code .bndrun} file are accessible through
+ * {@link BundleContext#getProperty}.
+ *
+ *
+ * Required {@code .bndrun} setup:
+ * {@code -runproperties: launch.keep=false}
+ *
+ */
+ public void testRunProperties() throws Exception {
+ assertEquals("false", context.getProperty("launch.keep"));
+ }
+}
diff --git a/bndtools.runtime.applaunch.eclipse4/.classpath b/bndtools.runtime.applaunch.eclipse4/.classpath
index 6672ddc..eecb56c 100644
--- a/bndtools.runtime.applaunch.eclipse4/.classpath
+++ b/bndtools.runtime.applaunch.eclipse4/.classpath
@@ -1,8 +1,7 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/bndtools.runtime.applaunch.eclipse4/.settings/org.eclipse.jdt.core.prefs b/bndtools.runtime.applaunch.eclipse4/.settings/org.eclipse.jdt.core.prefs
index 060c5ee..bb35fa0 100644
--- a/bndtools.runtime.applaunch.eclipse4/.settings/org.eclipse.jdt.core.prefs
+++ b/bndtools.runtime.applaunch.eclipse4/.settings/org.eclipse.jdt.core.prefs
@@ -1,11 +1,11 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/bndtools.runtime.applaunch.eclipse4/bnd.bnd b/bndtools.runtime.applaunch.eclipse4/bnd.bnd
index 55a365e..c963bb9 100644
--- a/bndtools.runtime.applaunch.eclipse4/bnd.bnd
+++ b/bndtools.runtime.applaunch.eclipse4/bnd.bnd
@@ -3,7 +3,7 @@
Private-Package: bndtools.runtime.applaunch.eclipse4
Bundle-Activator: bndtools.runtime.applaunch.eclipse4.Activator
-Bundle-Version: 0.1.0.${tstamp;yyyyMMdd-HHmm}
+Bundle-Version: 0.1.0.${tstamp;yyyyMMdd-HHmmss}
Bundle-License: http://www.opensource.org/licenses/eclipse-1.0.php
Include-Resource: OSGI-OPT/license.html=epl-v10.html
Require-Bundle: org.eclipse.osgi;bundle-version="[3.10,4)"
diff --git a/bndtools.runtime.applaunch.eclipse4/eclipse_4.x.bndrun b/bndtools.runtime.applaunch.eclipse4/eclipse_4.x.bndrun
new file mode 100644
index 0000000..2119e30
--- /dev/null
+++ b/bndtools.runtime.applaunch.eclipse4/eclipse_4.x.bndrun
@@ -0,0 +1,36 @@
+-runee: JavaSE-1.8
+
+-runfw: org.eclipse.osgi;version='[3.13.200.v20181130-2106,3.13.200.v20181130-2106]'
+-runsystempackages: \
+ sun.reflect
+-runvm: -ea\n\
+ -DvmArg1
+
+-runproperties: \
+ launch.keep=false,\
+ launch.storage.dir=${project}/rt/cfg,\
+ osgi.instance.area=${project}/rt/data
+
+-runprogramargs: -application example.equinox.headless.application
+
+-runrequires: \
+ ${eclipse.core.runtime.bundles},\
+ ${gogo.bundles},\
+ bnd.identity;id='example.equinox.headless',\
+ bnd.identity;id='bndtools.runtime.applaunch.eclipse4'
+
+-runbundles: \
+ bndtools.runtime.applaunch.eclipse4;version=snapshot,\
+ example.equinox.headless;version='[0.1.0,0.1.1)',\
+ org.apache.felix.gogo.command;version='[1.0.2,1.0.3)',\
+ org.apache.felix.gogo.runtime;version='[1.1.0,1.1.1)',\
+ org.apache.felix.gogo.shell;version='[1.1.0,1.1.1)',\
+ org.eclipse.core.contenttype;version='[3.7.200,3.7.201)',\
+ org.eclipse.core.jobs;version='[3.10.200,3.10.201)',\
+ org.eclipse.core.runtime;version='[3.15.100,3.15.101)',\
+ org.eclipse.equinox.app;version='[1.4.0,1.4.1)',\
+ org.eclipse.equinox.common;version='[3.10.200,3.10.201)',\
+ org.eclipse.equinox.preferences;version='[3.7.200,3.7.201)',\
+ org.eclipse.equinox.registry;version='[3.8.200,3.8.201)',\
+ org.eclipse.osgi.services;version='[3.7.100,3.7.101)',\
+ org.eclipse.osgi.util;version='[3.5.100,3.5.101)'
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..9126595
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1 @@
+// Available to customize the build
diff --git a/cnf/build-template.xml b/cnf/build-template.xml
deleted file mode 100644
index 34ededa..0000000
--- a/cnf/build-template.xml
+++ /dev/null
@@ -1,260 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- verbose: ${verbose}
- project.name: ${project.name}
- Bundle-Version: ${Bundle-Version}
- src: ${src}
- bin: ${bin}
- testsrc: ${testsrc}
- testbin: ${testbin}
- project.output: ${project.output}
- project.sourcepath: ${project.sourcepath}
- project.allsourcepath: ${project.allsourcepath}
- project.buildpath: ${project.buildpath}
- project.testpath: ${project.testpath}
- project.dependson: ${project.dependson}
- project.bootclasspath: ${project.bootclasspath}
- javac: ${javac}
- javac.debug: ${javac.debug}
- javac.source: ${javac.source}
- javac.target: ${javac.target}
- p: ${p}
- btool.manifestVersion: ${btool.manifestVersion}
- btool.analyse: ${btool.analyse}
- btool.showmanifest: ${btool.showmanifest}
- btool.noversion: ${btool.noversion}
- btool.sources: ${btool.sources}
- btool.noextraheaders: ${btool.noextraheaders}
- jars.compile.order: ${jars.compile.order}
- bin.includes: ${bin.includes}
- base.modfied: ${base.modified} (${base.modified.readable})
- build: ${build}
- target: ${target}
- release.target: ${release.target}
- releaserepo: ${releaserepo}
- licensed repo: ${licensed-repo}
- repo: ${repo}
- use.bnd: ${use.bnd}
- nodeploy: ${nodeploy}
- -dependson: ${-dependson}
-
-
diff --git a/cnf/build.bnd b/cnf/build.bnd
index 7f9c790..0688358 100644
--- a/cnf/build.bnd
+++ b/cnf/build.bnd
@@ -2,51 +2,65 @@
## BND BUILD SETTINGS ##
########################
-
## Global defaults are loaded from the bnd library (as shown below), place your
## specific settings here. Additional settings are inherited from ext/*.bnd and
## they will be overridden by anything you specify in this file.
-## General Options
-#project.dependson: ${p-dependson;:}
-#project.bootclasspath: ${p-bootclasspath;:}
-#project.buildpath: ${p-buildpath;:}
-#project.sourcepath: ${p-sourcepath;:}
-#project.allsourcepath: ${p-allsourcepath;:}
-#project.output: ${p-output}
-#project.testpath: ${p-testpath;:}
-
-#-verbose: true
-#project: ${basedir}
-#src: src
-#bin: bin
-#testsrc: test
-#testbin: bin_test
-#target-dir: generated
-#target: ${project}/${target-dir}
-#build: ${workspace}/cnf
-#p: ${basename;${project}}
-#project.name: ${p}
-#plugin-dir: ${build}/plugins
-
## Java Compiler Options
-#java: java
-#javac: javac
-#javac.source: 1.5
-#javac.target: 1.5
-#javac.debug: on
+javac.source: 1.8
+javac.target: 1.8
+javac.debug: on
+
+Bundle-Version: 0.1.0.${tstamp;yyyyMMdd-HHmmss}
+
+## Git revision information in bundle manifests
+Git-Descriptor: ${system-allow-fail;git describe --dirty --always}
+Git-SHA: ${system-allow-fail;git rev-list -1 HEAD}
+
+-plugin.ecl3: aQute.bnd.repository.p2.provider.P2Repository;\
+ name ='Eclipse_3.8_R-3.8.2-201301310800';\
+ url ='https://archive.eclipse.org/eclipse/updates/3.8/R-3.8.2-201301310800/'
+
+-plugin.ecl4: aQute.bnd.repository.p2.provider.P2Repository;\
+ name ='Eclipse_4.10_R-4.10-201812060815';\
+ url ='https://archive.eclipse.org/eclipse/updates/4.10/R-4.10-201812060815/'
+
+# bundle macros
+
+gogo.bundles: \
+ bnd.identity;id='org.apache.felix.gogo.command',\
+ bnd.identity;id='org.apache.felix.gogo.runtime',\
+ bnd.identity;id='org.apache.felix.gogo.shell'
-## Bnd Options
-#-sources: true
-#-sourcepath: ${project}/src
+eclipse.core.runtime.bundles: \
+ bnd.identity;id='org.eclipse.core.contenttype',\
+ bnd.identity;id='org.eclipse.core.jobs',\
+ bnd.identity;id='org.eclipse.core.runtime',\
+ bnd.identity;id='org.eclipse.equinox.app',\
+ bnd.identity;id='org.eclipse.equinox.common',\
+ bnd.identity;id='org.eclipse.equinox.preferences',\
+ bnd.identity;id='org.eclipse.equinox.registry',\
+ bnd.identity;id='org.eclipse.osgi.services'
+eclipse.jface.bundles: \
+ org.eclipse.swt,\
+ org.eclipse.jface,\
+ org.eclipse.core.commands
-## Properties from ext/*.bnd can be referenced in order to extend them. For
-## example, to add one additional plugin to the list defined in
-## ext/repositories.bnd:
-# -plugin: ${ext.repositories.-plugin}, org.example.MyPlugin
+eclipse.swt.linux.gtk.x86_64.bundles: \
+ org.eclipse.swt.gtk.linux.x86_64
+eclipse.swt.win32.x86_64.bundles: \
+ org.eclipse.swt.win32.win32.x86_64
-## If you use git, you might want to uncomment the following lines:
-# Git-Descriptor: ${system-allow-fail;git describe --dirty --always}
-# Git-SHA: ${system-allow-fail;git rev-list -1 HEAD}
+eclipse.ui.bundles: \
+ ${eclipse.jface.bundles},\
+ org.eclipse.ui,\
+ org.eclipse.ui.workbench,\
+ org.eclipse.help,\
+ org.eclipse.core.expressions,\
+ com.ibm.icu,\
+ org.eclipse.jface.databinding,\
+ org.eclipse.core.databinding.observable,\
+ org.eclipse.core.databinding.property,\
+ org.eclipse.core.databinding
diff --git a/cnf/build.properties b/cnf/build.properties
deleted file mode 100644
index 1cedcd9..0000000
--- a/cnf/build.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-# This file is used to bootstrap the bnd ANT Task definition found in build-template.xml
-
-bnd.location=plugins/biz.aQute.bnd/biz.aQute.bnd-2.3.0.jar
diff --git a/cnf/build.xml b/cnf/build.xml
deleted file mode 100644
index 1dc62f9..0000000
--- a/cnf/build.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster%2Forg.eclipse.osgi/org.eclipse.osgi-3.7.2.jar b/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster%2Forg.eclipse.osgi/org.eclipse.osgi-3.7.2.jar
deleted file mode 100644
index 62ceff3..0000000
Binary files a/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster%2Forg.eclipse.osgi/org.eclipse.osgi-3.7.2.jar and /dev/null differ
diff --git a/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster%2Forg.eclipse.osgi/org.eclipse.osgi-3.7.2.jar.sha b/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster%2Forg.eclipse.osgi/org.eclipse.osgi-3.7.2.jar.sha
deleted file mode 100644
index 4372ea4..0000000
--- a/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster%2Forg.eclipse.osgi/org.eclipse.osgi-3.7.2.jar.sha
+++ /dev/null
@@ -1 +0,0 @@
-FFFABB3F6F8FEE1D1984A2926F84879EDBFB1EFCEA5EAC834CFDA904D93741CE
\ No newline at end of file
diff --git a/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster/index.xml.gz b/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster/index.xml.gz
deleted file mode 100644
index 7bb2058..0000000
Binary files a/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster/index.xml.gz and /dev/null differ
diff --git a/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster/index.xml.gz.sha b/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster/index.xml.gz.sha
deleted file mode 100644
index 7557a67..0000000
--- a/cnf/cache.bndhub/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster/index.xml.gz.sha
+++ /dev/null
@@ -1 +0,0 @@
-A8482767E46B09E3A4380376EBF78969C85390D4787CBFDDCB571799590E8D35
\ No newline at end of file
diff --git a/cnf/eclipseutils/bndtools.runtime.applaunch.eclipse3/bndtools.runtime.applaunch.eclipse3-0.2.0.jar b/cnf/eclipseutils/bndtools.runtime.applaunch.eclipse3/bndtools.runtime.applaunch.eclipse3-0.2.0.jar
deleted file mode 100644
index db723e7..0000000
Binary files a/cnf/eclipseutils/bndtools.runtime.applaunch.eclipse3/bndtools.runtime.applaunch.eclipse3-0.2.0.jar and /dev/null differ
diff --git a/cnf/eclipseutils/bndtools.runtime.applaunch.eclipse4/bndtools.runtime.applaunch.eclipse4-0.1.0.jar b/cnf/eclipseutils/bndtools.runtime.applaunch.eclipse4/bndtools.runtime.applaunch.eclipse4-0.1.0.jar
deleted file mode 100644
index 654ec62..0000000
Binary files a/cnf/eclipseutils/bndtools.runtime.applaunch.eclipse4/bndtools.runtime.applaunch.eclipse4-0.1.0.jar and /dev/null differ
diff --git a/cnf/eclipseutils/index.xml b/cnf/eclipseutils/index.xml
deleted file mode 100644
index 8d7242f..0000000
--- a/cnf/eclipseutils/index.xml
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/cnf/eclipseutils/index.xml.sha b/cnf/eclipseutils/index.xml.sha
deleted file mode 100644
index fb40f76..0000000
--- a/cnf/eclipseutils/index.xml.sha
+++ /dev/null
@@ -1 +0,0 @@
-ffb8c299c5eb66d8a874cac26d8ef2fa291ebc78c177edb88d59d8f3be6df104
\ No newline at end of file
diff --git a/cnf/ext/repositories.bnd b/cnf/ext/repositories.bnd
index c82feb9..e5e8c38 100644
--- a/cnf/ext/repositories.bnd
+++ b/cnf/ext/repositories.bnd
@@ -1,14 +1,5 @@
-plugin:\
- aQute.bnd.deployer.repository.LocalIndexedRepo; name=Release; local=${workspace}/cnf/releaserepo;pretty=true,\
- aQute.bnd.deployer.repository.LocalIndexedRepo; name=Local; local=${workspace}/cnf/localrepo;pretty=true,\
- aQute.lib.deployer.FileRepo; name=Build; location=${workspace}/cnf/buildrepo,\
- aQute.bnd.deployer.repository.LocalIndexedRepo; name=eclipseUtils; local=${workspace}/cnf/eclipseutils;pretty=true,\
- aQute.bnd.deployer.repository.FixedIndexedRepo; name=eclipsePlatform 3.8.2; locations=https://peterkir.github.io/obr/eclipse_3.8.2_Platform.xml.gz,\
- aQute.bnd.deployer.repository.FixedIndexedRepo; name=eclipseSimultaneous 3.8.2; locations=https://peterkir.github.io/obr/eclipse_3.8.2_Simultaneous.xml.gz,\
-
-# aQute.bnd.deployer.repository.FixedIndexedRepo; name=eclipsePlatform 3.7.2; locations=https://peterkir.github.io/obr/eclipse_3.7.2_Platform.xml.gz,\
-# aQute.bnd.deployer.repository.FixedIndexedRepo; name=eclipseSimultaneous 3.7.2; locations=https://peterkir.github.io/obr/eclipse_3.7.2_Simultaneous.xml.gz,\
-# aQute.bnd.deployer.repository.FixedIndexedRepo; name=eclipsePlatform 4.4.1; locations=https://peterkir.github.io/obr/eclipse_4.4.1_Platform.xml.gz,\
-# aQute.bnd.deployer.repository.FixedIndexedRepo; name=eclipseSimultaneous4.4.1; locations=https://peterkir.github.io/obr/eclipse_4.4.1_Simultaneous.xml.gz
+ aQute.bnd.deployer.repository.LocalIndexedRepo; name=Release; local=${workspace}/cnf/releaserepo; pretty=true,\
+ aQute.bnd.deployer.repository.LocalIndexedRepo; name=Local; local=${workspace}/cnf/localrepo; pretty=true
-releaserepo: Release
diff --git a/cnf/lib/develop.lib b/cnf/lib/develop.lib
deleted file mode 100644
index fd83a03..0000000
--- a/cnf/lib/develop.lib
+++ /dev/null
@@ -1,4 +0,0 @@
-gogo.bundles:\
- org.apache.felix.gogo.runtime,\
- org.apache.felix.gogo.shell,\
- org.apache.felix.gogo.command
\ No newline at end of file
diff --git a/cnf/lib/eclipse_3.8.x.lib b/cnf/lib/eclipse_3.8.x.lib
deleted file mode 100644
index 0c5c7e4..0000000
--- a/cnf/lib/eclipse_3.8.x.lib
+++ /dev/null
@@ -1,31 +0,0 @@
-eclipse.core.runtime.bundles: \
- org.eclipse.osgi.services,\
- org.eclipse.equinox.common,\
- org.eclipse.equinox.registry,\
- org.eclipse.equinox.preferences,\
- org.eclipse.equinox.app,\
- org.eclipse.core.jobs,\
- org.eclipse.core.contenttype,\
- org.eclipse.core.runtime
-
- org.eclipse.equinox.console,\
-
-eclipse.jface.bundles: \
- org.eclipse.swt,\
- org.eclipse.jface,\
- org.eclipse.core.commands
-
-eclipse.swt.win32.x86_64.bundles: \
- org.eclipse.swt.win32.win32.x86_64
-
-eclipse.ui.bundles: \
- ${eclipse.jface.bundles},\
- org.eclipse.ui,\
- org.eclipse.ui.workbench,\
- org.eclipse.help,\
- org.eclipse.core.expressions,\
- com.ibm.icu,\
- org.eclipse.jface.databinding,\
- org.eclipse.core.databinding.observable,\
- org.eclipse.core.databinding.property,\
- org.eclipse.core.databinding
\ No newline at end of file
diff --git a/cnf/localrepo/biz.aQute.launcher/biz.aQute.launcher-6.4.1.jar b/cnf/localrepo/biz.aQute.launcher/biz.aQute.launcher-6.4.1.jar
new file mode 100644
index 0000000..d675e88
Binary files /dev/null and b/cnf/localrepo/biz.aQute.launcher/biz.aQute.launcher-6.4.1.jar differ
diff --git a/cnf/localrepo/example.equinox.headless/example.equinox.headless-0.1.0.jar b/cnf/localrepo/example.equinox.headless/example.equinox.headless-0.1.0.jar
new file mode 100644
index 0000000..eb2f753
Binary files /dev/null and b/cnf/localrepo/example.equinox.headless/example.equinox.headless-0.1.0.jar differ
diff --git a/cnf/localrepo/index.xml b/cnf/localrepo/index.xml
index 62ecbd0..82ce9db 100644
--- a/cnf/localrepo/index.xml
+++ b/cnf/localrepo/index.xml
@@ -1,2531 +1,137 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cnf/localrepo/index.xml.sha b/cnf/localrepo/index.xml.sha
deleted file mode 100644
index 8deeaef..0000000
--- a/cnf/localrepo/index.xml.sha
+++ /dev/null
@@ -1 +0,0 @@
-66d05e985d6a913c9dfd15dc93f87be6113bb087ac1adfd30453b0ca343a40bb
\ No newline at end of file
diff --git a/cnf/localrepo/org.apache.felix.gogo.command/org.apache.felix.gogo.command-0.14.0.jar b/cnf/localrepo/org.apache.felix.gogo.command/org.apache.felix.gogo.command-0.14.0.jar
deleted file mode 100644
index 504f99b..0000000
Binary files a/cnf/localrepo/org.apache.felix.gogo.command/org.apache.felix.gogo.command-0.14.0.jar and /dev/null differ
diff --git a/cnf/localrepo/org.apache.felix.gogo.runtime/org.apache.felix.gogo.runtime-0.12.1.jar b/cnf/localrepo/org.apache.felix.gogo.runtime/org.apache.felix.gogo.runtime-0.12.1.jar
deleted file mode 100644
index a495c1d..0000000
Binary files a/cnf/localrepo/org.apache.felix.gogo.runtime/org.apache.felix.gogo.runtime-0.12.1.jar and /dev/null differ
diff --git a/cnf/localrepo/org.apache.felix.gogo.shell/org.apache.felix.gogo.shell-0.10.0.jar b/cnf/localrepo/org.apache.felix.gogo.shell/org.apache.felix.gogo.shell-0.10.0.jar
deleted file mode 100644
index f74e68e..0000000
Binary files a/cnf/localrepo/org.apache.felix.gogo.shell/org.apache.felix.gogo.shell-0.10.0.jar and /dev/null differ
diff --git a/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.10.0.jar b/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.10.0.jar
deleted file mode 100644
index dc2d6a0..0000000
Binary files a/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.10.0.jar and /dev/null differ
diff --git a/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.5.2.jar b/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.5.2.jar
deleted file mode 100644
index 2bd1ec8..0000000
Binary files a/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.5.2.jar and /dev/null differ
diff --git a/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.6.2.jar b/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.6.2.jar
deleted file mode 100644
index 67bba71..0000000
Binary files a/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.6.2.jar and /dev/null differ
diff --git a/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.7.2.jar b/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.7.2.jar
deleted file mode 100644
index b167e66..0000000
Binary files a/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.7.2.jar and /dev/null differ
diff --git a/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.8.2.jar b/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.8.2.jar
deleted file mode 100644
index f6a2887..0000000
Binary files a/cnf/localrepo/org.eclipse.osgi.source/org.eclipse.osgi.source-3.8.2.jar and /dev/null differ
diff --git a/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.10.0.jar b/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.10.0.jar
deleted file mode 100644
index 0ad2938..0000000
Binary files a/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.10.0.jar and /dev/null differ
diff --git a/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.5.2.jar b/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.5.2.jar
deleted file mode 100644
index 63099fa..0000000
Binary files a/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.5.2.jar and /dev/null differ
diff --git a/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.6.2.jar b/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.6.2.jar
deleted file mode 100644
index 35d7dfc..0000000
Binary files a/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.6.2.jar and /dev/null differ
diff --git a/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.7.2.jar b/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.7.2.jar
deleted file mode 100644
index 25f1180..0000000
Binary files a/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.7.2.jar and /dev/null differ
diff --git a/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.8.2.jar b/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.8.2.jar
deleted file mode 100644
index 1705cb0..0000000
Binary files a/cnf/localrepo/org.eclipse.osgi/org.eclipse.osgi-3.8.2.jar and /dev/null differ
diff --git a/cnf/releaserepo/index.xml b/cnf/releaserepo/index.xml
index 3a4edf8..c8cc972 100644
--- a/cnf/releaserepo/index.xml
+++ b/cnf/releaserepo/index.xml
@@ -1,81 +1,93 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cnf/releaserepo/index.xml.sha b/cnf/releaserepo/index.xml.sha
deleted file mode 100644
index f3b4a84..0000000
--- a/cnf/releaserepo/index.xml.sha
+++ /dev/null
@@ -1 +0,0 @@
-9a96ab02d93a32713f125193409acae85a71a41af34dee25531965f99d84cbbc
\ No newline at end of file
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..7196e3f
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1 @@
+bnd_version=7.2.1
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000..1b33c55
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..dbc3ce4
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,7 @@
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip
+networkTimeout=10000
+validateDistributionUrl=true
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000..23d15a9
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,251 @@
+#!/bin/sh
+
+#
+# Copyright © 2015-2021 the original authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+
+##############################################################################
+#
+# Gradle start up script for POSIX generated by Gradle.
+#
+# Important for running:
+#
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
+# noncompliant, but you have some other compliant shell such as ksh or
+# bash, then to run this script, type that shell name before the whole
+# command line, like:
+#
+# ksh Gradle
+#
+# Busybox and similar reduced shells will NOT work, because this script
+# requires all of these POSIX shell features:
+# * functions;
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+# * compound commands having a testable exit status, especially «case»;
+# * various built-in commands including «command», «set», and «ulimit».
+#
+# Important for patching:
+#
+# (2) This script targets any POSIX shell, so it avoids extensions provided
+# by Bash, Ksh, etc; in particular arrays are avoided.
+#
+# The "traditional" practice of packing multiple parameters into a
+# space-separated string is a well documented source of bugs and security
+# problems, so this is (mostly) avoided, by progressively accumulating
+# options in "$@", and eventually passing that to Java.
+#
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
+# see the in-line comments for details.
+#
+# There are tweaks for specific operating systems such as AIX, CygWin,
+# Darwin, MinGW, and NonStop.
+#
+# (3) This script is generated from the Groovy template
+# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
+# within the Gradle project.
+#
+# You can find Gradle at https://github.com/gradle/gradle/.
+#
+##############################################################################
+
+# Attempt to set APP_HOME
+
+# Resolve links: $0 may be a link
+app_path=$0
+
+# Need this for daisy-chained symlinks.
+while
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
+ [ -h "$app_path" ]
+do
+ ls=$( ls -ld "$app_path" )
+ link=${ls#*' -> '}
+ case $link in #(
+ /*) app_path=$link ;; #(
+ *) app_path=$APP_HOME$link ;;
+ esac
+done
+
+# This is normally unused
+# shellcheck disable=SC2034
+APP_BASE_NAME=${0##*/}
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
+APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD=maximum
+
+warn () {
+ echo "$*"
+} >&2
+
+die () {
+ echo
+ echo "$*"
+ echo
+ exit 1
+} >&2
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "$( uname )" in #(
+ CYGWIN* ) cygwin=true ;; #(
+ Darwin* ) darwin=true ;; #(
+ MSYS* | MINGW* ) msys=true ;; #(
+ NONSTOP* ) nonstop=true ;;
+esac
+
+CLASSPATH="\\\"\\\""
+
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD=java
+ if ! command -v java >/dev/null 2>&1
+ then
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+fi
+
+# Increase the maximum file descriptors if we can.
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
+ case $MAX_FD in #(
+ max*)
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ MAX_FD=$( ulimit -H -n ) ||
+ warn "Could not query maximum file descriptor limit"
+ esac
+ case $MAX_FD in #(
+ '' | soft) :;; #(
+ *)
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
+ # shellcheck disable=SC2039,SC3045
+ ulimit -n "$MAX_FD" ||
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
+ esac
+fi
+
+# Collect all arguments for the java command, stacking in reverse order:
+# * args from the command line
+# * the main class name
+# * -classpath
+# * -D...appname settings
+# * --module-path (only if needed)
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
+
+# For Cygwin or MSYS, switch paths to Windows format before running java
+if "$cygwin" || "$msys" ; then
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
+
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
+
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ for arg do
+ if
+ case $arg in #(
+ -*) false ;; # don't mess with options #(
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
+ [ -e "$t" ] ;; #(
+ *) false ;;
+ esac
+ then
+ arg=$( cygpath --path --ignore --mixed "$arg" )
+ fi
+ # Roll the args list around exactly as many times as the number of
+ # args, so each arg winds up back in the position where it started, but
+ # possibly modified.
+ #
+ # NB: a `for` loop captures its iteration list before it begins, so
+ # changing the positional parameters here affects neither the number of
+ # iterations, nor the values presented in `arg`.
+ shift # remove old arg
+ set -- "$@" "$arg" # push replacement arg
+ done
+fi
+
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+
+# Collect all arguments for the java command:
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
+# and any embedded shellness will be escaped.
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
+# treated as '${Hostname}' itself on the command line.
+
+set -- \
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
+ -classpath "$CLASSPATH" \
+ -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \
+ "$@"
+
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+ die "xargs is not available"
+fi
+
+# Use "xargs" to parse quoted args.
+#
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
+#
+# In Bash we could simply go:
+#
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
+# set -- "${ARGS[@]}" "$@"
+#
+# but POSIX shell has neither arrays nor command substitution, so instead we
+# post-process each arg (as a line of input to sed) to backslash-escape any
+# character that might be a shell metacharacter, then use eval to reverse
+# that process (while maintaining the separation between arguments), and wrap
+# the whole thing up as a single "set" statement.
+#
+# This will of course break if any of these variables contains a newline or
+# an unmatched quote.
+#
+
+eval "set -- $(
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
+ xargs -n1 |
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
+ tr '\n' ' '
+ )" '"$@"'
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..5eed7ee
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,94 @@
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+@rem SPDX-License-Identifier: Apache-2.0
+@rem
+
+@if "%DEBUG%"=="" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%"=="" set DIRNAME=.
+@rem This is normally unused
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if %ERRORLEVEL% equ 0 goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo. 1>&2
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
+echo. 1>&2
+echo Please set the JAVA_HOME variable in your environment to match the 1>&2
+echo location of your Java installation. 1>&2
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if %ERRORLEVEL% equ 0 goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..0d95a66
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,12 @@
+pluginManagement {
+ plugins {
+ id 'biz.aQute.bnd.workspace' version bnd_version
+ }
+ repositories {
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+plugins {
+ id 'biz.aQute.bnd.workspace'
+}