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 }