/akka-cm-dispatcher

Container managed thread pools for Akka Dispatchers

TESTED AGAINST GLASSFISH 2.1.1, JDK 1.6.0_17. Based on Spring WorkManagerTaskExecutors (http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/jca/work/WorkManagerTaskExecutor.html)

Allows using container-managed thread pools (through JCA WorkManager) for Akka Dispathers. The following containers are supported:
- GlassFish (use thread-pool/work manager obtained by name or default thread-pool)
- JBoss (use WorkManager MBean obtainer by bean name or default work manager)
- WebSphere 6.0+, WebLogic 9.0+(use work manager obtained by JNDI name, or default work manager)



GlassFish example:

val dispatcher = new ExecutorBasedEventDrivenDispatcher("name") with ContainerManagedThreadPoolBuilder
dispatcher
.withGlassFishManagedDefaultThreadPool // if you want to use default WorkManager
.buildThreadPool

or

dispatcher
.withGlassFishManagedThreadPool("actor-thread-pool")// if you want to use named thread pool
.buildThreadPool




===Download, test and build===

1. git clone git://github.com/remeniuk/akka-cm-dispatcher.git
2. cd akka-cm-dispatcher
3. sbt
4. sbt> update
5. sbt> test 

===Run example===

1. sbt> project glassfish-managed-dispatchers-example
2. sbt> package
3. Deploy glassfish-managed-dispatchers-example\target\scala_2.8.0\glassfish-managed-dispatchers-example_2.8.0-1.0.war to Glassfish
4. Create named thread pool
5. Find list of supported dispatchers at http://localhost:8080/glassfish-managed-dispatchers-example_2.8.0-1.0/examples/dispatcherTypes
6. Run test at http://localhost:8080/glassfish-managed-dispatchers-example_2.8.0-1.0/examples/glassfish/<dispatcher type>/<thread pool name / default for default Glassfish WorkManager>