]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsInstance.java
1 package org
.argeo
.cms
.internal
.kernel
;
3 import javax
.jcr
.Repository
;
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
;
14 public class CmsInstance
implements NodeInstance
{
15 private final Log log
= LogFactory
.getLog(getClass());
16 private final BundleContext bc
= FrameworkUtil
.getBundle(getClass()).getBundleContext();
19 public CmsInstance() {
23 private void initTrackers() {
25 new ServiceTracker
<Repository
, Repository
>(bc
, Repository
.class, null) {
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");
33 return super.addingService(reference
);
38 public void shutdown() {