]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.ui/src/org/argeo/cms/script/ScriptAppActivator.java
Improve DocBook
[lgpl/argeo-commons.git] / org.argeo.cms.ui / src / org / argeo / cms / script / ScriptAppActivator.java
1 package org.argeo.cms.script;
2
3 import javax.jcr.Repository;
4
5 import org.apache.commons.logging.Log;
6 import org.apache.commons.logging.LogFactory;
7 import org.osgi.framework.BundleActivator;
8 import org.osgi.framework.BundleContext;
9 import org.osgi.framework.FrameworkUtil;
10 import org.osgi.framework.ServiceReference;
11 import org.osgi.util.tracker.ServiceTracker;
12
13 public class ScriptAppActivator implements BundleActivator {
14 private final static Log log = LogFactory.getLog(ScriptAppActivator.class);
15
16 @Override
17 public void start(BundleContext context) throws Exception {
18 try {
19 CmsScriptRwtApplication appConfig = new CmsScriptRwtApplication();
20 appConfig.init(context);
21 CmsScriptApp app = appConfig.getApp();
22 ServiceTracker<Repository, Repository> repoSt = new ServiceTracker<Repository, Repository>(context,
23 FrameworkUtil.createFilter("(&" + app.getRepo() + "(objectClass=javax.jcr.Repository))"), null) {
24
25 @Override
26 public Repository addingService(ServiceReference<Repository> reference) {
27 Repository repository = super.addingService(reference);
28 appConfig.setRepository(repository);
29 CmsScriptApp app = appConfig.getApp();
30 app.register(context, appConfig);
31 return repository;
32 }
33
34 };
35 repoSt.open();
36 } catch (Exception e) {
37 log.error("Cannot initialise script bundle " + context.getBundle().getSymbolicName(), e);
38 throw e;
39 }
40 }
41
42 @Override
43 public void stop(BundleContext context) throws Exception {
44 }
45
46 }