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;
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;
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();
/** The insert priority. */
private PriorityClass priority;
- /** The manifest putter. */
- private ManifestPutter manifestPutter;
-
/**
* Adds a listener to the list of registered listeners.
*
}
/**
- * 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
this.progressListener = progressListener;
fileScanner = new FileScanner(project);
fileScanner.addFileScannerListener(this);
- new Thread(fileScanner).start();
+ fileScanner.startInBackground();
}
/**
completionLatch.countDown();
}
});
- new Thread(fileScanner).start();
+ fileScanner.startInBackground();
while (completionLatch.getCount() > 0) {
try {
completionLatch.await();
/* 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;
/* 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)) {
FileOption indexFileOption = project.getFileOption(project.getIndexFile());
Optional<String> changedName = indexFileOption.getChangedName();
putDir.setMaxRetries(-1);
putDir.setEarlyEncode(useEarlyEncode);
putDir.setPriorityClass(priority);
- putDir.setManifestPutter(manifestPutter);
for (ScannedFile file : files) {
FileEntry fileEntry = createFileEntry(file);
if (fileEntry != null) {