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 TedHusted:
http://wiki.apache.org/struts/RoughSpots

The comment on the change is:
Sorry for the late additions; I reviewed the page again for the release plan.

------------------------------------------------------------------------------
  Some things that could be addresssed before Action 2.0.0. (If we don't 
address them, we'll be stuck supporting them throughout all eternity or until 
Struts 3.0.0, whichever comes first. ;))
  
+  * [Ted] Action 3.0 doesn't have to be far away. It could be phase two, and 
ship as soon as we want to write it. 
+ 
- We have a small number of existing !WebWork users compared to the number of 
Struts users we'll (hopefully) eventually have. This is a new framework (if 
only in name) and a major release. This is our one chance to break 
compatibility. We must get it right now, because we will *not* be able to fix 
most of these problems later (the cost of breaking existing Struts users will 
almost always outweigh the value of the fix).
+ We have a small number of existing !WebWork users compared to the number of 
Struts users we'll (hopefully) eventually have. This is a new framework (if 
only in name) and a major release. This is our one chance to break 
compatibility. We must get it right now, because we will *not* be able to fix 
most of these problems later (the cost of breaking existing Struts users will 
almost always outweigh the value of the fix). 
+ 
+  * [Ted] Hopefully, there will always be new major releases and new chances 
to break compatability. I would also hope any change we make will pay for 
itself by increasing future usability. Since each team will absorb the cost of 
their own changes, these types of costs will always scale. The relative cost 
for ten teams is not more than the relative cost for ten thousand teams, since 
each team pays their own way. Likewise, each team will receive a payback in 
future productivity, and so each team will receive the net gain. Of coure, 
there can be an economy in clustering changes, so certain changes can be made 
together, so sooner can be better. I doubt that there will be a stampede of 
people migrating the day we roll 2.0.0. My expectation would be that it would 
be at leaset six months or a year after the initial release of SAF2 before a 
majority of teams start to migrate, giving us time for additional, incremental 
releases. But, I am on board for whatever set of changes we can 
 make and have ready to roll by August.
  
  We do not need to expose Struts users to XWork; they do not care. At the very 
least we should build a thin abstraction layer to isolate users from XWork. 
XWork should be an implementation detail not part of the SAF API. We can make 
most of the following changes in SAF's abstraction layer and avoid breaking 
existing XWork users. 
+ 
+  * [Ted] To an extent this is true. OTOH, XWork might make a very nice 
business facade for a lot of applications. 
  
    1. Looking up a `ResultConfig` should be a one-liner. Right now we have to: 
{{{
  ActionConfig config = invocation.getProxy().getConfig();
@@ -263, +269 @@

  
    1. Do we want `ValidationAware` (or its equivalent) to take message keys or 
actual messages. It takes the actual messages in WW2. `ActionMessages` in 
Struts takes keys. I'm a fan of keys; we would no longer need `TextProvider`. 
Pat suggested we take keys, and in the event that we don't find a message for 
the given key, pass the key along as the message. I think I'd rather fail fast.
      * [mrdon] Keys are fine, as long as you can do parameter replacement 
easily enough later.  Not all apps need L18N, so I'm kinda against the fail 
fast.  Perhaps in devMode, we add a clear warning?
+     * [Ted] Having lived with keys-only for all these years, I like the idea 
of being able to use either literals or keys.
  
    1. Craig McC mentioned that we might want to use this in a portlet. Does 
this mean I should completely abstract us from 
`HttpServletRequest`/`PortletRequest`?
      * [mrdon] +1, at least in some form.  This was the goal of the generic 
ActionContext, I believe.  Cocoon has been struggling with the same issue, and 
they are leaning towards implementing the HttpServletRequest, et al with a 
portlet impl to solve this problem.  They used to have this generic 
"Environment" api, but they are in the process of giving that up, I believe, 
favoring this servlet api approach.  I wonder if we shouldn't find out more 
about their results and adopt them.
@@ -437, +444 @@

     <result name="input">addPerson.jsp</result>
  </action>}}}The ValidationInterceptor should still cause an input result to 
occur but if we make it through to invoking the action and there is no execute 
method we return the value of the configured assumed result.
  
+    * [Ted] The use case seems to be a POJO Action method. But, if the method 
(AddPerson) is truly POJO, then what value can it add? If it doesn't know the 
framework exists, then it can't utiize the runtime data. If the class does know 
the framework exists, why not have a helper method return SUCCESS. If there is 
a use case for calling a framework-aware "void" method, then if the "action" 
returns void, the framework could seek the default result (the one with no 
name) and obviate the annotation. 
+ 
    1. When an action returns `LOGIN`, save the request in the session (even 
POSTs) and enable the user to re-execute it after login.
+ 
+ == Ted's Issues ===
+ 
+   1. Combine configuration DTDs so that Actions, Messages, and Validators can 
be defined as a single file or in a set of homogenous files. ("One config to 
map them all.") 
+ 
+   1. Change the default for the <form> tag to "POST" (rather than "GET").
  
  == What JDK Version? ==
  

Reply via email to