X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FCmsDeployment.java;h=fba39b6d4e91955be766708db3fc3f0405b87181;hb=eb3116df3624b3d32793548b79e137e2dad429cb;hp=f09a008072104b90050fb64feb221a16ba023766;hpb=9e5ea515aa9a855645c9d20c478c14770264a5cb;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java b/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java index f09a00807..fba39b6d4 100644 --- a/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java +++ b/org.argeo.cms/src/org/argeo/cms/internal/kernel/CmsDeployment.java @@ -42,6 +42,7 @@ 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; import org.osgi.framework.wiring.BundleWire; @@ -199,6 +200,15 @@ public class CmsDeployment implements NodeDeployment { if (nodeHttp != null) nodeHttp.destroy(); + try { + for (ServiceReference sr : bc + .getServiceReferences(JackrabbitLocalRepository.class, null)) { + bc.getService(sr).destroy(); + } + } catch (InvalidSyntaxException e1) { + log.error("Cannot sclean repsoitories", e1); + } + try { JettyConfigurator.stopServer(KernelConstants.DEFAULT_JETTY_SERVER); } catch (Exception e) { @@ -403,11 +413,16 @@ public class CmsDeployment implements NodeDeployment { if (dataModelName.equals(NodeConstants.NODE)) properties.put(Constants.SERVICE_RANKING, Integer.MAX_VALUE); LocalRepository localRepository; - if (repository instanceof RepositoryImpl) + String[] classes; + if (repository instanceof RepositoryImpl) { localRepository = new JackrabbitLocalRepository((RepositoryImpl) repository, dataModelName); - else + classes = new String[] { Repository.class.getName(), LocalRepository.class.getName(), + JackrabbitLocalRepository.class.getName() }; + } else { localRepository = new LocalRepository(repository, dataModelName); - bc.registerService(Repository.class, localRepository, properties); + classes = new String[] { Repository.class.getName(), LocalRepository.class.getName() }; + } + bc.registerService(classes, localRepository, properties); if (log.isTraceEnabled()) log.trace("Published data model " + dataModelName); }