/** * Tests if a URL represents a JAR or ZIP archive. * If there is no such file object, the test is done by heuristic: any URL with an extension is * treated as an archive. * @param url a URL to a file * @return true if the URL seems to represent a ZIP-format archive * @since 4.48 */ public static boolean isArchiveFile(URL url) { Parameters.notNull("url", url); //NOI18N if ("jar".equals(url.getProtocol())) { //NOI18N //Already inside archive, return false return false; } FileObject fo = URLMapper.findFileObject(url); if ((fo != null) && !fo.isVirtual()) { if (LOG.isLoggable(Level.FINEST)) { LOG.log(Level.FINEST, "isArchiveFile_FILE_RESOLVED", fo); //NOI18N, used by FileUtilTest.testIsArchiveFileRace } return isArchiveFile(fo); } else { return isArchiveFile(url.getPath()); } }
isDir = entry.isDirectory(); } while (wasDir ^ isDir); if (isArchiveFile(u) || entry.isFile() && entry.length() < 4) { return getArchiveRoot(u); } else if (isDir) {
return isArchiveFile(fo.getPath()); return isArchiveFile(fo.getPath()); b = isArchiveFile(fo.getPath());
private URL fileToUrl(File file) throws MalformedURLException { URL url = file.toURI().toURL(); if (FileUtil.isArchiveFile(url)) { url = FileUtil.getArchiveRoot(url); } return url; }
public final void setJavadocFolders (List<URL> c) { assert c != null; List<URL> safeCopy = Collections.unmodifiableList (new ArrayList<URL> (c)); for (Iterator<URL> it = safeCopy.iterator(); it.hasNext();) { URL url = it.next (); if (!"jar".equals (url.getProtocol()) && FileUtil.isArchiveFile(url)) { throw new IllegalArgumentException ("JavadocFolder must be a folder."); } } this.javadoc = safeCopy; this.firePropertyChange(PROP_JAVADOC_FOLDER, null, null); }
public final void setJavadocFolders (List<URL> c) { assert c != null; List<URL> safeCopy = Collections.unmodifiableList (new ArrayList<URL> (c)); for (URL url : safeCopy ) { if (!"jar".equals (url.getProtocol()) && FileUtil.isArchiveFile(url)) { throw new IllegalArgumentException ("JavadocFolder must be a folder."); } } this.javadoc = safeCopy; this.firePropertyChange(PROP_JAVADOC_FOLDER, null, null); }
/** Return URL representation of the specified file. */ private static URL fileToUrl(File file) throws MalformedURLException { URL url = file.toURI().toURL(); if (FileUtil.isArchiveFile(url)) { url = FileUtil.getArchiveRoot(url); } return url; }
/** Return URL representation of the specified file. */ private static URL fileToUrl(File file) throws MalformedURLException { URL url = file.toURI().toURL(); if (FileUtil.isArchiveFile(url)) { url = FileUtil.getArchiveRoot(url); } return url; }
public FileObject resolveRelativePathToFileObject(final String path) { if (path == null || path.length() <= 0) return null; File f; if (path.startsWith(PLATFORM_STRING_PREFIX)) f = new File(homeFile, path.substring(PLATFORM_STRING_PREFIX.length())); else f = new File(path); f = FileUtil.normalizeFile(f); final FileObject fo = FileUtil.toFileObject(f); if (fo == null || !FileUtil.isArchiveFile(fo)) return fo; return FileUtil.getArchiveRoot(fo); }
public URL resolveRelativePathToURL(final String path) { if (path == null || path.length() <= 0) return null; try { final URL url = getURL(path); if (!FileUtil.isArchiveFile(url)) { final String s = url.toExternalForm(); if (s.endsWith("/")) return url; //NOI18N return new URL(s + '/'); //NOI18N } return FileUtil.getArchiveRoot(url); } catch (MalformedURLException e) { e.printStackTrace(); return null; } }
public static URL toResourceURL(URL resource) { if (FileUtil.isArchiveFile(resource)) { resource = FileUtil.getArchiveRoot(resource); } else if (!resource.toExternalForm().endsWith("/")) { try { resource = new URL(resource.toExternalForm()+"/"); } catch (MalformedURLException mue) { ErrorManager.getDefault().notify(mue); } } return resource; }
/** * * @param file * @return * @throws java.net.MalformedURLException */ public static URL fileToUrl(File file) throws MalformedURLException { File nfile = FileUtil.normalizeFile(file); URL url = nfile.toURI().toURL(); if (FileUtil.isArchiveFile(url)) { url = FileUtil.getArchiveRoot(url); } return url; }
static URL fileToURL(File file) { try { URL url; url = file.toURI().toURL(); if (FileUtil.isArchiveFile(url)) { url = FileUtil.getArchiveRoot(url); } if (!url.toExternalForm().endsWith("/")) { //NOI18N url = new URL(url.toExternalForm() + "/"); //NOI18N } return url; } catch (MalformedURLException ex) { ErrorManager.getDefault().notify(ErrorManager.EXCEPTION, ex); return null; } }
static URL fileToURL(File file) { try { URL url; url = file.toURI().toURL(); if (FileUtil.isArchiveFile(url)) { url = FileUtil.getArchiveRoot(url); } if (!url.toExternalForm().endsWith("/")) { //NOI18N url = new URL(url.toExternalForm() + "/"); //NOI18N } return url; } catch (MalformedURLException ex) { ErrorManager.getDefault().notify(ErrorManager.EXCEPTION, ex); return null; } }
public FileObject resolveRelativePathToFileObject(String path) { if (path == null || path.length () <= 0) return null; File f; if (path.startsWith (PLATFORM_STRING_PREFIX)){ FileObject fo = URLMapper.findFileObject(installFolders.iterator().next()); if (fo == null) return null; f = new File (FileUtil.toFile(fo), path.substring (PLATFORM_STRING_PREFIX.length ())); } else { f = new File (path); if (!f.exists()) return null; } f = FileUtil.normalizeFile (f); FileObject fo = FileUtil.toFileObject(f); if (fo == null || !FileUtil.isArchiveFile(fo)) return fo; return FileUtil.getArchiveRoot(fo); }
private void checkLibraryFolder (FileObject fo) { if (!FileUtil.isArchiveFile(fo)) { return; } if (fo.getParent ().equals (libFolder)) { try { classPathModifier.addRoots(new URL[] {FileUtil.getArchiveRoot(fo.getURL())}, ProjectProperties.JAVAC_CLASSPATH); } catch (IOException e) { Exceptions.printStackTrace(e); } } }
private void checkLibraryFolder (FileObject fo) { if (!FileUtil.isArchiveFile(fo)) { return; } if (fo.getParent ().equals (libFolder)) { try { cpMod.getClassPathModifier().addRoots(new URL[] {FileUtil.getArchiveRoot(fo.getURL())}, ProjectProperties.JAVAC_CLASSPATH); } catch (IOException e) { Exceptions.printStackTrace(e); } } }
@Override public boolean isBundled( String classFqn ) { List<URL> urls = libraryProvider.getJerseyClassPathURLs(); for( URL url : urls ){ FileObject root = URLMapper.findFileObject(url); if ( FileUtil.isArchiveFile(root)){ root = FileUtil.getArchiveRoot(root); } String path = classFqn.replace('.', '/')+".class"; if ( root.getFileObject(path )!= null ){ return true; } } return false; }
private JavaSource getJavaSource(SourcePathProvider sp) { String[] roots = sp.getOriginalSourceRoots(); List<FileObject> sourcePathFiles = new ArrayList<FileObject>(); for (String root : roots) { FileObject fo = FileUtil.toFileObject (new java.io.File(root)); if (fo != null && FileUtil.isArchiveFile (fo)) { fo = FileUtil.getArchiveRoot (fo); } sourcePathFiles.add(fo); } ClassPath bootPath = ClassPathSupport.createClassPath(new FileObject[] {}); ClassPath classPath = ClassPathSupport.createClassPath(new FileObject[] {}); ClassPath sourcePath = ClassPathSupport.createClassPath(sourcePathFiles.toArray(new FileObject[] {})); return JavaSource.create(ClasspathInfo.create(bootPath, classPath, sourcePath), new FileObject[] {}); }
@Override public boolean isBundled( String classFqn ) { Library restapiLibrary = LibraryManager.getDefault().getLibrary(RESTAPI_LIBRARY); List<URL> urls = restapiLibrary.getContent("classpath"); // NOI18N for( URL url : urls ){ FileObject root = URLMapper.findFileObject(url); if ( FileUtil.isArchiveFile(root)){ root = FileUtil.getArchiveRoot(root); } String classFileObject = classFqn.replace('.', '/')+".class"; // NOI18N if ( root.getFileObject(classFileObject) != null ){ return true; } } return false; }