RE: [OS-webwork] Xwork configuration update

2003-01-28 Thread Jason Carreira
 
 Can a stack reference a stack? It is sometimes nice of actions could 
 refer to default which in turn could refer to either 
 defaultStack or 
 defaultDebug. Actions then refer to default and can be switched 
 between production and debug simply by editing the debug 
 interceptor 
 stack reference.

Yep. See the example config file. Interceptor instances and stacks are
saved in the same Map, so either can be referenced the same way. Only
one thing, either an Interceptor instance or a stack, can be referenced
by one name, though. 
 


---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork



[OS-webwork] Xwork configuration update

2003-01-27 Thread Jason Carreira
I've checked in some new Xwork configuration code. Here's the test
xwork.xml file:

xwork
package name=default
result-types
result-type name=chain
class=com.opensymphony.xwork.ActionChainResult/
/result-types

interceptors
interceptor name=timer
class=com.opensymphony.xwork.interceptor.TimerInterceptor/
interceptor name=logger
class=com.opensymphony.xwork.interceptor.LoggingInterceptor/
interceptor name=chain
class=com.opensymphony.xwork.interceptor.ChainingInterceptor/
interceptor name=params
class=com.opensymphony.xwork.interceptor.ParametersInterceptor/
interceptor name=static-params
class=com.opensymphony.xwork.interceptor.StaticParametersInterceptor/
interceptor name=component
class=com.opensymphony.xwork.interceptor.component.ComponentInterceptor
/
interceptor name=result
class=com.opensymphony.xwork.interceptor.ResultInterceptor/
interceptor name=stack
class=com.opensymphony.xwork.interceptor.StackInterceptor/

interceptor-stack name=defaultStack
interceptor-ref name=result/
interceptor-ref name=static-params/
interceptor-ref name=params/
interceptor-ref name=stack/
/interceptor-stack

interceptor-stack name=debugStack
interceptor-ref name=timer/
interceptor-ref name=logger/
/interceptor-stack
/interceptors

action name=Foo class=com.opensymphony.xwork.SimpleAction
action-params
param name=foo17/param
param name=bar23/param
/action-params
result name=success type=chain
param name=actionNameBar/param
/result
interceptor-ref name=debugStack/
interceptor-ref name=defaultStack/
/action
/package

package name=bar extends=default namespace=/foo/bar
interceptors
interceptor-stack name=barDefaultStack
interceptor-ref name=debugStack/
interceptor-ref name=defaultStack/
/interceptor-stack
/interceptors

action name=Bar class=com.opensymphony.xwork.SimpleAction
interceptor-ref name=barDefaultStack/
/action
/package
/xwork

Here you can see that I've implemented Rickard's ideas (see
http://www.opensymphony.com:8668/space/RickardXWorkThoughts). 

1) Packages - All configuration settings are in a package. Result types,
interceptors, and actions are all package context specific, no more
global settings (unless you have a default package and have your other
packages extend it). Result, Interceptor, and Action configurations are
inherited by packages which extend another package, such as package
bar above, which extends default. 

2) Interceptor stacks - Make it easier to have sets of interceptors you
apply together in a certain order. These are also inherited as part of
the interceptor definition inheritance. Essentially these are just name
mappings to lists of interceptors instead of one Interceptor.

3)Namespaces - a new idea of mine, this allows actions to be aliased
with the same name, providing they are in different namespaces. With the
ServletDispatcher, this equates to the path before the action name,
which will allow for J2EE declarative security. Namespaces are optional
attributes of package definitions and, if excluded, defaults to . If
the action configuration is not found with the supplied namespace, the
 namespace is checked as the default namespace, which makes it work
like we have now (any path works, you get the action aliased with the
name).

Check out the code in the sandbox in CVS.

Jason

--
Jason Carreira
Technical Architect, Notiva Corp.
phone:  585.240.2793
  fax:  585.272.8118
email:  [EMAIL PROTECTED]
---
Notiva - optimizing trade relationships (tm)
 


---
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
___
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork