Repository: incubator-tephra
Updated Branches:
  refs/heads/master b1220ce67 -> b9eae01f3


Make TransactionManager Singleton for in-memory and local bindings.

This closes #7

Signed-off-by: poorna <[email protected]>


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

Branch: refs/heads/master
Commit: b9eae01f3f92f70cf61646da86234a8acf370a5f
Parents: b1220ce
Author: Ali Anwar <[email protected]>
Authored: Thu Sep 8 20:45:15 2016 -0700
Committer: poorna <[email protected]>
Committed: Thu Sep 8 21:42:02 2016 -0700

----------------------------------------------------------------------
 .../apache/tephra/runtime/TransactionInMemoryModule.java    | 9 ++-------
 .../org/apache/tephra/runtime/TransactionLocalModule.java   | 9 ++++-----
 2 files changed, 6 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/b9eae01f/tephra-core/src/main/java/org/apache/tephra/runtime/TransactionInMemoryModule.java
----------------------------------------------------------------------
diff --git 
a/tephra-core/src/main/java/org/apache/tephra/runtime/TransactionInMemoryModule.java
 
b/tephra-core/src/main/java/org/apache/tephra/runtime/TransactionInMemoryModule.java
index 1b9032c..0c5a3f3 100644
--- 
a/tephra-core/src/main/java/org/apache/tephra/runtime/TransactionInMemoryModule.java
+++ 
b/tephra-core/src/main/java/org/apache/tephra/runtime/TransactionInMemoryModule.java
@@ -20,7 +20,6 @@ package org.apache.tephra.runtime;
 
 import com.google.inject.AbstractModule;
 import com.google.inject.Scopes;
-import com.google.inject.Singleton;
 import com.google.inject.assistedinject.FactoryModuleBuilder;
 import org.apache.tephra.DefaultTransactionExecutor;
 import org.apache.tephra.TransactionExecutor;
@@ -39,16 +38,12 @@ import org.apache.tephra.snapshot.SnapshotCodecProvider;
  * test classes, as the transaction state cannot be recovered in the case of a 
failure.
  */
 public class TransactionInMemoryModule extends AbstractModule {
-  public TransactionInMemoryModule() {
-  }
 
   @Override
   protected void configure() {
-    // some of these classes need to be non-singleton in order to create a new 
instance during leader() in
-    // TransactionService
     bind(SnapshotCodecProvider.class).in(Scopes.SINGLETON);
-    bind(TransactionStateStorage.class).to(NoOpTransactionStateStorage.class);
-    bind(TransactionManager.class);
+    
bind(TransactionStateStorage.class).to(NoOpTransactionStateStorage.class).in(Scopes.SINGLETON);
+    bind(TransactionManager.class).in(Scopes.SINGLETON);
     
bind(TransactionSystemClient.class).to(InMemoryTxSystemClient.class).in(Scopes.SINGLETON);
     // no metrics output for in-memory
     bind(MetricsCollector.class).to(TxMetricsCollector.class);

http://git-wip-us.apache.org/repos/asf/incubator-tephra/blob/b9eae01f/tephra-core/src/main/java/org/apache/tephra/runtime/TransactionLocalModule.java
----------------------------------------------------------------------
diff --git 
a/tephra-core/src/main/java/org/apache/tephra/runtime/TransactionLocalModule.java
 
b/tephra-core/src/main/java/org/apache/tephra/runtime/TransactionLocalModule.java
index 4a79e8d..0dba09e 100644
--- 
a/tephra-core/src/main/java/org/apache/tephra/runtime/TransactionLocalModule.java
+++ 
b/tephra-core/src/main/java/org/apache/tephra/runtime/TransactionLocalModule.java
@@ -19,6 +19,7 @@
 package org.apache.tephra.runtime;
 
 import com.google.inject.AbstractModule;
+import com.google.inject.Scopes;
 import com.google.inject.Singleton;
 import com.google.inject.assistedinject.FactoryModuleBuilder;
 import com.google.inject.name.Names;
@@ -41,14 +42,12 @@ final class TransactionLocalModule extends AbstractModule {
 
   @Override
   protected void configure() {
-    // some of these classes need to be non-singleton in order to create a new 
instance during leader() in
-    // TransactionService
     bind(SnapshotCodecProvider.class).in(Singleton.class);
     bind(TransactionStateStorage.class).annotatedWith(Names.named("persist"))
-      .to(LocalFileTransactionStateStorage.class);
-    
bind(TransactionStateStorage.class).toProvider(TransactionStateStorageProvider.class);
+      .to(LocalFileTransactionStateStorage.class).in(Scopes.SINGLETON);
+    
bind(TransactionStateStorage.class).toProvider(TransactionStateStorageProvider.class).in(Scopes.SINGLETON);
 
-    bind(TransactionManager.class);
+    bind(TransactionManager.class).in(Scopes.SINGLETON);
     
bind(TransactionSystemClient.class).to(InMemoryTxSystemClient.class).in(Singleton.class);
     bind(MetricsCollector.class).to(DefaultMetricsCollector.class);
 

Reply via email to