cleanup and refactoring of active object code
This commit is contained in:
parent
bbec315eb2
commit
8bc40775b3
3 changed files with 313 additions and 122 deletions
341
akka.iws
341
akka.iws
|
|
@ -49,6 +49,21 @@
|
||||||
<disable_hints />
|
<disable_hints />
|
||||||
</component>
|
</component>
|
||||||
<component name="DebuggerManager">
|
<component name="DebuggerManager">
|
||||||
|
<line_breakpoints>
|
||||||
|
<breakpoint url="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" line="155" class="Class at ActiveObject.scala:155" 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>
|
||||||
|
</line_breakpoints>
|
||||||
<breakpoint_any>
|
<breakpoint_any>
|
||||||
<breakpoint>
|
<breakpoint>
|
||||||
<option name="NOTIFY_CAUGHT" value="true" />
|
<option name="NOTIFY_CAUGHT" value="true" />
|
||||||
|
|
@ -106,10 +121,64 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf>
|
<leaf>
|
||||||
<file leaf-file-name="ActiveObject.scala" pinned="false" current="true" current-in-tab="true">
|
<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="153" column="30" selection-start="5446" selection-end="5446" vertical-scroll-proportion="0.6937063">
|
<state line="216" column="0" selection-start="7685" selection-end="7685" vertical-scroll-proportion="-6.1153846">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="PartialFunction.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3-sources.jar!/scala/PartialFunction.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="36" column="0" selection-start="1487" selection-end="1487" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="Reaction.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3-sources.jar!/scala/actors/Reaction.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="65" column="0" selection-start="1897" selection-end="1897" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="FJTask.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="jar://$PROJECT_DIR$/../../../bin/scala-2.7.3.final/src/scala-library-src.jar!/scala/actors/FJTask.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="393" column="16" selection-start="15159" selection-end="15159" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="FJTaskRunner.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="jar://$PROJECT_DIR$/../../../bin/scala-2.7.3.final/src/scala-library-src.jar!/scala/actors/FJTaskRunner.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="842" column="23" selection-start="26825" selection-end="26825" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="InMemFailer.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java">
|
||||||
|
<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 />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="Transaction.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="79" column="0" selection-start="2646" selection-end="2646" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
@ -118,7 +187,7 @@
|
||||||
<file leaf-file-name="InMemStateful.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="InMemStateful.java" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemStateful.java">
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemStateful.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="27" column="37" selection-start="890" selection-end="890" 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>
|
||||||
|
|
@ -133,28 +202,10 @@
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="InMemoryStateTest.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="InMemoryStateTest.java" pinned="false" current="true" current-in-tab="true">
|
||||||
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java">
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="51" column="14" selection-start="2450" selection-end="2450" vertical-scroll-proportion="0.0">
|
<state line="39" column="14" selection-start="1734" selection-end="1734" vertical-scroll-proportion="0.33200794">
|
||||||
<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="231" column="65" selection-start="7512" selection-end="7512" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="Helpers.scala" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/Helpers.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="40" column="0" selection-start="873" selection-end="873" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
@ -318,6 +369,132 @@
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
</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-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="Scala 2.7.3" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="scala-library.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="Scala 2.7.3" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="scala-library.jar" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="actors" />
|
||||||
|
<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="Scala 2.7.3" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="scala-library.jar" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="actors" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="FJTaskRunner" />
|
||||||
|
<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-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="Scala 2.7.3" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="scala-library.jar" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="actors" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="FJTask" />
|
||||||
|
<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-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="Scala 2.7.3" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="akka" />
|
<option name="myItemId" value="akka" />
|
||||||
|
|
@ -1430,14 +1607,14 @@
|
||||||
</method>
|
</method>
|
||||||
</configuration>
|
</configuration>
|
||||||
<list size="8">
|
<list size="8">
|
||||||
<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="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>
|
||||||
|
|
@ -1484,7 +1661,7 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="ToolWindowManager">
|
<component name="ToolWindowManager">
|
||||||
<frame x="4" y="22" width="1436" height="878" extended-state="6" />
|
<frame x="4" y="22" width="1436" height="878" extended-state="6" />
|
||||||
<editor active="true" />
|
<editor active="false" />
|
||||||
<layout>
|
<layout>
|
||||||
<window_info id="Web Preview" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32908162" sideWeight="0.5" order="14" side_tool="false" />
|
<window_info id="Web Preview" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32908162" sideWeight="0.5" order="14" side_tool="false" />
|
||||||
<window_info id="Dataflow to this" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="15" side_tool="false" />
|
<window_info id="Dataflow to this" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="15" side_tool="false" />
|
||||||
|
|
@ -1492,7 +1669,7 @@
|
||||||
<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.19178082" sideWeight="0.20535715" 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.19178082" sideWeight="0.72066325" 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.3265306" 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.3265306" 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" />
|
||||||
|
|
@ -1503,7 +1680,7 @@
|
||||||
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32780612" sideWeight="0.5" order="7" side_tool="false" />
|
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32780612" sideWeight="0.5" order="7" side_tool="false" />
|
||||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="true" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.78571427" sideWeight="0.5" order="2" side_tool="false" x="4" y="22" width="1436" height="878" />
|
<window_info id="Run" active="false" anchor="bottom" auto_hide="true" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.78571427" sideWeight="0.5" order="2" side_tool="false" x="4" y="22" width="1436" height="878" />
|
||||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39989322" sideWeight="0.75" order="0" side_tool="false" />
|
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39989322" sideWeight="0.75" order="0" side_tool="false" />
|
||||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.27040815" sideWeight="0.5" order="3" side_tool="false" />
|
<window_info id="Debug" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.27040815" sideWeight="0.5" order="3" side_tool="false" />
|
||||||
<window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" />
|
<window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" />
|
||||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32780612" sideWeight="0.5" order="11" side_tool="false" />
|
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32780612" sideWeight="0.5" order="11" side_tool="false" />
|
||||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" />
|
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" />
|
||||||
|
|
@ -1554,50 +1731,6 @@
|
||||||
</buildFile>
|
</buildFile>
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="26" column="32" selection-start="853" selection-end="853" vertical-scroll-proportion="0.0">
|
|
||||||
<folding>
|
|
||||||
<element signature="imports" expanded="true" />
|
|
||||||
</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="148" column="0" selection-start="5084" selection-end="5090" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/jersey/AkkaServlet.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="23" column="38" selection-start="800" selection-end="800" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="2" column="88" selection-start="49" selection-end="49" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="57" column="40" selection-start="1908" selection-end="1908" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="4" column="0" selection-start="91" selection-end="91" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/Helpers.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/Helpers.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="40" column="0" selection-start="873" selection-end="873" vertical-scroll-proportion="0.0">
|
<state line="40" column="0" selection-start="873" selection-end="873" vertical-scroll-proportion="0.0">
|
||||||
|
|
@ -1647,23 +1780,65 @@
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemStateful.java">
|
<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="27" column="37" selection-start="890" selection-end="890" vertical-scroll-proportion="0.0">
|
<state line="79" column="0" selection-start="2646" selection-end="2646" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java">
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="51" column="14" selection-start="2450" selection-end="2450" vertical-scroll-proportion="0.0">
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemStateful.java">
|
||||||
|
<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>
|
||||||
</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="153" column="30" selection-start="5446" selection-end="5446" vertical-scroll-proportion="0.6937063">
|
<state line="216" column="0" selection-start="7685" selection-end="7685" vertical-scroll-proportion="-6.1153846">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3-sources.jar!/scala/PartialFunction.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="36" column="0" selection-start="1487" selection-end="1487" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3-sources.jar!/scala/actors/Reaction.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="65" column="0" selection-start="1897" selection-end="1897" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="jar://$PROJECT_DIR$/../../../bin/scala-2.7.3.final/src/scala-library-src.jar!/scala/actors/FJTask.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="393" column="16" selection-start="15159" selection-end="15159" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="jar://$PROJECT_DIR$/../../../bin/scala-2.7.3.final/src/scala-library-src.jar!/scala/actors/FJTaskRunner.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="842" column="23" selection-start="26825" selection-end="26825" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="39" column="14" selection-start="1734" selection-end="1734" vertical-scroll-proportion="0.33200794">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
|
||||||
|
|
@ -36,15 +36,15 @@ public class InMemStateful {
|
||||||
@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, InMemFailer failer) {
|
public void failure(String key, String msg, InMemFailer 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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -90,7 +90,7 @@ object ActiveObject {
|
||||||
sealed class TransactionalAroundAdvice(target: Class[_],
|
sealed class TransactionalAroundAdvice(target: Class[_],
|
||||||
targetInstance: AnyRef,
|
targetInstance: AnyRef,
|
||||||
server: GenericServerContainer) extends AroundAdvice {
|
server: GenericServerContainer) extends AroundAdvice {
|
||||||
val (maps, vectors, refs) = getTransactionalItemsFor(targetInstance)
|
private val (maps, vectors, refs) = getTransactionalItemsFor(targetInstance)
|
||||||
server.transactionalRefs = refs
|
server.transactionalRefs = refs
|
||||||
server.transactionalMaps = maps
|
server.transactionalMaps = maps
|
||||||
server.transactionalVectors = vectors
|
server.transactionalVectors = vectors
|
||||||
|
|
@ -98,23 +98,30 @@ sealed class TransactionalAroundAdvice(target: Class[_],
|
||||||
import ActiveObject.threadBoundTx
|
import ActiveObject.threadBoundTx
|
||||||
private[this] var activeTx: Option[Transaction] = None
|
private[this] var activeTx: Option[Transaction] = None
|
||||||
|
|
||||||
def invoke(joinpoint: JoinPoint): AnyRef = {
|
|
||||||
// FIXME: switch to using PCD annotation matching, break out into its own aspect + switch to StaticJoinPoint
|
// FIXME: switch to using PCD annotation matching, break out into its own aspect + switch to StaticJoinPoint
|
||||||
|
def invoke(joinpoint: JoinPoint): AnyRef = {
|
||||||
val rtti = joinpoint.getRtti.asInstanceOf[MethodRtti]
|
val rtti = joinpoint.getRtti.asInstanceOf[MethodRtti]
|
||||||
val method = rtti.getMethod
|
val method = rtti.getMethod
|
||||||
|
|
||||||
if (method.isAnnotationPresent(Annotations.transactional)) {
|
if (method.isAnnotationPresent(Annotations.transactional)) {
|
||||||
if (activeTx.isDefined) {
|
tryToCommitTransaction
|
||||||
val tx = activeTx.get
|
startNewTransaction
|
||||||
tx.commit(server)
|
|
||||||
threadBoundTx.set(None)
|
|
||||||
activeTx = None
|
|
||||||
}
|
}
|
||||||
// FIXME: check if we are already in a transaction if so NEST (set parent)
|
joinExistingTransaction
|
||||||
|
|
||||||
|
val result: AnyRef = if (rtti.getMethod.isAnnotationPresent(Annotations.oneway)) sendOneWay(joinpoint)
|
||||||
|
else handleResult(sendAndReceiveEventually(joinpoint))
|
||||||
|
tryToPrecommitTransaction
|
||||||
|
result
|
||||||
|
}
|
||||||
|
|
||||||
|
private def startNewTransaction = {
|
||||||
val newTx = new Transaction
|
val newTx = new Transaction
|
||||||
newTx.begin(server)
|
newTx.begin(server)
|
||||||
threadBoundTx.set(Some(newTx))
|
threadBoundTx.set(Some(newTx))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private def joinExistingTransaction = {
|
||||||
val cflowTx = threadBoundTx.get
|
val cflowTx = threadBoundTx.get
|
||||||
if (!activeTx.isDefined && cflowTx.isDefined) {
|
if (!activeTx.isDefined && cflowTx.isDefined) {
|
||||||
val currentTx = cflowTx.get
|
val currentTx = cflowTx.get
|
||||||
|
|
@ -122,18 +129,21 @@ sealed class TransactionalAroundAdvice(target: Class[_],
|
||||||
activeTx = Some(currentTx)
|
activeTx = Some(currentTx)
|
||||||
}
|
}
|
||||||
activeTx = threadBoundTx.get
|
activeTx = threadBoundTx.get
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME: switch to using PCD annotation matching, break out into its own aspect + switch to StaticJoinPoint
|
private def tryToPrecommitTransaction = {
|
||||||
val result: AnyRef =
|
// FIXME: clear threadBoundTx on successful commit
|
||||||
if (rtti.getMethod.isAnnotationPresent(Annotations.oneway)) {
|
if (activeTx.isDefined) activeTx.get.precommit(server)
|
||||||
server ! (activeTx, joinpoint)
|
}
|
||||||
} else {
|
|
||||||
val result: ErrRef[AnyRef] =
|
private def tryToCommitTransaction = if (activeTx.isDefined) {
|
||||||
server !!! ((activeTx, joinpoint), {
|
val tx = activeTx.get
|
||||||
var ref = ErrRef(activeTx)
|
tx.commit(server)
|
||||||
ref() = throw new ActiveObjectInvocationTimeoutException("Invocation to active object [" + targetInstance.getClass.getName + "] timed out after " + server.timeout + " milliseconds")
|
threadBoundTx.set(None)
|
||||||
ref
|
activeTx = None
|
||||||
})
|
}
|
||||||
|
|
||||||
|
private def handleResult(result: ErrRef[AnyRef]): AnyRef = {
|
||||||
try {
|
try {
|
||||||
result()
|
result()
|
||||||
} catch {
|
} catch {
|
||||||
|
|
@ -142,10 +152,6 @@ sealed class TransactionalAroundAdvice(target: Class[_],
|
||||||
throw e
|
throw e
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// FIXME: clear threadBoundTx on successful commit
|
|
||||||
if (activeTx.isDefined) activeTx.get.precommit(server)
|
|
||||||
result
|
|
||||||
}
|
|
||||||
|
|
||||||
private def rollback(tx: Option[Transaction]) = tx match {
|
private def rollback(tx: Option[Transaction]) = tx match {
|
||||||
case None => {} // no tx; nothing to do
|
case None => {} // no tx; nothing to do
|
||||||
|
|
@ -154,6 +160,16 @@ sealed class TransactionalAroundAdvice(target: Class[_],
|
||||||
threadBoundTx.set(Some(tx))
|
threadBoundTx.set(Some(tx))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private def sendOneWay(joinpoint: JoinPoint) = server ! (activeTx, joinpoint)
|
||||||
|
|
||||||
|
private def sendAndReceiveEventually(joinpoint: JoinPoint): ErrRef[AnyRef] = {
|
||||||
|
server !!! ((activeTx, joinpoint), {
|
||||||
|
var ref = ErrRef(activeTx)
|
||||||
|
ref() = throw new ActiveObjectInvocationTimeoutException("Invocation to active object [" + targetInstance.getClass.getName + "] timed out after " + server.timeout + " milliseconds")
|
||||||
|
ref
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search for transactional items for a specific target instance, crawl the class hierarchy recursively up to the top.
|
* Search for transactional items for a specific target instance, crawl the class hierarchy recursively up to the top.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue