|
From: Keith D. <ke...@in...> - 2005-03-17 02:31:11
|
Hey guys,
=20
I=92ve been working on adding a good deal of new stuff to web flow as a =
result
of good feedback from TSSJS. Happy to say it is now at a state ready =
for
you guys to review again. I just got the Phonebook sample app in
samples/webflow/phonebook back working this evening.
=20
Here=92s the scoop on new stuff:
=20
- Flow execution event processing is now fully decoupled from the HTTP
servlet request and response objects. This makes it possible for =
clients in
different environments to start new flow executions, and signal events =
in
ongoing flow executions. I would now expect integration with other
frameworks/technologies like Tapestry, JSF, Beehive, Porlets, etc. to be
straightforward. To get you an idea of the differences, previously the
central client fa=E7ade interface for managing a single executing flow =
looked
like:
=20
public interface FlowExecution {
public ModelAndView start(HttpServletRequest request, HttpServletRequest
response, Map input); =20
public ModelAndView signalEvent(String eventId, String stateId,
HttpServletRequest request, HttpServletRequest response);
}
=20
Now it looks like:
=20
public interface FlowExecution {
public ViewDescriptor start(Event startingEvent); =20
public ViewDescriptor signalEvent(event);
}
=20
I think this is a good deal better. To define a different source of an
event (e.g HttpServletRequestEvent, FacesEvent, etc.), create a custom =
event
subclass. Note: ModelAndView was changed to ViewDescriptor to remove =
the
dependency on spring mvc (as that was the ONLY dependency, and didn=92t =
seem
worth it.)
=20
- With this change, a =93FlowExecutionContext=94 object has been =
introduced. It
is now the central object passed to most user-implemented constructs in =
the
system, for accessing contextual information about the ongoing flow
execution. Constructs effected include things like flow Actions (to =
bridge
between the web tier and the middle tier) and conditional transitions =
(to
effect the path through a flow dynamically based on context.)
=20
So for example, previously the Action interface looked like:
=20
public interface Action {
public String execute(HttpServletRequest =
request,
HttpServletRequest response, MutableFlowModel model);
}
=20
It now looks like:
=20
public interface Action {
public Event execute(FlowExecutionContext =
context);
}
=20
The new sig is good deal cleaner. The context object provides access to =
a
requestScope() and a flowScope(), for storing and reasoning on arbitrary
model data in different scopes. You can now access a good deal more
contextual information about the lifecycle of the flow execution with =
this
object. Note: Action returns an =93Event=94 object now for consistency, =
instead
of a String, to signal the result of action execution.
=20
- Conditional transitions are another new feature that we expect to =
further
enhance upon before the preview release. Previously, you could define a
custom condition to determine, given the occurrence of an event in a =
state
of the flow, what state to go to next. But you couldn=92t really take =
into
account additional contextual information (like arbitrary event =
parameters,
or data in request or flow scope, for example.) Now transitional
expressions have full-access to the FlowExecutionContext, which gives =
them a
lot more to reason on to make dynamic state transition decisions. For
example, something like: if ${order.price} > 5K} spawn the =93big order =
flow=94,
else continue in the regular order processing flow.
=20
Now we want to expand on the above, to include declarative transition
expressions in the flow definition DTD using something like OGNL. =
Currently
you can only define rich expressions programmatically (which is fine, =
but
OGNL support would be sweet.)
=20
Those are the central new features (in addition to the instantiation &
autowiring capability I noted yesterday for Actions). The http request
decoupling was the biggie. I just finished getting javadocs back up to
date, and tests are finally also back in line. Next up is wiki docs ;-)
=20
So give it a go and let me know what you think! We want a =
stable-as-possible
preview release real soon!
Keith
=20
=20
=20
=20
|
|
From: Rob H. <ro...@ca...> - 2005-03-17 04:55:42
|
Looking good Keith - these improvements should really consolidate the
web flow framework. When I get back home, I'll spend some time looking
at the OGNL integration if you haven't already done it by then.
Rob
Keith Donald wrote:
> Hey guys,
>
> I’ve been working on adding a good deal of new stuff to web flow as a
> result of good feedback from TSSJS. Happy to say it is now at a state
> ready for you guys to review again. I just got the Phonebook sample
> app in samples/webflow/phonebook back working this evening.
>
> Here’s the scoop on new stuff:
>
> - Flow execution event processing is now fully decoupled from the HTTP
> servlet request and response objects. This makes it possible for
> clients in different environments to start new flow executions, and
> signal events in ongoing flow executions. I would now expect
> integration with other frameworks/technologies like Tapestry, JSF,
> Beehive, Porlets, etc. to be straightforward. To get you an idea of
> the differences, previously the central client façade interface for
> managing a single executing flow looked like:
>
> public interface FlowExecution {
>
> public ModelAndView start(HttpServletRequest request,
> HttpServletRequest response, Map input);
>
> public ModelAndView signalEvent(String eventId, String stateId,
> HttpServletRequest request, HttpServletRequest response);
>
> }
>
> Now it looks like:
>
> public interface FlowExecution {
>
> public ViewDescriptor start(Event startingEvent);
>
> public ViewDescriptor signalEvent(event);
>
> }
>
> I think this is a good deal better. To define a different source of an
> event (e.g HttpServletRequestEvent, FacesEvent, etc.), create a custom
> event subclass. Note: ModelAndView was changed to ViewDescriptor to
> remove the dependency on spring mvc (as that was the ONLY dependency,
> and didn’t seem worth it.)
>
> - With this change, a “FlowExecutionContext” object has been
> introduced. It is now the central object passed to most
> user-implemented constructs in the system, for accessing contextual
> information about the ongoing flow execution. Constructs effected
> include things like flow Actions (to bridge between the web tier and
> the middle tier) and conditional transitions (to effect the path
> through a flow dynamically based on context.)
>
> So for example, previously the Action interface looked like:
>
> public interface Action {
>
> public String execute(HttpServletRequest request, HttpServletRequest
> response, MutableFlowModel model);
>
> }
>
> It now looks like:
>
> public interface Action {
>
> public Event execute(FlowExecutionContext context);
>
> }
>
> The new sig is good deal cleaner. The context object provides access
> to a requestScope() and a flowScope(), for storing and reasoning on
> arbitrary model data in different scopes. You can now access a good
> deal more contextual information about the lifecycle of the flow
> execution with this object. Note: Action returns an “Event” object now
> for consistency, instead of a String, to signal the result of action
> execution.
>
> - Conditional transitions are another new feature that we expect to
> further enhance upon before the preview release. Previously, you could
> define a custom condition to determine, given the occurrence of an
> event in a state of the flow, what state to go to next. But you
> couldn’t really take into account additional contextual information
> (like arbitrary event parameters, or data in request or flow scope,
> for example.) Now transitional expressions have full-access to the
> FlowExecutionContext, which gives them a lot more to reason on to make
> dynamic state transition decisions. For example, something like: if
> ${order.price} > 5K} spawn the “big order flow”, else continue in the
> regular order processing flow.
>
> Now we want to expand on the above, to include declarative transition
> expressions in the flow definition DTD using something like OGNL.
> Currently you can only define rich expressions programmatically (which
> is fine, but OGNL support would be sweet.)
>
> Those are the central new features (in addition to the instantiation &
> autowiring capability I noted yesterday for Actions). The http request
> decoupling was the biggie. I just finished getting javadocs back up to
> date, and tests are finally also back in line. Next up is wiki docs ;-)
>
> So give it a go and let me know what you think! We want a
> stable-as-possible preview release real soon!
>
> Keith
>
|
|
From: Craig M. <cra...@gm...> - 2005-03-17 05:17:20
|
On Wed, 16 Mar 2005 21:31:09 -0500, Keith Donald <ke...@in...> wrote: > > > > Hey guys, > > > > I've been working on adding a good deal of new stuff to web flow as a result > of good feedback from TSSJS. Happy to say it is now at a state ready for > you guys to review again. I just got the Phonebook sample app in > samples/webflow/phonebook back working this evening. > <delurk> After seeing Keith's description of WebFlow at TSSJS, I was quite excited about the prospect of integrating it with my Shale proposal for the future of Struts (<http://wiki.apache.org/struts/StrutsShale). These changes look like they will make life even easier for this use case ... look forward to being able to spend some time on it this weekend. </delurk> Craig McClanahan |
|
From: J.Enrique R. <er...@di...> - 2005-03-17 08:13:33
|
Hi Keith, I don't know if you have started a private thread, sorry
for my answer if it is true.
We are analyzing the web-flow to extend it for Portlets
API. The work to implement web-flow support for Portlet navigation
can be big and it allways remains as a patch (wrappers, duplicate code, e=
tc)
but with this refactor it can be simpler, cleanner and consistent. You
provide an unique solution for different frameworks. We think that this
refactor is a great idea.
The Conditional transitions is a great idea too, but consider not limit
it to OGNL, for example one can choose Jakarta-JEXL, you could consider
a way to set the condition interpreter bean.
Regards.
> Hey guys,
>
> =20
>
> I've been working on adding a good deal of new stuff to web flow as a=20
> result of good feedback from TSSJS. Happy to say it is now at a state=20
> ready for you guys to review again. I just got the Phonebook sample=20
> app in samples/webflow/phonebook back working this evening.
>
> =20
>
> Here's the scoop on new stuff:
>
> =20
>
> - Flow execution event processing is now fully decoupled from the HTTP=20
> servlet request and response objects. This makes it possible for=20
> clients in different environments to start new flow executions, and=20
> signal events in ongoing flow executions. I would now expect=20
> integration with other frameworks/technologies like Tapestry, JSF,=20
> Beehive, Porlets, etc. to be straightforward. To get you an idea of=20
> the differences, previously the central client fa=E7ade interface for=20
> managing a single executing flow looked like:
>
> =20
>
> public interface FlowExecution {
>
> public ModelAndView start(HttpServletRequest request,=20
> HttpServletRequest response, Map input); =20
>
> public ModelAndView signalEvent(String eventId, String stateId,=20
> HttpServletRequest request, HttpServletRequest response);
>
> }
>
> =20
>
> Now it looks like:
>
> =20
>
> public interface FlowExecution {
>
> public ViewDescriptor start(Event startingEvent); =20
>
> public ViewDescriptor signalEvent(event);
>
> }
>
> =20
>
> I think this is a good deal better. To define a different source of=20
> an event (e.g HttpServletRequestEvent, FacesEvent, etc.), create a=20
> custom event subclass. Note: ModelAndView was changed to=20
> ViewDescriptor to remove the dependency on spring mvc (as that was the=20
> ONLY dependency, and didn't seem worth it.)
>
> =20
>
> - With this change, a "FlowExecutionContext" object has been=20
> introduced. It is now the central object passed to most=20
> user-implemented constructs in the system, for accessing contextual=20
> information about the ongoing flow execution. Constructs effected=20
> include things like flow Actions (to bridge between the web tier and=20
> the middle tier) and conditional transitions (to effect the path=20
> through a flow dynamically based on context.)
>
> =20
>
> So for example, previously the Action interface looked like:
>
> =20
>
> public interface Action {
>
> public String execute(HttpServletRequest=20
> request, HttpServletRequest response, MutableFlowModel model);
>
> }
>
> =20
>
> It now looks like:
>
> =20
>
> public interface Action {
>
> public Event execute(FlowExecutionContext=20
> context);
>
> }
>
> =20
>
> The new sig is good deal cleaner. The context object provides access=20
> to a requestScope() and a flowScope(), for storing and reasoning on=20
> arbitrary model data in different scopes. You can now access a good=20
> deal more contextual information about the lifecycle of the flow=20
> execution with this object. Note: Action returns an "Event" object=20
> now for consistency, instead of a String, to signal the result of=20
> action execution.
>
> =20
>
> - Conditional transitions are another new feature that we expect to=20
> further enhance upon before the preview release. Previously, you=20
> could define a custom condition to determine, given the occurrence of=20
> an event in a state of the flow, what state to go to next. But you=20
> couldn't really take into account additional contextual information=20
> (like arbitrary event parameters, or data in request or flow scope,=20
> for example.) Now transitional expressions have full-access to the=20
> FlowExecutionContext, which gives them a lot more to reason on to make=20
> dynamic state transition decisions. For example, something like: if=20
> ${order.price} > 5K} spawn the "big order flow", else continue in the=20
> regular order processing flow.
>
> =20
>
> Now we want to expand on the above, to include declarative transition=20
> expressions in the flow definition DTD using something like OGNL.=20
> Currently you can only define rich expressions programmatically=20
> (which is fine, but OGNL support would be sweet.)
>
> =20
>
> Those are the central new features (in addition to the instantiation &=20
> autowiring capability I noted yesterday for Actions). The http request=20
> decoupling was the biggie. I just finished getting javadocs back up=20
> to date, and tests are finally also back in line. Next up is wiki=20
> docs ;-)
>
> =20
>
> So give it a go and let me know what you think! We want a=20
> stable-as-possible preview release real soon!
>
> Keith
>
>
--=20
J.Enrique Ruiz
Chief Research & Innovation Officer - DiSiD S.L.L. (http://www.disid.com)
Tel +34 655 407 965
Email: er...@di...
|
|
From: Keith D. <ke...@in...> - 2005-03-18 22:22:56
|
>The Conditional transitions is a great idea too, but consider not limit
>it to OGNL, for example one can choose Jakarta-JEXL, you could consider =
>a way to set the condition interpreter bean.
=20
I just committed some refining for the conditional transition support. =
The
core interface, TransitionCondition, is not tied to OGNL in any way. =
We=92ll
most likely have an OgnlTransitionCondition for OGNL-based expressions.
Similarly, you could have Jakarta-JEXL implementation.
=20
Looking forward to hearing more about how you leveraging web-flow in a
portlet environment!
=20
Keith
=20
_____ =20
From: spr...@li...
[mailto:spr...@li...] On Behalf =
Of
J.Enrique Ruiz
Sent: Thursday, March 17, 2005 3:14 AM
To: spr...@li...
Subject: Re: [Springframework-developer] webflow additions
=20
Hi Keith, I don't know if you have started a private thread, sorry=20
for my answer if it is true.
We are analyzing the web-flow to extend it for Portlets
API. The work to implement web-flow support for Portlet navigation=20
can be big and it allways remains as a patch (wrappers, duplicate code, =
etc)
but with this refactor it can be simpler, cleanner and consistent. You
provide an unique solution for different frameworks. We think that this
refactor is a great idea.
The Conditional transitions is a great idea too, but consider not limit
it to OGNL, for example one can choose Jakarta-JEXL, you could consider=20
a way to set the condition interpreter bean.
Regards.
Hey guys,
=20
I=92ve been working on adding a good deal of new stuff to web flow as a =
result
of good feedback from TSSJS. Happy to say it is now at a state ready =
for
you guys to review again. I just got the Phonebook sample app in
samples/webflow/phonebook back working this evening.
=20
Here=92s the scoop on new stuff:
=20
- Flow execution event processing is now fully decoupled from the HTTP
servlet request and response objects. This makes it possible for =
clients in
different environments to start new flow executions, and signal events =
in
ongoing flow executions. I would now expect integration with other
frameworks/technologies like Tapestry, JSF, Beehive, Porlets, etc. to be
straightforward. To get you an idea of the differences, previously the
central client fa=E7ade interface for managing a single executing flow =
looked
like:
=20
public interface FlowExecution {
public ModelAndView start(HttpServletRequest request, HttpServletRequest
response, Map input); =20
public ModelAndView signalEvent(String eventId, String stateId,
HttpServletRequest request, HttpServletRequest response);
}
=20
Now it looks like:
=20
public interface FlowExecution {
public ViewDescriptor start(Event startingEvent); =20
public ViewDescriptor signalEvent(event);
}
=20
I think this is a good deal better. To define a different source of an
event (e.g HttpServletRequestEvent, FacesEvent, etc.), create a custom =
event
subclass. Note: ModelAndView was changed to ViewDescriptor to remove =
the
dependency on spring mvc (as that was the ONLY dependency, and didn=92t =
seem
worth it.)
=20
- With this change, a =93FlowExecutionContext=94 object has been =
introduced. It
is now the central object passed to most user-implemented constructs in =
the
system, for accessing contextual information about the ongoing flow
execution. Constructs effected include things like flow Actions (to =
bridge
between the web tier and the middle tier) and conditional transitions =
(to
effect the path through a flow dynamically based on context.)
=20
So for example, previously the Action interface looked like:
=20
public interface Action {
public String execute(HttpServletRequest =
request,
HttpServletRequest response, MutableFlowModel model);
}
=20
It now looks like:
=20
public interface Action {
public Event execute(FlowExecutionContext =
context);
}
=20
The new sig is good deal cleaner. The context object provides access to =
a
requestScope() and a flowScope(), for storing and reasoning on arbitrary
model data in different scopes. You can now access a good deal more
contextual information about the lifecycle of the flow execution with =
this
object. Note: Action returns an =93Event=94 object now for consistency, =
instead
of a String, to signal the result of action execution.
=20
- Conditional transitions are another new feature that we expect to =
further
enhance upon before the preview release. Previously, you could define a
custom condition to determine, given the occurrence of an event in a =
state
of the flow, what state to go to next. But you couldn=92t really take =
into
account additional contextual information (like arbitrary event =
parameters,
or data in request or flow scope, for example.) Now transitional
expressions have full-access to the FlowExecutionContext, which gives =
them a
lot more to reason on to make dynamic state transition decisions. For
example, something like: if ${order.price} > 5K} spawn the =93big order =
flow=94,
else continue in the regular order processing flow.
=20
Now we want to expand on the above, to include declarative transition
expressions in the flow definition DTD using something like OGNL. =
Currently
you can only define rich expressions programmatically (which is fine, =
but
OGNL support would be sweet.)
=20
Those are the central new features (in addition to the instantiation &
autowiring capability I noted yesterday for Actions). The http request
decoupling was the biggie. I just finished getting javadocs back up to
date, and tests are finally also back in line. Next up is wiki docs ;-)
=20
So give it a go and let me know what you think! We want a =
stable-as-possible
preview release real soon!
Keith
--=20
J.Enrique Ruiz
Chief Research & Innovation Officer - DiSiD S.L.L. =
(http://www.disid.com)
Tel +34 655 407 965
Email: er...@di...
|
|
From: J.Enrique R. <er...@di...> - 2005-03-23 18:36:39
|
> > > Looking forward to hearing more about how you leveraging web-flow in a > portlet environment! > Hi all, We've been working to integrate Spring Web Flow with the Portlet API and now we have a stable-as-possible preview release of Spring Web Flow in a Portlet environment. We have documented 4 rules about how to do some common Portlet tasks, and we have ported the PhoneBook sample app to Portlet API. Thanks to Keith and Erwin efforts to decouple SWF from the HTTP Servlet API it is easy to use SWF from a PortletController. Our efforts has been directed to use HttpServletFlowExecutionManager from a PortletController. Our goal has been to mantain the same flow logic (FlowExecutionManager) without mimic the HttpServletFlowExecutionManager class. Then we have been applied the Adapter pattern (GoF) to provide a stable interface (currently Servlet API @ FlowExecutionManager) to the Portlet requests/responses. If you consider this code useful, we cand send it to you or contribute it the way you like. Regards. -- J.Enrique Ruiz Chief Research & Innovation Officer - DiSiD S.L.L. (http://www.disid.com) Email: er...@di... |
|
From: Abel P. <abl...@pa...> - 2005-03-23 18:50:56
|
Hi,
We have some upcomming work to do in a Portlet app that uses Spring. Your
work sounds interesting we would like to see the code, if you can point me
to a place where I can see it that would be great.
thanks in advance,
- Abel
-----Original Message-----
From: spr...@li...
[mailto:spr...@li...]On Behalf Of
J.Enrique Ruiz
Sent: Wednesday, March 23, 2005 12:37 PM
To: spr...@li...
Subject: Re: [Springframework-developer] webflow additions
Looking forward to hearing more about how you leveraging web-flow in a
portlet environment!
Hi all,
We've been working to integrate Spring Web Flow with the Portlet API
and now we have a stable-as-possible preview release of Spring Web Flow
in a Portlet environment. We have documented 4 rules about how to do some
common Portlet tasks, and we have ported the PhoneBook sample app to
Portlet API.
Thanks to Keith and Erwin efforts to decouple SWF from the HTTP Servlet
API it is easy to use SWF from a PortletController.
Our efforts has been directed to use HttpServletFlowExecutionManager from
a PortletController. Our goal has been to mantain the same flow logic
(FlowExecutionManager) without mimic the HttpServletFlowExecutionManager
class.
Then we have been applied the Adapter pattern (GoF) to provide a stable
interface (currently Servlet API @ FlowExecutionManager) to the Portlet
requests/responses.
If you consider this code useful, we cand send it to you or contribute it
the
way you like.
Regards.
--
J.Enrique Ruiz
Chief Research & Innovation Officer - DiSiD S.L.L. (http://www.disid.com)
Email: er...@di...
|
|
From: Dmitriy K. <dko...@ru...> - 2005-03-23 18:59:52
|
We also would be interested in this code Dmitriy. Abel Perez wrote: > Hi, > > We have some upcomming work to do in a Portlet app that uses > Spring. Your work sounds interesting we would like to see the code, > if you can point me to a place where I can see it that would be great. > > thanks in advance, > - Abel > > -----Original Message----- > *From:* spr...@li... > [mailto:spr...@li...]*On > Behalf Of *J.Enrique Ruiz > *Sent:* Wednesday, March 23, 2005 12:37 PM > *To:* spr...@li... > *Subject:* Re: [Springframework-developer] webflow additions > >> Looking forward to hearing more about how you leveraging web-flow >> in a portlet environment! >> > > Hi all, > > We've been working to integrate Spring Web Flow with the Portlet API > and now we have a stable-as-possible preview release of Spring Web > Flow > in a Portlet environment. We have documented 4 rules about how to > do some > common Portlet tasks, and we have ported the PhoneBook sample app to > Portlet API. > > Thanks to Keith and Erwin efforts to decouple SWF from the HTTP > Servlet > API it is easy to use SWF from a PortletController. > > Our efforts has been directed to use > HttpServletFlowExecutionManager from > a PortletController. Our goal has been to mantain the same flow logic > (FlowExecutionManager) without mimic the > HttpServletFlowExecutionManager > class. > > Then we have been applied the Adapter pattern (GoF) to provide a > stable > interface (currently Servlet API @ FlowExecutionManager) to the > Portlet > requests/responses. > > If you consider this code useful, we cand send it to you or > contribute it the > way you like. > > Regards. > >-- >J.Enrique Ruiz >Chief Research & Innovation Officer - DiSiD S.L.L. (http://www.disid.com) >Email: er...@di... > |
|
From: J.Enrique R. <er...@di...> - 2005-03-26 18:39:20
|
Hi all, We have uploaded the source code, documentation and the PhoneBook portlet to http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Home Regards, -- J.Enrique Ruiz Chief Research & Innovation Officer - DiSiD S.L.L. (http://www.disid.com) Email: er...@di... |
|
From: Keith D. <ke...@in...> - 2005-03-26 19:02:48
|
In general have had no luck with downloading binary file types from Confluence or JIRA using IE. The same thing is happening here: when I attempt to grab the .zip archive and open it, it says "The file doesn't appear to be a valid .zip archive". Am I missing something? Keith -----Original Message----- From: spr...@li... [mailto:spr...@li...] On Behalf Of J.Enrique Ruiz Sent: Saturday, March 26, 2005 1:39 PM To: spr...@li... Subject: Re: [Springframework-developer] webflow additions Hi all, We have uploaded the source code, documentation and the PhoneBook portlet to http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Home Regards, -- J.Enrique Ruiz Chief Research & Innovation Officer - DiSiD S.L.L. (http://www.disid.com) Email: er...@di... ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Erwin V. <erw...@er...> - 2005-03-26 19:14:17
|
I was able to download it correctly with IE on XP Pro. Keith: I'll send it to you later (via MSN or something). Thanks for the file Enrique! I'll take a look at it ASAP. Erwin Vervaet erw...@er... ----- Original Message ----- From: "Keith Donald" <ke...@in...> To: <spr...@li...> Sent: Saturday, March 26, 2005 8:02 PM Subject: RE: [Springframework-developer] webflow additions > In general have had no luck with downloading binary file types from > Confluence or JIRA using IE. The same thing is happening here: when I > attempt to grab the .zip archive and open it, it says "The file doesn't > appear to be a valid .zip archive". Am I missing something? > > Keith > > -----Original Message----- > From: spr...@li... > [mailto:spr...@li...] On Behalf > Of > J.Enrique Ruiz > Sent: Saturday, March 26, 2005 1:39 PM > To: spr...@li... > Subject: Re: [Springframework-developer] webflow additions > > Hi all, > > We have uploaded the source code, documentation and the PhoneBook > portlet to > > http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Home > > Regards, > > -- > J.Enrique Ruiz > Chief Research & Innovation Officer - DiSiD S.L.L. (http://www.disid.com) > Email: er...@di... > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > Springframework-developer mailing list > Spr...@li... > https://lists.sourceforge.net/lists/listinfo/springframework-developer > > |
|
From: Darren D. <da...@da...> - 2005-03-26 19:15:16
|
On Sat, 2005-03-26 at 14:02 -0500, Keith Donald wrote: > Am I missing something? only that IE is a piece of crap. I think it struggles if the URL to the d/l has params after it (bless it). Confluence seems to add ?version=3D1 or whatever to the end of the zip file. MSIE appears to attribute more weight to a url suffix than to the mime type instructed by the server. --=20 Darren Davison Public Key: 0xDD356B0D |
|
From: J. E. R. <er...@di...> - 2005-03-26 20:31:09
|
Could be it is IE cause ... I don't know, I have used 7-zip to compress it. I was able to download it with 'wget' in a Linux system and it unzips ok. I was able to download it download it with Firefox in a Windows XP Pro and it unzips ok too. Only with IE I have problems to unzip it in that Windows XP. >On Sat, 2005-03-26 at 14:02 -0500, Keith Donald wrote: > > >> Am I missing something? >> >> > >only that IE is a piece of crap. > >I think it struggles if the URL to the d/l has params after it (bless >it). Confluence seems to add ?version=1 or whatever to the end of the >zip file. MSIE appears to attribute more weight to a url suffix than to >the mime type instructed by the server. > > > > -- J.Enrique Ruiz Director de I+D+I - DiSiD S.L.L. (http://www.disid.com) Tel +34 655 407 965 Email: er...@di... |
|
From: Martin K. <Mar...@St...> - 2005-03-26 19:54:31
Attachments:
HtmlUtils.java
|
Hi there, Since I critised the Spring code base within a forum post made in the architectural section (topic: Spring Code Remarks), I felt like refactoring the prime evil class HtmlUtils. Please don't take the prime evil thing as an offence. But the HtmlUtil implementation features some of the biggest abuses in terms of if statements and code duplication, I have ever seen. So this implementation is surely blessed by the dark side! ;-) I have spend around three hours to rework the current implementation. I could eleminate 200 SLOC lines of code and refactored the character entity references setup to be more readable (boy that was a hot editing session). Also the unescape and escape methods got some attantion. (found a way to improve the performance as well). The current trouble maker is the isSpecialCharacter method. I would like to scrap this method and let the CharacterEntityReference class take care of it. You know this class has the appropriate knowledge and it can be easily computed at startup using an int-array. There are two opptions: First use 3000 bits(! not bytes!) and go for a mapping of the chars 0....1000 and 8000...10000. This would provide O(1) complexity. Another way would be the use of a sorted char array with O(log n) but around 1000 bytes. I would like to implement the first one. It is nearly a no brainer but it might be a bit difficult for the reader. But I would like to get away from 104 McCabe decision points, anyway. Another point is the unescape method. I am not sure if EMPTY_REFERENCE and MALFORMED_REFERENCE are really needed. Is there anything in the spec about '&;' being allowed? I would like to drop that too. Another thing is that I think I found a semantical bug in the orginal implementation. Check out this test-case: & In the current implementation the first & and the ';' is threatened as a reference. Since this reference can not be resolved, it will be droped. I would think it should be evaluated to & ' '. I couldn't test the refactoring (it is still incomplete anyways) since I did it within a test runtime environment. I use the Spring codebase of 1.4 as the default use-case scenario for my final exams work (which is about to be completed in two weeks I hope). Cheers, Martin (Kersten) |
|
From: Martin K. <Mar...@St...> - 2005-03-27 22:10:21
|
> The current trouble maker is the > isSpecialCharacter method. I would like to scrap this > method and let the CharacterEntityReference class take > care of it. You know this class has the appropriate > knowledge and it can be easily computed at startup > using an int-array. > > There are two opptions: > > First use 3000 bits(! not bytes!) and go for a > mapping of the chars 0....1000 and > 8000...10000. This would provide O(1) complexity. > Another way would be the use of a sorted char array > with O(log n) but around 1000 bytes. I have implemented the O(1) solution. Looks quite simple. I also try to run the test suite but the unit test of the HtmlUtils method consists only of two small test cases which does not look very potent in my opinion. Is this class intended to be tested indirectly? Another point: The setup of the HTML character entity references is currently done using add and addSequence calls. I would like to take a step back and use the real source instead. (http://www.w3.org/TR/REC-html40/sgml/entities.html#h-24.2.1) I think of a solution using a resource (file) instead of lots of add/addSequence calls. Also the testing would be improved and the read in is a no-brainer for me. Also the initialization can be done lazily and since it is a HtmlUtils is a global static service singelton behaviour (only one initialization needed) is an option. Also the readability of the class would improve greatly and we would be able to unit test this class easily entirely. Currently I was able to cut down the size of the old implementation by 2/3. The current refactored version is about 8KB in size compared to the original 24KB source code. But using a resource file I may be able to cut it down to 2 KB (around 40 SLOCs). Does anything speak against the resource (file) based setup aproach? Cheers, Martin (Kersten) |
|
From: Juergen H. <ju...@in...> - 2005-03-27 22:24:11
|
A file-based setup approach is fine, I guess, probably with a file loaded from the class path (same package as the HtmlUtils class itself). I'm looking forward to reviewing the new implementation - let's see what you came up with there :-) Martin, I appreciate your constructive work in that area. While I'm not a fan of your tone in judging overall Spring code quality (see my latest forum post), I am more than happy to let your specific improvements merge into Spring. Juergen -----Original Message----- From: spr...@li... [mailto:spr...@li...]On Behalf Of Martin Kersten Sent: Monday, March 28, 2005 12:00 AM To: spr...@li... Subject: Re: [Springframework-developer] HtmlUtils refactoring > The current trouble maker is the > isSpecialCharacter method. I would like to scrap this > method and let the CharacterEntityReference class take > care of it. You know this class has the appropriate > knowledge and it can be easily computed at startup > using an int-array. > > There are two opptions: > > First use 3000 bits(! not bytes!) and go for a > mapping of the chars 0....1000 and > 8000...10000. This would provide O(1) complexity. > Another way would be the use of a sorted char array > with O(log n) but around 1000 bytes. I have implemented the O(1) solution. Looks quite simple. I also try to run the test suite but the unit test of the HtmlUtils method consists only of two small test cases which does not look very potent in my opinion. Is this class intended to be tested indirectly? Another point: The setup of the HTML character entity references is currently done using add and addSequence calls. I would like to take a step back and use the real source instead. (http://www.w3.org/TR/REC-html40/sgml/entities.html#h-24.2.1) I think of a solution using a resource (file) instead of lots of add/addSequence calls. Also the testing would be improved and the read in is a no-brainer for me. Also the initialization can be done lazily and since it is a HtmlUtils is a global static service singelton behaviour (only one initialization needed) is an option. Also the readability of the class would improve greatly and we would be able to unit test this class easily entirely. Currently I was able to cut down the size of the old implementation by 2/3. The current refactored version is about 8KB in size compared to the original 24KB source code. But using a resource file I may be able to cut it down to 2 KB (around 40 SLOCs). Does anything speak against the resource (file) based setup aproach? Cheers, Martin (Kersten) ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ Springframework-developer mailing list Spr...@li... https://lists.sourceforge.net/lists/listinfo/springframework-developer |
|
From: Martin K. <Mar...@St...> - 2005-03-29 16:11:30
Attachments:
HtmlUtilsTest.java
|
>A file-based setup approach is fine, I guess, probably with a file loaded > from the class path (same package as the HtmlUtils class itself). I'm > looking forward to reviewing the new implementation - let's see what you > came up with there :-) I use the http://www.w3.org/TR/html4/sgml/entities.html definitions. I have joined all three section within a single resource (file). To read the file I use the StreamTokenizer, but no additional library (it is a DTD resource). Sadly this doesn't come for free. I don't found a way to use a JDK library to parse DTD documents. If I missed a opportunity to use a 3rd party library supported by the current spring-framework, please give me a call. Another idea is to convert the whole document to xml (or any other format) to be able to use a more powerfull API to setup the character entity references. Beside this I think I have identified two issues about the HtmlUtils.htmlUnescape method / implementation, which both seam to be a bit inconsitent. I have created a test-case to ensure the exact behaviour of the refactored / restructurized version like the current implementation. I attached this test-case within this mail. The two identified issues can be found at the very end of the file and both are marked using '//TODO'. Please review the test-case, in the case I forgot to protect (test) a special behaviour of the current version. Cheers, Martin (Kersten) |
|
From: Erwin V. <erw...@er...> - 2005-03-24 10:37:44
|
Great stuff! It would be nice if we could introduce this with the Web =
Flow & Portlet support that's coming in Spring 1.3.
Erwin Vervaet
erw...@er...
----- Original Message -----=20
From: J.Enrique Ruiz=20
To: spr...@li...=20
Sent: Wednesday, March 23, 2005 7:37 PM
Subject: Re: [Springframework-developer] webflow additions
Looking forward to hearing more about how you leveraging web-flow in =
a portlet environment!
Hi all,=20
We've been working to integrate Spring Web Flow with the Portlet API
and now we have a stable-as-possible preview release of Spring Web =
Flow
in a Portlet environment. We have documented 4 rules about how to do =
some
common Portlet tasks, and we have ported the PhoneBook sample app to
Portlet API.
Thanks to Keith and Erwin efforts to decouple SWF from the HTTP =
Servlet
API it is easy to use SWF from a PortletController.=20
Our efforts has been directed to use HttpServletFlowExecutionManager =
from=20
a PortletController. Our goal has been to mantain the same flow logic=20
(FlowExecutionManager) without mimic the =
HttpServletFlowExecutionManager=20
class.
Then we have been applied the Adapter pattern (GoF) to provide a =
stable=20
interface (currently Servlet API @ FlowExecutionManager) to the =
Portlet=20
requests/responses.
If you consider this code useful, we cand send it to you or contribute =
it the
way you like.
Regards.
--=20
J.Enrique Ruiz
Chief Research & Innovation Officer - DiSiD S.L.L. =
(http://www.disid.com)
Email: er...@di... |
|
From: J.Enrique R. <er...@di...> - 2005-03-24 11:35:49
|
Ok, as soon as it is possible we will have packed the source code and the PhoneBook Portlet, and we could upload it to http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Home Is it a good place to put the files? > Great stuff! It would be nice if we could introduce this with the Web > Flow & Portlet support that's coming in Spring 1.3. > > > Erwin Vervaet > erw...@er... <mailto:erw...@er...> -- J.Enrique Ruiz Chief Research & Innovation Officer - DiSiD S.L.L. (http://www.disid.com) Email: er...@di... |
|
From: Andy D. <an...@ma...> - 2005-03-17 17:01:37
|
Cool stuff, Keith... would a similar idea make sense for spring-rich? Wizards are an example of a flow, of sorts, but they can be very regimented. In our application, we have need to define large, overarching flows that span multiple "views" and operations. We will also provide an area where an overview of the flow is presented (similar to a task list) that gets checked off as the user progresses. Our application will be very goal oriented, where the user will say, "I want to do X", and "X" will be composed of many tasks or steps, with possible branching, and so on. Each task or step could be a view, a dialog, a sub-wizard, or even a sub-flow involving other users/agents/services. I guess what we really want is a workflow/business process management suite that integrates easily with Spring and the UI. Hey, I can dream, can't I? :) - Andy |
|
From: J.Enrique R. <er...@di...> - 2005-03-31 14:49:14
|
Hi all, We have upgraded Spring Web Flow addition for Portlets for use with the Spring 1.2 RC1 and Spring Web Flow PR1. To download it: http://opensource.atlassian.com/confluence/spring/display/WEBFLOW/Home Regards, -- J.Enrique Ruiz Chief Research & Innovation Officer - DiSiD S.L.L. (http://www.disid.com) Email: er...@di... |