]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - swt/rap/org.argeo.cms.swt.rap/src/org/argeo/cms/ui/script/ScriptAppActivator.java
Refactor SWT directory structure.
[lgpl/argeo-commons.git] / swt / rap / org.argeo.cms.swt.rap / src / org / argeo / cms / ui / script / ScriptAppActivator.java
diff --git a/swt/rap/org.argeo.cms.swt.rap/src/org/argeo/cms/ui/script/ScriptAppActivator.java b/swt/rap/org.argeo.cms.swt.rap/src/org/argeo/cms/ui/script/ScriptAppActivator.java
new file mode 100644 (file)
index 0000000..a550953
--- /dev/null
@@ -0,0 +1,45 @@
+package org.argeo.cms.ui.script;
+
+import javax.jcr.Repository;
+
+import org.argeo.api.cms.CmsLog;
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.FrameworkUtil;
+import org.osgi.framework.ServiceReference;
+import org.osgi.util.tracker.ServiceTracker;
+
+public class ScriptAppActivator implements BundleActivator {
+       private final static CmsLog log = CmsLog.getLog(ScriptAppActivator.class);
+
+       @Override
+       public void start(BundleContext context) throws Exception {
+               try {
+                       CmsScriptRwtApplication appConfig = new CmsScriptRwtApplication();
+                       appConfig.init(context);
+                       CmsScriptApp app = appConfig.getApp();
+                       ServiceTracker<Repository, Repository> repoSt = new ServiceTracker<Repository, Repository>(context,
+                                       FrameworkUtil.createFilter("(&" + app.getRepo() + "(objectClass=javax.jcr.Repository))"), null) {
+
+                               @Override
+                               public Repository addingService(ServiceReference<Repository> reference) {
+                                       Repository repository = super.addingService(reference);
+                                       appConfig.setRepository(repository);
+                                       CmsScriptApp app = appConfig.getApp();
+                                       app.register(context, appConfig);
+                                       return repository;
+                               }
+
+                       };
+                       repoSt.open();
+               } catch (Exception e) {
+                       log.error("Cannot initialise script bundle " + context.getBundle().getSymbolicName(), e);
+                       throw e;
+               }
+       }
+
+       @Override
+       public void stop(BundleContext context) throws Exception {
+       }
+
+}