Re: [Standalone Tiles] Progress

2006-05-04 Thread Antonio Petrelli

Greg Reddin ha scritto:
I've added a preliminary version of a TilesContext interface and 
refactored the core API to use it. .


Note that I ran out of time before I had a chance to look at these 
other examples, so if you look at what I just committed and inherently 
see a better way, please share.

Hi Greg
I am working on an idea that involves Contexts and Scopes (in fact the 
product I want to release will be called "Scopes" ;-) ) without being 
tied to any framework.
What I created is a "State" that comprises a certain number of 
"Contexts" that have a similar API to ServletRequest, HttpSession and 
ServletContext (I mean they all have "getAttribute" and "setAttribute" 
methods).
"State.getContext(String contextName)" method is used to retrieve the 
context, i.e. you can call it such as:

state.getContext("request") to get request context.
The engine creates the State through the use of a serlvet filter and 
uses a wrapped HttpServletRequest to deliver it to servlets.
I don't know if it is useful. You know, I wish to publish it with Apache 
License on Sourceforge but I still did not register a project for it, 
because I wanted to write a bit of docs first. But anyway if you are 
interested on it I can post it ASAP.
Anyway I really liked the idea of TilesContext. Just a thought... what 
do you think about using it in ComponentDefinitions.getDefinition 
methods? I noticed that your TilesContext has a map for headers, that I 
use to read for detecting the device

Ciao
Antonio

P.S. I also managed to add "window" scope but that is another story.

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



Re: [action2] Public API first draft

2006-05-04 Thread Claus Ibsen
The JDK1.5 api looks really great.

I'm not native english but is this interface name correct?

Validatable

Should it not be?
Validateable

/Claus
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=56886#56886


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



Re: Dear trolls...

2006-05-04 Thread netsql

Then  you are saying that a different approach would not be popular?

So to restate it, what is going here is popular. Oh good. Last thing I 
want is something strange.


Life just anint' fair, is it now.
Maybe you are imagining that you hired some of the people on this list, 
and that they would work for you and then you could draw something on 
the board, and they would be willing to implement it. A big salary they 
get I imagine.


Let me tell you a true story: I had a client draw something on a board 
for me. I said I was going to the bathroom; took my car keys... and took 
the elevator instead. I did not return their calls.


So how desperate would these qualified people have to be you think?

If they enjoy their work, great for us. If that means they want to work 
in a certain way... I guess deal with it or don't.


.V


Jonathan Revusky wrote:
 Granted, you can always fork off your own
version of Struts and work on it somewhere else, but the point is that 
it will only get a very small fraction of the attention and usage of the 
canonical version on struts.apache.org.






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



Re: Dear trolls...

2006-05-04 Thread netsql
I am not sure if I want you to walk up to me and say: "Would you sign my 
copy of Catcher in the Rye please?"

You do have it, don't you?

.V

Dakota Jack wrote:

This is silly, whomever you are.

On 5/3/06, netsql <[EMAIL PROTECTED]> wrote:

"and that is why you will kill me last"?

:-0

.V



Dakota Jack wrote:

>
> At least you are civil.  That part is good.
>
>


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





--
"You can lead a horse to water but you cannot make it float on its back."
~Dakota Jack~



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



Re: [action2] Public API first draft

2006-05-04 Thread Jason Carreira
Ok, I remember us saying we wanted to clean up a lot of things that weren't 
right in the old codebase, but why are we changing everything just for the sake 
of change?

Instead of having a pretty good sized community who can easily switch over with 
a few tweaks (the WebWork community) and a huge community to write a 
compatibility layer and migration docs for, we'll have almost no-one who can 
try out the code on a real-world project for a considerable time. It took my 
project a couple of weeks of tracking down little things to go from the 2.1.x 
codebase to 2.2, and that was all in WebWork, without huge API changes!

Plus, I don't see a lot of these changes as being better, just different. The 
messages, for instances. Messages in WebWork work really well... So why are we 
changing them? Why the requirement to use message keys? At work we only use 
message keys, but that's not the case everywhere. Sometimes it's quicker and 
easier to just throw some text in there for the message. 

Anyway, needless to say I'm not too excited to see these changes... It will 
make the timetable for converting my project over look more like 6 months 
instead of 1 month since we don't have time to make this many changes.
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=56953#56953


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



Re: [action2] Public API first draft

2006-05-04 Thread Ian Roughley
Jason brings up a great point.  Is Struts2 meant to be a "mostly" compatible 
upgrade from webwork 2.2.2, or is it to be similar to the upgrade from Struts?  
We have spoken about correcting the API, but I do not think this question has 
ever been asked.  I think we have also been saying that if you want to get a 
kickstart on Struts2, use webwork as their will be only small  changes - if 
this is not the case we need to start setting expectations now. 

As far as the API is concerned, the only question I have is do you think that 
the forField() and forRequest() methods should be more generic?  i.e. if flash 
scope or workflow scope is added, additional methods would be needed.
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=56959#56959


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



Re: [action2] Public API first draft

2006-05-04 Thread Philip Luppens
> Jason brings up a great point.  Is Struts2 meant to
> be a "mostly" compatible upgrade from webwork 2.2.2,
> or is it to be similar to the upgrade from Struts?
> We have spoken about correcting the API, but I do
> not think this question has ever been asked.  I
> think we have also been saying that if you want to
> get a kickstart on Struts2, use webwork as their
> will be only small  changes - if this is not the
>  case we need to start setting expectations now. 


Afaict, it was said that SAF2.0 would be a ww 2.2.2 with additional 
enhancements to make easy upgrades for 1.x possible ( a 'drop-in replacement' 
). WW 2.2.2 users would only have to do a search & replace of the package names.

I too expect(ed) an easy ww2.2.2 -> saf2.0 migration. 
If not, we should port over any bugfixes from the saf2 repository to the ww2 
repository, for those who need ww2.2.2 fixes, but can't upgrade because the 
'easy migration to saf2' turns out to be a bit more difficult that expected.

> As far as the API is concerned, the only question I
> have is do you think that the forField() and
> forRequest() methods should be more generic?  i.e. if
> flash scope or workflow scope is added, additional
> methods would be needed.

Cheers,

Phil
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=56962#56962


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



Re: [action2] Public API first draft

2006-05-04 Thread Gabe

I'm -1 on the draft proposal.

The vast majority of the API as I read it is to support Bob's proposal of how 
to deal with XWork. As Patrick stated before (paraphrase) the three proposals 
are:
1) Move XWork over as a seperate project under the umbrella of Struts Action 2 
(Webwork=>Struts "web" and XWork=>Struts "core")
2) Create an adapter layer for Struts 2 developers to use without directly 
interfacing XWork (Bob's proposal)
3) Leave XWork where it is and use XWork's API directly in Struts Action 2

The public API presented mainly implements #2, which has not yet built a 
consensus that it should be used. In my view, the problems with #2 are:
1) It creates an adapter code layer that adds little functionality but requires 
maintenance. For example, if something is added in XWork, then a change in 
Struts 2 will generally be required for that change to be usable.
2) If it does add functionality, it blurs the traditional seperation of roles 
between XWork and Webwork. The adapter layer risks becoming a second judgement 
layer on what should or should not be in XWork. I think those decisions should 
be made in the XWork project directly.
3) If we are going to use XWork's API so directly and are worried about it 
being called "opensymphony.xwork" rather than "apache.struts", we should simply 
move XWork over as in proposal #1. 
4) It creates a divide of those things that are part of the Adapter pattern 
layer and those that are not. Those that are not become more obscure and 
undocumented.

Thus, while I applaud Bob and Patrick for putting out a vision in code, since 
it appears to me that 90% of the API simply supports proposal #2, we should 
discuss that proposal instead first before creating an API that supports it.

Gabe

- Original Message 
From: Patrick Lightbody <[EMAIL PROTECTED]>
To: dev@struts.apache.org
Sent: Wednesday, May 3, 2006 10:01:58 PM
Subject: [action2] Public API first draft

Bob and I have been going over the new public API proposal. It has been 
designed to simplify Struts and abstract away XWork complexities that aren't 
needed. It is far from complete, but we wanted to get some early feedback. 
We'll likely be talking about this stuff a lot more during JavaOne, but we'd 
like to start the discussions now.

The code is checked in under the action-api module. Assuming you've got the 
basic Maven build running, you can generate the JavaDocs (which might make 
seeing the API easier) by running:

mvn javadoc:javadoc

>From the action-api directory. You must have run "mvn install" at least once 
>before for that to work.
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=56817#56817


-
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: [action2] Public API first draft

2006-05-04 Thread Martin Cooper

On 5/4/06, Claus Ibsen <[EMAIL PROTECTED]> wrote:


The JDK1.5 api looks really great.

I'm not native english but is this interface name correct?

Validatable

Should it not be?
Validateable



Neither of these is an English word... ;-)

--
Martin Cooper


/Claus

-
Posted via Jive Forums

