Title: [waffle-scm] [61] trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy: Refactored to use NodeBuilderAdapter.

Diff

Modified: trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ActionRegistrarNodeBuilder.java (60 => 61)

--- trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ActionRegistrarNodeBuilder.java	2007-05-19 17:42:13 UTC (rev 60)
+++ trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ActionRegistrarNodeBuilder.java	2007-05-20 11:30:54 UTC (rev 61)
@@ -1,6 +1,5 @@
 /*****************************************************************************
- * Copyright (C) 2005,2006 Michael Ward                                      *
- * All rights reserved.                                                      *
+ * Copyright (C) NanoContainer Organization. All rights reserved.            *
  * ------------------------------------------------------------------------- *
  * The software in this package is published under the terms of the BSD      *
  * style license a copy of which has been included with this distribution in *
@@ -13,28 +12,26 @@
 
 import java.util.Map;
 
-import org.codehaus.waffle.registrar.RegistrarAssistant;
 import org.codehaus.waffle.registrar.Registrar;
-import org.picocontainer.PicoContainer;
 import org.nanocontainer.webcontainer.PicoContextHandler;
+import org.picocontainer.PicoContainer;
 
 public class ActionRegistrarNodeBuilder extends NodeBuilder {
 
+    private static final String EMPTY_NODE = "";
     private final PicoContainer parentContainer;
-    Object registrarClass;
+    private Object registrarClass;
     private final PicoContextHandler context;
 
-
     public ActionRegistrarNodeBuilder(PicoContainer parentContainer, Object registrarClass, PicoContextHandler context) {
         this.parentContainer = parentContainer;
         this.registrarClass = registrarClass;
         this.context = context;
-        context.addInitParam(Registrar.class.getName(), registrarClass instanceof Class ? ((Class) registrarClass).getName() : (String) registrarClass);
-
+        context.addInitParam(Registrar.class.getName(), registrarClass instanceof Class ? ((Class) registrarClass)
+                .getName() : (String) registrarClass);
     }
 
     protected Object createNode(Object current, Map attributes) {
-
-        return "";
+        return EMPTY_NODE;
     }
 }

Added: trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ActionsNodeBuilder.java (0 => 61)

--- trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ActionsNodeBuilder.java	                        (rev 0)
+++ trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ActionsNodeBuilder.java	2007-05-20 11:30:54 UTC (rev 61)
@@ -0,0 +1,54 @@
+/*****************************************************************************
+ * Copyright (C) 2005,2006 Michael Ward                                      *
+ * All rights reserved.                                                      *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD      *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file.                                                     *
+ *                                                                           *
+ *****************************************************************************/
+package org.codehaus.waffle.groovy;
+
+import java.util.Map;
+
+import groovy.util.NodeBuilder;
+
+import org.codehaus.waffle.registrar.Registrar;
+import org.nanocontainer.DefaultNanoContainer;
+import org.nanocontainer.NanoContainer;
+import org.nanocontainer.webcontainer.PicoContextHandler;
+import org.picocontainer.PicoContainer;
+
+public class ActionsNodeBuilder extends NodeBuilder {
+    protected final PicoContainer parentContainer;
+    protected final PicoContextHandler context;
+
+    protected ActionsNodeBuilder(PicoContainer parentContainer, PicoContextHandler context) {
+        this.parentContainer = parentContainer;
+        this.context = context;
+    }
+
+    protected Object buildInstance(String actionClassName) {
+        NanoContainer factory = new DefaultNanoContainer();
+        factory.getPico().registerComponentInstance(PicoContextHandler.class, context);
+        factory.getPico().registerComponentInstance(PicoContainer.class, parentContainer);
+        try {
+            factory.registerComponentImplementation("action", actionClassName);
+            return (NodeBuilder) factory.getPico().getComponentInstance("action");
+        } catch (ClassNotFoundException e) {
+            throw new org.nanocontainer.script.BuilderClassNotFoundException(actionClassName + " class name not found", e);
+        }
+    }
+    
+    protected void registerAction(Map attributes) {
+        Registrar registrar = (Registrar) parentContainer.getComponentInstanceOfType(Registrar.class);
+        Object clazz = attributes.remove("class"); // could be Class or String
+        if ( clazz instanceof Class ){
+            registrar.register((Class)clazz, new Object[]{});    
+        } else {
+            registrar.register(buildInstance((String) clazz).getClass(), new Object[]{});                    
+        }
+    }
+    
+
+}

Modified: trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ApplicationActionsNodeBuilder.java (60 => 61)

--- trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ApplicationActionsNodeBuilder.java	2007-05-19 17:42:13 UTC (rev 60)
+++ trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ApplicationActionsNodeBuilder.java	2007-05-20 11:30:54 UTC (rev 61)
@@ -9,29 +9,24 @@
  *****************************************************************************/
 package org.codehaus.waffle.groovy;
 
+import java.util.Map;
+
 import org.nanocontainer.webcontainer.PicoContextHandler;
 import org.picocontainer.PicoContainer;
-import groovy.util.NodeBuilder;
 
-import java.util.Map;
+public class ApplicationActionsNodeBuilder extends ActionsNodeBuilder {
 
-public class ApplicationActionsNodeBuilder extends NodeBuilder {
-    private final PicoContainer parentContainer;
-    private final PicoContextHandler context;
-
     public ApplicationActionsNodeBuilder(PicoContainer parentContainer, PicoContextHandler context) {
-        this.parentContainer = parentContainer;
-        this.context = context;
+        super(parentContainer, context);
     }
 
-
     protected Object createNode(Object name, Map attributes) {
         if (name.equals("register")) {
-            Object clazz = attributes.remove("class"); // could be string or Class
-            // register application
+            registerAction(attributes);
             return null; // err something really
         } else {
             return null;
         }
     }
+
 }

Modified: trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/SessionActionsNodeBuilder.java (60 => 61)

--- trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/SessionActionsNodeBuilder.java	2007-05-19 17:42:13 UTC (rev 60)
+++ trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/SessionActionsNodeBuilder.java	2007-05-20 11:30:54 UTC (rev 61)
@@ -21,7 +21,6 @@
         this.context = context;
     }
 
