You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by re...@apache.org on 2006/03/26 14:58:14 UTC

svn commit: r388903 - in /cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer: applicationserver/MonolithicServer23.java monolithic/FileDeployer.java monolithic/SingleFileDeployer.java

Author: reinhard
Date: Sun Mar 26 04:58:13 2006
New Revision: 388903

URL: http://svn.apache.org/viewcvs?rev=388903&view=rev
Log:
fix bug if a file already existed before the deployer was started, 
an exception was thrown that the file already existed. Behaviour has changed so that
an exception is only thrown if the same file would be written twice 
within the same deployment process.

Note: If you change a pom.xml, you still have to call 'mvn clean' as the war plugin doesn't take
care of changed dependencies and in this case different versions of the same artifact could
get deployed.

Modified:
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/MonolithicServer23.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/monolithic/FileDeployer.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/monolithic/SingleFileDeployer.java

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/MonolithicServer23.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/MonolithicServer23.java?rev=388903&r1=388902&r2=388903&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/MonolithicServer23.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/MonolithicServer23.java Sun Mar 26 04:58:13 2006
@@ -22,8 +22,10 @@
 import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 
@@ -37,6 +39,7 @@
 	private Logger logger;
 	private File basedir;
 	private List rules = new ArrayList();
+	private Set alreadyDeployedFilesSet =  new HashSet();
 	
 	public MonolithicServer23(File basedir, Logger logger) {
 		Validate.notNull(basedir, "The basedir of the server mustn't be null.");
@@ -49,6 +52,7 @@
 	public void addRule(String pattern, FileDeployer fileDeployer) {
 		fileDeployer.setBasedir(this.basedir);
 		fileDeployer.setLogger(this.logger);
+		fileDeployer.setAlreadyDeployedFilesSet(alreadyDeployedFilesSet);
 		rules.add(new Rule(pattern, fileDeployer));
 	}
 	

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/monolithic/FileDeployer.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/monolithic/FileDeployer.java?rev=388903&r1=388902&r2=388903&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/monolithic/FileDeployer.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/monolithic/FileDeployer.java Sun Mar 26 04:58:13 2006
@@ -18,6 +18,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.Set;
 
 import org.apache.cocoon.deployer.logger.Logger;
 
@@ -34,5 +35,7 @@
 	public void setBasedir(File file);
 
 	public void setLogger(Logger logger);
+
+	public void setAlreadyDeployedFilesSet(Set alreadyDeployedFilesSet);
 	
 }

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/monolithic/SingleFileDeployer.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/monolithic/SingleFileDeployer.java?rev=388903&r1=388902&r2=388903&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/monolithic/SingleFileDeployer.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/monolithic/SingleFileDeployer.java Sun Mar 26 04:58:13 2006
@@ -19,6 +19,7 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
+import java.util.Set;
 
 import org.apache.cocoon.deployer.logger.Logger;
 import org.apache.cocoon.deployer.util.FileUtils;
@@ -33,6 +34,7 @@
 	private Logger logger;
 	private String outputDir;
 	private boolean skipRootDirectory;
+	private Set alreadyDeployedFilesSet;
 	
 	public SingleFileDeployer(final String outputDir, final boolean skipRootDirectory) {
 		Validate.notNull(outputDir, "An outputDir has to be set.");
@@ -60,6 +62,10 @@
 		return this.logger;
 	}
 	
+	public void setAlreadyDeployedFilesSet(Set alreadyDeployedFilesSet) {
+		this.alreadyDeployedFilesSet = alreadyDeployedFilesSet;
+	}	
+	
 	protected String getFileName(final String documentName) { 
 		return documentName.substring(documentName.lastIndexOf('/') + 1);
 	}
@@ -84,17 +90,23 @@
 		else {
 			outputDocumentName = this.getFileName(documentName);
 		}
-		File targetFile = new File(outDir, outputDocumentName);
-		if(targetFile.exists()) {
+		
+		File targetFile = FileUtils.createDirectory(new File(outDir, outputDocumentName));
+		
+		if(this.alreadyDeployedFilesSet.contains(targetFile.getCanonicalFile())) {
 			throw new FileAlreadyDeployedException("File '" + targetFile + "' already exists!");
 		}
-
-		this.logger.info("Deploying to " + getOutputDir() + "/" + outputDocumentName);		
+		
+		this.alreadyDeployedFilesSet.add(targetFile.getCanonicalFile());
+		
+		this.logger.info("Deploying to " + getOutputDir() + "/" + outputDocumentName);
+		
 		return new FileOutputStream(FileUtils.createDirectory(targetFile));
 	}
 	
 	protected String removeRootDirectory(final String documentName) {
 		return documentName.substring(documentName.indexOf('/') + 1);
 	}
-	
+
+
 }