Re: [s2] Re: What's the future of Action, events / dispatching and IoC/CoR
Hello Ted: What you describe is interesting. I do not have time in the next couple of weeks. But please post on this list when you have something concrete about XWork "interceptors" in the nexus. (i change the subject from CoC/CoR to IoC/CoR. Correct me if i am wrong). BaTien On Mon, 2006-07-24 at 10:22 -0400, Ted Husted wrote: > On 7/23/06, Adam Hardy <[EMAIL PROTECTED]> wrote: > > - dependency injection by Spring for my services / delegates (/ daos) > > S2 uses Spring as its default object factory, and Action properties > can be injected from Spring by matching the property name with the > object factory ID. > > > > - replacing all the struts parameters to my methods with a context object > > S2 uses a content object internally, so that seems in line. > > > > - an exception handling switch > > Like S1, S2 includes a declarative exception handler. > > > > - a mechanism for handling 'on-the-fly' URL & query strings for > > actionForwards > > Like S1, S2 lets you specify a "default" action to use when nothing > else matches. Wildcards are also supported. > > > > I expect this won't take me too long to achieve (a day or two) but I would > > still like to >'future-proof' what I write - or should I say, > > 'future-orientate', since experience tells me that > >most 'future-proofing' underestimates the wild changes that the > future may bring. > > > > Can anyone involved in struts 2 tell me about potential brick walls that > > this sort of Action > >base class and its children would be heading into? I checked out the > dev list for hints and > >saw oblique references to Chain of Commands but couldn't guage much > from the threads > > there. > > S2 doesn't use Commons Chain internally. S2 relies on the notion of > "interceptors" to do what we did in S1 with the Chain of Commands. > Essentially, interceptors are POJO filters that let us run custom code > before and after a key event, like invoking an Action class. > > The package that delivers the interceptor mechanism is XWork. XWork > also handles matcing things like URIs to action mappings and it > provides the base validation framework. Surprisingly little is > actually in Struts 2 itself. Most of the functionality derives from > XWork, which is web-neutral. XWork is already being used to power > other frameworks. > > If I had understood interceptors and XWork better when we were > creating Commons Chain, I would have pushed harder for us to use XWork > in 1.3 instead of Commons Chain. Jason tried to explain it to me once, > but it didn't click. I in turn mentioned using XWork with Struts to > Don Brown, which became the nexus of TI, which evolved into the > merger. > > > > > Regards > > Adam > > -- HTH, Ted. > * http://www.husted.com/struts/ > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [OT] Link to Web Part?
On Sat, 2006-07-22 at 14:09 -0400, Frank W. Zammetti wrote: > Hi BaTien, > > You may want to have a look at this Wiki page as well: > > http://wiki.apache.org/struts/AjaxStruts > > I presume your using Struts as your overall framework since you posted > to this list :) This page has some links and info to get you going with > AJAX (Michael, I just noticed two images that used to be there are > broken links now... any idea what happened?) > > I of course have a bias in saying AjaxParts Taglib is a good choice :) > But there are plenty of excellent alternatives (DWR, Dojo and Prototype > to name probably the top ones), so you'll have some fun playing with > them all :) > > Frank Thanks Frank. Yes i know. I also look at Dojo and Facelets on the client-side tree. Regards BaTien > > Duong BaTien wrote: > > Thanks Ted. Yes, i start to wet my feet with ajax. There are so many > > things to catch up. > > > > BaTien > > > > > > On Sat, 2006-07-22 at 12:38 -0400, Ted Husted wrote: > >> On 7/21/06, Duong BaTien <[EMAIL PROTECTED]> wrote: > >>> I remember somewhere on this list an announcement of Web Parts in the > >>> sourceforg.net (collection of various web components such as Filter, > >>> logging, etc). Do someone has a link? > >> Rick Reumann also posted an article about using Web Parts > >> > >> * http://www.learntechnology.net/struts-ajax-crud.do > >> > >> For a complete list of links to everything Struts, visit Struts Central. > >> > >> * http://www.StrutsCentral.net/ > >> > >> HTH, Ted. > >> > >> - > >> To unsubscribe, e-mail: [EMAIL PROTECTED] > >> For additional commands, e-mail: [EMAIL PROTECTED] > >> > > > > > > - > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [OT] Link to Web Part?
Thanks Ted. Yes, i start to wet my feet with ajax. There are so many things to catch up. BaTien On Sat, 2006-07-22 at 12:38 -0400, Ted Husted wrote: > On 7/21/06, Duong BaTien <[EMAIL PROTECTED]> wrote: > > I remember somewhere on this list an announcement of Web Parts in the > > sourceforg.net (collection of various web components such as Filter, > > logging, etc). Do someone has a link? > > Rick Reumann also posted an article about using Web Parts > > * http://www.learntechnology.net/struts-ajax-crud.do > > For a complete list of links to everything Struts, visit Struts Central. > > * http://www.StrutsCentral.net/ > > HTH, Ted. > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [OT] Link to Web Part?
Thanks Wendy and Michael. Have a good weekend. I got it. BaTien On Fri, 2006-07-21 at 16:47 -0700, Wendy Smoak wrote: > On 7/21/06, Duong BaTien <[EMAIL PROTECTED]> wrote: > > I remember somewhere on this list an announcement of Web Parts in the > > sourceforg.net (collection of various web components such as Filter, > > logging, etc). Do someone has a link? > > http://javawebparts.sourceforge.net/ > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[OT] Link to Web Part?
I remember somewhere on this list an announcement of Web Parts in the sourceforg.net (collection of various web components such as Filter, logging, etc). Do someone has a link? Thanks - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [shale] Is there a Dialog Scope?
On Mon, 2006-06-05 at 11:14 -0700, Craig McClanahan wrote: > On 6/5/06, Duong BaTien <[EMAIL PROTECTED]> wrote: > > > > Hello Craig: > > > > Could you let us know if you are a part of the proposed Web Beans that > > combine Shale, Oracle ADF, and Seam? It may even more useful if you can > > roughly lay out the direction of your vision in this area. > > > I am indeed, in the sense that I worked with Gavin on preparing the JSR > submission in the first place, and I am going to be Sun's representative on > the Expert Group. > > My personal vision for this sort of thing is centrally based on the idea > that a successful foundation framework should serve as an integration > platform for lots of different specialized frameworks, even if those > specialized frameworks might have individual implementations of the same > functional area. Look at the success of Spring ... a criticial success > factor is how the dependency injection framework, used as a foundation, > embraces alternative approaches to the same problem areas, because one size > does not fit all needs. I would get real nervous if we tried to build a > single monolithic architecture that allowed only one "blessed" approach to > each need. > > For example, you can use Shale, ADF Faces, and Seam today ... by themselves > or in any of the possible combinations ... because they all are based on > JSF. Yes, there are functionality overlaps ... and that's a good thing. > Pick the right combination of technologies that meet the needs of your > particular project. So, why standardize Web Beans, then? It's sort of like > the early days of web frameworks, when everyone was solving their needs by > building their own webapp frameworks. There is enough experience in the > world today to raise the base level of functionality provided by the > platform. The binding and state management capabilities contemplated in the > JSRs will provide solutions to problems that people like me who provide > frameworks :-) shouldn't necessarily *have* to build ourselves ... let alone > applicaton developers. > > Of course, even if the Web Beans JSR[1] comes to fruition and is adopted, > nothing forces you to use it, or all of it -- any more than using a JavaEE > platform application server forces you to use EJBs if you don't want to. > But adopting technologies that get standardized does make it more likely > that you'll get competitive product offerings from multiple providers (along > with tools support) more quickly than might otherwise occur. > > Thanks > > > > BaTien > > DBGROUPS > > > Craig Thanks again for the response. > > [1] http://jcp.org/en/jsr/detail?id=299 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [shale] Is there a Dialog Scope?
Hello Craig: Could you let us know if you are a part of the proposed Web Beans that combine Shale, Oracle ADF, and Seam? It may even more useful if you can roughly lay out the direction of your vision in this area. Thanks BaTien DBGROUPS On Mon, 2006-06-05 at 10:09 -0700, Craig McClanahan wrote: > On 6/5/06, Adam Brod <[EMAIL PROTECTED]> wrote: > > > > Hi- > > > > JBoss Seam provides addition Scopes beyond Request, Session, Application > > and None. In particular, JBoss has a Conversation Scope that stores your > > data for the duration of a specific conversation. This frees the > > developer from stuffing data in the session and then manually removing it > > at the end of the dialog. > > > > Does Shale Dialog offer that functionality? I want to configure my bean > > with Scope=Dialog. It would live for the duration of the dialog, and then > > to be automatically destroyed by the Dialog Manager. > > > Shale's dialog feature[1] does indeed support this kind of state > saving/destroying, although it is not directly treated as a separate scope. > Instead, Dialog provides a way for your application to store a context > object (in session scope) that stays in existence for the remainder of a > particuar conversation with the user, then is thrown away for you. The > simplest sort of object to use would be a Map implementation with arbitrary > keys. Alternatively, you could construct a context class with properties > specific to the particular use case of each dialog. JSF components can be > bound to this state object with a standard value binding expression > (something like "#{state.data.foo}" to get to a property or map entry named > "foo"), so your learning about all the techniques you already use to bind > components to request scoped objects carries over. > > Note that there are currently some outstanding bugs in this area of Shale, > particularly with respect to having more than one dialog active at the same > time (either on the same page, or across windows) -- but the basic > functionality works well for a single active dialog. These issues are high > on my priority list to get them addressed, because I feel this is mission > critical before a 1.0 General Availability release of Shale. > > Please let me know what I can do. > > > > Thanks, > > > > Adam Brod > > Product Development Team > > > Craig > > [1] http://struts.apache.org/struts-shale/features-dialog-manager.html - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [Shale] How to code simple container-managed login form
Greetings: As promised, i report back my solutions and hope this may help others. It turns out that there is also some issues directly related to Shale Dialog due to its current interactions with Jsf. On Sat, 2005-06-11 at 08:47 -0600, Duong BaTien wrote: > On Fri, 2005-06-10 at 23:08 -0400, Frank W. Zammetti wrote: > > Duong BaTien wrote: > > > First, thanks for an extra help. > > > > No problem... I hope I can help further :) > > > > > The whole idea is to use SSL for confidential pages such as logon, > > > change username / password, edit profile with confidential data. Other > > > time some resources may just be protected by roles. The ideal situation > > > is to switch between SSL and Non-SSL using proper configuration on > > > stand-alone tomcat (not with tomcat and apache front end). > > > > So it is within the same webapp... I think Craig raised a valid point in > > that case... once the connection isn't secured, a would-be hacker can > > play some games by sniffing the wire. If security is important enough > > to encrypt certain pages, I would wonder if they really all should be > > encrypted. Let's move beyond that though because if that's your > > requirement than that's what you have to pull off :) > > > Yes, if everything is straight then our life is simpler isn't it? Some > files are too big and ssl will kill us in the business world. We protect > them using roles. > > > > The issue with standalone tomcat is that once the user is login under > > > SSL, all connections including public resources not protected by web.xml > > > after the SSL will be in SSL under the same application. > > A good solution was proposed by Steve Ditlinger in his JavaWorld paper (Feb 2002) and later evolved into sslext for Struts. The approach is quite easy to implement for any framework. This is what we do under Jsf. > > > I don't know what the spec says in this regard... this could be a by > > design mechanism, or it could be a bug in Tomcat. It might be worth > > researching though... you may be trying to fight something that is > > actually working as it is supposed to. > > > That is what a great developer community is about. Unfortunately, i am > not a hard core developer. > > > > I did that but the same issue of serving public resource with SSL still > > > persist after the SSL connection. Note: I just found out that i did > > > something wrong so i still have to qualify this result(?). > > > > When you say "public resource", what does that mean? Do you mean an > > unconstrained resource? > > > Yes, unconstrained resource. > > > > Because i have not been able to switch between ssl (not for the session > > > id but for Confidential data) and non-ssl connection, i work out the > > > second plan to use 2 web applications under the same tomcat host and use > > > tomcat SingleSignOn to co-ordinate user sessions under the 2 web apps: 1 > > > for SSL and 1 for non SSL. > > The SSO solution is a step more complex than the dynamic switching between SSL and non-ssl. It is justifiable when you want a quick integration among different web applications. See below our simple 2-step approach. > > Just a shot in the dark, but what if you define a constraint on your > > UNPROTECTED resources and define the transport guarantee as NONE? It > > sounds like the user will always pass through a secured page first, so > > they would have a session established and be authenticated to a user > > realm, so I *think* it will work... I wonder if that will force it to a > > non-SSL state though? > > No, this won't work - at least under our own tests. > > This is a good suggestion. I wil try this simple and easy thing first. > > > > That is what i hope to get some help. The issue has nothing to do with > > > shale. I am sure that some one has done this successfully with > > > standalone tomcat. I appreciate any help. I ask this list under Shale > > > because under the scenario as explained below that i need 2 web apps, i > > > want to use shale for both. > > > > Certainly asking this on the Tomcat list would probably get you some > > further help... There may be some folks that that already know the ins > > and outs of Tomcat specifically better than I do. > > > As i said i picked up a thread called Forced Non-SSL from tomcat user > list and promised to report back the result of my investigation for the > benefit of others. > > > > Yes, this is what i expect. But the reality is that the
Re: [Shale] How to code simple container-managed login form
On Fri, 2005-06-10 at 23:08 -0400, Frank W. Zammetti wrote: > Duong BaTien wrote: > > First, thanks for an extra help. > > No problem... I hope I can help further :) > > > The whole idea is to use SSL for confidential pages such as logon, > > change username / password, edit profile with confidential data. Other > > time some resources may just be protected by roles. The ideal situation > > is to switch between SSL and Non-SSL using proper configuration on > > stand-alone tomcat (not with tomcat and apache front end). > > So it is within the same webapp... I think Craig raised a valid point in > that case... once the connection isn't secured, a would-be hacker can > play some games by sniffing the wire. If security is important enough > to encrypt certain pages, I would wonder if they really all should be > encrypted. Let's move beyond that though because if that's your > requirement than that's what you have to pull off :) > Yes, if everything is straight then our life is simpler isn't it? Some files are too big and ssl will kill us in the business world. We protect them using roles. > > The issue with standalone tomcat is that once the user is login under > > SSL, all connections including public resources not protected by web.xml > > after the SSL will be in SSL under the same application. > > I don't know what the spec says in this regard... this could be a by > design mechanism, or it could be a bug in Tomcat. It might be worth > researching though... you may be trying to fight something that is > actually working as it is supposed to. > That is what a great developer community is about. Unfortunately, i am not a hard core developer. > > I did that but the same issue of serving public resource with SSL still > > persist after the SSL connection. Note: I just found out that i did > > something wrong so i still have to qualify this result(?). > > When you say "public resource", what does that mean? Do you mean an > unconstrained resource? > Yes, unconstrained resource. > > Because i have not been able to switch between ssl (not for the session > > id but for Confidential data) and non-ssl connection, i work out the > > second plan to use 2 web applications under the same tomcat host and use > > tomcat SingleSignOn to co-ordinate user sessions under the 2 web apps: 1 > > for SSL and 1 for non SSL. > > Just a shot in the dark, but what if you define a constraint on your > UNPROTECTED resources and define the transport guarantee as NONE? It > sounds like the user will always pass through a secured page first, so > they would have a session established and be authenticated to a user > realm, so I *think* it will work... I wonder if that will force it to a > non-SSL state though? > This is a good suggestion. I wil try this simple and easy thing first. > > That is what i hope to get some help. The issue has nothing to do with > > shale. I am sure that some one has done this successfully with > > standalone tomcat. I appreciate any help. I ask this list under Shale > > because under the scenario as explained below that i need 2 web apps, i > > want to use shale for both. > > Certainly asking this on the Tomcat list would probably get you some > further help... There may be some folks that that already know the ins > and outs of Tomcat specifically better than I do. > As i said i picked up a thread called Forced Non-SSL from tomcat user list and promised to report back the result of my investigation for the benefit of others. > > Yes, this is what i expect. But the reality is that the non-protected > > resources NOT under are served by ssl once ssl is > > used, at least as i see it and also reported by another user in tomcat > > user list under standalone tomcat 5.5.9. > > Interesting... That *sounds* like a bug, but again, I'd be interested to > know what the spec says. Might be exactly what *should* happen. But if > you can, give my suggestion a try... Could be a simple fix :) > Yes, this is my intention. I will report back to this list my investigation and the result i choose since i am planning to use shale for a production project by the end of this year. > > Yes, i know and did that under pure html for testing. I ask for Jsf > > because if i have to go to the route of having 2 web applications: 1 for > > ssl connection and 1 for non-ssl connection, then i want to further > > explore if i can use shale for both rather than ssl application for just > > simple workaround. > > Gotcha. Let's see if we can't get it working the way you expected > though, and the way I would have expected it too... we might both learn > something here :) > I hope the list won't mind for the question predominantly tomcat and related to shale only at a higher level. BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[Shale] How to code simple container-managed login form
Hello Craig: Using Shale, could you show how to code simple container-managed login form with j_username, j_password, and j_security_check and shed some light on the following attempt. Specifically, i am attempting to use simple tomcat 5.5.9 SingleSignOn to dynamically switching between SSL application and non-SSL application under the same host: 1) Non-SSL application: 1.1) For protected resources, using roles but, not under SSL the app will check user SSO cookie. If not existed, it direct user to SSL logon. If the cookie existed, SingleSignOn will take care of the role protection. 1.2) For using SSL resources such as login, editProfile using Shale Dialog, etc, it will put a cookie having user current requested page for the SSL application to return to the non-SSL protocol. 2) SSL application: Get the user remote page for switching back to HTTP after the SSL session. All resources will be protected by SSL and roles. Behind both applications is tomcat JDBCRealm, for now, to a single data source. P.S: I tried RequestDispatcher using Shale preprocess command to direct all pages not under the SSL secure directory, and let tomcat handle SSL-protected pages. But this does not solve the problem that once the user is connected using SSL, the SSL connection stays on with non-ssl pages. Is there any simpler and/or better approach? JOSSO is the next level up that i do not have resource for now. Besides, i want to use Shale for both non-SSL and SSL applications. Thanks. BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [OT] Business Layer Ideas
On Fri, 2005-05-27 at 16:00 -0400, David Whipple wrote: > This is an off topic post, but there seem to be a lot of people with good > opinions here. > > I am trying to provide a framework (based on Stuts and Spring) for our > company > to use. I'd like to make a reinforcement of the business layer in > applications. > > We do not use EJBs, so a lot of the patterns that are out there do not seem > to > apply. I have not been able to find any references I like. > > The goal is to encourage better program design and development by > having a clear definition of what are the business objects in the program. > > We want to come up with a way through patterns to help programmers avoid > poor > programming practices. Clear separation into layers is one basic idea > behind > this. We want to come up with some interface to the business layer which > will > force programmers to know what are to be the business objects in their > architecture. > > Does anyone have any ideas and/or know of any references for this? > > Thanks, > Dave > Greetings: We use Chain of Responsibility (CoR) implemented by commons-chain and its Agility to construct a Request/Response framework to connect a request to its designated service, whether the designated service is in a web-application service container, a portlet container, auth for authentication/authorization, or a Jcr container. At the business layer, the designated service may use other services in other containers. e.g. the personalization of auth container uses UserDaoImpl of DAO container. We use Spring IoC to assemble chain Catalogs and their commands. Hence the request/response framework is based on CoR/IoC integrated with your presentation engine at the front. We use Jsf+Tiles as our presentation engine. The good thing is that available infrastructure takes care of detailed connections while isolating the dependencies of itemized services within 1 container and among containers. Developers just need to plug in the required specified functionality based on design contract. We integrate the Request/Response with workflow using Shale Dialog and Spring WebFlow to produce Request/Response/Workflow Business Application Framework. More detailed discussion is in the following link, which will be updated by 2nd week of June after the release of RedHat Fedora 4. http://www.dbgroups.com/docs/architecture.html#BusinessApplicationsFramework Hope this may help. BaTien DBGROUPS > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: AW: AW: [OT] Recommendation of Wiki and Chat engines
Leon Rosenberg wrote: Aehm... Don't know any, but i can give you mine? Tell me what the engine has to do, and I'll check whether my engine can provide it. Maybe take it off-list :-) Leon That is ok. Thank you. I am looking at NFC Chat. BaTien -Ursprüngliche Nachricht- Von: Duong BaTien [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 28. April 2005 21:01 An: Struts Users Mailing List Betreff: Re: AW: [OT] Recommendation of Wiki and Chat engines Leon Rosenberg wrote: JSPWiki. We are happy with it. Thanks Leon: Yes, i did take a look and seem to like it. How about Java Chat engine? BaTien DBGROUPS -Ursprüngliche Nachricht- Von: Duong BaTien [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 28. April 2005 20:08 An: Struts Users Mailing List Betreff: [OT] Recommendation of Wiki and Chat engines Hello list: I am in the market for a Java Wiki and a Java Chat (open sources or commercial). Do you mind to share your experience in using these collaboration tools and/or your recommendations. Thanks BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: AW: [OT] Recommendation of Wiki and Chat engines
Leon Rosenberg wrote: JSPWiki. We are happy with it. Thanks Leon: Yes, i did take a look and seem to like it. How about Java Chat engine? BaTien DBGROUPS -Ursprüngliche Nachricht- Von: Duong BaTien [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 28. April 2005 20:08 An: Struts Users Mailing List Betreff: [OT] Recommendation of Wiki and Chat engines Hello list: I am in the market for a Java Wiki and a Java Chat (open sources or commercial). Do you mind to share your experience in using these collaboration tools and/or your recommendations. Thanks BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[OT] Recommendation of Wiki and Chat engines
Hello list: I am in the market for a Java Wiki and a Java Chat (open sources or commercial). Do you mind to share your experience in using these collaboration tools and/or your recommendations. Thanks BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [REFERENDUM] Struts is a Community
Ted Husted wrote: As of about 2a EST this morning, 134,788 messages were posted to this list. Even for five years, that's a lot of traffic! Most of those messages have been about users helping other users. Some others, often marked "Friday" or "Beer" have been about users entertaining users. :) And, occasionally, we have waxed introspective and discussed "What is Struts anyway?". Some people have said that Struts is a brand that marks a product. Our benefactor, the Apache Software Foundation, calls Struts a "Project". Project is a good word, but it's really a euphemism: Project is an ASF code word that means "Community". From an ASF perspective, we're not here to build software, but to build a development community, and let the community build the software. We believe that great communities build great technology. Over the years, the Struts community *has* built some great technology. Aside from the Struts Action package, we've built Tiles and the Validator. We've built Bean-Utils and the Digester. And Collections, and File Upload, and Resources. And Chain. A good portion of all the components in the Jakarta Commons today is technology that Struts built. The technologies that Struts built are not just gizmos we use with our own controller or taglib components. Dozens of other software projects, and thousands of teams, use these technologies every day, whether they use our application framework or not. IMHO, this is what it means to be a community rather than a product, a people rather than a brand. It means that first we try to help each other, and then we try to package our solution to share with all comers. But, the map is not the land, and the solution is not the project. Since today is my birthday, I thought I'd take the liberty of calling for a referendum on a topic that is close to my heart: What do you say? Are we a product or a community? Here's my +1 for community. -Ted. A community with common interest in good software technologies is why i am here. Happy Birthday :-) BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How to create a web flow with Struts
Matt Raible wrote: Dakota Jack wrote: I will answer your question after clarifying BaTien's failure to respond to your question and his shameless promotion of another product through subterfuge. He is creating confusion. That is the whole point of Struts-Shale. Please be forewarned that Struts-Shale is not Struts. Struts-Shale is an entirely different product, something like an incipient version of Tapestry, which has nothing in common with Struts except it too is a framework. BaTien is not being completely fair or honest with you in his response. He is, in effect, trying to get you to seek a solution that has nothing to do with your initial inquiry, in order to promote his love for JSF, which is antithetical to Struts as we know it. The "we" BaTien talks about, in my opinion, is a small group of zealots trying to save a fairly old framework idea, JSF, from the trash heap. Now -- YOUR QUESTION. While you may be correct in BaTien's intentions, he does mention a worthwhile project: Spring Web Flow. This is a web flow (wizard) framework that was developed on top of Struts initially and can very much be used with Struts. http://forum.springframework.org/viewtopic.php?t=4604 There is a sample application (BirthDate) in Spring's CVS and it will be a part of a PR2 release on Sunday night. I plan on looking at Spring Web Flow this weekend and integrating into a Struts project next week. Matt Matt: I am interested in your evaluation of Spring Web Flow and your progress in this area. :-) Please share you experience. BaTien DBGROUPS I would need some clarification of your question to answer it. What do you mean by "the web flow will take the user to all the applications necessary to fulfill the service"? User navigation information is very easy to save to a database. Jack On Apr 9, 2005 8:43 AM, Duong BaTien <[EMAIL PROTECTED]> wrote: Néstor Boscán wrote: Hi I have a new project were I have to create an application that is a web flow of multiple standalone applications. Basically the user picks a service and the web flow will take the user to all the applications necessary to fulfill the service. We want to be able to save in a database the user navigation information. Has anybody done something like this with struts? Regards, Néstor Boscán I have not done this. But this is the direction we are heading to. Craig, the inventor of Struts Commons-Chain and Struts-Shale, has proposed a DialogController and is trying to incorporate features of Spring Web Flow. I found it is very useful as a state engine. You may take a look at Struts-Shale. I am also interest to what you are doing in this area. BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How to create a web flow with Struts
Dakota Jack wrote: I will answer your question after clarifying BaTien's failure to respond to your question and his shameless promotion of another product through subterfuge. He is creating confusion. That is the whole point of Struts-Shale. Please be forewarned that Struts-Shale is not Struts. Struts-Shale is an entirely different product, something like an incipient version of Tapestry, which has nothing in common with Struts except it too is a framework. BaTien is not being completely fair or honest with you in his response. He is, in effect, trying to get you to seek a solution that has nothing to do with your initial inquiry, in order to promote his love for JSF, which is antithetical to Struts as we know it. The "we" BaTien talks about, in my opinion, is a small group of zealots trying to save a fairly old framework idea, JSF, from the trash heap. Greetings: It is you again :-) The "we" means our own group who puts its money, time and effort in creating a service that "we" believe can effectively compete. The web flow is one of the key area "we" (our group) concentrate in. That is why i am interested in how other people try to do it with their own committed financial resources. I am interested in how you do it as well with the real deliverables. "We" are just a bunch of pragmatic technology entrepreneurs. "We" do not take any dogmatic approach. I try to leverage on existing deliverables and honestly share with the community what i get out of it. This is weekend. We can laugh :-) BaTien DBGROUPS Now -- YOUR QUESTION. I would need some clarification of your question to answer it. What do you mean by "the web flow will take the user to all the applications necessary to fulfill the service"? User navigation information is very easy to save to a database. Jack On Apr 9, 2005 8:43 AM, Duong BaTien <[EMAIL PROTECTED]> wrote: Néstor Boscán wrote: Hi I have a new project were I have to create an application that is a web flow of multiple standalone applications. Basically the user picks a service and the web flow will take the user to all the applications necessary to fulfill the service. We want to be able to save in a database the user navigation information. Has anybody done something like this with struts? Regards, Néstor Boscán I have not done this. But this is the direction we are heading to. Craig, the inventor of Struts Commons-Chain and Struts-Shale, has proposed a DialogController and is trying to incorporate features of Spring Web Flow. I found it is very useful as a state engine. You may take a look at Struts-Shale. I am also interest to what you are doing in this area. BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: How to create a web flow with Struts
Néstor Boscán wrote: Hi I have a new project were I have to create an application that is a web flow of multiple standalone applications. Basically the user picks a service and the web flow will take the user to all the applications necessary to fulfill the service. We want to be able to save in a database the user navigation information. Has anybody done something like this with struts? Regards, Néstor Boscán I have not done this. But this is the direction we are heading to. Craig, the inventor of Struts Commons-Chain and Struts-Shale, has proposed a DialogController and is trying to incorporate features of Spring Web Flow. I found it is very useful as a state engine. You may take a look at Struts-Shale. I am also interest to what you are doing in this area. BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Shale And Spring: Using Spring Dependency Injection With Shale
Hello list: I like to report that using today 20050407 shale.jar and shale-spring.jar, shale and spring work togather as documented by Craig. BaTien DBGROUPS == Duong BaTien wrote: Thanks. I will find time to do it. BaTien DBGROUPS Craig McClanahan wrote: Please try out the latest nightly version of the "use cases" sample app. It uses Spring to provide the business logic object (and associated DAO) for the login use case. Craig On Apr 5, 2005 10:13 AM, Duong BaTien <[EMAIL PROTECTED]> wrote: I reply to dev list but the mail was not accepted. BaTien Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by CraigMcClanahan: http://wiki.apache.org/struts/ShaleAndSpring New page: +++-- Shale And Spring: Using Spring Dependency Injection With Shale Since version 1.1.5 of Spring, that framework has included a convenient integration with JavaServer Faces that may be leveraged in a Shale based application. The integration includes a custom JSF {{{VariableResolver}}} implementation that is invoked first whenever a value binding or method binding expression is evaluated. In other words, the JSF managed beans facility behaves like this: * If there is a registered managed bean for the specified name, use the standard JSF facilities to create it (as usual). * If there is a configuration for this bean in the Spring WebApplicationContext, use Spring's BeanFactory to create it. * If neither of the above facilities recognizes the name, return {{{null}}}. This technique allows you to transparently use JSF value binding expressions (either in components, or through programmatic manipulation) that access beans managed by Spring instead of by the JSF managed beans facility. Hello Craig: I make a quick test on my site. The current working condition has shale.jar, spring-core.jar, spring-context.jar and spring-web.jar (1.1.5) . It works with or without using org.springframework.web.jsf.DelegatingVariableResolver Now i add shale-spring.jar, it has the exception as in the enclosed psi1.log. The exception happens with or without the inclusion of org.springframework.web.jsf.DelegatingVariableResolver in faces config. BaTien DBGROUPS --010504080503040606030709 Content-Type: text/plain; name="psi1.log" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline; filename="psi1.log" 2005-04-05 09:18:24,622 [main] DEBUG javax.faces.application.ApplicationF= actory - New ApplicationFactory instance created 2005-04-05 09:18:24,677 [main] ERROR org.apache.myfaces.webapp.StartupSer= vletContextListener - Error initializing ServletContext java.lang.IllegalArgumentException: Class org.springframework.web.context= =2EWebApplicationContext is no javax.faces.el.VariableResolver at org.apache.myfaces.config.FacesConfigurator.getApplicationObject(Face= sConfigurator.java:535) at org.apache.myfaces.config.FacesConfigurator.configureApplication(Face= sConfigurator.java:481) at org.apache.myfaces.config.FacesConfigurator.configure(FacesConfigurat= or.java:193) at org.apache.myfaces.webapp.StartupServletContextListener.initFaces(Sta= rtupServletContextListener.java:105) at org.apache.myfaces.webapp.StartupServletContextListener.contextInitia= lized(StartupServletContextListener.java:88) at org.apache.catalina.core.StandardContext.listenerStart(StandardContex= t.java:3827) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4= 343) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)= at org.apache.catalina.core.StandardHost.start(StandardHost.java:789) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)= at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478= ) at org.apache.catalina.core.StandardService.start(StandardService.java:4= 80) at org.apache.catalina.core.StandardServer.start(StandardServer.java:231= 3) at org.apache.catalina.startup.Catalina.start(Catalina.java:556) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Shale And Spring: Using Spring Dependency Injection With Shale
Thanks. I will find time to do it. BaTien DBGROUPS Craig McClanahan wrote: Please try out the latest nightly version of the "use cases" sample app. It uses Spring to provide the business logic object (and associated DAO) for the login use case. Craig On Apr 5, 2005 10:13 AM, Duong BaTien <[EMAIL PROTECTED]> wrote: I reply to dev list but the mail was not accepted. BaTien Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by CraigMcClanahan: http://wiki.apache.org/struts/ShaleAndSpring New page: +++-- Shale And Spring: Using Spring Dependency Injection With Shale Since version 1.1.5 of Spring, that framework has included a convenient integration with JavaServer Faces that may be leveraged in a Shale based application. The integration includes a custom JSF {{{VariableResolver}}} implementation that is invoked first whenever a value binding or method binding expression is evaluated. In other words, the JSF managed beans facility behaves like this: * If there is a registered managed bean for the specified name, use the standard JSF facilities to create it (as usual). * If there is a configuration for this bean in the Spring WebApplicationContext, use Spring's BeanFactory to create it. * If neither of the above facilities recognizes the name, return {{{null}}}. This technique allows you to transparently use JSF value binding expressions (either in components, or through programmatic manipulation) that access beans managed by Spring instead of by the JSF managed beans facility. Hello Craig: I make a quick test on my site. The current working condition has shale.jar, spring-core.jar, spring-context.jar and spring-web.jar (1.1.5) . It works with or without using org.springframework.web.jsf.DelegatingVariableResolver Now i add shale-spring.jar, it has the exception as in the enclosed psi1.log. The exception happens with or without the inclusion of org.springframework.web.jsf.DelegatingVariableResolver in faces config. BaTien DBGROUPS --010504080503040606030709 Content-Type: text/plain; name="psi1.log" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline; filename="psi1.log" 2005-04-05 09:18:24,622 [main] DEBUG javax.faces.application.ApplicationF= actory - New ApplicationFactory instance created 2005-04-05 09:18:24,677 [main] ERROR org.apache.myfaces.webapp.StartupSer= vletContextListener - Error initializing ServletContext java.lang.IllegalArgumentException: Class org.springframework.web.context= =2EWebApplicationContext is no javax.faces.el.VariableResolver at org.apache.myfaces.config.FacesConfigurator.getApplicationObject(Face= sConfigurator.java:535) at org.apache.myfaces.config.FacesConfigurator.configureApplication(Face= sConfigurator.java:481) at org.apache.myfaces.config.FacesConfigurator.configure(FacesConfigurat= or.java:193) at org.apache.myfaces.webapp.StartupServletContextListener.initFaces(Sta= rtupServletContextListener.java:105) at org.apache.myfaces.webapp.StartupServletContextListener.contextInitia= lized(StartupServletContextListener.java:88) at org.apache.catalina.core.StandardContext.listenerStart(StandardContex= t.java:3827) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4= 343) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)= at org.apache.catalina.core.StandardHost.start(StandardHost.java:789) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)= at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478= ) at org.apache.catalina.core.StandardService.start(StandardService.java:4= 80) at org.apache.catalina.core.StandardServer.start(StandardServer.java:231= 3) at org.apache.catalina.startup.Catalina.start(Catalina.java:556) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Shale And Spring: Using Spring Dependency Injection With Shale
I reply to dev list but the mail was not accepted. BaTien Dear Wiki user, You have subscribed to a wiki page or wiki category on "Struts Wiki" for change notification. The following page has been changed by CraigMcClanahan: http://wiki.apache.org/struts/ShaleAndSpring New page: +++-- Shale And Spring: Using Spring Dependency Injection With Shale Since version 1.1.5 of Spring, that framework has included a convenient integration with JavaServer Faces that may be leveraged in a Shale based application. The integration includes a custom JSF {{{VariableResolver}}} implementation that is invoked first whenever a value binding or method binding expression is evaluated. In other words, the JSF managed beans facility behaves like this: * If there is a registered managed bean for the specified name, use the standard JSF facilities to create it (as usual). * If there is a configuration for this bean in the Spring WebApplicationContext, use Spring's BeanFactory to create it. * If neither of the above facilities recognizes the name, return {{{null}}}. This technique allows you to transparently use JSF value binding expressions (either in components, or through programmatic manipulation) that access beans managed by Spring instead of by the JSF managed beans facility. Hello Craig: I make a quick test on my site. The current working condition has shale.jar, spring-core.jar, spring-context.jar and spring-web.jar (1.1.5) . It works with or without using org.springframework.web.jsf.DelegatingVariableResolver Now i add shale-spring.jar, it has the exception as in the enclosed psi1.log. The exception happens with or without the inclusion of org.springframework.web.jsf.DelegatingVariableResolver in faces config. BaTien DBGROUPS --010504080503040606030709 Content-Type: text/plain; name="psi1.log" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline; filename="psi1.log" 2005-04-05 09:18:24,622 [main] DEBUG javax.faces.application.ApplicationF= actory - New ApplicationFactory instance created 2005-04-05 09:18:24,677 [main] ERROR org.apache.myfaces.webapp.StartupSer= vletContextListener - Error initializing ServletContext java.lang.IllegalArgumentException: Class org.springframework.web.context= =2EWebApplicationContext is no javax.faces.el.VariableResolver at org.apache.myfaces.config.FacesConfigurator.getApplicationObject(Face= sConfigurator.java:535) at org.apache.myfaces.config.FacesConfigurator.configureApplication(Face= sConfigurator.java:481) at org.apache.myfaces.config.FacesConfigurator.configure(FacesConfigurat= or.java:193) at org.apache.myfaces.webapp.StartupServletContextListener.initFaces(Sta= rtupServletContextListener.java:105) at org.apache.myfaces.webapp.StartupServletContextListener.contextInitia= lized(StartupServletContextListener.java:88) at org.apache.catalina.core.StandardContext.listenerStart(StandardContex= t.java:3827) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4= 343) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)= at org.apache.catalina.core.StandardHost.start(StandardHost.java:789) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)= at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478= ) at org.apache.catalina.core.StandardService.start(StandardService.java:4= 80) at org.apache.catalina.core.StandardServer.start(StandardServer.java:231= 3) at org.apache.catalina.startup.Catalina.start(Catalina.java:556) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.= java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces= sorImpl.java:25) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [Shale]: , , DialogController and Tiles
Craig McClanahan wrote: Craig: Do you like to speculate and/or share the timing of this? IBM (RAD) and Oracle (ADF) both have libraries that include components for this purpose. I have seen other libraries as well, from companies like Otrix. My favorite example is one of their JSF components, a tree control ... but a tree control that is backed by a database of 6000 possible entries. The component only downloads the portions of the data needed for the currently expanded nodes, and uses asynchronous background communication to grab more data when you expand new nodes. This sort of things keeps Java developers useful and makes us busy. Thanks. BaTien DBGROUPS BaTien DBGROUPS Craig - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [Shale]: , , DialogController and Tiles
Craig McClanahan wrote: On Apr 2, 2005 11:25 AM, NetSQL <[EMAIL PROTECTED]> wrote: Craig McClanahan wrote: And there's even JSF components around that do this sort of thing too :-). AFAIK JSF was not designed for client rendering (hence "Server" faces, not "Client" faces). It can be done in the same way one can get JSP or Servlet API to render on the Client. See my response to BaTien for some pointers to existing libraries of JSF components that already do the kind of thing we are talking about. Please somone correct me if I am wrong. The "server" part of the name JavaServer Faces refers to the fact that you are constructing components that do two things on the server side: * Render some sort of representation of themselves * Trigger events on an HTTP request (after restoring the previous server side state, if any). plus a standard MVC-style front controller framework to manage the HTTP transactions (including a request processing lifecycle, event management, server-side validation, and navigation that anyone familiar with Struts will see is similar to what any front controller framework provides). The key thing many newcomers miss is that JSF itself is totally agnostic about what kind of representation is created (other than the fact that there are a few standard components that are HTML specific, primarily to get you started). You can certainly render simple HTML widgets directly on the server, as these standard components do. But you can do a lot more. Let's say you wanted to build a dropdown control that, in addition to the typical behavior of a dropdown list, had a way to refresh the dropdown list contents via an asynchronous call to the server (so you don't have to refresh the entire page). Instead of creating the markup itself, you'd generate the JavaScript code (or, more likely, a call into some JavaScript library that is already included in your application). The JavaScript code would use DHTML to construct the dropdown list component and dynamically add it to the client side DOM, and would also offer a method that could be triggered (from some other client side JavaScript) to go refill the list asynchronously. It's still a server side component, but instead of rendering markup you are rendering client side code that creates markup. However, because it conforms to a standard component API, you have made it easy for a page developer to construct a user interface using these components, without that developer having to understand all the intricacies of JavaScript and DHTML, and how it actually works under the covers. And, that developer can intermix components from other JSF component libraries as well, because they all share a common API and runtime environment. The developer can even use a tool like Creator that makes assembling a page an exercise in drag-n-drop, and configuring the component properties. Finally, with JSF you get to leverage the front controller both for form submits and for responding to the background XmlHttpRequest calls. Readers familiar with Tapestry will be chuckling about now, saying "we can do that too". And they are right ... Tapestry provides a server side UI component framework that can do all this as well -- demonstrating that a component oriented architecture can provide a powerful basis for creating sophisticated applications, without exposing all the nitty gritty details to the developer. Indeed, it is the lack of a component architecture in Strust 1.x that requires you to go assemble all of the pieces as tag libraries and filters and such, as well as have to do other things like data conversion yourself. JSF (at least in version 1.0 and 1.1) doesn't offer any of the standard JavaScript libraries to help you build components like this. Instead, it lets you write components that leverage such libraries that already exist in order to allow page authors to easily construct pages that use such libraries, without having to have a deep understanding of how all that JavaScript and DHTML stuff actually functions. Doing more to support building components like this more easily, however, is definitely on the table in JSF 2.0. In the mean time, I'll be doing more in Shale to provide a JSF-based runtime environment for these kinds of components -- after all, an XmlHttpRequest request can be processed through a front controller just like a form submit can be, and mapping the incoming event to the corresponding processing logic is pretty much the same for both cases. Hello Craig: You answer to Vic, but many of us - me included - get benefit from this insight. BaTien DBGROUPS .V Craig - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [Shale]: , , DialogController and Tiles
Craig McClanahan wrote: On Apr 2, 2005 9:53 AM, NetSQL <[EMAIL PROTECTED]> wrote: Craig McClanahan wrote: I'm quite intrigued by the Web Flow project in Swing's sandbox ... Not Swing. Spring or Don Brown's Ajax-Strtus sandbox I assume are both called "Flow". Yes, I meant "Spring". They also recently released a milestone of this code. Yes, i did take a quick look at Spring Web Flow. I am looking forward to your integration under Shale. One small feature in the workflow that seems quite useful is the persistence of each specified step so user does not need to start from the beginning. ( I am glad it's in the back of your mind Freud. XUL, Flex, XAML, Ajax (aka DHTML), JDNC all render on the client and improve performance by offloading rendering from the server.) And there's even JSF components around that do this sort of thing too :-). Craig: Do you like to speculate and/or share the timing of this? BaTien DBGROUPS At least not yet. .V Craig - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [Shale]: , , DialogController and Tiles
Craig McClanahan wrote: On Apr 1, 2005 2:11 PM, Duong BaTien <[EMAIL PROTECTED]> wrote: Hello Craig: Well, this is Friday so we can take it easy on the debate between Struts and Jsf. This is about Struts-Shale, Jsf and Tiles. First, thank you for your contributions in CoR commons-chain and Shale. I had some time to re-visit shale and have successfully implemented shale as a servlet filter, its view controller with myfaces JspTilesViewHandlerImpl, and DialogController. Some questions: 1) The logon Dialog demonstrates an implementation of DialogController using hard-coded methods as entry points. Is there any thought of a generic Dialog bean whose actions and processes are assembled on-demand via CoR/IoC? What would the method binding expression look like in this case? Today, the last component of this expression is the name of the method to be called, and you'd either have to maintain that or provide some sort of custom method binding expression evaluator that did something like creating a context and then firing off a chain. It might just be simpler to compose a Context object, and fire off the appropriate chain, yourself inside the event handling methods. With a suitable helper function, each event handling method could be a simple one liner. On a parallel note, I'm quite intrigued by the Web Flow project in Swing's sandbox, and am trying to carve out enough time to integrate it into Shale. It is much more fleshed out than DialogController, and includes nice concepts like nested subflows. Do you mean Spring's sandbox? I will take a look at it. 2) Association between view id and viewController is quite handy. I am able to associate each view id, assembled from complex tiles fragments, with a specialized viewController that pull part of the data from a dialogController. All tiles fragment use Jsf . Now moving to the shale , is it intended to replace jsf if more than 1 fragments requires viewController? I have not tested this case with myfaces tile viewHandler. I think i should wait for shale custom ViewHandler that works with tiles. Yes, the intent is that would replace in order to provide the lifecycle event calls for every fragment's ViewController bean. If/when David gets done on extracting Tiles out of Struts, and integrating it with Shale, we'll likely want a component that does a combination of what and do, so the developer won't have to use both. Wow :-) i am waiting for this. The last time I tried (pre-1.0.9 though) the entire Shale use cases example worked correctly with MyFaces as well as with the JSF RI. In particular, there's a portion of the unit tests that verifies the event calls occur in the correct order. But that does not have myfaces tiles viewHandler. I think will be broken under the current tiles viewHandler. 3) If is intended to replace to work with tiles, can it be done in such a way that each request needs to instantiate only 2 request-scope viewControllers for 2 fragments (portlet menu and its display fragments depending on which portlet user clicks)? I suppose you could do that by specifying two subviews in the "outer" page prepared by the portal server; but I want the ability to use subviews *inside* a single portlet as well -- hence the desire to support an arbitrary number of initialized ViewControllers per request. This is the ideal case as long as it is NOT hard hooked. So a portlet application does not have to fire up request-scope viewControllers when not needed. BaTien DBGROUPS Craig Thanks. Have a good weekend. BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
[Shale]: , , DialogController and Tiles
Hello Craig: Well, this is Friday so we can take it easy on the debate between Struts and Jsf. This is about Struts-Shale, Jsf and Tiles. First, thank you for your contributions in CoR commons-chain and Shale. I had some time to re-visit shale and have successfully implemented shale as a servlet filter, its view controller with myfaces JspTilesViewHandlerImpl, and DialogController. Some questions: 1) The logon Dialog demonstrates an implementation of DialogController using hard-coded methods as entry points. Is there any thought of a generic Dialog bean whose actions and processes are assembled on-demand via CoR/IoC? 2) Association between view id and viewController is quite handy. I am able to associate each view id, assembled from complex tiles fragments, with a specialized viewController that pull part of the data from a dialogController. All tiles fragment use Jsf . Now moving to the shale , is it intended to replace jsf if more than 1 fragments requires viewController? I have not tested this case with myfaces tile viewHandler. I think i should wait for shale custom ViewHandler that works with tiles. 3) If is intended to replace to work with tiles, can it be done in such a way that each request needs to instantiate only 2 request-scope viewControllers for 2 fragments (portlet menu and its display fragments depending on which portlet user clicks)? BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts Business Logic :: Best Practices
Ted Husted wrote: As to business objects, the usual advice is to use Plain Old Java Objects (POJOs). The current MailReader example application is an excellent example of creating a set of interfaces to represent business logic, then instantiating a set of classes to implement the business logic. The MailReader uses a Struts PlugIn to create the business logic beans in application scope. Another good approach is to use Spring to create your business objects. Here, you might use a PlugIn to create the Spring instance in application scope, and then call the Spring instance to create everything else. Of course, my favorite way to manage business objects now is as a Chain of Responsbility. But, to get started, you probably want to use plain old business beans, as the MailReader does. All this is to say, option 2. The Actions call the business beans, and the beans do all the heavy lifiting. (Actions shouldn't know *how* to do things, just who to ask to get things done.) The iBATIS DAO layer is cool, but if you don't need a switchable DAO, you can do the same thing using your own interfaces. Of course, my favorite way to do business logic now is using the Chain of Responsiblity. But, that's a bit bleeding edge right now :) -Ted. Hello Ted and concerned developers: I just like to make this piece-meal update on how we use commons-chain and hope to get some feedback from gurus out there. 1) I modify chain CatalogBase and ChainBase to turn CoR Catalog, Command, Filter, and Chain into POJO configurable using IoC. This will avoid an issue that Vic said about the Rich Client. 2) Extending the naming approach of Agility, bean references are all in names, including the DTO to keep DO and UI objects consistent. 3) All component services are done with chain Command. I am waiting for some "de-facto" standard of having conditional chain. Have you and struts committers set down the best way to do it? BaTien DBGROUPS On Fri, 11 Mar 2005 14:57:51 +0530, karthikeyan balasubramanian <[EMAIL PROTECTED]> wrote: Hi all, Struts DB Access Best Practices thread gave me great insight on how I should proceed with db operations. I have one more question. Where do you keep your business logic code. Right now I am thinking to use 1. Struts(JSP, Actions) 2. Simple class(Managers) to keep all our business logic code 3. IBATIS for database abstraction. Actions can call Managers to get the job done and Manager can use iBATIS to access DB. Is this a good approach or is there a better approach than this? Looking forward for your response. Have a great day. Karthikeyan B - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts or SpringFramework
Vic wrote: It is by far my favorite topic (and for all early RiA adaters). Email me a vin at friendvu.com or at (hardly used) forums at sandraSF.com. I use chain for SoA dispatching from hessian, not on JDNC side (becuase JNLP classloader looks at digester as a security violation :-( ) On JDNC I had to do some MVC work, I think they have a junior group from Sun on this on their side. (They don't even have a DTO concept :-P ) .V Thanks. As i go along in the next 2 months i will probably email you privately and/or join your forums. BaTien DBGROUPS Hello Vic: I have looked at jdic and JNLP application and want to explore further for off-line applications. Hope you may share your experience in using commons-chain in Swing (and possibly with Spring IoC) under JDesktop Integration Component. This is your favorite topic isn't it? BaTien DBGROUPS - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Struts or SpringFramework
Vic wrote: You can put your toe in Spring(Tapestry or JSF) and see how it feels becuase you know the Struts side. Or. you can start doing commons-chain now! And then plug it into anything. What Ted Husted said on dev list was words to the effect: "people should be no longer be writing Struts applications. They should be writing commons-chains (CoR) applications. Then just plug it into Struts. ". I chose to write commons-chain applications, that I plug into... Swing. .V Hello Vic: I have looked at jdic and JNLP application and want to explore further for off-line applications. Hope you may share your experience in using commons-chain in Swing (and possibly with Spring IoC) under JDesktop Integration Component. This is your favorite topic isn't it? BaTien DBGROUPS Larry Meadors wrote: Without exception, every developer I have talked to personally that has tried SpringMVC said it was way more complex than struts, and ended up going back (almost all the way) to struts. What I have heard is a killer combination is "Spring-managed Struts". In this permutation, you use struts with a Spring-based request processor instead of the default struts one. Then, you get much of the benefit of using spring (managed beans, IoC, etc...) and continue to use vanilla struts for the remainder of your application. I have been hoping to use this model for the last month or so, but have been too busy to try it myself. Stupid job. ;-) Larry - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]