switched from DPs to AW proxy
This commit is contained in:
parent
33a333e66d
commit
0ad6151dda
16 changed files with 561 additions and 324 deletions
538
akka.iws
538
akka.iws
|
|
@ -1,23 +1,22 @@
|
||||||
<?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=" # Brief commit desciption here # Full commit description here (comment lines starting with '#' will not be included) ">
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/JerseyFoo.java" afterPath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/JerseyFoo.java" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java" afterPath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java" />
|
|
||||||
<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/akka-kernel.iml" afterPath="$PROJECT_DIR$/kernel/akka-kernel.iml" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/akka-kernel.iml" afterPath="$PROJECT_DIR$/kernel/akka-kernel.iml" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/JerseyFooImpl.java" afterPath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/JerseyFooImpl.java" />
|
<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/GenericServer.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/GenericServer.scala" />
|
||||||
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemStatefulImpl.java" />
|
||||||
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemFailerImpl.java" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfiguratorForJava.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfiguratorForJava.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfiguratorForJava.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfiguratorForJava.scala" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java" afterPath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka.iws" afterPath="$PROJECT_DIR$/akka.iws" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka.iws" afterPath="$PROJECT_DIR$/akka.iws" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/config/Config.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/config/Config.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/config/Config.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/config/Config.scala" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/jersey/ActiveObjectComponentProviderFactory.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/jersey/ActiveObjectComponentProviderFactory.scala" />
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemStateful.java" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/RestTest.java" afterPath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/RestTest.java" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/pom.xml" afterPath="$PROJECT_DIR$/kernel/pom.xml" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/jersey/AkkaServlet.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/jersey/AkkaServlet.scala" />
|
<change type="NEW" beforePath="" afterPath="$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemFailer.java" />
|
||||||
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/aspectwerkz-nodeps-jdk5-2.1.jar" afterPath="$PROJECT_DIR$/lib/aspectwerkz-nodeps-jdk5-2.1.jar" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectConfigurator.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectConfigurator.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectConfigurator.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectConfigurator.scala" />
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/config/CamelConfigurator.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/config/CamelConfigurator.scala" />
|
|
||||||
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/jersey/ActiveObjectComponentProvider.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/jersey/ActiveObjectComponentProvider.scala" />
|
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/kernel/src/main/scala/jersey/ActiveObjectComponentProvider.scala" afterPath="$PROJECT_DIR$/kernel/src/main/scala/jersey/ActiveObjectComponentProvider.scala" />
|
||||||
</list>
|
</list>
|
||||||
<ignored path=".idea/workspace.xml" />
|
<ignored path=".idea/workspace.xml" />
|
||||||
|
|
@ -38,45 +37,6 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="DebuggerManager">
|
<component name="DebuggerManager">
|
||||||
<line_breakpoints>
|
<line_breakpoints>
|
||||||
<breakpoint url="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" line="167" class="Class at ActiveObject.scala:167" 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/jersey/ActiveObjectComponentProvider.scala" line="18" class="Class at ActiveObjectComponentProvider.scala:18" 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/config/ActiveObjectGuiceConfigurator.scala" line="123" class="Class at ActiveObjectGuiceConfigurator.scala:121" 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="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.3/jersey-server-1.0.3-sources.jar!/com/sun/jersey/server/impl/uri/rules/ResourceClassRule.java" line="55" class="com.sun.jersey.server.impl.uri.rules.ResourceClassRule" package="com.sun.jersey.server.impl.uri.rules">
|
<breakpoint url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.3/jersey-server-1.0.3-sources.jar!/com/sun/jersey/server/impl/uri/rules/ResourceClassRule.java" line="55" class="com.sun.jersey.server.impl.uri.rules.ResourceClassRule" package="com.sun.jersey.server.impl.uri.rules">
|
||||||
<option name="ENABLED" value="true" />
|
<option name="ENABLED" value="true" />
|
||||||
<option name="LOG_ENABLED" value="false" />
|
<option name="LOG_ENABLED" value="false" />
|
||||||
|
|
@ -90,6 +50,58 @@
|
||||||
<option name="CONDITION" value="" />
|
<option name="CONDITION" value="" />
|
||||||
<option name="LOG_MESSAGE" value="" />
|
<option name="LOG_MESSAGE" value="" />
|
||||||
</breakpoint>
|
</breakpoint>
|
||||||
|
<breakpoint url="file://$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala" line="44" class="Class at Transaction.scala:44" 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="53" class="Class at Transaction.scala:53" 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="80" class="Class at Transaction.scala:80" 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$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemStatefulImpl.java" line="15" class="se.scalablesolutions.akka.api.InMemStatefulImpl" package="se.scalablesolutions.akka.api">
|
||||||
|
<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>
|
</line_breakpoints>
|
||||||
<breakpoint_any>
|
<breakpoint_any>
|
||||||
<breakpoint>
|
<breakpoint>
|
||||||
|
|
@ -148,64 +160,91 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf>
|
<leaf>
|
||||||
<file leaf-file-name="ActiveObjectConfigurator.scala" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectConfigurator.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="9" column="7" selection-start="199" selection-end="199" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="ActiveObjectGuiceConfigurator.scala" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="ActiveObjectGuiceConfigurator.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="39" column="53" selection-start="1464" selection-end="1464" vertical-scroll-proportion="0.0">
|
<state line="47" column="0" selection-start="1768" selection-end="1768" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<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="42" column="7" selection-start="1375" selection-end="1375" vertical-scroll-proportion="0.6827881">
|
<state line="194" column="0" selection-start="7045" selection-end="7045" vertical-scroll-proportion="-4.8076925">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="DefaultResourceConfig.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="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.3/jersey-server-1.0.3-sources.jar!/com/sun/jersey/api/core/DefaultResourceConfig.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="57" column="13" selection-start="2517" selection-end="2517" vertical-scroll-proportion="0.0">
|
<state line="44" column="0" selection-start="2068" selection-end="2068" vertical-scroll-proportion="0.374269">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="ActiveObjectComponentProviderFactory.scala" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="SignatureFactory.java" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/jersey/ActiveObjectComponentProviderFactory.scala">
|
<entry file="file://$PROJECT_DIR$/../../java/aspectwerkz4/src/main/org/codehaus/aspectwerkz/joinpoint/management/SignatureFactory.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="15" column="96" selection-start="670" selection-end="670" vertical-scroll-proportion="0.0">
|
<state line="142" column="0" selection-start="5784" selection-end="5784" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="WebApplicationFactory.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="Transaction.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.3/jersey-server-1.0.3-sources.jar!/com/sun/jersey/spi/container/WebApplicationFactory.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="48" column="19" selection-start="2265" selection-end="2265" vertical-scroll-proportion="0.0">
|
<state line="53" column="0" selection-start="1781" selection-end="1781" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="WebApplicationImpl.java" pinned="false" current="false" current-in-tab="false">
|
<file leaf-file-name="ActiveObjectGuiceConfiguratorTest.java" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.3/jersey-server-1.0.3-sources.jar!/com/sun/jersey/server/impl/application/WebApplicationImpl.java">
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="712" column="34" selection-start="29186" selection-end="29186" vertical-scroll-proportion="0.0">
|
<state line="149" column="0" selection-start="4211" selection-end="4277" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="InMemFailerImpl.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemFailerImpl.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="7" column="13" selection-start="167" selection-end="167" 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="5" column="13" selection-start="95" selection-end="95" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<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">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="12" column="4" selection-start="306" selection-end="306" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="InMemStatefulImpl.java" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemStatefulImpl.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="16" column="0" selection-start="534" selection-end="534" vertical-scroll-proportion="0.0">
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="imports" expanded="true" />
|
<element signature="imports" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
|
|
@ -213,33 +252,6 @@
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file leaf-file-name="ActiveObjectComponentProvider.scala" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/jersey/ActiveObjectComponentProvider.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="3" column="86" selection-start="50" selection-end="50" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="ProviderServices.java" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-core/1.0.3/jersey-core-1.0.3-sources.jar!/com/sun/jersey/core/spi/component/ProviderServices.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="213" column="17" selection-start="7514" selection-end="7514" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file leaf-file-name="AkkaServlet.scala" pinned="false" current="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/jersey/AkkaServlet.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="2" column="46" selection-start="49" selection-end="49" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
</leaf>
|
</leaf>
|
||||||
</component>
|
</component>
|
||||||
<component name="FindManager">
|
<component name="FindManager">
|
||||||
|
|
@ -300,6 +312,140 @@
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.LibraryGroupNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.LibraryGroupNode" />
|
||||||
</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="aspectwerkz 2.1" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="aspectwerkz-nodeps-jdk5-2.1.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="aspectwerkz 2.1" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="aspectwerkz-nodeps-jdk5-2.1.jar" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="management" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="SignatureFactory" />
|
||||||
|
<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="aspectwerkz 2.1" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="aspectwerkz-nodeps-jdk5-2.1.jar" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="management" />
|
||||||
|
<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="aspectwerkz 2.1" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="aspectwerkz-nodeps-jdk5-2.1.jar" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="definition" />
|
||||||
|
<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="aspectwerkz 2.1" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.NamedLibraryElementNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="aspectwerkz-nodeps-jdk5-2.1.jar" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="definition" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="SystemDefinitionContainer" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="akka" />
|
<option name="myItemId" value="akka" />
|
||||||
|
|
@ -714,6 +860,40 @@
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-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_ELEMENT>
|
||||||
|
<option name="myItemId" value="InMemStatefulImpl" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="akka" />
|
<option name="myItemId" value="akka" />
|
||||||
|
|
@ -748,6 +928,40 @@
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-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_ELEMENT>
|
||||||
|
<option name="myItemId" value="InMemStateful" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ClassTreeNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
<PATH>
|
<PATH>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="akka" />
|
<option name="myItemId" value="akka" />
|
||||||
|
|
@ -856,7 +1070,7 @@
|
||||||
<recent name="se.scalablesolutions.akka.api" />
|
<recent name="se.scalablesolutions.akka.api" />
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager" selected="JUnit.REST">
|
<component name="RunManager" selected="JUnit.PersistentStateTest">
|
||||||
<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="" />
|
||||||
<setting name="vmparams" value="" />
|
<setting name="vmparams" value="" />
|
||||||
|
|
@ -1184,31 +1398,31 @@
|
||||||
</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.32908162" 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="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="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="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32876712" sideWeight="0.69260204" 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.32876712" sideWeight="0.69260204" 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.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="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.24585436" 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.24585436" sideWeight="0.73341835" 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" />
|
||||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25765306" 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="true" weight="0.25765306" 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="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="13" side_tool="false" />
|
||||||
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" />
|
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" />
|
||||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24945927" sideWeight="0.6875" order="1" side_tool="false" />
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24945927" sideWeight="0.6875" order="1" side_tool="false" />
|
||||||
<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.39923468" 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="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="10" 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" />
|
||||||
<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="7" 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="8" 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="10" 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" />
|
||||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24965987" sideWeight="0.5" order="2" side_tool="false" />
|
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24965987" sideWeight="0.5" order="2" side_tool="false" />
|
||||||
</layout>
|
</layout>
|
||||||
|
|
@ -1254,116 +1468,116 @@
|
||||||
</buildFile>
|
</buildFile>
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.3/jersey-server-1.0.3-sources.jar!/com/sun/jersey/server/impl/uri/rules/RightHandPathRule.java">
|
<entry file="jar://$PROJECT_DIR$/lib/aspectwerkz-nodeps-jdk5-2.1.jar!/org/codehaus/aspectwerkz/proxy/Proxy.class">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="110" column="0" selection-start="4684" selection-end="4684" vertical-scroll-proportion="0.0">
|
<state line="24" column="0" selection-start="1275" selection-end="1275" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.3/jersey-server-1.0.3-sources.jar!/com/sun/jersey/api/core/ResourceConfig.java">
|
<entry file="file://$PROJECT_DIR$/../../java/aspectwerkz4/src/main/org/codehaus/aspectwerkz/proxy/Proxy.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="62" column="24" selection-start="2738" selection-end="2738" vertical-scroll-proportion="0.0">
|
<state line="31" column="13" selection-start="1803" selection-end="1803" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/Config.scala">
|
<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="35" column="13" selection-start="1149" selection-end="1149" vertical-scroll-proportion="0.0">
|
<state line="5" column="13" selection-start="95" selection-end="95" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfiguratorForJava.scala">
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemFailerImpl.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="63" column="128" selection-start="1793" selection-end="1793" vertical-scroll-proportion="0.0">
|
<state line="7" column="13" selection-start="167" selection-end="167" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.3/jersey-server-1.0.3-sources.jar!/com/sun/jersey/server/impl/uri/rules/ResourceClassRule.java">
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="55" column="0" selection-start="2411" selection-end="2411" vertical-scroll-proportion="0.0">
|
<state line="149" column="0" selection-start="4211" selection-end="4277" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/jersey/AkkaServlet.scala">
|
<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="2" column="46" selection-start="49" selection-end="49" vertical-scroll-proportion="0.0">
|
<state line="12" column="4" selection-start="306" selection-end="306" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.3/jersey-server-1.0.3-sources.jar!/com/sun/jersey/api/core/DefaultResourceConfig.java">
|
<entry file="file://$PROJECT_DIR$/../../java/aspectwerkz4/src/main/org/codehaus/aspectwerkz/transform/AspectWerkzPreProcessor.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="57" column="13" selection-start="2517" selection-end="2517" vertical-scroll-proportion="0.0">
|
<state line="35" column="42" selection-start="2531" selection-end="2531" vertical-scroll-proportion="0.69155204">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-core/1.0.3/jersey-core-1.0.3-sources.jar!/com/sun/jersey/core/spi/component/ProviderFactory.java">
|
<entry file="file://$PROJECT_DIR$/../../java/aspectwerkz4/src/main/org/codehaus/aspectwerkz/definition/SystemDefinitionContainer.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="370" column="19" selection-start="14606" selection-end="14606" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/ErrRef.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-core/1.0.3/jersey-core-1.0.3-sources.jar!/com/sun/jersey/core/spi/component/ProviderServices.java">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/GenericServer.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="213" column="17" selection-start="7514" selection-end="7514" vertical-scroll-proportion="0.0">
|
<state line="84" column="6" selection-start="2491" selection-end="2491" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/jersey/ActiveObjectComponentProvider.scala">
|
<entry file="file://$PROJECT_DIR$/../../java/aspectwerkz4/src/main/org/codehaus/aspectwerkz/joinpoint/management/SignatureFactory.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="3" column="86" selection-start="50" selection-end="50" vertical-scroll-proportion="0.0">
|
<state line="142" column="0" selection-start="5784" selection-end="5784" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/jersey/ActiveObjectComponentProviderFactory.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="15" column="96" selection-start="670" selection-end="670" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.3/jersey-server-1.0.3-sources.jar!/com/sun/jersey/spi/container/WebApplicationFactory.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="48" column="19" selection-start="2265" selection-end="2265" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.3/jersey-server-1.0.3-sources.jar!/com/sun/jersey/server/impl/application/WebApplicationImpl.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="712" column="34" selection-start="29186" selection-end="29186" vertical-scroll-proportion="0.0">
|
|
||||||
<folding>
|
|
||||||
<element signature="imports" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectConfigurator.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="9" column="7" selection-start="199" selection-end="199" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="39" column="53" selection-start="1464" selection-end="1464" vertical-scroll-proportion="0.0">
|
<state line="47" column="0" selection-start="1768" selection-end="1768" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemStatefulImpl.java">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="16" column="0" selection-start="534" selection-end="534" vertical-scroll-proportion="0.0">
|
||||||
|
<folding>
|
||||||
|
<element signature="imports" expanded="true" />
|
||||||
|
</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="53" column="0" selection-start="1781" selection-end="1781" 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="42" column="7" selection-start="1375" selection-end="1375" vertical-scroll-proportion="0.6827881">
|
<state line="194" column="0" selection-start="7045" selection-end="7045" vertical-scroll-proportion="-4.8076925">
|
||||||
|
<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="44" column="0" selection-start="2068" selection-end="2068" vertical-scroll-proportion="0.374269">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
package se.scalablesolutions.akka.api;
|
||||||
|
|
||||||
|
public interface InMemFailer {
|
||||||
|
public void fail();
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
package se.scalablesolutions.akka.api;
|
||||||
|
|
||||||
|
public class InMemFailerImpl implements InMemFailer {
|
||||||
|
public void fail() {
|
||||||
|
throw new RuntimeException("expected");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
package se.scalablesolutions.akka.api;
|
||||||
|
|
||||||
|
import se.scalablesolutions.akka.annotation.transactional;
|
||||||
|
|
||||||
|
public interface InMemStateful {
|
||||||
|
// transactional
|
||||||
|
@transactional
|
||||||
|
public void success(String key, String msg);
|
||||||
|
|
||||||
|
@transactional
|
||||||
|
public void failure(String key, String msg, InMemFailer failer);
|
||||||
|
|
||||||
|
//@transactional
|
||||||
|
//public void clashOk(String key, String msg, InMemClasher clasher);
|
||||||
|
|
||||||
|
//@transactional
|
||||||
|
//public void clashNotOk(String key, String msg, InMemClasher clasher);
|
||||||
|
|
||||||
|
// non-transactional
|
||||||
|
public String getState(String key);
|
||||||
|
|
||||||
|
public void setState(String key, String value);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,40 @@
|
||||||
|
package se.scalablesolutions.akka.api;
|
||||||
|
|
||||||
|
import se.scalablesolutions.akka.annotation.state;
|
||||||
|
import se.scalablesolutions.akka.kernel.TransactionalMap;
|
||||||
|
import se.scalablesolutions.akka.kernel.InMemoryTransactionalMap;
|
||||||
|
|
||||||
|
public class InMemStatefulImpl implements InMemStateful {
|
||||||
|
@state
|
||||||
|
private TransactionalMap<String, String> state = new InMemoryTransactionalMap<String, String>();
|
||||||
|
|
||||||
|
public String getState(String key) {
|
||||||
|
return state.get(key).get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setState(String key, String msg) {
|
||||||
|
state.put(key, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void success(String key, String msg) {
|
||||||
|
state.put(key, msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void failure(String key, String msg, InMemFailer failer) {
|
||||||
|
state.put(key, msg);
|
||||||
|
failer.fail();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
public void clashOk(String key, String msg, InMemClasher clasher) {
|
||||||
|
state.put(key, msg);
|
||||||
|
clasher.clash();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clashNotOk(String key, String msg, InMemClasher clasher) {
|
||||||
|
state.put(key, msg);
|
||||||
|
clasher.clash();
|
||||||
|
this.success("clash", "clash");
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
@ -21,9 +21,10 @@ public class InMemoryStateTest extends TestCase {
|
||||||
conf.configureActiveObjects(
|
conf.configureActiveObjects(
|
||||||
new RestartStrategy(new AllForOne(), 3, 5000),
|
new RestartStrategy(new AllForOne(), 3, 5000),
|
||||||
new Component[] {
|
new Component[] {
|
||||||
|
// FIXME: remove string-name, add ctor to only accept target class
|
||||||
new Component("inmem-stateful", InMemStateful.class, InMemStatefulImpl.class, new LifeCycle(new Permanent(), 1000), 10000000),
|
new Component("inmem-stateful", InMemStateful.class, InMemStatefulImpl.class, new LifeCycle(new Permanent(), 1000), 10000000),
|
||||||
new Component("inmem-failer", InMemFailer.class, InMemFailerImpl.class, new LifeCycle(new Permanent(), 1000), 1000),
|
new Component("inmem-failer", InMemFailer.class, InMemFailerImpl.class, new LifeCycle(new Permanent(), 1000), 1000)
|
||||||
new Component("inmem-clasher", InMemClasher.class, InMemClasherImpl.class, new LifeCycle(new Permanent(), 1000), 100000)
|
//new Component("inmem-clasher", InMemClasher.class, InMemClasherImpl.class, new LifeCycle(new Permanent(), 1000), 100000)
|
||||||
}).inject().supervise();
|
}).inject().supervise();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -82,69 +83,7 @@ public class InMemoryStateTest extends TestCase {
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
interface InMemStateful {
|
/*
|
||||||
// transactional
|
|
||||||
@transactional
|
|
||||||
public void success(String key, String msg);
|
|
||||||
|
|
||||||
@transactional
|
|
||||||
public void failure(String key, String msg, InMemFailer failer);
|
|
||||||
|
|
||||||
@transactional
|
|
||||||
public void clashOk(String key, String msg, InMemClasher clasher);
|
|
||||||
|
|
||||||
@transactional
|
|
||||||
public void clashNotOk(String key, String msg, InMemClasher clasher);
|
|
||||||
|
|
||||||
// non-transactional
|
|
||||||
public String getState(String key);
|
|
||||||
|
|
||||||
public void setState(String key, String value);
|
|
||||||
}
|
|
||||||
|
|
||||||
class InMemStatefulImpl implements InMemStateful {
|
|
||||||
@state
|
|
||||||
private TransactionalMap<String, String> state = new InMemoryTransactionalMap<String, String>();
|
|
||||||
|
|
||||||
public String getState(String key) {
|
|
||||||
return state.get(key).get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setState(String key, String msg) {
|
|
||||||
state.put(key, msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void success(String key, String msg) {
|
|
||||||
state.put(key, msg);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void failure(String key, String msg, InMemFailer failer) {
|
|
||||||
state.put(key, msg);
|
|
||||||
failer.fail();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void clashOk(String key, String msg, InMemClasher clasher) {
|
|
||||||
state.put(key, msg);
|
|
||||||
clasher.clash();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void clashNotOk(String key, String msg, InMemClasher clasher) {
|
|
||||||
state.put(key, msg);
|
|
||||||
clasher.clash();
|
|
||||||
this.success("clash", "clash");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interface InMemFailer {
|
|
||||||
public void fail();
|
|
||||||
}
|
|
||||||
|
|
||||||
class InMemFailerImpl implements InMemFailer {
|
|
||||||
public void fail() {
|
|
||||||
throw new RuntimeException("expected");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interface InMemClasher {
|
interface InMemClasher {
|
||||||
public void clash();
|
public void clash();
|
||||||
|
|
||||||
|
|
@ -183,3 +122,4 @@ class InMemClasherImpl implements InMemClasher {
|
||||||
// try { Thread.sleep(1000); } catch (InterruptedException e) {}
|
// try { Thread.sleep(1000); } catch (InterruptedException e) {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,9 @@
|
||||||
<root url="jar://$MODULE_DIR$/../lib/aspectwerkz-nodeps-jdk5-2.1.jar!/" />
|
<root url="jar://$MODULE_DIR$/../lib/aspectwerkz-nodeps-jdk5-2.1.jar!/" />
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES />
|
<SOURCES>
|
||||||
|
<root url="file://$MODULE_DIR$/../../../java/aspectwerkz4/src/main" />
|
||||||
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
</orderEntry>
|
</orderEntry>
|
||||||
</component>
|
</component>
|
||||||
|
|
|
||||||
|
|
@ -25,6 +25,11 @@
|
||||||
<artifactId>scala-library</artifactId>
|
<artifactId>scala-library</artifactId>
|
||||||
<version>${scala.version}</version>
|
<version>${scala.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.codehaus.aspectwerkz</groupId>
|
||||||
|
<artifactId>aspectwerkz-nodeps-jdk5</artifactId>
|
||||||
|
<version>2.1</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>net.lag</groupId>
|
<groupId>net.lag</groupId>
|
||||||
<artifactId>configgy</artifactId>
|
<artifactId>configgy</artifactId>
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,10 @@ 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}
|
||||||
|
import org.codehaus.aspectwerkz.intercept.{Advisable, AroundAdvice}
|
||||||
|
import org.codehaus.aspectwerkz.joinpoint.{MethodRtti, JoinPoint}
|
||||||
|
import org.codehaus.aspectwerkz.proxy.Proxy
|
||||||
import java.lang.annotation.Annotation
|
import java.lang.annotation.Annotation
|
||||||
|
|
||||||
import org.apache.camel.{Processor, Exchange}
|
import org.apache.camel.{Processor, Exchange}
|
||||||
|
|
@ -31,7 +34,13 @@ object Annotations {
|
||||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
*/
|
*/
|
||||||
class ActiveObjectFactory {
|
class ActiveObjectFactory {
|
||||||
def newInstance[T](intf: Class[_], proxy: ActiveObjectProxy): T = ActiveObject.newInstance(intf, proxy)
|
def newInstance[T](target: Class[T], server: GenericServerContainer): T = {
|
||||||
|
ActiveObject.newInstance(target, server)
|
||||||
|
}
|
||||||
|
|
||||||
|
def newInstance[T](intf: Class[T], target: AnyRef, server: GenericServerContainer): T = {
|
||||||
|
ActiveObject.newInstance(intf, target, server)
|
||||||
|
}
|
||||||
|
|
||||||
def supervise(restartStrategy: RestartStrategy, components: JList[Worker]): Supervisor =
|
def supervise(restartStrategy: RestartStrategy, components: JList[Worker]): Supervisor =
|
||||||
ActiveObject.supervise(restartStrategy, components.toArray.toList.asInstanceOf[List[Worker]])
|
ActiveObject.supervise(restartStrategy, components.toArray.toList.asInstanceOf[List[Worker]])
|
||||||
|
|
@ -49,18 +58,17 @@ object ActiveObject {
|
||||||
tl
|
tl
|
||||||
}
|
}
|
||||||
|
|
||||||
def newInstance[T](intf: Class[_], proxy: ActiveObjectProxy): T = {
|
def newInstance[T](target: Class[T], server: GenericServerContainer): T = {
|
||||||
Proxy.newProxyInstance(
|
val proxy = Proxy.newInstance(target, false, true)
|
||||||
intf.getClassLoader,
|
// FIXME switch to weaving in the aspect at compile time
|
||||||
Array(intf),
|
proxy.asInstanceOf[Advisable].aw_addAdvice("execution(* *.*(..))", new ActorAroundAdvice(target, proxy, server))
|
||||||
proxy).asInstanceOf[T]
|
proxy.asInstanceOf[T]
|
||||||
}
|
}
|
||||||
|
|
||||||
def newInstance[T](intf: Class[_], target: AnyRef, timeout: Int): T = {
|
def newInstance[T](intf: Class[T], target: AnyRef, server: GenericServerContainer): T = {
|
||||||
val proxy = new ActiveObjectProxy(intf, target.getClass, timeout)
|
val proxy = Proxy.newInstance(Array(intf), Array(target), false, true)
|
||||||
proxy.setTargetInstance(target)
|
proxy.asInstanceOf[Advisable].aw_addAdvice("execution(* *.*(..))", new ActorAroundAdvice(intf, target, server))
|
||||||
supervise(proxy)
|
proxy.asInstanceOf[T]
|
||||||
newInstance(intf, proxy)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
def supervise(restartStrategy: RestartStrategy, components: List[Worker]): Supervisor = {
|
def supervise(restartStrategy: RestartStrategy, components: List[Worker]): Supervisor = {
|
||||||
|
|
@ -72,13 +80,15 @@ object ActiveObject {
|
||||||
supervisor
|
supervisor
|
||||||
}
|
}
|
||||||
|
|
||||||
private def supervise(proxy: ActiveObjectProxy): Supervisor =
|
/*
|
||||||
|
private def supervise(proxy: AnyRef): Supervisor =
|
||||||
supervise(
|
supervise(
|
||||||
RestartStrategy(OneForOne, 5, 1000),
|
RestartStrategy(OneForOne, 5, 1000),
|
||||||
Worker(
|
Worker(
|
||||||
proxy.server,
|
proxy.server,
|
||||||
LifeCycle(Permanent, 100))
|
LifeCycle(Permanent, 100))
|
||||||
:: Nil)
|
:: Nil)
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -86,25 +96,21 @@ object ActiveObject {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// FIXME: STM that allows concurrent updates, detects collision, rolls back and restarts
|
// FIXME: STM that allows concurrent updates, detects collision, rolls back and restarts
|
||||||
class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: Int) extends InvocationHandler {
|
sealed class ActorAroundAdvice(target: Class[_],
|
||||||
|
targetInstance: AnyRef,
|
||||||
|
val server: GenericServerContainer) extends AroundAdvice {
|
||||||
|
val (maps, vectors, refs) = getTransactionalItemsFor(targetInstance)
|
||||||
|
server.transactionalRefs = refs
|
||||||
|
server.transactionalMaps = maps
|
||||||
|
server.transactionalVectors = vectors
|
||||||
|
|
||||||
import ActiveObject.threadBoundTx
|
import ActiveObject.threadBoundTx
|
||||||
|
|
||||||
private[this] var activeTx: Option[Transaction] = None
|
private[this] var activeTx: Option[Transaction] = None
|
||||||
private[akka] var targetInstance: AnyRef = _
|
|
||||||
|
|
||||||
private[akka] def setTargetInstance(instance: AnyRef) = {
|
def invoke(joinpoint: JoinPoint): AnyRef = {
|
||||||
targetInstance = instance
|
// FIXME: switch to using PCD annotation matching, break out into its own aspect + switch to StaticJoinPoint
|
||||||
val (maps, vectors, refs) = getTransactionalItemsFor(targetInstance)
|
val method = joinpoint.getRtti.asInstanceOf[MethodRtti].getMethod
|
||||||
server.transactionalRefs = refs
|
if (method.isAnnotationPresent(Annotations.transactional)) {
|
||||||
server.transactionalMaps = maps
|
|
||||||
server.transactionalVectors = vectors
|
|
||||||
}
|
|
||||||
|
|
||||||
private[akka] val server = new GenericServerContainer(intf.getName, () => new Dispatcher(target.getName))
|
|
||||||
server.setTimeout(timeout)
|
|
||||||
|
|
||||||
def invoke(proxy: AnyRef, m: Method, args: Array[AnyRef]): AnyRef = {
|
|
||||||
if (m.isAnnotationPresent(Annotations.transactional)) {
|
|
||||||
if (activeTx.isDefined) {
|
if (activeTx.isDefined) {
|
||||||
val tx = activeTx.get
|
val tx = activeTx.get
|
||||||
//val cflowTx = threadBoundTx.get
|
//val cflowTx = threadBoundTx.get
|
||||||
|
|
@ -128,22 +134,23 @@ class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: I
|
||||||
activeTx = Some(currentTx)
|
activeTx = Some(currentTx)
|
||||||
}
|
}
|
||||||
activeTx = threadBoundTx.get
|
activeTx = threadBoundTx.get
|
||||||
invoke(Invocation(m, args, targetInstance, activeTx))
|
invoke(joinpoint, activeTx)
|
||||||
|
//invoke(Invocation(method, joinpoint.getRtti.asInstanceOf[MethodRtti].getParameterValues, targetInstance, activeTx))
|
||||||
}
|
}
|
||||||
|
|
||||||
private def invoke(invocation: Invocation): AnyRef = {
|
private def invoke(joinpoint: JoinPoint, tx: Option[Transaction]): AnyRef = {
|
||||||
val result: AnyRef =
|
val result: AnyRef =
|
||||||
/*
|
/*
|
||||||
if (invocation.target.isInstanceOf[MessageDriven] &&
|
if (joinpoint.target.isInstanceOf[MessageDriven] &&
|
||||||
invocation.method.getName == "onMessage") {
|
joinpoint.method.getName == "onMessage") {
|
||||||
val m = invocation.method
|
val m = joinpoint.method
|
||||||
|
|
||||||
val endpointName = m.getDeclaringClass.getName + "." + m.getName
|
val endpointName = m.getDeclaringClass.getName + "." + m.getName
|
||||||
val activeObjectName = m.getDeclaringClass.getName
|
val activeObjectName = m.getDeclaringClass.getName
|
||||||
val endpoint = conf.getRoutingEndpoint(conf.lookupUriFor(m))
|
val endpoint = conf.getRoutingEndpoint(conf.lookupUriFor(m))
|
||||||
val producer = endpoint.createProducer
|
val producer = endpoint.createProducer
|
||||||
val exchange = endpoint.createExchange
|
val exchange = endpoint.createExchange
|
||||||
exchange.getIn().setBody(invocation)
|
exchange.getIn().setBody(joinpoint)
|
||||||
producer.process(exchange)
|
producer.process(exchange)
|
||||||
val fault = exchange.getException();
|
val fault = exchange.getException();
|
||||||
if (fault != null) throw new InvocationTargetException(fault)
|
if (fault != null) throw new InvocationTargetException(fault)
|
||||||
|
|
@ -152,19 +159,21 @@ class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: I
|
||||||
exchange.getOut.getBody
|
exchange.getOut.getBody
|
||||||
|
|
||||||
} else */
|
} else */
|
||||||
if (invocation.method.isAnnotationPresent(Annotations.oneway)) {
|
// FIXME: switch to using PCD annotation matching, break out into its own aspect + switch to StaticJoinPoint
|
||||||
server ! invocation
|
if (joinpoint.getRtti.asInstanceOf[MethodRtti].getMethod.isAnnotationPresent(Annotations.oneway)) {
|
||||||
|
server ! (tx, joinpoint)
|
||||||
} else {
|
} else {
|
||||||
val result: ErrRef[AnyRef] =
|
val result: ErrRef[AnyRef] =
|
||||||
server !!! (invocation, {
|
server !!! ((tx, joinpoint), {
|
||||||
var ref = ErrRef(activeTx)
|
var ref = ErrRef(activeTx)
|
||||||
ref() = throw new ActiveObjectInvocationTimeoutException("Invocation to active object [" + targetInstance.getClass.getName + "] timed out after " + timeout + " milliseconds")
|
ref() = throw new ActiveObjectInvocationTimeoutException("Invocation to active object [" + targetInstance.getClass.getName + "] timed out after " + server.timeout + " milliseconds")
|
||||||
ref
|
ref
|
||||||
})
|
})
|
||||||
try {
|
try {
|
||||||
result()
|
result()
|
||||||
} catch {
|
} catch {
|
||||||
case e =>
|
case e =>
|
||||||
|
println("$$$$$$$$$$$$$$ " + joinpoint)
|
||||||
rollback(result.tx)
|
rollback(result.tx)
|
||||||
throw e
|
throw e
|
||||||
}
|
}
|
||||||
|
|
@ -188,19 +197,19 @@ class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: I
|
||||||
var vectors: List[TransactionalVector[_]] = Nil
|
var vectors: List[TransactionalVector[_]] = Nil
|
||||||
var refs: List[TransactionalRef[_]] = Nil
|
var refs: List[TransactionalRef[_]] = Nil
|
||||||
for {
|
for {
|
||||||
field <- target.getDeclaredFields.toArray.toList.asInstanceOf[List[Field]]
|
field <- targetInstance.getClass.getDeclaredFields.toArray.toList.asInstanceOf[List[Field]]
|
||||||
fieldType = field.getType
|
fieldType = field.getType
|
||||||
if fieldType == classOf[TransactionalMap[_, _]] ||
|
if fieldType == classOf[TransactionalMap[_, _]] ||
|
||||||
fieldType == classOf[TransactionalVector[_]] ||
|
fieldType == classOf[TransactionalVector[_]] ||
|
||||||
fieldType == classOf[TransactionalRef[_]]
|
fieldType == classOf[TransactionalRef[_]]
|
||||||
txItem = {
|
txItem = {
|
||||||
field.setAccessible(true)
|
field.setAccessible(true)
|
||||||
field.get(targetInstance)
|
field.get(targetInstance)
|
||||||
}
|
}
|
||||||
if txItem != null
|
if txItem != null
|
||||||
} {
|
} {
|
||||||
if (txItem.isInstanceOf[TransactionalMap[_, _]]) maps ::= txItem.asInstanceOf[TransactionalMap[_, _]]
|
if (txItem.isInstanceOf[TransactionalMap[_, _]]) maps ::= txItem.asInstanceOf[TransactionalMap[_, _]]
|
||||||
else if (txItem.isInstanceOf[TransactionalRef[_]]) refs ::= txItem.asInstanceOf[TransactionalRef[_]]
|
else if (txItem.isInstanceOf[TransactionalRef[_]]) refs ::= txItem.asInstanceOf[TransactionalRef[_]]
|
||||||
else if (txItem.isInstanceOf[TransactionalVector[_]]) vectors ::= txItem.asInstanceOf[TransactionalVector[_]]
|
else if (txItem.isInstanceOf[TransactionalVector[_]]) vectors ::= txItem.asInstanceOf[TransactionalVector[_]]
|
||||||
}
|
}
|
||||||
(maps, vectors, refs)
|
(maps, vectors, refs)
|
||||||
|
|
@ -215,14 +224,11 @@ class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: I
|
||||||
private[kernel] class Dispatcher(val targetName: String) extends GenericServer {
|
private[kernel] class Dispatcher(val targetName: String) extends GenericServer {
|
||||||
override def body: PartialFunction[Any, Unit] = {
|
override def body: PartialFunction[Any, Unit] = {
|
||||||
|
|
||||||
case invocation: Invocation =>
|
case (tx: Option[Transaction], joinpoint: JoinPoint) =>
|
||||||
val tx = invocation.tx
|
|
||||||
ActiveObject.threadBoundTx.set(tx)
|
ActiveObject.threadBoundTx.set(tx)
|
||||||
try {
|
try {
|
||||||
reply(ErrRef(invocation.invoke, tx))
|
reply(ErrRef(joinpoint.proceed, tx))
|
||||||
} catch {
|
} catch {
|
||||||
case e: InvocationTargetException =>
|
|
||||||
val ref = ErrRef(tx); ref() = throw e.getTargetException; reply(ref)
|
|
||||||
case e =>
|
case e =>
|
||||||
val ref = ErrRef(tx); ref() = throw e; reply(ref)
|
val ref = ErrRef(tx); ref() = throw e; reply(ref)
|
||||||
}
|
}
|
||||||
|
|
@ -254,7 +260,10 @@ private[kernel] case class Invocation(val method: Method,
|
||||||
method.setAccessible(true)
|
method.setAccessible(true)
|
||||||
|
|
||||||
def invoke: AnyRef = synchronized {
|
def invoke: AnyRef = synchronized {
|
||||||
method.invoke(target, args:_*)
|
println("======== " + this.toString)
|
||||||
|
if (method.getDeclaringClass.isInterface) {
|
||||||
|
target.getClass.getDeclaredMethod(method.getName, method.getParameterTypes).invoke(target, args:_*)
|
||||||
|
} else method.invoke(target, args:_*)
|
||||||
}
|
}
|
||||||
|
|
||||||
override def toString: String = synchronized {
|
override def toString: String = synchronized {
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,7 @@ class GenericServerContainer(
|
||||||
|
|
||||||
private var server: GenericServer = _
|
private var server: GenericServer = _
|
||||||
private var currentConfig: Option[AnyRef] = None
|
private var currentConfig: Option[AnyRef] = None
|
||||||
private var timeout = 5000
|
private[kernel] var timeout = 5000
|
||||||
|
|
||||||
// TODO: see if we can parameterize class and add type safe getActor method
|
// TODO: see if we can parameterize class and add type safe getActor method
|
||||||
//class GenericServerContainer[T <: GenericServer](var factory: () => T) {
|
//class GenericServerContainer[T <: GenericServer](var factory: () => T) {
|
||||||
|
|
|
||||||
|
|
@ -31,8 +31,6 @@ trait ActiveObjectConfigurator {
|
||||||
*/
|
*/
|
||||||
def getActiveObject[T](clazz: Class[T]): T
|
def getActiveObject[T](clazz: Class[T]): T
|
||||||
|
|
||||||
def getActiveObjectProxy(clazz: Class[_]): ActiveObjectProxy
|
|
||||||
|
|
||||||
def getExternalDependency[T](clazz: Class[T]): T
|
def getExternalDependency[T](clazz: Class[T]): T
|
||||||
|
|
||||||
def getComponentInterfaces: List[Class[_]]
|
def getComponentInterfaces: List[Class[_]]
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,7 @@ import org.apache.camel.{CamelContext, Endpoint, Routes}
|
||||||
import scala.collection.mutable.HashMap
|
import scala.collection.mutable.HashMap
|
||||||
|
|
||||||
import kernel.camel.ActiveObjectComponent
|
import kernel.camel.ActiveObjectComponent
|
||||||
import kernel.ActiveObjectFactory
|
import kernel.{ActiveObjectFactory, Supervisor}
|
||||||
import kernel.ActiveObjectProxy
|
|
||||||
import kernel.Supervisor
|
|
||||||
import kernel.config.ScalaConfig._
|
import kernel.config.ScalaConfig._
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -33,7 +31,7 @@ class ActiveObjectGuiceConfigurator extends ActiveObjectConfigurator with CamelC
|
||||||
private var components: List[Component] = _
|
private var components: List[Component] = _
|
||||||
private var bindings: List[DependencyBinding] = Nil
|
private var bindings: List[DependencyBinding] = Nil
|
||||||
private var configRegistry = new HashMap[Class[_], Component] // TODO is configRegistry needed?
|
private var configRegistry = new HashMap[Class[_], Component] // TODO is configRegistry needed?
|
||||||
private var activeObjectRegistry = new HashMap[Class[_], Tuple3[Class[_], Class[_], ActiveObjectProxy]]
|
private var activeObjectRegistry = new HashMap[Class[_], Tuple2[Component, GenericServerContainer]]
|
||||||
private var activeObjectFactory = new ActiveObjectFactory
|
private var activeObjectFactory = new ActiveObjectFactory
|
||||||
private var camelContext = new DefaultCamelContext
|
private var camelContext = new DefaultCamelContext
|
||||||
private var modules = new java.util.ArrayList[Module]
|
private var modules = new java.util.ArrayList[Module]
|
||||||
|
|
@ -48,19 +46,22 @@ class ActiveObjectGuiceConfigurator extends ActiveObjectConfigurator with CamelC
|
||||||
override def getActiveObject[T](clazz: Class[T]): T = synchronized {
|
override def getActiveObject[T](clazz: Class[T]): T = synchronized {
|
||||||
log.debug("Creating new active object [%s]", clazz.getName)
|
log.debug("Creating new active object [%s]", clazz.getName)
|
||||||
if (injector == null) throw new IllegalStateException("inject() and/or supervise() must be called before invoking getActiveObject(clazz)")
|
if (injector == null) throw new IllegalStateException("inject() and/or supervise() must be called before invoking getActiveObject(clazz)")
|
||||||
val activeObjectOption: Option[Tuple3[Class[_], Class[_], ActiveObjectProxy]] = activeObjectRegistry.get(clazz)
|
val activeObjectOption: Option[Tuple2[Component, GenericServerContainer]] = activeObjectRegistry.get(clazz)
|
||||||
if (activeObjectOption.isDefined) {
|
if (activeObjectOption.isDefined) {
|
||||||
val classInfo = activeObjectOption.get
|
val (component, server) = activeObjectOption.get
|
||||||
val intfClass = classInfo._1
|
server.setTimeout(component.timeout)
|
||||||
val implClass = classInfo._2
|
val proxy = if (component.intf == null) { // subclassing proxy
|
||||||
val activeObjectProxy = classInfo._3
|
activeObjectFactory.newInstance(component.target, server).asInstanceOf[T]
|
||||||
val target = implClass.newInstance
|
} else { // delegating proxy
|
||||||
injector.injectMembers(target)
|
component.target.getConstructor(Array[Class[_]]()).setAccessible(true)
|
||||||
activeObjectProxy.setTargetInstance(target.asInstanceOf[AnyRef])
|
val targetInstance = component.target.newInstance.asInstanceOf[AnyRef] // TODO: perhaps need to put in registry
|
||||||
activeObjectFactory.newInstance(intfClass, activeObjectProxy).asInstanceOf[T]
|
activeObjectFactory.newInstance(component.intf, targetInstance, server).asInstanceOf[T]
|
||||||
|
}
|
||||||
|
injector.injectMembers(proxy)
|
||||||
|
proxy
|
||||||
} else throw new IllegalStateException("Class [" + clazz.getName + "] has not been put under supervision (by passing in the config to the 'supervise') method")
|
} else throw new IllegalStateException("Class [" + clazz.getName + "] has not been put under supervision (by passing in the config to the 'supervise') method")
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
override def getActiveObjectProxy(clazz: Class[_]): ActiveObjectProxy = synchronized {
|
override def getActiveObjectProxy(clazz: Class[_]): ActiveObjectProxy = synchronized {
|
||||||
log.debug("Looking up active object proxy [%s]", clazz.getName)
|
log.debug("Looking up active object proxy [%s]", clazz.getName)
|
||||||
if (injector == null) throw new IllegalStateException("inject() and/or supervise() must be called before invoking getActiveObjectProxy(clazz)")
|
if (injector == null) throw new IllegalStateException("inject() and/or supervise() must be called before invoking getActiveObjectProxy(clazz)")
|
||||||
|
|
@ -68,7 +69,7 @@ class ActiveObjectGuiceConfigurator extends ActiveObjectConfigurator with CamelC
|
||||||
if (activeObjectOption.isDefined) activeObjectOption.get._3
|
if (activeObjectOption.isDefined) activeObjectOption.get._3
|
||||||
else throw new IllegalStateException("Class [" + clazz.getName + "] has not been put under supervision (by passing in the config to the 'supervise') method")
|
else throw new IllegalStateException("Class [" + clazz.getName + "] has not been put under supervision (by passing in the config to the 'supervise') method")
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
override def getExternalDependency[T](clazz: Class[T]): T = synchronized {
|
override def getExternalDependency[T](clazz: Class[T]): T = synchronized {
|
||||||
injector.getInstance(clazz).asInstanceOf[T]
|
injector.getInstance(clazz).asInstanceOf[T]
|
||||||
}
|
}
|
||||||
|
|
@ -108,19 +109,18 @@ class ActiveObjectGuiceConfigurator extends ActiveObjectConfigurator with CamelC
|
||||||
if (injector == null) inject
|
if (injector == null) inject
|
||||||
var workers = new java.util.ArrayList[Worker]
|
var workers = new java.util.ArrayList[Worker]
|
||||||
for (component <- components) {
|
for (component <- components) {
|
||||||
val activeObjectProxy = new ActiveObjectProxy(component.intf, component.target, component.timeout)
|
val target = if (component.intf != null) component.intf // TODO: use Option
|
||||||
workers.add(Worker(activeObjectProxy.server, component.lifeCycle))
|
else component.target
|
||||||
activeObjectRegistry.put(component.intf, (component.intf, component.target, activeObjectProxy))
|
val server = new GenericServerContainer(target.getName, () => new Dispatcher(component.target.getName))
|
||||||
camelContext.getRegistry.asInstanceOf[JndiRegistry].bind(component.name, activeObjectProxy)
|
activeObjectRegistry.put(target, (component, server))
|
||||||
for (method <- component.intf.getDeclaredMethods.toList) {
|
workers.add(Worker(server, component.lifeCycle))
|
||||||
registerMethodForUri(method, component.name)
|
//camelContext.getRegistry.asInstanceOf[JndiRegistry].bind(component.name, activeObjectProxy)
|
||||||
}
|
for (method <- component.intf.getDeclaredMethods.toList) registerMethodForUri(method, component.name)
|
||||||
log.debug("Registering active object in Camel context under the name [%s]", component.target.getName)
|
log.debug("Registering active object in Camel context under the name [%s]", component.target.getName)
|
||||||
}
|
}
|
||||||
supervisor = activeObjectFactory.supervise(restartStrategy, workers)
|
supervisor = activeObjectFactory.supervise(restartStrategy, workers)
|
||||||
camelContext.addComponent(AKKA_CAMEL_ROUTING_SCHEME, new ActiveObjectComponent(this))
|
//camelContext.addComponent(AKKA_CAMEL_ROUTING_SCHEME, new ActiveObjectComponent(this))
|
||||||
camelContext.start
|
//camelContext.start
|
||||||
|
|
||||||
ActiveObjectConfigurator.registerConfigurator(this)
|
ActiveObjectConfigurator.registerConfigurator(this)
|
||||||
this
|
this
|
||||||
}
|
}
|
||||||
|
|
@ -154,7 +154,7 @@ class ActiveObjectGuiceConfigurator extends ActiveObjectConfigurator with CamelC
|
||||||
def reset = synchronized {
|
def reset = synchronized {
|
||||||
modules = new java.util.ArrayList[Module]
|
modules = new java.util.ArrayList[Module]
|
||||||
configRegistry = new HashMap[Class[_], Component]
|
configRegistry = new HashMap[Class[_], Component]
|
||||||
activeObjectRegistry = new HashMap[Class[_], Tuple3[Class[_], Class[_], ActiveObjectProxy]]
|
activeObjectRegistry = new HashMap[Class[_], Tuple2[Component, GenericServerContainer]]
|
||||||
methodToUriRegistry = new HashMap[Method, String]
|
methodToUriRegistry = new HashMap[Method, String]
|
||||||
injector = null
|
injector = null
|
||||||
restartStrategy = null
|
restartStrategy = null
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
package se.scalablesolutions.akka.kernel.config
|
package se.scalablesolutions.akka.kernel.config
|
||||||
|
|
||||||
import akka.kernel.config.JavaConfig._
|
import akka.kernel.config.JavaConfig._
|
||||||
import akka.kernel.{Supervisor, ActiveObjectProxy, ActiveObjectFactory}
|
import akka.kernel.{Supervisor, ActiveObjectFactory}
|
||||||
|
|
||||||
import com.google.inject._
|
import com.google.inject._
|
||||||
import com.google.inject.jsr250.ResourceProviderFactory
|
import com.google.inject.jsr250.ResourceProviderFactory
|
||||||
|
|
|
||||||
|
|
@ -88,8 +88,8 @@ object JavaConfig {
|
||||||
@BeanProperty val timeout: Int) extends Server {
|
@BeanProperty val timeout: Int) extends Server {
|
||||||
def transform = se.scalablesolutions.akka.kernel.config.ScalaConfig.Component(
|
def transform = se.scalablesolutions.akka.kernel.config.ScalaConfig.Component(
|
||||||
name, intf, target, lifeCycle.transform, timeout)
|
name, intf, target, lifeCycle.transform, timeout)
|
||||||
def newWorker(proxy: ActiveObjectProxy) =
|
def newWorker(server: GenericServerContainer) =
|
||||||
se.scalablesolutions.akka.kernel.config.ScalaConfig.Worker(proxy.server, lifeCycle.transform)
|
se.scalablesolutions.akka.kernel.config.ScalaConfig.Worker(server, lifeCycle.transform)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -4,21 +4,15 @@
|
||||||
|
|
||||||
package se.scalablesolutions.akka.kernel.jersey
|
package se.scalablesolutions.akka.kernel.jersey
|
||||||
|
|
||||||
import com.sun.jersey.core.spi.component.ioc.{IoCManagedComponentProvider, IoCFullyManagedComponentProvider, IoCInstantiatedComponentProvider, IoCComponentProvider}
|
import com.sun.jersey.core.spi.component.ioc.IoCFullyManagedComponentProvider
|
||||||
|
|
||||||
import kernel.Logging
|
import kernel.Logging
|
||||||
import config.ActiveObjectConfigurator
|
import config.ActiveObjectConfigurator
|
||||||
|
|
||||||
import com.sun.jersey.core.spi.component.ComponentProvider
|
|
||||||
|
|
||||||
import java.lang.reflect.{Constructor, InvocationTargetException}
|
import java.lang.reflect.{Constructor, InvocationTargetException}
|
||||||
|
|
||||||
class ActiveObjectComponentProvider(val clazz: Class[_], val configurator: ActiveObjectConfigurator)
|
class ActiveObjectComponentProvider(val clazz: Class[_], val configurator: ActiveObjectConfigurator)
|
||||||
extends IoCManagedComponentProvider with Logging {
|
extends IoCFullyManagedComponentProvider with Logging {
|
||||||
|
|
||||||
override def getInstance: AnyRef =
|
override def getInstance: AnyRef = configurator.getActiveObject(clazz).asInstanceOf[AnyRef]
|
||||||
configurator.getActiveObject(clazz).asInstanceOf[AnyRef]
|
|
||||||
|
|
||||||
override def getInjectableInstance(obj: AnyRef): AnyRef = {
|
|
||||||
obj.asInstanceOf[ActiveObjectProxy].targetInstance
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue