- Revision
- 61
- Author
- mauro
- Date
- 2007-05-20 06:30:54 -0500 (Sun, 20 May 2007)
Log Message
Refactored to use NodeBuilderAdapter. Tests still failing.
Modified Paths
- trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ActionRegistrarNodeBuilder.java
- trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ApplicationActionsNodeBuilder.java
- trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/SessionActionsNodeBuilder.java
- trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/ViewSuffixNodeBuilder.java
- trunk/extensions/webcontainer/src/main/java/org/codehaus/waffle/groovy/WaffleNodeBuilder.java
- trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/FooRegistrar.java
- trunk/extensions/webcontainer/src/test/java/org/codehaus/waffle/groovy/WaffleNodeBuilderTest.java
Added Paths
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:
