package org.openxdm.xcap.client.test; import java.io.IOException; import java.util.Hashtable; import javax.management.InstanceNotFoundException; import javax.management.MBeanException; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.management.ReflectionException; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import org.jboss.jmx.adaptor.rmi.RMIAdaptor; import org.junit.After; import org.junit.Before; import org.mobicents.slee.enabler.userprofile.jpa.jmx.UserProfileControlManagementMBean; import org.openxdm.xcap.client.XCAPClient; import org.openxdm.xcap.common.appusage.AppUsage; import org.openxdm.xcap.server.slee.appusage.resourcelists.ResourceListsAppUsage; public abstract class AbstractXDMJunitTest { protected XCAPClient client = null; protected AppUsage appUsage = new ResourceListsAppUsage(null); protected String user = "sip:eduardo@openxdm.org"; protected String documentName = "index"; protected String password = "password"; private ObjectName userProfileMBeanObjectName; private RMIAdaptor rmiAdaptor; private void initRmiAdaptor() throws NamingException, MalformedObjectNameException, NullPointerException { // Set Some JNDI Properties Hashtable env = new Hashtable(); env.put(Context.PROVIDER_URL, "jnp://"+ServerConfiguration.SERVER_HOST+":1099"); env.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory"); env.put(Context.URL_PKG_PREFIXES, "org.jnp.interfaces"); InitialContext ctx = new InitialContext(env); rmiAdaptor = (RMIAdaptor) ctx.lookup("jmx/rmi/RMIAdaptor"); userProfileMBeanObjectName = new ObjectName(UserProfileControlManagementMBean.MBEAN_NAME); } private void createUser(String user, String password) throws InstanceNotFoundException, MBeanException, ReflectionException, IOException { String sigs[] = { String.class.getName(), String.class.getName() }; Object[] args = { user, password }; rmiAdaptor.invoke(userProfileMBeanObjectName, "addUser", args, sigs); } private void removeUser(String user) throws InstanceNotFoundException, MBeanException, ReflectionException, IOException { String sigs[] = { String.class.getName()}; Object[] args = { user}; rmiAdaptor.invoke(userProfileMBeanObjectName, "removeUser", args, sigs); } @Before public void runBefore() throws IOException, InterruptedException, MalformedObjectNameException, NullPointerException, NamingException, InstanceNotFoundException, MBeanException, ReflectionException { client = ServerConfiguration.getXCAPClientInstance(); initRmiAdaptor(); createUser(user, password); client.setAuthenticationCredentials(user, password); client.setDoAuthentication(true); } @After public void runAfter() throws IOException, InstanceNotFoundException, MBeanException, ReflectionException { if (client != null) { client.shutdown(); client = null; } removeUser(user); appUsage = null; user = null; documentName = null; } }