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/10/28 08:20:15 UTC
svn commit: r329122 - in /struts/shale/trunk: build.xml
core-library/src/conf/dialog.dtd
core-library/src/java/org/apache/shale/dialog/config/ConfigurationParser.java
Author: craigmcc
Date: Thu Oct 27 23:20:11 2005
New Revision: 329122
URL: http://svn.apache.org/viewcvs?rev=329122&view=rev
Log:
Add the ability to configure arbitrary properties of custom implementation
classes for the dialog configuration, by specifying nested elements of type
<property name="foo" value="bar"/>
inside the configuration elements for dialogs, states, and transitions. This
implements the Option #2 solution discussed in the referenced Bugzilla issue.
Submitted by: Sean Schofield <sean.schofield AT gmail.com>
PR: Bugzilla #36439
Modified:
struts/shale/trunk/build.xml
struts/shale/trunk/core-library/src/conf/dialog.dtd
struts/shale/trunk/core-library/src/java/org/apache/shale/dialog/config/ConfigurationParser.java
Modified: struts/shale/trunk/build.xml
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/build.xml?rev=329122&r1=329121&r2=329122&view=diff
==============================================================================
--- struts/shale/trunk/build.xml (original)
+++ struts/shale/trunk/build.xml Thu Oct 27 23:20:11 2005
@@ -359,6 +359,17 @@
</target>
+ <target name="test"
+ description="Execute 'test' on all modules">
+
+ <antcall target="execute">
+ <param name="target"
+ value="test"/>
+ </antcall>
+
+ </target>
+
+
<!-- =================== Initialize Local Repository ===================== -->
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=329122&r1=329121&r2=329122&view=diff
==============================================================================
--- struts/shale/trunk/core-library/src/conf/dialog.dtd (original)
+++ struts/shale/trunk/core-library/src/conf/dialog.dtd Thu Oct 27 23:20:11 2005
@@ -56,7 +56,7 @@
start Name of the starting state for this dialog.
-->
-<!ELEMENT dialog ((transition|action|end|subdialog|view)*)>
+<!ELEMENT dialog ((transition|action|end|subdialog|view|property)*)>
<!ATTLIST dialog className CDATA #IMPLIED>
<!ATTLIST dialog name CDATA #REQUIRED>
<!ATTLIST dialog start CDATA #REQUIRED>
@@ -78,7 +78,7 @@
arguments, and returns a String that represents
the logical outcome of this state.
-->
-<!ELEMENT action (transition*)>
+<!ELEMENT action (property|transition*)>
<!ATTLIST action className CDATA #IMPLIED>
<!ATTLIST action name CDATA #REQUIRED>
<!ATTLIST action method CDATA #REQUIRED>
@@ -101,7 +101,7 @@
executed.
-->
-<!ELEMENT subdialog (transition*)>
+<!ELEMENT subdialog (property|transition*)>
<!ATTLIST subdialog className CDATA #IMPLIED>
<!ATTLIST subdialog name CDATA #REQUIRED>
<!ATTLIST subdialog dialogName CDATA #REQUIRED>
@@ -127,7 +127,7 @@
to determine the next state transition.
-->
-<!ELEMENT view (transition*)>
+<!ELEMENT view (property|transition*)>
<!ATTLIST view className CDATA #IMPLIED>
<!ATTLIST view name CDATA #REQUIRED>
<!ATTLIST view viewId CDATA #REQUIRED>
@@ -152,7 +152,7 @@
returned to the parent dialog to drive its
own state transition.
-->
-<!ELEMENT end (transition*)>
+<!ELEMENT end (property|transition*)>
<!ATTLIST end className CDATA #IMPLIED>
<!ATTLIST end name CDATA #REQUIRED>
<!ATTLIST end viewId CDATA #IMPLIED>
@@ -176,8 +176,25 @@
attribute of a state defined in this dialog.
-->
-<!ELEMENT transition EMPTY>
+<!ELEMENT transition (property)*>
<!ATTLIST transition className CDATA #IMPLIED>
<!ATTLIST transition outcome CDATA #REQUIRED>
<!ATTLIST transition target CDATA #REQUIRED>
+
+<!-- The "property" element allows the configuration of an arbitrary property
+ of the base class (typically customized via the "className" attribute)
+ instanace for the surrounding configuration element. The following
+ attributes are defined:
+
+ name Property name to be configured.
+
+ value String representation of the value to which
+ this property will be set. Appropriate type
+ conversion will be applied, based on the type
+ of the underlying property.
+-->
+
+<!ELEMENT property EMPTY>
+<!ATTLIST property name CDATA #REQUIRED>
+<!ATTLIST property value CDATA #REQUIRED>
Modified: struts/shale/trunk/core-library/src/java/org/apache/shale/dialog/config/ConfigurationParser.java
URL: http://svn.apache.org/viewcvs/struts/shale/trunk/core-library/src/java/org/apache/shale/dialog/config/ConfigurationParser.java?rev=329122&r1=329121&r2=329122&view=diff
==============================================================================
--- struts/shale/trunk/core-library/src/java/org/apache/shale/dialog/config/ConfigurationParser.java (original)
+++ struts/shale/trunk/core-library/src/java/org/apache/shale/dialog/config/ConfigurationParser.java Thu Oct 27 23:20:11 2005
@@ -188,12 +188,14 @@
// dialogs/dialog
digester.addObjectCreate("dialogs/dialog", "className", DialogImpl.class);
digester.addSetProperties("dialogs/dialog");
+ digester.addSetProperty("dialogs/dialog/property", "name", "value");
digester.addRule("dialogs/dialog", new AddDialogRule());
// dialogs/dialog/action
digester.addObjectCreate("dialogs/dialog/action", "className",
ActionStateImpl.class);
digester.addSetProperties("dialogs/dialog/action");
+ digester.addSetProperty("dialogs/dialog/action/property", "name", "value");
digester.addSetNext("dialogs/dialog/action",
"addState", "org.apache.shale.dialog.State");
@@ -201,6 +203,7 @@
digester.addObjectCreate("dialogs/dialog/action/transition", "className",
TransitionImpl.class);
digester.addSetProperties("dialogs/dialog/action/transition");
+ digester.addSetProperty("dialogs/dialog/action/transition/property", "name", "value");
digester.addSetNext("dialogs/dialog/action/transition",
"addTransition", "org.apache.shale.dialog.Transition");
@@ -208,6 +211,7 @@
digester.addObjectCreate("dialogs/dialog/end", "className",
EndStateImpl.class);
digester.addSetProperties("dialogs/dialog/end");
+ digester.addSetProperty("dialogs/dialog/end/property", "name", "value");
digester.addSetNext("dialogs/dialog/end",
"addState", "org.apache.shale.dialog.State");
@@ -215,6 +219,7 @@
digester.addObjectCreate("dialogs/dialog/end/transition", "className",
TransitionImpl.class);
digester.addSetProperties("dialogs/dialog/end/transition");
+ digester.addSetProperty("dialogs/dialog/end/transition/property", "name", "value");
digester.addSetNext("dialogs/dialog/end/transition",
"addTransition", "org.apache.shale.dialog.Transition");
@@ -222,6 +227,7 @@
digester.addObjectCreate("dialogs/dialog/subdialog", "className",
SubdialogStateImpl.class);
digester.addSetProperties("dialogs/dialog/subdialog");
+ digester.addSetProperty("dialogs/dialog/subdialog/property", "name", "value");
digester.addSetNext("dialogs/dialog/subdialog",
"addState", "org.apache.shale.dialog.State");
@@ -229,6 +235,7 @@
digester.addObjectCreate("dialogs/dialog/subdialog/transition", "className",
TransitionImpl.class);
digester.addSetProperties("dialogs/dialog/subdialog/transition");
+ digester.addSetProperty("dialogs/dialog/subdialog/transition/property", "name", "value");
digester.addSetNext("dialogs/dialog/subdialog/transition",
"addTransition", "org.apache.shale.dialog.Transition");
@@ -236,6 +243,7 @@
digester.addObjectCreate("dialogs/dialog/transition", "className",
TransitionImpl.class);
digester.addSetProperties("dialogs/dialog/transition");
+ digester.addSetProperty("dialogs/dialog/transition/property", "name", "value");
digester.addSetNext("dialogs/dialog/transition",
"addTransition", "org.apache.shale.dialog.Transition");
@@ -243,6 +251,7 @@
digester.addObjectCreate("dialogs/dialog/view", "className",
ViewStateImpl.class);
digester.addSetProperties("dialogs/dialog/view");
+ digester.addSetProperty("dialogs/dialog/view/property", "name", "value");
digester.addSetNext("dialogs/dialog/view",
"addState", "org.apache.shale.dialog.State");
@@ -250,6 +259,7 @@
digester.addObjectCreate("dialogs/dialog/view/transition", "className",
TransitionImpl.class);
digester.addSetProperties("dialogs/dialog/view/transition");
+ digester.addSetProperty("dialogs/dialog/view/transition/property", "name", "value");
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