Actions is a powerful interface to define a specific event using Action and usually used internally by event firer. Typically, it backs up method like eventnameAction(Action<Event> action) and change in Actions doesn't affect event firer's API. Though, since it's very useful, it would be nice for user to use it for their own purpose. However, the following points should be considered first.
Interface name
Actions is vague name and is named from jQuery's Callbacks object that was inspiring to write Actions interface. ActionStack, ActionPipeline or EventDefiner, and so on looks better. But more candidate should be considered to fix it.
A way to configure option
I'm not sure which way is better among setter, POJO option, option builder, and so on but clearly it's not needed to change such option in runtime as it defines a specific event. Now POJO option object is used.
Flow control
Considering various events, flow of executing action should be able to be controlled by event firer or listener. Sometimes actions should be executed in a row asynchronously or synchronously and also sometimes firing should be stopped by some condition. Many ways are available: 1. A special class extending ThreadLocal to acquire flow controller 2. A special action to control flow 3. A special method on Actions to control flow. We need to find more flow control cases and determine how to achieve that. Substituting event object in firing event may be required as well.
Benchmark Netty and Grizzly
Both frameworks have similar component e.g. Pipeline and Filter. See what functionalities should be provided. Also a process to find proper vibe transport in client may be one of usages using Actions.
Actions
is a powerful interface to define a specific event using Action and usually used internally by event firer. Typically, it backs up method likeeventnameAction(Action<Event> action)
and change inActions
doesn't affect event firer's API. Though, since it's very useful, it would be nice for user to use it for their own purpose. However, the following points should be considered first.Actions
is vague name and is named from jQuery's Callbacks object that was inspiring to write Actions interface.ActionStack
,ActionPipeline
orEventDefiner
, and so on looks better. But more candidate should be considered to fix it.It's scheduled in beta.