Code Search for Developers
 
 
  

BundleClassLoaderAdapter.java from Groovy Eclipse Monkey at Krugle


Show BundleClassLoaderAdapter.java syntax highlighted

package net.sf.groovyMonkey;
import java.io.IOException;
import java.net.URL;
import java.util.Enumeration;
import org.apache.commons.lang.ArrayUtils;
import org.osgi.framework.Bundle;

public class BundleClassLoaderAdapter
extends ClassLoader
{
    private final Bundle[] bundles;
    public BundleClassLoaderAdapter( final Bundle... bundles )
    {
        this.bundles = ( Bundle[] )ArrayUtils.clone( bundles );
    }
    public BundleClassLoaderAdapter( final ClassLoader parent,
                                     final Bundle... bundles )
    {
        super( parent );
        this.bundles = ( Bundle[] )ArrayUtils.clone( bundles );
    }
    @Override
    public Class< ? > loadClass( final String name )
    throws ClassNotFoundException
    {
        try
        {
            return askBundles( name );
        }
        catch( final ClassNotFoundException cnfe ) {}
        return super.loadClass( name );
    }
    private Class< ? > askBundles( final String name )
    throws ClassNotFoundException
    {
        for( final Bundle bundle: bundles )
        {
            try
            {
                return bundle.loadClass( name );
            }
            catch( final ClassNotFoundException cnfe ) {}
        }
        throw new ClassNotFoundException( "Class " + name + " not found in bundles: " + ArrayUtils.toString( bundles ) );
    }
    @Override
    protected Class< ? > findClass( final String name )
    throws ClassNotFoundException
    {
        return askBundles( name );
    }
    @Override
    protected URL findResource( final String name )
    {
        for( final Bundle bundle : bundles )
        {
            final URL resource = bundle.getResource( name );
            if( resource != null )
                return resource;
        }
        return super.findResource( name );
    }
    @SuppressWarnings("unchecked")
    @Override
    protected Enumeration< URL > findResources( final String name )
    throws IOException
    {
        for( final Bundle bundle : bundles )
        {
            try
            {
                final Enumeration< URL > resource = ( Enumeration< URL > )bundle.getResources( name );
                if( resource != null )
                    return resource;
            }
            catch( final IOException ioe ) {}
        }
        return super.findResources( name );
    }
    public String toString()
    {
        return "bundles: " + ArrayUtils.toString( bundles );
    }
}




See more files for this project here

Groovy Eclipse Monkey

Groovy Monkey is a Utility for Eclipse that enables you to create scripts in Groovy, Beanshell, Python or Ruby to run directly in Eclipse. This tool can be used to Eclipse API exploration, automation scripts, and rapid plugin prototyping.

Project homepage: http://sourceforge.net/projects/groovy-monkey
Programming language(s): Groovy,Java,XML
License: other

  actions/
    CreateGroovyMonkeyExamplesAction.java
    PasteScriptFromClipboardAction.java
    PublishScript.java
    PublishScriptForBlogger.java
    PublishScriptForEmail.java
    PublishScriptForWiki.java
    RecreateMonkeyMenuAction.java
    SelectScriptPathDialog.java
  dom/
    bundle/
      BundleDOM.java
      BundleDOMFactory.java
    resources/
      File.java
      Line.java
      Resources.java
      ResourcesDOMFactory.java
    runner/
      RunnerDOM.java
      RunnerDOMFactory.java
    window/
      WindowDOMFactory.java
    workspace/
      WorkspaceDOMFactory.java
    BSFFunctionsDOMFactory.java
    IDynamicState.java
    IMonkeyDOMFactory.java
    MetadataDOMFactory.java
    MonitorDOM.java
    Utilities.java
  lang/
    IMonkeyScript.java
    IMonkeyScriptFactory.java
    MonkeyScript.java
    MonkeyScriptFactoryAbstract.java
  preferences/
    GroovyMonkeyPreferencePage.java
    PreferenceInitializer.java
  util/
    ListUtil.java
    MapUtil.java
    SetUtil.java
    StringUtil.java
    Transformer.java
    TreeList.java
  BundleClassLoaderAdapter.java
  DOMDescriptor.java
  ErrorDialog.java
  GroovyMonkeyPlugin.java
  Marker.java
  MonkeyClassLoader.java
  RunMonkeyScript.java
  ScriptMetadata.java
  Subscription.java
  Tags.java
  UpdateMonkeyActionsResourceChangeListener.java