You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by cr...@apache.org on 2005/07/24 01:15:20 UTC

svn commit: r224583 - in /struts/shale/trunk/core-library: build.xml src/conf/dialog.dtd src/java/org/apache/shale/dialog/config/ConfigurationInit.java

Author: craigmcc
Date: Sat Jul 23 16:15:13 2005
New Revision: 224583

URL: http://svn.apache.org/viewcvs?rev=224583&view=rev
Log:
Support a "className" attribute on all of the configuration elements for a
Shale dialog, defaulting in each case to the existing implementation class.
This allows developers to supply custom implementations of the configuration
information with extra properties.

PR: Bugzilla #35783
Submitted By:  Sean Schofield <sean.schofield AT gmail.com>


Modified:
    struts/shale/trunk/core-library/build.xml
    struts/shale/trunk/core-library/src/conf/dialog.dtd
    struts/shale/trunk/core-library/src/java/org/apache/shale/dialog/config/ConfigurationInit.java

Modified: struts/shale/trunk/core-library/build.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/build.xml?rev=224583&r1=224582&r2=224583&view=diff
==============================================================================
--- struts/shale/trunk/core-library/build.xml (original)
+++ struts/shale/trunk/core-library/build.xml Sat Jul 23 16:15:13 2005
@@ -65,7 +65,7 @@
                                     value="${spring.home}/dist/spring-context.jar"/>
   <property name="spring-core.jar"  value="${spring.home}/dist/spring-core.jar"/>
   <property name="spring-web.jar"   value="${spring.home}/dist/spring-web.jar"/>
-  <property name="tiles.jar"        value="${tiles.home}/core-library/dist/lib/tiles-core.jar"/>
+  <property name="tiles.jar"        value="${tiles.home}/dist/lib/tiles-core.jar"/>
 
 
   <!-- Build Defaults -->

Modified: struts/shale/trunk/core-library/src/conf/dialog.dtd
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/conf/dialog.dtd?rev=224583&r1=224582&r2=224583&view=diff
==============================================================================
--- struts/shale/trunk/core-library/src/conf/dialog.dtd (original)
+++ struts/shale/trunk/core-library/src/conf/dialog.dtd Sat Jul 23 16:15:13 2005
@@ -46,13 +46,18 @@
 <!-- The "dialog" element defines the states for a particular reusable dialog,
      which itself consists of zero or more states (of particular types).  The
      following attributes are defined:
-     
+
+     className                  Fully qualified class name of the configuration
+                                object for this element.
+                                [org.apache.shale.dialog.impl.DialogImpl]
+
      name                       Name of this dialog (must be unique among
                                 all defined dialogs).
 
      start                      Name of the starting state for this dialog.
 -->
 <!ELEMENT dialog ((transition|action|end|subdialog|view)*)>
+<!ATTLIST dialog                className       CDATA          #IMPLIED>
 <!ATTLIST dialog                name            CDATA          #REQUIRED>
 <!ATTLIST dialog                start           CDATA          #REQUIRED>
 
@@ -61,6 +66,10 @@
      invocation of a public method that takes no arguments, and returns
      the logical outcome as a String.  The following attributes are defined:
 
+     className                  Fully qualified class name of the configuration
+                                object for this element.
+                                [org.apache.shale.dialog.impl.ActionStateImpl]
+
      name                       Name of this state (must be unique among
                                 all states defined for this dialog).
 
@@ -70,6 +79,7 @@
                                 the logical outcome of this state.
 -->
 <!ELEMENT action (transition*)>
+<!ATTLIST action                className       CDATA          #IMPLIED>
 <!ATTLIST action                name            CDATA          #REQUIRED>
 <!ATTLIST action                method          CDATA          #REQUIRED>
 
@@ -80,6 +90,10 @@
      returns will be used to trigger a transition in this dialog.
      The following attributes are defined:
 
+     className                  Fully qualified class name of the configuration
+                                object for this element.
+                                [org.apache.shale.dialog.impl.SubdialogStateImpl]
+
      name                       Name of this state (must be unique among
                                 all states defined for this dialog).
 
@@ -88,6 +102,7 @@
 
 -->
 <!ELEMENT subdialog (transition*)>
+<!ATTLIST subdialog             className       CDATA          #IMPLIED>
 <!ATTLIST subdialog             name            CDATA          #REQUIRED>
 <!ATTLIST subdialog             dialogName      CDATA          #REQUIRED>
 
@@ -98,6 +113,10 @@
      invoked is returned in order to determine the next transition.  The
      following attributes are defined:
 
+     className                  Fully qualified class name of the configuration
+                                object for this element.
+                                [org.apache.shale.dialog.impl.ViewStateImpl]
+
      name                       Name of this state (must be unique among
                                 all states defined for this dialog).
 
@@ -109,6 +128,7 @@
 
 -->
 <!ELEMENT view (transition*)>
+<!ATTLIST view                  className       CDATA          #IMPLIED>
 <!ATTLIST view                  name            CDATA          #REQUIRED>
 <!ATTLIST view                  viewId          CDATA          #REQUIRED>
 
@@ -118,6 +138,10 @@
      that a parent dialog which invoked the current dialog will be responsible
      for producing the view for the current response.
 
+     className                  Fully qualified class name of the configuration
+                                object for this element.
+                                [org.apache.shale.dialog.impl.EndStateImpl]
+
      name                       Name of this state (must be unique among
                                 all states defined for this dialog).
 
@@ -129,6 +153,7 @@
                                 own state transition.
 -->
 <!ELEMENT end (transition*)>