http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=56886#56886


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




Re: JIRA links to Subversion commits

2006-05-04 Thread Martin Cooper

On 5/3/06, Jeff Turner <[EMAIL PROTECTED]> wrote:


On Wed, May 03, 2006 at 08:00:43PM -0700, Martin Cooper wrote:
> On 5/3/06, Wendy Smoak <[EMAIL PROTECTED]> wrote:
> >
> > The Subversion plugin for JIRA seems to be installed, but it's not
> > working.
>
>
> Weird. It seems to be working _sometimes_. For example:
>
> http://issues.apache.org/struts/browse/WW-1278
>
> I don't know if there's something that we're missing, and I don't have
> access to the properties file (that I know of). An infra ticket,
perhaps?

Only the incubator (webwork) svn tree is being parsed. I'll update the
config file so that the rest of struts is parsed too.



Aha! Of course - I was forgetting we have two SVN trees right now. Thanks,
Jeff!

--
Martin Cooper


--Jeff


> --
> Martin Cooper
>
>
>For example:
> >http://svn.apache.org/viewcvs?rev=398085&view=rev
> >http://issues.apache.org/struts/browse/STR-2852?page=all
> >
> > This page says there is a properties file to edit, and I wonder if
> > that was done for our installation.
> > *
http://confluence.atlassian.com/display/JIRAEXT/JIRA+Subversion+plugin
> >
> > Is this something that someone here can check?
> >
> > --
> > Wendy
> >
> > -
> > 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]




SAF 1.3.x and legacy RequestProcessor

2006-05-04 Thread Michael Jouravlev

Looking at 1.3 internals (at last) I've found that it contains both
ComposableRequestProcessor (CRP) and legacy RequestProcessor (RP). Is
this duality really needed?

For a regular Struts user who does not extend RP, the new CRP should
work just like the old one. The only difference is the config files.

Dragging legacy RP along seems like a burden to me, especially that
the main difference between 1.2 and 1.3 is the chain of commands, so
unless someone wants to make explicit use of chain, there is no reason
to upgrade to 1.3. In future, the RP will either have to be supported
all along (is it reasonable?) or deprecated (why not do it now?).

Am I not getting something?

Michael.

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



Re: SAF 1.3.x and legacy RequestProcessor

2006-05-04 Thread Joe Germuska

At 8:07 AM -0700 5/4/06, Michael Jouravlev wrote:

Looking at 1.3 internals (at last) I've found that it contains both
ComposableRequestProcessor (CRP) and legacy RequestProcessor (RP). Is
this duality really needed?

For a regular Struts user who does not extend RP, the new CRP should
work just like the old one. The only difference is the config files.

Dragging legacy RP along seems like a burden to me, especially that
the main difference between 1.2 and 1.3 is the chain of commands, so
unless someone wants to make explicit use of chain, there is no reason
to upgrade to 1.3. In future, the RP will either have to be supported
all along (is it reasonable?) or deprecated (why not do it now?).

Am I not getting something?


You're right that chain is the main new feature, but there are others 
that have not been backported to 1.2 (arbitrary properties on all 
config objects is a nice one) and I doubt there's any interest at all 
in that backporting.


I would be OK with deprecating RequestProcessor.  I've been concerned 
about people using older subclasses of RequestProcessor (like for 
SSLExt or even Tiles) and then not understanding how using that makes 
the chain non-functional.


Joe

--
Joe Germuska
[EMAIL PROTECTED] * http://blog.germuska.com


"You really can't burn anything out by trying something new, and
even if you can burn it out, it can be fixed.  Try something new."
-- Robert Moog

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



Re: SAF 1.3.x and legacy RequestProcessor

2006-05-04 Thread Martin Cooper

On 5/4/06, Joe Germuska <[EMAIL PROTECTED]> wrote:


At 8:07 AM -0700 5/4/06, Michael Jouravlev wrote:
>Looking at 1.3 internals (at last) I've found that it contains both
>ComposableRequestProcessor (CRP) and legacy RequestProcessor (RP). Is
>this duality really needed?
>
>For a regular Struts user who does not extend RP, the new CRP should
>work just like the old one. The only difference is the config files.
>
>Dragging legacy RP along seems like a burden to me, especially that
>the main difference between 1.2 and 1.3 is the chain of commands, so
>unless someone wants to make explicit use of chain, there is no reason
>to upgrade to 1.3. In future, the RP will either have to be supported
>all along (is it reasonable?) or deprecated (why not do it now?).
>
>Am I not getting something?

You're right that chain is the main new feature, but there are others
that have not been backported to 1.2 (arbitrary properties on all
config objects is a nice one) and I doubt there's any interest at all
in that backporting.

I would be OK with deprecating RequestProcessor.



Me too.

--
Martin Cooper


 I've been concerned

about people using older subclasses of RequestProcessor (like for
SSLExt or even Tiles) and then not understanding how using that makes
the chain non-functional.

Joe

--
Joe Germuska
[EMAIL PROTECTED] * http://blog.germuska.com

"You really can't burn anything out by trying something new, and
even if you can burn it out, it can be fixed.  Try something new."
-- Robert Moog

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




Re: [action2] Public API first draft

2006-05-04 Thread Eric Molitor

I guess I'm a bit confused but is this API the only supported route or
are their plans to support existing WebWork/Xwork code? I'll be honest
and say that I need to go through the API and consider each point
before I make a complete judgement. However, at first glance, this
deviates far enough from existing XWork actions to leave me a bit
concerned.

In regards to the implementation of the API where did ResponseAware
go? While not elegant there are times where it is useful. (admittedly
I use an interceptor for this for example
http://confluence.twdata.org/display/WW/HTTPS+and+IE+Issues so it may
be a mute point.)

- Eric

On 5/4/06, Gabe <[EMAIL PROTECTED]> wrote:


I'm -1 on the draft proposal.

The vast majority of the API as I read it is to support Bob's proposal of how 
to deal with XWork. As Patrick stated before (paraphrase) the three proposals 
are:
1) Move XWork over as a seperate project under the umbrella of Struts Action 2 (Webwork=>Struts 
"web" and XWork=>Struts "core")
2) Create an adapter layer for Struts 2 developers to use without directly 
interfacing XWork (Bob's proposal)
3) Leave XWork where it is and use XWork's API directly in Struts Action 2

The public API presented mainly implements #2, which has not yet built a 
consensus that it should be used. In my view, the problems with #2 are:
1) It creates an adapter code layer that adds little functionality but requires 
maintenance. For example, if something is added in XWork, then a change in 
Struts 2 will generally be required for that change to be usable.
2) If it does add functionality, it blurs the traditional seperation of roles 
between XWork and Webwork. The adapter layer risks becoming a second judgement 
layer on what should or should not be in XWork. I think those decisions should 
be made in the XWork project directly.
3) If we are going to use XWork's API so directly and are worried about it being called 
"opensymphony.xwork" rather than "apache.struts", we should simply move XWork 
over as in proposal #1.
4) It creates a divide of those things that are part of the Adapter pattern 
layer and those that are not. Those that are not become more obscure and 
undocumented.

Thus, while I applaud Bob and Patrick for putting out a vision in code, since 
it appears to me that 90% of the API simply supports proposal #2, we should 
discuss that proposal instead first before creating an API that supports it.

Gabe

- Original Message 
From: Patrick Lightbody <[EMAIL PROTECTED]>
To: dev@struts.apache.org
Sent: Wednesday, May 3, 2006 10:01:58 PM
Subject: [action2] Public API first draft

Bob and I have been going over the new public API proposal. It has been 
designed to simplify Struts and abstract away XWork complexities that aren't 
needed. It is far from complete, but we wanted to get some early feedback. 
We'll likely be talking about this stuff a lot more during JavaOne, but we'd 
like to start the discussions now.

The code is checked in under the action-api module. Assuming you've got the 
basic Maven build running, you can generate the JavaDocs (which might make 
seeing the API easier) by running:

mvn javadoc:javadoc

From the action-api directory. You must have run "mvn install" at least once 
before for that to work.
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=56817#56817


-
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: [VOTE] Accept and Graduate WebWork 2 Podling to Struts

2006-05-04 Thread Martin Cooper

On 4/30/06, Ian Roughley <[EMAIL PROTECTED]> wrote:




Martin Cooper wrote:
> On 4/28/06, Don Brown <[EMAIL PROTECTED]> wrote:
>>
>> I call a vote that the Struts PMC accept the WebWork 2 podling as
having
>> met the incubation requirements and thereby be
>> accepted by the Apache Struts project as Struts Action 2.
>
>
> A couple of things I noticed on a quick scan:
>
> * One of the files in the pico package (PicoFilterDispatcher.java) has
> only
> an ASF copyright, while all the others in the same package also have a
> NanoContainer copyright. Did we accidentally zap the latter on that one
> file, or did it not come from there?
>
> * There are still quite a few files that have OS copyrights but not ASF
> ones.
>
> * PortletUrlTagTest.java has a copyright for BEKK Consulting but not
> one for
> the ASF. Are we sure we're OK for IP on this one?
>
> * SubmitAjaxTest.java has a copyright for Down & Around, Inc. but not
one
> for the ASF. Are we sure we're OK for IP on this one?
This is mine.  I'll be faxing in the IP assignment tomorrow.



It has just been recorded by the  ASF Secretary. Thanks!

--
Martin Cooper




> * dtree.css has a copyright for Geir Landrö but not one for the ASF.
> Are we
> sure we're OK for IP on this one?
>
> * The file
>
FieldValidatorsExampleAction-submitClientSideValidationExample-validation.xml
(!)
>
> has a copyright for Your Corporation (!) but not one for the ASF.
>
> Once these are all squared away, I am +1, but we need to sort these out
> first. I'm willing to help do that if someone can verify what needs to
> happen.
>
> --
> Martin Cooper
>
>
> Status: http://incubator.apache.org/projects/webwork2.html
>>
>> [ ] +1 Let's bring it in, and I'm committed to the project
>> [ ] +0 Let's bring it in, but I won't be involved
>> [ ] -0 I'd rather not, but I'm not involved, and here's why...
>> [ ] -1 Let's not, and here's why...
>>
>> We welcome votes from all community members, however, only the votes
>> of Struts PMC members are binding.
>>
>> If this vote passes, the Incubator will need to vote for the
>> graduation to
>> be complete.
>>
>> Here is my +1
>>
>> Don
>>
>> -
>> 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: [VOTE] Accept and Graduate WebWork 2 Podling to Struts

2006-05-04 Thread Don Brown

Martin Cooper wrote:

On 4/30/06, Ian Roughley <[EMAIL PROTECTED]> wrote:




Martin Cooper wrote:
> On 4/28/06, Don Brown <[EMAIL PROTECTED]> wrote:
>>
>> I call a vote that the Struts PMC accept the WebWork 2 podling as
having
>> met the incubation requirements and thereby be
>> accepted by the Apache Struts project as Struts Action 2.
>
>
> A couple of things I noticed on a quick scan:
>
> * One of the files in the pico package (PicoFilterDispatcher.java) has
> only
> an ASF copyright, while all the others in the same package also have a
> NanoContainer copyright. Did we accidentally zap the latter on that one
> file, or did it not come from there?
>
> * There are still quite a few files that have OS copyrights but not ASF
> ones.
>
> * PortletUrlTagTest.java has a copyright for BEKK Consulting but not
> one for
> the ASF. Are we sure we're OK for IP on this one?
>
> * SubmitAjaxTest.java has a copyright for Down & Around, Inc. but not
one
> for the ASF. Are we sure we're OK for IP on this one?
This is mine.  I'll be faxing in the IP assignment tomorrow.



It has just been recorded by the  ASF Secretary. Thanks!


Could you pull the test out of the SVN history (I removed it so the vote could 
continue) and re-add it?  Don't forget to change the copyrights.  Thanks,


Don



--
Martin Cooper




> * dtree.css has a copyright for Geir Landrö but not one for the ASF.
> Are we
> sure we're OK for IP on this one?
>
> * The file
>
FieldValidatorsExampleAction-submitClientSideValidationExample-validation.xml 


(!)
>
> has a copyright for Your Corporation (!) but not one for the ASF.
>
> Once these are all squared away, I am +1, but we need to sort these out
> first. I'm willing to help do that if someone can verify what needs to
> happen.
>
> --
> Martin Cooper
>
>
> Status: http://incubator.apache.org/projects/webwork2.html
>>
>> [ ] +1 Let's bring it in, and I'm committed to the project
>> [ ] +0 Let's bring it in, but I won't be involved
>> [ ] -0 I'd rather not, but I'm not involved, and here's why...
>> [ ] -1 Let's not, and here's why...
>>
>> We welcome votes from all community members, however, only the votes
>> of Struts PMC members are binding.
>>
>> If this vote passes, the Incubator will need to vote for the
>> graduation to
>> be complete.
>>
>> Here is my +1
>>
>> Don
>>
>> -
>> 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]



[Action2] OpenSymphony Maven Repository

2006-05-04 Thread tm jee
In OpenSymhpony's maven repository for pell-multipart, the pom.xml is missing a 
4.0.0 

This causes some problem when trying to run some of maven2 'lifecycle'. Is it 
possible for someone to have a look at it. 

Thx. 



Re: [action2] Public API first draft

2006-05-04 Thread Bob Lee

On 5/4/06, Martin Cooper <[EMAIL PROTECTED]> wrote:

On 5/4/06, Claus Ibsen <[EMAIL PROTECTED]> wrote:
>
> The JDK1.5 api looks really great.
>
> I'm not native english but is this interface name correct?
>
> Validatable
>
> Should it not be?
> Validateable


Neither of these is an English word... ;-)


Yeah, I talked it over with Josh Bloch yesterday. Even though it's not
a real word, we thought it best to keep it because it's been used in
both Struts and WebWork for a long time (not to mention many other
APIs).

As for the spelling, with English there are no hard and fast rules,
but the general rule is to drop the "e". Debate is to debatable as
validate is to validatable.

Barring that, we computed G(n) (the number of results returned by Google):

G("Validateable") = 16.5k
G("Validatable") = 105k

Bob

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



Re: [action2] Public API first draft

2006-05-04 Thread Don Brown

According to the roadmap (or at least the one in my head :)), Struts
Action 2 will be implemented in two phases:

Phase 1 - Rename WebWork 2 code, implement Struts 1.x support, minor changes
Phase 2 - Annotations, Zero XML configuration, new easy development modes, etc

The goal of Phase 1 is to get a release out quickly, in the hands of
developers, and help them migrate their code quickly.  This probably
translates into Struts Action 2.0.x.  Phase 2 I see stretching out
into Struts Action 2.x or even 3.x, as it is where we bring in truely
innovative features that make development easier.

That said, I'm with Jason that we need to ensure these first changes
for Phase 1 aren't too drastic from an end user perspective, but that
doesn't mean we shouldn't try to move around and clean up the API.  By
minor changes, I mean from an end user perspective, not from an
architecture perspective, so drastic API changes that have little
impact on today's WebWork 2 applications would fit in this category.

I see this new API as a proposal, meant to feed discussion and not to
be voted on as a whole today.  Therefore, let us have a solid
discussion on the particulars of the API, and avoid throwing out the
abused '-1' votes, as those are meant for official votes and carry an
obstructive, negative connotation.

Now for my API comments:

Overall - I like the clean feel of the API and the concious decisions
to minimize the number of interfaces the user needs to be aware of. 
It seems to have a minimal conceptual surface area [1] that the Wicket

folks talk about.

o.a.s.action2 - I'd like to hear the design reasoning behind the
Messages changes.  I liked the use of Maps in the XWork design as it
made it easier to work with.  On the other hand, encapsulating message
operations in the Messages object does reduce the number of
message-handling methods required.  Perhaps Messages could extend Map?
Also, I agree we should continue to support plain Messages, as not
all apps need to be localized.

I'm not sure I understand the separation of Validatable and
ErrorAware.  In particular, Validatable only has a validate() method
that returns void.  Is there really a case you want to validate, but
not have errors sent anywhere?  I think of the use case of plugging in
a different validation engine like commons-validator, and this
separation makes it harder.  Why not return Messages?

o.a.s.action2.attribute - This is again a feature I'd like to hear the
design reasonings of.  I liked the previous use of Maps as they were
easy to test and pass around.  Maps can also be extended to provide
the automatic synchonrization feature talked about easily.

o.a.s.action2.servlet - I like how the servlet-related classes are
contained in their own package.  This distinction is very important as
I plan to be personally using Action 2 mostly for Portlets.

o.a.s.action2.spi - Again, I love this separation - move all the
framework classes the user rarely deals with out into its own package.
I like making ValueStack a first class interface, and the Interceptor
changes seem reasonable.  I am somewhat concerned about the Request
interface though.  While the goal of putting everything you need for a
request in one object, it seems to be combining too many roles.  For
one, it has servlet object retrieval methods in there that should be
separated, and I'm not sure if it should be handing the execution of
actions and interceptors as well.  If the goal is to turn this into a
Tapestry-like Visitor object which holds all the request state, we
should separate out the servlet getters into their own interface to be
combined by the user.

The more I think about this Request object, I can't help but notice it
pushes the roles usually handled by the Action into it.  For example,
the Request now holds Messages whereas before we had the
ValidationAware interface for the Action.  I'm wondering if it might
be a better plan to decorate a central Request object with these types
of interfaces rather than cluttering the Action.  It makes the Action
only really usable if you extend ActionSupport, otherwise you have a
ton of methods to implement, and concievably, you'd want to be sharing
these methods with all your actions anyways.

Anyways, I'm glad to have something concrete we can discuss and toss
darts at.  Thanks Bob and Patrick for taking the time to put this
together and I look forward to the feedback.

