X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fde%2Ftodesbaum%2Fjsite%2Fapplication%2FProjectInserter.java;h=ced300820a461372644e51e8ae84495eedba7403;hb=e4f461213da0e30faf9e9eb2e97626abff320618;hp=d525ddbd69ae182797b0c51f5e84758d21937613;hpb=f00de4e0d5ba4c14dc09ff84263563a7abc45cd9;p=jSite.git diff --git a/src/de/todesbaum/jsite/application/ProjectInserter.java b/src/de/todesbaum/jsite/application/ProjectInserter.java index d525ddb..ced3008 100644 --- a/src/de/todesbaum/jsite/application/ProjectInserter.java +++ b/src/de/todesbaum/jsite/application/ProjectInserter.java @@ -48,7 +48,7 @@ import de.todesbaum.util.io.StreamCopier; /** * @author David Roden <droden@gmail.com> - * @version $Id: ProjectInserter.java 486 2006-04-27 10:58:34Z bombe $ + * @version $Id$ */ public class ProjectInserter implements FileScannerListener, Runnable { @@ -74,6 +74,12 @@ public class ProjectInserter implements FileScannerListener, Runnable { insertListener.projectInsertStarted(project); } } + + protected void fireProjectURIGenerated(String uri) { + for (InsertListener insertListener: insertListeners) { + insertListener.projectURIGenerated(project, uri); + } + } protected void fireProjectInsertProgress(int succeeded, int failed, int fatal, int total, boolean finalized) { for (InsertListener insertListener: insertListeners) { @@ -134,11 +140,10 @@ public class ProjectInserter implements FileScannerListener, Runnable { ByteArrayOutputStream filteredByteOutputStream = new ByteArrayOutputStream(Math.min(Integer.MAX_VALUE, (int) length[0])); ReplacingOutputStream outputStream = new ReplacingOutputStream(filteredByteOutputStream); FileInputStream fileInput = new FileInputStream(file); - outputStream.addReplacement("$[CONTAINER]", "/"); outputStream.addReplacement("$[EDITION]", String.valueOf(edition)); - outputStream.addReplacement("$[URI]", project.getFinalURI(0)); + outputStream.addReplacement("$[URI]", project.getFinalRequestURI(0)); for (int index = 1; index <= fileOption.getEditionRange(); index++) { - outputStream.addReplacement("$[URI+" + index + "]", project.getFinalURI(index)); + outputStream.addReplacement("$[URI+" + index + "]", project.getFinalRequestURI(index)); outputStream.addReplacement("$[EDITION+" + index + "]", String.valueOf(edition + index)); } StreamCopier.copy(fileInput, outputStream, length[0]); @@ -262,7 +267,7 @@ public class ProjectInserter implements FileScannerListener, Runnable { /* collect files */ int edition = ((EditionProject) project).getEdition(); - String dirURI = project.getInsertURI() + project.getPath() + "-" + edition; + String dirURI = "freenet:USK@" + project.getInsertURI() + "/" + project.getPath() + "/" + edition + "/"; ClientPutComplexDir putDir = new ClientPutComplexDir("dir-" + counter++, dirURI); putDir.setDefaultName(project.getIndexFile()); putDir.setVerbosity(Verbosity.ALL); @@ -283,17 +288,20 @@ public class ProjectInserter implements FileScannerListener, Runnable { } /* parse progress and success messages */ - boolean success = true; + boolean success = false; boolean finished = false; boolean disconnected = false; while (!finished) { Message message = client.readMessage(); - finished = (message == null) && (disconnected = client.isDisconnected()); + finished = (message == null) || (disconnected = client.isDisconnected()); if (debug) { System.out.println(message); } if (!finished) { String messageName = message.getName(); + if ("URIGenerated".equals(messageName)) { + fireProjectURIGenerated(message.get("URI")); + } if ("SimpleProgress".equals(messageName)) { int total = Integer.parseInt(message.get("Total")); int succeeded = Integer.parseInt(message.get("Succeeded"));