Hi, Niklas, What is the svn url for mina-sm?
This one I found doesn't work for me: https://svn.apache.org/repos/asf/directory/sandbox/niklas/mina-sm/ thx! Niklas Therning wrote: > > Cameron Taggart wrote: >>> project in MINA so far, but now it's not. As you know, we have at least >>> three projects in our sandbox; aioj, mina-sm, and serial. >> >> What are the mina-sm & serial projects in the sandbox for? >> > mina-sm is a package for defining state machines. Have a look at this > JIRA issue: http://issues.apache.org/jira/browse/DIRMINA-160 > > The design have been changed since my last comments in JIRA. The current > design uses annotations on methods to build the SM. You use the @State > annotation to define the available states and then you annotate the > methods which will be wrapped in MethodTransition objects using the > @Handler annotation. > > Then you use StateMachineFactory and specifiy the classes which you want > it to build a StateMachine from. It will read all the annotations and > build the directed graph of State and Transition objects. > > Finally you use StateMachineProxyFactory to create the dynamic proxy for > the interfaces of your choice (e.g. IoHandler in MINA). The proxy will > translate all method calls on the dynamic proxy into Event objects which > are passed on to your state machine methods. > > Normally the next state is statically defined in the @Handler > annotation. However, you can also change the flow programatically > through the StateControl class. Using it you can specify a different > next state and whether it should handle the next event or the current > event. There's also a subroutine like feature. This can be used if you > have a sub graph in your state machine which will be called from several > places and it should return to different states depending on the state > it was called from. > > One of my favorite features with mina-sm is the method arguments > matching described in the comments of the JIRA issue. It could be quite > slow since it uses reflection and the matching is executed for every > event. But this could probably be optimized significantly using byte > code generation. That would be a lot of fun to implement! :-) > > So far mina-sm seems to work very well for the very complex state > machines we have in our app. It hasn't been put in production yet but it > will in a few weeks. If you want to check it out you will have to > checkout the code from subversion and build yourself for now. > > -- > Niklas Therning > www.spamdrain.net > > > -- View this message in context: http://www.nabble.com/First-release-of-File-Asynchronous-File-I-O-library-tf3146800.html#a9381490 Sent from the mina dev mailing list archive at Nabble.com.
