Giter VIP home page Giter VIP logo

Comments (4)

GoogleCodeExporter avatar GoogleCodeExporter commented on August 16, 2024
And Vincent's proposed solution:

I created a class named ClassPathManagerUtils (attached file) in the same 
package as ClassPathManager (to access its classWorld variable, which has 
default scope).
Not directly related, but somewhat useful... I created a custom ClassLoader 
(PluginAwareClassLoader, attached file) that asks all the plugin ClassLoaders 
for a class/resource instead of throwing a ClassNotFoundException right away. I 
came up with this solution when faced with the following problem : 

http://blogs.sun.com/adventures/entry/desrializing_objects_custom_class_loaders

Here is a code excerpt of my plugin initialization :
{{{
    private static void initPluginManager() {
        if (pm == null) {
            pm = PluginManagerFactory.createPluginManager();
            File pluginsDir = getPluginsDir();
            File[] pluginDirs = pluginsDir.listFiles((FileFilter) DirectoryFileFilter.DIRECTORY);
            for (File pluginDir : pluginDirs) {
                // Plugin root dir jars
                Collection<File> pluginJarFiles = FileUtils.listFiles(pluginDir, new String[] { "jar" },
                    false);
                // Accept only one root dir jar
                File pluginJarFile = pluginJarFiles.isEmpty() ? null : pluginJarFiles.iterator().next();
                if (pluginJarFile != null) {
                    URI pluginJarFileURI = pluginJarFile.toURI();
                    pm.addPluginsFrom(pluginJarFileURI);

                    File pluginLibDir = new File(pluginDir, "lib");
                    if (pluginLibDir.exists() && pluginLibDir.isDirectory()) {
                        PluginManagerImpl pmImpl = (PluginManagerImpl) pm;
                        <File> pluginDependencies = FileUtils.listFiles(pluginLibDir, new String[] { "jar" }, false);
                        ClassPathManagerUtils.addJarDependencies(pmImpl.getClassPathManager(), pluginJarFile, pluginDependencies);
                    }
                }
            } 
        }
    }
}}}

Original comment by r.biedert on 13 Sep 2010 at 8:36

from jspf.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 16, 2024
Ralf,
Can you please publish proposed class (ClassPathManagerUtils)?

Original comment by [email protected] on 22 Sep 2010 at 8:54

from jspf.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 16, 2024
Attached files. Give me some time to re-consider this report, it is related to 
Issue #19. 

Original comment by r.biedert on 23 Sep 2010 at 8:59

Attachments:

from jspf.

GoogleCodeExporter avatar GoogleCodeExporter commented on August 16, 2024
Hopefully fixed (please get 0.9.1a from the downloads and test!). Also see 
http://code.google.com/p/jspf/wiki/FAQ -> Multiplugins.

Original comment by r.biedert on 23 Sep 2010 at 3:42

  • Changed state: Fixed

from jspf.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.