Author: antelder
Date: Sun Apr 25 21:22:43 2010
New Revision: 937880

URL: http://svn.apache.org/viewvc?rev=937880&view=rev
Log:
Update webapp host to support a contribution init param pointing to a folder as 
well as an individual contribution

Modified:
    
tuscany/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppHelper.java

Modified: 
tuscany/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppHelper.java
URL: 
http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppHelper.java?rev=937880&r1=937879&r2=937880&view=diff
==============================================================================
--- 
tuscany/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppHelper.java
 (original)
+++ 
tuscany/sca-java-2.x/trunk/modules/host-webapp/src/main/java/org/apache/tuscany/sca/host/webapp/WebAppHelper.java
 Sun Apr 25 21:22:43 2010
@@ -22,6 +22,7 @@ package org.apache.tuscany.sca.host.weba
 import java.io.File;
 import java.io.IOException;
 import java.net.URI;
+import java.net.URISyntaxException;
 import java.net.URL;
 import java.util.Enumeration;
 
@@ -64,7 +65,7 @@ public class WebAppHelper {
     }
 
     @SuppressWarnings("unchecked")
-    private static NodeConfiguration getNodeConfiguration(ServletContext 
servletContext) throws IOException {
+    private static NodeConfiguration getNodeConfiguration(ServletContext 
servletContext) throws IOException, URISyntaxException {
         NodeConfiguration configuration = null;
         String nodeConfigURI = (String) 
servletContext.getAttribute("node.configuration");
         if (nodeConfigURI != null) {
@@ -75,13 +76,21 @@ public class WebAppHelper {
             Enumeration<String> names = servletContext.getAttributeNames();
             while (names.hasMoreElements()) {
                 String name = names.nextElement();
-                if (name.startsWith("contribution.")) {
+                if (name.startsWith("contribution")) {
                     String contrib = (String) 
servletContext.getAttribute(name);
                     if (contrib != null) {
-                        
configuration.addContribution(getResource(servletContext, contrib));
+                        File f = new File(getResource(servletContext, 
contrib).toURI());
+                        if (f.isDirectory()) {
+                            for (File n : f.listFiles()) {
+                                
configuration.addContribution(n.toURI().toURL());
+                            }
+                        } else {
+                            configuration.addContribution(f.toURI().toURL());
+                        }
                     }
                 }
             }
+            
             if (configuration.getContributions().isEmpty()) {
                 // TODO: Which path should be the default root
                 configuration.addContribution(getResource(servletContext, 
"/"));
@@ -138,8 +147,8 @@ public class WebAppHelper {
                 servletHosts.setWebApp(true);
                 
                 // TODO: why are the init parameters copied to the attributes?
-                for (Enumeration<String> e = 
servletContext.getInitParameterNames(); e.hasMoreElements();) {
-                    String name = e.nextElement();
+                for (Enumeration<?> e = 
servletContext.getInitParameterNames(); e.hasMoreElements();) {
+                    String name = (String)e.nextElement();
                     String value = servletContext.getInitParameter(name);
                     servletContext.setAttribute(name, value);
                 }
@@ -196,6 +205,8 @@ public class WebAppHelper {
             configuration = getNodeConfiguration(servletContext);
         } catch (IOException e) {
             throw new ServletException(e);
+        } catch (URISyntaxException e) {
+            throw new ServletException(e);
         }
         Node node = factory.createNode(configuration).start();
         return node;


Reply via email to