@Override public String getValue() { return value.value(); }
public FileReference addFile(String relativePath) { return new FileReference("0123456789abcdef"); }
private static int verifySession(Session session, int sessionId, FileReference reference) { if (session == null) { log.severe("session-id " + sessionId + " does not exist."); return 1; } if (! session.reference.equals(reference)) { log.severe("Session " + session.sessionId + " expects reference " + reference.value() + ", but was " + session.reference.value()); return 1; } return 0; } }
private void downloadFile(Request req) { FileReference fileReference = new FileReference(req.parameters().get(0).asString()); log.log(LogLevel.DEBUG, () -> "getFile() called for file reference '" + fileReference.value() + "'"); Optional<File> pathToFile = downloader.getFile(fileReference); try { if (pathToFile.isPresent()) { req.returnValues().add(new StringValue(pathToFile.get().getAbsolutePath())); log.log(LogLevel.DEBUG, () -> "File reference '" + fileReference.value() + "' available at " + pathToFile.get()); } else { log.log(LogLevel.INFO, "File reference '" + fileReference.value() + "' not found, returning error"); req.setError(fileReferenceDoesNotExists, "File reference '" + fileReference.value() + "' not found"); } } catch (Throwable e) { log.log(LogLevel.WARNING, "File reference '" + fileReference.value() + "' got exception: " + e.getMessage()); req.setError(fileReferenceInternalError, "File reference '" + fileReference.value() + "' removed"); } req.returnRequest(); }
public Builder(BundlesConfig config) { bundle(FileReference.toValues(config.bundle())); }
@SuppressWarnings({"UnusedDeclaration"}) public final void receiveFilePart(Request req) { log.log(LogLevel.DEBUG, () -> "Received method call '" + req.methodName() + "' with parameters : " + req.parameters()); FileReference reference = new FileReference(req.parameters().get(0).asString()); int sessionId = req.parameters().get(1).asInt32(); int partId = req.parameters().get(2).asInt32(); byte [] part = req.parameters().get(3).asData(); Session session = getSession(sessionId); int retval = verifySession(session, sessionId, reference); try { session.addPart(partId, part); } catch (Exception e) { log.severe("Got exception " + e); retval = 1; } double completeness = (double) session.currentFileSize / (double) session.fileSize; log.log(LogLevel.DEBUG, () -> String.format("%.1f percent of '%s' downloaded", completeness * 100, reference.value())); downloader.setDownloadStatus(reference, completeness); req.returnValues().add(new Int32Value(retval)); }
@Override public File waitFor(FileReference fileReference, long timeout, TimeUnit timeUnit) throws InterruptedException { return files.get(fileReference.value()); } };
@Override public FileReference addUri(String uri) { return new FileReference(path2Hash.get(uri)); }
private static boolean isDiskBundle(FileReference fileReference) { return fileReference.value().startsWith(DISK_BUNDLE_PREFIX); }
double downloadStatus(String file) { double status = 0.0; synchronized (downloads) { Double download = downloadStatus.get(new FileReference(file)); if (download != null) { status = download; } } return status; }
public PathNode(FileReference fileReference) { super(true); this.value = new File(fileReference.value()).toPath(); this.fileReference = fileReference; }
public FileReference addFile(String relativePath) { return new FileReference(path2Hash.get(relativePath)); }
private void installBundleFromDisk(FileReference reference) { assert(reference.value().startsWith(DISK_BUNDLE_PREFIX)); String referenceFileName = reference.value().substring(DISK_BUNDLE_PREFIX.length()); log.info("Installing bundle from disk with reference '" + reference.value() + "'"); File file = new File(referenceFileName); if ( ! file.exists()) { throw new IllegalArgumentException("Reference '" + reference.value() + "' not found on disk."); } List<Bundle> bundles = osgi.install(file.getAbsolutePath()); reference2Bundles.put(reference, bundles); }
public static FileReference mockFileReferenceForUnitTesting(File file) { if (! file.exists()) throw new IllegalArgumentException("File '" + file.getAbsolutePath() + "' does not exist."); return new FileReference(file.getPath()); }
public static List<String> toValues(Collection<FileReference> references) { List<String> ret = new ArrayList<>(); for (FileReference r: references) { ret.add(r.value()); } return ret; }
@Override public List<Entry> export() { List<Entry> entries = new ArrayList<>(); for (Map.Entry<String, String> entry : path2Hash.entrySet()) { entries.add(new Entry(entry.getKey(), new FileReference(entry.getValue()))); } return entries; } }
public static Map<String, String> toValueMap(Map<String, FileReference> map) { Map<String, String> ret = new LinkedHashMap<>(); for (Map.Entry<String, FileReference> e : map.entrySet()) { ret.put(e.getKey(), e.getValue().value()); } return ret; }
public FileNode(String stringVal) { super(true); this.value = new FileReference(ReferenceNode.stripQuotes(stringVal)); }
private Optional<File> getFileFromFileSystem(FileReference fileReference, File directory) { File[] files = new File(directory, fileReference.value()).listFiles(); if (directory.exists() && directory.isDirectory() && files != null && files.length > 0) { File file = files[0]; if (!file.exists()) { throw new RuntimeException("File reference '" + fileReference.value() + "' does not exist"); } else if (!file.canRead()) { throw new RuntimeException("File reference '" + fileReference.value() + "'exists, but unable to read it"); } else { log.log(LogLevel.DEBUG, () -> "File reference '" + fileReference.value() + "' found: " + file.getAbsolutePath()); fileReferenceDownloader.setDownloadStatus(fileReference, 1.0); return Optional.of(file); } } return Optional.empty(); }
@Override protected boolean doSetValue(@NonNull String stringVal) { value = new FileReference(ReferenceNode.stripQuotes(stringVal)); return true; }