added support for finding actor by id in the actor registry + made senderFuture available to user code

This commit is contained in:
jboner 2009-11-02 20:14:42 +01:00
parent ff83935041
commit ef2e44e5bd
5 changed files with 182 additions and 157 deletions

View file

@ -71,26 +71,31 @@ trait Actor extends Logging with TransactionManagement {
private var _hotswap: Option[PartialFunction[Any, Unit]] = None
private var _config: Option[AnyRef] = None
private val _remoteFlagLock = new ReadWriteLock
private var _senderFuture: Option[CompletableFutureResult] = None
private var _remoteAddress: Option[InetSocketAddress] = None
private[akka] val _linkedActors = new HashSet[Actor]
private[akka] var _mailbox: MessageQueue = _
private[akka] var _supervisor: Option[Actor] = None
/**
* This field should normally not be touched by user code, which should instead use the 'reply' method.
* But it can be used for advanced use-cases when one might want to store away the future and
* resolve it later and/or somewhere else.
*/
protected var senderFuture: Option[CompletableFutureResult] = None
// ====================================
// ==== USER CALLBACKS TO OVERRIDE ====
// ====================================
/**
* User overridable callback/setting.
* User overridable callback/setting.
*
* Identifier for actor, does not have to be a unique one. Default is the class name.
*
* This field is used for logging etc. but also as the identifier for persistence, which means that you can
* use a custom name to be able to retrieve the "correct" persisted state upon restart, remote restart etc.
*/
protected[this] var id: String = this.getClass.toString
protected[akka] var id: String = this.getClass.toString
/**
* User overridable callback/setting.
@ -102,15 +107,19 @@ trait Actor extends Logging with TransactionManagement {
/**
* User overridable callback/setting.
*
* User can (and is encouraged to) override the default configuration so it fits the specific use-case that the actor is used for.
* User can (and is encouraged to) override the default configuration (newEventBasedThreadPoolDispatcher)
* so it fits the specific use-case that the actor is used for.
* <p/>
* It is beneficial to have actors share the same dispatcher, easily +100 actors can share the same.
* <br/>
* But if you are running many many actors then it can be a good idea to have split them up in terms of dispatcher sharing.
* But if you are running many many actors then it can be a good idea to have split them up in terms of
* dispatcher sharing.
* <br/>
* Default is that all actors that are created and spawned from within this actor is sharing the same dispatcher as its creator.
* Default is that all actors that are created and spawned from within this actor is sharing the same
* dispatcher as its creator.
* <pre>
* dispatcher = Dispatchers.newEventBasedThreadPoolDispatcher
* val dispatcher = Dispatchers.newEventBasedThreadPoolDispatcher
* dispatcher
* .withNewThreadPoolWithBoundedBlockingQueue(100)
* .setCorePoolSize(16)
* .setMaxPoolSize(128)
@ -318,7 +327,7 @@ trait Actor extends Logging with TransactionManagement {
* Does only work together with the actor <code>!!</code> method and/or active objects not annotated
* with <code>@oneway</code>.
*/
protected[this] def reply(message: AnyRef) = _senderFuture match {
protected[this] def reply(message: AnyRef) = senderFuture match {
case None => throw new IllegalStateException(
"\n\tNo sender in scope, can't reply. " +
"\n\tHave you used the '!' message send or the '@oneway' active object annotation? " +
@ -367,8 +376,11 @@ trait Actor extends Logging with TransactionManagement {
}
/**
* Links an other actor to this actor. Links are unidirectional and means that a the linking actor will receive a notification nif the linked actor has crashed.
* If the 'trapExit' flag has been set then it will 'trap' the failure and automatically restart the linked actors according to the restart strategy defined by the 'faultHandler'.
* Links an other actor to this actor. Links are unidirectional and means that a the linking actor will
* receive a notification if the linked actor has crashed.
* <p/>
* If the 'trapExit' member field has been set to 'true' then it will 'trap' the failure and automatically
* restart the linked actors according to the restart strategy defined by the 'faultHandler'.
* <p/>
* To be invoked from within the actor itself.
*/
@ -530,7 +542,7 @@ trait Actor extends Logging with TransactionManagement {
val message = messageHandle.message //serializeMessage(messageHandle.message)
val future = messageHandle.future
try {
_senderFuture = future
senderFuture = future
if (base.isDefinedAt(message)) base(message) // invoke user actor's receive partial function
else throw new IllegalArgumentException("No handler matching message [" + message + "] in " + toString)
} catch {
@ -561,9 +573,9 @@ trait Actor extends Logging with TransactionManagement {
}
try {
_senderFuture = future
senderFuture = future
if (isTransactionRequiresNew && !isTransactionInScope) {
if (_senderFuture.isEmpty) throw new StmException(
if (senderFuture.isEmpty) throw new StmException(
"\n\tCan't continue transaction in a one-way fire-forget message send" +
"\n\tE.g. using Actor '!' method or Active Object 'void' method" +
"\n\tPlease use the Actor '!!', '!?' methods or Active Object method with non-void return type")

View file

@ -9,27 +9,38 @@ import se.scalablesolutions.akka.util.Logging
import scala.collection.mutable.HashMap
/**
* Registry holding all actor instances, mapped by class.
* Registry holding all actor instances, mapped by class and the actor's id field (which can be set by user-code).
*
* @author <a href="http://jonasboner.com">Jonas Bon&#233;r</a>
*/
object ActorRegistry extends Logging {
private val actors = new HashMap[String, List[Actor]]
private val actorsByClassName = new HashMap[String, List[Actor]]
private val actorsById = new HashMap[String, List[Actor]]
def actorsFor(clazz: Class[_]): List[Actor] = actorsFor(clazz.getName)
def actorsFor(fqn : String): List[Actor] = synchronized {
actors.get(fqn) match {
def actorsFor(clazz: Class[_ <: Actor]): List[Actor] = synchronized {
actorsByClassName.get(clazz.getName) match {
case None => Nil
case Some(instances) => instances
}
}
def actorsFor(id : String): List[Actor] = synchronized {
actorsById.get(id) match {
case None => Nil
case Some(instances) => instances
}
}
def register(actor: Actor) = synchronized {
val name = actor.getClass.getName
actors.get(name) match {
case Some(instances) => actors + (name -> (actor :: instances))
case None => actors + (name -> (actor :: Nil))
val className = actor.getClass.getName
actorsByClassName.get(className) match {
case Some(instances) => actorsByClassName + (className -> (actor :: instances))
case None => actorsByClassName + (className -> (actor :: Nil))
}
val id = actor.getClass.getName
actorsById.get(id) match {
case Some(instances) => actorsById + (id -> (actor :: instances))
case None => actorsById + (id -> (actor :: Nil))
}
}
}

View file

@ -136,6 +136,7 @@
<facet-type id="web">
<modules>
<module name="akka-samples-lift" />
<module name="akka-samples-security" />
</modules>
</facet-type>
</autodetection-disabled>

261
akka.iws
View file

@ -5,19 +5,14 @@
</component>
<component name="ChangeListManager" verified="true">
<list default="true" readonly="true" id="188c966f-a83c-4d3a-9128-54d5a2947a12" name="Default" comment="">
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka-rest/src/main/scala/ActorComponentProviderFactory.scala" afterPath="$PROJECT_DIR$/akka-rest/src/main/scala/ActorComponentProviderFactory.scala" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/config/akka-reference.conf" afterPath="$PROJECT_DIR$/config/akka-reference.conf" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka-kernel/src/main/scala/AkkaServlet.scala" afterPath="$PROJECT_DIR$/akka-kernel/src/main/scala/AkkaServlet.scala" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka-persistence/src/main/scala/CassandraStorage.scala" afterPath="$PROJECT_DIR$/akka-persistence/src/main/scala/CassandraStorage.scala" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka-kernel/src/main/scala/Kernel.scala" afterPath="$PROJECT_DIR$/akka-kernel/src/main/scala/Kernel.scala" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/RestTest.java" afterPath="$PROJECT_DIR$/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/RestTest.java" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala" afterPath="$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka-actors/src/main/scala/actor/ActorRegistry.scala" afterPath="$PROJECT_DIR$/akka-actors/src/main/scala/actor/ActorRegistry.scala" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka.ipr" afterPath="$PROJECT_DIR$/akka.ipr" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/config/storage-conf.xml" afterPath="$PROJECT_DIR$/config/storage-conf.xml" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka.iws" afterPath="$PROJECT_DIR$/akka.iws" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka-persistence/src/main/scala/CassandraSession.scala" afterPath="$PROJECT_DIR$/akka-persistence/src/main/scala/CassandraSession.scala" />
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/akka-actors/src/main/scala/stm/TransactionalState.scala" afterPath="$PROJECT_DIR$/akka-actors/src/main/scala/stm/TransactionalState.scala" />
</list>
<ignored path=".idea/workspace.xml" />
<ignored path="akka.iws" />
<ignored path=".idea/workspace.xml" />
<option name="TRACKING_ENABLED" value="true" />
<option name="SHOW_DIALOG" value="true" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -111,37 +106,37 @@
</provider>
</entry>
</file>
<file leaf-file-name="jndi.properties" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config/jndi.properties">
<file leaf-file-name="Actor.scala" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<state line="577" column="25" selection-start="21791" selection-end="21791" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="log4j.properties" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config/log4j.properties">
<file leaf-file-name="Transaction.scala" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/stm/Transaction.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<state line="167" column="0" selection-start="6138" selection-end="6138" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="multiverse-properties-reference.txt" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/config/multiverse-properties-reference.txt">
<file leaf-file-name="TransactionalState.scala" pinned="false" current="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/stm/TransactionalState.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<state line="79" column="0" selection-start="1902" selection-end="1902" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
</file>
<file leaf-file-name="storage-conf.xml" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/config/storage-conf.xml">
<file leaf-file-name="ActorRegistry.scala" pinned="false" current="true" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/actor/ActorRegistry.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="269" column="0" selection-start="12455" selection-end="12455" vertical-scroll-proportion="0.89204544">
<state line="16" column="52" selection-start="461" selection-end="461" vertical-scroll-proportion="0.1957672">
<folding />
</state>
</provider>
@ -162,10 +157,7 @@
<component name="IdeDocumentHistory">
<option name="changedFiles">
<list>
<option value="$PROJECT_DIR$/config/multiverse-properties-reference.txt" />
<option value="$PROJECT_DIR$/akka-util/src/main/scala/Config.scala" />
<option value="$PROJECT_DIR$/pom.xml" />
<option value="$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala" />
<option value="$PROJECT_DIR$/config/akka.conf" />
<option value="$PROJECT_DIR$/akka-persistence/src/main/scala/PersistentState.scala" />
<option value="$PROJECT_DIR$/akka-actors/src/main/scala/stm/TransactionalState.scala" />
@ -178,6 +170,9 @@
<option value="$PROJECT_DIR$/akka-persistence/src/main/scala/CassandraSession.scala" />
<option value="$PROJECT_DIR$/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/RestTest.java" />
<option value="$PROJECT_DIR$/config/storage-conf.xml" />
<option value="$PROJECT_DIR$/akka-actors/src/main/scala/stm/Transaction.scala" />
<option value="$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala" />
<option value="$PROJECT_DIR$/akka-actors/src/main/scala/actor/ActorRegistry.scala" />
</list>
</option>
</component>
@ -233,6 +228,32 @@
<sortByType />
</navigator>
<panes>
<pane id="Scope">
<subPane subId="Problems">
<PATH>
<PATH_ELEMENT USER_OBJECT="Root">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="akka-fun-test-java">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="akka-fun-test-java">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="src/test/java">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="se/scalablesolutions/akka/api">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="ProjectPane">
<subPane>
<PATH>
@ -533,6 +554,36 @@
<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" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
<PATH_ELEMENT>
<option name="myItemId" value="akka-actors" />
<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="stm" />
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
</PATH_ELEMENT>
</PATH>
<PATH>
<PATH_ELEMENT>
<option name="myItemId" value="akka" />
@ -613,36 +664,10 @@
</PATH>
</subPane>
</pane>
<pane id="Favorites" />
<pane id="Scope">
<subPane subId="Problems">
<PATH>
<PATH_ELEMENT USER_OBJECT="Root">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="akka-fun-test-java">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="akka-fun-test-java">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="src/test/java">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
<PATH_ELEMENT USER_OBJECT="se/scalablesolutions/akka/api">
<option name="myItemId" value="" />
<option name="myItemType" value="" />
</PATH_ELEMENT>
</PATH>
</subPane>
</pane>
<pane id="PackagesPane">
<subPane />
</pane>
<pane id="Favorites" />
</panes>
</component>
<component name="PropertiesComponent">
@ -1087,11 +1112,11 @@
<list size="7">
<item index="0" class="java.lang.String" itemvalue="JUnit.InMemNestedStateTest.testMapShouldNotRollbackStateForStatefulServerInCaseOfSuccess" />
<item index="1" class="java.lang.String" itemvalue="JUnit.InMemNestedStateTest.testRefShouldNotRollbackStateForStatefulServerInCaseOfSuccess" />
<item index="2" class="java.lang.String" itemvalue="JUnit.RemoteInMemoryStateTest" />
<item index="3" class="java.lang.String" itemvalue="JUnit.InMemoryActorSpec" />
<item index="4" class="java.lang.String" itemvalue="JUnit.InMemoryStateTest" />
<item index="5" class="java.lang.String" itemvalue="JUnit.InMemNestedStateTest" />
<item index="6" class="java.lang.String" itemvalue="JUnit.InMemoryStateTest.testMapShouldRollbackStateForStatefulServerInCaseOfFailure" />
<item index="2" class="java.lang.String" itemvalue="JUnit.InMemoryStateTest.testMapShouldRollbackStateForStatefulServerInCaseOfFailure" />
<item index="3" class="java.lang.String" itemvalue="JUnit.RemoteInMemoryStateTest" />
<item index="4" class="java.lang.String" itemvalue="JUnit.InMemoryActorSpec" />
<item index="5" class="java.lang.String" itemvalue="JUnit.InMemoryStateTest" />
<item index="6" class="java.lang.String" itemvalue="JUnit.InMemNestedStateTest" />
</list>
<configuration name="&lt;template&gt;" type="WebApp" default="true" selected="false">
<Host>localhost</Host>
@ -1132,17 +1157,15 @@
</option>
</component>
<component name="ToolWindowManager">
<frame x="3" y="22" width="1916" height="1178" extended-state="6" />
<frame x="4" y="22" width="1436" height="878" extended-state="6" />
<editor active="true" />
<layout>
<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="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="5" side_tool="false" />
<window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" />
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" />
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.2561629" sideWeight="0.7020295" order="0" side_tool="false" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2915129" sideWeight="0.5" 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.17893218" sideWeight="0.7020295" 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.25" sideWeight="0.5" order="1" side_tool="true" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32564574" 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="7" 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="4" side_tool="false" />
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" />
@ -1154,6 +1177,8 @@
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32908162" sideWeight="0.5" order="11" side_tool="false" />
<window_info id="Web Preview" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" />
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" />
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.2915129" sideWeight="0.5" order="1" side_tool="false" />
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32564574" sideWeight="0.5" order="12" 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="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" />
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" />
@ -1191,116 +1216,92 @@
<option name="FILTER_TARGETS" value="false" />
</component>
<component name="editorHistoryManager">
<entry file="jar://$MAVEN_REPOSITORY$/org/scala-tools/javautils/2.7.4-0.1/javautils-2.7.4-0.1.jar!/org/scala_tools/javautils/Implicits.class">
<provider selected="true" editor-type-id="text-editor">
<state line="1" column="79" selection-start="113" selection-end="113" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="jar://$MAVEN_REPOSITORY$/org/scala-tools/javautils/2.7.4-0.1/javautils-2.7.4-0.1.jar!/org/scala_tools/javautils/Imports.class">
<provider selected="true" editor-type-id="text-editor">
<state line="1" column="72" selection-start="106" selection-end="106" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-kernel/src/main/scala/Kernel.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="112" column="0" selection-start="4153" selection-end="4153" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-rest/src/main/scala/ActorComponentProviderFactory.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="6" column="0" selection-start="91" selection-end="91" vertical-scroll-proportion="0.0">
<folding />
</state>
<state line="6" column="0" selection-start="91" selection-end="91" vertical-scroll-proportion="0.0" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-kernel/src/main/scala/AkkaServlet.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="35" column="91" selection-start="1421" selection-end="1421" vertical-scroll-proportion="0.0">
<folding />
</state>
<state line="35" column="91" selection-start="1421" selection-end="1421" vertical-scroll-proportion="0.0" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-persistence/src/main/scala/CassandraSession.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="11" column="28" selection-start="311" selection-end="311" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="155" column="51" selection-start="5945" selection-end="5984" vertical-scroll-proportion="0.0">
<folding />
</state>
<state line="11" column="28" selection-start="311" selection-end="311" vertical-scroll-proportion="0.0" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-amqp/src/main/scala/AMQP.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="424" column="47" selection-start="15894" selection-end="15925" vertical-scroll-proportion="0.96241343">
<folding />
</state>
<state line="424" column="47" selection-start="15894" selection-end="15925" vertical-scroll-proportion="0.96241343" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/RestTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="62" column="53" selection-start="1723" selection-end="1723" vertical-scroll-proportion="0.57575756">
<folding>
<element signature="imports" expanded="true" />
</folding>
</state>
<state line="62" column="53" selection-start="1723" selection-end="1723" vertical-scroll-proportion="0.57575756" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/RemotePersistentStateTest.java">
<provider selected="true" editor-type-id="text-editor">
<state line="11" column="13" selection-start="243" selection-end="243" vertical-scroll-proportion="0.0">
<folding />
</state>
<state line="11" column="13" selection-start="243" selection-end="243" vertical-scroll-proportion="0.0" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-fun-test-java/src/test/java/se/scalablesolutions/akka/api/ProtobufProtocol.proto">
<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>
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-fun-test-java/testng.xml">
<entry file="file://$PROJECT_DIR$/config/storage-conf.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$/config/jndi.properties">
<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$/config/log4j.properties">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<state line="85" column="6" selection-start="4180" selection-end="4180" vertical-scroll-proportion="0.25132275">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/multiverse-properties-reference.txt">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/log4j.properties">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/jndi.properties">
<provider selected="true" editor-type-id="text-editor">
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-fun-test-java/testng.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" />
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/stm/Transaction.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="167" column="0" selection-start="6138" selection-end="6138" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/config/storage-conf.xml">
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/stm/TransactionalState.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="269" column="0" selection-start="12455" selection-end="12455" vertical-scroll-proportion="0.89204544">
<state line="79" column="0" selection-start="1902" selection-end="1902" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/actor/Actor.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="577" column="25" selection-start="21791" selection-end="21791" vertical-scroll-proportion="0.0">
<folding />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/akka-actors/src/main/scala/actor/ActorRegistry.scala">
<provider selected="true" editor-type-id="text-editor">
<state line="16" column="52" selection-start="461" selection-end="461" vertical-scroll-proportion="0.1957672">
<folding />
</state>
</provider>

View file

@ -82,8 +82,8 @@ one logical cluster from joining any other cluster. -->
<ColumnFamily CompareWith="UTF8Type" Name="ref"/>
<!--ColumnFamily CompareWith="UTF8Type" Name="Standard1" FlushPeriodInMinutes="60"/>
<ColumnFamily CompareWith="TimeUUIDType" Name="StandardByUUID1"/>
<ColumnFamily ColumnType="Super" CompareWith="UTF8Type" CompareSubcolumnsWith="UTF8Type" Name="Super1"/-->
<ColumnFamily CompareWith="TimeUUIDType" Name="StandardByUUID1"/>
<ColumnFamily ColumnType="Super" CompareWith="UTF8Type" CompareSubcolumnsWith="UTF8Type" Name="Super1"/-->
</Keyspace>
</Keyspaces>