X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Finternal%2Fkernel%2FCmsDeployment.java;h=b36e0f4c56b293b9391493bbb53aa550666548e2;hb=fe647a3bb2330ecac77b9f9be87632b51e64063d;hp=6fbe7a95c50964d5a4489b978456359fb879303d;hpb=06acf73a99f0e3908fe8998f1ff08dee109c5562;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 6fbe7a95c..b36e0f4c5 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 @@ -38,19 +38,32 @@ public class CmsDeployment implements NodeDeployment, ManagedService { private Repository deployedNodeRepository; private HomeRepository homeRepository; - + + private Long availableSince; + @Override public void updated(Dictionary properties) throws ConfigurationException { if (properties == null) return; - prepareDataModel(KernelUtils.openAdminSession(deployedNodeRepository)); - Hashtable regProps = new Hashtable(); - regProps.put(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS, ArgeoJcrConstants.ALIAS_HOME); - homeRepository = new HomeRepository(deployedNodeRepository); - // register - bc.registerService(Repository.class, homeRepository, regProps); -} + if (deployedNodeRepository != null) { + if (availableSince != null) { + throw new CmsException("Deployment is already available"); + } + + availableSince = System.currentTimeMillis(); + + prepareDataModel(KernelUtils.openAdminSession(deployedNodeRepository)); + Hashtable regProps = new Hashtable(); + regProps.put(ArgeoJcrConstants.JCR_REPOSITORY_ALIAS, ArgeoJcrConstants.ALIAS_HOME); + homeRepository = new HomeRepository(deployedNodeRepository); + // register + bc.registerService(Repository.class, homeRepository, regProps); + + } else { + throw new CmsException("No node repository available"); + } + } /** Session is logged out. */ private void prepareDataModel(Session adminSession) { @@ -113,5 +126,9 @@ public class CmsDeployment implements NodeDeployment, ManagedService { this.deployedNodeRepository = deployedNodeRepository; } - + @Override + public long getAvailableSince() { + return availableSince; + } + }