Don

[1] http://wicket.sourceforge.net/Vision.html

On 5/4/06, Jason Carreira <[EMAIL PROTECTED]> wrote:

Ok, I remember us saying we wanted to clean up a lot of things that weren't 
right in the old codebase, but why are we changing everything just for the sake 
of change?

Instead of having a pretty good sized community who can easily switch over with 
a few tweaks (the WebWork community) and a huge community to write a 
compatibility layer and migration docs for, we'll have almost no-one who can 
try out the code on a real-world project for a considerable time. It took my

Re: [action2] Public API first draft

2006-05-04 Thread Bob Lee

On 5/4/06, Eric Molitor <[EMAIL PROTECTED]> wrote:

In regards to the implementation of the API where did ResponseAware
go?


org.apache.struts.action2.servlet.ServletResponseAware

I put these interfaces in a sub package because users should avoid
creating dependencies on the servlet API in their actions.

Bob

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



Why vote twice for a release quality?

2006-05-04 Thread Don Brown
I'm preparing to draw the Struts Action 1.3.2 release quality vote to a close, 
but as I look at the release plan, I see it has us voting twice on the same 
release for the same quality vote (vote a and b).  Why is this?  Seems to me one 
vote should be plenty.


Don

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



Re: Make base Action class a dispatch action

2006-05-04 Thread Frank W. Zammetti
So long as this statement...

"...the proposed feature changes nothing for regular Action users, it
changes nothing for old DispatchAction users, but it makes things a lot
simpler for those who want to switch to event-based paradigm with as
little efforts as possible."

...is true, count me +1.  As long as I can take an existing app and have
it work without modification (or with trivial mods at worst), I can't
think of a reason not to do this.

Frank

-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com
AIM: fzammetti
Yahoo: fzammetti
MSN: [EMAIL PROTECTED]
Java Web Parts -
http://javawebparts.sourceforge.net
Supplying the wheel, so you don't have to reinvent it!

On Thu, May 4, 2006 1:53 pm, Michael Jouravlev said:
> What we has been brought from the stone ages:
>
> * Base Action class does not dispatch events
> * DispatchAction and its flavors do, but they do not allow a user to
> derive an action class from some another user's base action
>
> What we got now in 1.2.9 and 1.3.1+ :
>
> * ActionDispatcher resolves the inheritance issue, allowing any action
> to dispatch events
> * EventActionDispatcher makes dispatching an easy and fun task; it
> also allows to separate input phase from render phase, at the same
> time it allows to trigger event with links (GET), not only with
> buttons (POST).
>
> What appears to be a logical next step:
>
> * Stick dispatching features in base Action, thus making all actions
> to be dispatch actions.
>
> Benefits:
>
> * ActionDispatcher will not be needed.
> * Any action will be able to dispatch events.
> * This makes a mind shift, making people think more in terms of events
> and independent webresources, kind of like .NET's code-behind.
>
> Minor drawback:
>
> * only one dispatching behavior can be chosen. Considering all job
> done before, we how have best-of-breed EventDispatchAction. Its
> features (maybe in some modified manner) should be pushed to base
> Action class. For those who rely on old-style DispatchAction or
> MappingDispatchAction, they will still be available.
>
> So, the proposed feature changes nothing for regular Action users, it
> changes nothing for old DispatchAction users, but it makes things a
> lot simpler for those who want to switch to event-based paradigm with
> as little efforts as possible.
>
> Thoughts? Objections? Suggestions?
>
> Michael.
>
> -
> 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: [VOTE] Accept and Graduate WebWork 2 Podling to Struts

2006-05-04 Thread Ian Roughley
I'm ok if you want to just remove the copyright.  BTW - the copyright 
assignment form was faxed monday (5/1).


/Ian

--

From Down & Around, Inc.

Innovative IT Solutions
Software Architecture * Design * Development
~
web:  www.fdar.com  
email [EMAIL PROTECTED]  
phone:617.821.5430

~



Don Brown wrote:

Martin Cooper wrote:

On 4/30/06, Ian Roughley <[EMAIL PROTECTED]> wrote:




Martin Cooper wrote:
> On 4/28/06, Don Brown <[EMAIL PROTECTED]> wrote:
>>
>> I call a vote that the Struts PMC accept the WebWork 2 podling as
having
>> met the incubation requirements and thereby be
>> accepted by the Apache Struts project as Struts Action 2.
>
>
> A couple of things I noticed on a quick scan:
>
> * One of the files in the pico package (PicoFilterDispatcher.java) 
has

> only
> an ASF copyright, while all the others in the same package also 
have a
> NanoContainer copyright. Did we accidentally zap the latter on 
that one

> file, or did it not come from there?
>
> * There are still quite a few files that have OS copyrights but 
not ASF

> ones.
>
> * PortletUrlTagTest.java has a copyright for BEKK Consulting but not
> one for
> the ASF. Are we sure we're OK for IP on this one?
>
> * SubmitAjaxTest.java has a copyright for Down & Around, Inc. but not
one
> for the ASF. Are we sure we're OK for IP on this one?
This is mine.  I'll be faxing in the IP assignment tomorrow.



It has just been recorded by the  ASF Secretary. Thanks!


Could you pull the test out of the SVN history (I removed it so the 
vote could continue) and re-add it?  Don't forget to change the 
copyrights.  Thanks,


Don



--
Martin Cooper




> * dtree.css has a copyright for Geir Landrö but not one for the ASF.
> Are we
> sure we're OK for IP on this one?
>
> * The file
>
FieldValidatorsExampleAction-submitClientSideValidationExample-validation.xml 


(!)
>
> has a copyright for Your Corporation (!) but not one for the ASF.
>
> Once these are all squared away, I am +1, but we need to sort 
these out
> first. I'm willing to help do that if someone can verify what 
needs to

> happen.
>
> --
> Martin Cooper
>
>
> Status: http://incubator.apache.org/projects/webwork2.html
>>
>> [ ] +1 Let's bring it in, and I'm committed to the project
>> [ ] +0 Let's bring it in, but I won't be involved
>> [ ] -0 I'd rather not, but I'm not involved, and here's why...
>> [ ] -1 Let's not, and here's why...
>>
>> We welcome votes from all community members, however, only the votes
>> of Struts PMC members are binding.
>>
>> If this vote passes, the Incubator will need to vote for the
>> graduation to
>> be complete.
>>
>> Here is my +1
>>
>> Don
>>
>> 
-

>> 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: [action2] Public API first draft

2006-05-04 Thread Jason Carreira
I agree with Don on almost everything... scary!

The exception is the validate() method returning messages... we need a central 
place where messages are added, not passing them in and out of methods.

I was also confused by the Request interface... I thought / expected it was 
going to be a way to abstract out ServletRequest vs. PortletRequest, but it 
does a lot of other stuff, too, and ended up confusing me on what the request 
processing lifecycle was proposed to be...
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=57044#57044


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



Re: Public API first draft

2006-05-04 Thread Eric Molitor

