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
                
            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