X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.jcr%2Fsrc%2Forg%2Fargeo%2Fcms%2Fjcr%2Finternal%2FCmsJcrDeployment.java;h=f3ce912951b5b522c5393151113f2480a76b20ac;hb=7a6ba4e06aa62d10c6aadd32559bc9e550a4aba9;hp=35800f8953a50f23812771cf6b912c7441013c02;hpb=bce03099b0d2f1758e7a3d74fba339d0200924d5;p=gpl%2Fargeo-jcr.git diff --git a/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/CmsJcrDeployment.java b/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/CmsJcrDeployment.java index 35800f8..f3ce912 100644 --- a/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/CmsJcrDeployment.java +++ b/org.argeo.cms.jcr/src/org/argeo/cms/jcr/internal/CmsJcrDeployment.java @@ -26,10 +26,12 @@ import javax.servlet.Servlet; import org.apache.jackrabbit.commons.cnd.CndImporter; import org.apache.jackrabbit.core.RepositoryContext; import org.apache.jackrabbit.core.RepositoryImpl; +import org.argeo.api.acr.spi.ProvidedRepository; import org.argeo.api.cms.CmsConstants; import org.argeo.api.cms.CmsLog; import org.argeo.cms.ArgeoNames; import org.argeo.cms.jcr.CmsJcrUtils; +import org.argeo.cms.jcr.acr.JcrContentNamespace; import org.argeo.cms.jcr.internal.servlet.CmsRemotingServlet; import org.argeo.cms.jcr.internal.servlet.CmsWebDavServlet; import org.argeo.cms.jcr.internal.servlet.JcrHttpUtils; @@ -40,7 +42,6 @@ import org.argeo.jcr.JcrUtils; import org.osgi.framework.Bundle; import org.osgi.framework.BundleContext; import org.osgi.framework.Constants; -import org.osgi.framework.FrameworkUtil; import org.osgi.framework.InvalidSyntaxException; import org.osgi.framework.ServiceReference; import org.osgi.framework.wiring.BundleCapability; @@ -52,7 +53,7 @@ import org.osgi.util.tracker.ServiceTracker; /** Implementation of a CMS deployment. */ public class CmsJcrDeployment { private final CmsLog log = CmsLog.getLog(getClass()); - private final BundleContext bc = FrameworkUtil.getBundle(getClass()).getBundleContext(); + private BundleContext bc; private DataModels dataModels; private String webDavConfig = JcrHttpUtils.WEBDAV_CONFIG; @@ -62,17 +63,26 @@ public class CmsJcrDeployment { // Readiness private boolean nodeAvailable = false; -// CmsDeployment cmsDeployment; - public void start() { + private ProvidedRepository contentRepository; + + public CmsJcrDeployment() { + } + + // CmsDeployment cmsDeployment; + public void start(BundleContext bundleContext) { + // Bundle bundle = FrameworkUtil.getBundle(CmsJcrDeployment.class); + bc = bundleContext; dataModels = new DataModels(bc); + contentRepository.registerTypes(JcrContentNamespace.values()); + ServiceTracker repoContextSt = new RepositoryContextStc(); repoContextSt.open(); // KernelUtils.asyncOpen(repoContextSt); // nodeDeployment = CmsJcrActivator.getService(NodeDeployment.class); - //JcrInitUtils.addToDeployment(cmsDeployment); + // JcrInitUtils.addToDeployment(cmsDeployment); // contentRepository.registerTypes(NamespaceRegistry.PREFIX_JCR, NamespaceRegistry.NAMESPACE_JCR, null); // contentRepository.registerTypes(NamespaceRegistry.PREFIX_MIX, NamespaceRegistry.NAMESPACE_MIX, null); @@ -88,7 +98,6 @@ public class CmsJcrDeployment { // if (nodeHttp != null) // nodeHttp.destroy(); - try { for (ServiceReference sr : bc .getServiceReferences(JackrabbitLocalRepository.class, null)) { @@ -351,7 +360,8 @@ public class CmsJcrDeployment { boolean isStandalone(String dataModelName) { return true; - //return cmsDeployment.getProps(CmsConstants.NODE_REPOS_FACTORY_PID, dataModelName) != null; + // return cmsDeployment.getProps(CmsConstants.NODE_REPOS_FACTORY_PID, + // dataModelName) != null; } private void publishLocalRepo(String dataModelName, Repository repository) { @@ -432,6 +442,10 @@ public class CmsJcrDeployment { bc.registerService(Servlet.class, remotingServlet, ip); } + public void setContentRepository(ProvidedRepository contentRepository) { + this.contentRepository = contentRepository; + } + private class RepositoryContextStc extends ServiceTracker { public RepositoryContextStc() {