X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Ftodesbaum%2Fjsite%2Fapplication%2FProjectInserter.java;h=dd85bf343e88b292b6267f9f35b019e881406dc9;hb=9eafefbca8ddf6c20500a78789a474000cdfe457;hp=709f55792056936f612ae47bbf6570d15b92ed9a;hpb=7ec476fcc83a2ebe74a9faf3251d9d60fd03f58e;p=jSite.git diff --git a/src/main/java/de/todesbaum/jsite/application/ProjectInserter.java b/src/main/java/de/todesbaum/jsite/application/ProjectInserter.java index 709f557..dd85bf3 100644 --- a/src/main/java/de/todesbaum/jsite/application/ProjectInserter.java +++ b/src/main/java/de/todesbaum/jsite/application/ProjectInserter.java @@ -32,6 +32,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; import java.util.concurrent.CountDownLatch; +import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Level; import java.util.logging.Logger; @@ -43,7 +44,6 @@ import de.todesbaum.jsite.gui.FileScanner.ScannedFile; import de.todesbaum.jsite.gui.FileScannerListener; import de.todesbaum.util.freenet.fcp2.Client; import de.todesbaum.util.freenet.fcp2.ClientPutComplexDir; -import de.todesbaum.util.freenet.fcp2.ClientPutDir.ManifestPutter; import de.todesbaum.util.freenet.fcp2.Connection; import de.todesbaum.util.freenet.fcp2.DirectFileEntry; import de.todesbaum.util.freenet.fcp2.FileEntry; @@ -66,7 +66,7 @@ public class ProjectInserter implements FileScannerListener, Runnable { private static final int random = (int) (Math.random() * Integer.MAX_VALUE); /** Counter for FCP connection identifier. */ - private static int counter = 0; + private static final AtomicInteger counter = new AtomicInteger(); private final ProjectInsertListeners projectInsertListeners = new ProjectInsertListeners(); @@ -100,9 +100,6 @@ public class ProjectInserter implements FileScannerListener, Runnable { /** The insert priority. */ private PriorityClass priority; - /** The manifest putter. */ - private ManifestPutter manifestPutter; - /** * Adds a listener to the list of registered listeners. * @@ -166,16 +163,6 @@ public class ProjectInserter implements FileScannerListener, Runnable { } /** - * Sets the manifest putter to use for inserts. - * - * @param manifestPutter - * The manifest putter to use - */ - public void setManifestPutter(ManifestPutter manifestPutter) { - this.manifestPutter = manifestPutter; - } - - /** * Starts the insert. * * @param progressListener @@ -186,7 +173,7 @@ public class ProjectInserter implements FileScannerListener, Runnable { this.progressListener = progressListener; fileScanner = new FileScanner(project); fileScanner.addFileScannerListener(this); - new Thread(fileScanner).start(); + fileScanner.startInBackground(); } /** @@ -310,7 +297,7 @@ public class ProjectInserter implements FileScannerListener, Runnable { completionLatch.countDown(); } }); - new Thread(fileScanner).start(); + fileScanner.startInBackground(); while (completionLatch.getCount() > 0) { try { completionLatch.await(); @@ -342,7 +329,7 @@ public class ProjectInserter implements FileScannerListener, Runnable { /* create connection to node */ synchronized (lockObject) { - connection = freenetInterface.getConnection("project-insert-" + random + counter++); + connection = freenetInterface.getConnection("project-insert-" + random + counter.getAndIncrement()); } connection.setTempDirectory(tempDirectory); boolean connected = false; @@ -363,15 +350,20 @@ public class ProjectInserter implements FileScannerListener, Runnable { /* collect files */ int edition = project.getEdition(); String dirURI = "USK@" + project.getInsertURI() + "/" + project.getPath() + "/" + edition + "/"; - ClientPutComplexDir putDir = new ClientPutComplexDir("dir-" + counter++, dirURI, tempDirectory); + ClientPutComplexDir putDir = new ClientPutComplexDir("dir-" + counter.getAndIncrement(), dirURI, tempDirectory); if ((project.getIndexFile() != null) && (project.getIndexFile().length() > 0)) { - putDir.setDefaultName(project.getIndexFile()); + FileOption indexFileOption = project.getFileOption(project.getIndexFile()); + Optional changedName = indexFileOption.getChangedName(); + if (changedName.isPresent()) { + putDir.setDefaultName(changedName.get()); + } else { + putDir.setDefaultName(project.getIndexFile()); + } } putDir.setVerbosity(Verbosity.ALL); putDir.setMaxRetries(-1); putDir.setEarlyEncode(useEarlyEncode); putDir.setPriorityClass(priority); - putDir.setManifestPutter(manifestPutter); for (ScannedFile file : files) { FileEntry fileEntry = createFileEntry(file); if (fileEntry != null) {