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/02/09 11:23:58 UTC

svn commit: r376247 - in /cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src: main/java/org/apache/cocoon/deployer/applicationserver/ main/java/org/apache/cocoon/deployer/block/ main/java/org/apache/cocoon/deployer/util/ test/java/org/apache/c...

Author: reinhard
Date: Thu Feb  9 02:23:56 2006
New Revision: 376247

URL: http://svn.apache.org/viewcvs?rev=376247&view=rev
Log:
COCOON-1760

don't add blocks to WEB-INF/lib

Modified:
    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/block/BlockFactory.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/applicationserver/CocoonServer22Test.java

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=376247&r1=376246&r2=376247&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 Thu Feb  9 02:23:56 2006
@@ -19,6 +19,7 @@
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.OutputStream;
 import java.io.OutputStreamWriter;
@@ -148,16 +149,33 @@
 			// TODO What happens if two libraries have the same filename by chance ...?
 			for(int i = 0; i < libraries.length; i++) {
 				File lib = libraries[i];
-				String libName = lib.getName();
-				log.info("Installing library " + WEB_INF_LIBS_DIR + "/" + libName);		
-				OutputStream out = frm.writeResource(txId, WEB_INF_LIBS_DIR + "/" + libName);
-				FileInputStream fis = new FileInputStream(lib);
-				int b;
-				while((b = fis.read()) != -1) {
-					out.write(b);
+				
+				// check if a library is a block, if yes, don't add it to WEB_INF_LIBS_DIR
+				boolean isBlock = true;
+				InputStream blockIs = null;
+				try {
+					blockIs = ZipUtils.getBlockDescriptorIs(lib);
+				} catch(FileNotFoundException fnfe) {
+					isBlock = false;
+				}
+				
+				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();
+					}
 				}
-				fis.close();
-				out.close();
 			}
 			
 			// write the wiring

Modified: cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/block/BlockFactory.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/block/BlockFactory.java?rev=376247&r1=376246&r2=376247&view=diff
==============================================================================
--- cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/block/BlockFactory.java (original)
+++ cocoon/trunk/cocoon-block-deployer/cocoon-deployer-core/src/main/java/org/apache/cocoon/deployer/block/BlockFactory.java Thu Feb  9 02:23:56 2006
@@ -49,10 +49,10 @@
 		try {
 			Unmarshaller unmarshaller = new Unmarshaller(Block.class);
 			// unmarshaller.setDebug(true);
-			blockDescriptor = (Block) unmarshaller.unmarshal(new InputStreamReader(ZipUtils.getBlockDescriptIs(blockArchive)));
+			blockDescriptor = (Block) unmarshaller.unmarshal(new InputStreamReader(ZipUtils.getBlockDescriptorIs(blockArchive)));
 			block.setBlockDescriptor(blockDescriptor);
 			block.setInputStream(new FileInputStream(blockArchive));
-			block.setNameSpace(XMLUtils.getDocumentNamespace(ZipUtils.getBlockDescriptIs(blockArchive)));
+			block.setNameSpace(XMLUtils.getDocumentNamespace(ZipUtils.getBlockDescriptorIs(blockArchive)));
 			block.setId(blockDescriptor.getId());
 		} catch (FileNotFoundException e) {
 			throw new DeploymentException("The block archive file can't be found.");

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=376247&r1=376246&r2=376247&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 Thu Feb  9 02:23:56 2006
@@ -84,7 +84,7 @@
 	    return new ByteArrayInputStream(baos.toByteArray());        
 	}
 
-	public static InputStream getBlockDescriptIs(File blockArchive) throws FileNotFoundException, IOException {
+	public static InputStream getBlockDescriptorIs(File blockArchive) throws FileNotFoundException, IOException {
 		return getDescriptorInputStream(new ZipInputStream(new FileInputStream(blockArchive)));
 	}	
 	

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=376247&r1=376246&r2=376247&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 Thu Feb  9 02:23:56 2006
@@ -58,7 +58,7 @@
 		assertEquals(wiring.getBlock(0).getProperties().getProperty(0).getValue(), "defaultValue1");
 		assertEquals(wiring.getBlock(0).getProperties().getProperty(1).getValue(), "new-value");		
 		assertTrue(new File(deployPath + "/WEB-INF/lib/lib-01.jar").exists());
-		assertTrue(new File(deployPath + "/WEB-INF/lib/lib-02.jar").exists());		
+		assertFalse(new File(deployPath + "/WEB-INF/lib/valid-block-1.0.jar").exists());		
 	}
 	
 	public void testDeployWithConnections() throws Exception {
@@ -93,6 +93,7 @@
 		// check libraries
 		assertTrue(new File(deployPath + "/WEB-INF/lib/lib-01.jar").exists());
 		assertTrue(new File(deployPath + "/WEB-INF/lib/lib-02.jar").exists());			
+		assertFalse(new File(deployPath + "/WEB-INF/lib/valid-block-1.0.jar").exists());				
 	}	
 
 	private BinaryBlock createBlock10Instance(String blockArchive, String deployDescriptorFile, int deployDescPos) 
@@ -150,9 +151,10 @@
 	}
 	
 	private File[] createLibraries() {
-		File[] libraries = new File[2];
+		File[] libraries = new File[3];
 		libraries[0] = this.getMockArtefact("lib-01/lib-01.jar");
 		libraries[1] = this.getMockArtefact("lib-02/lib-02.jar");	
+		libraries[2] = this.getMockArtefact("validBlock-02/valid-block-1.0.jar");
 		return libraries;
 	}