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/04 15:36:18 UTC

svn commit: r383117 - in /cocoon/trunk/cocoon-block-deployer: cocoon-archetype-block/src/main/resources/archetype-resources/ cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/ cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/ap...

Author: reinhard
Date: Sat Mar  4 06:36:16 2006
New Revision: 383117

URL: http://svn.apache.org/viewcvs?rev=383117&view=rev
Log:
COCOON-1773 - file system operations can either be transactional or non-transactional; fixing a bad implementation (reading without buffering is not a good idea) when an input stream is copied to an output stream which makes it about 10 times faster; using non-transactional filesystem operations in the Maven plugins which is about 2 times faster --> the plugin is now about 20 times faster than before :-); setting eol-styles correctly

Added:
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/FileManager.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/FileManagerException.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/NontransactionalFileManager.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/TransactionalFileManager.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/filemanager/
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/filemanager/NontransactionalFileManagerTest.java
Modified:
    cocoon/trunk/cocoon-block-deployer/cocoon-archetype-block/src/main/resources/archetype-resources/pom.xml
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/BlockDeployer.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServer.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServer22.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServerFactory.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/util/FileUtils.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/util/ZipUtils.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/BlockDeployerTest.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/applicationserver/CocoonServer22Test.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin-demo/   (props changed)
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin/src/main/java/org/apache/cocoon/maven/deployer/DeployMojo.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin/src/main/java/org/apache/cocoon/maven/deployer/SingleBlockDeployMojo.java
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/cocoon-deploy.xml   (contents, props changed)
    cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/src/main/webapp/WEB-INF/web.xml   (contents, props changed)

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-archetype-block/src/main/resources/archetype-resources/pom.xml
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-archetype-block/src/main/resources/archetype-resources/pom.xml?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-archetype-block/src/main/resources/archetype-resources/pom.xml (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-archetype-block/src/main/resources/archetype-resources/pom.xml Sat Mar  4 06:36:16 2006
@@ -36,7 +36,7 @@
       <plugin>
         <groupId>org.mortbay.jetty</groupId>
         <artifactId>maven-jetty6-plugin</artifactId>
-        <version>6.0-SNAPSHOT</version>
+        <version>6.0.0beta10</version>
         <configuration>
           <connectors>
             <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/BlockDeployer.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/BlockDeployer.java?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/BlockDeployer.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/BlockDeployer.java Sat Mar  4 06:36:16 2006
@@ -66,7 +66,7 @@
 	 * @param variableResolver - if you use variables in your deployment descriptor, you have to provide an implementation that resolves them
 	 * @param log - a logger for user-orientated messages about the deployment process.
 	 */
-	public void deploy(final Deploy deploymentDescriptor) {
+	public void deploy(final Deploy deploymentDescriptor, final boolean transactional) {
 		
 		StopWatch stopWatch = new StopWatch();
 		stopWatch.start();
@@ -110,7 +110,7 @@
 				deploymentDescriptor.getCocoon(), this.variableResolver, this.artifactProvider);
 		Collections.reverse(blockList);
 		cocoonServer.deploy((Block[]) blockList.toArray(new Block[blockList.size()]), 
-				cocoonWebappUrn, libraries, this.log);
+				cocoonWebappUrn, libraries, this.log, transactional);
 		
 		stopWatch.stop();
 		this.log.info("SUCESSFULLY deployed in " + stopWatch);

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServer.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServer.java?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServer.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServer.java Sat Mar  4 06:36:16 2006
@@ -28,7 +28,7 @@
 
 public interface CocoonServer {
 
-	public boolean deploy(Block[] blocks, String serverArtifact, File[] libraries, Logger log);
+	public boolean deploy(Block[] blocks, String serverArtifact, File[] libraries, Logger log, boolean transactional);
 	
 	public boolean isExclusive();
 	

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServer22.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServer22.java?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServer22.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServer22.java Sat Mar  4 06:36:16 2006
@@ -36,6 +36,8 @@
 import org.apache.cocoon.deployer.block.BinaryBlock;
 import org.apache.cocoon.deployer.block.Block;
 import org.apache.cocoon.deployer.block.LocalBlock;
+import org.apache.cocoon.deployer.filemanager.FileManager;
+import org.apache.cocoon.deployer.filemanager.FileManagerException;
 import org.apache.cocoon.deployer.generated.block.x10.Property;
 import org.apache.cocoon.deployer.generated.wiring.x10.Mount;
 import org.apache.cocoon.deployer.generated.wiring.x10.Wiring;
@@ -45,8 +47,6 @@
 import org.apache.cocoon.deployer.util.XMLUtils;
 import org.apache.cocoon.deployer.util.ZipUtils;
 import org.apache.commons.lang.Validate;
-import org.apache.commons.transaction.file.FileResourceManager;
-import org.apache.commons.transaction.file.ResourceManagerException;
 
 public class CocoonServer22 implements CocoonServer {
 
@@ -64,20 +64,18 @@
 	/**
 	 * Deploy an array of blocks. This operation wrapped by a filesystem transaction so that either
 	 * all or any blocks get deployed. Note that the used filesystem transaction implementation only
-	 * supports transaction within a single thread. Therefore this method is synchronized.
+	 * supports transactions within a single thread. Therefore this method is synchronized.
 	 */
 	/*
 	 * TODO exclusive mode not implemented yet
 	 * TODO variable resolver not used yet
 	 */
-	public synchronized boolean deploy(Block[] blocks, String serverArtifact, File[] libraries, Logger log) {
+	public synchronized boolean deploy(Block[] blocks, String serverArtifact, File[] libraries, Logger log, boolean transactional) {
 		Validate.notNull(blocks, "A blocks object (Block[]) has to be passed to this method!");
 		Validate.notNull(libraries, "A libraries object (File[]) has to passed to this method!");
 		
-		// create transaction context    
-	    String txId = "deploy";	    	    
-	    FileResourceManager frm;
-	    frm = FileUtils.createFileResourceManager(txId, this.baseDirectory);
+		// create transaction context    	    
+	    FileManager frm = FileUtils.createFileManager(this.baseDirectory, transactional);
 	    
 	    // create installed block index
 	    Map installedBlocks = new HashMap();	
@@ -87,7 +85,7 @@
 	    	
 			// install the Cocoon server if necessary
 			if(baseDirectoryFile.list().length == 0 && serverArtifact != null) {
-				deployCocoonServer(frm, txId, "", serverArtifact);
+				deployCocoonServer(frm, "", serverArtifact);
 			}
 
 			// create the wiring, in exclusive mode from scratch, elese take the existing one
@@ -96,13 +94,13 @@
 				wiring = new Wiring();
 			} else {
 				// check wiring version
-				String wiringVersion = XMLUtils.getDocumentNamespace(frm.readResource(txId, WIRING_FILE));
+				String wiringVersion = XMLUtils.getDocumentNamespace(frm.readResource(WIRING_FILE));
 				if(!WIRING_10_NAMESPACE.equals(wiringVersion)) {
 					String msg = "The deployer only supports " + WIRING_10_NAMESPACE + " files.";
 					log.error(msg);
 					throw new DeploymentException(msg);				
 				}				
-				wiring = (Wiring) Wiring.unmarshal(new InputStreamReader(frm.readResource(txId, WIRING_FILE)));	
+				wiring = (Wiring) Wiring.unmarshal(new InputStreamReader(frm.readResource(WIRING_FILE)));	
 			}
 			
 			// install all passed blocks
@@ -128,7 +126,7 @@
 						this.lastDir = Integer.parseInt(nextDirectory);
 						String installDirectory = BLOCKS_DIR + nextDirectory + "/";
 						wiringBlock.setLocation(installDirectory);					
-						deployBlock(binaryBlock, frm, txId, BLOCKS_DIR + nextDirectory);
+						deployBlock(binaryBlock, frm, BLOCKS_DIR + nextDirectory);
 						installedBlocks.put(block.getId(), installDirectory);
 					} else {
 						wiringBlock.setLocation((String) installedBlocks.get(block.getId()));
@@ -155,38 +153,26 @@
 				}
 				
 				if(!isBlock) {
-					FileInputStream fis = null;
-					OutputStream out = null;
-					try {
-						fis = new FileInputStream(lib);
-						String libName = lib.getName();
-						log.info("Installing library " + WEB_INF_LIBS_DIR + "/" + libName);		
-						out = frm.writeResource(txId, WEB_INF_LIBS_DIR + "/" + libName);	
-						int b;
-						while((b = fis.read()) != -1) {
-							out.write(b);
-						}					
-					} finally {
-						fis.close();
-						out.close();
-					}
+					String libName = WEB_INF_LIBS_DIR + "/" + lib.getName();
+					log.info("Installing library " + libName);		
+			        FileUtils.copy(new FileInputStream(lib), frm.writeResource(libName));						
 				}
 			}
 			
 			// write the wiring
-            OutputStream out = frm.writeResource(txId, WIRING_FILE);    
+            OutputStream out = frm.writeResource(WIRING_FILE);    
             wiring.marshal(new OutputStreamWriter(out));
             out.close();
             
             // committ transaction
-			frm.commitTransaction(txId); 
+			frm.commitTransaction(); 
 			
 	    } catch(Exception ex) {
 	    	try {
-				frm.rollbackTransaction(txId);
+				frm.rollbackTransaction(ex);
 				String msg = "Filesystem changes have been rolled back. No block has been installed!";
 				throw new DeploymentException(msg, ex);
-			} catch (ResourceManagerException e) {
+			} catch (FileManagerException e) {
 				throw new DeploymentException("A problem occurred when roling back the filesystem changes.");
 			}
 	    }
@@ -296,12 +282,12 @@
 	/**
 	 * Extract a block to the filesystem using the FileResourceManager
 	 */
-	protected void deployBlock(BinaryBlock binaryBlock, FileResourceManager frm, String txId, String relativeOutputDir) {
+	protected void deployBlock(BinaryBlock binaryBlock, FileManager frm, String relativeOutputDir) {
 		try {
-			ZipUtils.extractZip(new ZipInputStream(binaryBlock.getInputStream()), frm, txId, relativeOutputDir);
+			ZipUtils.extractZip(new ZipInputStream(binaryBlock.getInputStream()), frm, relativeOutputDir);
 		} catch (IOException e) {
 			throw new DeploymentException("A problem while extracting a block occurred");
-		} catch (ResourceManagerException e) {
+		} catch (FileManagerException e) {
 			throw new DeploymentException("A problem while extracting a block occurred");
 		}
 	}
@@ -309,15 +295,15 @@
 	/**
 	 * Extract the Cocoon server to the filesystem using the FileResourceManager
 	 */
-	protected void deployCocoonServer(FileResourceManager frm, String txId, String relativeOutputDir, String serverArtifact) {
+	protected void deployCocoonServer(FileManager frm, String relativeOutputDir, String serverArtifact) {
 		File zip = this.artifactProvider.getArtifact(serverArtifact);
 		try {
-			ZipUtils.extractZip(new ZipInputStream(new FileInputStream(zip)), frm, txId, relativeOutputDir);
+			ZipUtils.extractZip(new ZipInputStream(new FileInputStream(zip)), frm, relativeOutputDir);
 		} catch (FileNotFoundException e) {
 			throw new DeploymentException("Can't get the Cocoon server artifact.");
 		} catch (IOException e) {
 			throw new DeploymentException("A problem while extracting the Cocoon server occurred");
-		} catch (ResourceManagerException e) {
+		} catch (FileManagerException e) {
 			throw new DeploymentException("A problem while extracting the Cocoon server occured");
 		}
 	}

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServerFactory.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServerFactory.java?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServerFactory.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/applicationserver/CocoonServerFactory.java Sat Mar  4 06:36:16 2006
@@ -26,6 +26,7 @@
 public class CocoonServerFactory {
 
 	public static CocoonServer createServer(Cocoon cocoon, VariableResolver variableResolver, ArtifactProvider artifactProvider) {
+		
 		CocoonServer cocoonServer = new CocoonServer22();
 		cocoonServer.setExclusive(cocoon.getExclusive());
 		cocoonServer.setVariableResolver(variableResolver);

Added: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/FileManager.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/FileManager.java?rev=383117&view=auto
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/FileManager.java (added)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/FileManager.java Sat Mar  4 06:36:16 2006
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.deployer.filemanager;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+
+/**
+ * A simple interface that makes it possible to implement different ways of doing filesystem operations, 
+ * may it be transaction or non-transaction.
+ */
+public interface FileManager {
+
+	public InputStream readResource(String resource) throws FileManagerException;
+
+	public OutputStream writeResource(String string) throws FileManagerException;
+	
+	public void rollbackTransaction(Exception ex) throws FileManagerException;
+
+	public void commitTransaction() throws FileManagerException;
+	
+}

Added: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/FileManagerException.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/FileManagerException.java?rev=383117&view=auto
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/FileManagerException.java (added)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/FileManagerException.java Sat Mar  4 06:36:16 2006
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.deployer.filemanager;
+
+public class FileManagerException extends Exception {
+
+	public FileManagerException(Throwable e) {
+		super(e);
+	}
+
+}

Added: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/NontransactionalFileManager.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/NontransactionalFileManager.java?rev=383117&view=auto
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/NontransactionalFileManager.java (added)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/NontransactionalFileManager.java Sat Mar  4 06:36:16 2006
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.deployer.filemanager;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.cocoon.deployer.DeploymentException;
+import org.apache.cocoon.deployer.util.FileUtils;
+import org.apache.commons.lang.Validate;
+
+/**
+ * This implementation provides non-transaction file system operations.
+ */
+public class NontransactionalFileManager implements FileManager {
+
+	private File basedir;
+	private List fosList = new ArrayList();
+	
+	public NontransactionalFileManager(URI basedir) {
+		Validate.notNull(basedir, "basedir mustn't be null.");
+		this.basedir = new File(basedir);
+		if(!this.basedir.exists()) {
+			if(!this.basedir.mkdirs()) {
+				throw new DeploymentException("Can't create the base directory '" + this.basedir + "'.");
+			}
+		}
+	}
+
+	public InputStream readResource(String resource) throws FileManagerException {
+		Validate.notNull(resource, "resource mustn't be null.");		
+		try {
+			return new FileInputStream(new File(this.basedir, cleanResource(resource)));
+		} catch (FileNotFoundException e) {
+			throw new FileManagerException(e);
+		}
+	}
+
+	public OutputStream writeResource(String resource) throws FileManagerException {
+		Validate.notNull(resource, "resource mustn't be null.");				
+		try {
+			FileOutputStream fos = new FileOutputStream(FileUtils.createDirectory(new File(this.basedir, resource)));
+			fosList.add(fos);
+			return fos;
+		} catch (FileNotFoundException e) {
+			throw new FileManagerException(e);
+		} catch (IOException e) {
+			throw new FileManagerException(e);
+		}
+	}
+
+	public void rollbackTransaction(Exception ex) throws FileManagerException {
+		closeFileOutputStreams();		
+		throw new DeploymentException("Can't rollback when using a nontransactional implementation.", ex);
+	}
+
+	public void commitTransaction() throws FileManagerException {
+		closeFileOutputStreams();
+	}
+	
+	private void closeFileOutputStreams() throws FileManagerException {
+		for(int i = 0; i < fosList.size(); i++) {
+			try {
+				((FileOutputStream) fosList.get(i)).close();
+			} catch (IOException e) {
+				throw new FileManagerException(e);
+			}
+		}
+	}
+	
+	protected String cleanResource(String resource) {
+		if(resource.startsWith("\\") || resource.startsWith("/")) {
+			return resource.substring(1);
+		}
+		return resource;
+	}
+
+}

Added: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/TransactionalFileManager.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/TransactionalFileManager.java?rev=383117&view=auto
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/TransactionalFileManager.java (added)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/filemanager/TransactionalFileManager.java Sat Mar  4 06:36:16 2006
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.deployer.filemanager;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Random;
+import java.util.logging.Logger;
+
+import org.apache.cocoon.deployer.DeploymentException;
+import org.apache.cocoon.deployer.util.FileUtils;
+import org.apache.commons.transaction.file.FileResourceManager;
+import org.apache.commons.transaction.file.ResourceManagerException;
+import org.apache.commons.transaction.file.ResourceManagerSystemException;
+import org.apache.commons.transaction.util.Jdk14Logger;
+
+/**
+ * This implementation provides transactional file system operations.
+ */
+public class TransactionalFileManager implements FileManager {
+
+    private static final Logger logger = Logger.getLogger(TransactionalFileManager.class.getName());		
+    
+    /**
+     * The FileResourceManager that actually provides transactional filesystem operations
+     */
+	private FileResourceManager frm;
+	
+	/**
+	 * The transaction id for all operations of this object.
+	 */	
+	private String txId;
+	
+	/**
+	 * The working directory of the FileResourceManager
+	 */
+	private File workdir;
+	
+	public TransactionalFileManager(URI basedir) {	
+    	// create the output directory
+    	File outputdir = new File(basedir);    	
+
+		if(!outputdir.exists()) {
+			if(!outputdir.mkdirs()) {
+				throw new DeploymentException("Can't create server directory: " + outputdir.getAbsolutePath());
+			}
+		}
+		
+		// create the workdir for the FileResourceManager
+		try {
+			this.workdir = new File(new URI(basedir + "_WORK"));
+		} catch (URISyntaxException ue) {
+			throw new DeploymentException("Can't create work directory", ue);
+		}
+		if(workdir.exists()) {
+			FileUtils.deleteDirRecursivly(workdir);
+		}
+
+		if(!workdir.mkdirs()) {
+			throw new DeploymentException("Can't create work directory");
+		}		
+		
+		// create a random transaction id
+		Random rand = new Random();
+		txId = Long.toString(rand.nextLong());
+		System.out.println("txId: " + txId);		
+		
+		// create transaction context      	    
+	    frm = new FileResourceManager(outputdir.getAbsolutePath(), workdir.getAbsolutePath(), false, new Jdk14Logger(logger));
+	    try {
+			frm.start();
+		    frm.startTransaction(txId);					
+		} catch (ResourceManagerSystemException e) {
+			throw new DeploymentException("A problem while starting the filesystem transaction manager occurred.");
+		} catch (ResourceManagerException e) {
+			throw new DeploymentException("A problem while starting the filesystem transaction manager occurred.");
+		}
+	}
+
+	public InputStream readResource(String resource) throws FileManagerException {
+		try {
+			return frm.readResource(this.txId, resource);
+		} catch (ResourceManagerException e) {
+			throw new FileManagerException(e);
+		}
+	}
+
+	public OutputStream writeResource(String resource) throws FileManagerException {
+		try {
+			return frm.writeResource(this.txId, resource);
+		} catch (ResourceManagerException e) {
+			throw new FileManagerException(e);
+		}
+	}
+
+	public void rollbackTransaction(Exception ex) throws FileManagerException {
+		// do nothing with exception
+		try {
+			frm.rollbackTransaction(this.txId);
+			FileUtils.deleteDirRecursivly(this.workdir);
+		} catch (ResourceManagerException e) {
+			throw new FileManagerException(e);
+		}
+	}
+
+	public void commitTransaction() throws FileManagerException {
+		try {
+			frm.commitTransaction(this.txId);
+			FileUtils.deleteDirRecursivly(this.workdir);			
+		} catch (ResourceManagerException e) {
+			throw new FileManagerException(e);
+		}
+	}
+
+}

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/util/FileUtils.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/util/FileUtils.java?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/util/FileUtils.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/util/FileUtils.java Sat Mar  4 06:36:16 2006
@@ -16,22 +16,20 @@
 package org.apache.cocoon.deployer.util;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.logging.Logger;
 
 import org.apache.cocoon.deployer.DeploymentException;
-import org.apache.commons.transaction.file.FileResourceManager;
-import org.apache.commons.transaction.file.ResourceManagerException;
-import org.apache.commons.transaction.file.ResourceManagerSystemException;
-import org.apache.commons.transaction.util.Jdk14Logger;
+import org.apache.cocoon.deployer.filemanager.FileManager;
+import org.apache.cocoon.deployer.filemanager.NontransactionalFileManager;
+import org.apache.cocoon.deployer.filemanager.TransactionalFileManager;
 
 /**
  * Utitily class to handle ZIP archives.
  */
 public class FileUtils {
-	
-    private static final Logger logger = Logger.getLogger(FileUtils.class.getName());		
 
 	/**
 	 * Delete a directory recursivly
@@ -50,48 +48,51 @@
         }
         return directory.delete();
     }	
-    
+
     /**
-     * A factory method that creates a @link FileResourceManager using the passed base directory and transaction id.
-     * @return the intialized resource manager
+     * Factory method, that creates a FileManager, either a transactional or a
+     * non-transaction one.
      */
-    public static FileResourceManager createFileResourceManager(String txId, URI basedir) {
-
-    	// create the output directory
-    	File outputdir = new File(basedir);    	
+	public static FileManager createFileManager(URI basedir, boolean transactional) {
+		if(transactional) {
+			return new TransactionalFileManager(basedir);
+		}
+		return new NontransactionalFileManager(basedir);
+	}
 
-		if(!outputdir.exists()) {
-			if(!outputdir.mkdirs()) {
-				throw new DeploymentException("Can't create server directory: " + outputdir.getAbsolutePath());
-			}
+	/**
+	 * Create the directories of a non-exisiting file.
+	 */
+	public static File createDirectory(File file) throws IOException {
+		if(file.isDirectory() || file.exists()) {
+			return file;
 		}
-		
-		// create the workdir for the FileResourceManager
-		File workdir = null;
-		try {
-			workdir = new File(new URI(basedir + "_WORK"));
-		} catch (URISyntaxException ue) {
-			throw new DeploymentException("Can't create work directory", ue);
+		String absolutePath = file.getCanonicalPath();
+		String absolutePathDir = absolutePath.substring(0, absolutePath.lastIndexOf(File.separator));
+		File absolutePathDirFile = new File(absolutePathDir);
+		if(absolutePathDirFile.exists()) {
+			return file;
 		}
-		if(workdir.exists()) {
-			FileUtils.deleteDirRecursivly(workdir);
+		if(!new File(absolutePathDir).mkdirs()) {
+			throw new DeploymentException("Can't create directory '" + absolutePathDir + "'");
 		}
+		return file;
+	}
 
-		if(!workdir.mkdirs()) {
-			throw new DeploymentException("Can't create work directory");
-		}		
-		
-		// create transaction context      	    
-	    FileResourceManager frm = new FileResourceManager(outputdir.getAbsolutePath(), workdir.getAbsolutePath(), false, new Jdk14Logger(logger));
-	    try {
-			frm.start();
-		    frm.startTransaction(txId);					
-		} catch (ResourceManagerSystemException e) {
-			throw new DeploymentException("A problem while starting the filesystem transaction manager occurred.");
-		} catch (ResourceManagerException e) {
-			throw new DeploymentException("A problem while starting the filesystem transaction manager occurred.");
+	/**
+	 * Copies an inputstream to an outputstream.
+	 */
+	public static void copy(InputStream fis, OutputStream out) throws IOException {
+		try {
+			byte[] buf = new byte[1024];
+			int len;
+			while ((len = fis.read(buf)) > 0) {
+			    out.write(buf, 0, len);
+			}
+		} finally {
+			fis.close();
+			out.close();
 		}
-		return frm;
-    }
+	}
 	
 }

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/util/ZipUtils.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/util/ZipUtils.java?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/util/ZipUtils.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/util/ZipUtils.java Sat Mar  4 06:36:16 2006
@@ -27,7 +27,8 @@
 import java.util.zip.ZipInputStream;
 
 import org.apache.cocoon.deployer.block.Block;
-import org.apache.commons.transaction.file.FileResourceManager;
+import org.apache.cocoon.deployer.filemanager.FileManager;
+import org.apache.cocoon.deployer.filemanager.FileManagerException;
 import org.apache.commons.transaction.file.ResourceManagerException;
 
 /**
@@ -95,9 +96,10 @@
      * @param out - the extractionTarget
      * @throws IOException - if problems during extracting occur
      * @throws ResourceManagerException 
+     * @throws FileManagerException 
      */
-    public static void extractZip(ZipInputStream blockStream, FileResourceManager frm, String txId, String targetDir) 
-        throws IOException, ResourceManagerException {
+    public static void extractZip(ZipInputStream blockStream, FileManager frm, String targetDir) 
+        throws IOException, FileManagerException {
         ZipEntry document = null;
         try {
             do {
@@ -108,8 +110,7 @@
                         blockStream.closeEntry();
                         continue;
                     }
-                    OutputStream out = frm.writeResource(
-                            txId, targetDir + File.separator + document.getName());                    
+                    OutputStream out = frm.writeResource(targetDir + File.separator + document.getName());                    
                     ByteArrayOutputStream baos = new ByteArrayOutputStream();
                     // loop over ZIP entry stream
                     byte[] buffer = new byte[8192];

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/BlockDeployerTest.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/BlockDeployerTest.java?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/BlockDeployerTest.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/BlockDeployerTest.java Sat Mar  4 06:36:16 2006
@@ -16,26 +16,41 @@
 package org.apache.cocoon.deployer;
 
 import java.io.File;
+import java.io.FileNotFoundException;
 import java.io.FileReader;
 
 import org.apache.cocoon.deployer.generated.deploy.x10.Deploy;
 import org.apache.cocoon.deployer.logger.ConsoleLogger;
 import org.apache.cocoon.deployer.resolver.NullVariableResolver;
 import org.easymock.MockControl;
+import org.exolab.castor.xml.MarshalException;
+import org.exolab.castor.xml.ValidationException;
 
 public class BlockDeployerTest extends AbstractDeployerTestCase {
 
-	public void testDeploy() throws Exception {
+	public void testDeployNonTransactional() throws Exception {
+		createBlockDeployer("validDeploy-04/deploy.xml", false);
+		// assertions: ...
+	}
+	
+	public void testDeployTransactional() throws Exception {
+		createBlockDeployer("validDeploy-04/deploy.xml", true);
+		// assertions: ...
+	}
+	
+	public void testAutoWiringResolving() {
+		// TODO
+	}	
+
+	private void createBlockDeployer(String deploymentDescriptorPath, boolean transactional) 
+		throws MarshalException, ValidationException, FileNotFoundException {
 		BlockDeployer blockDeployer = new BlockDeployer(
 				this.getArtifactProviderInstance(),
 				new NullVariableResolver(),
 				new ConsoleLogger());
-		Deploy deploy = (Deploy) Deploy.unmarshal(new FileReader(this.getMockArtefact("validDeploy-04/deploy.xml")));
-		blockDeployer.deploy(absolutizeDeploy(deploy));
-		System.out.println("x");
-		// assertions: ...
-		
-	}
+		Deploy deploy = (Deploy) Deploy.unmarshal(new FileReader(this.getMockArtefact(deploymentDescriptorPath)));
+		blockDeployer.deploy(absolutizeDeploy(deploy), transactional);
+	}	
 	
 	private ArtifactProvider getArtifactProviderInstance() {
 		MockControl aProviderCtrl = MockControl.createControl(ArtifactProvider.class);
@@ -78,8 +93,6 @@
 		return aProvider;
 	}	
 	
-	public void testAutoWiringResolving() {
 
-	}
 	
 }

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/applicationserver/CocoonServer22Test.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/applicationserver/CocoonServer22Test.java?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/applicationserver/CocoonServer22Test.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/applicationserver/CocoonServer22Test.java Sat Mar  4 06:36:16 2006
@@ -18,18 +18,16 @@
 import java.io.File;
 import java.io.FileReader;
 import java.net.URI;
-import java.util.logging.Logger;
 
 import org.apache.cocoon.deployer.AbstractDeployerTestCase;
 import org.apache.cocoon.deployer.ArtifactProvider;
 import org.apache.cocoon.deployer.block.BinaryBlock;
 import org.apache.cocoon.deployer.block.BlockFactory;
 import org.apache.cocoon.deployer.block.impl.Block10;
+import org.apache.cocoon.deployer.filemanager.FileManager;
 import org.apache.cocoon.deployer.generated.deploy.x10.Deploy;
 import org.apache.cocoon.deployer.generated.wiring.x10.Wiring;
-import org.apache.commons.transaction.file.FileResourceManager;
-import org.apache.commons.transaction.util.Jdk14Logger;
-import org.apache.commons.transaction.util.LoggerFacade;
+import org.apache.cocoon.deployer.util.FileUtils;
 import org.easymock.MockControl;
 
 public class CocoonServer22Test extends AbstractDeployerTestCase {
@@ -51,7 +49,7 @@
 		BinaryBlock[] blocks = new Block10[1];
 		blocks[0] = createBlock10Instance("validBlock-02/valid-block-1.0.jar", "validDeploy-02/deploy.xml", 0);	
 		
-		cocoonServer.deploy(blocks, DEFAULT_WEBAPP_ARTIFACT, createLibraries(), this.getLogger());
+		cocoonServer.deploy(blocks, DEFAULT_WEBAPP_ARTIFACT, createLibraries(), this.getLogger(), true);
 		
 	    // assertions: check if setting the properties works correctly
 		Wiring wiring = (Wiring) Wiring.unmarshal(new FileReader(new File(deployPath + "/WEB-INF/wiring.xml")));
@@ -74,7 +72,7 @@
 		blocks[1] = createBlock10Instance("validBlock-03/valid-block-1.0.jar", "validDeploy-03/deploy.xml", 1);
 		blocks[2] = createBlock10Instance("validBlock-03/valid-block-1.0.jar", "validDeploy-03/deploy.xml", 2);
 		
-		cocoonServer.deploy(blocks, DEFAULT_WEBAPP_ARTIFACT, createLibraries(), this.getLogger());
+		cocoonServer.deploy(blocks, DEFAULT_WEBAPP_ARTIFACT, createLibraries(), this.getLogger(), true);
 		
 	    // assertions: names, location, connections
 		Wiring wiring = (Wiring) Wiring.unmarshal(new FileReader(new File(deployPath + "/WEB-INF/wiring.xml")));
@@ -105,30 +103,20 @@
 	/**
 	 * Test method for 'org.apache.cocoon.deployer.applicationserver.CocoonServer22.deployCocoonServer(OutputStream)'
 	 */
-	public void testDeployCocoonServer() throws Exception {
+	public void testDeployCocoonServerTransactionalMode() throws Exception {
 		CocoonServer22 cocoonServer = new CocoonServer22();
 		
 		// set the basedirectory (JUnit test output dir)
 		File outputdir = this.createOutputDir("deployServer22");
-		File workdir = this.createOutputDir("deployServer22_work");		
 		
 		cocoonServer.setArtifactProvider(getArtifactProviderInstance());
 		
 		// test whether the Cocoon server got extracted
-
-		String relativeOutputDir = "x";
-	    String txId = "deploy";	    
-	    FileResourceManager frm = null;	    
-
-	    Logger logger = Logger.getLogger(CocoonServer22.class.getName());
-	    LoggerFacade sLogger = new Jdk14Logger(logger); 	    
-	    
-	    frm = new FileResourceManager(outputdir.getAbsolutePath(), workdir.getAbsolutePath(), false, sLogger);
-	    frm.start();
-	    frm.startTransaction(txId);
+		String relativeOutputDir = "x";       
+	    FileManager frm = FileUtils.createFileManager(new File(outputdir.getAbsolutePath()).toURI(), true);
 	    
-	    cocoonServer.deployCocoonServer(frm, txId, relativeOutputDir, DEFAULT_WEBAPP_ARTIFACT);
-	    frm.commitTransaction(txId);
+	    cocoonServer.deployCocoonServer(frm, relativeOutputDir, DEFAULT_WEBAPP_ARTIFACT);
+	    frm.commitTransaction();
 	    
 	    // ASSERTIONS!!!
 		Wiring wiring = (Wiring) Wiring.unmarshal(new FileReader(new File(deployPath + "/x/WEB-INF/wiring.xml")));

Added: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/filemanager/NontransactionalFileManagerTest.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/filemanager/NontransactionalFileManagerTest.java?rev=383117&view=auto
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/filemanager/NontransactionalFileManagerTest.java (added)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/test/java/org/apache/cocoon/deployer/filemanager/NontransactionalFileManagerTest.java Sat Mar  4 06:36:16 2006
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2006 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.cocoon.deployer.filemanager;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import org.apache.cocoon.deployer.AbstractDeployerTestCase;
+import org.apache.cocoon.deployer.util.FileUtils;
+
+public class NontransactionalFileManagerTest extends AbstractDeployerTestCase {
+
+	private static final String EXISTING_RESOURCE = "lib-01/lib-01.jar";
+	private static final String NOT_EXISTING_RESOURCE = "lib-01/lib-01.jar_______";	
+
+	public void testWrite() throws Exception {
+		File basedir = new File(AbstractDeployerTestCase.OUTPUT_DIR, "/xyz/abc");
+		String fileName = "x.txt";		
+		
+		FileManager fm = new NontransactionalFileManager(basedir.toURI());
+
+		OutputStream os = fm.writeResource(fileName);
+		InputStream is = new FileInputStream(this.getMockArtefact(EXISTING_RESOURCE));
+		FileUtils.copy(is, os);
+		fm.commitTransaction();
+		
+		assertTrue(new File(basedir, fileName).exists());
+	}	
+	
+	public void testRead() throws Exception {
+		File basedir = new File(this.MOCKS_DIR);
+		InputStream is = new NontransactionalFileManager(basedir.toURI()).readResource(EXISTING_RESOURCE);
+	}
+	
+	public void testReadNotExistingFile() throws Exception {
+		File basedir = new File(this.MOCKS_DIR);
+		try {
+			InputStream is = new NontransactionalFileManager(basedir.toURI()).readResource(NOT_EXISTING_RESOURCE);
+			fail("A non-existing file has to throw an exception.");
+		} catch(FileManagerException fme) {
+			// expected
+		}
+		
+	}	
+	
+	public void testNontransactionFileManagerWithNullBasedir() throws Exception {
+		try {
+			FileManager fm = new NontransactionalFileManager(null);
+			fail("Null basedir mustn't be allowed.");
+		} catch(IllegalArgumentException iae) {
+			// expected
+		}
+	}
+
+}

Propchange: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin-demo/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Sat Mar  4 06:36:16 2006
@@ -4,3 +4,4 @@
 .wtpmodules
 target
 work
+work-dir

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin/src/main/java/org/apache/cocoon/maven/deployer/DeployMojo.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin/src/main/java/org/apache/cocoon/maven/deployer/DeployMojo.java?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin/src/main/java/org/apache/cocoon/maven/deployer/DeployMojo.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin/src/main/java/org/apache/cocoon/maven/deployer/DeployMojo.java Sat Mar  4 06:36:16 2006
@@ -190,7 +190,7 @@
                               new NullVariableResolver(),
                               new MavenLoggingWrapper(this.getLog()));
         
-        blockDeployer.deploy(deploy);
+        blockDeployer.deploy(deploy, false);
         
     }	
     

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin/src/main/java/org/apache/cocoon/maven/deployer/SingleBlockDeployMojo.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin/src/main/java/org/apache/cocoon/maven/deployer/SingleBlockDeployMojo.java?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin/src/main/java/org/apache/cocoon/maven/deployer/SingleBlockDeployMojo.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-plugin/src/main/java/org/apache/cocoon/maven/deployer/SingleBlockDeployMojo.java Sat Mar  4 06:36:16 2006
@@ -158,7 +158,7 @@
                               new NullVariableResolver(),
                               new MavenLoggingWrapper(this.getLog()));
         
-        blockDeployer.deploy(deploy);
+        blockDeployer.deploy(deploy, false);
         
     }
 }

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/cocoon-deploy.xml
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/cocoon-deploy.xml?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/cocoon-deploy.xml (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/cocoon-deploy.xml Sat Mar  4 06:36:16 2006
@@ -1,29 +1,29 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright 2006 The Apache Software Foundation
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License. 
--->
-<deploy xmlns="http://apache.org/cocoon/blocks/deploy/1.0">
-  
-  <cocoon block-fw-urn="org.apache.cocoon:cocoon-default:1.0-SNAPSHOT"/>
-  
-  <block id="plugin-demo1" urn="org.apache.cocoon:cocoon-deployer-plugin-demo:1.0-SNAPSHOT">
-    <mount path="/p1"/>
-  </block>      
-
-  <block id="plugin-demo2" urn="org.apache.cocoon:cocoon-deployer-plugin-demo:1.0-SNAPSHOT">
-    <mount path="/p2"/>
-  </block> 
-  
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2006 The Apache Software Foundation
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License. 
+-->
+<deploy xmlns="http://apache.org/cocoon/blocks/deploy/1.0">
+  
+  <cocoon block-fw-urn="org.apache.cocoon:cocoon-default:1.0-SNAPSHOT"/>
+  
+  <block id="plugin-demo1" urn="org.apache.cocoon:cocoon-deployer-plugin-demo:1.0-SNAPSHOT">
+    <mount path="/p1"/>
+  </block>      
+
+  <block id="plugin-demo2" urn="org.apache.cocoon:cocoon-deployer-plugin-demo:1.0-SNAPSHOT">
+    <mount path="/p2"/>
+  </block> 
+  
 </deploy>

Propchange: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/cocoon-deploy.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/src/main/webapp/WEB-INF/web.xml?rev=383117&r1=383116&r2=383117&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/src/main/webapp/WEB-INF/web.xml (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/src/main/webapp/WEB-INF/web.xml Sat Mar  4 06:36:16 2006
@@ -1,63 +1,63 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Copyright 2006 The Apache Software Foundation
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-
-<!--+
-    | This is the BlocksManagerTestCase web-app configurations file
-    +-->
-
-<!DOCTYPE web-app
-    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
-    "http://java.sun.com/dtd/web-app_2_3.dtd">
-
-<web-app>
-
-  <!-- Servlet Configuration ========================================== -->
-
-  <servlet>
-    <servlet-name>BlocksManager</servlet-name>
-    <display-name>BlocksManager</display-name>
-    <description>BlocksManager</description>
-
-    <servlet-class>org.apache.cocoon.blocks.servlet.BlocksManager</servlet-class>
-
-    <init-param>
-      <param-name>work-directory</param-name>
-      <param-value>work</param-value>
-    </init-param>
-
-    <!--
-      Set encoding used by the container. If not set the ISO-8859-1 encoding
-      will be assumed.
-      Since the servlet specification requires that the ISO-8859-1 encoding
-      is used (by default), you should never change this value unless
-      you have a buggy servlet container.
-    -->
-    <init-param>
-      <param-name>container-encoding</param-name>
-      <param-value>ISO-8859-1</param-value>
-    </init-param>
-
-  </servlet>
-
-  <!-- URL space mappings ============================================= -->
-
-  <servlet-mapping>
-    <servlet-name>BlocksManager</servlet-name>
-    <url-pattern>/*</url-pattern>
-  </servlet-mapping>
-
-</web-app>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 2006 The Apache Software Foundation
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<!--+
+    | This is the BlocksManagerTestCase web-app configurations file
+    +-->
+
+<!DOCTYPE web-app
+    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+    "http://java.sun.com/dtd/web-app_2_3.dtd">
+
+<web-app>
+
+  <!-- Servlet Configuration ========================================== -->
+
+  <servlet>
+    <servlet-name>BlocksManager</servlet-name>
+    <display-name>BlocksManager</display-name>
+    <description>BlocksManager</description>
+
+    <servlet-class>org.apache.cocoon.blocks.servlet.BlocksManager</servlet-class>
+
+    <init-param>
+      <param-name>work-directory</param-name>
+      <param-value>work</param-value>
+    </init-param>
+
+    <!--
+      Set encoding used by the container. If not set the ISO-8859-1 encoding
+      will be assumed.
+      Since the servlet specification requires that the ISO-8859-1 encoding
+      is used (by default), you should never change this value unless
+      you have a buggy servlet container.
+    -->
+    <init-param>
+      <param-name>container-encoding</param-name>
+      <param-value>ISO-8859-1</param-value>
+    </init-param>
+
+  </servlet>
+
+  <!-- URL space mappings ============================================= -->
+
+  <servlet-mapping>
+    <servlet-name>BlocksManager</servlet-name>
+    <url-pattern>/*</url-pattern>
+  </servlet-mapping>
+
+</web-app>

Propchange: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-webapp-sample/src/main/webapp/WEB-INF/web.xml
------------------------------------------------------------------------------
    svn:eol-style = native