Rename packages in order to make future stable documentation clearer.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / internal / kernel / KernelUtils.java
index b3fb33ac3169911e02eaafe4b6df4fbd1197dfb5..bf8e8d38e462a58a6821e5a41c4bed69b53a092a 100644 (file)
@@ -24,11 +24,13 @@ import javax.security.auth.login.LoginContext;
 import javax.security.auth.login.LoginException;
 
 import org.apache.commons.logging.Log;
+import org.argeo.api.DataModelNamespace;
+import org.argeo.api.NodeConstants;
 import org.argeo.cms.CmsException;
-import org.argeo.node.NodeConstants;
 import org.osgi.framework.Bundle;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
+import org.osgi.util.tracker.ServiceTracker;
 
 /** Package utilities */
 class KernelUtils implements KernelConstants {
@@ -89,18 +91,6 @@ class KernelUtils implements KernelConstants {
                return safeUri(osgiInstanceBaseUri + (relativePath != null ? relativePath : ""));
        }
 
-       // static String getOsgiInstancePath(String relativePath) {
-       // try {
-       // if (relativePath == null)
-       // return getOsgiInstanceDir().getCanonicalPath();
-       // else
-       // return new File(getOsgiInstanceDir(), relativePath).getCanonicalPath();
-       // } catch (IOException e) {
-       // throw new CmsException("Cannot get instance path for " + relativePath,
-       // e);
-       // }
-       // }
-
        static File getOsgiConfigurationFile(String relativePath) {
                try {
                        return new File(new URI(getBundleContext().getProperty(OSGI_CONFIGURATION_AREA) + relativePath))
@@ -188,13 +178,24 @@ class KernelUtils implements KernelConstants {
                });
        }
 
+       static void asyncOpen(ServiceTracker<?, ?> st) {
+               Runnable run = new Runnable() {
+
+                       @Override
+                       public void run() {
+                               st.open();
+                       }
+               };
+               Activator.getInternalExecutorService().execute(run);
+//             new Thread(run, "Open service tracker " + st).start();
+       }
+
        /**
-        * @return the {@link BundleContext} of the {@link Bundle} which provided
-        *         this class, never null.
-        * @throws CmsException
-        *             if the related bundle is not active
+        * @return the {@link BundleContext} of the {@link Bundle} which provided this
+        *         class, never null.
+        * @throws CmsException if the related bundle is not active
         */
-       public static BundleContext getBundleContext(Class<?> clzz) {
+       static BundleContext getBundleContext(Class<?> clzz) {
                Bundle bundle = FrameworkUtil.getBundle(clzz);
                BundleContext bc = bundle.getBundleContext();
                if (bc == null)
@@ -202,10 +203,23 @@ class KernelUtils implements KernelConstants {
                return bc;
        }
 
-       private static BundleContext getBundleContext() {
+       static BundleContext getBundleContext() {
                return getBundleContext(KernelUtils.class);
        }
 
+       static boolean asBoolean(String value) {
+               if (value == null)
+                       return false;
+               switch (value) {
+               case "true":
+                       return true;
+               case "false":
+                       return false;
+               default:
+                       throw new CmsException("Unsupported value for attribute " + DataModelNamespace.ABSTRACT + ": " + value);
+               }
+       }
+
        private static URI safeUri(String uri) {
                if (uri == null)
                        throw new CmsException("URI cannot be null");