Log exceptions during script bundles initialisation
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 9 Jan 2019 14:22:12 +0000 (15:22 +0100)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 9 Jan 2019 14:22:12 +0000 (15:22 +0100)
org.argeo.cms.ui/src/org/argeo/cms/script/ScriptAppActivator.java

index 7b3c57e339e86f98201844f8a002d123746307bc..edf25bb00bdc2eb305bb9900f1aba3de39d92823 100644 (file)
@@ -2,6 +2,8 @@ package org.argeo.cms.script;
 
 import javax.jcr.Repository;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.osgi.framework.BundleActivator;
 import org.osgi.framework.BundleContext;
 import org.osgi.framework.FrameworkUtil;
@@ -9,25 +11,32 @@ import org.osgi.framework.ServiceReference;
 import org.osgi.util.tracker.ServiceTracker;
 
 public class ScriptAppActivator implements BundleActivator {
+       private final static Log log = LogFactory.getLog(ScriptAppActivator.class);
+
        @Override
        public void start(BundleContext context) throws Exception {
-               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();
+               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