+<!ATTLIST end                   className       CDATA          #IMPLIED>
 <!ATTLIST end                   name            CDATA          #REQUIRED>
 <!ATTLIST end                   viewId          CDATA          #IMPLIED>
 
@@ -137,6 +162,10 @@
      state (in which this "transition" element is nested) to a subsequent
      state.  The following attributes are defined:
 
+     className                  Fully qualified class name of the configuration
+                                object for this element.
+                                [org.apache.shale.dialog.impl.TransitionImpl]
+
      outcome                    Logical outcome String returned by the invoked
                                 method (for an "action" element), or by the
                                 invoked action's action method (for a "view"
@@ -148,6 +177,7 @@
 -->
 
 <!ELEMENT transition EMPTY>
+<!ATTLIST transition            className       CDATA          #IMPLIED>
 <!ATTLIST transition            outcome         CDATA          #REQUIRED>
 <!ATTLIST transition            target          CDATA          #REQUIRED>
 

Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/dialog/config/ConfigurationInit.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/dialog/config/ConfigurationInit.java?rev=224583&r1=224582&r2=224583&view=diff
==============================================================================
--- struts/shale/trunk/core-library/src/java/org/apache/shale/dialog/config/ConfigurationInit.java (original)
+++ struts/shale/trunk/core-library/src/java/org/apache/shale/dialog/config/ConfigurationInit.java Sat Jul 23 16:15:13 2005
@@ -146,60 +146,69 @@
         // Configure processing rules
 
         // dialogs/dialog
-        digester.addObjectCreate("dialogs/dialog", DialogImpl.class);
+        digester.addObjectCreate("dialogs/dialog", "className", DialogImpl.class);
         digester.addSetProperties("dialogs/dialog");
         digester.addRule("dialogs/dialog", new AddDialogRule());
 
         // dialogs/dialog/action
-        digester.addObjectCreate("dialogs/dialog/action", ActionStateImpl.class);
+        digester.addObjectCreate("dialogs/dialog/action", "className",
+                                 ActionStateImpl.class);
         digester.addSetProperties("dialogs/dialog/action");
         digester.addSetNext("dialogs/dialog/action",
                             "addState", "org.apache.shale.dialog.State");
 
         // dialogs/dialog/action/transition
-        digester.addObjectCreate("dialogs/dialog/action/transition", TransitionImpl.class);
+        digester.addObjectCreate("dialogs/dialog/action/transition", "className",
+                                 TransitionImpl.class);
         digester.addSetProperties("dialogs/dialog/action/transition");
         digester.addSetNext("dialogs/dialog/action/transition",
                             "addTransition", "org.apache.shale.dialog.Transition");
 
         // dialogs/dialog/end
-        digester.addObjectCreate("dialogs/dialog/end", EndStateImpl.class);
+        digester.addObjectCreate("dialogs/dialog/end", "className",
+                                 EndStateImpl.class);
         digester.addSetProperties("dialogs/dialog/end");
         digester.addSetNext("dialogs/dialog/end",
                             "addState", "org.apache.shale.dialog.State");
 
         // dialogs/dialog/end/transition
-        digester.addObjectCreate("dialogs/dialog/end/transition", TransitionImpl.class);
+        digester.addObjectCreate("dialogs/dialog/end/transition", "className",
+                                 TransitionImpl.class);
         digester.addSetProperties("dialogs/dialog/end/transition");
         digester.addSetNext("dialogs/dialog/end/transition",
                             "addTransition", "org.apache.shale.dialog.Transition");
 
         // dialogs/dialog/subdialog
-        digester.addObjectCreate("dialogs/dialog/subdialog", SubdialogStateImpl.class);
+        digester.addObjectCreate("dialogs/dialog/subdialog", "className",
+                                 SubdialogStateImpl.class);
         digester.addSetProperties("dialogs/dialog/subdialog");
         digester.addSetNext("dialogs/dialog/subdialog",
                             "addState", "org.apache.shale.dialog.State");
 
         // dialogs/dialog/subdialog/transition
-        digester.addObjectCreate("dialogs/dialog/subdialog/transition", TransitionImpl.class);
+        digester.addObjectCreate("dialogs/dialog/subdialog/transition", "className",
+                                 TransitionImpl.class);
         digester.addSetProperties("dialogs/dialog/subdialog/transition");
         digester.addSetNext("dialogs/dialog/subdialog/transition",
                             "addTransition", "org.apache.shale.dialog.Transition");
 
         // dialogs/dialog/transition
-        digester.addObjectCreate("dialogs/dialog/transition", TransitionImpl.class);
+        digester.addObjectCreate("dialogs/dialog/transition", "className",
+                                 TransitionImpl.class);
         digester.addSetProperties("dialogs/dialog/transition");
         digester.addSetNext("dialogs/dialog/transition",
                             "addTransition", "org.apache.shale.dialog.Transition");
 
         // dialogs/dialog/view
-        digester.addObjectCreate("dialogs/dialog/view", ViewStateImpl.class);
+        digester.addObjectCreate("dialogs/dialog/view", "className",
+                                 ViewStateImpl.class);
         digester.addSetProperties("dialogs/dialog/view");
         digester.addSetNext("dialogs/dialog/view",
                             "addState", "org.apache.shale.dialog.State");
 
         // dialogs/dialog/view/transition
-        digester.addObjectCreate("dialogs/dialog/view/transition", TransitionImpl.class);
+        digester.addObjectCreate("dialogs/dialog/view/transition", "className",
+                                 TransitionImpl.class);
         digester.addSetProperties("dialogs/dialog/view/transition");
         digester.addSetNext("dialogs/dialog/view/transition",
                             "addTransition", "org.apache.shale.dialog.Transition");



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org