diff --git a/kernel/pom.xml b/akka-actors/pom.xml
similarity index 51%
rename from kernel/pom.xml
rename to akka-actors/pom.xml
index 4af5fc8d66..91ab205c95 100644
--- a/kernel/pom.xml
+++ b/akka-actors/pom.xml
@@ -1,290 +1,159 @@
-
- 4.0.0
-
- akka-kernel
- Akka Kernel Module
-
- jar
-
-
- akka
- se.scalablesolutions.akka
- 0.6
- ../pom.xml
-
-
-
-
-
- akka-util-java
- se.scalablesolutions.akka
- 0.6
-
-
- org.scala-lang
- scala-library
- 2.7.5
-
-
- org.codehaus.aspectwerkz
- aspectwerkz-nodeps-jdk5
- 2.1
-
-
- org.codehaus.aspectwerkz
- aspectwerkz-jdk5
- 2.1
-
-
- com.twitter
- scala-stats
- 1.0
-
-
- net.lag
- configgy
- 1.3
-
-
- org.guiceyfruit
- guice-core
- 2.0-beta-4
-
-
- org.apache.camel
- camel-core
- 2.0-SNAPSHOT
-
-
- org.jboss.netty
- netty
- 3.1.0.GA
-
-
- org.apache
- zookeeper
- 3.1.0
-
-
- org.scala-tools
- javautils
- 2.7.4-0.1
-
-
-
-
- org.codehaus.jackson
- jackson-core-asl
- 1.1.0
-
-
- org.codehaus.jackson
- jackson-mapper-asl
- 1.1.0
-
-
- com.google.protobuf
- protobuf-java
- 2.1.0
-
-
- sbinary
- sbinary
- 0.3
-
-
- com.twitter
- scala-json
- 1.0
-
-
- dispatch.json
- dispatch-json
- 0.5.2
-
-
- dispatch.http
- dispatch-http
- 0.5.2
-
-
- sjson.json
- sjson
- 0.1
-
-
-
-
-
- com.mongodb
- mongo
- 0.6
-
-
-
-
- org.apache.cassandra
- cassandra
- 0.4.0-trunk
-
-
- com.facebook
- thrift
- 1.0
-
-
- com.facebook
- fb303
- 1.0
-
-
- commons-pool
- commons-pool
- 1.5.1
-
-
-
-
- com.sun.grizzly
- grizzly-comet-webserver
- 1.8.6.3
-
-
- com.sun.jersey
- jersey-server
- 1.1.1-ea
-
-
- com.sun.jersey
- jersey-json
- 1.1.1-ea
-
-
- javax.ws.rs
- jsr311-api
- 1.0
-
-
- com.sun.jersey.contribs
- jersey-scala
- 1.1.2-ea-SNAPSHOT
-
-
- org.atmosphere
- atmosphere-core
- 0.3
-
-
- org.atmosphere
- atmosphere-portable-runtime
- 0.3
-
-
- org.atmosphere
- atmosphere-compat
- 0.3
-
-
-
-
- org.slf4j
- slf4j-log4j12
- 1.4.3
-
-
- org.slf4j
- slf4j-api
- 1.4.3
-
-
- log4j
- log4j
- 1.2.13
-
-
- commons-logging
- commons-logging
- 1.0.4
-
-
-
-
- org.scala-tools.testing
- scalatest
- 0.9.5
- test
-
-
- junit
- junit
- 4.5
- test
-
-
-
-
-
-
- maven-assembly-plugin
- 2.2-beta-2
-
-
- create-executable-jar
- install
-
- single
-
-
-
-
- jar-with-dependencies
-
-
-
-
- se.scalablesolutions.akka.kernel.Kernel
-
-
-
-
-
-
-
- maven-antrun-plugin
-
-
- install
-
-
-
-
-
-
- run
-
-
-
-
-
-
-
- false
- ../config
-
- akka.conf
- akka-reference.conf
-
-
-
- false
- src/main/resources
-
- META-INF/*
-
-
-
-
-
+
+ 4.0.0
+
+ akka-actors
+ Akka Actors Module
+
+ jar
+
+
+ akka
+ se.scalablesolutions.akka
+ 0.6
+ ../pom.xml
+
+
+
+
+
+ akka-util-java
+ se.scalablesolutions.akka
+ 0.6
+
+
+ org.scala-lang
+ scala-library
+ 2.7.5
+
+
+ org.codehaus.aspectwerkz
+ aspectwerkz-nodeps-jdk5
+ 2.1
+
+
+ org.codehaus.aspectwerkz
+ aspectwerkz-jdk5
+ 2.1
+
+
+ net.lag
+ configgy
+ 1.3
+
+
+ org.guiceyfruit
+ guice-core
+ 2.0-beta-4
+
+
+ org.jboss.netty
+ netty
+ 3.1.0.GA
+
+
+ org.scala-tools
+ javautils
+ 2.7.4-0.1
+
+
+
+
+ org.codehaus.jackson
+ jackson-core-asl
+ 1.1.0
+
+
+ org.codehaus.jackson
+ jackson-mapper-asl
+ 1.1.0
+
+
+ com.google.protobuf
+ protobuf-java
+ 2.1.0
+
+
+ sbinary
+ sbinary
+ 0.3
+
+
+ com.twitter
+ scala-json
+ 1.0
+
+
+ dispatch.json
+ dispatch-json
+ 0.5.2
+
+
+ dispatch.http
+ dispatch-http
+ 0.5.2
+
+
+ sjson.json
+ sjson
+ 0.1
+
+
+
+
+ org.slf4j
+ slf4j-log4j12
+ 1.4.3
+
+
+ org.slf4j
+ slf4j-api
+ 1.4.3
+
+
+ log4j
+ log4j
+ 1.2.13
+
+
+ commons-logging
+ commons-logging
+ 1.0.4
+
+
+
+
+ org.scala-tools.testing
+ scalatest
+ 0.9.5
+ test
+
+
+ junit
+ junit
+ 4.5
+ test
+
+
+
+
+
+
+ false
+ ../config
+
+ akka.conf
+ akka-reference.conf
+
+
+
+ false
+ src/main/resources
+
+ META-INF/*
+
+
+
+
+
diff --git a/kernel/src/main/resources/META-INF/aop.xml b/akka-actors/src/main/resources/META-INF/aop.xml
similarity index 100%
rename from kernel/src/main/resources/META-INF/aop.xml
rename to akka-actors/src/main/resources/META-INF/aop.xml
diff --git a/kernel/src/main/scala/actor/ActiveObject.scala b/akka-actors/src/main/scala/actor/ActiveObject.scala
similarity index 100%
rename from kernel/src/main/scala/actor/ActiveObject.scala
rename to akka-actors/src/main/scala/actor/ActiveObject.scala
diff --git a/kernel/src/main/scala/actor/Actor.scala b/akka-actors/src/main/scala/actor/Actor.scala
similarity index 100%
rename from kernel/src/main/scala/actor/Actor.scala
rename to akka-actors/src/main/scala/actor/Actor.scala
diff --git a/kernel/src/main/scala/actor/ActorRegistry.scala b/akka-actors/src/main/scala/actor/ActorRegistry.scala
similarity index 100%
rename from kernel/src/main/scala/actor/ActorRegistry.scala
rename to akka-actors/src/main/scala/actor/ActorRegistry.scala
diff --git a/kernel/src/main/scala/actor/Supervisor.scala b/akka-actors/src/main/scala/actor/Supervisor.scala
similarity index 100%
rename from kernel/src/main/scala/actor/Supervisor.scala
rename to akka-actors/src/main/scala/actor/Supervisor.scala
diff --git a/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala b/akka-actors/src/main/scala/config/ActiveObjectGuiceConfigurator.scala
similarity index 100%
rename from kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala
rename to akka-actors/src/main/scala/config/ActiveObjectGuiceConfigurator.scala
diff --git a/kernel/src/main/scala/config/ActiveObjectManager.scala b/akka-actors/src/main/scala/config/ActiveObjectManager.scala
similarity index 100%
rename from kernel/src/main/scala/config/ActiveObjectManager.scala
rename to akka-actors/src/main/scala/config/ActiveObjectManager.scala
diff --git a/kernel/src/main/scala/config/CamelConfigurator.scala b/akka-actors/src/main/scala/config/CamelConfigurator.scala
similarity index 100%
rename from kernel/src/main/scala/config/CamelConfigurator.scala
rename to akka-actors/src/main/scala/config/CamelConfigurator.scala
diff --git a/kernel/src/main/scala/config/Config.scala b/akka-actors/src/main/scala/config/Config.scala
similarity index 100%
rename from kernel/src/main/scala/config/Config.scala
rename to akka-actors/src/main/scala/config/Config.scala
diff --git a/kernel/src/main/scala/config/Configuration.scala b/akka-actors/src/main/scala/config/Configuration.scala
similarity index 100%
rename from kernel/src/main/scala/config/Configuration.scala
rename to akka-actors/src/main/scala/config/Configuration.scala
diff --git a/kernel/src/main/scala/config/Configurator.scala b/akka-actors/src/main/scala/config/Configurator.scala
similarity index 100%
rename from kernel/src/main/scala/config/Configurator.scala
rename to akka-actors/src/main/scala/config/Configurator.scala
diff --git a/kernel/src/main/scala/config/ConfiguratorRepository.scala b/akka-actors/src/main/scala/config/ConfiguratorRepository.scala
similarity index 100%
rename from kernel/src/main/scala/config/ConfiguratorRepository.scala
rename to akka-actors/src/main/scala/config/ConfiguratorRepository.scala
diff --git a/kernel/src/main/scala/nio/RemoteClient.scala b/akka-actors/src/main/scala/nio/RemoteClient.scala
similarity index 100%
rename from kernel/src/main/scala/nio/RemoteClient.scala
rename to akka-actors/src/main/scala/nio/RemoteClient.scala
diff --git a/kernel/src/main/scala/nio/RemoteProtocolBuilder.scala b/akka-actors/src/main/scala/nio/RemoteProtocolBuilder.scala
similarity index 100%
rename from kernel/src/main/scala/nio/RemoteProtocolBuilder.scala
rename to akka-actors/src/main/scala/nio/RemoteProtocolBuilder.scala
diff --git a/kernel/src/main/scala/nio/RemoteServer.scala b/akka-actors/src/main/scala/nio/RemoteServer.scala
similarity index 100%
rename from kernel/src/main/scala/nio/RemoteServer.scala
rename to akka-actors/src/main/scala/nio/RemoteServer.scala
diff --git a/kernel/src/main/scala/nio/RequestReply.scala b/akka-actors/src/main/scala/nio/RequestReply.scala
similarity index 100%
rename from kernel/src/main/scala/nio/RequestReply.scala
rename to akka-actors/src/main/scala/nio/RequestReply.scala
diff --git a/kernel/src/main/scala/reactor/Dispatchers.scala b/akka-actors/src/main/scala/reactor/Dispatchers.scala
similarity index 100%
rename from kernel/src/main/scala/reactor/Dispatchers.scala
rename to akka-actors/src/main/scala/reactor/Dispatchers.scala
diff --git a/kernel/src/main/scala/reactor/EventBasedSingleThreadDispatcher.scala b/akka-actors/src/main/scala/reactor/EventBasedSingleThreadDispatcher.scala
similarity index 100%
rename from kernel/src/main/scala/reactor/EventBasedSingleThreadDispatcher.scala
rename to akka-actors/src/main/scala/reactor/EventBasedSingleThreadDispatcher.scala
diff --git a/kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala b/akka-actors/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala
similarity index 100%
rename from kernel/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala
rename to akka-actors/src/main/scala/reactor/EventBasedThreadPoolDispatcher.scala
diff --git a/kernel/src/main/scala/reactor/Future.scala b/akka-actors/src/main/scala/reactor/Future.scala
similarity index 100%
rename from kernel/src/main/scala/reactor/Future.scala
rename to akka-actors/src/main/scala/reactor/Future.scala
diff --git a/kernel/src/main/scala/reactor/ManagedActorScheduler.scala b/akka-actors/src/main/scala/reactor/ManagedActorScheduler.scala
similarity index 100%
rename from kernel/src/main/scala/reactor/ManagedActorScheduler.scala
rename to akka-actors/src/main/scala/reactor/ManagedActorScheduler.scala
diff --git a/kernel/src/main/scala/reactor/MessageDispatcherBase.scala b/akka-actors/src/main/scala/reactor/MessageDispatcherBase.scala
similarity index 100%
rename from kernel/src/main/scala/reactor/MessageDispatcherBase.scala
rename to akka-actors/src/main/scala/reactor/MessageDispatcherBase.scala
diff --git a/kernel/src/main/scala/reactor/Reactor.scala b/akka-actors/src/main/scala/reactor/Reactor.scala
similarity index 100%
rename from kernel/src/main/scala/reactor/Reactor.scala
rename to akka-actors/src/main/scala/reactor/Reactor.scala
diff --git a/kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala b/akka-actors/src/main/scala/reactor/ThreadBasedDispatcher.scala
similarity index 100%
rename from kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala
rename to akka-actors/src/main/scala/reactor/ThreadBasedDispatcher.scala
diff --git a/kernel/src/main/scala/serialization/Binary.scala b/akka-actors/src/main/scala/serialization/Binary.scala
similarity index 100%
rename from kernel/src/main/scala/serialization/Binary.scala
rename to akka-actors/src/main/scala/serialization/Binary.scala
diff --git a/kernel/src/main/scala/serialization/Serializable.scala b/akka-actors/src/main/scala/serialization/Serializable.scala
similarity index 100%
rename from kernel/src/main/scala/serialization/Serializable.scala
rename to akka-actors/src/main/scala/serialization/Serializable.scala
diff --git a/kernel/src/main/scala/serialization/Serializer.scala b/akka-actors/src/main/scala/serialization/Serializer.scala
similarity index 100%
rename from kernel/src/main/scala/serialization/Serializer.scala
rename to akka-actors/src/main/scala/serialization/Serializer.scala
diff --git a/kernel/src/main/scala/util/HashCode.scala b/akka-actors/src/main/scala/util/HashCode.scala
similarity index 100%
rename from kernel/src/main/scala/util/HashCode.scala
rename to akka-actors/src/main/scala/util/HashCode.scala
diff --git a/kernel/src/main/scala/util/Helpers.scala b/akka-actors/src/main/scala/util/Helpers.scala
similarity index 100%
rename from kernel/src/main/scala/util/Helpers.scala
rename to akka-actors/src/main/scala/util/Helpers.scala
diff --git a/kernel/src/main/scala/util/Logging.scala b/akka-actors/src/main/scala/util/Logging.scala
similarity index 100%
rename from kernel/src/main/scala/util/Logging.scala
rename to akka-actors/src/main/scala/util/Logging.scala
diff --git a/kernel/src/main/scala/util/ResultOrFailure.scala b/akka-actors/src/main/scala/util/ResultOrFailure.scala
similarity index 100%
rename from kernel/src/main/scala/util/ResultOrFailure.scala
rename to akka-actors/src/main/scala/util/ResultOrFailure.scala
diff --git a/kernel/src/main/scala/util/Scheduler.scala b/akka-actors/src/main/scala/util/Scheduler.scala
similarity index 100%
rename from kernel/src/main/scala/util/Scheduler.scala
rename to akka-actors/src/main/scala/util/Scheduler.scala
diff --git a/kernel/src/test/scala/ActorSpec.scala b/akka-actors/src/test/scala/ActorSpec.scala
similarity index 100%
rename from kernel/src/test/scala/ActorSpec.scala
rename to akka-actors/src/test/scala/ActorSpec.scala
diff --git a/kernel/src/test/scala/AllSuite.scala b/akka-actors/src/test/scala/AllSuite.scala
similarity index 100%
rename from kernel/src/test/scala/AllSuite.scala
rename to akka-actors/src/test/scala/AllSuite.scala
diff --git a/kernel/src/test/scala/AllTest.scala b/akka-actors/src/test/scala/AllTest.scala
similarity index 100%
rename from kernel/src/test/scala/AllTest.scala
rename to akka-actors/src/test/scala/AllTest.scala
diff --git a/kernel/src/test/scala/CamelSpec.scala b/akka-actors/src/test/scala/CamelSpec.scala
similarity index 100%
rename from kernel/src/test/scala/CamelSpec.scala
rename to akka-actors/src/test/scala/CamelSpec.scala
diff --git a/kernel/src/test/scala/EventBasedSingleThreadDispatcherTest.scala b/akka-actors/src/test/scala/EventBasedSingleThreadDispatcherTest.scala
similarity index 100%
rename from kernel/src/test/scala/EventBasedSingleThreadDispatcherTest.scala
rename to akka-actors/src/test/scala/EventBasedSingleThreadDispatcherTest.scala
diff --git a/kernel/src/test/scala/EventBasedThreadPoolDispatcherTest.scala b/akka-actors/src/test/scala/EventBasedThreadPoolDispatcherTest.scala
similarity index 100%
rename from kernel/src/test/scala/EventBasedThreadPoolDispatcherTest.scala
rename to akka-actors/src/test/scala/EventBasedThreadPoolDispatcherTest.scala
diff --git a/kernel/src/test/scala/InMemoryActorSpec.scala b/akka-actors/src/test/scala/InMemoryActorSpec.scala
similarity index 100%
rename from kernel/src/test/scala/InMemoryActorSpec.scala
rename to akka-actors/src/test/scala/InMemoryActorSpec.scala
diff --git a/kernel/src/test/scala/Messages.scala b/akka-actors/src/test/scala/Messages.scala
similarity index 100%
rename from kernel/src/test/scala/Messages.scala
rename to akka-actors/src/test/scala/Messages.scala
diff --git a/kernel/src/test/scala/RemoteActorSpec.scala b/akka-actors/src/test/scala/RemoteActorSpec.scala
similarity index 100%
rename from kernel/src/test/scala/RemoteActorSpec.scala
rename to akka-actors/src/test/scala/RemoteActorSpec.scala
diff --git a/kernel/src/test/scala/RemoteSupervisorSpec.scala b/akka-actors/src/test/scala/RemoteSupervisorSpec.scala
similarity index 100%
rename from kernel/src/test/scala/RemoteSupervisorSpec.scala
rename to akka-actors/src/test/scala/RemoteSupervisorSpec.scala
diff --git a/kernel/src/test/scala/SchedulerSpec.scala b/akka-actors/src/test/scala/SchedulerSpec.scala
similarity index 100%
rename from kernel/src/test/scala/SchedulerSpec.scala
rename to akka-actors/src/test/scala/SchedulerSpec.scala
diff --git a/kernel/src/test/scala/SupervisorSpec.scala b/akka-actors/src/test/scala/SupervisorSpec.scala
similarity index 100%
rename from kernel/src/test/scala/SupervisorSpec.scala
rename to akka-actors/src/test/scala/SupervisorSpec.scala
diff --git a/kernel/src/test/scala/ThreadBasedDispatcherTest.scala b/akka-actors/src/test/scala/ThreadBasedDispatcherTest.scala
similarity index 100%
rename from kernel/src/test/scala/ThreadBasedDispatcherTest.scala
rename to akka-actors/src/test/scala/ThreadBasedDispatcherTest.scala
diff --git a/kernel/src/test/scala/TransactionClasherSpec.scala b/akka-actors/src/test/scala/TransactionClasherSpec.scala
similarity index 100%
rename from kernel/src/test/scala/TransactionClasherSpec.scala
rename to akka-actors/src/test/scala/TransactionClasherSpec.scala
diff --git a/akka-camel/pom.xml b/akka-camel/pom.xml
new file mode 100644
index 0000000000..61529e85af
--- /dev/null
+++ b/akka-camel/pom.xml
@@ -0,0 +1,43 @@
+
+ 4.0.0
+
+ akka-camel
+ Akka Camel Module
+
+ jar
+
+
+ akka
+ se.scalablesolutions.akka
+ 0.6
+ ../pom.xml
+
+
+
+
+
+ akka-actors
+ se.scalablesolutions.akka
+ 0.6
+
+
+ org.apache.camel
+ camel-core
+ 2.0-SNAPSHOT
+
+
+
+
+
+
+ false
+ src/main/resources
+
+ META-INF/*
+
+
+
+
+
diff --git a/kernel/src/main/resources/META-INF/services/org/apache/camel/component/akka b/akka-camel/src/main/resources/META-INF/services/org/apache/camel/component/akka
similarity index 100%
rename from kernel/src/main/resources/META-INF/services/org/apache/camel/component/akka
rename to akka-camel/src/main/resources/META-INF/services/org/apache/camel/component/akka
diff --git a/kernel/src/main/scala/camel/ActiveObjectComponent.scala b/akka-camel/src/main/scala/ActiveObjectComponent.scala
similarity index 100%
rename from kernel/src/main/scala/camel/ActiveObjectComponent.scala
rename to akka-camel/src/main/scala/ActiveObjectComponent.scala
diff --git a/kernel/src/main/scala/camel/ActiveObjectConsumer.scala b/akka-camel/src/main/scala/ActiveObjectConsumer.scala
similarity index 100%
rename from kernel/src/main/scala/camel/ActiveObjectConsumer.scala
rename to akka-camel/src/main/scala/ActiveObjectConsumer.scala
diff --git a/kernel/src/main/scala/camel/ActiveObjectEndpoint.scala b/akka-camel/src/main/scala/ActiveObjectEndpoint.scala
similarity index 100%
rename from kernel/src/main/scala/camel/ActiveObjectEndpoint.scala
rename to akka-camel/src/main/scala/ActiveObjectEndpoint.scala
diff --git a/kernel/src/main/scala/camel/ActiveObjectProducer.scala b/akka-camel/src/main/scala/ActiveObjectProducer.scala
similarity index 100%
rename from kernel/src/main/scala/camel/ActiveObjectProducer.scala
rename to akka-camel/src/main/scala/ActiveObjectProducer.scala
diff --git a/kernel/src/main/scala/camel/MessageDriven.scala b/akka-camel/src/main/scala/MessageDriven.scala
similarity index 100%
rename from kernel/src/main/scala/camel/MessageDriven.scala
rename to akka-camel/src/main/scala/MessageDriven.scala
diff --git a/kernel/src/main/scala/camel/SupervisorAwareCamelContext.scala b/akka-camel/src/main/scala/SupervisorAwareCamelContext.scala
similarity index 100%
rename from kernel/src/main/scala/camel/SupervisorAwareCamelContext.scala
rename to akka-camel/src/main/scala/SupervisorAwareCamelContext.scala
diff --git a/fun-test-java/pom.xml b/akka-fun-test-java/pom.xml
similarity index 100%
rename from fun-test-java/pom.xml
rename to akka-fun-test-java/pom.xml
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/AllTest.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/AllTest.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/AllTest.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/AllTest.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/Bar.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/Bar.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/Bar.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/Bar.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/BarImpl.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/BarImpl.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/BarImpl.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/BarImpl.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/Ext.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/Ext.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/Ext.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/Ext.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/ExtImpl.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/ExtImpl.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/ExtImpl.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/ExtImpl.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/Foo.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/Foo.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/Foo.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/Foo.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemNestedStateTest.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemNestedStateTest.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemNestedStateTest.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemNestedStateTest.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemStateful.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemStateful.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemStateful.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemStateful.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemStatefulNested.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemStatefulNested.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemStatefulNested.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemStatefulNested.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/JerseyFoo.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/JerseyFoo.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/JerseyFoo.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/JerseyFoo.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistenceManager.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistenceManager.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistenceManager.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistenceManager.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentClasher.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentClasher.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentClasher.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentClasher.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentFailer.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentFailer.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentFailer.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentFailer.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentNestedStateTest.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentNestedStateTest.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentNestedStateTest.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentNestedStateTest.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateful.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateful.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateful.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateful.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStatefulNested.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStatefulNested.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStatefulNested.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStatefulNested.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufProtocol.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufProtocol.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufProtocol.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufProtocol.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufProtocol.proto b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufProtocol.proto
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufProtocol.proto
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufProtocol.proto
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufSerializationTest.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufSerializationTest.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufSerializationTest.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufSerializationTest.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/RemoteInMemoryStateTest.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/RemoteInMemoryStateTest.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/RemoteInMemoryStateTest.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/RemoteInMemoryStateTest.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/RemotePersistentStateTest.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/RemotePersistentStateTest.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/RemotePersistentStateTest.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/RemotePersistentStateTest.java
diff --git a/fun-test-java/src/test/java/se/scalablesolutions/akka/api/RestTest.java b/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/RestTest.java
similarity index 100%
rename from fun-test-java/src/test/java/se/scalablesolutions/akka/api/RestTest.java
rename to akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/RestTest.java
diff --git a/fun-test-java/testng.xml b/akka-fun-test-java/testng.xml
similarity index 100%
rename from fun-test-java/testng.xml
rename to akka-fun-test-java/testng.xml
diff --git a/akka-kernel/pom.xml b/akka-kernel/pom.xml
new file mode 100644
index 0000000000..4508ab68b6
--- /dev/null
+++ b/akka-kernel/pom.xml
@@ -0,0 +1,90 @@
+
+ 4.0.0
+
+ akka-kernel
+ Akka Kernel Module
+
+ jar
+
+
+ akka
+ se.scalablesolutions.akka
+ 0.6
+ ../pom.xml
+
+
+
+
+
+ akka-actors
+ se.scalablesolutions.akka
+ 0.6
+
+
+
+
+
+
+ maven-assembly-plugin
+ 2.2-beta-2
+
+
+ create-executable-jar
+ install
+
+ single
+
+
+
+
+ jar-with-dependencies
+
+
+
+
+ se.scalablesolutions.akka.kernel.Kernel
+
+
+
+
+
+
+
+ maven-antrun-plugin
+
+
+ install
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+
+ false
+ ../config
+
+ akka.conf
+ akka-reference.conf
+
+
+
+ false
+ src/main/resources
+
+ META-INF/*
+
+
+
+
+
diff --git a/kernel/src/main/scala/Boot.scala b/akka-kernel/src/main/scala/Boot.scala
similarity index 100%
rename from kernel/src/main/scala/Boot.scala
rename to akka-kernel/src/main/scala/Boot.scala
diff --git a/kernel/src/main/scala/Kernel.scala b/akka-kernel/src/main/scala/Kernel.scala
similarity index 100%
rename from kernel/src/main/scala/Kernel.scala
rename to akka-kernel/src/main/scala/Kernel.scala
diff --git a/akka-persistence/pom.xml b/akka-persistence/pom.xml
new file mode 100644
index 0000000000..ab2c31f66b
--- /dev/null
+++ b/akka-persistence/pom.xml
@@ -0,0 +1,54 @@
+
+ 4.0.0
+
+ akka-persistence
+ Akka Persistence Module
+
+ jar
+
+
+ akka
+ se.scalablesolutions.akka
+ 0.6
+ ../pom.xml
+
+
+
+
+ akka-kernel
+ se.scalablesolutions.akka
+ 0.6
+
+
+
+
+ com.mongodb
+ mongo
+ 0.6
+
+
+
+
+ org.apache.cassandra
+ cassandra
+ 0.4.0-trunk
+
+
+ com.facebook
+ thrift
+ 1.0
+
+
+ com.facebook
+ fb303
+ 1.0
+
+
+ commons-pool
+ commons-pool
+ 1.5.1
+
+
+
+
diff --git a/kernel/src/main/scala/state/CassandraSession.scala b/akka-persistence/src/main/scala/CassandraSession.scala
similarity index 100%
rename from kernel/src/main/scala/state/CassandraSession.scala
rename to akka-persistence/src/main/scala/CassandraSession.scala
diff --git a/kernel/src/main/scala/state/CassandraStorage.scala b/akka-persistence/src/main/scala/CassandraStorage.scala
similarity index 100%
rename from kernel/src/main/scala/state/CassandraStorage.scala
rename to akka-persistence/src/main/scala/CassandraStorage.scala
diff --git a/kernel/src/main/scala/state/DataFlowVariable.scala b/akka-persistence/src/main/scala/DataFlowVariable.scala
similarity index 100%
rename from kernel/src/main/scala/state/DataFlowVariable.scala
rename to akka-persistence/src/main/scala/DataFlowVariable.scala
diff --git a/kernel/src/main/scala/state/MongoStorage.scala b/akka-persistence/src/main/scala/MongoStorage.scala
similarity index 100%
rename from kernel/src/main/scala/state/MongoStorage.scala
rename to akka-persistence/src/main/scala/MongoStorage.scala
diff --git a/kernel/src/main/scala/state/State.scala b/akka-persistence/src/main/scala/PersistentState.scala
similarity index 61%
rename from kernel/src/main/scala/state/State.scala
rename to akka-persistence/src/main/scala/PersistentState.scala
index 6e012837d7..b5746ebb12 100644
--- a/kernel/src/main/scala/state/State.scala
+++ b/akka-persistence/src/main/scala/PersistentState.scala
@@ -11,8 +11,8 @@ import org.codehaus.aspectwerkz.proxy.Uuid
import scala.collection.mutable.{ArrayBuffer, HashMap}
-sealed abstract class TransactionalStateConfig
-abstract class PersistentStorageConfig extends TransactionalStateConfig
+sealed abstract class PersistentStateConfig
+abstract class PersistentStorageConfig extends PersistentStateConfig
case class CassandraStorageConfig extends PersistentStorageConfig
case class TerracottaStorageConfig extends PersistentStorageConfig
case class TokyoCabinetStorageConfig extends PersistentStorageConfig
@@ -23,146 +23,41 @@ case class MongoStorageConfig extends PersistentStorageConfig
*
* Example Scala usage:
*
- * val myMap = TransactionalState.newPersistentMap(CassandraStorageConfig)
+ * val myMap = PersistentState.newMap(CassandraStorageConfig)
*
*/
-object TransactionalState extends TransactionalState
+object PersistentState extends PersistentState
/**
* Java API.
*
* Example Java usage:
*
- * TransactionalState state = new TransactionalState();
- * TransactionalMap myMap = state.newPersistentMap(new CassandraStorageConfig());
+ * PersistentState state = new PersistentState();
+ * TransactionalMap myMap = state.newMap(new CassandraStorageConfig());
*
*/
-class TransactionalState {
- def newPersistentMap(config: PersistentStorageConfig): TransactionalMap[AnyRef, AnyRef] = config match {
+class PersistentState {
+ def newMap(config: PersistentStorageConfig): TransactionalMap[AnyRef, AnyRef] = config match {
case CassandraStorageConfig() => new CassandraPersistentTransactionalMap
case MongoStorageConfig() => new MongoPersistentTransactionalMap
case TerracottaStorageConfig() => throw new UnsupportedOperationException
case TokyoCabinetStorageConfig() => throw new UnsupportedOperationException
}
- def newPersistentVector(config: PersistentStorageConfig): TransactionalVector[AnyRef] = config match {
+ def newVector(config: PersistentStorageConfig): TransactionalVector[AnyRef] = config match {
case CassandraStorageConfig() => new CassandraPersistentTransactionalVector
case MongoStorageConfig() => new MongoPersistentTransactionalVector
case TerracottaStorageConfig() => throw new UnsupportedOperationException
case TokyoCabinetStorageConfig() => throw new UnsupportedOperationException
}
- def newPersistentRef(config: PersistentStorageConfig): TransactionalRef[AnyRef] = config match {
+ def newRef(config: PersistentStorageConfig): TransactionalRef[AnyRef] = config match {
case CassandraStorageConfig() => new CassandraPersistentTransactionalRef
case MongoStorageConfig() => new MongoPersistentTransactionalRef
case TerracottaStorageConfig() => throw new UnsupportedOperationException
case TokyoCabinetStorageConfig() => throw new UnsupportedOperationException
}
-
- def newInMemoryMap[K, V]: TransactionalMap[K, V] = new InMemoryTransactionalMap[K, V]
-
- def newInMemoryVector[T]: TransactionalVector[T] = new InMemoryTransactionalVector[T]
-
- def newInMemoryRef[T]: TransactionalRef[T] = new TransactionalRef[T]
-}
-
-/**
- * @author Jonas Bonér
- */
-@serializable
-trait Transactional {
- // FIXME: won't work across the cluster
- val uuid = Uuid.newUuid.toString
-
- private[kernel] def begin
- private[kernel] def commit
- private[kernel] def rollback
-
- protected def verifyTransaction = {
- val cflowTx = TransactionManagement.threadBoundTx.get
- if (!cflowTx.isDefined) {
- throw new IllegalStateException("Can't access transactional reference outside the scope of a transaction [" + this + "]")
- } else {
- cflowTx.get.register(this)
- }
- }
-}
-
-/**
- * Base trait for all state implementations (persistent or in-memory).
- *
- * FIXME: Create Java versions using pcollections
- *
- * @author Jonas Bonér
- */
-trait TransactionalMap[K, V] extends Transactional with scala.collection.mutable.Map[K, V] {
- override def hashCode: Int = System.identityHashCode(this);
- override def equals(other: Any): Boolean = false
- def remove(key: K)
-}
-
-/**
- * Not thread-safe, but should only be using from within an Actor, e.g. one single thread at a time.
- *
- * @author Jonas Bonér
- */
-class InMemoryTransactionalMap[K, V] extends TransactionalMap[K, V] {
- protected[kernel] var state = new HashTrie[K, V]
- protected[kernel] var snapshot = state
-
- // ---- For Transactional ----
- override def begin = snapshot = state
- override def commit = snapshot = state
- override def rollback = state = snapshot
-
- // ---- Overriding scala.collection.mutable.Map behavior ----
- override def contains(key: K): Boolean = {
- verifyTransaction
- state.contains(key)
- }
-
- override def clear = {
- verifyTransaction
- state = new HashTrie[K, V]
- }
-
- override def size: Int = {
- verifyTransaction
- state.size
- }
-
- // ---- For scala.collection.mutable.Map ----
- override def remove(key: K) = {
- verifyTransaction
- state = state - key
- }
-
- override def elements: Iterator[(K, V)] = {
-// verifyTransaction
- state.elements
- }
-
- override def get(key: K): Option[V] = {
- verifyTransaction
- state.get(key)
- }
-
- override def put(key: K, value: V): Option[V] = {
- verifyTransaction
- val oldValue = state.get(key)
- state = state.update(key, value)
- oldValue
- }
-
- override def -=(key: K) = {
- verifyTransaction
- remove(key)
- }
-
- override def update(key: K, value: V) = {
- verifyTransaction
- put(key, value)
- }
}
/**
@@ -315,77 +210,6 @@ class MongoPersistentTransactionalMap extends TemplatePersistentTransactionalMap
val storage = MongoStorage
}
-/**
- * Base for all transactional vector implementations.
- *
- * @author Jonas Bonér
- */
-abstract class TransactionalVector[T] extends Transactional with RandomAccessSeq[T] {
- override def hashCode: Int = System.identityHashCode(this);
- override def equals(other: Any): Boolean = false
-
- def add(elem: T)
-
- def get(index: Int): T
-
- def getRange(start: Int, count: Int): List[T]
-}
-
-/**
- * Implements an in-memory transactional vector.
- *
- * Not thread-safe, but should only be using from within an Actor, e.g. one single thread at a time.
- *
- * @author Jonas Bonér
- */
-class InMemoryTransactionalVector[T] extends TransactionalVector[T] {
- private[kernel] var state: Vector[T] = EmptyVector
- private[kernel] var snapshot = state
-
- def add(elem: T) = {
- verifyTransaction
- state = state + elem
- }
-
- def get(index: Int): T = {
- verifyTransaction
- state(index)
- }
-
- def getRange(start: Int, count: Int): List[T] = {
- verifyTransaction
- state.slice(start, count).toList.asInstanceOf[List[T]]
- }
-
- // ---- For Transactional ----
- override def begin = snapshot = state
-
- override def commit = snapshot = state
-
- override def rollback = state = snapshot
-
- // ---- For Seq ----
- def length: Int = {
- verifyTransaction
- state.length
- }
-
- def apply(index: Int): T = {
- verifyTransaction
- state(index)
- }
-
- override def elements: Iterator[T] = {
- //verifyTransaction
- state.elements
- }
-
- override def toList: List[T] = {
- verifyTransaction
- state.toList
- }
-}
-
/**
* Base class for all persistent transactional vector implementations should extend.
* Implements a Unit of Work, records changes into a change set.
@@ -475,45 +299,7 @@ class CassandraPersistentTransactionalVector extends TemplatePersistentTransacti
*/
class MongoPersistentTransactionalVector extends TemplatePersistentTransactionalVector {
val storage = MongoStorage
-}
-
-/**
- * Implements a transactional reference.
- *
- * Not thread-safe, but should only be using from within an Actor, e.g. one single thread at a time.
- *
- * @author Jonas Bonér
- */
-class TransactionalRef[T] extends Transactional {
- private[kernel] var ref: Option[T] = None
- private[kernel] var snapshot: Option[T] = None
-
- override def begin = if (ref.isDefined) snapshot = Some(ref.get)
-
- override def commit = if (ref.isDefined) snapshot = Some(ref.get)
-
- override def rollback = if (snapshot.isDefined) ref = Some(snapshot.get)
-
- def swap(elem: T) = {
- verifyTransaction
- ref = Some(elem)
- }
-
- def get: Option[T] = {
- verifyTransaction
- ref
- }
-
- def getOrElse(default: => T): T = {
- verifyTransaction
- ref.getOrElse(default)
- }
-
- def isDefined: Boolean = {
- verifyTransaction
- ref.isDefined
- }
-}
+}
abstract class TemplatePersistentTransactionalRef extends TransactionalRef[AnyRef] {
val storage: RefStorage
diff --git a/kernel/src/main/scala/state/Pool.scala b/akka-persistence/src/main/scala/Pool.scala
similarity index 100%
rename from kernel/src/main/scala/state/Pool.scala
rename to akka-persistence/src/main/scala/Pool.scala
diff --git a/kernel/src/main/scala/state/Storage.scala b/akka-persistence/src/main/scala/Storage.scala
similarity index 100%
rename from kernel/src/main/scala/state/Storage.scala
rename to akka-persistence/src/main/scala/Storage.scala
diff --git a/kernel/src/test/scala/MongoPersistentActorSpec.scala b/akka-persistence/src/test/scala/MongoPersistentActorSpec.scala
similarity index 100%
rename from kernel/src/test/scala/MongoPersistentActorSpec.scala
rename to akka-persistence/src/test/scala/MongoPersistentActorSpec.scala
diff --git a/kernel/src/test/scala/MongoStorageSpec.scala b/akka-persistence/src/test/scala/MongoStorageSpec.scala
similarity index 100%
rename from kernel/src/test/scala/MongoStorageSpec.scala
rename to akka-persistence/src/test/scala/MongoStorageSpec.scala
diff --git a/kernel/src/test/scala/PersistentActorSpec.scala b/akka-persistence/src/test/scala/PersistentActorSpec.scala
similarity index 100%
rename from kernel/src/test/scala/PersistentActorSpec.scala
rename to akka-persistence/src/test/scala/PersistentActorSpec.scala
diff --git a/akka-rest/pom.xml b/akka-rest/pom.xml
new file mode 100644
index 0000000000..b79694aaeb
--- /dev/null
+++ b/akka-rest/pom.xml
@@ -0,0 +1,68 @@
+
+ 4.0.0
+
+ akka-rest
+ Akka REST Module
+
+ jar
+
+
+ akka
+ se.scalablesolutions.akka
+ 0.6
+ ../pom.xml
+
+
+
+
+
+ akka-actors
+ se.scalablesolutions.akka
+ 0.6
+
+
+
+
+ com.sun.grizzly
+ grizzly-comet-webserver
+ 1.8.6.3
+
+
+ com.sun.jersey
+ jersey-server
+ 1.1.1-ea
+
+
+ com.sun.jersey
+ jersey-json
+ 1.1.1-ea
+
+
+ javax.ws.rs
+ jsr311-api
+ 1.0
+
+
+ com.sun.jersey.contribs
+ jersey-scala
+ 1.1.2-ea-SNAPSHOT
+
+
+ org.atmosphere
+ atmosphere-core
+ 0.3
+
+
+ org.atmosphere
+ atmosphere-portable-runtime
+ 0.3
+
+
+ org.atmosphere
+ atmosphere-compat
+ 0.3
+
+
+
diff --git a/kernel/src/main/scala/rest/ActorComponentProvider.scala b/akka-rest/src/main/scala/ActorComponentProvider.scala
similarity index 100%
rename from kernel/src/main/scala/rest/ActorComponentProvider.scala
rename to akka-rest/src/main/scala/ActorComponentProvider.scala
diff --git a/kernel/src/main/scala/rest/ActorComponentProviderFactory.scala b/akka-rest/src/main/scala/ActorComponentProviderFactory.scala
similarity index 100%
rename from kernel/src/main/scala/rest/ActorComponentProviderFactory.scala
rename to akka-rest/src/main/scala/ActorComponentProviderFactory.scala
diff --git a/kernel/src/main/scala/rest/AkkaServlet.scala b/akka-rest/src/main/scala/AkkaServlet.scala
similarity index 100%
rename from kernel/src/main/scala/rest/AkkaServlet.scala
rename to akka-rest/src/main/scala/AkkaServlet.scala
diff --git a/kernel/src/main/scala/rest/NodeWriter.scala b/akka-rest/src/main/scala/NodeWriter.scala
similarity index 100%
rename from kernel/src/main/scala/rest/NodeWriter.scala
rename to akka-rest/src/main/scala/NodeWriter.scala
diff --git a/samples-java/pom.xml b/akka-samples-java/pom.xml
similarity index 100%
rename from samples-java/pom.xml
rename to akka-samples-java/pom.xml
diff --git a/samples-java/src/main/java/sample/java/Boot.java b/akka-samples-java/src/main/java/sample/java/Boot.java
similarity index 100%
rename from samples-java/src/main/java/sample/java/Boot.java
rename to akka-samples-java/src/main/java/sample/java/Boot.java
diff --git a/samples-java/src/main/java/sample/java/PersistentSimpleService.java b/akka-samples-java/src/main/java/sample/java/PersistentSimpleService.java
similarity index 100%
rename from samples-java/src/main/java/sample/java/PersistentSimpleService.java
rename to akka-samples-java/src/main/java/sample/java/PersistentSimpleService.java
diff --git a/samples-java/src/main/java/sample/java/SimpleService.java b/akka-samples-java/src/main/java/sample/java/SimpleService.java
similarity index 100%
rename from samples-java/src/main/java/sample/java/SimpleService.java
rename to akka-samples-java/src/main/java/sample/java/SimpleService.java
diff --git a/samples-lift/config/akka.conf b/akka-samples-lift/config/akka.conf
similarity index 100%
rename from samples-lift/config/akka.conf
rename to akka-samples-lift/config/akka.conf
diff --git a/samples-lift/pom.xml b/akka-samples-lift/pom.xml
similarity index 100%
rename from samples-lift/pom.xml
rename to akka-samples-lift/pom.xml
diff --git a/samples-lift/src/main/scala/akka/SimpleService.scala b/akka-samples-lift/src/main/scala/akka/SimpleService.scala
similarity index 100%
rename from samples-lift/src/main/scala/akka/SimpleService.scala
rename to akka-samples-lift/src/main/scala/akka/SimpleService.scala
diff --git a/samples-lift/src/main/scala/bootstrap/liftweb/Boot.scala b/akka-samples-lift/src/main/scala/bootstrap/liftweb/Boot.scala
similarity index 100%
rename from samples-lift/src/main/scala/bootstrap/liftweb/Boot.scala
rename to akka-samples-lift/src/main/scala/bootstrap/liftweb/Boot.scala
diff --git a/samples-lift/src/main/scala/comet/.keep b/akka-samples-lift/src/main/scala/comet/.keep
similarity index 100%
rename from samples-lift/src/main/scala/comet/.keep
rename to akka-samples-lift/src/main/scala/comet/.keep
diff --git a/samples-lift/src/main/scala/model/.keep b/akka-samples-lift/src/main/scala/model/.keep
similarity index 100%
rename from samples-lift/src/main/scala/model/.keep
rename to akka-samples-lift/src/main/scala/model/.keep
diff --git a/samples-lift/src/main/scala/snippet/.keep b/akka-samples-lift/src/main/scala/snippet/.keep
similarity index 100%
rename from samples-lift/src/main/scala/snippet/.keep
rename to akka-samples-lift/src/main/scala/snippet/.keep
diff --git a/samples-lift/src/main/scala/snippet/HelloWorld.scala b/akka-samples-lift/src/main/scala/snippet/HelloWorld.scala
similarity index 100%
rename from samples-lift/src/main/scala/snippet/HelloWorld.scala
rename to akka-samples-lift/src/main/scala/snippet/HelloWorld.scala
diff --git a/samples-lift/src/main/scala/view/.keep b/akka-samples-lift/src/main/scala/view/.keep
similarity index 100%
rename from samples-lift/src/main/scala/view/.keep
rename to akka-samples-lift/src/main/scala/view/.keep
diff --git a/samples-lift/src/main/webapp/index.html b/akka-samples-lift/src/main/webapp/index.html
similarity index 100%
rename from samples-lift/src/main/webapp/index.html
rename to akka-samples-lift/src/main/webapp/index.html
diff --git a/samples-lift/src/main/webapp/templates-hidden/default.html b/akka-samples-lift/src/main/webapp/templates-hidden/default.html
similarity index 100%
rename from samples-lift/src/main/webapp/templates-hidden/default.html
rename to akka-samples-lift/src/main/webapp/templates-hidden/default.html
diff --git a/samples-lift/src/test/scala/LiftConsole.scala b/akka-samples-lift/src/test/scala/LiftConsole.scala
similarity index 100%
rename from samples-lift/src/test/scala/LiftConsole.scala
rename to akka-samples-lift/src/test/scala/LiftConsole.scala
diff --git a/samples-lift/src/test/scala/RunWebApp.scala b/akka-samples-lift/src/test/scala/RunWebApp.scala
similarity index 100%
rename from samples-lift/src/test/scala/RunWebApp.scala
rename to akka-samples-lift/src/test/scala/RunWebApp.scala
diff --git a/samples-scala/pom.xml b/akka-samples-scala/pom.xml
similarity index 100%
rename from samples-scala/pom.xml
rename to akka-samples-scala/pom.xml
diff --git a/samples-scala/src/main/scala/SimpleService.scala b/akka-samples-scala/src/main/scala/SimpleService.scala
similarity index 100%
rename from samples-scala/src/main/scala/SimpleService.scala
rename to akka-samples-scala/src/main/scala/SimpleService.scala
diff --git a/akka-stm/pom.xml b/akka-stm/pom.xml
new file mode 100644
index 0000000000..12da6ab9d0
--- /dev/null
+++ b/akka-stm/pom.xml
@@ -0,0 +1,95 @@
+
+ 4.0.0
+
+ akka-kernel
+ Akka Kernel Module
+
+ jar
+
+
+ akka
+ se.scalablesolutions.akka
+ 0.6
+ ../pom.xml
+
+
+
+
+
+ akka-actors
+ se.scalablesolutions.akka
+ 0.6
+
+
+ org.apache
+ zookeeper
+ 3.1.0
+
+
+
+
+
+
+ maven-assembly-plugin
+ 2.2-beta-2
+
+
+ create-executable-jar
+ install
+
+ single
+
+
+
+
+ jar-with-dependencies
+
+
+
+
+ se.scalablesolutions.akka.kernel.Kernel
+
+
+
+
+
+
+
+ maven-antrun-plugin
+
+
+ install
+
+
+
+
+
+
+ run
+
+
+
+
+
+
+
+ false
+ ../config
+
+ akka.conf
+ akka-reference.conf
+
+
+
+ false
+ src/main/resources
+
+ META-INF/*
+
+
+
+
+
diff --git a/kernel/src/main/scala/stm/ChangeSet.scala b/akka-stm/src/main/scala/ChangeSet.scala
similarity index 100%
rename from kernel/src/main/scala/stm/ChangeSet.scala
rename to akka-stm/src/main/scala/ChangeSet.scala
diff --git a/kernel/src/main/scala/collection/HashTrie.scala b/akka-stm/src/main/scala/HashTrie.scala
similarity index 100%
rename from kernel/src/main/scala/collection/HashTrie.scala
rename to akka-stm/src/main/scala/HashTrie.scala
diff --git a/kernel/src/main/scala/stm/Transaction.scala b/akka-stm/src/main/scala/Transaction.scala
similarity index 100%
rename from kernel/src/main/scala/stm/Transaction.scala
rename to akka-stm/src/main/scala/Transaction.scala
diff --git a/kernel/src/main/scala/stm/TransactionManagement.scala b/akka-stm/src/main/scala/TransactionManagement.scala
similarity index 100%
rename from kernel/src/main/scala/stm/TransactionManagement.scala
rename to akka-stm/src/main/scala/TransactionManagement.scala
diff --git a/kernel/src/main/scala/stm/TransactionWatcher.scala b/akka-stm/src/main/scala/TransactionWatcher.scala
similarity index 100%
rename from kernel/src/main/scala/stm/TransactionWatcher.scala
rename to akka-stm/src/main/scala/TransactionWatcher.scala
diff --git a/akka-stm/src/main/scala/TransactionalState.scala b/akka-stm/src/main/scala/TransactionalState.scala
new file mode 100644
index 0000000000..266070f15b
--- /dev/null
+++ b/akka-stm/src/main/scala/TransactionalState.scala
@@ -0,0 +1,245 @@
+/**
+ * Copyright (C) 2009 Scalable Solutions.
+ */
+
+package se.scalablesolutions.akka.kernel.state
+
+import kernel.stm.TransactionManagement
+import akka.collection._
+
+import org.codehaus.aspectwerkz.proxy.Uuid
+
+import scala.collection.mutable.{ArrayBuffer, HashMap}
+
+/**
+ * Scala API.
+ *
+ * Example Scala usage:
+ *
+ * val myMap = TransactionalState.newMap
+ *
+ */
+object TransactionalState extends TransactionalState
+
+/**
+ * Java API.
+ *
+ * Example Java usage:
+ *
+ * TransactionalState state = new TransactionalState();
+ * TransactionalMap myMap = state.newMap();
+ *
+ */
+class TransactionalState {
+ def newMap[K, V]: TransactionalMap[K, V] = new InMemoryTransactionalMap[K, V]
+ def newVector[T]: TransactionalVector[T] = new InMemoryTransactionalVector[T]
+ def newRef[T]: TransactionalRef[T] = new TransactionalRef[T]
+}
+
+/**
+ * @author Jonas Bonér
+ */
+@serializable
+trait Transactional {
+ // FIXME: won't work across the cluster
+ val uuid = Uuid.newUuid.toString
+
+ private[kernel] def begin
+ private[kernel] def commit
+ private[kernel] def rollback
+
+ protected def verifyTransaction = {
+ val cflowTx = TransactionManagement.threadBoundTx.get
+ if (!cflowTx.isDefined) {
+ throw new IllegalStateException("Can't access transactional reference outside the scope of a transaction [" + this + "]")
+ } else {
+ cflowTx.get.register(this)
+ }
+ }
+}
+
+/**
+ * Base trait for all state implementations (persistent or in-memory).
+ *
+ * FIXME: Create Java versions using pcollections
+ *
+ * @author Jonas Bonér
+ */
+trait TransactionalMap[K, V] extends Transactional with scala.collection.mutable.Map[K, V] {
+ override def hashCode: Int = System.identityHashCode(this);
+ override def equals(other: Any): Boolean = false
+ def remove(key: K)
+}
+
+/**
+ * Not thread-safe, but should only be using from within an Actor, e.g. one single thread at a time.
+ *
+ * @author Jonas Bonér
+ */
+class InMemoryTransactionalMap[K, V] extends TransactionalMap[K, V] {
+ protected[kernel] var state = new HashTrie[K, V]
+ protected[kernel] var snapshot = state
+
+ // ---- For Transactional ----
+ override def begin = snapshot = state
+ override def commit = snapshot = state
+ override def rollback = state = snapshot
+
+ // ---- Overriding scala.collection.mutable.Map behavior ----
+ override def contains(key: K): Boolean = {
+ verifyTransaction
+ state.contains(key)
+ }
+
+ override def clear = {
+ verifyTransaction
+ state = new HashTrie[K, V]
+ }
+
+ override def size: Int = {
+ verifyTransaction
+ state.size
+ }
+
+ // ---- For scala.collection.mutable.Map ----
+ override def remove(key: K) = {
+ verifyTransaction
+ state = state - key
+ }
+
+ override def elements: Iterator[(K, V)] = {
+// verifyTransaction
+ state.elements
+ }
+
+ override def get(key: K): Option[V] = {
+ verifyTransaction
+ state.get(key)
+ }
+
+ override def put(key: K, value: V): Option[V] = {
+ verifyTransaction
+ val oldValue = state.get(key)
+ state = state.update(key, value)
+ oldValue
+ }
+
+ override def -=(key: K) = {
+ verifyTransaction
+ remove(key)
+ }
+
+ override def update(key: K, value: V) = {
+ verifyTransaction
+ put(key, value)
+ }
+}
+
+/**
+ * Base for all transactional vector implementations.
+ *
+ * @author Jonas Bonér
+ */
+abstract class TransactionalVector[T] extends Transactional with RandomAccessSeq[T] {
+ override def hashCode: Int = System.identityHashCode(this);
+ override def equals(other: Any): Boolean = false
+
+ def add(elem: T)
+
+ def get(index: Int): T
+
+ def getRange(start: Int, count: Int): List[T]
+}
+
+/**
+ * Implements an in-memory transactional vector.
+ *
+ * Not thread-safe, but should only be using from within an Actor, e.g. one single thread at a time.
+ *
+ * @author Jonas Bonér
+ */
+class InMemoryTransactionalVector[T] extends TransactionalVector[T] {
+ private[kernel] var state: Vector[T] = EmptyVector
+ private[kernel] var snapshot = state
+
+ def add(elem: T) = {
+ verifyTransaction
+ state = state + elem
+ }
+
+ def get(index: Int): T = {
+ verifyTransaction
+ state(index)
+ }
+
+ def getRange(start: Int, count: Int): List[T] = {
+ verifyTransaction
+ state.slice(start, count).toList.asInstanceOf[List[T]]
+ }
+
+ // ---- For Transactional ----
+ override def begin = snapshot = state
+
+ override def commit = snapshot = state
+
+ override def rollback = state = snapshot
+
+ // ---- For Seq ----
+ def length: Int = {
+ verifyTransaction
+ state.length
+ }
+
+ def apply(index: Int): T = {
+ verifyTransaction
+ state(index)
+ }
+
+ override def elements: Iterator[T] = {
+ //verifyTransaction
+ state.elements
+ }
+
+ override def toList: List[T] = {
+ verifyTransaction
+ state.toList
+ }
+}
+
+/**
+ * Implements a transactional reference.
+ *
+ * Not thread-safe, but should only be using from within an Actor, e.g. one single thread at a time.
+ *
+ * @author Jonas Bonér
+ */
+class TransactionalRef[T] extends Transactional {
+ private[kernel] var ref: Option[T] = None
+ private[kernel] var snapshot: Option[T] = None
+
+ override def begin = if (ref.isDefined) snapshot = Some(ref.get)
+
+ override def commit = if (ref.isDefined) snapshot = Some(ref.get)
+
+ override def rollback = if (snapshot.isDefined) ref = Some(snapshot.get)
+
+ def swap(elem: T) = {
+ verifyTransaction
+ ref = Some(elem)
+ }
+
+ def get: Option[T] = {
+ verifyTransaction
+ ref
+ }
+
+ def getOrElse(default: => T): T = {
+ verifyTransaction
+ ref.getOrElse(default)
+ }
+
+ def isDefined: Boolean = {
+ verifyTransaction
+ ref.isDefined
+ }
+}
diff --git a/kernel/src/main/scala/collection/Vector.scala b/akka-stm/src/main/scala/Vector.scala
similarity index 100%
rename from kernel/src/main/scala/collection/Vector.scala
rename to akka-stm/src/main/scala/Vector.scala
diff --git a/util-java/pom.xml b/akka-util-java/pom.xml
similarity index 100%
rename from util-java/pom.xml
rename to akka-util-java/pom.xml
diff --git a/util-java/src/main/java/se/scalablesolutions/akka/annotation/configuration.java b/akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/configuration.java
similarity index 100%
rename from util-java/src/main/java/se/scalablesolutions/akka/annotation/configuration.java
rename to akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/configuration.java
diff --git a/util-java/src/main/java/se/scalablesolutions/akka/annotation/immutable.java b/akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/immutable.java
similarity index 100%
rename from util-java/src/main/java/se/scalablesolutions/akka/annotation/immutable.java
rename to akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/immutable.java
diff --git a/util-java/src/main/java/se/scalablesolutions/akka/annotation/oneway.java b/akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/oneway.java
similarity index 100%
rename from util-java/src/main/java/se/scalablesolutions/akka/annotation/oneway.java
rename to akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/oneway.java
diff --git a/util-java/src/main/java/se/scalablesolutions/akka/annotation/postrestart.java b/akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/postrestart.java
similarity index 100%
rename from util-java/src/main/java/se/scalablesolutions/akka/annotation/postrestart.java
rename to akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/postrestart.java
diff --git a/util-java/src/main/java/se/scalablesolutions/akka/annotation/prerestart.java b/akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/prerestart.java
similarity index 100%
rename from util-java/src/main/java/se/scalablesolutions/akka/annotation/prerestart.java
rename to akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/prerestart.java
diff --git a/util-java/src/main/java/se/scalablesolutions/akka/annotation/state.java b/akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/state.java
similarity index 100%
rename from util-java/src/main/java/se/scalablesolutions/akka/annotation/state.java
rename to akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/state.java
diff --git a/util-java/src/main/java/se/scalablesolutions/akka/annotation/transactionrequired.java b/akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/transactionrequired.java
similarity index 100%
rename from util-java/src/main/java/se/scalablesolutions/akka/annotation/transactionrequired.java
rename to akka-util-java/src/main/java/se/scalablesolutions/akka/annotation/transactionrequired.java
diff --git a/util-java/src/main/java/se/scalablesolutions/akka/kernel/config/ActiveObjectGuiceModule.java b/akka-util-java/src/main/java/se/scalablesolutions/akka/kernel/config/ActiveObjectGuiceModule.java
similarity index 100%
rename from util-java/src/main/java/se/scalablesolutions/akka/kernel/config/ActiveObjectGuiceModule.java
rename to akka-util-java/src/main/java/se/scalablesolutions/akka/kernel/config/ActiveObjectGuiceModule.java
diff --git a/util-java/src/main/java/se/scalablesolutions/akka/kernel/config/DependencyBinding.java b/akka-util-java/src/main/java/se/scalablesolutions/akka/kernel/config/DependencyBinding.java
similarity index 100%
rename from util-java/src/main/java/se/scalablesolutions/akka/kernel/config/DependencyBinding.java
rename to akka-util-java/src/main/java/se/scalablesolutions/akka/kernel/config/DependencyBinding.java
diff --git a/util-java/src/main/java/se/scalablesolutions/akka/kernel/nio/protobuf/RemoteProtocol.java b/akka-util-java/src/main/java/se/scalablesolutions/akka/kernel/nio/protobuf/RemoteProtocol.java
similarity index 100%
rename from util-java/src/main/java/se/scalablesolutions/akka/kernel/nio/protobuf/RemoteProtocol.java
rename to akka-util-java/src/main/java/se/scalablesolutions/akka/kernel/nio/protobuf/RemoteProtocol.java
diff --git a/util-java/src/main/java/se/scalablesolutions/akka/kernel/nio/protobuf/RemoteProtocol.proto b/akka-util-java/src/main/java/se/scalablesolutions/akka/kernel/nio/protobuf/RemoteProtocol.proto
similarity index 100%
rename from util-java/src/main/java/se/scalablesolutions/akka/kernel/nio/protobuf/RemoteProtocol.proto
rename to akka-util-java/src/main/java/se/scalablesolutions/akka/kernel/nio/protobuf/RemoteProtocol.proto
diff --git a/akka.ipr b/akka.ipr
index 175d776ea3..068b33fd4c 100644
--- a/akka.ipr
+++ b/akka.ipr
@@ -503,13 +503,17 @@
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
@@ -542,17 +546,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -597,17 +590,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -663,6 +645,386 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -696,15 +1058,15 @@
-
+
-
+
-
+
-
+
@@ -795,6 +1157,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -817,17 +1190,6 @@
-
-
-
-
-
-
-
-
-
-
-
@@ -861,6 +1223,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -905,39 +1278,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -971,37 +1311,26 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -1026,137 +1355,92 @@
-
+
-
+
-
+
-
+
-
+
-
-
+
-
-
+
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
+
-
-
-
-
+
-
-
-
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -1170,15 +1454,59 @@
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1280,28 +1608,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1346,6 +1652,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1379,319 +1707,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/akka.iws b/akka.iws
index 9fc47e8b25..1d9fcc5852 100644
--- a/akka.iws
+++ b/akka.iws
@@ -2,23 +2,155 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -69,89 +201,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -212,7 +262,7 @@
-
+
@@ -222,11 +272,11 @@
-
+
-
+
@@ -236,33 +286,7 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -272,211 +296,11 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -501,8 +325,8 @@
-
+
@@ -649,17 +473,17 @@
125
-
-
+
+
-
+
-
+
@@ -716,13 +540,6 @@
-
-
-
-
-
-
-
@@ -730,34 +547,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -765,34 +554,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/changes.xml b/changes.xml
index 80382698a0..5b13aabcba 100644
--- a/changes.xml
+++ b/changes.xml
@@ -1,47 +1,51 @@
-
-
-
- Akka Release Notes
-
-
-
-
- MongoDB as Akka storage backend
- Support for using the Lift Web framework with Actors
- Support for using Scala XML tags in RESTful Actors (scala-jersey)
- Support for Comet Actors using Atmosphere
- Statistics recorder with JMX and REST APIs
- Management service with JMX and REST APIs
- JSON serialization for Java objects (using Jackson)
- JSON serialization for Scala objects (using scala-json)
- Protobuf serialization for Java and Scala objects
- SBinary serialization for Scala objects
- Protobuf as remote protocol
- Added CassandraSession API (with socket pooling) wrapping Cassandra's Thrift API in Scala and Java APIs
- CassandraStorage is now works with external Cassandra cluster
- Removed embedded Cassandra mode
- Removed startup scripts and lib dir
- ActorRegistry for retrieving Actor instances
- Now start up kernel with 'java -jar dist/akka-0.6.jar'
- Concurrent mode is now per actor basis
- Made Akka Web App aware, does not require AKKA_HOME when using it as a library
- Fixed dispatcher bug
- Cleaned up Maven scripts and distribution in general
- Added mailing list: akka-user@googlegroups.com
- Improved and restructured documentation
- New URL: http://akkasource.org
-
-
-
+
+
+
+ Akka Release Notes
+
+
+
+
+ MongoDB as Akka storage backend
+ New transparent JSON serialization of Scala objects based on sjson
+ MongoDB backed actor example
+ Support for using the Lift Web framework with Actors
+ Security module for authentication and authorization
+ Support for using Scala XML tags in RESTful Actors (scala-jersey)
+ Support for Comet Actors using Atmosphere
+ AMQP module; abstracted as an Actor
+ Modularization of distribution into core and submodules
+ JSON serialization for Java objects (using Jackson)
+ JSON serialization for Scala objects (using scala-json)
+ Protobuf serialization for Java and Scala objects
+ SBinary serialization for Scala objects
+ Protobuf as remote protocol
+ Added CassandraSession API (with socket pooling) wrapping Cassandra's Thrift API in Scala and Java APIs
+ CassandraStorage is now works with external Cassandra cluster
+ Removed embedded Cassandra mode
+ Removed startup scripts and lib dir
+ ActorRegistry for retrieving Actor instances
+ SchedulerActor for scheduling periodic tasks
+ Now start up kernel with 'java -jar dist/akka-0.6.jar'
+ Concurrent mode is now per actor basis
+ Made Akka Web App aware, does not require AKKA_HOME when using it as a library
+ Fixed dispatcher bug
+ Cleaned up Maven scripts and distribution in general
+ Added mailing list: akka-user@googlegroups.com
+ Improved and restructured documentation
+ New URL: http://akkasource.org
+
+
+
\ No newline at end of file
diff --git a/fun-test-java/akka-fun-test-java.iml b/fun-test-java/akka-fun-test-java.iml
deleted file mode 100644
index e09beb736b..0000000000
--- a/fun-test-java/akka-fun-test-java.iml
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/kernel/akka-kernel.iml b/kernel/akka-kernel.iml
deleted file mode 100644
index 807760933a..0000000000
--- a/kernel/akka-kernel.iml
+++ /dev/null
@@ -1,95 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/kernel/kernel.iml b/kernel/kernel.iml
deleted file mode 100755
index 49b183109e..0000000000
--- a/kernel/kernel.iml
+++ /dev/null
@@ -1,667 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/pom.xml b/pom.xml
index 5027ea5923..c6f237274d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,13 +18,17 @@
- util-java
- kernel
+ akka-util-java
+ akka-actors
+ akka-stm
+ akka-persistence
+ akka-rest
+ akka-camel
akka-amqp
- fun-test-java
- samples-scala
- samples-lift
- samples-java
+ akka-fun-test-java
+ akka-samples-scala
+ akka-samples-lift
+ akka-samples-java
diff --git a/samples-java/akka-samples-java.iml b/samples-java/akka-samples-java.iml
deleted file mode 100644
index 97ec95ec37..0000000000
--- a/samples-java/akka-samples-java.iml
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/samples-lift/akka-samples-lift.iml b/samples-lift/akka-samples-lift.iml
deleted file mode 100644
index 5b3e6a796f..0000000000
--- a/samples-lift/akka-samples-lift.iml
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/samples-lift/src/main/webapp/WEB-INF/web.xml b/samples-lift/src/main/webapp/WEB-INF/web.xml
deleted file mode 100755
index d474da1ca1..0000000000
--- a/samples-lift/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- LiftFilter
- Lift Filter
- The Filter that intercepts lift calls
- net.liftweb.http.LiftFilter
-
-
- LiftFilter
- /*
-
-
- AkkaServlet
- se.scalablesolutions.akka.kernel.rest.AkkaServlet
-
-
- AkkaServlet
- /*
-
-
diff --git a/samples-scala/akka-samples-scala.iml b/samples-scala/akka-samples-scala.iml
deleted file mode 100644
index f88fe93371..0000000000
--- a/samples-scala/akka-samples-scala.iml
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/util-java/akka-util-java.iml b/util-java/akka-util-java.iml
deleted file mode 100644
index a80717f779..0000000000
--- a/util-java/akka-util-java.iml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/util-java/util-java.iml b/util-java/util-java.iml
deleted file mode 100755
index 52ffb49a05..0000000000
--- a/util-java/util-java.iml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-