I definitely agree that they should be isolated, but glancing through
the api I saw RequestAware but not ResponseAware. (I`m reading the
copy Don posted and not the version under source control.)


On 5/4/06, Bob Lee <[EMAIL PROTECTED]> wrote:

On 5/4/06, Eric Molitor <[EMAIL PROTECTED]> wrote:
> In regards to the implementation of the API where did ResponseAware
> go?

org.apache.struts.action2.servlet.ServletResponseAware

I put these interfaces in a sub package because users should avoid
creating dependencies on the servlet API in their actions.

Bob

-
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: [action2] Public API first draft

2006-05-04 Thread Don Brown

Jason Carreira wrote:

I agree with Don on almost everything... scary!

The exception is the validate() method returning messages... we need a
central
place where messages are added, not passing them in and out of methods.


Ok, what about passing in an instance of Messages, MessagesAware, or something 
similar?


Also, I forgot to mention, I'd like to avoid the use of "Error" when referring 
to messages, because many times there are errors, warnings, and information 
messages.  I like the ability for validation to raise warnings that don't result 
in a failure, but allows me to warn the user the value might not be what they 
were intending.


Don



I was also confused by the Request interface... I thought / expected it was
going to be a way to abstract out ServletRequest vs. PortletRequest, but it does
a lot of other stuff, too, and ended up confusing me on what the request
processing lifecycle was proposed to be...
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=57044#57044


-
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: [action2] Public API first draft

2006-05-04 Thread Joe Germuska
Also, I forgot to mention, I'd like to avoid the use of "Error" when 
referring to messages, because many times there are errors, 
warnings, and information messages.  I like the ability for 
validation to raise warnings that don't result in a failure, but 
allows me to warn the user the value might not be what they were 
intending.


How do you envision that working?  Would individual messages have an 
optional "severity" property? (i.e. "error", "warning", possibly 
others)  Or would there be one bundle of messages for each severity?


I've taken to using a generic BusinessProcessResult object (sometimes 
extended with process-specific details) which carries with it three 
lists messages: "message," "warning," and "error".  (Actually, it can 
have other lists with arbitrary keys, but those three have 
"privileged" status in the API.)


For our purposes, it could be a "ValidationResult" which gets passed 
around through the different validators, each of which can add to any 
of the lists as appropriate.


Seems like something which people might not like as a matter of 
taste, but I've found it pretty handy.  It's also a bigger model 
change from both Struts and Webwork than may be appropriate at this 
time.


In short, I think it's nice to have a "warning" level if we can work 
out a clean way to support it.


Joe

--
Joe Germuska
[EMAIL PROTECTED] * http://blog.germuska.com


"You really can't burn anything out by trying something new, and
even if you can burn it out, it can be fixed.  Try something new."
-- Robert Moog

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



Re: [action2] Public API first draft

2006-05-04 Thread Don Brown
How to implement this is a good question.  When I use warnings in my 
application, they aren't displayed on the very next page, but rather collected 
as the user goes through the wizard.  Then, on the last page, the user is asked 
to confirm the information, and it is here we display the warnings.  Support for 
message scopes makes it more interesting, although I don't know if it is widely 
used enough to build into Action 2.


Don

Joe Germuska wrote:
Also, I forgot to mention, I'd like to avoid the use of "Error" when 
referring to messages, because many times there are errors, warnings, 
and information messages.  I like the ability for validation to raise 
warnings that don't result in a failure, but allows me to warn the 
user the value might not be what they were intending.


How do you envision that working?  Would individual messages have an 
optional "severity" property? (i.e. "error", "warning", possibly 
others)  Or would there be one bundle of messages for each severity?


I've taken to using a generic BusinessProcessResult object (sometimes 
extended with process-specific details) which carries with it three 
lists messages: "message," "warning," and "error".  (Actually, it can 
have other lists with arbitrary keys, but those three have "privileged" 
status in the API.)


For our purposes, it could be a "ValidationResult" which gets passed 
around through the different validators, each of which can add to any of 
the lists as appropriate.


Seems like something which people might not like as a matter of taste, 
but I've found it pretty handy.  It's also a bigger model change from 
both Struts and Webwork than may be appropriate at this time.


In short, I think it's nice to have a "warning" level if we can work out 
a clean way to support it.


Joe




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



Re: [action2] Public API first draft

2006-05-04 Thread Bob Lee

We're using WebWork 2.2 heavily on a handful of projects (OK, a big
handful of big projects), so I definitely understand the concerns.

I didn't mean to shock anyone. I thought my point of view was clear
based on the introduction to the "Rough Spots" page
(http://wiki.apache.org/struts/RoughSpots) and the "Action Next++"
thread (http://forums.opensymphony.com/thread.jspa?threadID=27183).

I'm worried about migrating our WebWork projects, too, but I'm willing
to stick with WebWork 2.2 for a little longer and endure a less
convenient migration in order to support what's best in the long run.
(I also don't think a migration will be as painful as some think.)

In the long run, do we want Struts Action 2.0 to be a standard on the
same footing as JSF or just another non-JSF framework? I want the
former. I want Struts Action 2.0 to be the default choice of major
corporations so I can continue to use it for years to come.

If you agree, the most important thing is that we get the published
API right in the 2.0 release. The published API includes a Java API
like we have here, the configuration (along with the implicit
interceptor and result names), the tag libraries, etc.

Breaking the API in a 2.0.x release is not an option; we'll be stuck
with whatever we put out in 2.0. As I said in the "Action Next++"
thread, I'd rather not start planning on a 3.0 release. Let's get it
right the first time.

On 5/4/06, Don Brown <[EMAIL PROTECTED]> wrote:

I see this new API as a proposal, meant to feed discussion and not to
be voted on as a whole today.  Therefore, let us have a solid
discussion on the particulars of the API, and avoid throwing out the
abused '-1' votes, as those are meant for official votes and carry an
obstructive, negative connotation.


Exactly. Thanks, Don.


o.a.s.action2 - I'd like to hear the design reasoning behind the
Messages changes.  I liked the use of Maps in the XWork design as it
made it easier to work with.  On the other hand, encapsulating message
operations in the Messages object does reduce the number of
message-handling methods required.  Perhaps Messages could extend Map?
 Also, I agree we should continue to support plain Messages, as not
all apps need to be localized.


- Passing in keys vs. actual messages - I think always passing in keys
is one thing Struts got right. Even if you only support one language,
abstracting messages out of your code is still a good practice.

- Using keys enabled us to do away with the TextProvider interface entirely.

- I didn't like having the same set of methods twice: one for errors
and one for regular messages. The new design is more object oriented,
has shorter method names, enables better reuse of code between errors
and normal messages, and leaves the door open to other levels of
messages (such as warning). I'm not saying we want to explicitly
support arbitrary levels (like JSF does), but we don't want to close
the door to it either.

- This design doesn't force inheritance. Notice we don't have
ActionSupport anymore? If users still want to have the implicit
methods, they can statically import them from a support class. The
support class implementation would look up the thread local Request
and delegate to it. I didn't add this yet because I'm not sure if we
really need it.

- In the old design, messages were scoped to an action which doesn't
work very well when you're chaining and you want to display all the
errors from all the actions. I think we want messages to be scoped to
the request (i.e. spanning multiple actions). We actually use our own
message handling and ignore WebWork's at the moment.

- Regarding your Map comment, we've considered having
Messages.forFields() return a Map>. Would that
work? That would be identical to what WebWork supports today.


I'm not sure I understand the separation of Validatable and
ErrorAware.  In particular, Validatable only has a validate() method
that returns void.  Is there really a case you want to validate, but
not have errors sent anywhere?  I think of the use case of plugging in
a different validation engine like commons-validator, and this
separation makes it harder.  Why not return Messages?


I've been thinking Validatable should extend ErrorAware, but I wanted
to see what you guys thought first. I don't like the idea of
validate() return Messages. I never liked the fact that I had to
create an errors object in Struts. I also want to be able to easily
add validation messages from setters (I like doing field level
validation in the setter and cross field validations in validate()).


o.a.s.action2.attribute - This is again a feature I'd like to hear the
design reasonings of.  I liked the previous use of Maps as they were
easy to test and pass around.  Maps can also be extended to provide
the automatic synchonrization feature talked about easily.


This is something I've been kicking around since generics came out.
Now that we have generics, it seems funny to be passing around a
heterogeneously typed m

Re: Public API first draft

2006-05-04 Thread Michael Jouravlev

On 5/4/06, Eric Molitor <[EMAIL PROTECTED]> wrote:

I definitely agree that they should be isolated, but glancing through
the api I saw RequestAware but not ResponseAware. (I`m reading the
copy Don posted and not the version under source control.)


ValidationAware, ErrrorAware, RequestAware, ResponseAware,
SomeOtherStuffAware... Are you kidding? I might not understand
something (heck, I haven't started with WW yet), but if all these
interfaces are only meant to implement a callback method in a custom
class for the framework to call, then... well, I do not like this.

For the lifecycle, I want a clear definition of lifecycle call
sequence and an option to call lifecycle methods explicitly. All of
them. Like in SAF1, WW binds URL to a mapping to an action, so action
is the endpoint which is guaranteed to be called. Fine. Then just pass
control to that action and give me an option to call all (or some)
lifecycle methods explicitly from the action. I will not need
interceptors in this case, by the way. And I will not need to
implement a bunch of intefaces.

For the regular typecasting I agree, some interfaces are needed, to
make certain methods available, but there should be a very limited
number of these interfaces, and at best a particular class will need
to implement only one interface.

Um, does it make sense?

Michael.

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



Re: [action2] Public API first draft

2006-05-04 Thread Jason Carreira
> 
> Ok, what about passing in an instance of Messages,
> MessagesAware, or something 
> similar?
> 

Well, currently the validators are passes a ValidatorContext when they are 
created. The ValidatorContext includes methods for adding messages as well as 
methods for getting localized texts, etc. 

> Also, I forgot to mention, I'd like to avoid the use
> of "Error" when referring 
> to messages, because many times there are errors,
> warnings, and information 
> messages.  I like the ability for validation to raise
> warnings that don't result 
> in a failure, but allows me to warn the user the
> value might not be what they 
> were intending.
> 

Yes, that's what the difference of the *errors, *warnings, and *messages does 
in the current ValidationAware interface (implemented by ActionSupport via 
delegation to a ValidationAwareSupport instance).
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=57068#57068


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



Re: [action2] Public API first draft

2006-05-04 Thread Jason Carreira
> 
> How do you envision that working?  Would individual
> messages have an 
> optional "severity" property? (i.e. "error",
> "warning", possibly 
> others)  Or would there be one bundle of messages for
> each severity?
> 
> I've taken to using a generic BusinessProcessResult
> object (sometimes 
> extended with process-specific details) which carries
> with it three 
> lists messages: "message," "warning," and "error".
>  (Actually, it can 
> ave other lists with arbitrary keys, but those three
> have 
> "privileged" status in the API.)
> 
> For our purposes, it could be a "ValidationResult"
> which gets passed 
> around through the different validators, each of
> which can add to any 
> of the lists as appropriate.
> 
> Seems like something which people might not like as a
> matter of 
> taste, but I've found it pretty handy.  It's also a
> bigger model 
> change from both Struts and Webwork than may be
> appropriate at this 
> time.

Actually it's no change at all :-)  See my response to Don. Here's the types of 
methods in there:

void setAction[Errors|Warnings|Messages](Collection messages);

Collection getAction[Errors|Warnings|Messages]();

void setFieldErrors(Map errorMap);

/**
 * @return Map with errors mapped from fieldname (String) to Collection of 
String error messages
 */
Map getFieldErrors();

void addAction[Error|Warning|Message](String message);

void addFieldError(String fieldName, String errorMessage);

boolean hasAction[Errors|Warnings|Messages]();

/**
 * @return (hasActionErrors() || hasFieldErrors())
 */
boolean hasErrors();

boolean hasFieldErrors();
> 
> In short, I think it's nice to have a "warning" level
> if we can work 
> out a clean way to support it.
> 
> Joe
> 

Oops... just noticed it doesn't have "Warnings" in there, but it would be very 
easy to add.
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=57069#57069


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



Re: [action2] Public API first draft

2006-05-04 Thread Michael Jouravlev

On 5/4/06, Bob Lee <[EMAIL PROTECTED]> wrote:

- Passing in keys vs. actual messages - I think always passing in keys
is one thing Struts got right.


I presume you meant Struts Action Framework 1 ;-)


