From: Mathieu Baudier Date: Sat, 5 May 2018 20:01:54 +0000 (+0200) Subject: Improve JavaScript launch X-Git-Tag: argeo-commons-2.1.74~42 X-Git-Url: https://git.argeo.org/?p=lgpl%2Fargeo-commons.git;a=commitdiff_plain;h=9257c2d88d0900a10cb69fe4985df335b475ac20 Improve JavaScript launch --- diff --git a/dist/argeo-node/base/bin/argeo-cms b/dist/argeo-node/base/bin/argeo-cms index 9819b7e77..a1701a3ba 100755 --- a/dist/argeo-node/base/bin/argeo-cms +++ b/dist/argeo-node/base/bin/argeo-cms @@ -128,6 +128,6 @@ case "$1" in status ;; *) - echo $"Usage: $0 {start|stop|status}" - exit 1 + start + ;; esac \ No newline at end of file diff --git a/dist/argeo-node/base/bin/argeo-cms.js b/dist/argeo-node/base/bin/argeo-cms.js new file mode 100644 index 000000000..01a12d714 --- /dev/null +++ b/dist/argeo-node/base/bin/argeo-cms.js @@ -0,0 +1,6 @@ +#!/usr/bin/a2jjs +load("share/argeo/cms.js"); +osgi.httpPort = 8080; +//osgi.conf("argeo.node.useradmin.uris", "os:///"); +//osgi.clean = true; +osgi.launch(); diff --git a/dist/argeo-node/base/share/argeo/cms.js b/dist/argeo-node/base/share/argeo/cms.js index 1e94fec95..75353779d 100755 --- a/dist/argeo-node/base/share/argeo/cms.js +++ b/dist/argeo-node/base/share/argeo/cms.js @@ -20,6 +20,8 @@ osgi.conf("org.osgi.framework.bootdelegation", "com.sun.jndi.ldap," var homeUri = java.nio.file.Paths .get(java.lang.System.getProperty("user.home")).toUri().toString(); +var execDirUri = java.nio.file.Paths.get( + java.lang.System.getProperty("user.dir")).toUri().toString(); if (typeof app !== 'undefined') { if (typeof appHome == 'undefined') { var appHome = homeUri + "/.a2/var/lib/" + app; @@ -32,7 +34,11 @@ if (typeof app !== 'undefined') { } osgi.conf("osgi.configuration.area", appHome + "/state"); osgi.conf("osgi.instance.area", appHome + "/data"); -// System.setProperty("java.security.manager", ""); -// System.setProperty("java.security.policy", appConf + "/" + policyFile); + // System.setProperty("java.security.manager", ""); + // System.setProperty("java.security.policy", appConf + "/" + policyFile); System.setProperty("log4j.configuration", appConf + "/log4j.properties"); +} else { + osgi.conf("osgi.configuration.area", execDirUri + "/state"); + osgi.conf("osgi.instance.area", execDirUri + "/data"); + System.setProperty("log4j.configuration", execDirUri + "etc/argeo/log4j.properties"); } diff --git a/dist/osgi-boot/base/bin/a2jjs b/dist/osgi-boot/base/bin/a2jjs index 62762a858..128bcea35 100755 --- a/dist/osgi-boot/base/bin/a2jjs +++ b/dist/osgi-boot/base/bin/a2jjs @@ -1,13 +1,6 @@ #!/bin/sh - -export A2_HOME=$HOME/.a2 -if [ -d "$A2_HOME/share/osgi/boot" ]; then - PREFIX=$A2_HOME -else - PREFIX=/usr -fi - -EQUINOX=$PREFIX/share/osgi/boot/org.eclipse.osgi.jar -OSGI_BOOT=$PREFIX/share/osgi/boot/org.argeo.osgi.boot.jar +BIN_DIR=`dirname $0` +EQUINOX=$BIN_DIR/../share/osgi/boot/org.eclipse.osgi.jar +OSGI_BOOT=$BIN_DIR/../share/osgi/boot/org.argeo.osgi.boot.jar /usr/bin/jjs -cp "$EQUINOX:$OSGI_BOOT" $* diff --git a/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBoot.java b/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBoot.java index 8ca9be77b..4c3ee40f0 100644 --- a/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBoot.java +++ b/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBoot.java @@ -52,7 +52,7 @@ import org.osgi.framework.wiring.FrameworkWiring; public class OsgiBoot implements OsgiBootConstants { public final static String PROP_ARGEO_OSGI_START = "argeo.osgi.start"; public final static String PROP_ARGEO_OSGI_SOURCES = "argeo.osgi.sources"; - + public final static String PROP_ARGEO_OSGI_BUNDLES = "argeo.osgi.bundles"; public final static String PROP_ARGEO_OSGI_BASE_URL = "argeo.osgi.baseUrl"; public final static String PROP_ARGEO_OSGI_LOCAL_CACHE = "argeo.osgi.localCache"; @@ -115,6 +115,10 @@ public class OsgiBoot implements OsgiBootConstants { } } + ProvisioningManager getProvisioningManager() { + return provisioningManager; + } + /* * HIGH-LEVEL METHODS */ @@ -162,6 +166,7 @@ public class OsgiBoot implements OsgiBootConstants { public void update() { provisioningManager.update(); } + /* * INSTALLATION */ diff --git a/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBuilder.java b/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBuilder.java index 28a2604a4..8c460e116 100644 --- a/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBuilder.java +++ b/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBuilder.java @@ -63,12 +63,15 @@ public class OsgiBuilder { OsgiBootUtils.debug("OSGi starting - data: " + osgiData + " conf: " + osgiConf); OsgiBoot osgiBoot = new OsgiBoot(framework.getBundleContext()); - // install bundles - for (String distributionBundle : distributionBundles) { - List bundleUrls = osgiBoot.getDistributionUrls(distributionBundle, baseUrl); - osgiBoot.installUrls(bundleUrls); + if (distributionBundles.isEmpty()) { + osgiBoot.getProvisioningManager().install(null); + } else { + // install bundles + for (String distributionBundle : distributionBundles) { + List bundleUrls = osgiBoot.getDistributionUrls(distributionBundle, baseUrl); + osgiBoot.installUrls(bundleUrls); + } } - // start bundles osgiBoot.startBundles(startLevelsToProperties());