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