Even if you only support one language,
abstracting messages out of your code is still a good practice.


Passing actual message is a nice-have for quick projects or for
intranet one-language projects.


- I didn't like having the same set of methods twice: one for errors
and one for regular messages. The new design is more object oriented,
has shorter method names, enables better reuse of code between errors
and normal messages, and leaves the door open to other levels of
messages (such as warning). I'm not saying we want to explicitly
support arbitrary levels (like JSF does), but we don't want to close
the door to it either.


Is it possible to assign different prefixes to messages generated by
different actions? This may be helpful if a page contains several
components, each component is controlled by its own action (or a set
of actions), so when a component is updated in Ajax mode (or the whole
page is reloaded) the messages will be displayed in the proper places.
I mean, every component should display only its own messages.


- In the old design, messages were scoped to an action which doesn't
work very well when you're chaining and you want to display all the
errors from all the actions. I think we want messages to be scoped to
the request (i.e. spanning multiple actions). We actually use our own
message handling and ignore WebWork's at the moment.


SAF1 already have had messages request-scoped. This does not work for
Redirect-after-post stuff, so SAF1 now has session-scoped messages,
that are removed from the session automatically after they are
displayed. This is kind of FlashScope for poor. I suggest to have a
real FlashScope for messages and other stuff. This may have less
importance if WW UI will be Ajax only.

Also, considering that in WW action and actionform is one thing, I
would say that action-scoped messages are better: messages and actual
data that was validated, are stored at the same place. Messages belong
to a particular data set of a particular component (action). I
experimented with ActionForm-scoped messages in SAF1, having
session-scoped ActionForms. Works well in terms that when you reload
the page, here is your invalid data, and here are the corresponding
errors.

Michael.

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



Re: Public API first draft

2006-05-04 Thread Eric Molitor

Actually my point was the Servlet*Aware interfaces should be isolated
as their use is generally a bad practice. There was some confusion as
to what RequestAware was doing.

If you have to implement 35 interfaces to implement an action then
obviously this would not be a viable framework. In most cases you
would be using few, if any, of the interfaces.

Cheers,
  Eric

On 5/4/06, Michael Jouravlev <[EMAIL PROTECTED]> wrote:

