Hi Wouter, just to clarify one thing:
> In your approach I was always wondering about these methods > in the presentation classes, I understand why they are there, > but I always thought that in Struts Form Beans ought to be > simple beans, without any business logic (even delegating) > ... anyway, I am confident we'll clear this up and come to an > agreement The presentation class in the UML model should generate a JSP plus a struts form bean. The methods become buttons in the JSP and are not generated into the form bean. They serve as "events" to the controller class. Cheers... Matthias > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf > Of [EMAIL PROTECTED] > Sent: Monday, October 13, 2003 10:34 PM > To: "Matthias Bohlen" > Cc: [EMAIL PROTECTED] > Subject: [Andromda-devel] RE: bpm4struts > > > hello Matthias, > > > >I'd like to follow your suggestion of September 21 where you say: > > > >> Btw, currently I have improved the cartridge already > considerably, I > >> have taken your input into account and this has lead to some other > >> significant changes. I will not go into that yet, as I > will write a > >> nice document to describe them all. ... snip ... > >> I propose this: I will continue to work as it is now, I will finish > >> it and put a first beta in CVS, give everybody the time to > try it out > >> and give some feedback. Given all that input we can then compile a > >> new strategy for this cartridge if needed. Is this okay ? > > > >I found this very reasonable. Discussing an intermediate result is > >always easier and more effective than discussing a possible future > >result. :-) So, I'd like to wait for your first beta to > appear in CVS > >HEAD, along with the document and sample model that you mentioned > >below. Then, I'll have another (closer) look at it and give you > >feedback. > > > > Very happy to see it's getting along; as I mentioned before, > this week will be difficult, but next week you can expect > something in CVS, with documentation and a sample. The sample > will not be part of the CarRental (too much), but a smaller > temporary model showing the features. > > >Makes me curious what's coming up... ;-) > > > > FYI and to already give you an idea about the way I handle > the JSP <--> Controller events, here is what I had in mind > when writing the cartridge: > > 1) I concluded that since we are modeling the process objects > an action state maps onto a specific state of the front-end, > in our case the rendering of a Struts/JSP page. > > 2) process states that do not need an actual View are modeled > using ObjectFlowState elements. > > 3) Per use-case (activity graph) there is 1 and only 1 > controller class, the Struts DispatchAction suits this job very well > > 4) an action triggered from a JSP page would call the > controller class, each page has a specific action to call > (remember, a DispatchAction has several 'execute()' methods), > this is achieved by the cartridge taking a look at any > triggered transitions going out of the action state (this JSP page) > > 5) no business logic anywhere in the front-end, only calls to > the back-end (such as EJB facades (called Services in > Andromda UML modeling) or something) ... etc > > my experience was that this is very easy to model, I always > found the modeling of classes with methods very cumbersome > (but that's hardly a reason not to do it :-); > > anyway, the result is a controller class per use-case and a > method in this controller class per action state in that > use-case, that method will known what kind of trigger > originated the event > > short example: > > If you have a JSP asking the user if he is sure to log out or > not, providing two buttons 'Yes' and 'No', you would have these files: > > ask-if-user-is-sure-to-logout.jsp > > <html:form action="/LogoutController?target=askIfUserIsSureToLogout"> > <html:submit property="trigger" value="YES"/> > <html:submit property="trigger" value="NO"/> > </html:form> > > (or hyperlinks, depending on what is desired) LogoutController.java > > public ActionForward askIfUserIsSureToLogout(ActionMapping, ...) { > final String trigger = form.getTrigger(); > > if ("YES".equals(trigger)) > ...continue... > else if ("NO".equals(trigger)) > ...continue... > else > return null; // application error, should never occur! > } > > > I always liked this and felt comfortable with this approach > since everything seemed to fall in place, but then again.. we > never know what issue might popup ;-) > > In your approach I was always wondering about these methods > in the presentation classes, I understand why they are there, > but I always thought that in Struts Form Beans ought to be > simple beans, without any business logic (even delegating) > ... anyway, I am confident we'll clear this up and come to an > agreement > > >Cheers... > >Matthias > > > > b-bye > Wouter. > > __________________________________________________________________ > McAfee VirusScan Online from the Netscape Network. > Comprehensive protection for your entire computer. Get your > free trial today! > http://channels.netscape.com/ns/computing/mcafee/index.jsp?pro mo=393397 Get AOL Instant Messenger 5.1 free of charge. Download Now! http://aim.aol.com/aimnew/Aim/register.adp?promo=380455 ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php _______________________________________________ Andromda-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/andromda-devel ------------------------------------------------------- This SF.net email is sponsored by: SF.net Giveback Program. SourceForge.net hosts over 70,000 Open Source Projects. See the people who have HELPED US provide better services: Click here: http://sourceforge.net/supporters.php _______________________________________________ Andromda-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/andromda-devel
