return Optional.of(new VFSClassLoader(objects, vfs, vfs.getClass().getClassLoader()));
cl = new VFSClassLoader(files, vfs, parent.getClassLoader()); else cl = new PostDelegatingVFSClassLoader(files, vfs, parent.getClassLoader());
public AccumuloReloadingVFSClassLoader(String uris, FileSystemManager vfs, ReloadingClassLoader parent, long monitorDelay, boolean preDelegate) throws FileSystemException { this.uris = uris; this.parent = parent; this.preDelegate = preDelegate; ArrayList<FileObject> pathsToMonitor = new ArrayList<>(); files = AccumuloVFSClassLoader.resolve(vfs, uris, pathsToMonitor); if (preDelegate) cl = new VFSClassLoader(files, vfs, parent.getClassLoader()); else cl = new PostDelegatingVFSClassLoader(files, vfs, parent.getClassLoader()); monitor = new DefaultFileMonitor(this); monitor.setDelay(monitorDelay); monitor.setRecursive(false); for (FileObject file : pathsToMonitor) { monitor.addFile(file); log.debug("monitoring {}", file); } monitor.start(); }
localLoader = createDynamicClassloader(new VFSClassLoader(vfsCP, vfs, parent)); loader = localLoader;
@Override public void run() { while (!executor.isTerminating()) { try { FileSystemManager vfs = AccumuloVFSClassLoader.generateVfs(); FileObject[] files = AccumuloVFSClassLoader.resolve(vfs, uris); log.debug("Rebuilding dynamic classloader using files- " + stringify(files)); VFSClassLoader cl; if (preDelegate) cl = new VFSClassLoader(files, vfs, parent.getClassLoader()); else cl = new PostDelegatingVFSClassLoader(files, vfs, parent.getClassLoader()); updateClassloader(files, cl); return; } catch (Exception e) { log.error("{}", e.getMessage(), e); try { Thread.sleep(DEFAULT_TIMEOUT); } catch (InterruptedException ie) { log.error("{}", e.getMessage(), ie); } } } } };
/** * Creates the classloader to use when testing. */ private VFSClassLoader createClassLoader() throws FileSystemException { final FileObject file = getBaseFolder(); return new VFSClassLoader(file, getManager()); }
/** * Creates the classloader to use when testing. */ private VFSClassLoader createClassLoader() throws FileSystemException { final FileObject file = getBaseFolder(); return new VFSClassLoader(file, getManager()); }
public AccumuloReloadingVFSClassLoader(String uris, FileSystemManager vfs, ReloadingClassLoader parent, long monitorDelay, boolean preDelegate) throws FileSystemException { this.uris = uris; this.parent = parent; this.preDelegate = preDelegate; ArrayList<FileObject> pathsToMonitor = new ArrayList<>(); files = AccumuloVFSClassLoader.resolve(vfs, uris, pathsToMonitor); if (preDelegate) cl = new VFSClassLoader(files, vfs, parent.getClassLoader()); else cl = new PostDelegatingVFSClassLoader(files, vfs, parent.getClassLoader()); monitor = new DefaultFileMonitor(this); monitor.setDelay(monitorDelay); monitor.setRecursive(false); for (FileObject file : pathsToMonitor) { monitor.addFile(file); log.debug("monitoring " + file); } monitor.start(); }
localLoader = createDynamicClassloader(new VFSClassLoader(vfsCP, vfs, parent)); loader = localLoader;
/** * Tests retrieving resources (from local directory with .jar extension). * <p> * This test is repeated with various provider configurations but works on local files, only. */ public void testGetResourcesNoLayerLocal() throws Exception { final FileSystemManager manager = getManager(); try { // hasProvider("file") cannot be used as it triggers default provider URL manager.toFileObject(new File(".")); } catch (final FileSystemException e) { System.out.println("VfsClassLoaderTests no local file provider, skipping."); return; } final File baseDir = AbstractVfsTestCase.getTestDirectoryFile(); // setup test folder final FileObject dir = manager.resolveFile(baseDir, "read-tests/dir1/subdir4.jar"); assertTrue("subdir4.jar/ is required for testing " + dir, dir.getType() == FileType.FOLDER); assertFalse(manager.canCreateFileSystem(dir)); // prepare classloader final FileObject[] search = new FileObject[] { dir }; final ClassLoader mockClassloader = new MockClassloader(); final VFSClassLoader loader = new VFSClassLoader(search, getManager(), mockClassloader); // verify resource loading final Enumeration<URL> urls = loader.getResources("file1.txt"); final URL url1 = urls.nextElement(); assertFalse("Only one hit expected", urls.hasMoreElements()); assertTrue("not pointing to resource " + url1, url1.toString().endsWith("subdir4.jar/file1.txt")); }
/** * Tests retrieving resources (from local directory with .jar extension). * <p> * This test is repeated with various provider configurations but works on local files, only. */ public void testGetResourcesNoLayerLocal() throws Exception { final FileSystemManager manager = getManager(); try { // hasProvider("file") cannot be used as it triggers default provider URL manager.toFileObject(new File(".")); } catch (final FileSystemException e) { System.out.println("VfsClassLoaderTests no local file provider, skipping."); return; } final File baseDir = AbstractVfsTestCase.getTestDirectoryFile(); // setup test folder final FileObject dir = manager.resolveFile(baseDir, "read-tests/dir1/subdir4.jar"); assertTrue("subdir4.jar/ is required for testing " + dir, dir.getType() == FileType.FOLDER); assertFalse(manager.canCreateFileSystem(dir)); // prepare classloader final FileObject[] search = new FileObject[] { dir }; final ClassLoader mockClassloader = new MockClassloader(); final VFSClassLoader loader = new VFSClassLoader(search, getManager(), mockClassloader); // verify resource loading final Enumeration<URL> urls = loader.getResources("file1.txt"); final URL url1 = urls.nextElement(); assertFalse("Only one hit expected", urls.hasMoreElements()); assertTrue("not pointing to resource " + url1, url1.toString().endsWith("subdir4.jar/file1.txt")); }
final VFSClassLoader loader = new VFSClassLoader(search, getManager(), mockClassloader);
final VFSClassLoader loader = new VFSClassLoader(search, getManager(), mockClassloader);