package org.jboss.webservice;
import org.jboss.deployment.DeploymentException;
import org.jboss.deployment.DeploymentInfo;
import org.jboss.logging.Logger;
import org.jboss.mx.util.MBeanProxy;
import org.jboss.mx.util.MBeanProxyCreationException;
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.mx.util.ObjectNameFactory;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.naming.Context;
import java.util.Iterator;
public class WebServiceClientHandler
{
private static final Logger log = Logger.getLogger(WebServiceClientHandler.class);
public static void setupServiceRefEnvironment(Context envCtx, Iterator serviceRefs, DeploymentInfo di) throws DeploymentException
{
if (serviceRefs.hasNext() == false)
return;
MBeanServer server = MBeanServerLocator.locateJBoss();
ObjectName ws4eeObjectName = ObjectNameFactory.create("jboss.ws4ee:service=ServiceClientDeployer");
ObjectName jbosswsObjectName = ObjectNameFactory.create("jboss.ws:service=WebServiceClientDeployer");
ObjectName objectName = null;
WebServiceClientDeployment wsClientDeployment;
try
{
if (server.isRegistered(ws4eeObjectName))
{
objectName = ws4eeObjectName;
wsClientDeployment = (WebServiceClientDeployment)MBeanProxy.get(WebServiceClientDeployment.class, ws4eeObjectName, server);
}
else if (server.isRegistered(jbosswsObjectName))
{
objectName = jbosswsObjectName;
wsClientDeployment = (WebServiceClientDeployment)MBeanProxy.get(WebServiceClientDeployment.class, jbosswsObjectName, server);
}
else
{
log.warn("No web service client deployer registered");
return;
}
}
catch (MBeanProxyCreationException e)
{
throw new DeploymentException("Cannot create proxy to the web service client deployer: " + objectName);
}
wsClientDeployment.setupServiceRefEnvironment(envCtx, serviceRefs, di);
}
}