You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by ni...@apache.org on 2018/06/01 03:34:58 UTC

[incubator-servicecomb-saga] branch SCB-584 created (now 2af3411)

This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a change to branch SCB-584
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git.


      at 2af3411  SCB-584 Fixed the Dubbo*Filter test errors by injecting the OmegaContext seperatly.

This branch includes the following new commits:

     new 2af3411  SCB-584 Fixed the Dubbo*Filter test errors by injecting the OmegaContext seperatly.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


-- 
To stop receiving notification emails like this one, please contact
ningjiang@apache.org.

[incubator-servicecomb-saga] 01/01: SCB-584 Fixed the Dubbo*Filter test errors by injecting the OmegaContext seperatly.

Posted by ni...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

ningjiang pushed a commit to branch SCB-584
in repository https://gitbox.apache.org/repos/asf/incubator-servicecomb-saga.git

commit 2af3411c7dc44977ad7352a1b716ce6344b6b265
Author: Willem Jiang <ji...@huawei.com>
AuthorDate: Fri Jun 1 11:33:46 2018 +0800

    SCB-584 Fixed the Dubbo*Filter test errors by injecting the OmegaContext seperatly.
---
 .../transport/dubbo/SagaDubboConsumerFilter.java   | 12 ++++++++---
 .../transport/dubbo/SagaDubboProviderFilter.java   | 13 ++++++++++--
 .../src/test/java/SagaDubboConsumerFilterTest.java | 22 ++++++--------------
 .../src/test/java/SagaDubboProviderFilterTest.java | 24 +++++++---------------
 4 files changed, 33 insertions(+), 38 deletions(-)

diff --git a/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboConsumerFilter.java b/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboConsumerFilter.java
index 35f02a2..afb83d1 100644
--- a/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboConsumerFilter.java
+++ b/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboConsumerFilter.java
@@ -31,6 +31,7 @@ import java.lang.invoke.MethodHandles;
 import org.apache.servicecomb.saga.omega.context.OmegaContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import static org.apache.servicecomb.saga.omega.context.OmegaContext.GLOBAL_TX_ID_KEY;
 import static org.apache.servicecomb.saga.omega.context.OmegaContext.LOCAL_TX_ID_KEY;
