]> git.argeo.org Git - lgpl/argeo-commons.git/blob - CmsDeploymentImpl.java
44a2866f8df50613cbeede05262e66c660272428
[lgpl/argeo-commons.git] / CmsDeploymentImpl.java
1 package org.argeo.cms.internal.runtime;
2
3 import java.io.IOException;
4 import java.net.URL;
5 import java.util.Dictionary;
6
7 import org.argeo.api.cms.CmsDeployment;
8 import org.argeo.api.cms.CmsLog;
9 import org.argeo.api.cms.CmsState;
10 import org.argeo.cms.internal.osgi.DeployConfig;
11 import org.osgi.service.http.HttpService;
12
13 /** Implementation of a CMS deployment. */
14 public class CmsDeploymentImpl implements CmsDeployment {
15 private final CmsLog log = CmsLog.getLog(getClass());
16
17 // Readiness
18 private boolean httpExpected = false;
19 private HttpService httpService;
20
21 private CmsState cmsState;
22 private DeployConfig deployConfig;
23
24 public void start() {
25 httpExpected = deployConfig.getProps(KernelConstants.JETTY_FACTORY_PID, "default") != null;
26 if (deployConfig.hasDomain()) {
27 loadIpaJaasConfiguration();
28 }
29 }
30
31 public void addFactoryDeployConfig(String factoryPid, Dictionary<String, Object> props) {
32 deployConfig.putFactoryDeployConfig(factoryPid, props);
33 deployConfig.save();
34 try {
35 deployConfig.loadConfigs();
36 } catch (IOException e) {
37 throw new IllegalStateException(e);
38 }
39 }
40
41 public Dictionary<String, Object> getProps(String factoryPid, String cn) {
42 return deployConfig.getProps(factoryPid, cn);
43 }
44
45 public boolean isHttpAvailableOrNotExpected() {
46 return (httpExpected ? httpService != null : true);
47 }
48
49 private void loadIpaJaasConfiguration() {
50 if (System.getProperty(KernelConstants.JAAS_CONFIG_PROP) == null) {
51 String jaasConfig = KernelConstants.JAAS_CONFIG_IPA;
52 URL url = getClass().getClassLoader().getResource(jaasConfig);
53 KernelUtils.setJaasConfiguration(url);
54 log.debug("Set IPA JAAS configuration.");
55 }
56 }
57
58 public void stop() {
59 if (deployConfig != null) {
60 deployConfig.save();
61 }
62 }
63
64 public void setDeployConfig(DeployConfig deployConfig) {
65 this.deployConfig = deployConfig;
66 }
67
68 public void setCmsState(CmsState cmsState) {
69 this.cmsState = cmsState;
70 }
71
72 public void setHttpService(HttpService httpService) {
73 this.httpService = httpService;
74 }
75
76 }