-
     protected Object createNode(Object name, Map attributes) {
         if (name.equals("register")) {
             Object clazz = attributes.remove("class"); // could be string or Class

Modified: trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ViewSuffixNodeBuilder.java (60 => 61)

--- trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ViewSuffixNodeBuilder.java	2007-05-19 17:42:13 UTC (rev 60)
+++ trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ViewSuffixNodeBuilder.java	2007-05-20 11:30:54 UTC (rev 61)
@@ -4,7 +4,5 @@
 
 public class ViewSuffixNodeBuilder extends Object {
     public ViewSuffixNodeBuilder(PicoContextHandler context, String suffix) {
-        
-
     }
 }

Modified: trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/WaffleNodeBuilder.java (60 => 61)

--- trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/WaffleNodeBuilder.java	2007-05-19 17:42:13 UTC (rev 60)
+++ trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/WaffleNodeBuilder.java	2007-05-20 11:30:54 UTC (rev 61)
@@ -14,31 +14,31 @@
 
 import java.util.Map;
 
+import org.codehaus.waffle.context.pico.PicoWaffleContextListener;
+import org.codehaus.waffle.servlet.WaffleServlet;
 import org.nanocontainer.script.NanoContainerMarkupException;
 import org.nanocontainer.webcontainer.PicoContextHandler;
 import org.nanocontainer.webcontainer.PicoServletHolder;
 import org.picocontainer.PicoContainer;
-import org.codehaus.waffle.context.pico.PicoWaffleContextListener;
-import org.codehaus.waffle.servlet.WaffleServlet;
 
 public class WaffleNodeBuilder extends NodeBuilder {
     private final PicoContainer parentContainer;
     private final PicoContextHandler context;
-
+    
     public WaffleNodeBuilder(PicoContainer parentContainer, PicoContextHandler context, Map attributes) {
         this.parentContainer = parentContainer;
         this.context = context;
 
         context.addListener(PicoWaffleContextListener.class);
-        String svtSuffix = (String) attributes.remove("servlet-suffix");
-        if (svtSuffix == null || svtSuffix.equals("")) {
-            svtSuffix = "*.action";
+        String servletSuffix = (String) attributes.remove("servletSuffix");
+        if (servletSuffix == null || servletSuffix.equals("")) {
+            servletSuffix = "*.action";
         }
 
-        PicoServletHolder wSvt = context.addServletWithMapping(WaffleServlet.class,"");
-        String viewSuffix = (String) attributes.remove("view-suffix");
+        PicoServletHolder holder = context.addServletWithMapping(WaffleServlet.class,"");
+        String viewSuffix = (String) attributes.remove("viewSuffix");
         if (viewSuffix != null && !viewSuffix.equals("")) {
-            wSvt.setInitParameter("view.suffix", viewSuffix);
+            holder.setInitParameter("view.suffix", viewSuffix);
         }
     }
 

Added: trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/FooApplicationAction.java (0 => 61)

--- trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/FooApplicationAction.java	                        (rev 0)
+++ trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/FooApplicationAction.java	2007-05-20 11:30:54 UTC (rev 61)
@@ -0,0 +1,10 @@
+/**
+ * 
+ */
+package org.codehaus.waffle.groovy;
+
+public class FooApplicationAction {
+    public String toString() {
+        return "(ABC)";
+    }
+}
\ No newline at end of file

Modified: trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/FooRegistrar.java (60 => 61)

--- trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/FooRegistrar.java	2007-05-19 17:42:13 UTC (rev 60)
+++ trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/FooRegistrar.java	2007-05-20 11:30:54 UTC (rev 61)
@@ -18,25 +18,4 @@
         register("fooAction", FooSessionAction.class);
     }
 
-
-    // ---------------
-
-    public static class FooApplicationAction {
-        public String toString() {
-            return "(ABC)";
-        }
-    }
-
-    public static class FooSessionAction {
-        private final FooApplicationAction fooApplicationAction;
-
-        public FooSessionAction(FooApplicationAction fooApplicationAction) {
-            this.fooApplicationAction = fooApplicationAction;
-        }
-
-        public String getMessage() {
-            return fooApplicationAction.toString() + "(DEF)";
-        }
-    }
-
 }

Added: trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/FooSessionAction.java (0 => 61)

--- trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/FooSessionAction.java	                        (rev 0)
+++ trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/FooSessionAction.java	2007-05-20 11:30:54 UTC (rev 61)
@@ -0,0 +1,16 @@
+/**
+ * 
+ */
+package org.codehaus.waffle.groovy;
+
+public class FooSessionAction {
+    private final FooApplicationAction applicationAction;
+
+    public FooSessionAction(FooApplicationAction applicationAction) {
+        this.applicationAction = applicationAction;
+    }
+
+    public String getMessage() {
+        return applicationAction.toString() + "(DEF)";
+    }
+}
\ No newline at end of file

Modified: trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/WaffleNodeBuilderTest.java (60 => 61)

--- trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/WaffleNodeBuilderTest.java	2007-05-19 17:42:13 UTC (rev 60)
+++ trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/WaffleNodeBuilderTest.java	2007-05-20 11:30:54 UTC (rev 61)
@@ -41,14 +41,13 @@
     }
     
     public void FIXME_testCanComposeWebContainerWithCompleteWaffleApp() throws InterruptedException, IOException {
-        Reader script = new StringReader("" +
-                "" +
+        Reader script = new StringReader(
                 "nano = builder.container {\n" +
                 "    webContainer(port:8080) {\n" +
                 "        context(path:'/bar') {\n" +
-                "            waffleApp(view-suffix:\"*.jspx\") {" +
+                "            adapter(nodeBuilder:'org.codehaus.waffle.groovy.WaffleNodeBuilder', viewSuffix:'.jspx') {" +
                 "               actionRegistrar(class:org.codehaus.waffle.groovy.FooRegistrar)\n" +
-                "               requestFilter(filter:\"*.foo\")\n" +
+                "               requestFilter(filter:'*.foo')\n" +
                 "            }\n" +
                 "        }\n" +
                 "    }\n" +
@@ -58,19 +57,19 @@
     }
 
     public void FIXME_testCanComposeWholeWaffleIncludingComposedActions() throws InterruptedException, IOException {
-        Reader script = new StringReader("" +
+        Reader script = new StringReader(
                 "nano = builder.container {\n" +
-                "    component(class:SomeReallyBaseLevelService)\n" +
+                "    component(class:org.codehaus.waffle.groovy.FooRegistrar)\n" +
                 "    webContainer(port:8080) {\n" +
                 "        context(path:'/bar') {\n" +
-                "            waffleApp(view-suffix:'.jspx') {\n" +
+                "            adapter(nodeBuilder:'org.codehaus.waffle.groovy.WaffleNodeBuilder', viewSuffix:'.jspx') {\n" +
                 "                registerActions {\n" +
-                "                    session {\n" +
-                "                       register(action:'cart' class:ShoppingCart)\n" +
-                "                    }\n" +
                 "                    application {\n" +
-                "                       register(class:CartSecurityManager)\n" +
+                "                       register(class:org.codehaus.waffle.groovy.FooApplicationAction)\n" +
                 "                    }\n" +
+//                "                    session {\n" +
+//                "                       register(action:'sessionAction', class:org.codehaus.waffle.groovy.FooSessionAction)\n" +
+//                "                    }\n" +
                 "                }\n" +
                 "                requestFilter(filter:'*.htm')\n" +
                 "            }\n" +


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to