Examples of WatchResourcesClassLoader


Examples of org.hotswap.agent.util.classloader.WatchResourcesClassLoader

        final File tempFile = new File(directory.toFile(), "test");
        tempFile.createNewFile();
        final Watcher watcher = new WatcherNIO2();
        watcher.run();

        WatchResourcesClassLoader classLoader = new WatchResourcesClassLoader();
        classLoader.initWatchResources(new URL[]{directory.toUri().toURL()}, watcher);

        assertNull("Not returned before modification", classLoader.getResource(tempFile.getName()));

        // modify
        tempFile.setLastModified(new Date().getTime());
        for (int i = 0; i < 100; i++) {
            if (classLoader.getResource(tempFile.getName()) != null)
                break;

            // wait for NIO thread
            try {
                Thread.sleep(10);
            } catch (InterruptedException e) {
            }
        }


        assertNotNull("Returned after modification", classLoader.getResource(tempFile.getName()));
    }
View Full Code Here

Examples of org.hotswap.agent.util.classloader.WatchResourcesClassLoader

            registeredResourcesMap.put(resource, appClassLoader);

            // create plugin configuration in advance to get extraClasspath and watchResources properties
            PluginConfiguration pluginConfiguration = new PluginConfiguration(appClassLoader);

            WatchResourcesClassLoader watchResourcesClassLoader = new WatchResourcesClassLoader(false);

            URL[] extraClasspath = pluginConfiguration.getExtraClasspath();
            if (extraClasspath.length > 0) {
                if (majorVersion > 7)
                    watchResourcesClassLoader.initExtraPath(extraClasspath);
                else
                    addRepositoriesAtStart(appClassLoader, extraClasspath, false);

            }

            URL[] watchResources = pluginConfiguration.getWatchResources();
            if (watchResources.length > 0) {
                if (majorVersion > 7)
                    watchResourcesClassLoader.initWatchResources(watchResources, PluginManager.getInstance().getWatcher());
                else
                    addRepositoriesAtStart(appClassLoader, watchResources, true);
            }

            // register special repo
            getExtraRepositories(appClassLoader).put(WEB_INF_CLASSES, watchResourcesClassLoader);

            // register special repo for webappDir
            URL webappDir = pluginConfiguration.getWebappDir();
            if (webappDir != null) {
                WatchResourcesClassLoader webappDirClassLoader = new WatchResourcesClassLoader(false);
                webappDirClassLoader.initExtraPath(new URL[] {webappDir});

                getExtraRepositories(appClassLoader).put("/", webappDirClassLoader);
            }
        }
View Full Code Here

Examples of org.hotswap.agent.util.classloader.WatchResourcesClassLoader

        File[] files = (File[]) ReflectionHelper.get(appClassLoader, "files");
        File[] result2 = new File[files.length + newRepositories.length];
        for (int i=0; i < newRepositories.length; i++) {
            try {
                WatchResourcesClassLoader watchResourcesClassLoader = new WatchResourcesClassLoader();

                if (watchResources) {
                    watchResourcesClassLoader.initWatchResources(new URL[]{newRepositories[i]}, PluginManager.getInstance().getWatcher());
                } else {
                    watchResourcesClassLoader.initExtraPath(new URL[]{newRepositories[i]});
                }

                getExtraRepositories(appClassLoader).put(repositories[i], watchResourcesClassLoader);
                result2[i] = new File(newRepositories[i].toURI());
            } catch (URISyntaxException e) {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.