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;
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;
/** 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;
// 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);
// if (nodeHttp != null)
// nodeHttp.destroy();
-
try {
for (ServiceReference<JackrabbitLocalRepository> sr : bc
.getServiceReferences(JackrabbitLocalRepository.class, null)) {
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) {
bc.registerService(Servlet.class, remotingServlet, ip);
}
+ public void setContentRepository(ProvidedRepository contentRepository) {
+ this.contentRepository = contentRepository;
+ }
+
private class RepositoryContextStc extends ServiceTracker<RepositoryContext, RepositoryContext> {
public RepositoryContextStc() {