package org.jboss.deployment;
import java.net.URL;
import javax.management.ObjectName;
import org.jboss.mx.loading.LoaderRepositoryFactory;
import org.jboss.mx.loading.RepositoryClassLoader;
import org.jboss.system.ServiceMBeanSupport;
public class ClasspathExtension
extends ServiceMBeanSupport
implements ClasspathExtensionMBean
{
private String metadataURL;
private ObjectName loaderRepository;
private RepositoryClassLoader ucl;
public ClasspathExtension()
{
}
public String getMetadataURL()
{
return metadataURL;
}
public void setMetadataURL(String metadataURL)
{
this.metadataURL = metadataURL;
}
public ObjectName getLoaderRepository()
{
return loaderRepository;
}
public void setLoaderRepository(ObjectName loaderRepository)
{
this.loaderRepository = loaderRepository;
}
protected void createService() throws Exception
{
if (metadataURL != null)
{
URL url = new URL(metadataURL);
if( loaderRepository == null )
loaderRepository = LoaderRepositoryFactory.DEFAULT_LOADER_REPOSITORY;
Object[] args = {url, url, Boolean.TRUE};
String[] sig = {"java.net.URL", "java.net.URL", "boolean"};
ucl = (RepositoryClassLoader) server.invoke(loaderRepository,
"newClassLoader",args, sig);
} }
protected void destroyService() throws Exception
{
if (ucl != null)
ucl.unregister();
}
}