fixed merging
This commit is contained in:
commit
d4eb763cd4
44 changed files with 2059 additions and 263 deletions
26
akka.iml
26
akka.iml
|
|
@ -1,26 +1,14 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<module relativePaths="true" type="JAVA_MODULE" version="4">
|
<module relativePaths="true" MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
<component name="FacetManager">
|
<component name="NewModuleRootManager" inherit-compiler-output="false">
|
||||||
<facet type="Scala" name="Scala">
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
<configuration />
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
</facet>
|
|
||||||
</component>
|
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
||||||
<exclude-output />
|
<exclude-output />
|
||||||
<content url="file://$MODULE_DIR$" />
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||||
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="module" module-name="api-java" />
|
|
||||||
<orderEntry type="module" module-name="util-java" />
|
|
||||||
<orderEntry type="module-library">
|
|
||||||
<library>
|
|
||||||
<CLASSES>
|
|
||||||
<root url="file://$MODULE_DIR$/../../../bin/scala-2.7.3.final" />
|
|
||||||
</CLASSES>
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES />
|
|
||||||
</library>
|
|
||||||
</orderEntry>
|
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
|
|
|
||||||
577
akka.ipr
577
akka.ipr
|
|
@ -140,7 +140,6 @@
|
||||||
<option name="MAXIMUM_HEAP_SIZE" value="128" />
|
<option name="MAXIMUM_HEAP_SIZE" value="128" />
|
||||||
</component>
|
</component>
|
||||||
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false">
|
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false">
|
||||||
<file url="file://$PROJECT_DIR$/api-java/src/main/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfigurator.java" charset="UTF-8" />
|
|
||||||
<file url="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java" charset="windows-1252" />
|
<file url="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java" charset="windows-1252" />
|
||||||
<file url="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java" charset="windows-1252" />
|
<file url="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java" charset="windows-1252" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Kernel.scala" charset="UTF-8" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Kernel.scala" charset="UTF-8" />
|
||||||
|
|
@ -155,18 +154,44 @@
|
||||||
<files>
|
<files>
|
||||||
<file url="file://$PROJECT_DIR$/db/src/main/scala/Db.scala" />
|
<file url="file://$PROJECT_DIR$/db/src/main/scala/Db.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/db/src/test/scala/DbReplicationSpecs.scala" />
|
<file url="file://$PROJECT_DIR$/db/src/test/scala/DbReplicationSpecs.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/supervisor/sample.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_ActiveObject.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/supervisor/src/main/scala/GenericServer.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_ActiveObjectGuiceConfigurator.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/supervisor/src/main/scala/Helpers.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_AkkaComponentProvider.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/supervisor/src/main/scala/Supervisor.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_Boot.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/supervisor/test-code/test/scala/GenericServerContainerSuite.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_CassandraNode.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/supervisor/test-code/test/scala/GenericServerSuite.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_Configuration.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/supervisor/test-code/test/scala/Messages.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_DataFlowVariable.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/supervisor/test-code/test/scala/SupervisorStateSuite.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_ErrRef.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/supervisor/test-code/test/scala/SupervisorSuite.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_GenericServer.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_HashCode.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_Helpers.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_Kernel.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_Logging.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_Serializer.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_State.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_Supervisor.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_Transaction.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_camel_$_ActiveObjectComponent.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_camel_$_ActiveObjectConsumer.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_camel_$_ActiveObjectEndpoint.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_camel_$_ActiveObjectProducer.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_collection_$_HashTrie.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_main_$_scala_$_collection_$_Vector.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_test_$_scala_$_AllSuite.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_test_$_scala_$_CamelSpec.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_test_$_scala_$_GenericServerContainerSuite.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_test_$_scala_$_GenericServerSpec.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_test_$_scala_$_Messages.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_test_$_scala_$_SupervisorSpec.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/.manager/_$_Users_$_jboner_$_src_$_scala_$_akka_$_kernel_$_src_$_test_$_scala_$_SupervisorStateSpec.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/camel/ActiveObjectComponent.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/camel/ActiveObjectConsumer.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/camel/ActiveObjectEndpoint.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/camel/ActiveObjectProducer.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/test/scala/CamelSpec.scala" />
|
||||||
</files>
|
</files>
|
||||||
</module>
|
</module>
|
||||||
<module name="kernel">
|
<module name="akka-kernel">
|
||||||
<files>
|
<files>
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/AkkaComponentProvider.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/AkkaComponentProvider.scala" />
|
||||||
|
|
@ -180,14 +205,23 @@
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Helpers.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Helpers.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Kernel.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Kernel.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Logging.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Logging.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/NetCat.scala" />
|
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Serializer.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Serializer.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/State.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/State.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Supervisor.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Supervisor.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/Transaction.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/camel/ActiveObjectComponent.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/camel/ActiveObjectConsumer.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/camel/ActiveObjectEndpoint.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/camel/ActiveObjectProducer.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/camel/MessageDriven.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/camel/SupervisorAwareCamelContext.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/collection/HashTrie.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/collection/HashTrie.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/collection/Vector.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/collection/Vector.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfiguratorForJava.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/main/scala/config/Config.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/test/scala/AllSuite.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/test/scala/AllSuite.scala" />
|
||||||
|
<file url="file://$PROJECT_DIR$/kernel/src/test/scala/CamelSpec.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/test/scala/GenericServerContainerSuite.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/test/scala/GenericServerContainerSuite.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/test/scala/GenericServerSpec.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/test/scala/GenericServerSpec.scala" />
|
||||||
<file url="file://$PROJECT_DIR$/kernel/src/test/scala/Messages.scala" />
|
<file url="file://$PROJECT_DIR$/kernel/src/test/scala/Messages.scala" />
|
||||||
|
|
@ -216,7 +250,7 @@
|
||||||
<option name="DEBUGGING_INFO" value="true" />
|
<option name="DEBUGGING_INFO" value="true" />
|
||||||
<option name="GENERATE_NO_WARNINGS" value="false" />
|
<option name="GENERATE_NO_WARNINGS" value="false" />
|
||||||
<option name="DEPRECATION" value="true" />
|
<option name="DEPRECATION" value="true" />
|
||||||
<option name="ADDITIONAL_OPTIONS_STRING" value="" />
|
<option name="ADDITIONAL_OPTIONS_STRING" value="-target 1.5" />
|
||||||
<option name="MAXIMUM_HEAP_SIZE" value="128" />
|
<option name="MAXIMUM_HEAP_SIZE" value="128" />
|
||||||
</component>
|
</component>
|
||||||
<component name="JavadocGenerationManager">
|
<component name="JavadocGenerationManager">
|
||||||
|
|
@ -244,6 +278,13 @@
|
||||||
<option name="IS_EMACS_ERRORS_MODE" value="true" />
|
<option name="IS_EMACS_ERRORS_MODE" value="true" />
|
||||||
<option name="ADDITIONAL_OPTIONS_STRING" value="" />
|
<option name="ADDITIONAL_OPTIONS_STRING" value="" />
|
||||||
</component>
|
</component>
|
||||||
|
<component name="MavenProjectsManager">
|
||||||
|
<option name="originalFiles">
|
||||||
|
<list>
|
||||||
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
|
</list>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
<component name="Palette2">
|
<component name="Palette2">
|
||||||
<group name="Swing">
|
<group name="Swing">
|
||||||
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
|
||||||
|
|
@ -375,9 +416,9 @@
|
||||||
<component name="ProjectModuleManager">
|
<component name="ProjectModuleManager">
|
||||||
<modules>
|
<modules>
|
||||||
<module fileurl="file://$PROJECT_DIR$/akka.iml" filepath="$PROJECT_DIR$/akka.iml" />
|
<module fileurl="file://$PROJECT_DIR$/akka.iml" filepath="$PROJECT_DIR$/akka.iml" />
|
||||||
<module fileurl="file://$PROJECT_DIR$/api-java/api-java.iml" filepath="$PROJECT_DIR$/api-java/api-java.iml" />
|
<module fileurl="file://$PROJECT_DIR$/api-java/akka-api-java.iml" filepath="$PROJECT_DIR$/api-java/akka-api-java.iml" />
|
||||||
<module fileurl="file://$PROJECT_DIR$/core/core.iml" filepath="$PROJECT_DIR$/core/core.iml" />
|
<module fileurl="file://$PROJECT_DIR$/kernel/akka-kernel.iml" filepath="$PROJECT_DIR$/kernel/akka-kernel.iml" />
|
||||||
<module fileurl="file://$PROJECT_DIR$/util-java/util-java.iml" filepath="$PROJECT_DIR$/util-java/util-java.iml" />
|
<module fileurl="file://$PROJECT_DIR$/util-java/akka-util-java.iml" filepath="$PROJECT_DIR$/util-java/akka-util-java.iml" />
|
||||||
</modules>
|
</modules>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK">
|
||||||
|
|
@ -405,6 +446,510 @@
|
||||||
<mapping directory="" vcs="Git" />
|
<mapping directory="" vcs="Git" />
|
||||||
</component>
|
</component>
|
||||||
<component name="WebServicesPlugin" addRequiredLibraries="true" />
|
<component name="WebServicesPlugin" addRequiredLibraries="true" />
|
||||||
|
<component name="libraryTable">
|
||||||
|
<library name="Maven: org.scala-lang:scala-library:2.7.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/scala-lang/scala-library/2.7.3/scala-library-2.7.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: net.lag:configgy:1.2">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/net/lag/configgy/1.2/configgy-1.2.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/net/lag/configgy/1.2/configgy-1.2-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/net/lag/configgy/1.2/configgy-1.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.guiceyfruit:guice-core:2.0-SNAPSHOT">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/guiceyfruit/guice-core/2.0-SNAPSHOT/guice-core-2.0-SNAPSHOT.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/guiceyfruit/guice-core/2.0-SNAPSHOT/guice-core-2.0-SNAPSHOT-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/guiceyfruit/guice-core/2.0-SNAPSHOT/guice-core-2.0-SNAPSHOT-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.google.code.google-collections:google-collect:snapshot-20080530">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/google/code/google-collections/google-collect/snapshot-20080530/google-collect-snapshot-20080530-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: cglib:cglib:2.2">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib/2.2/cglib-2.2.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib/2.2/cglib-2.2-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/cglib/cglib/2.2/cglib-2.2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: asm:asm:3.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.1/asm-3.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.1/asm-3.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/asm/asm/3.1/asm-3.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: aopalliance:aopalliance:1.0">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/aopalliance/aopalliance/1.0/aopalliance-1.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/aopalliance/aopalliance/1.0/aopalliance-1.0-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/aopalliance/aopalliance/1.0/aopalliance-1.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.guiceyfruit:guice-jsr250:2.0-SNAPSHOT">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/guiceyfruit/guice-jsr250/2.0-SNAPSHOT/guice-jsr250-2.0-SNAPSHOT.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/guiceyfruit/guice-jsr250/2.0-SNAPSHOT/guice-jsr250-2.0-SNAPSHOT-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/guiceyfruit/guice-jsr250/2.0-SNAPSHOT/guice-jsr250-2.0-SNAPSHOT-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: javax.annotation:jsr250-api:1.0">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/annotation/jsr250-api/1.0/jsr250-api-1.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/annotation/jsr250-api/1.0/jsr250-api-1.0-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/annotation/jsr250-api/1.0/jsr250-api-1.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.grizzly:grizzly-servlet-webserver:1.8.6.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-servlet-webserver/1.8.6.3/grizzly-servlet-webserver-1.8.6.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-servlet-webserver/1.8.6.3/grizzly-servlet-webserver-1.8.6.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-servlet-webserver/1.8.6.3/grizzly-servlet-webserver-1.8.6.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.grizzly:grizzly-http:1.8.6.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-http/1.8.6.3/grizzly-http-1.8.6.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-http/1.8.6.3/grizzly-http-1.8.6.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-http/1.8.6.3/grizzly-http-1.8.6.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.grizzly:grizzly-framework:1.8.6.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-framework/1.8.6.3/grizzly-framework-1.8.6.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-framework/1.8.6.3/grizzly-framework-1.8.6.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-framework/1.8.6.3/grizzly-framework-1.8.6.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.grizzly:grizzly-http-utils:1.8.6.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-http-utils/1.8.6.3/grizzly-http-utils-1.8.6.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-http-utils/1.8.6.3/grizzly-http-utils-1.8.6.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-http-utils/1.8.6.3/grizzly-http-utils-1.8.6.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.grizzly:grizzly-rcm:1.8.6.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-rcm/1.8.6.3/grizzly-rcm-1.8.6.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-rcm/1.8.6.3/grizzly-rcm-1.8.6.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-rcm/1.8.6.3/grizzly-rcm-1.8.6.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.grizzly:grizzly-portunif:1.8.6.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-portunif/1.8.6.3/grizzly-portunif-1.8.6.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-portunif/1.8.6.3/grizzly-portunif-1.8.6.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-portunif/1.8.6.3/grizzly-portunif-1.8.6.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.grizzly:grizzly-http-servlet:1.8.6.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-http-servlet/1.8.6.3/grizzly-http-servlet-1.8.6.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-http-servlet/1.8.6.3/grizzly-http-servlet-1.8.6.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/grizzly/grizzly-http-servlet/1.8.6.3/grizzly-http-servlet-1.8.6.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: javax.servlet:servlet-api:2.5">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/servlet-api/2.5/servlet-api-2.5-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/servlet/servlet-api/2.5/servlet-api-2.5-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.jersey:jersey-server:1.0.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.1/jersey-server-1.0.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.1/jersey-server-1.0.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-server/1.0.1/jersey-server-1.0.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.jersey:jersey-core:1.0.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-core/1.0.1/jersey-core-1.0.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-core/1.0.1/jersey-core-1.0.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-core/1.0.1/jersey-core-1.0.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: javax.ws.rs:jsr311-api:1.0">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/ws/rs/jsr311-api/1.0/jsr311-api-1.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/ws/rs/jsr311-api/1.0/jsr311-api-1.0-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/ws/rs/jsr311-api/1.0/jsr311-api-1.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.jersey:jersey-json:1.0.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-json/1.0.1/jersey-json-1.0.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-json/1.0.1/jersey-json-1.0.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-json/1.0.1/jersey-json-1.0.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.codehaus.jettison:jettison:1.0.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jettison/jettison/1.0.1/jettison-1.0.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jettison/jettison/1.0.1/jettison-1.0.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/jettison/jettison/1.0.1/jettison-1.0.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: stax:stax-api:1.0.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/stax/stax-api/1.0.1/stax-api-1.0.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/stax/stax-api/1.0.1/stax-api-1.0.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/stax/stax-api/1.0.1/stax-api-1.0.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.xml.bind:jaxb-impl:2.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/xml/bind/jaxb-impl/2.1/jaxb-impl-2.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/xml/bind/jaxb-impl/2.1/jaxb-impl-2.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/xml/bind/jaxb-impl/2.1/jaxb-impl-2.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: javax.xml.bind:jaxb-api:2.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/bind/jaxb-api/2.1/jaxb-api-2.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: javax.xml.stream:stax-api:1.0-2">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: javax.activation:activation:1.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/activation/activation/1.1/activation-1.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/activation/activation/1.1/activation-1.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/javax/activation/activation/1.1/activation-1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.sun.jersey:jersey-atom:1.0.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-atom/1.0.1/jersey-atom-1.0.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-atom/1.0.1/jersey-atom-1.0.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/sun/jersey/jersey-atom/1.0.1/jersey-atom-1.0.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: rome:rome:0.9">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/rome/rome/0.9/rome-0.9.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/rome/rome/0.9/rome-0.9-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/rome/rome/0.9/rome-0.9-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: jdom:jdom:1.0">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/jdom/jdom/1.0/jdom-1.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/jdom/jdom/1.0/jdom-1.0-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/jdom/jdom/1.0/jdom-1.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.jboss.netty:netty:3.1.0.BETA2">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/netty/netty/3.1.0.BETA2/netty-3.1.0.BETA2.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/netty/netty/3.1.0.BETA2/netty-3.1.0.BETA2-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jboss/netty/netty/3.1.0.BETA2/netty-3.1.0.BETA2-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.apache.cassandra:cassandra:0.3.0-dev">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/apache/cassandra/cassandra/0.3.0-dev/cassandra-0.3.0-dev.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/apache/cassandra/cassandra/0.3.0-dev/cassandra-0.3.0-dev-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/apache/cassandra/cassandra/0.3.0-dev/cassandra-0.3.0-dev-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.facebook:thrift:1.0">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/facebook/thrift/1.0/thrift-1.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/facebook/thrift/1.0/thrift-1.0-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/facebook/thrift/1.0/thrift-1.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.facebook:fb303:1.0">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/facebook/fb303/1.0/fb303-1.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/facebook/fb303/1.0/fb303-1.0-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/facebook/fb303/1.0/fb303-1.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.apache.camel:camel-core:2.0-SNAPSHOT">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/apache/camel/camel-core/2.0-SNAPSHOT/camel-core-2.0-SNAPSHOT.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
<library name="Maven: commons-logging:commons-logging-api:1.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging-api/1.1/commons-logging-api-1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.assembla.scala.mina:mina-core:2.0.0-M2-SNAPSHOT">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/assembla/scala/mina/mina-core/2.0.0-M2-SNAPSHOT/mina-core-2.0.0-M2-SNAPSHOT.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/assembla/scala/mina/mina-core/2.0.0-M2-SNAPSHOT/mina-core-2.0.0-M2-SNAPSHOT-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/assembla/scala/mina/mina-core/2.0.0-M2-SNAPSHOT/mina-core-2.0.0-M2-SNAPSHOT-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.slf4j:slf4j-api:1.4.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.4.3/slf4j-api-1.4.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.4.3/slf4j-api-1.4.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-api/1.4.3/slf4j-api-1.4.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: com.assembla.scala.mina:mina-integration-scala:2.0.0-M2-SNAPSHOT">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/assembla/scala/mina/mina-integration-scala/2.0.0-M2-SNAPSHOT/mina-integration-scala-2.0.0-M2-SNAPSHOT.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/assembla/scala/mina/mina-integration-scala/2.0.0-M2-SNAPSHOT/mina-integration-scala-2.0.0-M2-SNAPSHOT-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/com/assembla/scala/mina/mina-integration-scala/2.0.0-M2-SNAPSHOT/mina-integration-scala-2.0.0-M2-SNAPSHOT-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.slf4j:slf4j-log4j12:1.4.3">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.4.3/slf4j-log4j12-1.4.3.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.4.3/slf4j-log4j12-1.4.3-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/slf4j/slf4j-log4j12/1.4.3/slf4j-log4j12-1.4.3-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: log4j:log4j:1.2.13">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.13/log4j-1.2.13.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.13/log4j-1.2.13-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/log4j/log4j/1.2.13/log4j-1.2.13-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.scala-tools.testing:scalatest:0.9.5">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/scala-tools/testing/scalatest/0.9.5/scalatest-0.9.5.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/scala-tools/testing/scalatest/0.9.5/scalatest-0.9.5-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/scala-tools/testing/scalatest/0.9.5/scalatest-0.9.5-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: junit:junit:4.5">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.5/junit-4.5.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.5/junit-4.5-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.5/junit-4.5-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.jmock:jmock:2.4.0">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jmock/jmock/2.4.0/jmock-2.4.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jmock/jmock/2.4.0/jmock-2.4.0-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/jmock/jmock/2.4.0/jmock-2.4.0-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.hamcrest:hamcrest-core:1.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
<library name="Maven: org.hamcrest:hamcrest-library:1.1">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1-javadoc.jar!/" />
|
||||||
|
</JAVADOC>
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$MAVEN_REPOSITORY$/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1-sources.jar!/" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
<UsedPathMacros>
|
<UsedPathMacros>
|
||||||
<macro name="MAVEN_REPOSITORY" description="Maven Local Repostiry" />
|
<macro name="MAVEN_REPOSITORY" description="Maven Local Repostiry" />
|
||||||
</UsedPathMacros>
|
</UsedPathMacros>
|
||||||
|
|
|
||||||
435
akka.iws
435
akka.iws
|
|
@ -2,8 +2,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="" />
|
||||||
<ignored path=".idea/workspace.xml" />
|
|
||||||
<ignored path="akka.iws" />
|
<ignored path="akka.iws" />
|
||||||
|
<ignored path=".idea/workspace.xml" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
||||||
<component name="Commander">
|
<component name="Commander">
|
||||||
|
|
@ -76,10 +76,82 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="FileEditorManager">
|
<component name="FileEditorManager">
|
||||||
<leaf>
|
<leaf>
|
||||||
<file leaf-file-name="GenericServer.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">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="35" column="6" selection-start="1232" selection-end="1232" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="GenericServer.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/GenericServer.scala">
|
<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="15" column="22" selection-start="449" selection-end="449" vertical-scroll-proportion="0.18025751">
|
<state line="14" column="11" selection-start="371" selection-end="371" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="ActiveObjectGuiceConfiguratorForJava.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfiguratorForJava.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="95" column="1" selection-start="4052" selection-end="4052" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<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">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="118" column="40" selection-start="5650" selection-end="5650" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="SupervisorSpec.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/SupervisorSpec.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="18" column="29" selection-start="528" selection-end="528" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="CamelSpec.scala" pinned="false" current="true" current-in-tab="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/CamelSpec.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="92" column="0" selection-start="2771" selection-end="2771" vertical-scroll-proportion="0.3184584">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="GenericServerContainerSuite.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/GenericServerContainerSuite.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="17" column="6" selection-start="352" selection-end="352" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="SupervisorAwareCamelContext.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/camel/SupervisorAwareCamelContext.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="9" column="0" selection-start="248" selection-end="248" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file leaf-file-name="Vector.scala" pinned="false" current="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/collection/Vector.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="298" column="1" selection-start="8660" selection-end="8660" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
@ -95,6 +167,7 @@
|
||||||
<component name="MavenImportPreferences">
|
<component name="MavenImportPreferences">
|
||||||
<option name="generalSettings">
|
<option name="generalSettings">
|
||||||
<MavenGeneralSettings>
|
<MavenGeneralSettings>
|
||||||
|
<option name="printErrorStackTraces" value="true" />
|
||||||
<option name="workOffline" value="true" />
|
<option name="workOffline" value="true" />
|
||||||
</MavenGeneralSettings>
|
</MavenGeneralSettings>
|
||||||
</option>
|
</option>
|
||||||
|
|
@ -133,10 +206,158 @@
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
<PATH_ELEMENT>
|
<PATH_ELEMENT>
|
||||||
<option name="myItemId" value="akka" />
|
<option name="myItemId" value="akka-kernel" />
|
||||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
</PATH_ELEMENT>
|
</PATH_ELEMENT>
|
||||||
</PATH>
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="src" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_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="scala" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="src" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="main" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="scala" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="src" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="main" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="scala" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="config" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="src" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="main" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="scala" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="camel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
|
<PATH>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="akka-kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewModuleNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="kernel" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="src" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
<PATH_ELEMENT>
|
||||||
|
<option name="myItemId" value="main" />
|
||||||
|
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||||
|
</PATH_ELEMENT>
|
||||||
|
</PATH>
|
||||||
</subPane>
|
</subPane>
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectReloadState">
|
<component name="ProjectReloadState">
|
||||||
|
|
@ -157,19 +378,19 @@
|
||||||
</navigator>
|
</navigator>
|
||||||
</component>
|
</component>
|
||||||
<component name="PropertiesComponent">
|
<component name="PropertiesComponent">
|
||||||
<property name="project.structure.proportion" value="0.15" />
|
|
||||||
<property name="GoToClass.includeJavaFiles" value="false" />
|
<property name="GoToClass.includeJavaFiles" value="false" />
|
||||||
|
<property name="project.structure.proportion" value="0.15" />
|
||||||
<property name="MemberChooser.copyJavadoc" value="false" />
|
<property name="MemberChooser.copyJavadoc" value="false" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder2" value="2" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder2" value="2" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder2" value="2" />
|
|
||||||
<property name="options.splitter.main.proportions" value="0.3" />
|
<property name="options.splitter.main.proportions" value="0.3" />
|
||||||
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder2" value="2" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="965" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth3" value="965" />
|
||||||
<property name="GoToFile.includeJavaFiles" value="false" />
|
<property name="GoToFile.includeJavaFiles" value="false" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="269" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth0" value="269" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="286" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth2" value="286" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="293" />
|
|
||||||
<property name="GoToClass.includeLibraries" value="false" />
|
|
||||||
<property name="options.splitter.details.proportions" value="0.2" />
|
<property name="options.splitter.details.proportions" value="0.2" />
|
||||||
|
<property name="GoToClass.includeLibraries" value="false" />
|
||||||
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth2" value="293" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder0" value="0" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder3" value="3" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder3" value="3" />
|
||||||
<property name="MemberChooser.showClasses" value="true" />
|
<property name="MemberChooser.showClasses" value="true" />
|
||||||
|
|
@ -181,12 +402,12 @@
|
||||||
<property name="RunManagerConfig.showSettingsBeforeRunnig" value="false" />
|
<property name="RunManagerConfig.showSettingsBeforeRunnig" value="false" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder0" value="0" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder0" value="0" />
|
||||||
<property name="project.structure.last.edited" value="Modules" />
|
<property name="project.structure.last.edited" value="Modules" />
|
||||||
<property name="options.searchVisible" value="true" />
|
|
||||||
<property name="MemberChooser.sorted" value="false" />
|
<property name="MemberChooser.sorted" value="false" />
|
||||||
|
<property name="options.searchVisible" value="true" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder1" value="1" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeOrder1" value="1" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="301" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_treeWidth1" value="301" />
|
||||||
<property name="dynamic.classpath" value="false" />
|
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="972" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth3" value="972" />
|
||||||
|
<property name="dynamic.classpath" value="false" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="308" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatWidth1" value="308" />
|
||||||
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" />
|
<property name="FileHistory.git4idea.history.GitHistoryProvider_flatOrder1" value="1" />
|
||||||
</component>
|
</component>
|
||||||
|
|
@ -195,7 +416,7 @@
|
||||||
<recent name="se.scalablesolutions.akka.api" />
|
<recent name="se.scalablesolutions.akka.api" />
|
||||||
</key>
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunManager" selected="Scala Console.Scala Console">
|
<component name="RunManager" selected="JUnit.CamelSpec">
|
||||||
<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="" />
|
||||||
|
|
@ -298,7 +519,7 @@
|
||||||
<option name="ENABLE_SWING_INSPECTOR" value="false" />
|
<option name="ENABLE_SWING_INSPECTOR" value="false" />
|
||||||
<option name="ENV_VARIABLES" />
|
<option name="ENV_VARIABLES" />
|
||||||
<option name="PASS_PARENT_ENVS" value="true" />
|
<option name="PASS_PARENT_ENVS" value="true" />
|
||||||
<module name="api-java" />
|
<module name="" />
|
||||||
<envs />
|
<envs />
|
||||||
<RunnerSettings RunnerId="Run" />
|
<RunnerSettings RunnerId="Run" />
|
||||||
<ConfigurationWrapper RunnerId="Run" />
|
<ConfigurationWrapper RunnerId="Run" />
|
||||||
|
|
@ -306,9 +527,34 @@
|
||||||
<option name="Make" value="true" />
|
<option name="Make" value="true" />
|
||||||
</method>
|
</method>
|
||||||
</configuration>
|
</configuration>
|
||||||
<list size="2">
|
<configuration default="false" name="CamelSpec" type="JUnit" factoryName="JUnit" enabled="false" merge="false" sample_coverage="true" runner="emma">
|
||||||
|
<module name="akka-kernel" />
|
||||||
|
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||||
|
<option name="ALTERNATIVE_JRE_PATH" value="" />
|
||||||
|
<option name="PACKAGE_NAME" value="" />
|
||||||
|
<option name="MAIN_CLASS_NAME" value="se.scalablesolutions.akka.kernel.CamelSpec" />
|
||||||
|
<option name="METHOD_NAME" value="" />
|
||||||
|
<option name="TEST_OBJECT" value="class" />
|
||||||
|
<option name="VM_PARAMETERS" value="" />
|
||||||
|
<option name="PARAMETERS" value="" />
|
||||||
|
<option name="WORKING_DIRECTORY" value="file://$PROJECT_DIR$" />
|
||||||
|
<option name="ENV_VARIABLES" />
|
||||||
|
<option name="PASS_PARENT_ENVS" value="true" />
|
||||||
|
<option name="ADDITIONAL_CLASS_PATH" />
|
||||||
|
<option name="TEST_SEARCH_SCOPE">
|
||||||
|
<value defaultName="moduleWithDependencies" />
|
||||||
|
</option>
|
||||||
|
<envs />
|
||||||
|
<RunnerSettings RunnerId="Run" />
|
||||||
|
<ConfigurationWrapper RunnerId="Run" />
|
||||||
|
<method>
|
||||||
|
<option name="Make" value="true" />
|
||||||
|
</method>
|
||||||
|
</configuration>
|
||||||
|
<list size="3">
|
||||||
<item index="0" class="java.lang.String" itemvalue="Scala Console.Scala Console" />
|
<item index="0" class="java.lang.String" itemvalue="Scala Console.Scala Console" />
|
||||||
<item index="1" class="java.lang.String" itemvalue="Application.Kernel" />
|
<item index="1" class="java.lang.String" itemvalue="Application.Kernel" />
|
||||||
|
<item index="2" class="java.lang.String" itemvalue="JUnit.CamelSpec" />
|
||||||
</list>
|
</list>
|
||||||
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
||||||
<Host>localhost</Host>
|
<Host>localhost</Host>
|
||||||
|
|
@ -354,25 +600,25 @@
|
||||||
</todo-panel>
|
</todo-panel>
|
||||||
</component>
|
</component>
|
||||||
<component name="ToolWindowManager">
|
<component name="ToolWindowManager">
|
||||||
<frame x="0" y="22" width="1436" height="878" extended-state="0" />
|
<frame x="4" y="22" width="1436" height="878" extended-state="6" />
|
||||||
<editor active="false" />
|
<editor active="true" />
|
||||||
<layout>
|
<layout>
|
||||||
<window_info id="Web Preview" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32976654" sideWeight="0.5" order="13" side_tool="false" />
|
<window_info id="Web Preview" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32976654" sideWeight="0.5" order="13" side_tool="false" />
|
||||||
<window_info id="Dataflow to this" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="14" side_tool="false" />
|
<window_info id="Dataflow to this" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="14" side_tool="false" />
|
||||||
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="5" side_tool="false" />
|
<window_info id="Maven Projects" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3294881" sideWeight="0.68877554" order="5" side_tool="false" />
|
||||||
<window_info id="Data Sources" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" />
|
<window_info id="Data Sources" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3294881" sideWeight="0.6875" order="3" side_tool="false" />
|
||||||
<window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" />
|
<window_info id="IDEtalk" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" />
|
||||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879376" sideWeight="0.5" order="6" side_tool="false" />
|
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879376" 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.3258832" sideWeight="0.67417216" 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.24873829" sideWeight="0.68877554" order="1" side_tool="false" />
|
||||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879376" sideWeight="0.5" order="1" side_tool="false" />
|
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879376" sideWeight="0.5" order="1" side_tool="false" />
|
||||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24945295" sideWeight="0.84143966" order="0" side_tool="false" />
|
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24945295" sideWeight="0.84143966" order="0" side_tool="false" />
|
||||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" />
|
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" />
|
||||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3165563" 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.30229592" sideWeight="0.5" order="11" side_tool="false" />
|
||||||
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="12" side_tool="false" />
|
<window_info id="Dependency Viewer" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="12" side_tool="false" />
|
||||||
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" />
|
<window_info id="Palette" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" />
|
||||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24986653" sideWeight="0.75" order="1" side_tool="false" />
|
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.24945927" sideWeight="0.6875" order="1" side_tool="false" />
|
||||||
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879376" sideWeight="0.5" order="7" side_tool="false" />
|
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32879376" sideWeight="0.5" order="7" side_tool="false" />
|
||||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="true" internal_type="DOCKED" type="FLOATING" visible="false" weight="0.47276264" sideWeight="0.5" order="2" side_tool="false" x="16" y="58" width="1798" height="1028" />
|
<window_info id="Run" active="false" anchor="bottom" auto_hide="true" internal_type="DOCKED" type="FLOATING" visible="false" weight="0.47276264" sideWeight="0.5" order="2" side_tool="false" x="16" y="22" width="1798" height="878" />
|
||||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39989322" sideWeight="0.75" order="0" side_tool="false" />
|
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39989322" sideWeight="0.75" order="0" side_tool="false" />
|
||||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39980546" sideWeight="0.5" order="3" side_tool="false" />
|
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.39980546" sideWeight="0.5" order="3" side_tool="false" />
|
||||||
<window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" />
|
<window_info id="IDEtalk Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="8" side_tool="false" />
|
||||||
|
|
@ -424,76 +670,6 @@
|
||||||
</buildFile>
|
</buildFile>
|
||||||
</component>
|
</component>
|
||||||
<component name="editorHistoryManager">
|
<component name="editorHistoryManager">
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/collection/HashTrie.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="44" column="12" selection-start="1825" selection-end="1825" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/collection/Vector.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="298" column="1" selection-start="8660" selection-end="8660" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/DataFlowVariable.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="37" column="1" selection-start="938" selection-end="938" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/PersistentStateTest.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="7" column="48" selection-start="186" selection-end="186" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="jar://$PROJECT_DIR$/lib/cassandra.jar!/org/apache/cassandra/config/DatabaseDescriptor.class">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/NetCat.scala">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="47" column="1" selection-start="1796" selection-end="1796" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfiguratorTest.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="8" column="0" selection-start="195" selection-end="195" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/api-java/src/test/java/se/scalablesolutions/akka/api/InMemoryStateTest.java">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="9" column="0" selection-start="195" selection-end="250" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/config/storage-conf.xml">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="36" column="49" selection-start="1742" selection-end="1742" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/bin/start-akka-server.sh">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
|
||||||
<folding />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/State.scala">
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/State.scala">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="26" column="69" selection-start="581" selection-end="581" vertical-scroll-proportion="0.0">
|
<state line="26" column="69" selection-start="581" selection-end="581" vertical-scroll-proportion="0.0">
|
||||||
|
|
@ -515,25 +691,86 @@
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/SupervisorSpec.scala">
|
<entry file="file://$PROJECT_DIR$/util-java/src/main/java/se/scalablesolutions/akka/annotation/immutable.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="2" column="33" selection-start="49" selection-end="49" vertical-scroll-proportion="0.0">
|
<state line="10" column="18" selection-start="210" selection-end="210" vertical-scroll-proportion="0.0">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/api-java/src/main/java/se/scalablesolutions/akka/api/ActiveObjectGuiceConfigurator.java">
|
<entry file="file://$PROJECT_DIR$/kernel/pom.xml">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state line="59" column="15" selection-start="2579" selection-end="2579" vertical-scroll-proportion="0.0">
|
<state line="73" column="4" selection-start="2212" selection-end="2212" vertical-scroll-proportion="0.08803301">
|
||||||
<folding>
|
<folding />
|
||||||
<element signature="imports" expanded="true" />
|
</state>
|
||||||
</folding>
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/pom.xml">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/SupervisorSpec.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="18" column="29" selection-start="528" selection-end="528" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/collection/Vector.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="298" column="1" selection-start="8660" selection-end="8660" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfiguratorForJava.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="95" column="1" selection-start="4052" selection-end="4052" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="118" column="40" selection-start="5650" selection-end="5650" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/ActiveObject.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="35" column="6" selection-start="1232" selection-end="1232" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/GenericServer.scala">
|
<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="15" column="22" selection-start="449" selection-end="449" vertical-scroll-proportion="0.18025751">
|
<state line="14" column="11" selection-start="371" selection-end="371" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/GenericServerContainerSuite.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="17" column="6" selection-start="352" selection-end="352" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/main/scala/camel/SupervisorAwareCamelContext.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="9" column="0" selection-start="248" selection-end="248" vertical-scroll-proportion="0.0">
|
||||||
|
<folding />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/kernel/src/test/scala/CamelSpec.scala">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state line="92" column="0" selection-start="2771" selection-end="2771" vertical-scroll-proportion="0.3184584">
|
||||||
<folding />
|
<folding />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
|
|
|
||||||
|
|
@ -1,16 +1,15 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="src" path="src/main/java"/>
|
<classpathentry kind="src" path="java"/>
|
||||||
<classpathentry kind="src" path="src/test/java"/>
|
<classpathentry kind="src" path="src/test/java"/>
|
||||||
<classpathentry kind="lib" path="dist/api-java.jar"/>
|
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/activation-1.1.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/activation-1.1.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/akka-util-java.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/akka-util-java.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/antlr-3.1.3.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/antlr-3.1.3.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/aopalliance-1.0.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/aopalliance-1.0.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/asm-3.1.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/asm-3.1.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/asm-all-2.2.1.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/asm-all-2.2.1.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/cassandra-1.0.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/camel-core-2.0-SNAPSHOT.jar"/>
|
||||||
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/cassandra-0.3.0-dev.jar" sourcepath="/Users/jboner/src/java/cassandra/src"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/catalina-ant.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/catalina-ant.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/cglib-2.2.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/cglib-2.2.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/colt-1.2.0.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/colt-1.2.0.jar"/>
|
||||||
|
|
@ -51,8 +50,8 @@
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/JSAP-2.1.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/JSAP-2.1.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/jsr250-api-1.0.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/jsr250-api-1.0.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/jsr311-api-1.0.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/jsr311-api-1.0.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/junit-3.8.2.jar"/>
|
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/junit-4.5.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/junit-4.5.jar"/>
|
||||||
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/junit4runner-1.0.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/libfb303.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/libfb303.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/libthrift.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/libthrift.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/log4j-1.2.15.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/log4j-1.2.15.jar"/>
|
||||||
|
|
@ -63,9 +62,7 @@
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/protobuf-java-2.0.3.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/protobuf-java-2.0.3.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/rome-0.9.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/rome-0.9.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/scala-library-2.7.3.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/scala-library-2.7.3.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/scala-library-2.7.3.zip"/>
|
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/scalatest-0.9.5.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/scalatest-0.9.5.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/scalatest-0.9.5.zip"/>
|
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/servlet-api-2.5.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/servlet-api-2.5.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/slf4j-api-1.4.3.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/slf4j-api-1.4.3.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/slf4j-log4j12-1.4.3.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/slf4j-log4j12-1.4.3.jar"/>
|
||||||
|
|
@ -76,6 +73,7 @@
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/voldemort-contrib-0.4a.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/voldemort-contrib-0.4a.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/xerces.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/xerces.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/zookeeper-3.1.0.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/zookeeper-3.1.0.jar"/>
|
||||||
<classpathentry kind="lib" path="/akka-kernel/build"/>
|
<classpathentry kind="lib" path="/akka-kernel/target/classes"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||||
<classpathentry kind="output" path="build/test/classes"/>
|
<classpathentry kind="output" path="build/test/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
||||||
62
api-java/akka-api-java.iml
Normal file
62
api-java/akka-api-java.iml
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module relativePaths="true" MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
|
||||||
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="module" module-name="akka-kernel" exported="" />
|
||||||
|
<orderEntry type="module" module-name="akka-util-java" exported="" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.guiceyfruit:guice-core:2.0-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.google.code.google-collections:google-collect:snapshot-20080530" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: cglib:cglib:2.2" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: asm:asm:3.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: aopalliance:aopalliance:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.guiceyfruit:guice-jsr250:2.0-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.annotation:jsr250-api:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.scala-lang:scala-library:2.7.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: net.lag:configgy:1.2" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-servlet-webserver:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-http:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-framework:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-http-utils:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-rcm:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-portunif:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-http-servlet:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.servlet:servlet-api:2.5" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.jersey:jersey-server:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.jersey:jersey-core:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.ws.rs:jsr311-api:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.jersey:jersey-json:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.codehaus.jettison:jettison:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: stax:stax-api:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.xml.bind:jaxb-impl:2.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.xml.bind:jaxb-api:2.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.xml.stream:stax-api:1.0-2" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.activation:activation:1.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.jersey:jersey-atom:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: rome:rome:0.9" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: jdom:jdom:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.jboss.netty:netty:3.1.0.BETA2" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.apache.cassandra:cassandra:0.3.0-dev" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.facebook:thrift:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.facebook:fb303:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.apache.camel:camel-core:2.0-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: commons-logging:commons-logging-api:1.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.assembla.scala.mina:mina-core:2.0.0-M2-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.slf4j:slf4j-api:1.4.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.assembla.scala.mina:mina-integration-scala:2.0.0-M2-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.slf4j:slf4j-log4j12:1.4.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: log4j:log4j:1.2.13" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: junit:junit:4.5" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.jmock:jmock:2.4.0" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-library:1.1" level="project" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<module relativePaths="true" type="JAVA_MODULE" version="4">
|
<module relativePaths="true" MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
|
||||||
<exclude-output />
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main" isTestSource="false" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
|
@ -17,7 +20,6 @@
|
||||||
<SOURCES />
|
<SOURCES />
|
||||||
</library>
|
</library>
|
||||||
</orderEntry>
|
</orderEntry>
|
||||||
<orderEntry type="module" module-name="util-java" exported="" />
|
|
||||||
<orderEntry type="module-library" exported="">
|
<orderEntry type="module-library" exported="">
|
||||||
<library>
|
<library>
|
||||||
<CLASSES>
|
<CLASSES>
|
||||||
|
|
@ -45,6 +47,53 @@
|
||||||
<SOURCES />
|
<SOURCES />
|
||||||
</library>
|
</library>
|
||||||
</orderEntry>
|
</orderEntry>
|
||||||
|
<orderEntry type="module" module-name="akka-kernel" exported="" />
|
||||||
|
<orderEntry type="module" module-name="util-java" exported="" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.scala-lang:scala-library:2.7.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: net.lag:configgy:1.2" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.guiceyfruit:guice-core:2.0-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.google.code.google-collections:google-collect:snapshot-20080530" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: cglib:cglib:2.2" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: asm:asm:3.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: aopalliance:aopalliance:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.guiceyfruit:guice-jsr250:2.0-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.annotation:jsr250-api:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-servlet-webserver:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-http:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-framework:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-http-utils:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-rcm:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-portunif:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-http-servlet:1.8.6.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.servlet:servlet-api:2.5" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.jersey:jersey-server:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.jersey:jersey-core:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.ws.rs:jsr311-api:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.jersey:jersey-json:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.codehaus.jettison:jettison:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: stax:stax-api:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.xml.bind:jaxb-impl:2.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.xml.bind:jaxb-api:2.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.xml.stream:stax-api:1.0-2" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.activation:activation:1.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.sun.jersey:jersey-atom:1.0.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: rome:rome:0.9" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: jdom:jdom:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.jboss.netty:netty:3.1.0.BETA2" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.apache.cassandra:cassandra:0.3.0-dev" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.facebook:thrift:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.facebook:fb303:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.apache.camel:camel-core:2.0-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: commons-logging:commons-logging-api:1.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.assembla.scala.mina:mina-core:2.0.0-M2-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.slf4j:slf4j-api:1.4.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.assembla.scala.mina:mina-integration-scala:2.0.0-M2-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.slf4j:slf4j-log4j12:1.4.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: log4j:log4j:1.2.13" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: junit:junit:4.5" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.jmock:jmock:2.4.0" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.1" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-library:1.1" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ import java.util.HashMap;
|
||||||
public class ActiveObjectGuiceConfigurator {
|
public class ActiveObjectGuiceConfigurator {
|
||||||
private List<Module> modules = new ArrayList<Module>();
|
private List<Module> modules = new ArrayList<Module>();
|
||||||
private Injector injector;
|
private Injector injector;
|
||||||
private Supervisor supervisor; // TODO is supervisor needed
|
private Supervisor supervisor;
|
||||||
private RestartStrategy restartStrategy;
|
private RestartStrategy restartStrategy;
|
||||||
private Component[] components;
|
private Component[] components;
|
||||||
private Map<Class, Component> configRegistry = new HashMap<Class, Component>(); // TODO is configRegistry needed?
|
private Map<Class, Component> configRegistry = new HashMap<Class, Component>(); // TODO is configRegistry needed?
|
||||||
|
|
@ -5,7 +5,13 @@
|
||||||
package se.scalablesolutions.akka.api;
|
package se.scalablesolutions.akka.api;
|
||||||
|
|
||||||
import se.scalablesolutions.akka.annotation.*;
|
import se.scalablesolutions.akka.annotation.*;
|
||||||
import se.scalablesolutions.akka.kernel.configuration.*;
|
import se.scalablesolutions.akka.kernel.config.ActiveObjectGuiceConfiguratorForJava;
|
||||||
|
|
||||||
|
import se.scalablesolutions.akka.annotation.*;
|
||||||
|
import se.scalablesolutions.akka.kernel.config.*;
|
||||||
|
import static se.scalablesolutions.akka.kernel.config.JavaConfig.*;
|
||||||
|
import se.scalablesolutions.akka.kernel.TransactionalMap;
|
||||||
|
import se.scalablesolutions.akka.kernel.InMemoryTransactionalMap;
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
import com.google.inject.Inject;
|
||||||
import com.google.inject.AbstractModule;
|
import com.google.inject.AbstractModule;
|
||||||
|
|
@ -16,7 +22,7 @@ import junit.framework.TestCase;
|
||||||
public class ActiveObjectGuiceConfiguratorTest extends TestCase {
|
public class ActiveObjectGuiceConfiguratorTest extends TestCase {
|
||||||
static String messageLog = "";
|
static String messageLog = "";
|
||||||
|
|
||||||
final private ActiveObjectGuiceConfigurator conf = new ActiveObjectGuiceConfigurator();
|
final private ActiveObjectGuiceConfiguratorForJava conf = new ActiveObjectGuiceConfiguratorForJava();
|
||||||
|
|
||||||
protected void setUp() {
|
protected void setUp() {
|
||||||
conf.addExternalGuiceModule(new AbstractModule() {
|
conf.addExternalGuiceModule(new AbstractModule() {
|
||||||
|
|
@ -26,11 +32,13 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase {
|
||||||
}).configureActiveObjects(
|
}).configureActiveObjects(
|
||||||
new RestartStrategy(new AllForOne(), 3, 5000), new Component[]{
|
new RestartStrategy(new AllForOne(), 3, 5000), new Component[]{
|
||||||
new Component(
|
new Component(
|
||||||
|
"foo",
|
||||||
Foo.class,
|
Foo.class,
|
||||||
FooImpl.class,
|
FooImpl.class,
|
||||||
new LifeCycle(new Permanent(), 1000),
|
new LifeCycle(new Permanent(), 1000),
|
||||||
1000),
|
1000),
|
||||||
new Component(
|
new Component(
|
||||||
|
"bar",
|
||||||
Bar.class,
|
Bar.class,
|
||||||
BarImpl.class,
|
BarImpl.class,
|
||||||
new LifeCycle(new Permanent(), 1000),
|
new LifeCycle(new Permanent(), 1000),
|
||||||
|
|
@ -41,21 +49,21 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase {
|
||||||
|
|
||||||
public void testGuiceActiveObjectInjection() {
|
public void testGuiceActiveObjectInjection() {
|
||||||
messageLog = "";
|
messageLog = "";
|
||||||
Foo foo = conf.getActiveObject(Foo.class);
|
Foo foo = conf.getActiveObject("foo");
|
||||||
Bar bar = conf.getActiveObject(Bar.class);
|
Bar bar = conf.getActiveObject("bar");
|
||||||
assertTrue(foo.getBar().toString().equals(bar.toString()));
|
assertTrue(foo.getBar().toString().equals(bar.toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testGuiceExternalDependencyInjection() {
|
public void testGuiceExternalDependencyInjection() {
|
||||||
messageLog = "";
|
messageLog = "";
|
||||||
Bar bar = conf.getActiveObject(Bar.class);
|
Bar bar = conf.getActiveObject("bar");
|
||||||
Ext ext = conf.getExternalDependency(Ext.class);
|
Ext ext = conf.getExternalDependency(Ext.class);
|
||||||
assertTrue(bar.getExt().toString().equals(ext.toString()));
|
assertTrue(bar.getExt().toString().equals(ext.toString()));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testLookupNonSupervisedInstance() {
|
public void testLookupNonSupervisedInstance() {
|
||||||
try {
|
try {
|
||||||
String str = conf.getActiveObject(String.class);
|
String str = conf.getActiveObject("string");
|
||||||
fail("exception should have been thrown");
|
fail("exception should have been thrown");
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
assertEquals("Class java.lang.String has not been put under supervision (by passing in the config to the supervise() method", e.getMessage());
|
assertEquals("Class java.lang.String has not been put under supervision (by passing in the config to the supervise() method", e.getMessage());
|
||||||
|
|
@ -64,7 +72,7 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase {
|
||||||
|
|
||||||
public void testActiveObjectInvocation() throws InterruptedException {
|
public void testActiveObjectInvocation() throws InterruptedException {
|
||||||
messageLog = "";
|
messageLog = "";
|
||||||
Foo foo = conf.getActiveObject(Foo.class);
|
Foo foo = conf.getActiveObject("foo");
|
||||||
messageLog += foo.foo("foo ");
|
messageLog += foo.foo("foo ");
|
||||||
foo.bar("bar ");
|
foo.bar("bar ");
|
||||||
messageLog += "before_bar ";
|
messageLog += "before_bar ";
|
||||||
|
|
@ -74,8 +82,8 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase {
|
||||||
|
|
||||||
public void testActiveObjectInvocationsInvocation() throws InterruptedException {
|
public void testActiveObjectInvocationsInvocation() throws InterruptedException {
|
||||||
messageLog = "";
|
messageLog = "";
|
||||||
Foo foo = conf.getActiveObject(Foo.class);
|
Foo foo = conf.getActiveObject("foo");
|
||||||
Bar bar = conf.getActiveObject(Bar.class);
|
Bar bar = conf.getActiveObject("bar");
|
||||||
messageLog += foo.foo("foo ");
|
messageLog += foo.foo("foo ");
|
||||||
foo.bar("bar ");
|
foo.bar("bar ");
|
||||||
messageLog += "before_bar ";
|
messageLog += "before_bar ";
|
||||||
|
|
@ -86,7 +94,7 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase {
|
||||||
|
|
||||||
public void testForcedTimeout() {
|
public void testForcedTimeout() {
|
||||||
messageLog = "";
|
messageLog = "";
|
||||||
Foo foo = conf.getActiveObject(Foo.class);
|
Foo foo = conf.getActiveObject("foo");
|
||||||
try {
|
try {
|
||||||
foo.longRunning();
|
foo.longRunning();
|
||||||
fail("exception should have been thrown");
|
fail("exception should have been thrown");
|
||||||
|
|
@ -96,7 +104,7 @@ public class ActiveObjectGuiceConfiguratorTest extends TestCase {
|
||||||
|
|
||||||
public void testForcedException() {
|
public void testForcedException() {
|
||||||
messageLog = "";
|
messageLog = "";
|
||||||
Foo foo = conf.getActiveObject(Foo.class);
|
Foo foo = conf.getActiveObject("foo");
|
||||||
try {
|
try {
|
||||||
foo.throwsException();
|
foo.throwsException();
|
||||||
fail("exception should have been thrown");
|
fail("exception should have been thrown");
|
||||||
|
|
|
||||||
|
|
@ -5,31 +5,25 @@
|
||||||
package se.scalablesolutions.akka.api;
|
package se.scalablesolutions.akka.api;
|
||||||
|
|
||||||
import se.scalablesolutions.akka.annotation.*;
|
import se.scalablesolutions.akka.annotation.*;
|
||||||
import se.scalablesolutions.akka.kernel.*;
|
import se.scalablesolutions.akka.kernel.config.*;
|
||||||
import se.scalablesolutions.akka.kernel.configuration.LifeCycle;
|
import static se.scalablesolutions.akka.kernel.config.JavaConfig.*;
|
||||||
import se.scalablesolutions.akka.kernel.configuration.Permanent;
|
import se.scalablesolutions.akka.kernel.TransactionalMap;
|
||||||
import se.scalablesolutions.akka.kernel.configuration.Component;
|
import se.scalablesolutions.akka.kernel.InMemoryTransactionalMap;
|
||||||
import se.scalablesolutions.akka.kernel.configuration.AllForOne;
|
|
||||||
import se.scalablesolutions.akka.kernel.configuration.RestartStrategy;
|
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
|
||||||
import com.google.inject.AbstractModule;
|
|
||||||
import com.google.inject.Scopes;
|
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
public class InMemoryStateTest extends TestCase {
|
public class InMemoryStateTest extends TestCase {
|
||||||
static String messageLog = "";
|
static String messageLog = "";
|
||||||
|
|
||||||
final private ActiveObjectGuiceConfigurator conf = new ActiveObjectGuiceConfigurator();
|
final private ActiveObjectGuiceConfiguratorForJava conf = new ActiveObjectGuiceConfiguratorForJava();
|
||||||
|
|
||||||
protected void setUp() {
|
protected void setUp() {
|
||||||
conf.configureActiveObjects(
|
conf.configureActiveObjects(
|
||||||
new RestartStrategy(new AllForOne(), 3, 5000),
|
new RestartStrategy(new AllForOne(), 3, 5000),
|
||||||
new Component[] {
|
new Component[] {
|
||||||
new Component(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(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(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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -39,17 +33,17 @@ public class InMemoryStateTest extends TestCase {
|
||||||
|
|
||||||
|
|
||||||
public void testShouldNotRollbackStateForStatefulServerInCaseOfSuccess() {
|
public void testShouldNotRollbackStateForStatefulServerInCaseOfSuccess() {
|
||||||
InMemStateful stateful = conf.getActiveObject(InMemStateful.class);
|
InMemStateful stateful = conf.getActiveObject("inmem-stateful");
|
||||||
stateful.setState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "init"); // set init state
|
stateful.setState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "init"); // set init state
|
||||||
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // transactional
|
stateful.success("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess", "new state"); // transactional
|
||||||
assertEquals("new state", stateful.getState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess"));
|
assertEquals("new state", stateful.getState("testShouldNotRollbackStateForStatefulServerInCaseOfSuccess"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testShouldRollbackStateForStatefulServerInCaseOfFailure() {
|
public void testShouldRollbackStateForStatefulServerInCaseOfFailure() {
|
||||||
InMemStateful stateful = conf.getActiveObject(InMemStateful.class);
|
InMemStateful stateful = conf.getActiveObject("inmem-stateful");
|
||||||
stateful.setState("testShouldRollbackStateForStatefulServerInCaseOfFailure", "init"); // set init state
|
stateful.setState("testShouldRollbackStateForStatefulServerInCaseOfFailure", "init"); // set init state
|
||||||
|
|
||||||
InMemFailer failer = conf.getActiveObject(InMemFailer.class);
|
InMemFailer failer = conf.getActiveObject("inmem-failer");
|
||||||
try {
|
try {
|
||||||
stateful.failure("testShouldRollbackStateForStatefulServerInCaseOfFailure", "new state", failer); // call failing transactional method
|
stateful.failure("testShouldRollbackStateForStatefulServerInCaseOfFailure", "new state", failer); // call failing transactional method
|
||||||
fail("should have thrown an exception");
|
fail("should have thrown an exception");
|
||||||
|
|
|
||||||
|
|
@ -5,31 +5,25 @@
|
||||||
package se.scalablesolutions.akka.api;
|
package se.scalablesolutions.akka.api;
|
||||||
|
|
||||||
import se.scalablesolutions.akka.annotation.*;
|
import se.scalablesolutions.akka.annotation.*;
|
||||||
import se.scalablesolutions.akka.kernel.*;
|
import se.scalablesolutions.akka.kernel.config.*;
|
||||||
import se.scalablesolutions.akka.kernel.configuration.LifeCycle;
|
import static se.scalablesolutions.akka.kernel.config.JavaConfig.*;
|
||||||
import se.scalablesolutions.akka.kernel.configuration.Permanent;
|
import se.scalablesolutions.akka.kernel.TransactionalMap;
|
||||||
import se.scalablesolutions.akka.kernel.configuration.Component;
|
import se.scalablesolutions.akka.kernel.CassandraPersistentTransactionalMap;
|
||||||
import se.scalablesolutions.akka.kernel.configuration.AllForOne;
|
|
||||||
import se.scalablesolutions.akka.kernel.configuration.RestartStrategy;
|
|
||||||
|
|
||||||
import com.google.inject.Inject;
|
|
||||||
import com.google.inject.AbstractModule;
|
|
||||||
import com.google.inject.Scopes;
|
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
public class PersistentStateTest extends TestCase {
|
public class PersistentStateTest extends TestCase {
|
||||||
static String messageLog = "";
|
static String messageLog = "";
|
||||||
|
|
||||||
final private ActiveObjectGuiceConfigurator conf = new ActiveObjectGuiceConfigurator();
|
final private ActiveObjectGuiceConfiguratorForJava conf = new ActiveObjectGuiceConfiguratorForJava();
|
||||||
|
|
||||||
protected void setUp() {
|
protected void setUp() {
|
||||||
conf.configureActiveObjects(
|
conf.configureActiveObjects(
|
||||||
new RestartStrategy(new AllForOne(), 3, 5000),
|
new JavaConfig.RestartStrategy(new JavaConfig.AllForOne(), 3, 5000),
|
||||||
new Component[] {
|
new Component[] {
|
||||||
new Component(PersistentStateful.class, PersistentStatefulImpl.class, new LifeCycle(new Permanent(), 1000), 10000000),
|
new Component("persistent-stateful", PersistentStateful.class, PersistentStatefulImpl.class, new LifeCycle(new Permanent(), 1000), 10000000),
|
||||||
new Component(PersistentFailer.class, PersistentFailerImpl.class, new LifeCycle(new Permanent(), 1000), 1000),
|
new Component("persistent-failer", PersistentFailer.class, PersistentFailerImpl.class, new LifeCycle(new Permanent(), 1000), 1000),
|
||||||
new Component(PersistentClasher.class, PersistentClasherImpl.class, new LifeCycle(new Permanent(), 1000), 100000)
|
new Component("persistent-clasher", PersistentClasher.class, PersistentClasherImpl.class, new LifeCycle(new Permanent(), 1000), 100000)
|
||||||
}).inject().supervise();
|
}).inject().supervise();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -63,10 +57,10 @@ interface PersistentStateful {
|
||||||
}
|
}
|
||||||
|
|
||||||
class PersistentStatefulImpl implements PersistentStateful {
|
class PersistentStatefulImpl implements PersistentStateful {
|
||||||
private TransactionalMap<String, String> state = new CassandraPersistentTransactionalMap(this);
|
private TransactionalMap state = new CassandraPersistentTransactionalMap(this);
|
||||||
|
|
||||||
public String getState(String key) {
|
public String getState(String key) {
|
||||||
return state.get(key);
|
return (String)state.get(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setState(String key, String msg) {
|
public void setState(String key, String msg) {
|
||||||
|
|
@ -113,10 +107,10 @@ interface PersistentClasher {
|
||||||
}
|
}
|
||||||
|
|
||||||
class PersistentClasherImpl implements PersistentClasher {
|
class PersistentClasherImpl implements PersistentClasher {
|
||||||
private TransactionalMap<String, String> state = new CassandraPersistentTransactionalMap(this);
|
private TransactionalMap state = new CassandraPersistentTransactionalMap(this);
|
||||||
|
|
||||||
public String getState(String key) {
|
public String getState(String key) {
|
||||||
return state.get(key);
|
return (String)state.get(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setState(String key, String msg) {
|
public void setState(String key, String msg) {
|
||||||
|
|
|
||||||
10
buildfile
10
buildfile
|
|
@ -25,6 +25,7 @@ JERSEY = ['com.sun.jersey:jersey-core:jar:1.0.1',
|
||||||
GRIZZLY = 'com.sun.grizzly:grizzly-servlet-webserver:jar:1.8.6.3'
|
GRIZZLY = 'com.sun.grizzly:grizzly-servlet-webserver:jar:1.8.6.3'
|
||||||
NETTY = 'org.jboss.netty:netty:jar:3.1.0.BETA2'
|
NETTY = 'org.jboss.netty:netty:jar:3.1.0.BETA2'
|
||||||
CASSANDRA = 'org.apache.cassandra:cassandra:jar:0.3.0-dev'
|
CASSANDRA = 'org.apache.cassandra:cassandra:jar:0.3.0-dev'
|
||||||
|
CAMEL = 'org.apache.camel:camel-core:jar:2.0-SNAPSHOT'
|
||||||
THRIFT = 'com.facebook:thrift:jar:1.0'
|
THRIFT = 'com.facebook:thrift:jar:1.0'
|
||||||
FB303 = 'com.facebook:fb303:jar:1.0'
|
FB303 = 'com.facebook:fb303:jar:1.0'
|
||||||
CONFIGGY = 'net.lag:configgy:jar:1.2'
|
CONFIGGY = 'net.lag:configgy:jar:1.2'
|
||||||
|
|
@ -34,6 +35,7 @@ JSR_250 = 'javax.annotation:jsr250-api:jar:1.0'
|
||||||
SLF4J = ['org.slf4j:slf4j-log4j12:jar:1.4.3',
|
SLF4J = ['org.slf4j:slf4j-log4j12:jar:1.4.3',
|
||||||
'org.slf4j:slf4j-api:jar:1.4.3',
|
'org.slf4j:slf4j-api:jar:1.4.3',
|
||||||
'log4j:log4j:jar:1.2.13']
|
'log4j:log4j:jar:1.2.13']
|
||||||
|
COMMONS_LOGGING = 'commons-logging:commons-logging:jar:1.1.1'
|
||||||
JDOM = 'jdom:jdom:jar:1.0'
|
JDOM = 'jdom:jdom:jar:1.0'
|
||||||
CGLIB = 'cglib:cglib-nodep:jar:2.1_3'
|
CGLIB = 'cglib:cglib-nodep:jar:2.1_3'
|
||||||
AOPALLIANCE = 'aopalliance:aopalliance:jar:1.0'
|
AOPALLIANCE = 'aopalliance:aopalliance:jar:1.0'
|
||||||
|
|
@ -57,22 +59,22 @@ define 'akka' do
|
||||||
manifest['Copyright'] = 'Scalable Solutions (C) 2009'
|
manifest['Copyright'] = 'Scalable Solutions (C) 2009'
|
||||||
compile.options.target = '1.5'
|
compile.options.target = '1.5'
|
||||||
|
|
||||||
desc 'Akka Java Utilities (annotations)'
|
desc 'Akka Java Utilities (annotations and guice module)'
|
||||||
define 'util-java' do
|
define 'util-java' do
|
||||||
compile
|
compile.with(GUICEYFRUIT, AOPALLIANCE)
|
||||||
package :jar
|
package :jar
|
||||||
end
|
end
|
||||||
|
|
||||||
desc 'Akka Actor Kernel core implementation'
|
desc 'Akka Actor Kernel core implementation'
|
||||||
define 'kernel' do
|
define 'kernel' do
|
||||||
compile.with(AKKA_UTIL_JAVA, GUICEYFRUIT, NETTY, JERSEY, GRIZZLY, CASSANDRA, THRIFT, FB303, SLF4J, CONFIGGY, JUNIT4RUNNER, JUNIT4, SCALATEST)
|
compile.with(AKKA_UTIL_JAVA, GUICEYFRUIT, AOPALLIANCE, NETTY, JERSEY, GRIZZLY, CASSANDRA, THRIFT, FB303, CAMEL, SLF4J, GOOGLE_COLLECT, CGLIB, JSR_250, COMMONS_LOGGING, CONFIGGY, JUNIT4RUNNER, JUNIT4, SCALATEST)
|
||||||
test.using :junit
|
test.using :junit
|
||||||
package :jar
|
package :jar
|
||||||
end
|
end
|
||||||
|
|
||||||
desc 'Akka Java API'
|
desc 'Akka Java API'
|
||||||
define 'api-java' do
|
define 'api-java' do
|
||||||
compile.with(AKKA_KERNEL, AKKA_UTIL_JAVA, NETTY, JERSEY, GRIZZLY, CASSANDRA, THRIFT, FB303, SLF4J, CONFIGGY, GUICEYFRUIT, SCALA, GOOGLE_COLLECT, AOPALLIANCE, CGLIB, JSR_250)
|
compile.with(AKKA_KERNEL, AKKA_UTIL_JAVA, NETTY, JERSEY, GRIZZLY, CASSANDRA, THRIFT, FB303, CAMEL, SLF4J, CONFIGGY, GUICEYFRUIT, SCALA, GOOGLE_COLLECT, AOPALLIANCE, CGLIB, JSR_250)
|
||||||
test.using :junit
|
test.using :junit
|
||||||
package :jar
|
package :jar
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,6 @@
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/JSAP-2.1.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/JSAP-2.1.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/jsr250-api-1.0.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/jsr250-api-1.0.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/jsr311-api-1.0.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/jsr311-api-1.0.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/junit-3.8.2.jar"/>
|
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/junit-4.5.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/junit-4.5.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/junit4runner-1.0.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/junit4runner-1.0.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/libfb303.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/libfb303.jar"/>
|
||||||
|
|
@ -64,7 +63,6 @@
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/protobuf-java-2.0.3.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/protobuf-java-2.0.3.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/rome-0.9.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/rome-0.9.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/scala-library-2.7.3.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/scala-library-2.7.3.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/scala-library-2.7.3.zip"/>
|
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/scalatest-0.9.5.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/scalatest-0.9.5.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/servlet-api-2.5.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/servlet-api-2.5.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/slf4j-api-1.4.3.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/slf4j-api-1.4.3.jar"/>
|
||||||
|
|
@ -77,5 +75,6 @@
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/xerces.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/xerces.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/zookeeper-3.1.0.jar"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/zookeeper-3.1.0.jar"/>
|
||||||
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/config"/>
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/config"/>
|
||||||
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/camel-core-2.0-SNAPSHOT.jar"/>
|
||||||
<classpathentry kind="output" path="build"/>
|
<classpathentry kind="output" path="build"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<module relativePaths="true" MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
<module relativePaths="true" MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="FacetManager">
|
||||||
|
<facet type="Scala" name="Scala">
|
||||||
|
<configuration />
|
||||||
|
</facet>
|
||||||
|
</component>
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="false">
|
<component name="NewModuleRootManager" inherit-compiler-output="false">
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
|
|
@ -11,9 +16,7 @@
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
<orderEntry type="module" module-name="util-java" exported="" />
|
<orderEntry type="module" module-name="akka-util-java" exported="" />
|
||||||
<orderEntry type="library" exported="" name="Maven: org.scala-lang:scala-library:2.7.3" level="project" />
|
|
||||||
<orderEntry type="library" exported="" name="Maven: net.lag:configgy:1.2" level="project" />
|
|
||||||
<orderEntry type="library" exported="" name="Maven: org.guiceyfruit:guice-core:2.0-SNAPSHOT" level="project" />
|
<orderEntry type="library" exported="" name="Maven: org.guiceyfruit:guice-core:2.0-SNAPSHOT" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: com.google.code.google-collections:google-collect:snapshot-20080530" level="project" />
|
<orderEntry type="library" exported="" name="Maven: com.google.code.google-collections:google-collect:snapshot-20080530" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: cglib:cglib:2.2" level="project" />
|
<orderEntry type="library" exported="" name="Maven: cglib:cglib:2.2" level="project" />
|
||||||
|
|
@ -21,6 +24,8 @@
|
||||||
<orderEntry type="library" exported="" name="Maven: aopalliance:aopalliance:1.0" level="project" />
|
<orderEntry type="library" exported="" name="Maven: aopalliance:aopalliance:1.0" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: org.guiceyfruit:guice-jsr250:2.0-SNAPSHOT" level="project" />
|
<orderEntry type="library" exported="" name="Maven: org.guiceyfruit:guice-jsr250:2.0-SNAPSHOT" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: javax.annotation:jsr250-api:1.0" level="project" />
|
<orderEntry type="library" exported="" name="Maven: javax.annotation:jsr250-api:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.scala-lang:scala-library:2.7.3" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: net.lag:configgy:1.2" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-servlet-webserver:1.8.6.3" level="project" />
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-servlet-webserver:1.8.6.3" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-http:1.8.6.3" level="project" />
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-http:1.8.6.3" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-framework:1.8.6.3" level="project" />
|
<orderEntry type="library" exported="" name="Maven: com.sun.grizzly:grizzly-framework:1.8.6.3" level="project" />
|
||||||
|
|
@ -46,6 +51,8 @@
|
||||||
<orderEntry type="library" exported="" name="Maven: org.apache.cassandra:cassandra:0.3.0-dev" level="project" />
|
<orderEntry type="library" exported="" name="Maven: org.apache.cassandra:cassandra:0.3.0-dev" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: com.facebook:thrift:1.0" level="project" />
|
<orderEntry type="library" exported="" name="Maven: com.facebook:thrift:1.0" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: com.facebook:fb303:1.0" level="project" />
|
<orderEntry type="library" exported="" name="Maven: com.facebook:fb303:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.apache.camel:camel-core:2.0-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: commons-logging:commons-logging-api:1.1" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: com.assembla.scala.mina:mina-core:2.0.0-M2-SNAPSHOT" level="project" />
|
<orderEntry type="library" exported="" name="Maven: com.assembla.scala.mina:mina-core:2.0.0-M2-SNAPSHOT" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: org.slf4j:slf4j-api:1.4.3" level="project" />
|
<orderEntry type="library" exported="" name="Maven: org.slf4j:slf4j-api:1.4.3" level="project" />
|
||||||
<orderEntry type="library" exported="" name="Maven: com.assembla.scala.mina:mina-integration-scala:2.0.0-M2-SNAPSHOT" level="project" />
|
<orderEntry type="library" exported="" name="Maven: com.assembla.scala.mina:mina-integration-scala:2.0.0-M2-SNAPSHOT" level="project" />
|
||||||
|
|
@ -60,6 +67,7 @@
|
||||||
</CLASSES>
|
</CLASSES>
|
||||||
<JAVADOC />
|
<JAVADOC />
|
||||||
<SOURCES>
|
<SOURCES>
|
||||||
|
<root url="jar://$MODULE_DIR$/../../../../bin/scala-2.7.3.final/src/scala-compiler-src.jar!/" />
|
||||||
<root url="jar://$MODULE_DIR$/../../../../bin/scala-2.7.3.final/src/scala-library-src.jar!/" />
|
<root url="jar://$MODULE_DIR$/../../../../bin/scala-2.7.3.final/src/scala-library-src.jar!/" />
|
||||||
</SOURCES>
|
</SOURCES>
|
||||||
</library>
|
</library>
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,8 @@
|
||||||
<artifactId>cassandra</artifactId>
|
<artifactId>cassandra</artifactId>
|
||||||
<version>0.3.0-dev</version>
|
<version>0.3.0-dev</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
|
<dependency>
|
||||||
<groupId>com.facebook</groupId>
|
<groupId>com.facebook</groupId>
|
||||||
<artifactId>thrift</artifactId>
|
<artifactId>thrift</artifactId>
|
||||||
<version>1.0</version>
|
<version>1.0</version>
|
||||||
|
|
@ -79,6 +80,11 @@
|
||||||
<groupId>com.facebook</groupId>
|
<groupId>com.facebook</groupId>
|
||||||
<artifactId>fb303</artifactId>
|
<artifactId>fb303</artifactId>
|
||||||
<version>1.0</version>
|
<version>1.0</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.camel</groupId>
|
||||||
|
<artifactId>camel-core</artifactId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!--dependency>
|
<!--dependency>
|
||||||
<groupId>voldemort</groupId>
|
<groupId>voldemort</groupId>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
class=se.scalablesolutions.akka.kernel.camel.ActiveObjectComponent
|
||||||
|
|
@ -4,10 +4,15 @@
|
||||||
|
|
||||||
package se.scalablesolutions.akka.kernel
|
package se.scalablesolutions.akka.kernel
|
||||||
|
|
||||||
|
import config.ActiveObjectGuiceConfigurator
|
||||||
|
import config.ScalaConfig._
|
||||||
|
|
||||||
import java.util.{List => JList, ArrayList}
|
import java.util.{List => JList, ArrayList}
|
||||||
import java.lang.reflect.{Method, Field, InvocationHandler, Proxy, InvocationTargetException}
|
import java.lang.reflect.{Method, Field, InvocationHandler, Proxy, InvocationTargetException}
|
||||||
import java.lang.annotation.Annotation
|
import java.lang.annotation.Annotation
|
||||||
|
import kernel.camel.{MessageDriven, ActiveObjectProducer}
|
||||||
|
import org.apache.camel.{Processor, Exchange}
|
||||||
|
import scala.collection.mutable.HashMap
|
||||||
//import voldemort.client.{SocketStoreClientFactory, StoreClient, StoreClientFactory}
|
//import voldemort.client.{SocketStoreClientFactory, StoreClient, StoreClientFactory}
|
||||||
//import voldemort.versioning.Versioned
|
//import voldemort.versioning.Versioned
|
||||||
|
|
||||||
|
|
@ -36,18 +41,20 @@ class ActiveObjectFactory {
|
||||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
*/
|
*/
|
||||||
object ActiveObject {
|
object ActiveObject {
|
||||||
private[kernel] val threadBoundTx: ThreadLocal[Option[Transaction]] = {
|
val AKKA_CAMEL_ROUTING_SCHEME = "akka"
|
||||||
val tl = new ThreadLocal[Option[Transaction]]
|
|
||||||
tl.set(None)
|
|
||||||
tl
|
|
||||||
}
|
|
||||||
|
|
||||||
def newInstance[T](intf: Class[_], proxy: ActiveObjectProxy): T = {
|
private[kernel] val threadBoundTx: ThreadLocal[Option[Transaction]] = {
|
||||||
Proxy.newProxyInstance(
|
val tl = new ThreadLocal[Option[Transaction]]
|
||||||
intf.getClassLoader,
|
tl.set(None)
|
||||||
Array(intf),
|
tl
|
||||||
proxy).asInstanceOf[T]
|
}
|
||||||
}
|
|
||||||
|
def newInstance[T](intf: Class[_], proxy: ActiveObjectProxy): T = {
|
||||||
|
Proxy.newProxyInstance(
|
||||||
|
intf.getClassLoader,
|
||||||
|
Array(intf),
|
||||||
|
proxy).asInstanceOf[T]
|
||||||
|
}
|
||||||
|
|
||||||
def newInstance[T](intf: Class[_], target: AnyRef, timeout: Int): T = {
|
def newInstance[T](intf: Class[_], target: AnyRef, timeout: Int): T = {
|
||||||
val proxy = new ActiveObjectProxy(intf, target.getClass, timeout)
|
val proxy = new ActiveObjectProxy(intf, target.getClass, timeout)
|
||||||
|
|
@ -77,20 +84,22 @@ object ActiveObject {
|
||||||
/**
|
/**
|
||||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
*/
|
*/
|
||||||
|
// FIXME: use interface for ActiveObjectGuiceConfigurator
|
||||||
class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: Int) extends InvocationHandler {
|
class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: Int) extends InvocationHandler {
|
||||||
import ActiveObject.threadBoundTx
|
import ActiveObject.threadBoundTx
|
||||||
private[this] var activeTx: Option[Transaction] = None
|
|
||||||
|
|
||||||
private var targetInstance: AnyRef = _
|
private[this] var activeTx: Option[Transaction] = None
|
||||||
private[kernel] def setTargetInstance(instance: AnyRef) = {
|
private[this] var targetInstance: AnyRef = _
|
||||||
|
|
||||||
|
private[akka] def setTargetInstance(instance: AnyRef) = {
|
||||||
targetInstance = instance
|
targetInstance = instance
|
||||||
val (maps, vectors, refs) = getTransactionalItemsFor(targetInstance)
|
val (maps, vectors, refs) = getTransactionalItemsFor(targetInstance)
|
||||||
|
server.transactionalRefs = refs
|
||||||
server.transactionalMaps = maps
|
server.transactionalMaps = maps
|
||||||
server.transactionalVectors = vectors
|
server.transactionalVectors = vectors
|
||||||
server.transactionalRefs = refs
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private[kernel] val server = new GenericServerContainer(target.getName, () => new Dispatcher(target.getName))
|
private[akka] val server = new GenericServerContainer(intf.getName, () => new Dispatcher(target.getName))
|
||||||
server.setTimeout(timeout)
|
server.setTimeout(timeout)
|
||||||
|
|
||||||
def invoke(proxy: AnyRef, m: Method, args: Array[AnyRef]): AnyRef = {
|
def invoke(proxy: AnyRef, m: Method, args: Array[AnyRef]): AnyRef = {
|
||||||
|
|
@ -121,9 +130,29 @@ class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: I
|
||||||
}
|
}
|
||||||
|
|
||||||
private def invoke(invocation: Invocation): AnyRef = {
|
private def invoke(invocation: Invocation): AnyRef = {
|
||||||
val result: AnyRef =
|
val result: AnyRef =
|
||||||
if (invocation.method.isAnnotationPresent(Annotations.oneway)) server ! invocation
|
/*
|
||||||
else {
|
if (invocation.target.isInstanceOf[MessageDriven] &&
|
||||||
|
invocation.method.getName == "onMessage") {
|
||||||
|
val m = invocation.method
|
||||||
|
|
||||||
|
val endpointName = m.getDeclaringClass.getName + "." + m.getName
|
||||||
|
val activeObjectName = m.getDeclaringClass.getName
|
||||||
|
val endpoint = conf.getRoutingEndpoint(conf.lookupUriFor(m))
|
||||||
|
val producer = endpoint.createProducer
|
||||||
|
val exchange = endpoint.createExchange
|
||||||
|
exchange.getIn().setBody(invocation)
|
||||||
|
producer.process(exchange)
|
||||||
|
val fault = exchange.getException();
|
||||||
|
if (fault != null) throw new InvocationTargetException(fault)
|
||||||
|
|
||||||
|
// FIXME: need some timeout and future here...
|
||||||
|
exchange.getOut.getBody
|
||||||
|
|
||||||
|
} else */
|
||||||
|
if (invocation.method.isAnnotationPresent(Annotations.oneway)) {
|
||||||
|
server ! invocation
|
||||||
|
} else {
|
||||||
val result: ErrRef[AnyRef] =
|
val result: ErrRef[AnyRef] =
|
||||||
server !!! (invocation, {
|
server !!! (invocation, {
|
||||||
var ref = ErrRef(activeTx)
|
var ref = ErrRef(activeTx)
|
||||||
|
|
@ -169,8 +198,8 @@ class ActiveObjectProxy(val intf: Class[_], val target: Class[_], val timeout: I
|
||||||
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[TransactionalVector[_]]) vectors ::= txItem.asInstanceOf[TransactionalVector[_]]
|
|
||||||
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[_]]
|
||||||
}
|
}
|
||||||
(maps, vectors, refs)
|
(maps, vectors, refs)
|
||||||
}
|
}
|
||||||
|
|
@ -183,6 +212,7 @@ 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 invocation: Invocation =>
|
||||||
val tx = invocation.tx
|
val tx = invocation.tx
|
||||||
ActiveObject.threadBoundTx.set(tx)
|
ActiveObject.threadBoundTx.set(tx)
|
||||||
|
|
@ -194,8 +224,15 @@ private[kernel] class Dispatcher(val targetName: String) extends GenericServer {
|
||||||
case e =>
|
case e =>
|
||||||
val ref = ErrRef(tx); ref() = throw e; reply(ref)
|
val ref = ErrRef(tx); ref() = throw e; reply(ref)
|
||||||
}
|
}
|
||||||
|
|
||||||
case 'exit =>
|
case 'exit =>
|
||||||
exit; reply()
|
exit; reply()
|
||||||
|
|
||||||
|
/* case exchange: Exchange =>
|
||||||
|
println("=============> Exchange From Actor: " + exchange)
|
||||||
|
val invocation = exchange.getIn.getBody.asInstanceOf[Invocation]
|
||||||
|
invocation.invoke
|
||||||
|
*/
|
||||||
case unexpected =>
|
case unexpected =>
|
||||||
throw new ActiveObjectException("Unexpected message [" + unexpected + "] to [" + this + "] from [" + sender + "]")
|
throw new ActiveObjectException("Unexpected message [" + unexpected + "] to [" + this + "] from [" + sender + "]")
|
||||||
}
|
}
|
||||||
|
|
@ -248,3 +285,40 @@ private[kernel] case class Invocation(val method: Method,
|
||||||
private[this] def argsToString(array: Array[Object]): String =
|
private[this] def argsToString(array: Array[Object]): String =
|
||||||
array.foldLeft("(")(_ + " " + _) + ")"
|
array.foldLeft("(")(_ + " " + _) + ")"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
ublic class CamelInvocationHandler implements InvocationHandler {
|
||||||
|
private final Endpoint endpoint;
|
||||||
|
private final Producer producer;
|
||||||
|
private final MethodInfoCache methodInfoCache;
|
||||||
|
|
||||||
|
public CamelInvocationHandler(Endpoint endpoint, Producer producer, MethodInfoCache methodInfoCache) {
|
||||||
|
this.endpoint = endpoint;
|
||||||
|
this.producer = producer;
|
||||||
|
this.methodInfoCache = methodInfoCache;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
|
||||||
|
BeanInvocation invocation = new BeanInvocation(method, args);
|
||||||
|
ExchangePattern pattern = ExchangePattern.InOut;
|
||||||
|
MethodInfo methodInfo = methodInfoCache.getMethodInfo(method);
|
||||||
|
if (methodInfo != null) {
|
||||||
|
pattern = methodInfo.getPattern();
|
||||||
|
}
|
||||||
|
Exchange exchange = new DefaultExchange(endpoint, pattern);
|
||||||
|
exchange.getIn().setBody(invocation);
|
||||||
|
|
||||||
|
producer.process(exchange);
|
||||||
|
Throwable fault = exchange.getException();
|
||||||
|
if (fault != null) {
|
||||||
|
throw new InvocationTargetException(fault);
|
||||||
|
}
|
||||||
|
if (pattern.isOutCapable()) {
|
||||||
|
return exchange.getOut().getBody();
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
@ -5,7 +5,6 @@
|
||||||
package se.scalablesolutions.akka
|
package se.scalablesolutions.akka
|
||||||
|
|
||||||
import kernel.Logging
|
import kernel.Logging
|
||||||
import kernel.configuration.ConfigurationException
|
|
||||||
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.reflect.Method
|
import java.lang.reflect.Method
|
||||||
|
|
@ -18,7 +17,7 @@ import java.net.{URL, URLClassLoader}
|
||||||
*/
|
*/
|
||||||
object Boot extends Logging {
|
object Boot extends Logging {
|
||||||
|
|
||||||
val HOME = try { System.getenv("AKKA_HOME") } catch { case e: NullPointerException => throw new ConfigurationException("AKKA_HOME system variable needs to be set") }
|
val HOME = try { System.getenv("AKKA_HOME") } catch { case e: NullPointerException => throw new IllegalStateException("AKKA_HOME system variable needs to be set") }
|
||||||
val CLASSES = HOME + "/classes"
|
val CLASSES = HOME + "/classes"
|
||||||
val LIB = HOME + "/lib"
|
val LIB = HOME + "/lib"
|
||||||
val CONFIG = HOME + "/config"
|
val CONFIG = HOME + "/config"
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
package se.scalablesolutions.akka.kernel.configuration
|
package se.scalablesolutions.akka.kernel.configuration
|
||||||
|
|
||||||
|
/*
|
||||||
import se.scalablesolutions.akka.kernel.{ActiveObject, ActiveObjectProxy}
|
import se.scalablesolutions.akka.kernel.{ActiveObject, ActiveObjectProxy}
|
||||||
import com.google.inject.{AbstractModule}
|
import com.google.inject.{AbstractModule}
|
||||||
import java.util.{List => JList, ArrayList}
|
import java.util.{List => JList, ArrayList}
|
||||||
|
|
@ -12,14 +13,8 @@ import scala.reflect.BeanProperty
|
||||||
// ============================================
|
// ============================================
|
||||||
// Java version of the configuration API
|
// Java version of the configuration API
|
||||||
|
|
||||||
/**
|
|
||||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
|
||||||
*/
|
|
||||||
sealed class ConfigurationException(msg: String) extends RuntimeException(msg)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
|
||||||
*/
|
|
||||||
sealed abstract class Configuration
|
sealed abstract class Configuration
|
||||||
|
|
||||||
class RestartStrategy(@BeanProperty val scheme: FailOverScheme, @BeanProperty val maxNrOfRetries: Int, @BeanProperty val withinTimeRange: Int) extends Configuration {
|
class RestartStrategy(@BeanProperty val scheme: FailOverScheme, @BeanProperty val maxNrOfRetries: Int, @BeanProperty val withinTimeRange: Int) extends Configuration {
|
||||||
|
|
@ -62,3 +57,4 @@ class Component(@BeanProperty val intf: Class[_],
|
||||||
@BeanProperty val timeout: Int) extends Server {
|
@BeanProperty val timeout: Int) extends Server {
|
||||||
def newWorker(proxy: ActiveObjectProxy) = se.scalablesolutions.akka.kernel.Worker(proxy.server, lifeCycle.transform)
|
def newWorker(proxy: ActiveObjectProxy) = se.scalablesolutions.akka.kernel.Worker(proxy.server, lifeCycle.transform)
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
@ -7,6 +7,7 @@ package se.scalablesolutions.akka.kernel
|
||||||
import scala.actors._
|
import scala.actors._
|
||||||
import scala.actors.Actor._
|
import scala.actors.Actor._
|
||||||
|
|
||||||
|
import se.scalablesolutions.akka.kernel.config.ScalaConfig._
|
||||||
import se.scalablesolutions.akka.kernel.Helpers._
|
import se.scalablesolutions.akka.kernel.Helpers._
|
||||||
|
|
||||||
sealed abstract class GenericServerMessage
|
sealed abstract class GenericServerMessage
|
||||||
|
|
|
||||||
|
|
@ -10,31 +10,7 @@ import scala.collection.mutable.HashMap
|
||||||
|
|
||||||
import se.scalablesolutions.akka.kernel.Helpers._
|
import se.scalablesolutions.akka.kernel.Helpers._
|
||||||
|
|
||||||
//====================================================
|
import se.scalablesolutions.akka.kernel.config.ScalaConfig._
|
||||||
|
|
||||||
/**
|
|
||||||
* Configuration classes - not to be used as messages.
|
|
||||||
*
|
|
||||||
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
|
||||||
*/
|
|
||||||
sealed abstract class ConfigElement
|
|
||||||
|
|
||||||
abstract class Server extends ConfigElement
|
|
||||||
abstract class FailOverScheme extends ConfigElement
|
|
||||||
abstract class Scope extends ConfigElement
|
|
||||||
|
|
||||||
case class SupervisorConfig(restartStrategy: RestartStrategy, worker: List[Server]) extends Server
|
|
||||||
case class Worker(serverContainer: GenericServerContainer, lifeCycle: LifeCycle) extends Server
|
|
||||||
|
|
||||||
case class RestartStrategy(scheme: FailOverScheme, maxNrOfRetries: Int, withinTimeRange: Int) extends ConfigElement
|
|
||||||
|
|
||||||
case object AllForOne extends FailOverScheme
|
|
||||||
case object OneForOne extends FailOverScheme
|
|
||||||
|
|
||||||
case class LifeCycle(scope: Scope, shutdownTime: Int) extends ConfigElement
|
|
||||||
case object Permanent extends Scope
|
|
||||||
case object Transient extends Scope
|
|
||||||
case object Temporary extends Scope
|
|
||||||
|
|
||||||
//====================================================
|
//====================================================
|
||||||
|
|
||||||
|
|
|
||||||
22
kernel/src/main/scala/camel/ActiveObjectComponent.scala
Normal file
22
kernel/src/main/scala/camel/ActiveObjectComponent.scala
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel.camel
|
||||||
|
|
||||||
|
import config.ActiveObjectGuiceConfigurator
|
||||||
|
import java.util.Map
|
||||||
|
import java.util.concurrent.{BlockingQueue, LinkedBlockingQueue}
|
||||||
|
|
||||||
|
import org.apache.camel.{Endpoint, Exchange}
|
||||||
|
import org.apache.camel.impl.DefaultComponent
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
class ActiveObjectComponent(val conf: ActiveObjectGuiceConfigurator) extends DefaultComponent {
|
||||||
|
override def createEndpoint(uri: String, remaining: String, parameters: Map[_,_]): Endpoint = {
|
||||||
|
//val consumers = getAndRemoveParameter(parameters, "concurrentConsumers", classOf[Int], 1)
|
||||||
|
new ActiveObjectEndpoint(uri, this, conf)
|
||||||
|
}
|
||||||
|
}
|
||||||
36
kernel/src/main/scala/camel/ActiveObjectConsumer.scala
Normal file
36
kernel/src/main/scala/camel/ActiveObjectConsumer.scala
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel.camel
|
||||||
|
|
||||||
|
import java.util.concurrent.{BlockingQueue, ExecutorService, Executors, ThreadFactory, TimeUnit}
|
||||||
|
|
||||||
|
import se.scalablesolutions.akka.kernel.{Logging, GenericServerContainer}
|
||||||
|
|
||||||
|
import org.apache.camel.{AsyncCallback, AsyncProcessor, Consumer, Exchange, Processor}
|
||||||
|
import org.apache.camel.impl.ServiceSupport
|
||||||
|
import org.apache.camel.impl.converter.AsyncProcessorTypeConverter
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
class ActiveObjectConsumer(
|
||||||
|
val endpoint: ActiveObjectEndpoint,
|
||||||
|
proc: Processor,
|
||||||
|
val activeObject: AnyRef)
|
||||||
|
extends ServiceSupport with Consumer with Runnable with Logging {
|
||||||
|
val processor = AsyncProcessorTypeConverter.convert(proc)
|
||||||
|
println("------- creating consumer for: "+ endpoint.uri)
|
||||||
|
|
||||||
|
override def run = {
|
||||||
|
}
|
||||||
|
|
||||||
|
def doStart() = {
|
||||||
|
}
|
||||||
|
|
||||||
|
def doStop() = {
|
||||||
|
}
|
||||||
|
|
||||||
|
override def toString(): String = "ActiveObjectConsumer [" + endpoint.getEndpointUri + "]"
|
||||||
|
}
|
||||||
47
kernel/src/main/scala/camel/ActiveObjectEndpoint.scala
Normal file
47
kernel/src/main/scala/camel/ActiveObjectEndpoint.scala
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel.camel
|
||||||
|
|
||||||
|
import config.ActiveObjectGuiceConfigurator
|
||||||
|
import se.scalablesolutions.akka.kernel.Logging
|
||||||
|
|
||||||
|
import java.util.{ArrayList, HashSet, List, Set}
|
||||||
|
import java.util.concurrent.{BlockingQueue, CopyOnWriteArraySet, LinkedBlockingQueue}
|
||||||
|
|
||||||
|
import org.apache.camel.{Component, Consumer, Exchange, Processor, Producer}
|
||||||
|
import org.apache.camel.impl.{DefaultEndpoint, DefaultComponent};
|
||||||
|
import org.apache.camel.spi.BrowsableEndpoint;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
class ActiveObjectEndpoint(val uri: String, val component: DefaultComponent, val conf: ActiveObjectGuiceConfigurator) // FIXME: need abstraction trait here
|
||||||
|
extends DefaultEndpoint(uri) with BrowsableEndpoint with Logging {
|
||||||
|
|
||||||
|
val firstSep = uri.indexOf(':')
|
||||||
|
val lastSep = uri.lastIndexOf( '.')
|
||||||
|
|
||||||
|
val scheme = uri.substring(0, firstSep)
|
||||||
|
val activeObjectName = uri.substring(uri.indexOf(':') + 1, lastSep)
|
||||||
|
val methodName = uri.substring(lastSep + 1, uri.length)
|
||||||
|
val activeObject = conf.getActiveObject(activeObjectName).asInstanceOf[MessageDriven]
|
||||||
|
// val activeObjectProxy = conf.getActiveObjectProxy(activeObjectName)
|
||||||
|
|
||||||
|
// val genericServer = supervisor.getServerOrElse(
|
||||||
|
// activeObjectName,
|
||||||
|
// throw new IllegalArgumentException("Can't find active object with name [" + activeObjectName + "] and method [" + methodName + "]"))
|
||||||
|
|
||||||
|
log.debug("Creating Camel Endpoint for scheme [%s] and component [%s]", scheme, activeObjectName)
|
||||||
|
|
||||||
|
private var queue: BlockingQueue[Exchange] = new LinkedBlockingQueue[Exchange](1000)
|
||||||
|
|
||||||
|
override def createProducer: Producer = new ActiveObjectProducer(this, activeObject)
|
||||||
|
|
||||||
|
override def createConsumer(processor: Processor): Consumer = new ActiveObjectConsumer(this, processor, activeObject)
|
||||||
|
|
||||||
|
override def getExchanges: List[Exchange] = new ArrayList[Exchange](queue)
|
||||||
|
|
||||||
|
override def isSingleton = true
|
||||||
|
}
|
||||||
43
kernel/src/main/scala/camel/ActiveObjectProducer.scala
Normal file
43
kernel/src/main/scala/camel/ActiveObjectProducer.scala
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel.camel
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.concurrent.BlockingQueue;
|
||||||
|
|
||||||
|
import se.scalablesolutions.akka.kernel.{Logging, GenericServerContainer}
|
||||||
|
|
||||||
|
import org.apache.camel.{Exchange, AsyncProcessor, AsyncCallback}
|
||||||
|
import org.apache.camel.impl.DefaultProducer
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
class ActiveObjectProducer(
|
||||||
|
val endpoint: ActiveObjectEndpoint,
|
||||||
|
val activeObject: MessageDriven)
|
||||||
|
extends DefaultProducer(endpoint) with AsyncProcessor with Logging {
|
||||||
|
private val actorName = endpoint.activeObjectName
|
||||||
|
|
||||||
|
def process(exchange: Exchange) = activeObject.onMessage(exchange) // FIXME: should we not invoke the generic server here?
|
||||||
|
|
||||||
|
def process(exchange: Exchange, callback: AsyncCallback): Boolean = {
|
||||||
|
val copy = exchange.copy
|
||||||
|
copy.setProperty("CamelAsyncCallback", callback)
|
||||||
|
activeObject.onMessage(copy)
|
||||||
|
callback.done(true)
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
|
override def doStart = {
|
||||||
|
super.doStart
|
||||||
|
}
|
||||||
|
|
||||||
|
override def doStop = {
|
||||||
|
super.doStop
|
||||||
|
}
|
||||||
|
|
||||||
|
override def toString(): String = "ActiveObjectProducer [" + endpoint.getEndpointUri + "]"
|
||||||
|
}
|
||||||
14
kernel/src/main/scala/camel/MessageDriven.scala
Normal file
14
kernel/src/main/scala/camel/MessageDriven.scala
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel.camel
|
||||||
|
|
||||||
|
import org.apache.camel.Exchange
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
trait MessageDriven {
|
||||||
|
def onMessage(exchange: Exchange)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel.camel
|
||||||
|
|
||||||
|
import org.apache.camel.impl.{DefaultCamelContext, DefaultEndpoint, DefaultComponent}
|
||||||
|
import se.scalablesolutions.akka.kernel.{Supervisor, Logging}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
class SupervisorAwareCamelContext extends DefaultCamelContext with Logging {
|
||||||
|
var supervisor: Supervisor = _
|
||||||
|
}
|
||||||
|
|
@ -296,7 +296,7 @@ class Vector[+T] private (val length: Int, shift: Int, root: Array[AnyRef], tail
|
||||||
}
|
}
|
||||||
|
|
||||||
override def equals(other: Any) = other match {
|
override def equals(other: Any) = other match {
|
||||||
case vec:Vector[T] => {
|
case vec: Vector[T] => {
|
||||||
var back = length == vec.length
|
var back = length == vec.length
|
||||||
var i = 0
|
var i = 0
|
||||||
|
|
||||||
|
|
|
||||||
188
kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala
Normal file
188
kernel/src/main/scala/config/ActiveObjectGuiceConfigurator.scala
Normal file
|
|
@ -0,0 +1,188 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel.config
|
||||||
|
|
||||||
|
import com.google.inject._
|
||||||
|
import com.google.inject.jsr250.ResourceProviderFactory
|
||||||
|
|
||||||
|
import java.lang.reflect.Method
|
||||||
|
import kernel.camel.ActiveObjectComponent
|
||||||
|
import org.apache.camel.impl.{JndiRegistry, DefaultCamelContext}
|
||||||
|
import org.apache.camel.{Endpoint, Routes}
|
||||||
|
import scala.collection.mutable.HashMap
|
||||||
|
import se.scalablesolutions.akka.kernel.ActiveObjectFactory
|
||||||
|
import se.scalablesolutions.akka.kernel.ActiveObjectProxy
|
||||||
|
import se.scalablesolutions.akka.kernel.Supervisor
|
||||||
|
import se.scalablesolutions.akka.kernel.config.ScalaConfig._
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
class ActiveObjectGuiceConfigurator extends Logging {
|
||||||
|
val AKKA_CAMEL_ROUTING_SCHEME = "akka"
|
||||||
|
|
||||||
|
private var injector: Injector = _
|
||||||
|
private var supervisor: Supervisor = _
|
||||||
|
private var restartStrategy: RestartStrategy = _
|
||||||
|
private var components: List[Component] = _
|
||||||
|
private var bindings: List[DependencyBinding] = Nil
|
||||||
|
private var configRegistry = new HashMap[Class[_], Component] // TODO is configRegistry needed?
|
||||||
|
private var activeObjectRegistry = new HashMap[String, Tuple3[Class[_], Class[_], ActiveObjectProxy]]
|
||||||
|
private var activeObjectFactory = new ActiveObjectFactory
|
||||||
|
// private var camelContext = new DefaultCamelContext();
|
||||||
|
private var modules = new java.util.ArrayList[Module]
|
||||||
|
private var methodToUriRegistry = new HashMap[Method, String]
|
||||||
|
|
||||||
|
def getExternalDependency[T](clazz: Class[T]): T = synchronized {
|
||||||
|
injector.getInstance(clazz).asInstanceOf[T]
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
def getRoutingEndpoint(uri: String): Endpoint = synchronized {
|
||||||
|
camelContext.getEndpoint(uri)
|
||||||
|
}
|
||||||
|
|
||||||
|
def getRoutingEndpoints: java.util.Collection[Endpoint] = synchronized {
|
||||||
|
camelContext.getEndpoints
|
||||||
|
}
|
||||||
|
|
||||||
|
def getRoutingEndpoints(uri: String): java.util.Collection[Endpoint] = synchronized {
|
||||||
|
camelContext.getEndpoints(uri)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Returns the active abject that has been put under supervision for the class specified.
|
||||||
|
*
|
||||||
|
* @param clazz the class for the active object
|
||||||
|
* @return the active object for the class
|
||||||
|
*/
|
||||||
|
def getActiveObject(name: String): AnyRef = synchronized {
|
||||||
|
//def getActiveObject[T](name: String): T = synchronized {
|
||||||
|
println("Looking up active object " + name)
|
||||||
|
log.debug("Looking up active object [%s]", name)
|
||||||
|
if (injector == null) throw new IllegalStateException("inject() and supervise() must be called before invoking newInstance(clazz)")
|
||||||
|
val activeObjectOption: Option[Tuple3[Class[_], Class[_], ActiveObjectProxy]] = activeObjectRegistry.get(name)
|
||||||
|
if (activeObjectOption.isDefined) {
|
||||||
|
val classInfo = activeObjectOption.get
|
||||||
|
val intfClass = classInfo._1
|
||||||
|
val implClass = classInfo._2
|
||||||
|
val activeObjectProxy = classInfo._3
|
||||||
|
//activeObjectProxy.setTargetInstance(injector.getInstance(clazz).asInstanceOf[AnyRef])
|
||||||
|
val target = implClass.newInstance
|
||||||
|
injector.injectMembers(target)
|
||||||
|
activeObjectProxy.setTargetInstance(target.asInstanceOf[AnyRef])
|
||||||
|
activeObjectFactory.newInstance(intfClass, activeObjectProxy).asInstanceOf[AnyRef]
|
||||||
|
} else throw new IllegalStateException("Class " + name + " has not been put under supervision (by passing in the config to the 'supervise') method")
|
||||||
|
}
|
||||||
|
|
||||||
|
def getActiveObjectProxy(name: String): ActiveObjectProxy = synchronized {
|
||||||
|
log.debug("Looking up active object proxy [%s]", name)
|
||||||
|
if (injector == null) throw new IllegalStateException("inject() and supervise() must be called before invoking newInstance(clazz)")
|
||||||
|
val activeObjectOption: Option[Tuple3[Class[_], Class[_], ActiveObjectProxy]] = activeObjectRegistry.get(name)
|
||||||
|
if (activeObjectOption.isDefined) activeObjectOption.get._3
|
||||||
|
else throw new IllegalStateException("Class " + name + " has not been put under supervision (by passing in the config to the 'supervise') method")
|
||||||
|
}
|
||||||
|
|
||||||
|
def configureActiveObjects(restartStrategy: RestartStrategy, components: List[Component]): ActiveObjectGuiceConfigurator = synchronized {
|
||||||
|
this.restartStrategy = restartStrategy
|
||||||
|
this.components = components.toArray.toList.asInstanceOf[List[Component]]
|
||||||
|
bindings = for (c <- this.components)
|
||||||
|
yield new DependencyBinding(c.intf, c.target) // build up the Guice interface class -> impl class bindings
|
||||||
|
val arrayList = new java.util.ArrayList[DependencyBinding]()
|
||||||
|
for (b <- bindings) arrayList.add(b)
|
||||||
|
modules.add(new ActiveObjectGuiceModule(arrayList))
|
||||||
|
this
|
||||||
|
}
|
||||||
|
|
||||||
|
def inject: ActiveObjectGuiceConfigurator = synchronized {
|
||||||
|
if (injector != null) throw new IllegalStateException("inject() has already been called on this configurator")
|
||||||
|
injector = Guice.createInjector(modules)
|
||||||
|
this
|
||||||
|
}
|
||||||
|
|
||||||
|
def supervise: ActiveObjectGuiceConfigurator = synchronized {
|
||||||
|
if (injector == null) inject
|
||||||
|
injector = Guice.createInjector(modules)
|
||||||
|
var workers = new java.util.ArrayList[Worker]
|
||||||
|
for (component <- components) {
|
||||||
|
val activeObjectProxy = new ActiveObjectProxy(component.intf, component.target, component.timeout)
|
||||||
|
workers.add(Worker(activeObjectProxy.server, component.lifeCycle))
|
||||||
|
activeObjectRegistry.put(component.name, (component.intf, component.target, activeObjectProxy))
|
||||||
|
// 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)
|
||||||
|
}
|
||||||
|
supervisor = activeObjectFactory.supervise(restartStrategy, workers)
|
||||||
|
// camelContext.addComponent(AKKA_CAMEL_ROUTING_SCHEME, new ActiveObjectComponent(this))
|
||||||
|
// camelContext.start
|
||||||
|
this
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add additional services to be wired in.
|
||||||
|
* <pre>
|
||||||
|
* ActiveObjectGuiceModule.addExternalGuiceModule(new AbstractModule {
|
||||||
|
* protected void configure() {
|
||||||
|
* bind(Foo.class).to(FooImpl.class).in(Scopes.SINGLETON);
|
||||||
|
* bind(BarImpl.class);
|
||||||
|
* link(Bar.class).to(BarImpl.class);
|
||||||
|
* bindConstant(named("port")).to(8080);
|
||||||
|
* }})
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
def addExternalGuiceModule(module: Module): ActiveObjectGuiceConfigurator = synchronized {
|
||||||
|
modules.add(module)
|
||||||
|
this
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add Camel routes for the active objects.
|
||||||
|
* <pre>
|
||||||
|
* activeObjectGuiceModule.addRoutes(new RouteBuilder() {
|
||||||
|
* def configure = {
|
||||||
|
* from("akka:actor1").to("akka:actor2")
|
||||||
|
* from("akka:actor2").process(new Processor() {
|
||||||
|
* def process(e: Exchange) = {
|
||||||
|
* println("Received exchange: " + e.getIn())
|
||||||
|
* }
|
||||||
|
* })
|
||||||
|
* }
|
||||||
|
* }).inject().supervise();
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
def addRoutes(routes: Routes): ActiveObjectGuiceConfigurator = synchronized {
|
||||||
|
camelContext.addRoutes(routes)
|
||||||
|
this
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
def getGuiceModules = modules
|
||||||
|
|
||||||
|
def reset = synchronized {
|
||||||
|
modules = new java.util.ArrayList[Module]
|
||||||
|
configRegistry = new HashMap[Class[_], Component]
|
||||||
|
activeObjectRegistry = new HashMap[String, Tuple3[Class[_], Class[_], ActiveObjectProxy]]
|
||||||
|
methodToUriRegistry = new HashMap[Method, String]
|
||||||
|
injector = null
|
||||||
|
restartStrategy = null
|
||||||
|
// camelContext = new DefaultCamelContext
|
||||||
|
}
|
||||||
|
|
||||||
|
def stop = synchronized {
|
||||||
|
// camelContext.stop
|
||||||
|
supervisor.stop
|
||||||
|
}
|
||||||
|
|
||||||
|
def registerMethodForUri(method: Method, componentName: String) =
|
||||||
|
methodToUriRegistry += method -> buildUri(method, componentName)
|
||||||
|
|
||||||
|
def lookupUriFor(method: Method): String =
|
||||||
|
methodToUriRegistry.getOrElse(method, throw new IllegalStateException("Could not find URI for method [" + method.getName + "]"))
|
||||||
|
|
||||||
|
def buildUri(method: Method, componentName: String): String =
|
||||||
|
AKKA_CAMEL_ROUTING_SCHEME + ":" + componentName + "." + method.getName
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,155 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel.config
|
||||||
|
|
||||||
|
import akka.kernel.config.JavaConfig._
|
||||||
|
import akka.kernel.{Supervisor, ActiveObjectProxy, ActiveObjectFactory}
|
||||||
|
|
||||||
|
import com.google.inject._
|
||||||
|
import com.google.inject.jsr250.ResourceProviderFactory
|
||||||
|
|
||||||
|
import java.util.{ArrayList, HashMap, Collection}
|
||||||
|
import org.apache.camel.impl.{JndiRegistry, DefaultCamelContext}
|
||||||
|
import org.apache.camel.{Endpoint, Routes}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
class ActiveObjectGuiceConfiguratorForJava {
|
||||||
|
private var modules = new ArrayList[Module]
|
||||||
|
private var injector: Injector = _
|
||||||
|
private var supervisor: Supervisor = _
|
||||||
|
private var restartStrategy: RestartStrategy = _
|
||||||
|
private var components: List[Component] = _
|
||||||
|
private var bindings: List[DependencyBinding] = Nil
|
||||||
|
private var configRegistry = new HashMap[Class[_], Component] // TODO is configRegistry needed?
|
||||||
|
private var activeObjectRegistry = new HashMap[String, Tuple2[Class[_], ActiveObjectProxy]]
|
||||||
|
private var activeObjectFactory = new ActiveObjectFactory
|
||||||
|
//private var camelContext = new DefaultCamelContext();
|
||||||
|
|
||||||
|
def getExternalDependency[T](clazz: Class[T]): T = synchronized {
|
||||||
|
injector.getInstance(clazz).asInstanceOf[T]
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
def getRoutingEndpoint(uri: String): Endpoint = synchronized {
|
||||||
|
camelContext.getEndpoint(uri)
|
||||||
|
}
|
||||||
|
|
||||||
|
def getRoutingEndpoints: Collection[Endpoint] = synchronized {
|
||||||
|
camelContext.getEndpoints
|
||||||
|
}
|
||||||
|
|
||||||
|
def getRoutingEndpoints(uri: String): Collection[Endpoint] = synchronized {
|
||||||
|
camelContext.getEndpoints(uri)
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
/**
|
||||||
|
* Returns the active abject that has been put under supervision for the class specified.
|
||||||
|
*
|
||||||
|
* @param clazz the class for the active object
|
||||||
|
* @return the active object for the class
|
||||||
|
*/
|
||||||
|
def getActiveObject[T](name: String): T = synchronized {
|
||||||
|
if (injector == null) throw new IllegalStateException("inject() and supervise() must be called before invoking newInstance(clazz)")
|
||||||
|
if (activeObjectRegistry.containsKey(name)) {
|
||||||
|
val activeObjectTuple = activeObjectRegistry.get(name)
|
||||||
|
val clazz = activeObjectTuple._1
|
||||||
|
val activeObjectProxy = activeObjectTuple._2
|
||||||
|
//activeObjectProxy.setTargetInstance(injector.getInstance(clazz).asInstanceOf[AnyRef])
|
||||||
|
val target = clazz.newInstance
|
||||||
|
injector.injectMembers(target)
|
||||||
|
activeObjectProxy.setTargetInstance(target.asInstanceOf[AnyRef])
|
||||||
|
activeObjectFactory.newInstance(clazz, activeObjectProxy).asInstanceOf[T]
|
||||||
|
} else throw new IllegalStateException("Class " + name + " has not been put under supervision (by passing in the config to the supervise() method")
|
||||||
|
}
|
||||||
|
|
||||||
|
def configureActiveObjects(restartStrategy: RestartStrategy, components: Array[Component]): ActiveObjectGuiceConfiguratorForJava = synchronized {
|
||||||
|
this.restartStrategy = restartStrategy
|
||||||
|
this.components = components.toArray.toList.asInstanceOf[List[Component]]
|
||||||
|
bindings = for (c <- this.components) yield {
|
||||||
|
new DependencyBinding(c.intf, c.target)
|
||||||
|
}
|
||||||
|
val arrayList = new ArrayList[DependencyBinding]()
|
||||||
|
for (b <- bindings) arrayList.add(b)
|
||||||
|
modules.add(new ActiveObjectGuiceModule(arrayList))
|
||||||
|
this
|
||||||
|
}
|
||||||
|
|
||||||
|
def inject(): ActiveObjectGuiceConfiguratorForJava = synchronized {
|
||||||
|
if (injector != null) throw new IllegalStateException("inject() has already been called on this configurator")
|
||||||
|
injector = Guice.createInjector(modules)
|
||||||
|
this
|
||||||
|
}
|
||||||
|
|
||||||
|
def supervise: ActiveObjectGuiceConfiguratorForJava = synchronized {
|
||||||
|
if (injector == null) inject()
|
||||||
|
injector = Guice.createInjector(modules)
|
||||||
|
val workers = new java.util.ArrayList[se.scalablesolutions.akka.kernel.config.ScalaConfig.Worker]
|
||||||
|
for (c <- components) {
|
||||||
|
val activeObjectProxy = new ActiveObjectProxy(c.intf, c.target, c.timeout)
|
||||||
|
workers.add(c.newWorker(activeObjectProxy))
|
||||||
|
activeObjectRegistry.put(c.name, (c.intf, activeObjectProxy))
|
||||||
|
// camelContext.getRegistry.asInstanceOf[JndiRegistry].bind(c.intf.getName, activeObjectProxy)
|
||||||
|
}
|
||||||
|
supervisor = activeObjectFactory.supervise(restartStrategy.transform, workers)
|
||||||
|
// camelContext.start
|
||||||
|
this
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add additional services to be wired in.
|
||||||
|
* <pre>
|
||||||
|
* ActiveObjectGuiceModule.addExternalGuiceModule(new AbstractModule {
|
||||||
|
* protected void configure() {
|
||||||
|
* bind(Foo.class).to(FooImpl.class).in(Scopes.SINGLETON);
|
||||||
|
* bind(BarImpl.class);
|
||||||
|
* link(Bar.class).to(BarImpl.class);
|
||||||
|
* bindConstant(named("port")).to(8080);
|
||||||
|
* }})
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
def addExternalGuiceModule(module: Module): ActiveObjectGuiceConfiguratorForJava = synchronized {
|
||||||
|
modules.add(module)
|
||||||
|
this
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add Camel routes for the active objects.
|
||||||
|
* <pre>
|
||||||
|
* activeObjectGuiceModule.addRoutes(new RouteBuilder() {
|
||||||
|
* def configure = {
|
||||||
|
* from("akka:actor1").to("akka:actor2")
|
||||||
|
* from("akka:actor2").process(new Processor() {
|
||||||
|
* def process(e: Exchange) = {
|
||||||
|
* println("Received exchange: " + e.getIn())
|
||||||
|
* }
|
||||||
|
* })
|
||||||
|
* }
|
||||||
|
* }).inject().supervise();
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
def addRoutes(routes: Routes): ActiveObjectGuiceConfiguratorForJava = synchronized {
|
||||||
|
camelContext.addRoutes(routes)
|
||||||
|
this
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
def getGuiceModules = modules
|
||||||
|
|
||||||
|
def reset = synchronized {
|
||||||
|
modules = new ArrayList[Module]
|
||||||
|
configRegistry = new HashMap[Class[_], Component]
|
||||||
|
activeObjectRegistry = new HashMap[String, Tuple2[Class[_], ActiveObjectProxy]]
|
||||||
|
injector = null
|
||||||
|
restartStrategy = null
|
||||||
|
//camelContext = new DefaultCamelContext
|
||||||
|
}
|
||||||
|
|
||||||
|
def stop = synchronized {
|
||||||
|
//camelContext.stop
|
||||||
|
supervisor.stop
|
||||||
|
}
|
||||||
|
}
|
||||||
93
kernel/src/main/scala/config/Config.scala
Normal file
93
kernel/src/main/scala/config/Config.scala
Normal file
|
|
@ -0,0 +1,93 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel.config
|
||||||
|
|
||||||
|
import reflect.BeanProperty
|
||||||
|
|
||||||
|
import se.scalablesolutions.akka.kernel.GenericServerContainer
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configuration classes - not to be used as messages.
|
||||||
|
*
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
object ScalaConfig {
|
||||||
|
sealed abstract class ConfigElement
|
||||||
|
|
||||||
|
abstract class Server extends ConfigElement
|
||||||
|
abstract class FailOverScheme extends ConfigElement
|
||||||
|
abstract class Scope extends ConfigElement
|
||||||
|
|
||||||
|
case class SupervisorConfig(restartStrategy: RestartStrategy, worker: List[Server]) extends Server
|
||||||
|
case class Worker(serverContainer: GenericServerContainer, lifeCycle: LifeCycle) extends Server
|
||||||
|
|
||||||
|
case class RestartStrategy(scheme: FailOverScheme, maxNrOfRetries: Int, withinTimeRange: Int) extends ConfigElement
|
||||||
|
|
||||||
|
case object AllForOne extends FailOverScheme
|
||||||
|
case object OneForOne extends FailOverScheme
|
||||||
|
|
||||||
|
case class LifeCycle(scope: Scope, shutdownTime: Int) extends ConfigElement
|
||||||
|
case object Permanent extends Scope
|
||||||
|
case object Transient extends Scope
|
||||||
|
case object Temporary extends Scope
|
||||||
|
|
||||||
|
case class Component(val name: String,
|
||||||
|
val intf: Class[_],
|
||||||
|
val target: Class[_],
|
||||||
|
val lifeCycle: LifeCycle,
|
||||||
|
val timeout: Int) extends Server
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
object JavaConfig {
|
||||||
|
sealed abstract class ConfigElement
|
||||||
|
|
||||||
|
class RestartStrategy(
|
||||||
|
@BeanProperty val scheme: FailOverScheme,
|
||||||
|
@BeanProperty val maxNrOfRetries: Int,
|
||||||
|
@BeanProperty val withinTimeRange: Int) extends ConfigElement {
|
||||||
|
def transform = se.scalablesolutions.akka.kernel.config.ScalaConfig.RestartStrategy(
|
||||||
|
scheme.transform, maxNrOfRetries, withinTimeRange)
|
||||||
|
}
|
||||||
|
class LifeCycle(@BeanProperty val scope: Scope, @BeanProperty val shutdownTime: Int) extends ConfigElement {
|
||||||
|
def transform = se.scalablesolutions.akka.kernel.config.ScalaConfig.LifeCycle(scope.transform, shutdownTime)
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class Scope extends ConfigElement {
|
||||||
|
def transform: se.scalablesolutions.akka.kernel.config.ScalaConfig.Scope
|
||||||
|
}
|
||||||
|
class Permanent extends Scope {
|
||||||
|
override def transform = se.scalablesolutions.akka.kernel.config.ScalaConfig.Permanent
|
||||||
|
}
|
||||||
|
class Transient extends Scope {
|
||||||
|
override def transform = se.scalablesolutions.akka.kernel.config.ScalaConfig.Transient
|
||||||
|
}
|
||||||
|
class Temporary extends Scope {
|
||||||
|
override def transform = se.scalablesolutions.akka.kernel.config.ScalaConfig.Temporary
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class FailOverScheme extends ConfigElement {
|
||||||
|
def transform: se.scalablesolutions.akka.kernel.config.ScalaConfig.FailOverScheme
|
||||||
|
}
|
||||||
|
class AllForOne extends FailOverScheme {
|
||||||
|
override def transform = se.scalablesolutions.akka.kernel.config.ScalaConfig.AllForOne
|
||||||
|
}
|
||||||
|
class OneForOne extends FailOverScheme {
|
||||||
|
override def transform = se.scalablesolutions.akka.kernel.config.ScalaConfig.OneForOne
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class Server extends ConfigElement
|
||||||
|
class Component(@BeanProperty val name: String,
|
||||||
|
@BeanProperty val intf: Class[_],
|
||||||
|
@BeanProperty val target: Class[_],
|
||||||
|
@BeanProperty val lifeCycle: LifeCycle,
|
||||||
|
@BeanProperty val timeout: Int) extends Server {
|
||||||
|
def newWorker(proxy: ActiveObjectProxy) =
|
||||||
|
se.scalablesolutions.akka.kernel.config.ScalaConfig.Worker(proxy.server, lifeCycle.transform)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
108
kernel/src/test/scala/CamelSpec.scala
Normal file
108
kernel/src/test/scala/CamelSpec.scala
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel
|
||||||
|
|
||||||
|
import akka.kernel.config.ActiveObjectGuiceConfigurator
|
||||||
|
import annotation.oneway
|
||||||
|
import kernel.config.ScalaConfig._
|
||||||
|
|
||||||
|
import com.google.inject.{AbstractModule, Scopes}
|
||||||
|
import com.jteigen.scalatest.JUnit4Runner
|
||||||
|
|
||||||
|
import org.junit.runner.RunWith
|
||||||
|
import org.scalatest._
|
||||||
|
import org.scalatest.matchers._
|
||||||
|
|
||||||
|
import java.util.concurrent.CountDownLatch;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import org.apache.camel.CamelContext
|
||||||
|
import org.apache.camel.Endpoint
|
||||||
|
import org.apache.camel.Exchange
|
||||||
|
import org.apache.camel.Processor
|
||||||
|
import org.apache.camel.Producer
|
||||||
|
import org.apache.camel.builder.RouteBuilder
|
||||||
|
import org.apache.camel.impl.DefaultCamelContext
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
@RunWith(classOf[JUnit4Runner])
|
||||||
|
class CamelSpec extends Spec with ShouldMatchers {
|
||||||
|
|
||||||
|
describe("A Camel routing scheme") {
|
||||||
|
it("dummy") {
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
it("should route message from actor A to actor B") {
|
||||||
|
val latch = new CountDownLatch(1);
|
||||||
|
|
||||||
|
val conf = new ActiveObjectGuiceConfigurator
|
||||||
|
conf.configureActiveObjects(
|
||||||
|
RestartStrategy(AllForOne, 3, 5000),
|
||||||
|
Component(
|
||||||
|
"camelfoo",
|
||||||
|
classOf[CamelFoo],
|
||||||
|
classOf[CamelFooImpl],
|
||||||
|
LifeCycle(Permanent, 1000),
|
||||||
|
1000) ::
|
||||||
|
Component(
|
||||||
|
"camelbar",
|
||||||
|
classOf[CamelBar],
|
||||||
|
classOf[CamelBarImpl],
|
||||||
|
LifeCycle(Permanent, 1000),
|
||||||
|
1000) ::
|
||||||
|
Nil
|
||||||
|
).addRoutes(new RouteBuilder() {
|
||||||
|
def configure = {
|
||||||
|
from("akka:camelfoo.foo").to("akka:camelbar.bar")
|
||||||
|
from("akka:camelbar.bar").process(new Processor() {
|
||||||
|
def process(e: Exchange) = {
|
||||||
|
println("Received exchange: " + e.getIn())
|
||||||
|
latch.countDown
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}}
|
||||||
|
).supervise
|
||||||
|
|
||||||
|
//val endpoint = conf.getRoutingEndpoint("akka:camelfoo.foo")
|
||||||
|
// println("----- " + endpoint)
|
||||||
|
// val exchange = endpoint.createExchange
|
||||||
|
// println("----- " + exchange)
|
||||||
|
|
||||||
|
conf.getActiveObject(classOf[CamelFooImpl].getName).asInstanceOf[CamelFoo].foo("Hello Foo")
|
||||||
|
|
||||||
|
//
|
||||||
|
// exchange.getIn().setHeader("cheese", 123)
|
||||||
|
// exchange.getIn().setBody("body")
|
||||||
|
//
|
||||||
|
// val producer = endpoint.createProducer
|
||||||
|
// println("----- " + producer)
|
||||||
|
//
|
||||||
|
// producer.process(exchange)
|
||||||
|
//
|
||||||
|
// // now lets sleep for a while
|
||||||
|
// val received = latch.await(5, TimeUnit.SECONDS)
|
||||||
|
// received should equal (true)
|
||||||
|
//
|
||||||
|
// conf.stop
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
trait CamelFoo {
|
||||||
|
@oneway def foo(msg: String)
|
||||||
|
}
|
||||||
|
trait CamelBar {
|
||||||
|
def bar(msg: String): String
|
||||||
|
}
|
||||||
|
|
||||||
|
class CamelFooImpl extends CamelFoo {
|
||||||
|
def foo(msg: String) = println("CamelFoo.foo:" + msg)
|
||||||
|
}
|
||||||
|
class CamelBarImpl extends CamelBar {
|
||||||
|
def bar(msg: String) = msg + "return_bar "
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
package se.scalablesolutions.akka.kernel
|
package se.scalablesolutions.akka.kernel
|
||||||
|
|
||||||
|
import se.scalablesolutions.akka.kernel.config.ScalaConfig.{SupervisorConfig, Worker, LifeCycle, RestartStrategy, OneForOne, AllForOne, Permanent}
|
||||||
import scala.actors._
|
import scala.actors._
|
||||||
import scala.actors.Actor._
|
import scala.actors.Actor._
|
||||||
import scala.collection.Map
|
import scala.collection.Map
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,9 @@
|
||||||
package se.scalablesolutions.akka.kernel
|
package se.scalablesolutions.akka.kernel
|
||||||
|
|
||||||
import com.jteigen.scalatest.JUnit4Runner
|
import com.jteigen.scalatest.JUnit4Runner
|
||||||
|
import config.ScalaConfig.{SupervisorConfig, RestartStrategy, Worker, LifeCycle, AllForOne, Permanent}
|
||||||
|
|
||||||
|
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.scalatest._
|
import org.scalatest._
|
||||||
|
|
||||||
|
|
|
||||||
BIN
lib/camel-core-2.0-SNAPSHOT.jar
Normal file
BIN
lib/camel-core-2.0-SNAPSHOT.jar
Normal file
Binary file not shown.
BIN
lib/cassandra-0.3.0-dev.jar
Normal file
BIN
lib/cassandra-0.3.0-dev.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
9
util-java/.classpath
Normal file
9
util-java/.classpath
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<classpath>
|
||||||
|
<classpathentry kind="src" path="src/main/java"/>
|
||||||
|
<classpathentry kind="lib" path="target/akka-util-java-0.1.jar"/>
|
||||||
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||||
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/guice-core-2.0-SNAPSHOT.jar"/>
|
||||||
|
<classpathentry kind="lib" path="/Users/jboner/src/scala/akka/lib/guice-jsr250-2.0-SNAPSHOT.jar"/>
|
||||||
|
<classpathentry kind="output" path="target/classes"/>
|
||||||
|
</classpath>
|
||||||
17
util-java/.project
Normal file
17
util-java/.project
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>util-java</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
||||||
21
util-java/akka-util-java.iml
Normal file
21
util-java/akka-util-java.iml
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module relativePaths="true" MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
|
||||||
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.guiceyfruit:guice-core:2.0-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: com.google.code.google-collections:google-collect:snapshot-20080530" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: cglib:cglib:2.2" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: asm:asm:3.1" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: aopalliance:aopalliance:1.0" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: org.guiceyfruit:guice-jsr250:2.0-SNAPSHOT" level="project" />
|
||||||
|
<orderEntry type="library" exported="" name="Maven: javax.annotation:jsr250-api:1.0" level="project" />
|
||||||
|
</component>
|
||||||
|
</module>
|
||||||
|
|
||||||
|
|
@ -13,6 +13,19 @@
|
||||||
<version>${akka.version}</version>
|
<version>${akka.version}</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.guiceyfruit</groupId>
|
||||||
|
<artifactId>guice-core</artifactId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.guiceyfruit</groupId>
|
||||||
|
<artifactId>guice-jsr250</artifactId>
|
||||||
|
<version>2.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<sourceDirectory>src/main/java</sourceDirectory>
|
<sourceDirectory>src/main/java</sourceDirectory>
|
||||||
<testSourceDirectory>src/test/java</testSourceDirectory>
|
<testSourceDirectory>src/test/java</testSourceDirectory>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel.config;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.google.inject.AbstractModule;
|
||||||
|
import com.google.inject.Singleton;
|
||||||
|
import com.google.inject.jsr250.ResourceProviderFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
public class ActiveObjectGuiceModule extends AbstractModule {
|
||||||
|
private final List<DependencyBinding> bindings;
|
||||||
|
|
||||||
|
public ActiveObjectGuiceModule(final List<DependencyBinding> bindings) {
|
||||||
|
this.bindings = bindings;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void configure() {
|
||||||
|
bind(ResourceProviderFactory.class);
|
||||||
|
for (int i = 0; i < bindings.size(); i++) {
|
||||||
|
final DependencyBinding db = bindings.get(i);
|
||||||
|
bind((Class) db.getInterface()).to((Class) db.getTarget()).in(Singleton.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
/**
|
||||||
|
* Copyright (C) 2009 Scalable Solutions.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package se.scalablesolutions.akka.kernel.config;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="http://jonasboner.com">Jonas Bonér</a>
|
||||||
|
*/
|
||||||
|
public class DependencyBinding {
|
||||||
|
private final Class intf;
|
||||||
|
private final Class target;
|
||||||
|
|
||||||
|
public DependencyBinding(final Class intf, final Class target) {
|
||||||
|
this.intf = intf;
|
||||||
|
this.target = target;
|
||||||
|
}
|
||||||
|
public Class getInterface() {
|
||||||
|
return intf;
|
||||||
|
}
|
||||||
|
public Class getTarget() {
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,12 +1,32 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<module relativePaths="true" type="JAVA_MODULE" version="4">
|
<module relativePaths="true" MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_5" inherit-compiler-output="false">
|
||||||
<exclude-output />
|
<output url="file://$MODULE_DIR$/target/classes" />
|
||||||
|
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
||||||
|
<excludeFolder url="file://$MODULE_DIR$/target" />
|
||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="module-library">
|
||||||
|
<library>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MODULE_DIR$/../lib/guice-core-2.0-SNAPSHOT.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</orderEntry>
|
||||||
|
<orderEntry type="module-library">
|
||||||
|
<library>
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$MODULE_DIR$/../lib/guice-jsr250-2.0-SNAPSHOT.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES />
|
||||||
|
</library>
|
||||||
|
</orderEntry>
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue