de.juplo.plugins.hibernate.MutableClassLoader Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-maven-plugin Show documentation
Show all versions of hibernate-maven-plugin Show documentation
A simple plugin for generating a database-schema from Hibernate-Mappings
The newest version!
package de.juplo.plugins.hibernate;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import org.apache.maven.plugin.logging.Log;
/**
*
* @author kai
*/
public class MutableClassLoader extends ClassLoader
{
private URLClassLoader loader;
private Log log;
public MutableClassLoader(LinkedHashSet urls, Log log)
{
if (log.isDebugEnabled())
for (URL url : urls)
log.debug(url.toString());
loader =
new URLClassLoader(
urls.toArray(new URL[urls.size()]),
getClass().getClassLoader()
);
this.log = log;
}
public MutableClassLoader add(LinkedHashSet urls)
{
LinkedHashSet old =
new LinkedHashSet(Arrays.asList(loader.getURLs()));
old.addAll(urls);
if (log.isDebugEnabled())
for (URL url : urls)
log.debug(url.toString());
loader =
new URLClassLoader(
old.toArray(new URL[urls.size()]),
getClass().getClassLoader()
);
return this;
}
@Override
public void clearAssertionStatus()
{
loader.clearAssertionStatus();
}
@Override
public void setClassAssertionStatus(String className, boolean enabled)
{
loader.setClassAssertionStatus(className, enabled);
}
@Override
public void setPackageAssertionStatus(String packageName, boolean enabled)
{
loader.setPackageAssertionStatus(packageName, enabled);
}
@Override
public void setDefaultAssertionStatus(boolean enabled)
{
loader.setDefaultAssertionStatus(enabled);
}
@Override
public InputStream getResourceAsStream(String name)
{
return loader.getResourceAsStream(name);
}
@Override
public Enumeration getResources(String name) throws IOException
{
return loader.getResources(name);
}
@Override
public URL getResource(String name)
{
return loader.getResource(name);
}
@Override
public Class> loadClass(String name) throws ClassNotFoundException
{
return loader.loadClass(name);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy