/** * Appends the specified FileObjects to the list of FileObjects to search for classes and resources. * * @param manager The FileSystemManager. * @param files the FileObjects to append to the search path. * @throws FileSystemException if an error occurs. */ private void addFileObjects(final FileSystemManager manager, final FileObject[] files) throws FileSystemException { for (FileObject file : files) { if (!file.exists()) { // Does not exist - skip continue; } // TODO - use federation instead if (manager.canCreateFileSystem(file)) { // Use contents of the file file = manager.createFileSystem(file); } resources.add(file); } }
/** * Appends the specified FileObjects to the list of FileObjects to search for classes and resources. * * @param manager The FileSystemManager. * @param files the FileObjects to append to the search path. * @throws FileSystemException if an error occurs. */ private void addFileObjects(final FileSystemManager manager, final FileObject[] files) throws FileSystemException { for (FileObject file : files) { if (!file.exists()) { // Does not exist - skip continue; } // TODO - use federation instead if (manager.canCreateFileSystem(file)) { // Use contents of the file file = manager.createFileSystem(file); } resources.add(file); } }
/** * Appends the specified FileObjects to the list of FileObjects to search for classes and resources. * * @param manager The FileSystemManager. * @param files the FileObjects to append to the search path. * @throws FileSystemException if an error occurs. */ private void addFileObjects(final FileSystemManager manager, final FileObject[] files) throws FileSystemException { for (FileObject file : files) { if (!file.exists()) { // Does not exist - skip continue; } // TODO - use federation instead if (manager.canCreateFileSystem(file)) { // Use contents of the file file = manager.createFileSystem(file); } resources.add(file); } }
if (fsManager.canCreateFileSystem(resolvedFile)) { fileSystem = fsManager.createFileSystem(resolvedFile); } else {
/** * Extracts the archive file {@code archiveFile} to {@code targetFolder}; both shall previously * exist. */ public void extractTo(File archiveFile, File targetFolder) throws IOException { FileSystemManager manager = VFS.getManager(); String sourceURI = resolveArchiveURI(archiveFile); // String targetURI = resolveArchiveURI(targetFolder); FileObject source = manager.resolveFile(sourceURI); if (manager.canCreateFileSystem(source)) { source = manager.createFileSystem(source); } FileObject target = manager.createVirtualFileSystem( manager.resolveFile(targetFolder.getAbsolutePath())); FileSelector selector = new AllFileSelector() { @Override public boolean includeFile(FileSelectInfo fileInfo) { LOGGER.fine( "Uncompressing " + fileInfo.getFile().getName().getFriendlyURI()); return true; } }; target.copyFrom(source, selector); source.close(); target.close(); manager.closeFileSystem(source.getFileSystem()); }
/** * 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")); }
if (!manager.canCreateFileSystem(nestedJar)) { System.out.println("VfsClassLoaderTests no layered .jar provider, skipping."); return;
/** * 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")); }
if (!manager.canCreateFileSystem(nestedJar)) { System.out.println("VfsClassLoaderTests no layered .jar provider, skipping."); return;