On 5/4/06, Eric Molitor <[EMAIL PROTECTED]> wrote:
> I definitely agree that they should be isolated, but glancing through
> the api I saw RequestAware but not ResponseAware. (I`m reading the
> copy Don posted and not the version under source control.)

ValidationAware, ErrrorAware, RequestAware, ResponseAware,
SomeOtherStuffAware... Are you kidding? I might not understand
something (heck, I haven't started with WW yet), but if all these
interfaces are only meant to implement a callback method in a custom
class for the framework to call, then... well, I do not like this.

For the lifecycle, I want a clear definition of lifecycle call
sequence and an option to call lifecycle methods explicitly. All of
them. Like in SAF1, WW binds URL to a mapping to an action, so action
is the endpoint which is guaranteed to be called. Fine. Then just pass
control to that action and give me an option to call all (or some)
lifecycle methods explicitly from the action. I will not need
interceptors in this case, by the way. And I will not need to
implement a bunch of intefaces.

For the regular typecasting I agree, some interfaces are needed, to
make certain methods available, but there should be a very limited
number of these interfaces, and at best a particular class will need
to implement only one interface.

Um, does it make sense?

Michael.

-
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: [action2] Public API first draft

2006-05-04 Thread Jason Carreira
> We're using WebWork 2.2 heavily on a handful of
> projects (OK, a big
> handful of big projects), so I definitely understand
> the concerns.
> 
> I didn't mean to shock anyone. I thought my point of
> view was clear
> based on the introduction to the "Rough Spots" page
> (http://wiki.apache.org/struts/RoughSpots) and the
> "Action Next++"
> thread
> (http://forums.opensymphony.com/thread.jspa?threadID=2
> 7183).
> 
> I'm worried about migrating our WebWork projects,
> too, but I'm willing
> to stick with WebWork 2.2 for a little longer and
> endure a less
> convenient migration in order to support what's best
> in the long run.
> (I also don't think a migration will be as painful as
> some think.)
> 
> In the long run, do we want Struts Action 2.0 to be a
> standard on the
> same footing as JSF or just another non-JSF
> framework? I want the
> former. I want Struts Action 2.0 to be the default
> choice of major
> corporations so I can continue to use it for years to
> come.
> 
> If you agree, the most important thing is that we get
> the published
> API right in the 2.0 release. The published API
> includes a Java API
> like we have here, the configuration (along with the
> implicit
> interceptor and result names), the tag libraries,
> etc.
> 
> Breaking the API in a 2.0.x release is not an option;
> we'll be stuck
> with whatever we put out in 2.0. As I said in the
> "Action Next++"
> thread, I'd rather not start planning on a 3.0
> release. Let's get it
> right the first time.

I think this is the core decision that needs to be made right now. I'm not sure 
which way I'm leaning on this, but we need to pick a direction. If we're going 
to redesign the API and get things right, then lets decide to do that and 
re-open WebWork to bug fixes and more releases in the meantime. Either way I'd 
like to push some of this stuff into XWork, not just leave it in SAF2.
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=57075#57075


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



Re: [action2] Public API first draft

2006-05-04 Thread Gabe

I agree both that this is the core decision that has to be made now and that we 
should push some of this stuff into XWork.

I won't vote though, because I've learned we're discussing not voting :-D

- Original Message 
From: Jason Carreira <[EMAIL PROTECTED]>
To: dev@struts.apache.org
Sent: Thursday, May 4, 2006 4:52:48 PM
Subject: Re: [action2] Public API first draft


I think this is the core decision that needs to be made right now. I'm not sure 
which way I'm leaning on this, but we need to pick a direction. If we're going 
to redesign the API and get things right, then lets decide to do that and 
re-open WebWork to bug fixes and more releases in the meantime. Either way I'd 
like to push some of this stuff into XWork, not just leave it in SAF2.
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=57075#57075


-
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: [action2] Public API first draft

2006-05-04 Thread Don Brown

Bob Lee wrote:

o.a.s.action2 - I'd like to hear the design reasoning behind the
Messages changes.  I liked the use of Maps in the XWork design as it
made it easier to work with.  On the other hand, encapsulating message
operations in the Messages object does reduce the number of
message-handling methods required.  Perhaps Messages could extend Map?
 Also, I agree we should continue to support plain Messages, as not
all apps need to be localized.


- Passing in keys vs. actual messages - I think always passing in keys
is one thing Struts got right. Even if you only support one language,
abstracting messages out of your code is still a good practice.


It is generally possible to do both, perhaps through a configuration switch that 
controls whether to report errors on missing message keys or to treat them as 
the message.



- This design doesn't force inheritance. Notice we don't have
ActionSupport anymore? If users still want to have the implicit
methods, they can statically import them from a support class. The
support class implementation would look up the thread local Request
and delegate to it. I didn't add this yet because I'm not sure if we
really need it.


I agree that we should move away from basically requiring ActionSupport to be 
extended, which is why I was wondering about the possibility of moving those 
*Aware interfaces over to Request to decorate the Request instance.



- In the old design, messages were scoped to an action which doesn't
work very well when you're chaining and you want to display all the
errors from all the actions. I think we want messages to be scoped to
the request (i.e. spanning multiple actions). We actually use our own
message handling and ignore WebWork's at the moment.


Agreed.


- Regarding your Map comment, we've considered having
Messages.forFields() return a Map>. Would that
work? That would be identical to what WebWork supports today.


I'd like to see it implement Map directly, allowing you to treat it as a simple 
Map if your requirements are simple enough.  The use of standard collections is 
something I'd like to retain from WebWork 2.



I'm not sure I understand the separation of Validatable and
ErrorAware.  In particular, Validatable only has a validate() method
that returns void.  Is there really a case you want to validate, but
not have errors sent anywhere?  I think of the use case of plugging in
a different validation engine like commons-validator, and this
separation makes it harder.  Why not return Messages?


I've been thinking Validatable should extend ErrorAware, but I wanted
to see what you guys thought first. I don't like the idea of
validate() return Messages. I never liked the fact that I had to
create an errors object in Struts. I also want to be able to easily
add validation messages from setters (I like doing field level
validation in the setter and cross field validations in validate()).


I think Jason had a good observation here concerning ValidationContext.  I like 
having a context (or perhaps Request itself) that implements Error/MessageAware 
and have that passed around.  I agree the user shouldn't be creating this 
themselves.



o.a.s.action2.attribute - This is again a feature I'd like to hear the
design reasonings of.  I liked the previous use of Maps as they were
easy to test and pass around.  Maps can also be extended to provide
the automatic synchonrization feature talked about easily.


This is something I've been kicking around since generics came out.
Now that we have generics, it seems funny to be passing around a
heterogeneously typed map. The new way results in better type safety
and less code. Here are some examples for comparison:

Old way:

   public class OldWay implements SessionAware {

   static final String FOO_KEY = Foo.class.getName();

   Map session;

   public void setSession(Map session) {
   this.session = session;
   }

   public String execute() {
   Foo foo = (Foo) session.get(FOO_KEY);
   if (foo == null) {
   foo = new Foo();
   session.put(FOO_KEY, foo);
   }
   foo.doSomething();
   return SUCCESS;
   }
   }

New way:

   public class NewWay {

   Attribute fooAttribute = new
SessionAttribute(Foo.class.getName()) {
   protected Foo initialValue() {
   return new Foo();
   }
   };

   public String execute() {
   Foo foo = fooAttribute.get();
   foo.doSomething();
   return SUCCESS;
   }
   }

Testing is actually easier--it's easier to mock out Attribute than Map.

I also proposed an annotation based approach, but Patrick preferred
the attribute API. Here's how that could work:

   public class AnnotationWay {

   Foo foo;

   // result is stored on session, called after execute() but
before result.
   @SessionAttribute
   public Foo getFoo() {
   if (foo == null) {
   this.foo = new Foo();
 

Re: [action2] Public API first draft

2006-05-04 Thread Don Brown
I'm not quite ready for a vote on the API, because I think what we'd be voting 
on is still under active discussion.


We could decide under what criteria we will be evaluating these API changes.  I 
propose they be:


 1. Can we get a GA release out by August?
 2. Will at least WebWork 2 apps have an easy (as in hours, not days) 
transition?

I realize that might mean we have to put of some more drastic changes to the 
next release, and it may result in some compromises, but in the end, I think it 
is more important to get a usable, timely release out to our users, and ensure 
their migration will be smooth.  Migration, in particular, is a key concern 
because it is an important advantage we could hold, as other frameworks tend to 
require a complete redesign and re-education of developers.  I want Struts 
Action Framework 2 to be seen as easy and powerful, not just from a feature 
standpoint, but also migration, education, and "conceptual space" one.


This doesn't preclude making sweeping API changes that the average users either 
won't see or aren't noticed since the old objects/interfaces still work 
correctly.  The question then becomes one of energy available to offset new 
changes with proper backwards-compatibility support.


Struts users have been looking for a smooth transition to next-generation 
technologies for some time now, and I think we've let them down.  It is time to 
deliver.


Don

Gabe wrote:

I agree both that this is the core decision that has to be made now and that we 
should push some of this stuff into XWork.

I won't vote though, because I've learned we're discussing not voting :-D

- Original Message 
From: Jason Carreira <[EMAIL PROTECTED]>
To: dev@struts.apache.org
Sent: Thursday, May 4, 2006 4:52:48 PM
Subject: Re: [action2] Public API first draft


I think this is the core decision that needs to be made right now. I'm not sure 
which way I'm leaning on this, but we need to pick a direction. If we're going 
to redesign the API and get things right, then lets decide to do that and 
re-open WebWork to bug fixes and more releases in the meantime. Either way I'd 
like to push some of this stuff into XWork, not just leave it in SAF2.
-
Posted via Jive Forums
http://forums.opensymphony.com/thread.jspa?threadID=29317&messageID=57075#57075


-
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]



[action2] Leveraging known constructs (was Public API first draft)

2006-05-04 Thread Don Brown

Don Brown wrote:
re-education of developers.  I want Struts Action Framework 2 to be seen 
as easy and powerful, not just from a feature standpoint, but also 
migration, education, and "conceptual space" one.


I was talking to Eric on the ww dev chat, and he brought up a good point that 
resonated with me: we should be leveraging more known, common constructs in 
developing this API.


For example, the Messages object, rather than leverage the familiar Log 
interface we all use every day.  Messages are collected, much like logging 
messages and their levels are similar.  Therefore, we'd have:


msgs.info("some.key");
msgs.warn("some.warn.key");
msgs.error("some.error.key");

We'd still keep the four different versions of the add function to handle field 
errors and parameters.  Furthermore, Messages could implement Collection and 
Map, allowing it to be treated easily by existing tags and code built to handle 
these common constructs.


Yes, this adds more methods but the value to the developer, I think, is worth 
it.  I'd rather error on the side of making our job harder than require more 
work and learning on the part of the end developer.  Martin Fowler calls it a 
Humane Interface pattern [1], and while I don't completely agree with that 
pattern (78 methods for a List?!), I do think we should be designing from the 
standpoint of the end developer, not from the framework developer.  Let's make 
Struts Action 2 powerful, easy, and even _intuitive_.


Don

[1] http://www.martinfowler.com/bliki/HumaneInterface.html

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



Re: [action2] Leveraging known constructs (was Public API first draft)

2006-05-04 Thread Bob Lee

I don't think it's a question of making things easier for the user or not
vs. our effort.

Are you saying you want arbitrary levels for messages (a la JSF)?

Bob

On 5/4/06, Don Brown <[EMAIL PROTECTED]> wrote:

Don Brown wrote:
> re-education of developers.  I want Struts Action Framework 2 to be seen
> as easy and powerful, not just from a feature standpoint, but also
> migration, education, and "conceptual space" one.

I was talking to Eric on the ww dev chat, and he brought up a good point

that

resonated with me: we should be leveraging more known, common constructs

in

developing this API.

For example, the Messages object, rather than leverage the familiar Log
interface we all use every day.  Messages are collected, much like logging
messages and their levels are similar.  Therefore, we'd have:

msgs.info("some.key");
msgs.warn("some.warn.key");
msgs.error("some.error.key");

We'd still keep the four different versions of the add function to handle

field

errors and parameters.  Furthermore, Messages could implement Collection

and

Map, allowing it to be treated easily by existing tags and code built to

handle

these common constructs.

Yes, this adds more methods but the value to the developer, I think, is

worth

it.  I'd rather error on the side of making our job harder than require

more

work and learning on the part of the end developer.  Martin Fowler calls

it a

Humane Interface pattern [1], and while I don't completely agree with that
pattern (78 methods for a List?!), I do think we should be designing from

the

standpoint of the end developer, not from the framework developer.  Let's

make

Struts Action 2 powerful, easy, and even _intuitive_.

Don

[1] http://www.martinfowler.com/bliki/HumaneInterface.html

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




TestGen4Web (was: Re: svn commit: r399762 - in /struts/action/trunk/integration/tg4w: ...)

2006-05-04 Thread Wendy Smoak

On 5/4/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:


I still need to provide detailed instructions (ya, it's on my todo list :) ),
but basically, just do this:
 - build and deploy the struts-blank.war sample app


   ~/svn/struts/current/action/apps/blank
   $ mvn package cargo:start

(This will package and deploy struts-blank on localhost:8080.
It assumes you have run 'mvn install' once from the top to buildthe
jars, and that  cargo.tomcat5x.home is set.  See the
StrutsMaintenanceMaven wiki page for more info.)

Then in another console window:


 - cd to this dir
 - $mvn test


I tried...

~/svn/struts/current/action/integration/tg4w
$ mvn test
...
[ERROR] BUILD ERROR
[INFO] 
[INFO] Failed to resolve artifact.

Missing:
--
1) com.spikesource:testgen4web-translator:jar:0.3-SNAPSHOT

Fix: Add your m2 repo in / in addition to
the existing .  (I tried it without the 
but I got a different error.)


You'll see the dependencies downloaded and the test generated and run.
You'll also see the output as the test proceeds (assertions, etc), which
 is part of the underlying TestGen4Web sysouts.


I see "skip testing for title!" in the output [1].  It doesn't appear
to be checking-- I changed the blank-verify-welcome.xml file to the
wrong title, and the test still passes.

Thanks. :)

[1] http://wiki.wsmoak.net/cgi-bin/wiki.pl?TestGen4Web/Output

--
Wendy

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



Re: Why vote twice for a release quality?

2006-05-04 Thread Ted Husted

I think the (B) vote is a copy-and-paste error. The form element was
introduced between 1.25 and 1.26, but its never been used. The (B)
lists are tasks that we only need to do after the quality is
determined to be GA, so the one-and-only vote comes in the middle.

-Ted.

On 5/4/06, Don Brown <[EMAIL PROTECTED]> wrote:

I'm preparing to draw the Struts Action 1.3.2 release quality vote to a close,
but as I look at the release plan, I see it has us voting twice on the same
release for the same quality vote (vote a and b).  Why is this?  Seems to me one
vote should be plenty.

Don

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





--
HTH, Ted.
** http://www.husted.com/ted/blog/

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



Re: [VOTE] Release the struts-parent pom v2

2006-05-04 Thread Sean Schofield

+1

On 5/3/06, Wendy Smoak <[EMAIL PROTECTED]> wrote:

We need to release version 2 of the struts-parent pom:

 * http://svn.apache.org/repos/asf/struts/maven/trunk/pom/pom.xml

This is the parent pom from which struts-action-parent inherits, and
it needs to be released prior to the Struts Action 1.3.3 test build.

Changes since v1 include:
 - Addition of the issues and commits mailing lists
 - New PMC members Sean and Greg

Once again I need to shorten the vote period in order to get this
published in advance of the test build.  Sorry, I'll start earlier
next time. :)  The vote will close in 48 hours, on Friday at 8:30 pm
PST (GMT -7).

Here's my +1.

--
Wendy

-
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: [action2] Leveraging known constructs (was Public API first draft)

2006-05-04 Thread Eric Molitor

The new Messages API could easily be mapped onto an implementation
similar to that of Log4J. Why not embrace that idea and utilize
familiar methods to provide access.

such as...
msgs.info("some.key");
msgs.warn("some.warn.key");
msgs.error("some.error.key");

It does increase the number of methods but the argument is that the
familiarity outweighs the effort of adding those methods. By default
it only provides a small set of fixed levels, however custom levels
should be easy to implement. I would even argue having a limited set
of built in levels actually makes things easier for new developers.

There are a few APIs that are known to almost all developers. By
embracing a similar API a sense of familiarity is provided that should
ease adoption and understanding. That's my rational at least and it
usually serves me well.

Cheers,
  Eric

On 5/4/06, Bob Lee <[EMAIL PROTECTED]> wrote:

I don't think it's a question of making things easier for the user or not
vs. our effort.

Are you saying you want arbitrary levels for messages (a la JSF)?

Bob

On 5/4/06, Don Brown <[EMAIL PROTECTED]> wrote:
> Don Brown wrote:
> > re-education of developers.  I want Struts Action Framework 2 to be seen
> > as easy and powerful, not just from a feature standpoint, but also
> > migration, education, and "conceptual space" one.
>
> I was talking to Eric on the ww dev chat, and he brought up a good point
that
> resonated with me: we should be leveraging more known, common constructs
in
> developing this API.
>
> For example, the Messages object, rather than leverage the familiar Log
> interface we all use every day.  Messages are collected, much like logging
> messages and their levels are similar.  Therefore, we'd have:
>
> msgs.info("some.key");
> msgs.warn("some.warn.key");
> msgs.error("some.error.key");
>
> We'd still keep the four different versions of the add function to handle
field
> errors and parameters.  Furthermore, Messages could implement Collection
and
> Map, allowing it to be treated easily by existing tags and code built to
handle
> these common constructs.
>
> Yes, this adds more methods but the value to the developer, I think, is
worth
> it.  I'd rather error on the side of making our job harder than require
more
> work and learning on the part of the end developer.  Martin Fowler calls
it a
> Humane Interface pattern [1], and while I don't completely agree with that
> pattern (78 methods for a List?!), I do think we should be designing from
the
> standpoint of the end developer, not from the framework developer.  Let's
make
> Struts Action 2 powerful, easy, and even _intuitive_.
>
> Don
>
> [1] http://www.martinfowler.com/bliki/HumaneInterface.html
>
> -
> 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: TestGen4Web (was: Re: svn commit: r399762 - in /struts/action/trunk/integration/tg4w: ...)

2006-05-04 Thread James Mitchell
Looks as though the velocity template isn't quite finished, so I'm  
going to help out the friendly folks at spikesource and make the  
changes myself.


I'll post back with an update as soon as its ready.  Oh, and thanks  
for trying this.


--
James Mitchell




On May 4, 2006, at 8:00 PM, Wendy Smoak wrote:


On 5/4/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:

I still need to provide detailed instructions (ya, it's on my todo  
list :) ),

but basically, just do this:
 - build and deploy the struts-blank.war sample app


   ~/svn/struts/current/action/apps/blank
   $ mvn package cargo:start

(This will package and deploy struts-blank on localhost:8080.
It assumes you have run 'mvn install' once from the top to buildthe
jars, and that  cargo.tomcat5x.home is set.  See the
StrutsMaintenanceMaven wiki page for more info.)

Then in another console window:


 - cd to this dir
 - $mvn test


I tried...

~/svn/struts/current/action/integration/tg4w
$ mvn test
...
[ERROR] BUILD ERROR
[INFO]  
-- 
--

[INFO] Failed to resolve artifact.

Missing:
--
1) com.spikesource:testgen4web-translator:jar:0.3-SNAPSHOT

Fix: Add your m2 repo in / in addition to
the existing .  (I tried it without the 
but I got a different error.)

You'll see the dependencies downloaded and the test generated and  
run.
You'll also see the output as the test proceeds (assertions, etc),  
which

 is part of the underlying TestGen4Web sysouts.


I see "skip testing for title!" in the output [1].  It doesn't appear
to be checking-- I changed the blank-verify-welcome.xml file to the
wrong title, and the test still passes.

Thanks. :)

[1] http://wiki.wsmoak.net/cgi-bin/wiki.pl?TestGen4Web/Output

--
Wendy

-
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: [action2] Leveraging known constructs (was Public API first draft)

2006-05-04 Thread Don Brown
Here is what I'm talking about: 
http://people.apache.org/~mrdon/action2-api-don/org/apache/struts/action2/Messages.html


This approach has the advantages of closely following the familiar Log 
interface, and by leveraging the List and Map interfaces, makes it easy 
to manipulate and access data from any tag or expression language that 
supports collections.  On the other hand, it doesn't support arbitrary 
message types, and would require a number of methods in an 
implementation class.  This is what I meant when I said this approach 
favors end user convenience over framework developer maintenance.  I'm 
not saying the List and Map interfaces are better designed than what we 
could come up with here, but they are what developers know and feel 
confortable with, so perhaps we should leverage that.


Personally, I've never had a need for any other types of messages other 
than info, warn, and error, but I could be in the minority here.


Don

Bob Lee wrote:

I don't think it's a question of making things easier for the user or not
vs. our effort.

Are you saying you want arbitrary levels for messages (a la JSF)?

Bob

On 5/4/06, Don Brown <[EMAIL PROTECTED]> wrote:

Don Brown wrote:
> re-education of developers.  I want Struts Action Framework 2 to be 
seen

> as easy and powerful, not just from a feature standpoint, but also
> migration, education, and "conceptual space" one.

I was talking to Eric on the ww dev chat, and he brought up a good point

that

resonated with me: we should be leveraging more known, common constructs

in

developing this API.

For example, the Messages object, rather than leverage the familiar Log
interface we all use every day.  Messages are collected, much like 
logging

messages and their levels are similar.  Therefore, we'd have:

msgs.info("some.key");
msgs.warn("some.warn.key");
msgs.error("some.error.key");

We'd still keep the four different versions of the add function to 
handle

field

errors and parameters.  Furthermore, Messages could implement Collection

and

Map, allowing it to be treated easily by existing tags and code built to

handle

these common constructs.

Yes, this adds more methods but the value to the developer, I think, is

worth

it.  I'd rather error on the side of making our job harder than require

more

work and learning on the part of the end developer.  Martin Fowler calls

it a
Humane Interface pattern [1], and while I don't completely agree with 
that
pattern (78 methods for a List?!), I do think we should be designing 
from

the
standpoint of the end developer, not from the framework developer.  
Let's

make

Struts Action 2 powerful, easy, and even _intuitive_.

Don

[1] http://www.martinfowler.com/bliki/HumaneInterface.html

-
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]