package wenrgise.ejb.common.utility; import java.util.HashMap; import javax.ejb.EJBLocalHome; import javax.naming.Context; import javax.naming.NamingException; import wenrgise.common.exception.EnrgiseSystemException; public class ServiceLocator { private HashMap homeCache; private final HashMap cacheMap = new HashMap(); private static ServiceLocator serviceLocator = new ServiceLocator(); private ServiceLocator() { try { this.homeCache = new HashMap(); } catch (Throwable e) { e.printStackTrace(); } } public static ServiceLocator getLocator() { return serviceLocator; } public Object getService(String jndiName) throws EnrgiseSystemException { try { if (!this.homeCache.containsKey(jndiName.trim())) { System.out.println("Test For Service Locator ---->"); System.out.println(String.valueOf("JNDI Name ---->").concat(String.valueOf(jndiName))); Context context = myContextProvider.getContext(); System.out.println(String.valueOf("Context Name ---->").concat(String.valueOf(context.getNameInNamespace()))); System.out.println(String.valueOf("Context").concat(String.valueOf(context.getEnvironment()))); System.out.println("Context security java.naming.security.credentials"); System.out.println("Context url is java.naming.provider.url"); System.out.println(String.valueOf("jndiName : ").concat(String.valueOf(context.lookup(jndiName)))); this.homeCache.put(jndiName.trim(), context.lookup(jndiName.trim())); System.out.println(String.valueOf("After JNDI Name ---->").concat(String.valueOf(jndiName))); } } catch (NamingException oNa) { oNa.printStackTrace(); System.out.println(oNa.getExplanation()); throw new EnrgiseSystemException(oNa); } catch (Exception oEx) { oEx.printStackTrace(); throw new EnrgiseSystemException(oEx); } return this.homeCache.get(jndiName.trim()); } public Object getLocalService(String jndiHomeName) throws EnrgiseSystemException { Object obj = null; try { Context context = myContextProvider.getLocalContext(); if (this.cacheMap.containsKey(jndiHomeName)) { obj = this.cacheMap.get(jndiHomeName); } else { obj = context.lookup(jndiHomeName); this.cacheMap.put(jndiHomeName, obj); } } catch (NamingException ne) { ne.printStackTrace(); throw new EnrgiseSystemException(ne); } return obj; } public EJBLocalHome getLocalHome(String jndiHomeName) throws EnrgiseSystemException { System.out.println(String.valueOf("XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX").concat(String.valueOf(jndiHomeName))); EJBLocalHome home = null; try { Context context = myContextProvider.getLocalContext(); if (this.cacheMap.containsKey(jndiHomeName)) { home = (EJBLocalHome)this.cacheMap.get(jndiHomeName); } else { home = (EJBLocalHome)context.lookup(String.valueOf("java:comp/env/").concat(String.valueOf(jndiHomeName))); this.cacheMap.put(jndiHomeName, home); } } catch (NamingException ne) { System.out.println(ne); ne.printStackTrace(); throw new EnrgiseSystemException(ne); } catch (Exception oEx) { oEx.printStackTrace(); throw new EnrgiseSystemException(oEx); } return home; } }