/** * * @param request the original request. */ public IdentificationResultCollection(IdentificationRequest request) { correlationId = request.getIdentifier().getParentResourceId(); resourceUri = request.getIdentifier().getUri(); }
/** * * @param request the original request. */ public IdentificationResultCollection(IdentificationRequest request) { correlationId = request.getIdentifier().getParentResourceId(); resourceUri = request.getIdentifier().getUri(); }
private void closeRequest() { requests.remove(request); try { request.close(); } catch (IOException e) { log.error(String.format("Error closing request [%s]", request.getIdentifier().getUri()), e); } } }
private void closeRequest() { requests.remove(request); try { request.close(); } catch (IOException e) { log.error(String.format("Error closing request [%s]", request.getIdentifier().getUri()), e); } } }
@Override public void handle(IdentificationRequest request) throws IOException { if (request.getClass().isAssignableFrom(FileSystemIdentificationRequest.class)) { FileSystemIdentificationRequest req = (FileSystemIdentificationRequest) request; Iso9660FileSystem fileSystem = new Iso9660FileSystem(req.getFile(), true); ISOImageArchiveWalker walker = new ISOImageArchiveWalker(droid, factory, resultHandler, fileSystem, request.getIdentifier()); walker.walk(fileSystem); } else { log.info("Identification request for ISO image ignored due to limited support."); } }
@Override public void handle(IdentificationRequest request) throws IOException { // TODO: upgrade to 2.0.2 version of java-iso-tools once released and adapt WindowReader to SeekableInput. // ISO images can only be instantiated from files right now, as the 2.0.1 code only supports File as // an input source. The 2.0.2-SNAPSHOT code in GitHub supports a "SeekableInput" interface, // which we could easily adapt a WindowReader to once the 2.0.2 code is released. // This would allow us to process ISO files no matter where they came from (e.g. in a zip file). // TODO: alternatively - DROID could fork the ISO code if the project has stopped making new releases. // The last release was back in 2015, so it may be that the project is now basically inactive. if (request.getClass().isAssignableFrom(FileSystemIdentificationRequest.class)) { FileSystemIdentificationRequest req = (FileSystemIdentificationRequest) request; Iso9660FileSystem fileSystem = new Iso9660FileSystem(req.getFile().toFile(), true); ISOImageArchiveWalker walker = new ISOImageArchiveWalker(droid, factory, resultHandler, fileSystem, request.getIdentifier()); walker.walk(fileSystem); } else { log.info("Identification request for ISO image ignored due to limited support."); } }
/** * {@inheritDoc} */ @Override public final void handle(IdentificationRequest request) throws IOException { final InputStream arcIn = request.getSourceInputStream(); try { Iterable<WarcRecord> iterable = new Iterable<WarcRecord>() { @Override public final Iterator<WarcRecord> iterator() { return new WarcArchiveEntryIterator(arcIn); } }; WarcArchiveWalker walker = new WarcArchiveWalker(request.getIdentifier(), arcIn); walker.walk(iterable); } finally { if (arcIn != null) { arcIn.close(); } } }
/** * {@inheritDoc} */ @Override public final void handle(IdentificationRequest request) throws IOException { final InputStream arcIn = request.getSourceInputStream(); try { Iterable<ArcRecordBase> iterable = new Iterable<ArcRecordBase>() { @Override public final Iterator<ArcRecordBase> iterator() { return new ArcArchiveEntryIterator(arcIn); } }; ArcArchiveWalker walker = new ArcArchiveWalker(request.getIdentifier(), arcIn); walker.walk(iterable); } finally { if (arcIn != null) { arcIn.close(); } } }
/** * {@inheritDoc} */ @Override public final void handle(IdentificationRequest request) throws IOException { final InputStream arcIn = request.getSourceInputStream(); try { Iterable<ArcRecordBase> iterable = new Iterable<ArcRecordBase>() { @Override public final Iterator<ArcRecordBase> iterator() { return new ArcArchiveEntryIterator(arcIn); } }; ArcArchiveWalker walker = new ArcArchiveWalker(request.getIdentifier(), arcIn); walker.walk(iterable); } finally { if (arcIn != null) { arcIn.close(); } } }
/** * {@inheritDoc} */ @Override public final void handle(IdentificationRequest request) throws IOException { final InputStream arcIn = request.getSourceInputStream(); try { Iterable<WarcRecord> iterable = new Iterable<WarcRecord>() { @Override public final Iterator<WarcRecord> iterator() { return new WarcArchiveEntryIterator(arcIn); } }; WarcArchiveWalker walker = new WarcArchiveWalker(request.getIdentifier(), arcIn); walker.walk(iterable); } finally { if (arcIn != null) { arcIn.close(); } } }
InputStream in = request.getSourceInputStream(); try { URI parent = request.getIdentifier().getUri(); long correlationId = request.getIdentifier().getNodeId(); final URI uri = ArchiveFileUtils.toGZipUri(parent); identifier.setAncestorId(request.getIdentifier().getAncestorId()); identifier.setParentId(correlationId);
@Override public void handle(IdentificationRequest request) throws IOException { VolumeManager readerVolume = new RarReader(request.getWindowReader()); try { try (Archive archive = new Archive(readerVolume)) { if (archive.isEncrypted()) { throw new RuntimeException("Encrypted archive"); } RarWalker walker = new RarWalker(archive, request.getIdentifier()); walker.walk(archive.getFileHeaders()); } } catch (RarException ex) { throw new RuntimeException("Rar processing failed :", ex); } }
InputStream in = request.getSourceInputStream(); try { URI parent = request.getIdentifier().getUri(); long correlationId = request.getIdentifier().getNodeId(); final URI uri = ArchiveFileUtils.toBZipUri(parent); identifier.setAncestorId(request.getIdentifier().getAncestorId()); identifier.setParentId(correlationId);
containerFormat, request.getIdentifier().getUri().toString(), e.getMessage(), causeMessage); log.warn(message);
containerFormat, request.getIdentifier().getUri().toString(), e.getMessage(), causeMessage); log.warn(message);
@Override public void handle(IdentificationRequest request) throws IOException { BlockDevice device = new FatReader(request.getWindowReader()); FileSystem fatSystem = FatFileSystem.read(device, OPEN_READ_ONLY); FsDirectory root = fatSystem.getRoot(); FatArchiveWalker walker = new FatArchiveWalker(droid, resultHandler, request.getIdentifier()); walker.walk(root); }
@Override public void handle(IdentificationRequest request) throws IOException { SeekableByteChannel sevenZipReader = new SevenZipReader(request.getWindowReader()); SevenZFile sevenZFile = new SevenZFile(sevenZipReader); SevenZipIteratorAdapter sevenZIterator = new SevenZipIteratorAdapter(sevenZFile); SevenZArchiveWalker walker = new SevenZArchiveWalker(droid, factory, request.getIdentifier(), resultHandler); walker.walk(sevenZIterator); }
/** * {@inheritDoc} */ @Override public void handle(IdentificationRequest request) throws IOException { final ZipFile zipFile = new ZipFile(new ReaderReadOnlyFile(request.getWindowReader())); try { Iterable<ZipEntry> iterable = new Iterable<ZipEntry>() { @Override public final Iterator<ZipEntry> iterator() { return new ZipFileIterator(zipFile); } }; ZipArchiveWalker walker = new ZipArchiveWalker(request.getIdentifier(), zipFile); walker.walk(iterable); } finally { if (zipFile != null) { zipFile.close(); } } }
/** * {@inheritDoc} */ @Override public void handle(IdentificationRequest request) throws IOException { final ZipFile zipFile = new ZipFile(new TrueZipReader(request.getWindowReader())); try { Iterable<ZipEntry> iterable = new Iterable<ZipEntry>() { @Override public final Iterator<ZipEntry> iterator() { return new ZipFileIterator(zipFile); } }; ZipArchiveWalker walker = new ZipArchiveWalker(request.getIdentifier(), zipFile); walker.walk(iterable); } finally { if (zipFile != null) { zipFile.close(); } } }
@Override public void handle(IdentificationRequest request) throws IOException { WindowReader windowReader = request.getWindowReader(); if (windowReader instanceof FileReader) { FileReader fileReader = (FileReader) windowReader; File file = fileReader.getFile(); SevenZFile sevenZFile = new SevenZFile(file); SevenZStreamFactory sevenZStreamFactory = new SevenZStreamFactory(); try (ArchiveInputStream archiveStream = sevenZStreamFactory.getArchiveInputStream(file, null)) { //Prevent to close input stream. We want to read all files in archive. CloseShieldInputStream closeShieldInputStream = new CloseShieldInputStream(archiveStream); SevenZArchiveWalker walker = new SevenZArchiveWalker(droid, factory, closeShieldInputStream, request.getIdentifier(), resultHandler); walker.walk(new SevenZipIteratorAdapter(archiveStream)); } } }