Files
HRMS/hrmsEjb/wenrgise/common/utility/WorkFlowServiceLocator.java
2025-07-28 13:56:49 +05:30

62 lines
2.2 KiB
Java

package wenrgise.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 WorkFlowServiceLocator {
private HashMap homeCache;
private final HashMap cacheMap = new HashMap();
private static WorkFlowServiceLocator serviceLocator = new WorkFlowServiceLocator();
private WorkFlowServiceLocator() {
try {
this.homeCache = new HashMap();
} catch (Throwable e) {
e.printStackTrace();
}
}
public static WorkFlowServiceLocator getLocator() {
return serviceLocator;
}
public Object getService(String jndiName) throws EnrgiseSystemException {
try {
if (!this.homeCache.containsKey(jndiName)) {
Context context = WorkFlowContextProvider.getContext();
this.homeCache.put(jndiName, context.lookup(jndiName));
}
} catch (NamingException oNa) {
System.out.println(String.valueOf(String.valueOf(String.valueOf("The problem is ").concat(String.valueOf(oNa.getMessage()))).concat(String.valueOf(" the type is "))).concat(String.valueOf(oNa.getClass().getName())));
throw new EnrgiseSystemException(oNa);
} catch (Exception oEx) {
System.out.println(String.valueOf(String.valueOf(String.valueOf("The problem is ").concat(String.valueOf(oEx.getMessage()))).concat(String.valueOf(" the type is "))).concat(String.valueOf(oEx.getClass().getName())));
throw new EnrgiseSystemException(oEx);
}
return this.homeCache.get(jndiName);
}
public EJBLocalHome getLocalHome(String jndiHomeName) throws EnrgiseSystemException {
EJBLocalHome home = null;
try {
jndiHomeName = jndiHomeName.trim();
Context context = WorkFlowContextProvider.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) {
ne.printStackTrace();
throw new EnrgiseSystemException(ne);
}
return home;
}
}