finished STM and persistence test for Ref, Vector, Map + implemented STM for Ref
This commit is contained in:
parent
f3ac665274
commit
795c7b3da0
8 changed files with 503 additions and 180 deletions
534
akka.iws
534
akka.iws
|
|
@ -2,15 +2,14 @@
|
||||||
<project relativePaths="false" version="4">
|
<project relativePaths="false" version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" name="Default" comment=" # Brief commit desciption here # Full commit description here (comment lines starting with '#' will not be included) ">
|
<list default="true" name="Default" comment=" # Brief commit desciption here # Full commit description here (comment lines starting with '#' will not be included) ">
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/GenericServer.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/GenericServer.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/CassandraNode.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/CassandraNode.scala" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/Supervisor.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/Supervisor.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentClasher.java" afterPath="$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentClasher.java" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/reactor/Future.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/reactor/Future.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateful.java" afterPath="$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateful.java" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/reactor/EventBasedDispatcher.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/reactor/EventBasedDispatcher.scala" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/test/scala/SupervisorSpec.scala" afterPath="$PROJECT_DIR$/kernel/src/test/scala/SupervisorSpec.scala" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/State.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/State.scala" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka.iws" afterPath="$PROJECT_DIR$/akka.iws" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka.iws" afterPath="$PROJECT_DIR$/akka.iws" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/reactor/Reactor.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/reactor/Reactor.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java" afterPath="$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java" />
|
||||||
</list>
|
</list>
|
||||||
<ignored path="akka.iws" />
|
<ignored path="akka.iws" />
|
||||||
<ignored path=".idea/workspace.xml" />
|
<ignored path=".idea/workspace.xml" />
|
||||||
|
|
@ -30,7 +29,46 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="DebuggerManager">
|
<component name="DebuggerManager">
|
||||||
<line_breakpoints>
|
<line_breakpoints>
|
||||||
<breakpoint url="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" line="142" class="Class at ActiveObject.scala:142" package="">
|
<breakpoint url="file://$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala" line="86" class="Class at Transaction.scala:86" package="">
|
||||||
|
<option name="ENABLED" value="true" />
|
||||||
|
<option name="LOG_ENABLED" value="false" />
|
||||||
|
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||||
|
<option name="SUSPEND_POLICY" value="SuspendAll" />
|
||||||
|
<option name="COUNT_FILTER_ENABLED" value="false" />
|
||||||
|
<option name="COUNT_FILTER" value="0" />
|
||||||
|
<option name="CONDITION_ENABLED" value="false" />
|
||||||
|
<option name="CLASS_FILTERS_ENABLED" value="false" />
|
||||||
|
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
|
||||||
|
<option name="CONDITION" value="" />
|
||||||
|
<option name="LOG_MESSAGE" value="" />
|
||||||
|
</breakpoint>
|
||||||
|
<breakpoint url="file://$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala" line="66" class="Class at Transaction.scala:66" package="">
|
||||||
|
<option name="ENABLED" value="true" />
|
||||||
|
<option name="LOG_ENABLED" value="false" />
|
||||||
|
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||||
|
<option name="SUSPEND_POLICY" value="SuspendAll" />
|
||||||
|
<option name="COUNT_FILTER_ENABLED" value="false" />
|
||||||
|
<option name="COUNT_FILTER" value="0" />
|
||||||
|
<option name="CONDITION_ENABLED" value="false" />
|
||||||
|
<option name="CLASS_FILTERS_ENABLED" value="false" />
|
||||||
|
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
|
||||||
|
<option name="CONDITION" value="" />
|
||||||
|
<option name="LOG_MESSAGE" value="" />
|
||||||
|
</breakpoint>
|
||||||
|
<breakpoint url="file://$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala" line="50" class="Class at Transaction.scala:50" package="">
|
||||||
|
<option name="ENABLED" value="true" />
|
||||||
|
<option name="LOG_ENABLED" value="false" />
|
||||||
|
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||||
|
<option name="SUSPEND_POLICY" value="SuspendAll" />
|
||||||
|
<option name="COUNT_FILTER_ENABLED" value="false" />
|
||||||
|
<option name="COUNT_FILTER" value="0" />
|
||||||
|
<option name="CONDITION_ENABLED" value="false" />
|
||||||
|
<option name="CLASS_FILTERS_ENABLED" value="false" />
|
||||||
|
<option name="INSTANCE_FILTERS_ENABLED" value="false" />
|
||||||
|
<option name="CONDITION" value="" />
|
||||||
|
<option name="LOG_MESSAGE" value="" />
|
||||||
|
</breakpoint>
|
||||||
|
<breakpoint url="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" line="109" class="Class at ActiveObject.scala:109" package="">
|
||||||
<option name="ENABLED" value="true" />
|
<option name="ENABLED" value="true" />
|
||||||
<option name="LOG_ENABLED" value="false" />
|
<option name="LOG_ENABLED" value="false" />
|
||||||
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||||
|
|
@ -104,79 +142,34 @@
|
||||||
<file leaf-file-name="ActiveObject.scala" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="ActiveObject.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="70" column="18" selection-start="2370" selection-end="2370" vertical-scroll-proportion="0.0">
|
<state line="137" column="0" selection-start="4931" selection-end="4931" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="EventBasedDispatcher.scala" pinned="false" current="true" current-in-tab="true">
|
<file leaf-file-name="List.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/reactor/EventBasedDispatcher.scala">
|
<entry file="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3-sources.jar!/scala/List.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="13" column="0" selection-start="454" selection-end="454" vertical-scroll-proportion="0.2035225">
|
<state line="830" column="0" selection-start="25551" selection-end="25551" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="Future.scala" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="State.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/reactor/Future.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/State.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="6" column="37" selection-start="161" selection-end="161" vertical-scroll-proportion="0.0">
|
<state line="234" column="9" selection-start="8333" selection-end="8333" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="Supervisor.scala" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="Transaction.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/Supervisor.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="334" column="0" selection-start="11876" selection-end="11876" vertical-scroll-proportion="0.0">
|
<state line="53" column="0" selection-start="1786" selection-end="1786" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="GenericServer.scala" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/GenericServer.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="261" column="124" selection-start="8504" selection-end="8504" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="SupervisorSpec.scala" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/SupervisorSpec.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="390" column="62" selection-start="10099" selection-end="10099" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="GenericServerContainerSuite.scala" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/GenericServerContainerSuite.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="178" column="0" selection-start="3504" selection-end="3504" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="Transaction.class" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/WEB-INF/classes/se/scalablesolutions/akka/kernel/Transaction.class">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="16" column="0" selection-start="1321" selection-end="1321" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="PersistentStateTest.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="58" column="14" selection-start="2649" selection-end="2649" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
@ -185,7 +178,52 @@
|
||||||
<file leaf-file-name="CassandraNode.scala" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="CassandraNode.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/CassandraNode.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/CassandraNode.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="0" column="4" selection-start="3" selection-end="3" vertical-scroll-proportion="0.0">
|
<state line="32" column="0" selection-start="940" selection-end="940" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="PersistentStateTest.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="74" column="49" selection-start="3552" selection-end="3552" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="PersistentStateful.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateful.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="17" column="40" selection-start="647" selection-end="647" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="ProxyMessageDispatcher.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/reactor/ProxyMessageDispatcher.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="12" column="6" selection-start="401" selection-end="401" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="ThreadBasedDispatcher.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="102" column="0" selection-start="3620" selection-end="3620" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="EventBasedDispatcher.scala" pinned="false" current="true" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/reactor/EventBasedDispatcher.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
@ -236,6 +274,80 @@
|
||||||
<option name="myItemId" value="akka" />
|
<option name="myItemId" value="akka" />
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-util-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-util-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="util-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-util-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="util-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="src" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="main" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-util-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="util-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="src" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="main" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="annotation" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</PATH>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
|
|
@ -246,6 +358,88 @@
|
||||||
<option name="myItemId" value="akka-kernel" />
|
<option name="myItemId" value="akka-kernel" />
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="Libraries" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.LibraryGroupNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="Libraries" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.LibraryGroupNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="Maven: org.apache.cassandra:cassandra:0.3.0-dev" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="cassandra-0.3.0-dev.jar" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="Libraries" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.LibraryGroupNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="Maven: org.apache.cassandra:cassandra:0.3.0-dev" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="cassandra-0.3.0-dev.jar" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="service" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="Libraries" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.LibraryGroupNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="Maven: org.apache.cassandra:cassandra:0.3.0-dev" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="cassandra-0.3.0-dev.jar" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="service" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="CassandraServer" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</PATH>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
|
|
@ -453,6 +647,40 @@
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-funtest-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="fun-test-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="src" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="test" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="api" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="InMemoryStateTest" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="akka" />
|
<option name="myItemId" value="akka" />
|
||||||
|
|
@ -487,6 +715,74 @@
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-funtest-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="fun-test-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="src" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="test" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="api" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="PersistentFailer" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-funtest-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="fun-test-java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="src" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="test" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="java" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="api" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="PersistentClasher" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="akka" />
|
<option name="myItemId" value="akka" />
|
||||||
|
|
@ -973,15 +1269,15 @@
|
||||||
</method>
|
</method>
|
||||||
</configuration>
|
</configuration>
|
||||||
<list size="9">
|
<list size="9">
|
||||||
<item index="0" class="java.lang.String" itemvalue="Scala Console.Scala Console" />
|
<item index="0" class="java.lang.String" itemvalue="Application.Kernel" />
|
||||||
<item index="1" class="java.lang.String" itemvalue="Application.Kernel" />
|
<item index="1" class="java.lang.String" itemvalue="JUnit.CamelSpec" />
|
||||||
<item index="2" class="java.lang.String" itemvalue="JUnit.CamelSpec" />
|
<item index="2" class="java.lang.String" itemvalue="JUnit.InMemoryStateTest" />
|
||||||
<item index="3" class="java.lang.String" itemvalue="JUnit.InMemoryStateTest" />
|
<item index="3" class="java.lang.String" itemvalue="JUnit.PersistentStateTest" />
|
||||||
<item index="4" class="java.lang.String" itemvalue="JUnit.PersistentStateTest" />
|
<item index="4" class="java.lang.String" itemvalue="JUnit.ActiveObjectGuiceConfiguratorTest" />
|
||||||
<item index="5" class="java.lang.String" itemvalue="JUnit.ActiveObjectGuiceConfiguratorTest" />
|
<item index="5" class="java.lang.String" itemvalue="JUnit.JerseySpec" />
|
||||||
<item index="6" class="java.lang.String" itemvalue="JUnit.JerseySpec" />
|
<item index="6" class="java.lang.String" itemvalue="JUnit.REST" />
|
||||||
<item index="7" class="java.lang.String" itemvalue="JUnit.REST" />
|
<item index="7" class="java.lang.String" itemvalue="JUnit.ThreadBasedDispatcherTest" />
|
||||||
<item index="8" class="java.lang.String" itemvalue="JUnit.ThreadBasedDispatcherTest" />
|
<item index="8" class="java.lang.String" itemvalue="Scala Console.Scala Console" />
|
||||||
</list>
|
</list>
|
||||||
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
||||||
<Host>localhost</Host>
|
<Host>localhost</Host>
|
||||||
|
|
@ -1037,11 +1333,11 @@
|
||||||
<window_info id="Data Sources" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3294881" sideWeight="0.6875" order="3" side_tool="false" />
|
<window_info id="Data Sources" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3294881" sideWeight="0.6875" order="3" side_tool="false" />
|
||||||
<window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3294881" sideWeight="0.59183675" order="4" side_tool="false" />
|
<window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3294881" sideWeight="0.59183675" order="4" side_tool="false" />
|
||||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32780612" sideWeight="0.5" order="6" side_tool="false" />
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32780612" sideWeight="0.5" order="6" side_tool="false" />
|
||||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3299411" sideWeight="0.0" order="1" side_tool="false" />
|
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3299411" sideWeight="0.77583027" order="1" side_tool="false" />
|
||||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32472324" sideWeight="0.5" order="1" side_tool="false" />
|
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32472324" sideWeight="0.5" order="1" side_tool="false" />
|
||||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24873829" sideWeight="0.74165636" order="0" side_tool="false" />
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24873829" sideWeight="0.74165636" order="0" side_tool="false" />
|
||||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" />
|
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" />
|
||||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.21771218" sideWeight="0.5" order="12" side_tool="false" />
|
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.21771218" sideWeight="0.5" order="12" side_tool="false" />
|
||||||
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="13" side_tool="false" />
|
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="13" side_tool="false" />
|
||||||
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" />
|
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" />
|
||||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24945927" sideWeight="0.6875" order="1" side_tool="false" />
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24945927" sideWeight="0.6875" order="1" side_tool="false" />
|
||||||
|
|
@ -1099,114 +1395,114 @@
|
||||||
</buildFile>
|
</buildFile>
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala">
|
<entry file="file://$PROJECT_DIR$/util-java/src/main/java/se/scalablesolutions/akka/annotation/state.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="86" column="0" selection-start="2898" selection-end="2898" vertical-scroll-proportion="0.0">
|
<state line="10" column="18" selection-start="211" selection-end="211" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/reactor/Reactor.scala">
|
<entry file="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3-sources.jar!/scala/Function1.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="0" column="4" selection-start="3" selection-end="3" vertical-scroll-proportion="0.0">
|
<state line="37" column="0" selection-start="1217" selection-end="1217" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateful.java">
|
<entry file="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3-sources.jar!/scala/collection/mutable/HashSet.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="8" column="51" selection-start="364" selection-end="364" vertical-scroll-proportion="0.0">
|
<state line="30" column="0" selection-start="970" selection-end="970" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="jar://$PROJECT_DIR$/../../../bin/scala-2.7.3.final/src/scala-library-src.jar!/scala/Seq.scala">
|
<entry file="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3-sources.jar!/scala/List.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="197" column="6" selection-start="6523" selection-end="6523" vertical-scroll-proportion="0.0">
|
<state line="830" column="0" selection-start="25551" selection-end="25551" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/State.scala">
|
<entry file="file://$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentFailer.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="204" column="66" selection-start="7094" selection-end="7094" vertical-scroll-proportion="0.0">
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3-sources.jar!/scala/RandomAccessSeq.scala">
|
<entry file="file://$PROJECT_DIR$/WEB-INF/classes/se/scalablesolutions/akka/kernel/CassandraNode.class">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="245" column="6" selection-start="10181" selection-end="10181" vertical-scroll-proportion="0.0">
|
<state line="16" column="0" selection-start="1429" selection-end="1429" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/WEB-INF/classes/se/scalablesolutions/akka/kernel/Transaction.class">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="16" column="0" selection-start="1321" selection-end="1321" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="58" column="14" selection-start="2649" selection-end="2649" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/CassandraNode.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="0" column="4" selection-start="3" selection-end="3" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="70" column="18" selection-start="2370" selection-end="2370" vertical-scroll-proportion="0.0">
|
<state line="137" column="0" selection-start="4931" selection-end="4931" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/reactor/Future.scala">
|
<entry file="file://$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="6" column="37" selection-start="161" selection-end="161" vertical-scroll-proportion="0.0">
|
<state line="74" column="49" selection-start="3552" selection-end="3552" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/Supervisor.scala">
|
<entry file="file://$PROJECT_DIR$/fun-test-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateful.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="334" column="0" selection-start="11876" selection-end="11876" vertical-scroll-proportion="0.0">
|
<state line="17" column="40" selection-start="647" selection-end="647" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/GenericServer.scala">
|
<entry file="file://$PROJECT_DIR$/../../java/cassandra/src/java/org/apache/cassandra/service/CassandraServer.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="261" column="124" selection-start="8504" selection-end="8504" vertical-scroll-proportion="0.0">
|
<state line="282" column="0" selection-start="9838" selection-end="9838" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/SupervisorSpec.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/CassandraNode.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="390" column="62" selection-start="10099" selection-end="10099" vertical-scroll-proportion="0.0">
|
<state line="32" column="0" selection-start="940" selection-end="940" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/GenericServerContainerSuite.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="178" column="0" selection-start="3504" selection-end="3504" vertical-scroll-proportion="0.0">
|
<state line="53" column="0" selection-start="1786" selection-end="1786" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/State.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="234" column="9" selection-start="8333" selection-end="8333" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/reactor/ProxyMessageDispatcher.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="12" column="6" selection-start="401" selection-end="401" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/reactor/ThreadBasedDispatcher.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="102" column="0" selection-start="3620" selection-end="3620" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/reactor/EventBasedDispatcher.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/reactor/EventBasedDispatcher.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="13" column="0" selection-start="454" selection-end="454" vertical-scroll-proportion="0.2035225">
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ import se.scalablesolutions.akka.kernel.TransactionalMap;
|
||||||
import se.scalablesolutions.akka.kernel.CassandraPersistentTransactionalMap;
|
import se.scalablesolutions.akka.kernel.CassandraPersistentTransactionalMap;
|
||||||
|
|
||||||
public class PersistentClasher {
|
public class PersistentClasher {
|
||||||
private TransactionalMap state = new CassandraPersistentTransactionalMap(this);
|
private TransactionalMap state = new CassandraPersistentTransactionalMap();
|
||||||
|
|
||||||
public String getState(String key) {
|
public String getState(String key) {
|
||||||
return (String)state.get(key).get();
|
return (String)state.get(key).get();
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ public class PersistentStateTest extends TestCase {
|
||||||
PersistentStateful stateful = conf.getActiveObject(PersistentStateful.class);
|
PersistentStateful stateful = conf.getActiveObject(PersistentStateful.class);
|
||||||
stateful.setMapState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "init"); // set init state
|
stateful.setMapState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "init"); // set init state
|
||||||
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // transactional
|
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // transactional
|
||||||
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // to trigger commit
|
|
||||||
assertEquals("new state", stateful.getMapState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess"));
|
assertEquals("new state", stateful.getMapState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -60,8 +59,8 @@ public class PersistentStateTest extends TestCase {
|
||||||
PersistentStateful stateful = conf.getActiveObject(PersistentStateful.class);
|
PersistentStateful stateful = conf.getActiveObject(PersistentStateful.class);
|
||||||
stateful.setVectorState("init"); // set init state
|
stateful.setVectorState("init"); // set init state
|
||||||
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // transactional
|
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // transactional
|
||||||
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // to trigger commit
|
assertEquals("init", stateful.getVectorState(0));
|
||||||
assertEquals("new state", stateful.getVectorState());
|
assertEquals("new state", stateful.getVectorState(1));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testVectorShouldRollbackStateForStatefulServerInCaseOfFailure() {
|
public void testVectorShouldRollbackStateForStatefulServerInCaseOfFailure() {
|
||||||
|
|
@ -73,14 +72,13 @@ public class PersistentStateTest extends TestCase {
|
||||||
fail("should have thrown an exception");
|
fail("should have thrown an exception");
|
||||||
} catch (RuntimeException e) {
|
} catch (RuntimeException e) {
|
||||||
} // expected
|
} // expected
|
||||||
assertEquals("init", stateful.getVectorState()); // check that state is == init state
|
assertEquals("init", stateful.getVectorState(0)); // check that state is == init state
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
public void testRefShouldNotRollbackStateForStatefulServerInCaseOfSuccess() {
|
public void testRefShouldNotRollbackStateForStatefulServerInCaseOfSuccess() {
|
||||||
PersistentStateful stateful = conf.getActiveObject(PersistentStateful.class);
|
PersistentStateful stateful = conf.getActiveObject(PersistentStateful.class);
|
||||||
stateful.setRefState("init"); // set init state
|
stateful.setRefState("init"); // set init state
|
||||||
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // transactional
|
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // transactional
|
||||||
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // to trigger commit
|
|
||||||
assertEquals("new state", stateful.getRefState());
|
assertEquals("new state", stateful.getRefState());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -95,5 +93,4 @@ public class PersistentStateTest extends TestCase {
|
||||||
} // expected
|
} // expected
|
||||||
assertEquals("init", stateful.getRefState()); // check that state is == init state
|
assertEquals("init", stateful.getRefState()); // check that state is == init state
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,46 +5,54 @@ import se.scalablesolutions.akka.annotation.transactional;
|
||||||
import se.scalablesolutions.akka.annotation.state;
|
import se.scalablesolutions.akka.annotation.state;
|
||||||
|
|
||||||
public class PersistentStateful {
|
public class PersistentStateful {
|
||||||
private TransactionalMap mapState = new CassandraPersistentTransactionalMap(this);
|
private TransactionalMap mapState = new CassandraPersistentTransactionalMap();
|
||||||
private TransactionalVector vectorState = new CassandraPersistentTransactionalVector(this);
|
private TransactionalVector vectorState = new CassandraPersistentTransactionalVector();
|
||||||
//private TransactionalRef refState = new CassandraPersistentTransactionalRef(this);
|
private TransactionalRef refState = new CassandraPersistentTransactionalRef();
|
||||||
|
|
||||||
|
@transactional
|
||||||
public String getMapState(String key) {
|
public String getMapState(String key) {
|
||||||
return (String) mapState.get(key).get();
|
return (String) mapState.get(key).get();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getVectorState() {
|
@transactional
|
||||||
return (String) vectorState.first();
|
public String getVectorState(int index) {
|
||||||
|
return (String) vectorState.get(index);
|
||||||
}
|
}
|
||||||
|
|
||||||
// public String getRefState() {
|
@transactional
|
||||||
// return (String) refState.get().get();
|
public String getRefState() {
|
||||||
// }
|
if (refState.isDefined()) {
|
||||||
|
return (String) refState.get().get();
|
||||||
|
} else throw new IllegalStateException("No such element");
|
||||||
|
}
|
||||||
|
|
||||||
|
@transactional
|
||||||
public void setMapState(String key, String msg) {
|
public void setMapState(String key, String msg) {
|
||||||
mapState.put(key, msg);
|
mapState.put(key, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@transactional
|
||||||
public void setVectorState(String msg) {
|
public void setVectorState(String msg) {
|
||||||
vectorState.add(msg);
|
vectorState.add(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// public void setRefState(String msg) {
|
@transactional
|
||||||
// refState.swap(msg);
|
public void setRefState(String msg) {
|
||||||
// }
|
refState.swap(msg);
|
||||||
|
}
|
||||||
|
|
||||||
@transactional
|
@transactional
|
||||||
public void success(String key, String msg) {
|
public void success(String key, String msg) {
|
||||||
mapState.put(key, msg);
|
mapState.put(key, msg);
|
||||||
vectorState.add(msg);
|
vectorState.add(msg);
|
||||||
// refState.swap(msg);
|
refState.swap(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@transactional
|
@transactional
|
||||||
public void failure(String key, String msg, PersistentFailer failer) {
|
public void failure(String key, String msg, PersistentFailer failer) {
|
||||||
mapState.put(key, msg);
|
mapState.put(key, msg);
|
||||||
vectorState.add(msg);
|
vectorState.add(msg);
|
||||||
// refState.swap(msg);
|
refState.swap(msg);
|
||||||
failer.fail();
|
failer.fail();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -208,12 +208,13 @@ sealed class TransactionalAroundAdvice(target: Class[_],
|
||||||
|
|
||||||
def getTransactionalItemsFor(target: Class[_]):
|
def getTransactionalItemsFor(target: Class[_]):
|
||||||
Tuple3[List[TransactionalMap[_, _]], List[TransactionalVector[_]], List[TransactionalRef[_]]] = {
|
Tuple3[List[TransactionalMap[_, _]], List[TransactionalVector[_]], List[TransactionalRef[_]]] = {
|
||||||
|
target.getDeclaredFields.toArray.toList.asInstanceOf[List[Field]].foreach(println)
|
||||||
for {
|
for {
|
||||||
field <- target.getDeclaredFields.toArray.toList.asInstanceOf[List[Field]]
|
field <- target.getDeclaredFields.toArray.toList.asInstanceOf[List[Field]]
|
||||||
fieldType = field.getType
|
fieldType = field.getType
|
||||||
if fieldType == classOf[TransactionalMap[_, _]] ||
|
if (fieldType == classOf[TransactionalMap[_, _]]) ||
|
||||||
fieldType == classOf[TransactionalVector[_]] ||
|
(fieldType == classOf[TransactionalVector[_]]) ||
|
||||||
fieldType == classOf[TransactionalRef[_]]
|
(fieldType == classOf[TransactionalRef[_]])
|
||||||
txItem = {
|
txItem = {
|
||||||
field.setAccessible(true)
|
field.setAccessible(true)
|
||||||
field.get(targetInstance)
|
field.get(targetInstance)
|
||||||
|
|
@ -225,7 +226,7 @@ sealed class TransactionalAroundAdvice(target: Class[_],
|
||||||
else if (txItem.isInstanceOf[TransactionalVector[_]]) vectors ::= txItem.asInstanceOf[TransactionalVector[_]]
|
else if (txItem.isInstanceOf[TransactionalVector[_]]) vectors ::= txItem.asInstanceOf[TransactionalVector[_]]
|
||||||
}
|
}
|
||||||
val parent = target.getSuperclass
|
val parent = target.getSuperclass
|
||||||
if (parent == null) (maps, vectors, refs)
|
if (parent == classOf[Object]) (maps, vectors, refs)
|
||||||
else getTransactionalItemsFor(parent)
|
else getTransactionalItemsFor(parent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -11,17 +11,18 @@ import org.apache.cassandra.config.DatabaseDescriptor
|
||||||
import org.apache.cassandra.service._
|
import org.apache.cassandra.service._
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* NOTE: requires command line options:
|
||||||
|
* <br/>
|
||||||
|
* <code>-Dcassandra -Dstorage-config=config/ -Dpidfile=akka.pid</code>
|
||||||
|
* <p/>
|
||||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
*/
|
*/
|
||||||
final object CassandraNode extends Logging {
|
final object CassandraNode extends Logging {
|
||||||
|
|
||||||
// NOTE: requires command line options:
|
|
||||||
// -Dcassandra -Dstorage-config=config/ -Dpidfile=akka.pid
|
|
||||||
val TABLE_NAME = "akka"
|
val TABLE_NAME = "akka"
|
||||||
val ACTOR_KEY_PREFIX = "actor"
|
val MAP_COLUMN_FAMILY = "map"
|
||||||
val ACTOR_MAP_COLUMN_FAMILY = "map"
|
val VECTOR_COLUMN_FAMILY = "vector"
|
||||||
val ACTOR_VECTOR_COLUMN_FAMILY = "vector"
|
val REF_COLUMN_FAMILY = "ref:item"
|
||||||
val ACTOR_REF_COLUMN_FAMILY = "ref"
|
|
||||||
|
|
||||||
// TODO: make pluggable (JSON, Thrift, Protobuf etc.)
|
// TODO: make pluggable (JSON, Thrift, Protobuf etc.)
|
||||||
private[this] var serializer: Serializer = new JavaSerializationSerializer
|
private[this] var serializer: Serializer = new JavaSerializationSerializer
|
||||||
|
|
@ -46,6 +47,27 @@ final object CassandraNode extends Logging {
|
||||||
// For Ref
|
// For Ref
|
||||||
// ===============================================================
|
// ===============================================================
|
||||||
|
|
||||||
|
def insertRefStorageFor(name: String, element: AnyRef) = {
|
||||||
|
server.insert(
|
||||||
|
TABLE_NAME,
|
||||||
|
name,
|
||||||
|
REF_COLUMN_FAMILY,
|
||||||
|
serializer.out(element),
|
||||||
|
System.currentTimeMillis,
|
||||||
|
false) // FIXME: what is this flag for?
|
||||||
|
}
|
||||||
|
|
||||||
|
def getRefStorageFor(name: String): Option[AnyRef] = {
|
||||||
|
try {
|
||||||
|
val column = server.get_column(TABLE_NAME, name, REF_COLUMN_FAMILY)
|
||||||
|
Some(serializer.in(column.value))
|
||||||
|
} catch {
|
||||||
|
case e =>
|
||||||
|
e.printStackTrace
|
||||||
|
None //throw new Predef.NoSuchElementException(e.getMessage)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ===============================================================
|
// ===============================================================
|
||||||
// For Vector
|
// For Vector
|
||||||
// ===============================================================
|
// ===============================================================
|
||||||
|
|
@ -53,8 +75,8 @@ final object CassandraNode extends Logging {
|
||||||
def insertVectorStorageEntryFor(name: String, element: AnyRef) = {
|
def insertVectorStorageEntryFor(name: String, element: AnyRef) = {
|
||||||
server.insert(
|
server.insert(
|
||||||
TABLE_NAME,
|
TABLE_NAME,
|
||||||
ACTOR_KEY_PREFIX + ":" + name,
|
name,
|
||||||
ACTOR_VECTOR_COLUMN_FAMILY + ":" + getVectorStorageSizeFor(name),
|
VECTOR_COLUMN_FAMILY + ":" + getVectorStorageSizeFor(name),
|
||||||
serializer.out(element),
|
serializer.out(element),
|
||||||
System.currentTimeMillis,
|
System.currentTimeMillis,
|
||||||
false) // FIXME: what is this flag for?
|
false) // FIXME: what is this flag for?
|
||||||
|
|
@ -62,7 +84,7 @@ final object CassandraNode extends Logging {
|
||||||
|
|
||||||
def getVectorStorageEntryFor(name: String, index: Int): AnyRef = {
|
def getVectorStorageEntryFor(name: String, index: Int): AnyRef = {
|
||||||
try {
|
try {
|
||||||
val column = server.get_column(TABLE_NAME, ACTOR_KEY_PREFIX + ":" + name, ACTOR_VECTOR_COLUMN_FAMILY + ":" + index)
|
val column = server.get_column(TABLE_NAME, name, VECTOR_COLUMN_FAMILY + ":" + index)
|
||||||
serializer.in(column.value)
|
serializer.in(column.value)
|
||||||
} catch {
|
} catch {
|
||||||
case e => throw new Predef.NoSuchElementException(e.getMessage)
|
case e => throw new Predef.NoSuchElementException(e.getMessage)
|
||||||
|
|
@ -70,22 +92,21 @@ final object CassandraNode extends Logging {
|
||||||
}
|
}
|
||||||
|
|
||||||
def getVectorStorageRangeFor(name: String, start: Int, count: Int): List[AnyRef] =
|
def getVectorStorageRangeFor(name: String, start: Int, count: Int): List[AnyRef] =
|
||||||
server.get_slice(TABLE_NAME, ACTOR_KEY_PREFIX + ":" + name, ACTOR_VECTOR_COLUMN_FAMILY, start, count)
|
server.get_slice(TABLE_NAME, name, VECTOR_COLUMN_FAMILY, start, count)
|
||||||
.toArray.toList.asInstanceOf[List[Tuple2[String, AnyRef]]].map(tuple => tuple._2)
|
.toArray.toList.asInstanceOf[List[Tuple2[String, AnyRef]]].map(tuple => tuple._2)
|
||||||
|
|
||||||
def getVectorStorageSizeFor(name: String): Int =
|
def getVectorStorageSizeFor(name: String): Int =
|
||||||
server.get_column_count(TABLE_NAME, ACTOR_KEY_PREFIX + ":" + name, ACTOR_VECTOR_COLUMN_FAMILY)
|
server.get_column_count(TABLE_NAME, name, VECTOR_COLUMN_FAMILY)
|
||||||
|
|
||||||
// ===============================================================
|
// ===============================================================
|
||||||
// For Map
|
// For Map
|
||||||
// ===============================================================
|
// ===============================================================
|
||||||
|
|
||||||
def insertMapStorageEntryFor(name: String, key: String, value: AnyRef) = {
|
def insertMapStorageEntryFor(name: String, key: String, value: AnyRef) = {
|
||||||
println("PUT: " + name + " " + key + " " + value)
|
|
||||||
server.insert(
|
server.insert(
|
||||||
TABLE_NAME,
|
TABLE_NAME,
|
||||||
ACTOR_KEY_PREFIX + ":" + name,
|
name,
|
||||||
ACTOR_MAP_COLUMN_FAMILY + ":" + key,
|
MAP_COLUMN_FAMILY + ":" + key,
|
||||||
serializer.out(value),
|
serializer.out(value),
|
||||||
System.currentTimeMillis,
|
System.currentTimeMillis,
|
||||||
false) // FIXME: what is this flag for?
|
false) // FIXME: what is this flag for?
|
||||||
|
|
@ -97,25 +118,24 @@ final object CassandraNode extends Logging {
|
||||||
for (entry <- entries) {
|
for (entry <- entries) {
|
||||||
val cls: List[column_t] = new ArrayList
|
val cls: List[column_t] = new ArrayList
|
||||||
cls.add(new column_t(entry._1, serializer.out(entry._2), System.currentTimeMillis))
|
cls.add(new column_t(entry._1, serializer.out(entry._2), System.currentTimeMillis))
|
||||||
columns.put(ACTOR_MAP_COLUMN_FAMILY, cls)
|
columns.put(MAP_COLUMN_FAMILY, cls)
|
||||||
}
|
}
|
||||||
server.batch_insert(new batch_mutation_t(
|
server.batch_insert(new batch_mutation_t(
|
||||||
TABLE_NAME,
|
TABLE_NAME,
|
||||||
ACTOR_KEY_PREFIX + ":" + name,
|
name,
|
||||||
columns),
|
columns),
|
||||||
false) // non-blocking
|
false) // non-blocking
|
||||||
}
|
}
|
||||||
|
|
||||||
def getMapStorageEntryFor(name: String, key: AnyRef): Option[AnyRef] = {
|
def getMapStorageEntryFor(name: String, key: AnyRef): Option[AnyRef] = {
|
||||||
println("GET: " + name + " " + key)
|
|
||||||
try {
|
try {
|
||||||
val column = server.get_column(TABLE_NAME, ACTOR_KEY_PREFIX + ":" + name, ACTOR_MAP_COLUMN_FAMILY + ":" + key)
|
val column = server.get_column(TABLE_NAME, name, MAP_COLUMN_FAMILY + ":" + key)
|
||||||
Some(serializer.in(column.value))
|
Some(serializer.in(column.value))
|
||||||
} catch { case e => None }
|
} catch { case e => None }
|
||||||
}
|
}
|
||||||
|
|
||||||
def getMapStorageFor(name: String): List[Tuple2[String, AnyRef]] = {
|
def getMapStorageFor(name: String): List[Tuple2[String, AnyRef]] = {
|
||||||
val columns = server.get_columns_since(TABLE_NAME, ACTOR_KEY_PREFIX, ACTOR_MAP_COLUMN_FAMILY, -1)
|
val columns = server.get_columns_since(TABLE_NAME, name, MAP_COLUMN_FAMILY, -1)
|
||||||
.toArray.toList.asInstanceOf[List[org.apache.cassandra.service.column_t]]
|
.toArray.toList.asInstanceOf[List[org.apache.cassandra.service.column_t]]
|
||||||
for {
|
for {
|
||||||
column <- columns
|
column <- columns
|
||||||
|
|
@ -124,13 +144,13 @@ final object CassandraNode extends Logging {
|
||||||
}
|
}
|
||||||
|
|
||||||
def getMapStorageSizeFor(name: String): Int =
|
def getMapStorageSizeFor(name: String): Int =
|
||||||
server.get_column_count(TABLE_NAME, ACTOR_KEY_PREFIX + ":" + name, ACTOR_MAP_COLUMN_FAMILY)
|
server.get_column_count(TABLE_NAME, name, MAP_COLUMN_FAMILY)
|
||||||
|
|
||||||
def removeMapStorageFor(name: String) =
|
def removeMapStorageFor(name: String) =
|
||||||
server.remove(TABLE_NAME, ACTOR_KEY_PREFIX + ":" + name, ACTOR_MAP_COLUMN_FAMILY, System.currentTimeMillis, false)
|
server.remove(TABLE_NAME, name, MAP_COLUMN_FAMILY, System.currentTimeMillis, false)
|
||||||
|
|
||||||
def getMapStorageRangeFor(name: String, start: Int, count: Int): List[Tuple2[String, AnyRef]] =
|
def getMapStorageRangeFor(name: String, start: Int, count: Int): List[Tuple2[String, AnyRef]] =
|
||||||
server.get_slice(TABLE_NAME, ACTOR_KEY_PREFIX + ":" + name, ACTOR_MAP_COLUMN_FAMILY, start, count)
|
server.get_slice(TABLE_NAME, name, MAP_COLUMN_FAMILY, start, count)
|
||||||
.toArray.toList.asInstanceOf[List[Tuple2[String, AnyRef]]]
|
.toArray.toList.asInstanceOf[List[Tuple2[String, AnyRef]]]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -95,10 +95,7 @@ abstract class PersistentTransactionalMap[K, V] extends TransactionalMap[K, V] {
|
||||||
*
|
*
|
||||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
*/
|
*/
|
||||||
class CassandraPersistentTransactionalMap(actorNameInstance: AnyRef)
|
class CassandraPersistentTransactionalMap extends PersistentTransactionalMap[String, AnyRef] {
|
||||||
extends PersistentTransactionalMap[String, AnyRef] {
|
|
||||||
|
|
||||||
val actorName = actorNameInstance.getClass.getName
|
|
||||||
|
|
||||||
override def getRange(start: Int, count: Int) = CassandraNode.getMapStorageRangeFor(uuid, start, count)
|
override def getRange(start: Int, count: Int) = CassandraNode.getMapStorageRangeFor(uuid, start, count)
|
||||||
|
|
||||||
|
|
@ -196,10 +193,7 @@ abstract class PersistentTransactionalVector[T] extends TransactionalVector[T] {
|
||||||
*
|
*
|
||||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
*/
|
*/
|
||||||
class CassandraPersistentTransactionalVector(actorNameInstance: AnyRef)
|
class CassandraPersistentTransactionalVector extends PersistentTransactionalVector[AnyRef] {
|
||||||
extends PersistentTransactionalVector[AnyRef] {
|
|
||||||
|
|
||||||
val actorName = actorNameInstance.getClass.getName
|
|
||||||
|
|
||||||
// ---- For TransactionalVector ----
|
// ---- For TransactionalVector ----
|
||||||
override def get(index: Int): AnyRef = CassandraNode.getVectorStorageEntryFor(uuid, index)
|
override def get(index: Int): AnyRef = CassandraNode.getVectorStorageEntryFor(uuid, index)
|
||||||
|
|
@ -234,5 +228,16 @@ class TransactionalRef[T] extends Transactional {
|
||||||
def swap(elem: T) = ref = Some(elem)
|
def swap(elem: T) = ref = Some(elem)
|
||||||
def get: Option[T] = ref
|
def get: Option[T] = ref
|
||||||
def getOrElse(default: => T): T = ref.getOrElse(default)
|
def getOrElse(default: => T): T = ref.getOrElse(default)
|
||||||
def isDefined: Boolean= ref.isDefined
|
def isDefined: Boolean = ref.isDefined
|
||||||
|
}
|
||||||
|
|
||||||
|
class CassandraPersistentTransactionalRef extends TransactionalRef[AnyRef] {
|
||||||
|
override def commit = if (ref.isDefined) CassandraNode.insertRefStorageFor(uuid, ref.get)
|
||||||
|
override def get: Option[AnyRef] = CassandraNode.getRefStorageFor(uuid)
|
||||||
|
override def isDefined: Boolean = get.isDefined
|
||||||
|
override def getOrElse(default: => AnyRef): AnyRef = {
|
||||||
|
val ref = get
|
||||||
|
if (ref.isDefined) ref
|
||||||
|
else default
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -34,15 +34,11 @@ class ThreadBasedDispatcher extends MessageDispatcherBase {
|
||||||
messageDemultiplexer.select
|
messageDemultiplexer.select
|
||||||
} catch {case e: InterruptedException => active = false}
|
} catch {case e: InterruptedException => active = false}
|
||||||
val queue = messageDemultiplexer.acquireSelectedQueue
|
val queue = messageDemultiplexer.acquireSelectedQueue
|
||||||
println("--- QUEUE " + queue.size)
|
|
||||||
// while (!queue.isEmpty) {
|
// while (!queue.isEmpty) {
|
||||||
for (index <- 0 until queue.size) {
|
for (index <- 0 until queue.size) {
|
||||||
val message = queue.peek
|
val message = queue.peek
|
||||||
println("------ MESSAGE: " + message)
|
|
||||||
val messageHandler = getIfNotBusy(message.sender)
|
val messageHandler = getIfNotBusy(message.sender)
|
||||||
println("------ MESSAGEHANDLER: " + messageHandler)
|
|
||||||
if (messageHandler.isDefined) {
|
if (messageHandler.isDefined) {
|
||||||
println("-------- SCHEDULING MESSAGE")
|
|
||||||
handlerExecutor.execute(new Runnable {
|
handlerExecutor.execute(new Runnable {
|
||||||
override def run = {
|
override def run = {
|
||||||
messageHandler.get.handle(message)
|
messageHandler.get.handle(message)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue