Ensure that injector is not used in Akka constructors to avoid "cannot 
serialize injector" errors


Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/d2153285
Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/d2153285
Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/d2153285

Branch: refs/heads/master
Commit: d2153285dae4c9257f3b62ab533186f31f770926
Parents: fe08fa7
Author: Dave Johnson <[email protected]>
Authored: Wed Oct 5 17:41:26 2016 -0400
Committer: Dave Johnson <[email protected]>
Committed: Wed Oct 5 17:41:26 2016 -0400

----------------------------------------------------------------------
 .../persistence/actorsystem/GuiceActorProducer.java |  8 ++++----
 .../uniquevalues/UniqueValuesServiceImpl.java       |  2 +-
 .../distributed/actors/QueueTimeouterTest.java      | 16 +++++++++-------
 .../distributed/actors/ShardAllocatorTest.java      |  4 ++--
 4 files changed, 16 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2153285/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/GuiceActorProducer.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/GuiceActorProducer.java
 
b/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/GuiceActorProducer.java
index 9304c4c..d73f760 100644
--- 
a/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/GuiceActorProducer.java
+++ 
b/stack/corepersistence/actorsystem/src/main/java/org/apache/usergrid/persistence/actorsystem/GuiceActorProducer.java
@@ -25,11 +25,11 @@ import com.google.inject.Injector;
 
 public class GuiceActorProducer implements IndirectActorProducer {
 
-    final Injector injector;
+    public static Injector INJECTOR = null;
+
     final Class<? extends Actor> actorClass;
 
-    public GuiceActorProducer(Injector injector, Class<? extends Actor> 
actorClass) {
-        this.injector = injector;
+    public GuiceActorProducer(Class<? extends Actor> actorClass) {
         this.actorClass = actorClass;
     }
 
@@ -40,7 +40,7 @@ public class GuiceActorProducer implements 
IndirectActorProducer {
 
     @Override
     public Actor produce() {
-        return injector.getInstance( actorClass );
+        return INJECTOR.getInstance( actorClass );
     }
 }
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2153285/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceImpl.java
 
b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceImpl.java
index 8bdb02c..08de853 100644
--- 
a/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceImpl.java
+++ 
b/stack/corepersistence/collection/src/main/java/org/apache/usergrid/persistence/collection/uniquevalues/UniqueValuesServiceImpl.java
@@ -292,7 +292,7 @@ public class UniqueValuesServiceImpl implements 
UniqueValuesService {
             ClusterSingletonManagerSettings.create( system ).withRole("io");
 
         system.actorOf( ClusterSingletonManager.props(
-            Props.create( GuiceActorProducer.class, injector, 
UniqueValuesRouter.class ),
+            Props.create( GuiceActorProducer.class, UniqueValuesRouter.class ),
             PoisonPill.getInstance(), settings ), "uvRouter" );
 
         ClusterSingletonProxySettings proxySettings =

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2153285/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/distributed/actors/QueueTimeouterTest.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/distributed/actors/QueueTimeouterTest.java
 
b/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/distributed/actors/QueueTimeouterTest.java
index 3079773..3bf87a6 100644
--- 
a/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/distributed/actors/QueueTimeouterTest.java
+++ 
b/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/distributed/actors/QueueTimeouterTest.java
@@ -31,6 +31,7 @@ import org.apache.usergrid.persistence.qakka.App;
 import org.apache.usergrid.persistence.qakka.QakkaFig;
 import org.apache.usergrid.persistence.qakka.core.CassandraClient;
 import org.apache.usergrid.persistence.qakka.core.CassandraClientImpl;
+import 
org.apache.usergrid.persistence.qakka.distributed.DistributedQueueService;
 import 
org.apache.usergrid.persistence.qakka.distributed.messages.QueueTimeoutRequest;
 import 
org.apache.usergrid.persistence.qakka.serialization.MultiShardMessageIterator;
 import org.apache.usergrid.persistence.qakka.serialization.sharding.Shard;
@@ -58,14 +59,15 @@ public class QueueTimeouterTest extends AbstractTest {
     @Test
     public void testBasicOperation() throws Exception {
 
-        CassandraClient cassandraClient = getInjector().getInstance( 
CassandraClientImpl.class );
-
         Injector injector = getInjector();
 
-        QakkaFig qakkaFig             = getInjector().getInstance( 
QakkaFig.class );
-        ActorSystemFig actorSystemFig = getInjector().getInstance( 
ActorSystemFig.class );
-        QueueMessageSerialization qms = getInjector().getInstance( 
QueueMessageSerialization.class );
-        ShardSerialization shardSerialization = getInjector().getInstance( 
ShardSerialization.class );
+        injector.getInstance( DistributedQueueService.class ); // init the 
INJECTOR
+
+        CassandraClient cassandraClient = injector.getInstance( 
CassandraClientImpl.class );
+        QakkaFig qakkaFig             = injector.getInstance( QakkaFig.class );
+        ActorSystemFig actorSystemFig = injector.getInstance( 
ActorSystemFig.class );
+        QueueMessageSerialization qms = injector.getInstance( 
QueueMessageSerialization.class );
+        ShardSerialization shardSerialization = injector.getInstance( 
ShardSerialization.class );
 
         // create records in inflight table, with some being old enough to 
time out
 
@@ -113,7 +115,7 @@ public class QueueTimeouterTest extends AbstractTest {
 
         ActorSystem system = ActorSystem.create("Test-" + queueName);
         ActorRef timeouterRef = system.actorOf( Props.create(
-            GuiceActorProducer.class, injector, QueueTimeouter.class), 
"timeouter");
+            GuiceActorProducer.class, QueueTimeouter.class), "timeouter");
         QueueTimeoutRequest qtr = new QueueTimeoutRequest( queueName );
         timeouterRef.tell( qtr, null ); // tell sends message, returns 
immediately
 

http://git-wip-us.apache.org/repos/asf/usergrid/blob/d2153285/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/distributed/actors/ShardAllocatorTest.java
----------------------------------------------------------------------
diff --git 
a/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/distributed/actors/ShardAllocatorTest.java
 
b/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/distributed/actors/ShardAllocatorTest.java
index c6831b7..919673c 100644
--- 
a/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/distributed/actors/ShardAllocatorTest.java
+++ 
b/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/distributed/actors/ShardAllocatorTest.java
@@ -69,7 +69,7 @@ public class ShardAllocatorTest extends AbstractTest {
 
         CassandraClient cassandraClient = injector.getInstance( 
CassandraClientImpl.class );
 
-        injector.getInstance( App.class ); // init the INJECTOR
+        injector.getInstance( DistributedQueueService.class ); // init the 
INJECTOR
 
         ShardSerialization shardSer = injector.getInstance( 
ShardSerialization.class );
         QakkaFig qakkaFig           = injector.getInstance( QakkaFig.class );
@@ -113,7 +113,7 @@ public class ShardAllocatorTest extends AbstractTest {
 
         ActorSystem system = ActorSystem.create("Test-" + queueName);
         ActorRef shardAllocRef = system.actorOf( Props.create(
-            GuiceActorProducer.class, injector, ShardAllocator.class), 
"shardallocator");
+            GuiceActorProducer.class, ShardAllocator.class), "shardallocator");
 
         ShardCheckRequest checkRequest = new ShardCheckRequest( queueName );
         shardAllocRef.tell( checkRequest, null ); // tell sends message, 
returns immediately

Reply via email to