package org.jboss.net.axis.server;
import org.jboss.axis.EngineConfiguration;
import org.jboss.axis.EngineConfigurationFactory;
import org.jboss.axis.server.AxisServer;
import org.jboss.mx.util.MBeanServerLocator;
import javax.management.JMException;
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
public class JMXEngineConfigurationFactory
implements EngineConfigurationFactory
{
protected ObjectName objectName;
protected MBeanServer server;
protected JMXEngineConfigurationFactory(String name)
throws MalformedObjectNameException
{
server = MBeanServerLocator.locateJBoss();
this.objectName = new ObjectName(name);
}
protected Object getAttribute(String attributeName)
{
try
{
return server.getAttribute(objectName, attributeName);
}
catch (JMException e)
{
return null;
}
}
public AxisServer getAxisServer()
{
return (AxisServer)getAttribute("AxisServer");
}
public EngineConfiguration getClientEngineConfig()
{
return (EngineConfiguration)getAttribute("ClientEngineConfiguration");
}
public EngineConfiguration getServerEngineConfig()
{
return (EngineConfiguration)getAttribute("ServerEngineConfiguration");
}
public static JMXEngineConfigurationFactory newJMXFactory(String param)
{
try
{
return new JMXEngineConfigurationFactory((String)param);
}
catch (MalformedObjectNameException e)
{
return null;
}
}
public static EngineConfigurationFactory newFactory(Object param)
{
if (param instanceof String)
{
return newJMXFactory((String)param);
}
else
{
return null;
}
}
}