@@ -41,11 +42,16 @@ import static org.apache.servicecomb.saga.omega.context.OmegaContext.LOCAL_TX_ID
 @Activate(group = {Constants.CONSUMER})
 public class SagaDubboConsumerFilter implements Filter {
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
+  
+  // As we use the spring to manage the omegaContext, the Autowired work out of box
+  @Autowired(required=false)
+  private OmegaContext omegaContext;
+
+  public void setOmegaContext(OmegaContext omegaContext) {
+    this.omegaContext = omegaContext;
+  }
 
   public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
-    // TODO not sure if it's a good way to look up OmegaContext during every invoke
-    OmegaContext omegaContext = (OmegaContext) (new SpringExtensionFactory())
-        .getExtension(OmegaContext.class, "omegaContext");
     if (omegaContext != null) {
       invocation.getAttachments().put(GLOBAL_TX_ID_KEY, omegaContext.globalTxId());
       invocation.getAttachments().put(LOCAL_TX_ID_KEY, omegaContext.localTxId());
diff --git a/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboProviderFilter.java b/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboProviderFilter.java
index acb0524..618b9b9 100644
--- a/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboProviderFilter.java
+++ b/omega/omega-transport/omega-transport-dubbo/src/main/java/org/apache/servicecomb/saga/omega/transport/dubbo/SagaDubboProviderFilter.java
@@ -24,6 +24,7 @@ import com.alibaba.dubbo.rpc.*;
 import org.apache.servicecomb.saga.omega.context.OmegaContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import java.lang.invoke.MethodHandles;
 
@@ -38,10 +39,16 @@ public class SagaDubboProviderFilter implements Filter {
 
   private static final Logger LOG = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
+  // As we use the spring to manage the omegaContext, the Autowired work out of box
+  @Autowired(required=false)
+  private OmegaContext omegaContext;
+
+  public void setOmegaContext(OmegaContext omegaContext) {
+    this.omegaContext = omegaContext;
+  }
+
   @Override
   public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
-    // TODO not sure if it's a good way to look up OmegaContext during every invoke
-    OmegaContext omegaContext = new SpringExtensionFactory().getExtension(OmegaContext.class, "omegaContext");
     if (omegaContext != null) {
       String globalTxId = invocation.getAttachment(GLOBAL_TX_ID_KEY);
       if (globalTxId == null) {
@@ -54,6 +61,8 @@ public class SagaDubboProviderFilter implements Filter {
       }
       invocation.getAttachments().put(GLOBAL_TX_ID_KEY, null);
       invocation.getAttachments().put(LOCAL_TX_ID_KEY, null);
+    } else {
+      LOG.debug("Cannot find omegaContext");
     }
 
     if (invoker != null) {
diff --git a/omega/omega-transport/omega-transport-dubbo/src/test/java/SagaDubboConsumerFilterTest.java b/omega/omega-transport/omega-transport-dubbo/src/test/java/SagaDubboConsumerFilterTest.java
index 779b732..3fcb1b1 100644
--- a/omega/omega-transport/omega-transport-dubbo/src/test/java/SagaDubboConsumerFilterTest.java
+++ b/omega/omega-transport/omega-transport-dubbo/src/test/java/SagaDubboConsumerFilterTest.java
@@ -15,18 +15,16 @@
  * limitations under the License.
  */
 
-import com.alibaba.dubbo.config.spring.extension.SpringExtensionFactory;
-import com.alibaba.dubbo.rpc.Invocation;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
 import org.apache.servicecomb.saga.omega.context.OmegaContext;
 import org.apache.servicecomb.saga.omega.transport.dubbo.SagaDubboConsumerFilter;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.springframework.context.ApplicationContext;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
+import com.alibaba.dubbo.rpc.Invocation;
 
 import static org.hamcrest.core.Is.is;
 import static org.junit.Assert.assertThat;
@@ -40,20 +38,12 @@ public class SagaDubboConsumerFilterTest {
 
   private final OmegaContext omegaContext = new OmegaContext(() -> "ignored");
   private final Invocation invocation = mock(Invocation.class);
-  private final ApplicationContext applicationContext = mock(ApplicationContext.class);
   private final SagaDubboConsumerFilter filter = new SagaDubboConsumerFilter();
 
   @Before
   public void setUp() {
     omegaContext.clear();
-    when(applicationContext.containsBean("omegaContext")).thenReturn(true);
-    when(applicationContext.getBean("omegaContext")).thenReturn(omegaContext);
-    SpringExtensionFactory.addApplicationContext(applicationContext);
-  }
-
-  @After
-  public void setDown(){
-    SpringExtensionFactory.removeApplicationContext(applicationContext);
+    filter.setOmegaContext(omegaContext);
   }
 
   @Test
diff --git a/omega/omega-transport/omega-transport-dubbo/src/test/java/SagaDubboProviderFilterTest.java b/omega/omega-transport/omega-transport-dubbo/src/test/java/SagaDubboProviderFilterTest.java
index 1b95339..be00e69 100644
--- a/omega/omega-transport/omega-transport-dubbo/src/test/java/SagaDubboProviderFilterTest.java
+++ b/omega/omega-transport/omega-transport-dubbo/src/test/java/SagaDubboProviderFilterTest.java
@@ -15,16 +15,14 @@
  * limitations under the License.
  */
 
-import com.alibaba.dubbo.config.spring.extension.SpringExtensionFactory;
-import com.alibaba.dubbo.rpc.Invocation;
+import java.util.UUID;
+
 import org.apache.servicecomb.saga.omega.context.OmegaContext;
 import org.apache.servicecomb.saga.omega.transport.dubbo.SagaDubboProviderFilter;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.springframework.context.ApplicationContext;
 
-import java.util.UUID;
+import com.alibaba.dubbo.rpc.Invocation;
 
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.nullValue;
@@ -38,25 +36,17 @@ public class SagaDubboProviderFilterTest {
   private static final String localTxId = UUID.randomUUID().toString();
   private final OmegaContext omegaContext = new OmegaContext(() -> "ignored");
   private final Invocation invocation = mock(Invocation.class);
-  private final ApplicationContext applicationContext = mock(ApplicationContext.class);
-
+  
   private final SagaDubboProviderFilter filter = new SagaDubboProviderFilter();
 
   @Before
   public void setUp() {
     omegaContext.clear();
-    when(applicationContext.containsBean("omegaContext")).thenReturn(true);
-    when(applicationContext.getBean("omegaContext")).thenReturn(omegaContext);
-    SpringExtensionFactory.addApplicationContext(applicationContext);
-  }
-
-  @After
-  public void setDown(){
-    SpringExtensionFactory.removeApplicationContext(applicationContext);
+    filter.setOmegaContext(omegaContext);
   }
 
   @Test
-  public void setUpOmegaContextInTransactionRequest() throws Exception {
+  public void setUpOmegaContextInTransactionRequest() {
     when(invocation.getAttachment(OmegaContext.GLOBAL_TX_ID_KEY)).thenReturn(globalTxId);
     when(invocation.getAttachment(OmegaContext.LOCAL_TX_ID_KEY)).thenReturn(localTxId);
 
@@ -67,7 +57,7 @@ public class SagaDubboProviderFilterTest {
   }
 
   @Test
-  public void doNothingInNonTransactionRequest() throws Exception {
+  public void doNothingInNonTransactionRequest() {
     when(invocation.getAttachment(OmegaContext.GLOBAL_TX_ID_KEY)).thenReturn(null);
     when(invocation.getAttachment(OmegaContext.LOCAL_TX_ID_KEY)).thenReturn(null);
 

-- 
To stop receiving notification emails like this one, please contact
ningjiang@apache.org.