]> git.argeo.org Git - lgpl/argeo-commons.git/blob - CmsInstance.java
5fedd1d314d2a3b6fe9aea5df884b897f8c58f3d
[lgpl/argeo-commons.git] / CmsInstance.java
1 package org.argeo.cms.internal.kernel;
2
3 import javax.jcr.Repository;
4
5 import org.apache.commons.logging.Log;
6 import org.apache.commons.logging.LogFactory;
7 import org.argeo.node.NodeConstants;
8 import org.argeo.node.NodeInstance;
9 import org.osgi.framework.BundleContext;
10 import org.osgi.framework.FrameworkUtil;
11 import org.osgi.framework.ServiceReference;
12 import org.osgi.util.tracker.ServiceTracker;
13
14 public class CmsInstance implements NodeInstance {
15 private final Log log = LogFactory.getLog(getClass());
16 private final BundleContext bc = FrameworkUtil.getBundle(getClass()).getBundleContext();
17
18
19 public CmsInstance() {
20 initTrackers();
21 }
22
23 private void initTrackers() {
24 // node repository
25 new ServiceTracker<Repository, Repository>(bc, Repository.class, null) {
26 @Override
27 public Repository addingService(ServiceReference<Repository> reference) {
28 Object cn = reference.getProperty(NodeConstants.CN);
29 if (cn != null && cn.equals(NodeConstants.NODE)) {
30 if (log.isDebugEnabled())
31 log.debug("Node repository is available");
32 }
33 return super.addingService(reference);
34 }
35 }.open();
36 }
37
38 public void shutdown() {
39
40 }
41
42 }