You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by cz...@apache.org on 2006/12/25 21:52:37 UTC

svn commit: r490171 - in /cocoon/trunk/core: cocoon-configuration/cocoon-configuration-impl/src/main/java/org/apache/cocoon/configuration/impl/ cocoon-spring/src/main/java/org/apache/cocoon/core/container/spring/

Author: cziegeler
Date: Mon Dec 25 12:52:36 2006
New Revision: 490171

URL: http://svn.apache.org/viewvc?view=rev&rev=490171
Log:
Make deployment util more reusable

Modified:
    cocoon/trunk/core/cocoon-configuration/cocoon-configuration-impl/src/main/java/org/apache/cocoon/configuration/impl/DeploymentUtil.java
    cocoon/trunk/core/cocoon-spring/src/main/java/org/apache/cocoon/core/container/spring/SettingsBeanFactoryPostProcessor.java

Modified: cocoon/trunk/core/cocoon-configuration/cocoon-configuration-impl/src/main/java/org/apache/cocoon/configuration/impl/DeploymentUtil.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-configuration/cocoon-configuration-impl/src/main/java/org/apache/cocoon/configuration/impl/DeploymentUtil.java?view=diff&rev=490171&r1=490170&r2=490171
==============================================================================
--- cocoon/trunk/core/cocoon-configuration/cocoon-configuration-impl/src/main/java/org/apache/cocoon/configuration/impl/DeploymentUtil.java (original)
+++ cocoon/trunk/core/cocoon-configuration/cocoon-configuration-impl/src/main/java/org/apache/cocoon/configuration/impl/DeploymentUtil.java Mon Dec 25 12:52:36 2006
@@ -43,20 +43,19 @@
 
     protected static final Log logger = LogFactory.getLog(DeploymentUtil.class);
 
-    protected static final String RESOURCES_PATH = "COB-INF";
+    protected static final String BLOCK_RESOURCES_PATH = "COB-INF";
 
-    protected final String destinationDirectory;
-    
     protected static final Map blockContexts = new HashMap(); 
 
-    public DeploymentUtil(String destination) {
-        if ( destination == null ) {
-            throw new IllegalArgumentException("Destination must not be null.");
-        }
-        this.destinationDirectory = destination;
-    }
-
-    protected void deploy(JarFile jarFile, String prefix, String destination)
+    /**
+     * Deploy all files with a given prefix from a jar file to a directory
+     * in the file system.
+     * @param jarFile      The jar file containing the resources.
+     * @param prefix       The common prefix for the files.
+     * @param destination  The destination directory.
+     * @throws IOException
+     */
+    public static void deploy(JarFile jarFile, String prefix, String destination)
     throws IOException {
         if ( logger.isDebugEnabled() ) {
             logger.debug("Deploying jar " + jarFile + " to " + destination);
@@ -75,15 +74,16 @@
         }        
     }
 
-    protected void deployBlockResources(String resourcePattern, String relativeDirectory)
+    protected static void deployBlockResources(String relativeDirectory,
+                                               String destinationDirectory)
     throws IOException {
-        final Enumeration jarUrls = this.getClass().getClassLoader().getResources(resourcePattern);
+        final Enumeration jarUrls = DeploymentUtil.class.getClassLoader().getResources(BLOCK_RESOURCES_PATH);
         while ( jarUrls.hasMoreElements() ) {
             final URL resourceUrl = (URL)jarUrls.nextElement();
 
             String url = resourceUrl.toExternalForm();
             if ( "file".equals(resourceUrl.getProtocol()) ) {
-                // FIXME: This only cover the siuation when the project is Maven generated
+                // FIXME: This only covers the siuation when the project is Maven generated
                 // if this is a file url generated by the Maven,
                 // it has this form "file:{url}/{block name}/target/classes/COB-INF
                 int pos = url.indexOf("/target/classes/COB-INF");
@@ -95,7 +95,7 @@
                     DeploymentUtil.blockContexts.put(blockName, url);
                 }
             } else if ( "jar".equals(resourceUrl.getProtocol()) ) {
-                // if this is a jar url, it has this form "jar:{url-to-jar}!/{resource-path}
+                // if this is a jar url, it has this form: "jar:{url-to-jar}!/{resource-path}"
                 // to open the jar, we can simply remove everything after "!/"
                 int pos = url.indexOf('!');
                 url = url.substring(0, pos+2); // +2 as we include "!/"
@@ -111,13 +111,13 @@
                     blockName = jarName.substring(0, jarName.lastIndexOf('.'));
                     // TODO how do we strip version from blockName?
                 }
-                final StringBuffer buffer = new StringBuffer(this.destinationDirectory);
+                final StringBuffer buffer = new StringBuffer(destinationDirectory);
                 buffer.append(File.separatorChar);
                 buffer.append(relativeDirectory);
                 buffer.append(File.separatorChar);
                 buffer.append(blockName);
                 String destination = buffer.toString();
-                this.deploy(jarFile, resourcePattern, destination);
+                deploy(jarFile, BLOCK_RESOURCES_PATH, destination);
                 // register the root URL for the block resources
                 DeploymentUtil.blockContexts.put(blockName, destination);
             }
@@ -126,13 +126,13 @@
         }        
     }
 
-    public void deploy()
+    public static void deployBlockArtifacts(String destinationDirectory)
     throws IOException {
-        // Check if we run unexpanded
-        if ( this.destinationDirectory != null ) {
-            // deploy all artifacts containing block resources
-            this.deployBlockResources(DeploymentUtil.RESOURCES_PATH, "blocks");
+        if ( destinationDirectory == null ) {
+            throw new IllegalArgumentException("Destination must not be null.");
         }
+        // deploy all artifacts containing block resources
+        deployBlockResources("blocks", destinationDirectory);
     }
 
     /**

Modified: cocoon/trunk/core/cocoon-spring/src/main/java/org/apache/cocoon/core/container/spring/SettingsBeanFactoryPostProcessor.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-spring/src/main/java/org/apache/cocoon/core/container/spring/SettingsBeanFactoryPostProcessor.java?view=diff&rev=490171&r1=490170&r2=490171
==============================================================================
--- cocoon/trunk/core/cocoon-spring/src/main/java/org/apache/cocoon/core/container/spring/SettingsBeanFactoryPostProcessor.java (original)
+++ cocoon/trunk/core/cocoon-spring/src/main/java/org/apache/cocoon/core/container/spring/SettingsBeanFactoryPostProcessor.java Mon Dec 25 12:52:36 2006
@@ -70,8 +70,7 @@
         this.forceLoad();
 
         // finally deploy block artifacts!
-        final DeploymentUtil deployer = new DeploymentUtil(this.settings.getWorkDirectory());
-        deployer.deploy();
+        DeploymentUtil.deployBlockArtifacts(this.settings.getWorkDirectory());
     }
 
     /**