package org.jboss.webservice;
import org.jboss.deployment.DeploymentInfo;
import org.jboss.webservice.deployment.ServiceDescription;
import org.jboss.webservice.metadata.PortComponentMetaData;
import org.jboss.metadata.WebMetaData;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
public class PortComponentInfo
{
private DeploymentInfo di;
private PortComponentMetaData pcMetaData;
private ServiceDescription serviceDesc;
private String serviceID;
private ObjectName objectName;
public PortComponentInfo(DeploymentInfo di, PortComponentMetaData pcMetaData)
{
this.di = di;
this.pcMetaData = pcMetaData;
this.serviceID = di.getCanonicalName() + "#" + pcMetaData.getPortComponentName();
try
{
this.objectName = ObjectName.getInstance("jboss.ws4ee:port-component=" + serviceID);
}
catch (MalformedObjectNameException e)
{
throw new IllegalArgumentException("Invalid serviceID: " + serviceID);
}
}
public String getServiceID()
{
return serviceID;
}
public ObjectName getObjectName()
{
return objectName;
}
public DeploymentInfo getDeploymentInfo()
{
return di;
}
public PortComponentMetaData getPortComponentMetaData()
{
return pcMetaData;
}
public String getServiceEndpointURL()
{
return pcMetaData.getServiceEndpointURL().toExternalForm();
}
public void setServiceDesc(ServiceDescription serviceDesc)
{
this.serviceDesc = serviceDesc;
}
public ServiceDescription getServiceDescription()
{
return serviceDesc;
}
public ClassLoader getPortComponentClassLoader()
{
if (di.metaData instanceof WebMetaData)
return ((WebMetaData)di.metaData).getContextLoader();
else
return di.ucl;
}
public String toString()
{
return "[id=" + serviceID + ",address=" + pcMetaData.getServiceEndpointURL() + "]";
}
}