Hi Bob,

If you download the latest nightly build you will find an initial
implementation of the Workflow proposal.

Jon.

-----Original Message-----
From: Bob Williams [mailto:[EMAIL PROTECTED]] 
Sent: 04 February 2002 15:33
To: Struts Users Mailing List
Subject: Re: Design advice.

I am new to this list so I have some catching up to do, so forgive me if
this is an "old" question.  Mr. Husted refers to the "workflow
proposal/objects" in his response.  What is the status of the Workflow
proposal and/or how do I track what is happening there?  I have read the
proposal, but haven't found anything that refers to the implementation of
it.

Thanks for your patience,

bob

----- Original Message -----
From: "Ted Husted" <[EMAIL PROTECTED]>
To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
Sent: Monday, February 04, 2002 9:11 AM
Subject: Re: Design advice.


>
> An approach I've used successfully, which is looks like where you are
> going,  is to
>
> (1) create a set of standard Actions that can act up a known type of
> object, or an object that implements a particular interface, and
>
> (2) pass the type of the bean to create to the standard Action as the
> parameter property.
>
>  <action
>   path="/item/Edit"
>   type="org.apache.gavel.http.SecureHelper" <-- standard section
>     name="itemForm"
>     scope="request"
>      validate="false"
>       parameter="org.apache.gavel.item.Select"> <-- business bean
>       <forward
>         name="continue"
>           path="/pages/item/Form.jsp"/>
>        </action>
>
>
> The standard Action can then instantiate the bean and use the interface
> methods to act upon it.
>
> This is akin to the approach Struts uses for ActionForms, et cetera.
>
> The "ModelBeans" in the Scaffold/Artimus packages in the Contrib folder
> demonstrate using this in practice.
>
> I now find myself writing signficant applications that use virtually no
> custom Actions at all, and instead end up putting all the business logic
> in business beans (where they belong).
>
> This is exactly the same idea that Craig proposed in his Workflow
> proposal (thanks Craig!).
>
> When I get a break, I hope to revisit the workflow proposal and see if I
> can get my apps to do the same thing I'm doing with these standard
> actions (see Scaffold) with workflow objects.
>
>
> -- Ted Husted, Husted dot Com, Fairport NY USA.
> -- Java Web Development with Struts.
> -- Tel +1 585 737-3463.
> -- Web http://www.husted.com/struts/
>
> rob wrote:
> >
> > This is a pretty lengthy post so if you're not that interested be warned
not
> > to continue.
> >
> > I'm trying to develop a struts application that has the ability to have
new
> > beans plugged
> > into it after it's been deployed.
> >
> > The idea is someone will come along later and write a new set of
component
> > class files
> > (that also use struts) and can simply modify the struts-config.xml and
plug
> > them in.
> >
> > I've developed two sets of actions, the first is a set of generic
actions
> > that will rely on
> > methods that will exist by convention in any component that is developed
for
> > the
> > application.  The second set of actions are specific to whatever
component
> > is being
> > plugged in and are specified per action.
> >
> > Below I have illustrated an example struts-config.xml that has two
familiar
> > components
> > plugged into it.  A 'Folder' and 'Document' which is a fairly familiar
idea
> > to most.  Each
> > component may implement 4 core operations view, creation, modification
and
> > removal.
> >
> > I was just wondering if anyone could offer some comments that might be
> > helpful in
> > developing the model I am trying to build.  Or by all means any other
design
> > advice is
> > good as well.
> >
> > Thanks
> >
> > rob
> > <form-beans>
> >   <form-bean name="viewFolder"           type="CreateFolderForm"/>
> >   <form-bean name="viewDocument"     type="CreateDocumentForm"/>
> >   <form-bean name="createFolder"         type="CreateFolderForm"/>
> >   <form-bean name="createDocument"   type="CreateDocumentForm"/>
> >   <form-bean name="modifyFolder"       type="CreateFolderForm"/>
> >   <form-bean name="modifyDocument" type="CreateDocumentForm"/>
> >   <form-bean name="removeFolder"       type="CreateFolderForm"/>
> >   <form-bean name="removeDocument" type="CreateDocumentForm"/>
> > </form-beans>
> >
> > <global-forwards>
> >   <forward name="view"     type="do/view"/>
> >   <forward name="create"   type="do/create"/>
> >   <forward name="modify" type="do/modify"/>
> >   <forward name="remove" type="do/remove"/>
> > </global-forwards>
> >
> > <!-- begin element independant actions -->
> > <action path="/view"
> >   type="ViewAction"
> >   name="viewForm"
> >   scope="request">
> >
> >   <forward name="view/Folder"
> >     path="do/viewFolder"/>
> >   <forward name="view/Document"
> >     path="do/viewDocument"/>
> >
> > </action>
> >
> > <action path="/create"
> >   type="CreateAction"
> >   name="createForm"
> >   scope="request">
> >
> >   <forward name="create/Folder"
> >     path="/WEB-INF/pages/createFolder.jsp"/>
> >   <forward name="create/Document"
> >     path="/WEB-INF/pages/createDocument.jsp"/>
> >
> > </action>
> >
> > <action path="/modify"
> >   type="ModifyAction"
> >   name="modifyForm"
> >   scope="request">
> >
> >   <forward name="modify/Folder"
> >     path="/WEB-INF/pages/modifyFolder.jsp"/>
> >   <forward name="modify/Document"
> >     path="/WEB-INF/pages/modifyDocument.jsp"/>
> >
> > </action>
> >
> > <action path="/remove"
> >   type="RemoveAction"
> >   name="removeForm"
> >   scope="request">
> >
> >   <forward name="remove/Folder"
> >     path="/WEB-INF/pages/removeFolder.jsp"/>
> >   <forward name="remove/Document"
> >     path="/WEB-INF/pages/removeDocument.jsp"/>
> >
> > </action>
> >
> > <!-- begin element dependant actions -->
> >
> > <action path="/viewFolder"
> >   type="ViewFolderAction"
> >   name="viewFolderForm"
> >   scope="request">
> >
> >   <forward name="view.Folder"
> >     path="/WEB-INF/pages/viewFolder.jsp"/>
> >
> > </action>
> >
> > <action path="/viewDocument"
> >   type="ViewDocumentAction"
> >   name="viewDocumentForm"
> >   scope="request">
> >
> >   <forward name="view.Document"
> >     path="/WEB-INF/pages/viewDocument.jsp"/>
> >
> > </action>
> >
> > <action path="/createFolder"
> >   type="CreateFolderAction"
> >   name="createFolderForm"
> >   input="/WEB-INF/pages/createFolder.jsp"
> >   scope="request">
> >
> > </action>
> >
> > <action path="/createDocument"
> >   type="CreateDocumentAction"
> >   name="createDocumentForm"
> >   input="/WEB-INF/pages/createDocument.jsp"
> >   scope="request">
> > </action>
> >
> > <action path="/modifyFolder"
> >   type="ModifyFolderAction"
> >   name="modifyFolderForm"
> >   input="/WEB-INF/pages/modifyFolder.jsp"
> >   scope="request">
> > </action>
> >
> > <action path="/modifyDocument"
> >   type="ModifyDocumentAction"
> >   name="modifyDocumentForm"
> >   input="/WEB-INF/pages/modifyDocument.jsp"
> >   scope="request">
> > </action>
> >
> > <action path="/removeFolder"
> >   type="RemoveFolderAction"
> >   name="removeFolderForm"
> >   input="/WEB-INF/pages/removeFolder.jsp"
> >   scope="request">
> > </action>
> >
> > <action path="/removeDocument"
> >   type="RemoveDocumentAction"
> >   name="removeDocumentForm"
> >   input="/WEB-INF/pages/removeDocument.jsp"
> >   scope="request">
> > </action>
> >
> > --
> > To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>


--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to