diff --git a/README.md b/README.md
index fee3aad8..1df0ba36 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,22 @@ Final version will be written in HolyC++ on templeOS called VRGEM⁴.
## Project Setup
-Use the AdoptOpenJDK(11++) to run the demo.
+Requirements;
+
+* Setup [Hyperdrive](https://github.com/hyperspace-org/hyperdrive-service)
+* Use an AdoptOpenJDK(11++) to run the demo.
+
+### Project Launch Release
+
+When hyperdrive is running just start the jar file with;
+
+ java -jar todo.jar
+
+### Project Launch IDE
+
+Run "mvn package" once before starting.
+
+Append "use-local" to the main launcher to use the local chains.
## Duytschen Code
diff --git a/gdxapp4d-boot-desktop/local-override.xml b/gdxapp4d-boot-desktop/local-override.xml
index f5979bc6..602ce5af 100644
--- a/gdxapp4d-boot-desktop/local-override.xml
+++ b/gdxapp4d-boot-desktop/local-override.xml
@@ -3,6 +3,7 @@
../gdxapp4d-chain-sys-engine/src/chain
../gdxapp4d-chain-sys-ocean/src/chain
+ ../gdxapp4d-chain-dep-osgi-scr/src/chain
../gdxapp4d-vrgem4/src/chain
../gdxapp4d-vrgem4/target/classes
diff --git a/gdxapp4d-chain-dep-osgi-scr/pom.xml b/gdxapp4d-chain-dep-osgi-scr/pom.xml
new file mode 100644
index 00000000..40f2f17b
--- /dev/null
+++ b/gdxapp4d-chain-dep-osgi-scr/pom.xml
@@ -0,0 +1,10 @@
+
+ 4.0.0
+
+ love.distributedrebirth.gdxapp4d
+ gdxapp4d
+ 0.0.1-SNAPSHOT
+
+ gdxapp4d-chain-dep-osgi-scr
+ pom
+
\ No newline at end of file
diff --git a/gdxapp4d-chain-dep-osgi-scr/src/chain/bundle/org.apache.felix.scr-2.2.0.jar b/gdxapp4d-chain-dep-osgi-scr/src/chain/bundle/org.apache.felix.scr-2.2.0.jar
new file mode 100644
index 00000000..7073cd14
Binary files /dev/null and b/gdxapp4d-chain-dep-osgi-scr/src/chain/bundle/org.apache.felix.scr-2.2.0.jar differ
diff --git a/gdxapp4d-chain-dep-osgi-scr/src/chain/bundle/org.osgi.util.function-1.2.0.jar b/gdxapp4d-chain-dep-osgi-scr/src/chain/bundle/org.osgi.util.function-1.2.0.jar
new file mode 100644
index 00000000..09af58e9
Binary files /dev/null and b/gdxapp4d-chain-dep-osgi-scr/src/chain/bundle/org.osgi.util.function-1.2.0.jar differ
diff --git a/gdxapp4d-chain-dep-osgi-scr/src/chain/bundle/org.osgi.util.promise-1.2.0.jar b/gdxapp4d-chain-dep-osgi-scr/src/chain/bundle/org.osgi.util.promise-1.2.0.jar
new file mode 100644
index 00000000..f0a308c1
Binary files /dev/null and b/gdxapp4d-chain-dep-osgi-scr/src/chain/bundle/org.osgi.util.promise-1.2.0.jar differ
diff --git a/gdxapp4d-chain-dep-osgi-scr/src/chain/warp-sea.xml b/gdxapp4d-chain-dep-osgi-scr/src/chain/warp-sea.xml
new file mode 100644
index 00000000..d8354dce
--- /dev/null
+++ b/gdxapp4d-chain-dep-osgi-scr/src/chain/warp-sea.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/gdxapp4d-chain-sys-engine/src/chain/warp-sea.xml b/gdxapp4d-chain-sys-engine/src/chain/warp-sea.xml
index 1e56813e..7e4a9441 100644
--- a/gdxapp4d-chain-sys-engine/src/chain/warp-sea.xml
+++ b/gdxapp4d-chain-sys-engine/src/chain/warp-sea.xml
@@ -4,6 +4,8 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wrap-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root http://warp-sea.x4o.distributedrebirth.love/xml/ns/warp-sea-root-1.0.xsd">
+
+
diff --git a/gdxapp4d-tos4/pom.xml b/gdxapp4d-tos4/pom.xml
index 74cdd2dd..ed53bafb 100644
--- a/gdxapp4d-tos4/pom.xml
+++ b/gdxapp4d-tos4/pom.xml
@@ -44,6 +44,11 @@
ch.qos.logback
logback-classic
+
+ org.osgi
+ org.osgi.service.component.annotations
+ 1.4.0
+
diff --git a/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4Activator.java b/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4Activator.java
index f070f984..e3922bd6 100644
--- a/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4Activator.java
+++ b/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4Activator.java
@@ -14,12 +14,14 @@ import java.util.function.Consumer;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.BundleException;
+import org.slf4j.LoggerFactory;
import org.x4o.xml.io.X4OConnectionException;
import org.xml.sax.SAXException;
import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpBase;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpBootArgs;
+import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpLogger;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpSea;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip;
import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpTerminal;
@@ -138,6 +140,7 @@ public class GDXAppTos4Activator implements BundleActivator {
SystemWarpShipImpl systemWarpShip = new SystemWarpShipImpl();
+ context.registerService(SystemWarpLogger.class.getName(), new SystemWarpLoggerImpl(), new Hashtable());
context.registerService(SystemWarpBase.class.getName(), new SystemWarpBaseImpl(), new Hashtable());
context.registerService(SystemWarpBootArgs.class.getName(), new SystemWarpBootArgsImpl(), new Hashtable());
context.registerService(SystemWarpShip.class.getName(), systemWarpShip, new Hashtable());
@@ -286,4 +289,27 @@ public class GDXAppTos4Activator implements BundleActivator {
return buf.toString();
}
}
+
+ public static class SystemWarpLoggerImpl implements SystemWarpLogger {
+
+ @Override
+ public void infoTag(String tag, String message, Object...args) {
+ LoggerFactory.getLogger(tag).info(message, args);
+ }
+
+ @Override
+ public void debugTag(String tag, String message, Object...args) {
+ LoggerFactory.getLogger(tag).debug(message, args);
+ }
+
+ @Override
+ public void errorTag(String tag, String message, Object...args) {
+ LoggerFactory.getLogger(tag).error(message, args);
+ }
+
+ @Override
+ public void errorTag(String tag, String message, Throwable exception) {
+ LoggerFactory.getLogger(tag).error(message, exception);
+ }
+ }
}
diff --git a/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4Startup.java b/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4Startup.java
index 8a792bf8..8973c234 100644
--- a/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4Startup.java
+++ b/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/GDXAppTos4Startup.java
@@ -44,6 +44,7 @@ public class GDXAppTos4Startup {
}
};
Thread framework = new Thread(run);
+ framework.setName("boot");
framework.start();
return systemBundle;
diff --git a/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/service/SystemWarpLogger.java b/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/service/SystemWarpLogger.java
new file mode 100644
index 00000000..33b51f3b
--- /dev/null
+++ b/gdxapp4d-tos4/src/main/java/love/distributedrebirth/gdxapp4d/tos4/service/SystemWarpLogger.java
@@ -0,0 +1,31 @@
+package love.distributedrebirth.gdxapp4d.tos4.service;
+
+import love.distributedrebirth.bassboonyd.BãßBȍőnAuthorInfoʸᴰ;
+
+@BãßBȍőnAuthorInfoʸᴰ(name = "willemtsade", copyright = "©Δ∞ 仙上主天")
+public interface SystemWarpLogger {
+
+ void infoTag(String tag, String message, Object...args);
+
+ void debugTag(String tag, String message, Object...args);
+
+ void errorTag(String tag, String message, Object...args);
+
+ void errorTag(String tag, String message, Throwable exception);
+
+ default void info(Object tag, String message, Object...args) {
+ infoTag(tag.getClass().getName(), message, args);
+ }
+
+ default void debug(Object tag, String message, Object...args) {
+ debugTag(tag.getClass().getName(), message, args);
+ }
+
+ default void error(Object tag, String message, Object...args) {
+ errorTag(tag.getClass().getName(), message, args);
+ }
+
+ default void error(Object tag, String message, Throwable exception) {
+ errorTag(tag.getClass().getName(), message, exception);
+ }
+}
diff --git a/gdxapp4d-vrgem4/pom.xml b/gdxapp4d-vrgem4/pom.xml
index c5f22526..ebe6b61f 100644
--- a/gdxapp4d-vrgem4/pom.xml
+++ b/gdxapp4d-vrgem4/pom.xml
@@ -12,6 +12,7 @@
love.distributedrebirth.gdxapp4d
gdxapp4d-tos4
${project.version}
+ provided
@@ -21,11 +22,20 @@
maven-bundle-plugin
true
+ true
<_donotcopy>(.git)
+
+ <_dsannotations>*
+
+ <_metatypeannotations>*
- love.distributedrebirth.gdxapp4d.tos4.service,
org.osgi.framework,
+ org.osgi.service.packageadmin,
+ org.osgi.service.url,
+ org.osgi.service.startlevel,
+ org.osgi.util.tracker,
+ love.distributedrebirth.gdxapp4d.tos4.service,
com.badlogic.gdx,
com.badlogic.gdx.assets,
com.badlogic.gdx.assets.loaders,
diff --git a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/GDXAppVrGem4Activator.java b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/GDXAppVrGem4Activator.java
index dad6e7a5..90e43a70 100644
--- a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/GDXAppVrGem4Activator.java
+++ b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/GDXAppVrGem4Activator.java
@@ -41,6 +41,11 @@ public class GDXAppVrGem4Activator implements BundleActivator {
public void start(final BundleContext context) {
// LOG.info("GDXAppVrGem4Activator started");
+ try {
+ Thread.sleep(2000);
+ } catch (InterruptedException ignored) {
+ }
+
ServiceReference termRef = context.getServiceReference(SystemWarpTerminal.class);
SystemWarpTerminal terminal = context.getService(termRef);
@@ -162,7 +167,7 @@ public class GDXAppVrGem4Activator implements BundleActivator {
} else {
bootScreen.bootLine("vrGEM4: chains resolved.");
try {
- Thread.sleep(5000);
+ Thread.sleep(2000);
} catch (InterruptedException ignored) {
}
Gdx.app.postRunnable(new Runnable() {
diff --git a/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/TestComponent.java b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/TestComponent.java
new file mode 100644
index 00000000..57bda70c
--- /dev/null
+++ b/gdxapp4d-vrgem4/src/main/java/love/distributedrebirth/gdxapp4d/vrgem4/TestComponent.java
@@ -0,0 +1,28 @@
+package love.distributedrebirth.gdxapp4d.vrgem4;
+
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
+
+import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpLogger;
+import love.distributedrebirth.gdxapp4d.tos4.service.SystemWarpShip;
+
+@Component
+public class TestComponent {
+
+ @Reference
+ private SystemWarpLogger log;
+
+ @Reference
+ private SystemWarpShip warpShip;
+
+ @Activate
+ void open() {
+ log.info(this, "Activated warpEngine: {}", warpShip.getWarpShip().theShip().getEngine());
+ }
+
+ @Deactivate
+ void close() {
+ }
+}
diff --git a/pom.xml b/pom.xml
index 09a970fc..af63aa4d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,6 +12,7 @@
gdxapp4d-app-notepad
gdxapp4d-app-tosamp
gdxapp4d-boot-desktop
+ gdxapp4d-chain-dep-osgi-scr
gdxapp4d-chain-music-msx
gdxapp4d-chain-music-templeos
gdxapp4d-chain-sys-engine