View Javadoc

1   package org.kuali.ole;
2   
3   import org.apache.commons.lang.StringUtils;
4   import org.kuali.ole.docstore.discovery.util.DiscoveryEnvUtil;
5   import org.kuali.ole.docstore.util.DocStoreEnvUtil;
6   import org.kuali.ole.docstore.utility.DocumentStoreMaintenance;
7   import org.kuali.ole.utility.Constants;
8   import org.kuali.rice.core.api.config.module.RunMode;
9   import org.kuali.rice.core.framework.config.module.ModuleConfigurer;
10  import java.io.IOException;
11  import java.util.Arrays;
12  
13  
14  /**
15   * Created with IntelliJ IDEA.
16   * User: pvsubrah
17   * Date: 6/13/13
18   * Time: 1:31 PM
19   * To change this template use File | Settings | File Templates.
20   */
21  public class OleDocstoreModuleConfigurer extends ModuleConfigurer {
22      private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(OleDocstoreModuleConfigurer.class);
23  
24      DocStoreEnvUtil docStoreEnvUtil = new DocStoreEnvUtil();
25      DiscoveryEnvUtil discoveryEnvUtil = new DiscoveryEnvUtil();
26      DocumentStoreMaintenance documentStoreMaintenance = new DocumentStoreMaintenance();
27  
28      public OleDocstoreModuleConfigurer() {
29          super("OLE-DOCSTORE");
30          LOG.info("OLE-Docstore Configurer instantiated");
31          setValidRunModes(Arrays.asList(RunMode.LOCAL));
32      }
33  
34      @Override
35      protected void doAdditionalModuleStartLogic() throws Exception {
36          LOG.info("*********************************************************");
37          LOG.info("OLE Docstore Starting Module");
38          LOG.info("*********************************************************");
39          super.doAdditionalModuleStartLogic();
40  
41          try {
42              docStoreEnvUtil.initEnvironment();
43              discoveryEnvUtil.initEnvironment();
44              String docstoreHome = System.getProperty(Constants.OLE_DOCSTORE_HOME_SYSTEM_PROPERTY);
45              String discoveryHome = System.getProperty(Constants.OLE_DISCOVERY_HOME_SYSTEM_PROPERTY);
46              validate(docstoreHome, discoveryHome);
47              documentStoreMaintenance.docStoreMaintenance(docstoreHome, discoveryHome);
48          } catch (IOException e) {
49              // If the system can't be initialized properly there is no point in continuing
50              // Always throw an exception here
51              throw new IllegalStateException(e);
52          }
53  
54      }
55  
56      protected void validate(String docstoreHome, String discoveryHome) {
57          StringBuilder sb = new StringBuilder();
58          if (StringUtils.isBlank(docstoreHome)) {
59              sb.append(Constants.OLE_DOCSTORE_HOME_SYSTEM_PROPERTY + " cannot be blank. ");
60          }
61          if (StringUtils.isBlank(docstoreHome)) {
62              sb.append(Constants.OLE_DISCOVERY_HOME_SYSTEM_PROPERTY + " cannot be blank.");
63          }
64          if (sb.length() != 0) {
65              throw new IllegalStateException(sb.toString());
66          }
67      }
68  
69      @Override
70      protected void doAdditionalModuleStopLogic() throws Exception {
71          LOG.info("*********************************************************");
72          LOG.info("OLE Stopping Module");
73          LOG.info("*********************************************************");
74          super.doAdditionalModuleStopLogic();
75      }
76  }