fixed bug STM bug, in-mem tests now pass
This commit is contained in:
parent
4ad378b5c4
commit
d470aee538
4 changed files with 354 additions and 334 deletions
598
akka.iws
598
akka.iws
|
|
@ -1,7 +1,12 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project relativePaths="false" version="4">
|
<project relativePaths="false" version="4">
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" name="Default" comment="" />
|
<list default="true" name="Default" comment="">
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java" afterPath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java" />
|
||||||
|
<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/Transaction.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka.iws" afterPath="$PROJECT_DIR$/akka.iws" />
|
||||||
|
</list>
|
||||||
<ignored path="akka.iws" />
|
<ignored path="akka.iws" />
|
||||||
<ignored path=".idea/workspace.xml" />
|
<ignored path=".idea/workspace.xml" />
|
||||||
</component>
|
</component>
|
||||||
|
|
@ -19,6 +24,47 @@
|
||||||
<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="166" class="Class at ActiveObject.scala:166" 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="106" class="Class at ActiveObject.scala:106" 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="60" class="Class at Transaction.scala:60" 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" />
|
||||||
|
|
@ -79,7 +125,43 @@
|
||||||
<file leaf-file-name="InMemoryStateTest.java" pinned="false" current="true" current-in-tab="true">
|
<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="40" column="2" selection-start="1730" selection-end="1730" vertical-scroll-proportion="1.0281124">
|
<state line="37" column="0" selection-start="1609" selection-end="1609" vertical-scroll-proportion="0.21296297">
|
||||||
|
<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="60" column="16" selection-start="2027" selection-end="2027" 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="94" column="9" selection-start="2880" selection-end="2880" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<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">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="106" column="0" selection-start="3497" selection-end="3497" vertical-scroll-proportion="-5.0384617">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="Option.scala" 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/Option.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="38" column="0" selection-start="1292" selection-end="1292" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
@ -92,6 +174,9 @@
|
||||||
<setting name="OPEN_NEW_TAB" value="false" />
|
<setting name="OPEN_NEW_TAB" value="false" />
|
||||||
</FindUsagesManager>
|
</FindUsagesManager>
|
||||||
</component>
|
</component>
|
||||||
|
<component name="Git.Settings">
|
||||||
|
<option name="GIT_EXECUTABLE" value="git" />
|
||||||
|
</component>
|
||||||
<component name="MavenImportPreferences">
|
<component name="MavenImportPreferences">
|
||||||
<option name="generalSettings">
|
<option name="generalSettings">
|
||||||
<MavenGeneralSettings>
|
<MavenGeneralSettings>
|
||||||
|
|
@ -121,206 +206,7 @@
|
||||||
<ConfirmationsSetting value="0" id="Remove" />
|
<ConfirmationsSetting value="0" id="Remove" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectPane">
|
<component name="ProjectPane">
|
||||||
<subPane>
|
<subPane />
|
||||||
<PATH>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="akka" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
|
||||||
</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>
|
|
||||||
<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="kernel" />
|
|
||||||
<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="kernel" />
|
|
||||||
<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>
|
|
||||||
<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="kernel" />
|
|
||||||
<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="scala" />
|
|
||||||
<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="kernel" />
|
|
||||||
<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="scala" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="config" />
|
|
||||||
<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="kernel" />
|
|
||||||
<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>
|
|
||||||
<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-api-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-api-java" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="api-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-api-java" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="api-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>
|
|
||||||
<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-api-java" />
|
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
|
||||||
</PATH_ELEMENT>
|
|
||||||
<PATH_ELEMENT>
|
|
||||||
<option name="myItemId" value="api-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>
|
|
||||||
</subPane>
|
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectReloadState">
|
<component name="ProjectReloadState">
|
||||||
<option name="STATE" value="0" />
|
<option name="STATE" value="0" />
|
||||||
|
|
@ -340,37 +226,37 @@
|
||||||
</navigator>
|
</navigator>
|
||||||
</component>
|
</component>
|
||||||
<component name="PropertiesComponent">
|
<component name="PropertiesComponent">
|
||||||
<property name="project.structure.proportion" value="0.15" />
|
|
||||||
<property name="GoToClass.includeJavaFiles" value="false" />
|
<property name="GoToClass.includeJavaFiles" value="false" />
|
||||||
|
<property name="project.structure.proportion" value="0.15" />
|
||||||
<property name="MemberChooser.copyJavadoc" value="false" />
|
<property name="MemberChooser.copyJavadoc" value="false" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder2" value="2" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder2" value="2" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder2" value="2" />
|
|
||||||
<property name="options.splitter.main.proportions" value="0.3" />
|
<property name="options.splitter.main.proportions" value="0.3" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="965" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder2" value="2" />
|
||||||
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="697" />
|
||||||
<property name="GoToFile.includeJavaFiles" value="false" />
|
<property name="GoToFile.includeJavaFiles" value="false" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="269" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="200" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="286" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="210" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="293" />
|
|
||||||
<property name="GoToClass.includeLibraries" value="false" />
|
|
||||||
<property name="options.splitter.details.proportions" value="0.2" />
|
<property name="options.splitter.details.proportions" value="0.2" />
|
||||||
|
<property name="GoToClass.includeLibraries" value="false" />
|
||||||
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="217" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder3" value="3" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder3" value="3" />
|
||||||
<property name="MemberChooser.showClasses" value="true" />
|
<property name="MemberChooser.showClasses" value="true" />
|
||||||
<property name="project.structure.side.proportion" value="0.2" />
|
<property name="project.structure.side.proportion" value="0.2" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth0" value="290" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth0" value="213" />
|
||||||
<property name="options.lastSelected" value="project.validation" />
|
<property name="options.lastSelected" value="project.validation" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder3" value="3" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder3" value="3" />
|
||||||
<property name="GoToClass.toSaveIncludeLibraries" value="false" />
|
<property name="GoToClass.toSaveIncludeLibraries" value="false" />
|
||||||
<property name="RunManagerConfig.showSettingsBeforeRunnig" value="false" />
|
<property name="RunManagerConfig.showSettingsBeforeRunnig" value="false" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder0" value="0" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder0" value="0" />
|
||||||
<property name="project.structure.last.edited" value="Modules" />
|
<property name="project.structure.last.edited" value="Modules" />
|
||||||
<property name="options.searchVisible" value="true" />
|
|
||||||
<property name="MemberChooser.sorted" value="false" />
|
<property name="MemberChooser.sorted" value="false" />
|
||||||
|
<property name="options.searchVisible" value="true" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder1" value="1" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder1" value="1" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="301" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="221" />
|
||||||
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="711" />
|
||||||
<property name="dynamic.classpath" value="false" />
|
<property name="dynamic.classpath" value="false" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="972" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="228" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="308" />
|
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" />
|
||||||
</component>
|
</component>
|
||||||
<component name="RecentsManager">
|
<component name="RecentsManager">
|
||||||
|
|
@ -378,6 +264,107 @@
|
||||||
<recent name="se.scalablesolutions.akka.api" />
|
<recent name="se.scalablesolutions.akka.api" />
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
|
<component name="RestoreUpdateTree">
|
||||||
|
<UpdateInfo date="5/13/09 7:38 AM" ActionInfo="_Update">
|
||||||
|
<UpdatedFiles>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Updated from server" />
|
||||||
|
<option name="myStatusName" value="Changed on server" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="CHANGED_ON_SERVER" />
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Updated" />
|
||||||
|
<option name="myStatusName" value="Changed" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="UPDATED" />
|
||||||
|
<PATH>$PROJECT_DIR$/akka.iws</PATH>
|
||||||
|
<PATH>$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java</PATH>
|
||||||
|
<PATH>$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala</PATH>
|
||||||
|
<PATH>$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala</PATH>
|
||||||
|
</FILE-GROUP>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Created" />
|
||||||
|
<option name="myStatusName" value="Created" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="CREATED" />
|
||||||
|
</FILE-GROUP>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Deleted" />
|
||||||
|
<option name="myStatusName" value="Deleted" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="true" />
|
||||||
|
<option name="myId" value="REMOVED_FROM_REPOSITORY" />
|
||||||
|
</FILE-GROUP>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Restored" />
|
||||||
|
<option name="myStatusName" value="Will be restored" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="RESTORED" />
|
||||||
|
</FILE-GROUP>
|
||||||
|
</FILE-GROUP>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Modified" />
|
||||||
|
<option name="myStatusName" value="Modified" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="MODIFIED" />
|
||||||
|
</FILE-GROUP>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Skipped" />
|
||||||
|
<option name="myStatusName" value="Skipped" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="SKIPPED" />
|
||||||
|
</FILE-GROUP>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Merged with conflicts" />
|
||||||
|
<option name="myStatusName" value="Will be merged with conflicts" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="MERGED_WITH_CONFLICTS" />
|
||||||
|
</FILE-GROUP>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Merged" />
|
||||||
|
<option name="myStatusName" value="Will be merged" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="MERGED" />
|
||||||
|
</FILE-GROUP>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Not in repository" />
|
||||||
|
<option name="myStatusName" value="Not in repository" />
|
||||||
|
<option name="mySupportsDeletion" value="true" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="UNKNOWN" />
|
||||||
|
</FILE-GROUP>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Locally added" />
|
||||||
|
<option name="myStatusName" value="Locally added" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="LOCALLY_ADDED" />
|
||||||
|
</FILE-GROUP>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Locally removed" />
|
||||||
|
<option name="myStatusName" value="Locally removed" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="LOCALLY_REMOVED" />
|
||||||
|
</FILE-GROUP>
|
||||||
|
<FILE-GROUP>
|
||||||
|
<option name="myUpdateName" value="Switched" />
|
||||||
|
<option name="myStatusName" value="Switched" />
|
||||||
|
<option name="mySupportsDeletion" value="false" />
|
||||||
|
<option name="myCanBeAbsent" value="false" />
|
||||||
|
<option name="myId" value="SWITCHED" />
|
||||||
|
</FILE-GROUP>
|
||||||
|
</UpdatedFiles>
|
||||||
|
</UpdateInfo>
|
||||||
|
</component>
|
||||||
<component name="RunManager" selected="JUnit.InMemoryStateTest">
|
<component name="RunManager" selected="JUnit.InMemoryStateTest">
|
||||||
<tempConfiguration default="false" name="Scala Console" type="ScalaScriptConsoleRunConfiguration" factoryName="Scala Console">
|
<tempConfiguration default="false" name="Scala Console" type="ScalaScriptConsoleRunConfiguration" factoryName="Scala Console">
|
||||||
<module name="" />
|
<module name="" />
|
||||||
|
|
@ -531,7 +518,13 @@
|
||||||
<value defaultName="moduleWithDependencies" />
|
<value defaultName="moduleWithDependencies" />
|
||||||
</option>
|
</option>
|
||||||
<envs />
|
<envs />
|
||||||
|
<RunnerSettings RunnerId="Debug">
|
||||||
|
<option name="DEBUG_PORT" value="53323" />
|
||||||
|
<option name="TRANSPORT" value="0" />
|
||||||
|
<option name="LOCAL" value="true" />
|
||||||
|
</RunnerSettings>
|
||||||
<RunnerSettings RunnerId="Run" />
|
<RunnerSettings RunnerId="Run" />
|
||||||
|
<ConfigurationWrapper RunnerId="Debug" />
|
||||||
<ConfigurationWrapper RunnerId="Run" />
|
<ConfigurationWrapper RunnerId="Run" />
|
||||||
<method>
|
<method>
|
||||||
<option name="Make" value="true" />
|
<option name="Make" value="true" />
|
||||||
|
|
@ -588,28 +581,29 @@
|
||||||
</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="false" />
|
<editor active="true" />
|
||||||
<layout>
|
<layout>
|
||||||
<window_info id="Web Preview" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32976654" sideWeight="0.5" order="13" 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="13" 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="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="14" side_tool="false" />
|
||||||
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3294881" sideWeight="0.68877554" order="5" side_tool="false" />
|
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3294881" sideWeight="0.68877554" order="5" 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="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.33" sideWeight="0.5" 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.32879376" 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.24873829" sideWeight="0.690051" order="1" side_tool="false" />
|
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24873829" sideWeight="0.69132656" 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.32879376" 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.32780612" 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.24945295" sideWeight="0.84143966" 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.24945295" sideWeight="0.84143966" 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="true" weight="0.3010204" sideWeight="0.5" order="11" side_tool="false" />
|
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2997449" sideWeight="0.5" order="11" 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="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="12" 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" />
|
||||||
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879376" 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.32879376" sideWeight="0.5" order="7" side_tool="false" />
|
||||||
<window_info id="Run" active="true" anchor="bottom" auto_hide="true" internal_type="DOCKED" type="FLOATING" visible="true" weight="0.47276264" sideWeight="0.5" order="2" side_tool="false" x="16" y="22" width="1798" height="878" />
|
<window_info id="Run" active="false" anchor="bottom" auto_hide="true" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4719388" 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.39980546" sideWeight="0.5" order="3" side_tool="false" />
|
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39923468" 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="8" 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="8" side_tool="false" />
|
||||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879376" sideWeight="0.5" order="10" side_tool="false" />
|
<window_info id="REST Client" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32908162" sideWeight="0.5" order="-1" 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="10" 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" />
|
||||||
<window_info id="FindBugs-IDEA" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32976654" sideWeight="0.5" order="9" side_tool="false" />
|
<window_info id="FindBugs-IDEA" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32976654" sideWeight="0.5" order="9" side_tool="false" />
|
||||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" />
|
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" />
|
||||||
|
|
@ -657,69 +651,6 @@
|
||||||
</buildFile>
|
</buildFile>
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/CassandraNode.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="36" column="11" selection-start="1063" selection-end="1063" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/Messages.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="7" column="12" selection-start="139" selection-end="139" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/util-java/src/main/java/se/scalablesolutions/akka/annotation/immutable.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="10" column="18" selection-start="210" selection-end="210" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/pom.xml">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="73" column="4" selection-start="2212" selection-end="2212" vertical-scroll-proportion="0.08803301">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/pom.xml">
|
|
||||||
<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>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="35" column="6" selection-start="1232" selection-end="1232" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/GenericServer.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="14" column="11" selection-start="371" selection-end="371" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/SupervisorSpec.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="18" column="29" selection-start="528" selection-end="528" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/GenericServerContainerSuite.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="17" column="6" selection-start="352" selection-end="352" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/camel/SupervisorAwareCamelContext.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/camel/SupervisorAwareCamelContext.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="9" column="0" selection-start="248" selection-end="248" vertical-scroll-proportion="0.0">
|
<state line="9" column="0" selection-start="248" selection-end="248" vertical-scroll-proportion="0.0">
|
||||||
|
|
@ -762,9 +693,82 @@
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="jar:///System/Library/Frameworks/JavaVM.framework/Home/../Classes/classes.jar!/java/lang/Class.class">
|
||||||
|
<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>
|
||||||
|
<entry file="jar://$MAVEN_REPOSITORY$/net/lag/configgy/1.2/configgy-1.2.jar!/net/lag/logging/Logger.class">
|
||||||
|
<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>
|
||||||
|
<entry file="jar://$PROJECT_DIR$/../../../bin/scala-2.7.3.final/src/scala-library-src.jar!/scala/Function1.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="37" column="0" selection-start="1217" selection-end="1217" 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/collection/mutable/ArrayBuffer.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="25" column="0" selection-start="972" selection-end="972" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="uml://se.scalablesolutions.akka.kernel.config.ActiveObjectGuiceConfiguratorForJava">
|
||||||
|
<provider selected="true" editor-type-id="UmlClassDiagramEditorProvider">
|
||||||
|
<state>
|
||||||
|
<classes>
|
||||||
|
<class fqn="java.lang.Object" x="0.0" y="142.0" />
|
||||||
|
<class fqn="se.scalablesolutions.akka.kernel.config.ActiveObjectGuiceConfiguratorForJava" x="0.0" y="0.0" />
|
||||||
|
<class fqn="scala.ScalaObject" x="0.0" y="71.0" />
|
||||||
|
</classes>
|
||||||
|
<packages />
|
||||||
|
<edges />
|
||||||
|
<settings isCamel="false" isColorManagerEnabled="true" isFieldsVisible="false" isConstructorsVisible="false" isMethodsVisible="false" isShowDependencies="false" isShowInnerClasses="false" defaultVisibility="private" isPropertiesVisible="false" zoom="1.0" x="153.0" y="84.0" />
|
||||||
|
<SelectedNodes>
|
||||||
|
<node fqn="se.scalablesolutions.akka.kernel.config.ActiveObjectGuiceConfiguratorForJava" />
|
||||||
|
</SelectedNodes>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/GenericServer.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="94" column="9" selection-start="2880" selection-end="2880" 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/Option.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="38" column="0" selection-start="1292" selection-end="1292" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="106" column="0" selection-start="3497" selection-end="3497" vertical-scroll-proportion="-5.0384617">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="60" column="16" selection-start="2027" selection-end="2027" 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">
|
<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="40" column="2" selection-start="1730" selection-end="1730" vertical-scroll-proportion="1.0281124">
|
<state line="37" column="0" selection-start="1609" selection-end="1609" vertical-scroll-proportion="0.21296297">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
@ -786,8 +790,15 @@
|
||||||
<value>
|
<value>
|
||||||
<UIState>
|
<UIState>
|
||||||
<option name="proportions">
|
<option name="proportions">
|
||||||
<SplitterProportionsDataImpl />
|
<SplitterProportionsDataImpl>
|
||||||
|
<option name="proportions">
|
||||||
|
<list>
|
||||||
|
<option value="0.2" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</SplitterProportionsDataImpl>
|
||||||
</option>
|
</option>
|
||||||
|
<option name="lastEditedConfigurable" value="Project Profiles" />
|
||||||
</UIState>
|
</UIState>
|
||||||
</value>
|
</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
|
@ -839,8 +850,15 @@
|
||||||
<value>
|
<value>
|
||||||
<UIState>
|
<UIState>
|
||||||
<option name="proportions">
|
<option name="proportions">
|
||||||
<SplitterProportionsDataImpl />
|
<SplitterProportionsDataImpl>
|
||||||
|
<option name="proportions">
|
||||||
|
<list>
|
||||||
|
<option value="0.2" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</SplitterProportionsDataImpl>
|
||||||
</option>
|
</option>
|
||||||
|
<option name="lastEditedConfigurable" value="Project Profiles" />
|
||||||
</UIState>
|
</UIState>
|
||||||
</value>
|
</value>
|
||||||
</entry>
|
</entry>
|
||||||
|
|
|
||||||
|
|
@ -31,18 +31,17 @@ public class InMemoryStateTest extends TestCase {
|
||||||
conf.stop();
|
conf.stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
public void testShouldNotRollbackStateForStatefulServerInCaseOfSuccess() {
|
public void testShouldNotRollbackStateForStatefulServerInCaseOfSuccess() {
|
||||||
InMemStateful stateful = conf.getActiveObject("inmem-stateful");
|
InMemStateful stateful = conf.getActiveObject("inmem-stateful");
|
||||||
stateful.setState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "init"); // set init state
|
stateful.setState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "init"); // set init state
|
||||||
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // transactional
|
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // transactional
|
||||||
|
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // transactional
|
||||||
assertEquals("new state", stateful.getState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess"));
|
assertEquals("new state", stateful.getState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess"));
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
public void testShouldRollbackStateForStatefulServerInCaseOfFailure() {
|
public void testShouldRollbackStateForStatefulServerInCaseOfFailure() {
|
||||||
InMemStateful stateful = conf.getActiveObject("inmem-stateful");
|
InMemStateful stateful = conf.getActiveObject("inmem-stateful");
|
||||||
stateful.setState("testShouldRollbackStateForStatefulServerInCaseOfFailure", "init"); // set init state
|
stateful.setState("testShouldRollbackStateForStatefulServerInCaseOfFailure", "init"); // set init state
|
||||||
|
|
||||||
InMemFailer failer = conf.getActiveObject("inmem-failer");
|
InMemFailer failer = conf.getActiveObject("inmem-failer");
|
||||||
try {
|
try {
|
||||||
stateful.failure("testShouldRollbackStateForStatefulServerInCaseOfFailure", "new state", failer); // call failing transactional method
|
stateful.failure("testShouldRollbackStateForStatefulServerInCaseOfFailure", "new state", failer); // call failing transactional method
|
||||||
|
|
@ -51,7 +50,8 @@ public class InMemoryStateTest extends TestCase {
|
||||||
} // expected
|
} // expected
|
||||||
assertEquals("init", stateful.getState("testShouldRollbackStateForStatefulServerInCaseOfFailure")); // check that state is == init state
|
assertEquals("init", stateful.getState("testShouldRollbackStateForStatefulServerInCaseOfFailure")); // check that state is == init state
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
*/
|
||||||
// public void testShouldRollbackStateForStatefulServerInCaseOfMessageClash()
|
// public void testShouldRollbackStateForStatefulServerInCaseOfMessageClash()
|
||||||
// {
|
// {
|
||||||
// InMemStateful stateful = conf.getActiveObject(InMemStateful.class);
|
// InMemStateful stateful = conf.getActiveObject(InMemStateful.class);
|
||||||
|
|
|
||||||
|
|
@ -4,17 +4,17 @@
|
||||||
|
|
||||||
package se.scalablesolutions.akka.kernel
|
package se.scalablesolutions.akka.kernel
|
||||||
|
|
||||||
|
import kernel.camel.{MessageDriven, ActiveObjectProducer}
|
||||||
import config.ActiveObjectGuiceConfigurator
|
import config.ActiveObjectGuiceConfigurator
|
||||||
import config.ScalaConfig._
|
import config.ScalaConfig._
|
||||||
|
|
||||||
import java.util.{List => JList, ArrayList}
|
import java.util.{List => JList, ArrayList}
|
||||||
import java.lang.reflect.{Method, Field, InvocationHandler, Proxy, InvocationTargetException}
|
import java.lang.reflect.{Method, Field, InvocationHandler, Proxy, InvocationTargetException}
|
||||||
import java.lang.annotation.Annotation
|
import java.lang.annotation.Annotation
|
||||||
import kernel.camel.{MessageDriven, ActiveObjectProducer}
|
|
||||||
import org.apache.camel.{Processor, Exchange}
|
import org.apache.camel.{Processor, Exchange}
|
||||||
|
|
||||||
import scala.collection.mutable.HashMap
|
import scala.collection.mutable.HashMap
|
||||||
//import voldemort.client.{SocketStoreClientFactory, StoreClient, StoreClientFactory}
|
|
||||||
//import voldemort.versioning.Versioned
|
|
||||||
|
|
||||||
sealed class ActiveObjectException(msg: String) extends RuntimeException(msg)
|
sealed class ActiveObjectException(msg: String) extends RuntimeException(msg)
|
||||||
class ActiveObjectInvocationTimeoutException(msg: String) extends ActiveObjectException(msg)
|
class ActiveObjectInvocationTimeoutException(msg: String) extends ActiveObjectException(msg)
|
||||||
|
|
@ -104,26 +104,27 @@ class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: I
|
||||||
|
|
||||||
def invoke(proxy: AnyRef, m: Method, args: Array[AnyRef]): AnyRef = {
|
def invoke(proxy: AnyRef, m: Method, args: Array[AnyRef]): AnyRef = {
|
||||||
if (m.isAnnotationPresent(Annotations.transactional)) {
|
if (m.isAnnotationPresent(Annotations.transactional)) {
|
||||||
|
if (activeTx.isDefined) {
|
||||||
|
val tx = activeTx.get
|
||||||
|
//val cflowTx = threadBoundTx.get
|
||||||
|
// if (cflowTx.isDefined && cflowTx.get != tx) {
|
||||||
|
// new tx in scope; try to commit
|
||||||
|
tx.commit(server)
|
||||||
|
threadBoundTx.set(None)
|
||||||
|
activeTx = None
|
||||||
|
// }
|
||||||
|
}
|
||||||
// FIXME: check if we are already in a transaction if so NEST (set parent)
|
// FIXME: check if we are already in a transaction if so NEST (set parent)
|
||||||
val newTx = new Transaction
|
val newTx = new Transaction
|
||||||
newTx.begin(server)
|
newTx.begin(server)
|
||||||
threadBoundTx.set(Some(newTx))
|
threadBoundTx.set(Some(newTx))
|
||||||
}
|
}
|
||||||
|
|
||||||
val cflowTx = threadBoundTx.get
|
val cflowTx = threadBoundTx.get
|
||||||
activeTx match {
|
if (!activeTx.isDefined && cflowTx.isDefined) {
|
||||||
case Some(tx) =>
|
val currentTx = cflowTx.get
|
||||||
if (cflowTx.isDefined && cflowTx.get != tx) {
|
currentTx.join(server)
|
||||||
// new tx in scope; try to commit
|
activeTx = Some(currentTx)
|
||||||
tx.commit(server)
|
|
||||||
threadBoundTx.set(None)
|
|
||||||
activeTx = None
|
|
||||||
}
|
|
||||||
case None =>
|
|
||||||
if (cflowTx.isDefined) {
|
|
||||||
val currentTx = cflowTx.get
|
|
||||||
currentTx.join(server)
|
|
||||||
activeTx = Some(currentTx)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
activeTx = threadBoundTx.get
|
activeTx = threadBoundTx.get
|
||||||
invoke(Invocation(m, args, targetInstance, activeTx))
|
invoke(Invocation(m, args, targetInstance, activeTx))
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,7 @@
|
||||||
package se.scalablesolutions.akka.kernel
|
package se.scalablesolutions.akka.kernel
|
||||||
|
|
||||||
import java.util.concurrent.atomic.AtomicLong
|
import java.util.concurrent.atomic.AtomicLong
|
||||||
import scala.collection.mutable.HashMap
|
import scala.collection.mutable.{HashSet, HashMap}
|
||||||
|
|
||||||
sealed abstract class TransactionStatus
|
sealed abstract class TransactionStatus
|
||||||
object TransactionStatus {
|
object TransactionStatus {
|
||||||
case object New extends TransactionStatus
|
case object New extends TransactionStatus
|
||||||
|
|
@ -34,60 +33,59 @@ object TransactionIdFactory {
|
||||||
class Transaction extends Logging {
|
class Transaction extends Logging {
|
||||||
val id = TransactionIdFactory.newId
|
val id = TransactionIdFactory.newId
|
||||||
|
|
||||||
log.debug("Creating a new transaction [%s]", id)
|
log.debug("Creating a new transaction with id [%s]", id)
|
||||||
|
|
||||||
|
// FIXME: add support for nested transactions
|
||||||
private[this] var parent: Option[Transaction] = None
|
private[this] var parent: Option[Transaction] = None
|
||||||
private[this] var participants: List[GenericServerContainer] = Nil
|
private[this] val participants = new HashSet[GenericServerContainer]
|
||||||
private[this] var precommitted: List[GenericServerContainer] = Nil
|
private[this] val precommitted = new HashSet[GenericServerContainer]
|
||||||
@volatile private[this] var status: TransactionStatus = TransactionStatus.New
|
@volatile private[this] var status: TransactionStatus = TransactionStatus.New
|
||||||
|
|
||||||
def begin(server: GenericServerContainer) = synchronized {
|
def begin(server: GenericServerContainer) = synchronized {
|
||||||
println("===== begin 1 " + server)
|
ensureIsActiveOrNew
|
||||||
if (status == TransactionStatus.Aborted) throw new IllegalStateException("Can't begin ABORTED transaction")
|
if (status == TransactionStatus.New) log.info("Server [%s] is starting NEW transaction [%s]", server.id, this)
|
||||||
if (status == TransactionStatus.Completed) throw new IllegalStateException("Can't begin COMPLETED transaction")
|
else log.info("Server [%s] is participating in transaction", server)
|
||||||
if (status == TransactionStatus.New) log.debug("Actor [%s] is starting NEW transaction", server)
|
|
||||||
else log.debug("Actor [%s] is participating in transaction", server)
|
|
||||||
println("===== begin 2 " + server)
|
|
||||||
server.transactionalItems.foreach(_.begin)
|
server.transactionalItems.foreach(_.begin)
|
||||||
participants ::= server
|
participants + server
|
||||||
status = TransactionStatus.Active
|
status = TransactionStatus.Active
|
||||||
}
|
}
|
||||||
|
|
||||||
def precommit(server: GenericServerContainer) = synchronized {
|
def precommit(server: GenericServerContainer) = synchronized {
|
||||||
if (status == TransactionStatus.Active) {
|
if (status == TransactionStatus.Active) {
|
||||||
println("===== precommit " + server)
|
log.info("Pre-committing transaction [%s] for server [%s]", this, server.id)
|
||||||
log.debug("Pre-committing transaction for actor [%s]", server)
|
precommitted + server
|
||||||
precommitted ::= server
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
def commit(server: GenericServerContainer) = synchronized {
|
def commit(server: GenericServerContainer) = synchronized {
|
||||||
if (status == TransactionStatus.Active) {
|
if (status == TransactionStatus.Active) {
|
||||||
println("===== commit " + server)
|
log.info("Committing transaction [%s] for server [%s]", this, server.id)
|
||||||
log.debug("Committing transaction for actor [%s]", server)
|
|
||||||
val haveAllPreCommitted =
|
val haveAllPreCommitted =
|
||||||
if (participants.size == precommitted.size) {{
|
if (participants.size == precommitted.size) {{
|
||||||
for (server <- participants) yield {
|
for (server <- participants) yield {
|
||||||
if (precommitted.exists(_.id == server.id)) true
|
if (precommitted.exists(_.id == server.id)) true
|
||||||
else false
|
else false
|
||||||
}}.exists(_ == false)
|
}}.exists(_ == true)
|
||||||
} else false
|
} else false
|
||||||
if (haveAllPreCommitted) status = TransactionStatus.Completed
|
if (haveAllPreCommitted) status = TransactionStatus.Completed
|
||||||
else rollback(server)
|
else rollback(server)
|
||||||
}
|
}
|
||||||
|
participants.clear
|
||||||
|
precommitted.clear
|
||||||
}
|
}
|
||||||
|
|
||||||
def rollback(server: GenericServerContainer) = synchronized {
|
def rollback(server: GenericServerContainer) = synchronized {
|
||||||
ensureIsActiveOrAborted
|
ensureIsActiveOrAborted
|
||||||
println("===== rollback " + server)
|
log.info("Server [%s] has initiated transaction rollback for [%s], rolling back [%s]", server.id, this, participants)
|
||||||
log.debug("Actor [%s] has initiated transaction rollback, rolling back [%s]" , server, participants)
|
|
||||||
participants.foreach(_.transactionalItems.foreach(_.rollback))
|
participants.foreach(_.transactionalItems.foreach(_.rollback))
|
||||||
status = TransactionStatus.Aborted
|
status = TransactionStatus.Aborted
|
||||||
}
|
}
|
||||||
|
|
||||||
def join(server: GenericServerContainer) = synchronized {
|
def join(server: GenericServerContainer) = synchronized {
|
||||||
println("===== joining " + server)
|
ensureIsActive
|
||||||
|
log.info("Server [%s] is joining transaction [%s]" , server.id, this)
|
||||||
server.transactionalItems.foreach(_.begin)
|
server.transactionalItems.foreach(_.begin)
|
||||||
participants ::= server
|
participants + server
|
||||||
}
|
}
|
||||||
|
|
||||||
private def ensureIsActive = if (status != TransactionStatus.Active)
|
private def ensureIsActive = if (status != TransactionStatus.Active)
|
||||||
|
|
@ -96,6 +94,9 @@ class Transaction extends Logging {
|
||||||
private def ensureIsActiveOrAborted = if (!(status == TransactionStatus.Active || status == TransactionStatus.Aborted))
|
private def ensureIsActiveOrAborted = if (!(status == TransactionStatus.Active || status == TransactionStatus.Aborted))
|
||||||
throw new IllegalStateException("Expected ACTIVE or ABORTED transaction - current status [" + status + "]")
|
throw new IllegalStateException("Expected ACTIVE or ABORTED transaction - current status [" + status + "]")
|
||||||
|
|
||||||
|
private def ensureIsActiveOrNew = if (!(status == TransactionStatus.Active || status == TransactionStatus.New))
|
||||||
|
throw new IllegalStateException("Expected ACTIVE or NEW transaction - current status [" + status + "]")
|
||||||
|
|
||||||
override def equals(that: Any): Boolean = synchronized {
|
override def equals(that: Any): Boolean = synchronized {
|
||||||
that != null &&
|
that != null &&
|
||||||
that.isInstanceOf[Transaction] &&
|
that.isInstanceOf[Transaction] &&
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue