package org.mobicents.slee.resource.diameter.base; import javax.slee.ActivityContextInterface; import javax.slee.UnrecognizedActivityException; import net.java.slee.resource.diameter.base.DiameterActivity; import net.java.slee.resource.diameter.base.DiameterActivityContextInterfaceFactory; import org.apache.log4j.Logger; import org.mobicents.slee.container.SleeContainer; import org.mobicents.slee.resource.SleeActivityHandle; import org.mobicents.slee.runtime.ActivityContextFactory; import org.mobicents.slee.runtime.ActivityContextInterfaceImpl; public class DiameterActivityContextInterfaceFactoryImpl implements DiameterActivityContextInterfaceFactory { private static Logger logger = Logger.getLogger(DiameterActivityContextInterfaceFactoryImpl.class); private SleeContainer serviceContainer = null; private String jndiName = null; private ActivityContextFactory factory = null; private String raEntityName = null; public DiameterActivityContextInterfaceFactoryImpl(SleeContainer serviceContainer, String jndiName) { super(); logger.info("Diameter Base RA :: DiameterActivityContextInterfaceFactoryImpl :: serviceContainer[" + serviceContainer + "], jndiName[" + jndiName + "]."); this.serviceContainer = serviceContainer; this.jndiName = "java:slee/resources/" + jndiName + "/diameter-base-ra-acif"; this.factory = serviceContainer.getActivityContextFactory(); this.raEntityName = jndiName; } public String getJndiName() { return this.jndiName; } public ActivityContextInterface getActivityContextInterface( DiameterActivity activity ) throws UnrecognizedActivityException { logger.info("Diameter Base RA :: getActivityContextInterface :: activity[" + activity + "]."); if (activity == null) throw new NullPointerException("Received null in ACIF"); return new ActivityContextInterfaceImpl(this.serviceContainer, this.factory.getActivityContext( new SleeActivityHandle(raEntityName, ((DiameterActivityImpl)activity ).getActivityHandle(), serviceContainer)) .getActivityContextId()); } }