You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by pi...@apache.org on 2004/11/03 18:19:48 UTC

svn commit: rev 56491 - in cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel: deployment description

Author: pier
Date: Wed Nov  3 09:19:45 2004
New Revision: 56491

Modified:
   cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/deployment/Factory.java
   cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/description/Descriptor.java
Log:
Fail on inaccessible libraries AND provide a default "local.jar" which block relative to the descriptor which blocks can simply not declare

Modified: cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/deployment/Factory.java
==============================================================================
--- cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/deployment/Factory.java	(original)
+++ cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/deployment/Factory.java	Wed Nov  3 09:19:45 2004
@@ -85,11 +85,11 @@
     }
 
     /**
-     * <p>Configure the specified {@link Runtime} from a {@link Configuration}.</p>
+     * <p>Configure the specified {@link Deployer} from a {@link Configuration}.</p>
      */
-    public static void configure(Deployer runtime, Configuration config)
+    public static void configure(Deployer deployer, Configuration config)
     throws DeployerException {
-        if (runtime == null) throw new NullPointerException("Null runtime");
+        if (deployer == null) throw new NullPointerException("Null runtime");
         if (config == null) throw new NullPointerException("Null configuration");
 
         Iterator iterator = config.children("instance");
@@ -99,7 +99,7 @@
             String name = current.getStringAttribute("name");
             String block = current.getStringAttribute("block");
 
-            Descriptor descriptor = runtime.getLibrary().get(block);
+            Descriptor descriptor = deployer.getLibrary().get(block);
             if (descriptor == null) {
                 throw new DeployerException("Unable to retrieve descriptor for "
                         + "block \"" + block + " declared at " + current.location());
@@ -108,8 +108,8 @@
                 throw new DeployerException("Unable to instantiate non-block \""
                         + block + " declared at " + current.location());
             }
-            Instance instance = new Instance(runtime, (Block) descriptor, name);
-            runtime.putInstance(name, instance, current);
+            Instance instance = new Instance(deployer, (Block) descriptor, name);
+            deployer.putInstance(name, instance, current);
         } catch (DeployerException e) {
             throw e;
         } catch (Throwable t) {

Modified: cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/description/Descriptor.java
==============================================================================
--- cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/description/Descriptor.java	(original)
+++ cocoon/whiteboard/kernel/sources/runtime/org/apache/cocoon/kernel/description/Descriptor.java	Wed Nov  3 09:19:45 2004
@@ -12,6 +12,7 @@
  * =============================================================================== */
 package org.apache.cocoon.kernel.description;
 
+import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.HashSet;
@@ -86,15 +87,27 @@
         while (iterator.hasNext()) try {
             current = (Configuration) iterator.next();
             String url = current.getStringAttribute("href");
-            collector.add(new URL(configuration.locationURL(), url));
-
+            URL lib = new URL(configuration.locationURL(), url);
+            lib.openStream().close();
+            collector.add(lib);
         } catch (ConfigurationException exception) {
             throw new DeployerException("Library location not specified in "
                     + "descriptor at " + current.location(), exception);
-
         } catch (MalformedURLException exception) {
             throw new DeployerException("Invalid library location specified in "
                     + " descriptor at " + current.location(), exception);
+        } catch (IOException exception) {
+            throw new DeployerException("Unable to access library location specified"
+                    + " in descriptor at " + current.location(), exception);
+        }
+
+        /* See if we have a "local" library as well */
+        try {
+            URL local = new URL(configuration.locationURL(), "local.jar");
+            local.openStream().close();
+            collector.add(local);
+        } catch (IOException e) {
+            /* Swallow this, the block does not provide a local library. */
         }
 
         this.libraries = (URL[]) collector.toArray(new URL[collector.size()]);