List of usage examples for org.apache.commons.vfs FileObject getContent
public FileContent getContent() throws FileSystemException;
From source file:com.github.lucapino.sheetmaker.parsers.mediainfo.MediaInfoRetriever.java
@Override public MovieInfo getMovieInfo(String filePath) { MediaInfo mediaInfo = new MediaInfo(); String fileToParse = filePath; // test if we have iso if (filePath.toLowerCase().endsWith("iso")) { // open iso and parse the ifo files Map<Integer, String> ifoFiles = new TreeMap<>(); try {//w ww . j av a 2s . c o m FileSystemManager fsManager = VFS.getManager(); FileObject fo = fsManager.resolveFile("iso:" + filePath + "!/"); // create an ifo file selector FileSelector ifoFs = new FileFilterSelector(new FileFilter() { @Override public boolean accept(FileSelectInfo fsi) { return fsi.getFile().getName().getBaseName().toLowerCase().endsWith("ifo"); } }); FileObject[] files = fo.getChild("VIDEO_TS").findFiles(ifoFs); for (FileObject file : files) { File tmpFile = new File( System.getProperty("java.io.tmpdir") + File.separator + file.getName().getBaseName()); System.out.println(file.getName().getBaseName()); IOUtils.copy(file.getContent().getInputStream(), new FileOutputStream(tmpFile)); mediaInfo.Open(tmpFile.getAbsolutePath()); String format = mediaInfo.Get(MediaInfo.StreamKind.General, 0, "Format_Profile", MediaInfo.InfoKind.Text, MediaInfo.InfoKind.Name); System.out.println("Format profile: " + format); // if format is "Program" -> it's a video file if (format.equalsIgnoreCase("program")) { String duration = mediaInfo.Get(MediaInfo.StreamKind.General, 0, "Duration", MediaInfo.InfoKind.Text, MediaInfo.InfoKind.Name); System.out.println("Duration: " + duration); ifoFiles.put(Integer.valueOf(duration), tmpFile.getName()); } mediaInfo.Close(); } if (!ifoFiles.isEmpty()) { if (ifoFiles.size() == 1) { fileToParse = ifoFiles.values().iterator().next(); } else { // get the last entry -> the bigger one Set<Integer> keys = ifoFiles.keySet(); Iterator<Integer> iterator = keys.iterator(); for (int i = 0; i < keys.size(); i++) { String fileName = ifoFiles.get(iterator.next()); if (i == keys.size() - 1) { fileToParse = fileName; } else { new File(fileName).delete(); } } } } } catch (IOException | NumberFormatException ex) { } } // here fileToParse is correct mediaInfo.Open(fileToParse); System.out.println(mediaInfo.Inform()); return new MovieInfoImpl(mediaInfo, filePath); }
From source file:com.pongasoft.kiwidoc.builder.KiwidocBuilder.java
/** * Builds the kiwidoc for the given library * * @param library (optional, <code>null</code> ok) dependencies * @return the model builder/*from w w w . jav a 2 s. c o m*/ * @throws BuilderException when there is a problem indexing */ public LibraryModelBuilder buildKiwidoc(Library library) throws IOException, BuilderException { Set<BuiltFrom> builtFrom = EnumSet.noneOf(BuiltFrom.class); Manifest manifest = null; LibraryModelBuilder libFromByteCode = null; // if we have the library itself (jar file) if (library.classes != null) { builtFrom.add(BuiltFrom.BYTECODE); // manifest FileObject manifestResource = library.classes.resolveFile("META-INF/MANIFEST.MF"); if (manifestResource.exists()) { manifest = new Manifest(); InputStream is = manifestResource.getContent().getInputStream(); try { manifest.read(new BufferedInputStream(is)); } finally { is.close(); } } // byte code libFromByteCode = new LibraryModelBuilder(library.libraryVersionResource); new ByteCodeParser().parseClasses(libFromByteCode, library.classes); } LibraryModelBuilder libFromSource = null; // if we have the source code if (library.sources != null) { try { libFromSource = new LibraryModelBuilder(library.libraryVersionResource); if (libFromByteCode != null) libFromSource.setJdkVersion(libFromByteCode.getJdkVersion()); else libFromSource.setJdkVersion(library.jdkVersion); int sourceCount = new SourceCodeParser().parseSources(libFromSource, library.sources, library.overviewFilename, library.publicOnly ? library.javadoc : null, library.classpath); if (sourceCount == 0) { libFromSource = null; log.warn("No sources found in " + library.sources); } else { builtFrom.add(BuiltFrom.SOURCE); } } catch (IOException e) { throw e; } catch (Throwable th) { throw new BuilderException(th); } } // compute which version to use (source code wins if available) LibraryModelBuilder lib = new LibraryModelBuilder(library.libraryVersionResource); if (libFromByteCode != null) { lib = libFromByteCode; } if (libFromSource != null) { lib = libFromSource; } log.info("Processed source|bytecode: " + (libFromSource == null ? "N/A" : libFromSource.getClassCount()) + " | " + (libFromByteCode == null ? "N/A" : libFromByteCode.getClassCount())); // TODO MED YP: use byte code for resolving unresolved types during javadoc processing // if we have the original javadoc (used for determining exported classes) if (library.javadoc != null) { builtFrom.add(BuiltFrom.JAVADOC); for (PackageModelBuilder packageModelBuilder : lib.getAllPackages()) { for (ClassModelBuilder classModelBuilder : packageModelBuilder.getAllClasses()) { String javadocFile = classModelBuilder.getFqcn(); javadocFile = javadocFile.replace('.', '/'); javadocFile = javadocFile.replace('$', '.'); // for inner classes javadocFile += ".html"; try { classModelBuilder.setExportedClass( library.javadoc.resolveFile(javadocFile, NameScope.DESCENDENT).exists()); } catch (FileSystemException e) { log.warn("Error while setting exported class on " + javadocFile + " [" + classModelBuilder.getFqcn() + "]", e); } } } } // dependencies lib.setDependencies(library.dependencies); // manifest lib.setManifest(manifest); // built from lib.addBuiltFrom(builtFrom); return lib; }
From source file:com.rapleaf.ramhdfs.RamFileSystem.java
@Override public FSDataOutputStream create(Path f, FsPermission permission, boolean overwrite, int bufferSize, short replication, long blockSize, Progressable progress) throws IOException { if (exists(f) && !overwrite) { throw new IOException("File already exists:" + f); }//from ww w . j a v a 2s . co m Path parent = f.getParent(); if (parent != null && !mkdirs(parent)) { throw new IOException("Mkdirs failed to create " + parent.toString()); } FileObject fo = pathToFileObject(f); fo.createFile(); fo.getContent().setLastModifiedTime(System.currentTimeMillis()); setPermission(f, permission); return new FSDataOutputStream(new BufferedOutputStream(new RamFSOutputStream(fo), bufferSize), statistics); }
From source file:com.github.stephenc.javaisotools.iso9660.impl.CreateISOTest.java
@Test public void canCreateAnIsoWithSomeFiles() throws Exception { // Output file File outfile = new File(workDir, "test.iso"); File contentsA = new File(workDir, "a.txt"); OutputStream os = new FileOutputStream(contentsA); IOUtil.copy("Hello", os); IOUtil.close(os);// w ww. j av a 2s.co m File contentsB = new File(workDir, "b.txt"); os = new FileOutputStream(contentsB); IOUtil.copy("Goodbye", os); IOUtil.close(os); // Directory hierarchy, starting from the root ISO9660RootDirectory.MOVED_DIRECTORIES_STORE_NAME = "rr_moved"; ISO9660RootDirectory root = new ISO9660RootDirectory(); ISO9660Directory dir = root.addDirectory("root"); dir.addFile(contentsA); dir.addFile(contentsB); StreamHandler streamHandler = new ISOImageFileHandler(outfile); CreateISO iso = new CreateISO(streamHandler, root); ISO9660Config iso9660Config = new ISO9660Config(); iso9660Config.allowASCII(false); iso9660Config.setInterchangeLevel(2); iso9660Config.restrictDirDepthTo8(true); iso9660Config.setVolumeID("ISO Test"); iso9660Config.forceDotDelimiter(true); RockRidgeConfig rrConfig = new RockRidgeConfig(); rrConfig.setMkisofsCompatibility(true); rrConfig.hideMovedDirectoriesStore(true); rrConfig.forcePortableFilenameCharacterSet(true); JolietConfig jolietConfig = new JolietConfig(); jolietConfig.setVolumeID("Joliet Test"); jolietConfig.forceDotDelimiter(true); iso.process(iso9660Config, rrConfig, jolietConfig, null); assertThat(outfile.isFile(), is(true)); assertThat(outfile.length(), not(is(0L))); FileSystemManager fsManager = VFS.getManager(); FileObject isoFile = fsManager.resolveFile("iso:" + outfile.getPath() + "!/root"); FileObject t = isoFile.getChild("a.txt"); assertThat(t, CoreMatchers.<Object>notNullValue()); assertThat(t.getType(), is(FileType.FILE)); assertThat(t.getContent().getSize(), is(5L)); assertThat(IOUtil.toString(t.getContent().getInputStream()), is("Hello")); t = isoFile.getChild("b.txt"); assertThat(t, CoreMatchers.<Object>notNullValue()); assertThat(t.getType(), is(FileType.FILE)); assertThat(t.getContent().getSize(), is(7L)); assertThat(IOUtil.toString(t.getContent().getInputStream()), is("Goodbye")); }
From source file:com.github.stephenc.javaisotools.iso9660.impl.CreateISOTest.java
@Test public void canCreateAnIsoWithLoadsOfFiles() throws Exception { final int numFiles = entropy.nextInt(50) + 50; // Output file File outfile = new File(workDir, "big.iso"); File rootDir = new File(workDir, "big"); assertThat(rootDir.isDirectory() || rootDir.mkdirs(), is(true)); // Directory hierarchy, starting from the root ISO9660RootDirectory.MOVED_DIRECTORIES_STORE_NAME = "rr_moved"; ISO9660RootDirectory root = new ISO9660RootDirectory(); for (int i = 0; i < numFiles; i++) { File content = new File(rootDir, Integer.toString(i) + ".bin"); int length = entropy.nextInt(1024 * 10 + 1); byte[] contents = new byte[length]; entropy.nextBytes(contents);//from w ww. ja v a 2 s .c o m FileOutputStream fos = null; try { fos = new FileOutputStream(content); fos.write(contents); } finally { IOUtil.close(fos); } root.addFile(content); } StreamHandler streamHandler = new ISOImageFileHandler(outfile); CreateISO iso = new CreateISO(streamHandler, root); ISO9660Config iso9660Config = new ISO9660Config(); iso9660Config.allowASCII(false); iso9660Config.setInterchangeLevel(2); iso9660Config.restrictDirDepthTo8(true); iso9660Config.setVolumeID("ISO Test"); iso9660Config.forceDotDelimiter(true); RockRidgeConfig rrConfig = new RockRidgeConfig(); rrConfig.setMkisofsCompatibility(true); rrConfig.hideMovedDirectoriesStore(true); rrConfig.forcePortableFilenameCharacterSet(true); JolietConfig jolietConfig = new JolietConfig(); jolietConfig.setVolumeID("Joliet Test"); jolietConfig.forceDotDelimiter(true); iso.process(iso9660Config, rrConfig, jolietConfig, null); assertThat(outfile.isFile(), is(true)); assertThat(outfile.length(), not(is(0L))); FileSystemManager fsManager = VFS.getManager(); for (int i = 0; i < numFiles; i++) { File content = new File(rootDir, Integer.toString(i) + ".bin"); FileObject t = fsManager.resolveFile("iso:" + outfile.getPath() + "!/" + Integer.toString(i) + ".bin"); assertThat(t, CoreMatchers.<Object>notNullValue()); assertThat(t.getType(), is(FileType.FILE)); assertThat(t.getContent().getSize(), is(content.length())); assertThat(IOUtil.toByteArray(t.getContent().getInputStream()), is(IOUtil.toByteArray(new FileInputStream(content)))); } }
From source file:be.ibridge.kettle.trans.step.sortrows.SortRows.java
private boolean addBuffer(Row r) { if (r != null) { data.buffer.add(r); // Save row }//from w w w . jav a2 s .co m if (data.files.size() == 0 && r == null) // No more records: sort buffer { quickSort(data.buffer); } // time to write to disk: buffer is full! if (data.buffer.size() == meta.getSortSize() // Buffer is full: sort & dump to disk || (data.files.size() > 0 && r == null && data.buffer.size() > 0) // No more records: join from disk ) { // First sort the rows in buffer[] quickSort(data.buffer); // Then write them to disk... DataOutputStream dos; GZIPOutputStream gzos; int p; try { FileObject fileObject = KettleVFS.createTempFile(meta.getPrefix(), ".tmp", StringUtil.environmentSubstitute(meta.getDirectory())); data.files.add(fileObject); // Remember the files! OutputStream outputStream = fileObject.getContent().getOutputStream(); if (meta.getCompress()) { gzos = new GZIPOutputStream(new BufferedOutputStream(outputStream)); dos = new DataOutputStream(gzos); } else { dos = new DataOutputStream(outputStream); gzos = null; } // How many records do we have? dos.writeInt(data.buffer.size()); for (p = 0; p < data.buffer.size(); p++) { if (p == 0) { // Save the metadata, keep it in memory data.rowMeta.add(new Row(((Row) data.buffer.get(p)))); } // Just write the data, nothing else ((Row) data.buffer.get(p)).writeData(dos); } // Close temp-file dos.close(); // close data stream if (gzos != null) { gzos.close(); // close gzip stream } outputStream.close(); // close file stream } catch (Exception e) { logError("Error processing temp-file: " + e.toString()); return false; } data.buffer.clear(); } return true; }
From source file:egovframework.rte.fdl.filehandling.FilehandlingServiceTest.java
@Test public void testCaching3() throws Exception { FileSystemManager manager = VFS.getManager(); String testFolder = "d:/workspace/java/e-gov/eGovFramework/RTE/DEV/trunk/Foundation/egovframework.rte.fdl.filehandling/test"; FileObject scratchFolder = manager.resolveFile(testFolder); // releaseable FileObject dir1 = scratchFolder.resolveFile("file1.txt"); // avoid cache removal FileObject dir2 = scratchFolder.resolveFile("file2.txt"); dir2.getContent(); // check if the cache still holds the right instance FileObject dir2_2 = scratchFolder.resolveFile("file2.txt"); assertTrue(dir2 == dir2_2);/*from w ww . j a v a 2 s.c o m*/ // check if the cache still holds the right instance /* FileObject dir1_2 = scratchFolder.resolveFile("file1.txt"); assertFalse(dir1 == dir1_2);*/ }
From source file:be.ibridge.kettle.trans.step.sortrows.SortRows.java
private Row getBuffer() { int i, f;//from ww w. j ava 2s . c om int smallest; Row r1, r2; Row retval; // Open all files at once and read one row from each file... if (data.files.size() > 0 && (data.dis.size() == 0 || data.fis.size() == 0)) { logBasic("Opening " + data.files.size() + " tmp-files..."); try { for (f = 0; f < data.files.size() && !isStopped(); f++) { FileObject fileObject = (FileObject) data.files.get(f); String filename = KettleVFS.getFilename(fileObject); if (log.isDetailed()) logDetailed("Opening tmp-file: [" + filename + "]"); InputStream fi = fileObject.getContent().getInputStream(); DataInputStream di; data.fis.add(fi); if (meta.getCompress()) { GZIPInputStream gzfi = new GZIPInputStream(new BufferedInputStream(fi)); di = new DataInputStream(gzfi); data.gzis.add(gzfi); } else { di = new DataInputStream(fi); } data.dis.add(di); // How long is the buffer? int buffersize = di.readInt(); if (log.isDetailed()) logDetailed("[" + filename + "] expecting " + buffersize + " rows..."); if (buffersize > 0) { // Read a row from each temp-file Row metadata = (Row) data.rowMeta.get(f); data.rowbuffer.add(new Row(di, metadata.size(), metadata)); // new row } } } catch (Exception e) { logError("Error reading back tmp-files : " + e.toString()); e.printStackTrace(); } } if (data.files.size() == 0) { if (data.buffer.size() > 0) { retval = (Row) data.buffer.get(0); data.buffer.remove(0); } else { retval = null; } } else { if (data.rowbuffer.size() == 0) { retval = null; } else { // We now have "filenr" rows waiting: which one is the smallest? // for (i = 0; i < data.rowbuffer.size() && !isStopped(); i++) { Row b = (Row) data.rowbuffer.get(i); if (log.isRowLevel()) logRowlevel("--BR#" + i + ": " + b.toString()); } // smallest = 0; r1 = (Row) data.rowbuffer.get(smallest); for (f = 1; f < data.rowbuffer.size() && !isStopped(); f++) { r2 = (Row) data.rowbuffer.get(f); if (r2 != null && r2.compare(r1, data.fieldnrs, meta.getAscending()) < 0) { smallest = f; r1 = (Row) data.rowbuffer.get(smallest); } } retval = r1; data.rowbuffer.remove(smallest); if (log.isRowLevel()) logRowlevel("Smallest row selected on [" + smallest + "] : " + retval); // now get another Row for position smallest FileObject file = (FileObject) data.files.get(smallest); DataInputStream di = (DataInputStream) data.dis.get(smallest); InputStream fi = (InputStream) data.fis.get(smallest); GZIPInputStream gzfi = (meta.getCompress()) ? (GZIPInputStream) data.gzis.get(smallest) : null; try { Row metadata = (Row) data.rowMeta.get(smallest); data.rowbuffer.add(smallest, new Row(di, metadata.size(), metadata)); } catch (KettleFileException fe) // empty file or EOF mostly { try { di.close(); fi.close(); if (gzfi != null) gzfi.close(); file.delete(); } catch (IOException e) { logError("Unable to close/delete file #" + smallest + " --> " + file.toString()); setErrors(1); stopAll(); return null; } data.files.remove(smallest); data.dis.remove(smallest); data.fis.remove(smallest); if (gzfi != null) data.gzis.remove(smallest); data.rowMeta.remove(smallest); } } } return retval; }
From source file:cc.aileron.dao.db.sql.G2DaoSqlMapImpl.java
@Override public void compile(final Class<?> targetClass) throws IOException, ResourceNotFoundException, TemplateSyntaxEexception, ParserMethodNotFoundException { final String sqlDir = getDir(targetClass); if (StringUtils.isEmpty(sqlDir)) { return;//from ww w. j av a 2 s. co m } logger.trace("compile : {} @ {}", targetClass, sqlDir); final Enumeration<URL> urls = Thread.currentThread().getContextClassLoader().getResources(sqlDir); while (urls.hasMoreElements()) { final URL url = urls.nextElement(); final Resource resource = ResourceConvertUtils.convertUrl(url); for (final FileObject file : resource.toFileObject().getChildren()) { final String name = file.getName().getBaseName().split("\\.")[0]; logger.trace("load sql-file : {}.sql", name); if (!file.getType().equals(FileType.FILE) || !file.getName().getExtension().equals("sql")) { continue; } /* * SQL?? */ final Template template = compiler.compile(resource(file.getContent()).toString()); /* * findBy -> find ???? */ final String key = name.replaceFirst("^findBy", "find").replaceFirst("^countBy", "count") .replaceFirst("^updateBy", "update").replaceFirst("^deleteBy", "delete") .replaceFirst("^executeBy", "execute"); final HashMap<String, Template> m = sqlMap.get(targetClass); m.put(key, template); m.put(name, template); } } }
From source file:egovframework.rte.fdl.filehandling.FilehandlingServiceTest.java
/** * @throws Exception/*from w ww. j a va2 s. c o m*/ */ @Test public void testTouch() throws Exception { String path = tmppath + "/movedfile.txt"; FileObject file = EgovFileUtil.getFileObject(path); long setTime = EgovFileUtil.touch(path); assertEquals(file.getContent().getLastModifiedTime(), setTime); }