X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.osgi.boot%2Fsrc%2Forg%2Fargeo%2Fosgi%2Fboot%2FOsgiBootUtils.java;h=9593b0cde8bf8babdec9a79fe959aba90c0a679c;hb=25eec0a9cc31c67740ba4131ed40951a028a7669;hp=212e6baa4f208437cc217d4ab3a76df668b52549;hpb=86e5f79860a8b3013b40a36c1f06c828d52f5249;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBootUtils.java b/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBootUtils.java index 212e6baa4..9593b0cde 100644 --- a/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBootUtils.java +++ b/org.argeo.osgi.boot/src/org/argeo/osgi/boot/OsgiBootUtils.java @@ -20,17 +20,21 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.StringTokenizer; import org.osgi.framework.Bundle; +import org.osgi.framework.BundleException; +import org.osgi.framework.launch.Framework; +import org.osgi.framework.launch.FrameworkFactory; /** Utilities, mostly related to logging. */ public class OsgiBootUtils { /** ISO8601 (as per log4j) and difference to UTC */ private static DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss,SSS Z"); - static boolean debug = Boolean.valueOf(System.getProperty(OsgiBoot.PROP_ARGEO_OSGI_BOOT_DEBUG, "false")) - .booleanValue(); + static boolean debug = System.getProperty(OsgiBoot.PROP_ARGEO_OSGI_BOOT_DEBUG) == null ? false + : !System.getProperty(OsgiBoot.PROP_ARGEO_OSGI_BOOT_DEBUG).trim().equals("false"); public static void info(Object obj) { System.out.println("# OSGiBOOT # " + dateFormat.format(new Date()) + " # " + obj); @@ -51,6 +55,10 @@ public class OsgiBootUtils { e.printStackTrace(); } + public static boolean isDebug() { + return debug; + } + public static String stateAsString(int state) { switch (state) { case Bundle.UNINSTALLED: @@ -71,7 +79,7 @@ public class OsgiBootUtils { } /** - * @return ==0: versions are identical, <0: tested version is newer, >0: + * @return ==0: versions are identical, <0: tested version is newer, >0: * currentVersion is newer. */ public static int compareVersions(String currentVersion, String testedVersion) { @@ -122,4 +130,16 @@ public class OsgiBootUtils { return comp; } + /** Launch an OSGi framework. */ + public static Framework launch(FrameworkFactory frameworkFactory, Map configuration) { + // start OSGi + Framework framework = frameworkFactory.newFramework(configuration); + try { + framework.start(); + } catch (BundleException e) { + throw new OsgiBootException("Cannot start OSGi framework", e); + } + return framework; + } + }