[Actionframework-users] Roadmap
Status: Inactive
Brought to you by:
ptoman
|
From: Petr T. <cz5...@ti...> - 2002-09-20 06:14:56
|
Hello everyone,
I think now it is the right time to discuss the future. I (re)collected
my ideas and plans (some had been already posted in "Proposals for 0.94"
thread) and here is the result is below (will be added to www).
Todo for 0.93.1c/0.93.2c (bugfix release: end of September)
------------------------
[ ] this could be the last bugfix release before I start working on 0.94
Todo for 0.94 ("orthogonality" release: 1st half of October)
-------------
[ ] add ActionServlet.destroyComponent(String componentName) method
[ ] add ActionServlet.getTypeHandler(Class srcType, Class targetType) met=
hod
[ ] add BaseCompositeHandler + javadoc org.actionframework.th package
[ ] allow <type-handler> element nested in <input-variable> of <action>
(to allow explicit selection of type handler)
<action name=3D"/actionA" method=3D"methodA(java.util.List listA)">
<input-variable name=3D"listA" value=3D"roleUids[]">
<type-handler class=3D"my.specific.Handler"/>
</input-variable>
<on-return value=3D"void" show-template=3D"someTemplate.wm"/>
</action>
[ ] enable <on-exception>s common to all components
[ ] allow arbitrary order of <output-variabele>s and <invoke>s inside
<template>, <on-return> and <exception>
[ ] put $REQUEST, $RESPONSE into Context by default
(note: do not add getRequest() and getResponse() methods to Context
because on client side there will be no HTTP request/response)=
[ ] add new <on-new-session> element - allowing 'show-url' redirect
(ensure $SERVLET, $URL and $CONTEXT are set before processing it!)
[ ] allow evaluation of 'show-url' directly, not only through <output-var=
iable>
[ ] evaluate values of show-template=3D"$currentPage" attribute
[ ] enable <property> values like:
<property name=3D"SomeProperty" value=3D"$xyz">
<input-variable name=3D"xyz" component=3D"Comp" value=3D"getValue(=
)"/>
</property>
- requires also to change return type of ActionServlet.getProperty()
[ ] introduce <validate> element - for parameter validation:
<action name=3D"/myAction1" method=3D"method1(String str, int value)"=
>
<validate class=3D"my.Validator1" variables=3D"str"/>
</action>
<action name=3D"/myAction2" method=3D"method2(String str, int value)"=
>
<validate class=3D"my.Validator2" variables=3D"str, value"/>
</action>
[ ] allow <template> names containing regexps, so that <output-variable>s=
can be set for several templates in one place
[ ] allow new <template-ref name=3D"template.wm"> element nested in <temp=
late>
(will enable nesting of templates)
[ ] allow invocation of static methods of components in <in/out-variable>=
s
[ ] owerwiting of tmp uploaded files -> update multipartrequest.jar to 1.=
30
[ ] add optional type=3D"GET/POST" attribute for <action> to allow select=
ion
of
action based on the type of request -> also change AS methods that ha=
ve
'form' parameter (beforeInvoke(), invokeMethod() etc.) - example:
beforeInvoke(Context context, String form, String action, Object[] pa=
rams)
// would change to:
beforeInvoke(Context context, String type, String action, Object[] pa=
rams)
Values of 'form' and 'action' will be concatenated by '.':
form=3D"form1", action=3D"submit" -> action value would be "form1.sub=
mit"
[ ] ConversionException should be also processable by <on-exception> elem=
ent
Todo for 0.95 ("programmatic ActionConfig" release: October)
-------------
[ ] API for ActionConfig (support for multiple/programmatic configuration=
)
[ ] replace ActionServlet.getActionMethod() by config.getAction().getMeth=
od()?
[ ] add getVersion(), getAction() methods to Context
[ ] some ActionConfig error messages don't indicate line number - ex: "Er=
ror
while parsing action method definition; nested exception is:
java.text.ParseException: Unknown parameter type '$userName' in actio=
n
definition: 'getReservations($userName)'"
[ ] implement <pre-condition>s (nested in <action>) - example:
<pre-condition if=3D"$var" show-template=3D"loggedIn.wm">
<input-variable name=3D"var" component=3D"auth" value=3D"isLoggedI=
n()"/>
</pre-condition>
<pre-condition if=3D"!$REQUEST.isSecure()" show-url=3D"https:/$SERLVE=
T"/>
<pre-condition if=3D"!$REQUEST.isSecure()">
<invoke component=3D"counter" method=3D"incNumberOfInsecureCalls()=
"/>
<invoke component=3D"counter" method=3D"incNumberOfErrors()"/>
</pre-condition>
<pre-condition if=3D"!$REQUEST.isSecure()">
<invoke component=3D"Authenticator" method=3D"isLoggedIn()"/>
<on-return value=3D"true" show-template=3D"HttpsRequiredError.w=
m">
</invoke>
</pre-condition>
<pre-condition>s may be defined for:
- all components (inside <components>)
- all actions of one component (inside <component>)
- single action (inside <action>)
Todo for 0.96 ("pluggable template engine" release: November)
-------------
[ ] reimplement In/OutputVars - will remove dependency on Velocity/WebMac=
ro
[ ] add <in/output-variable> attribute 'type' - to set var type manually
[ ] make pluggable parser API public
[ ] JSP and FreeMarker engine support
Todo for 0.97 ("ActionController" release: December)
-------------
[ ] introduce ActionController interface - will make Actionframework
usage possible for client side development
Todo (not yet scheduled)
------------------------
[ ] enable passing of all incomming HTTP/URL parameters between requests
(=3D put all HTTP/URL parameters into Context)
[ ] include error.wm/.vm in ActionServlet.jar - will be used if not found=
in
template path
[ ] examples configuration + out-of-box ant task for Jetty
(problem: Jetty does not work on path with spaces)
[ ] reload components if ActionConfig changes
[ ] allow accessing ActionServlet.getComponent() via JNDI context
[ ] write better Tutorial describing all features step by step
[ ] enable forwarding actions? (may be now solved by URL redirecting)
[ ] standardize "connector architecture" -> publish ParameterRetrievers
API (AS will be able to handle requests from different sources -
RMI/miniRMI/Corba/POP3/SOAP,...)
[ ] template postprocessing (XSL/VSL)
---
Release dates are just rough estimates. I'm awaiting your comments and su=
ggestions!
:)
Petr
[ http://dione.zcu.cz/~toman40 - Pet...@pi... - ICQ=3D22957959 ]
_________________________________________________________________
Chcete v=ECd=ECt jak=E9 to je m=EDt =B9est jazyk=F9? Zkuste to na http://=
slovnik.tiscali.cz
|