001    package com.khubla.pragmatach.plugin.cluster.plugin;
002    
003    import java.util.HashMap;
004    import java.util.Map;
005    
006    import com.khubla.pragmatach.framework.api.I8NProvider;
007    import com.khubla.pragmatach.framework.api.Plugin;
008    import com.khubla.pragmatach.framework.api.PluginContext;
009    import com.khubla.pragmatach.framework.api.PragmatachException;
010    import com.khubla.pragmatach.framework.controller.PragmatachController;
011    import com.khubla.pragmatach.plugin.cluster.ClusteredControllers;
012    
013    /**
014     * @author tome
015     */
016    public class PluginImpl implements Plugin {
017       /**
018        * the plugin context
019        */
020       private PluginContext pluginContext;
021    
022       @Override
023       public I8NProvider getI8NProvider() {
024          return null;
025       }
026    
027       @Override
028       public String getName() {
029          return "Cluster";
030       }
031    
032       public PluginContext getPluginContext() {
033          return pluginContext;
034       }
035    
036       @Override
037       public Map<String, Object> getTemplateVariables() {
038          try {
039             final Map<String, Object> ret = new HashMap<String, Object>();
040             /*
041              * add all the cluster controllers by name
042              */
043             final Map<String, PragmatachController> controllerInstances = ClusteredControllers.getInstance().getControllerInstances();
044             if (null != controllerInstances) {
045                /*
046                 * walk clustered controllers
047                 */
048                for (final String controllerName : controllerInstances.keySet()) {
049                   /*
050                    * add
051                    */
052                   ret.put(controllerName, controllerInstances.get(controllerName));
053                }
054             }
055             return ret;
056          } catch (final Exception e) {
057             e.printStackTrace();
058             return null;
059          }
060       }
061    
062       @Override
063       public void setPluginContext(PluginContext pluginContext) {
064          this.pluginContext = pluginContext;
065       }
066    
067       @Override
068       public void startup() throws PragmatachException {
069          try {
070             /*
071              * this will instantiate all the controllers
072              */
073             ClusteredControllers.getInstance();
074          } catch (final Exception e) {
075             throw new PragmatachException("Exception in startup", e);
076          }
077       }
078    }