[jira] [Commented] (SCB-963) Saga transactional method can't work when compensation happens

2018-10-20 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/SCB-963?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16658031#comment-16658031
 ] 

ASF GitHub Bot commented on SCB-963:


WillemJiang closed pull request #321: SCB-963 Make saga and tcc callback method 
transactional
URL: https://github.com/apache/incubator-servicecomb-saga/pull/321
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git 
a/omega/omega-context/src/main/java/org/apache/servicecomb/saga/omega/context/CallbackContext.java
 
b/omega/omega-context/src/main/java/org/apache/servicecomb/saga/omega/context/CallbackContext.java
index 0fe2613c..cf5ab508 100644
--- 
a/omega/omega-context/src/main/java/org/apache/servicecomb/saga/omega/context/CallbackContext.java
+++ 
b/omega/omega-context/src/main/java/org/apache/servicecomb/saga/omega/context/CallbackContext.java
@@ -35,9 +35,9 @@ public CallbackContext(OmegaContext omegaContext) {
 this.omegaContext = omegaContext;
   }
 
-  public void addCallbackContext(Method compensationMethod, Object target) {
+  public void addCallbackContext(String key, Method compensationMethod, Object 
target) {
 compensationMethod.setAccessible(true);
-contexts.put(compensationMethod.toString(), new 
CallbackContextInternal(target, compensationMethod));
+contexts.put(key, new CallbackContextInternal(target, compensationMethod));
   }
 
   public void apply(String globalTxId, String localTxId, String 
callbackMethod, Object... payloads) {
diff --git 
a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableAnnotationProcessor.java
 
b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableAnnotationProcessor.java
index 790394f7..254c3e73 100644
--- 
a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableAnnotationProcessor.java
+++ 
b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/CompensableAnnotationProcessor.java
@@ -36,13 +36,13 @@
 
   @Override
   public Object postProcessBeforeInitialization(Object bean, String beanName) 
throws BeansException {
-checkMethod(bean);
-checkFields(bean);
 return bean;
   }
 
   @Override
   public Object postProcessAfterInitialization(Object bean, String beanName) 
throws BeansException {
+checkMethod(bean);
+checkFields(bean);
 return bean;
   }
 
diff --git 
a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/MethodCheckingCallback.java
 
b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/MethodCheckingCallback.java
index 8a2ac138..6c523134 100644
--- 
a/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/MethodCheckingCallback.java
+++ 
b/omega/omega-spring-tx/src/main/java/org/apache/servicecomb/saga/omega/transaction/spring/MethodCheckingCallback.java
@@ -18,11 +18,15 @@
 package org.apache.servicecomb.saga.omega.transaction.spring;
 
 import java.lang.invoke.MethodHandles;
+import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import org.apache.servicecomb.saga.omega.context.CallbackContext;
 import org.apache.servicecomb.saga.omega.transaction.OmegaException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.aop.framework.AdvisedSupport;
+import org.springframework.aop.framework.AopProxy;
+import org.springframework.aop.support.AopUtils;
 import org.springframework.util.ReflectionUtils.MethodCallback;
 
 public abstract class MethodCheckingCallback implements MethodCallback {
@@ -45,12 +49,50 @@ protected void loadMethodContext(Method method, String ... 
candidates) {
 for (String each : candidates) {
   try {
 Method signature = bean.getClass().getDeclaredMethod(each, 
method.getParameterTypes());
-callbackContext.addCallbackContext(signature, bean);
+String key = getTargetBean(bean).getClass().getDeclaredMethod(each, 
method.getParameterTypes()).toString();
+callbackContext.addCallbackContext(key, signature, bean);
 LOG.debug("Found callback method [{}] in {}", each, 
bean.getClass().getCanonicalName());
-  } catch (NoSuchMethodException ex) {
+  } catch (Exception ex) {
 throw new OmegaException(
 "No such " + callbackType + " method [" + each + "] found in " + 
bean.getClass().getCanonicalName(), ex);
   }
 }
   }
+
+  private Object getTargetBean(Object proxy) throws Exception {
+if(!AopUtils.isAopProxy(proxy)) {
+  return proxy;
+}
+
+if(AopUtils.isJdkDynamicProxy(proxy)) {
+  return 

[jira] [Commented] (SCB-837) make http2 production ready

2018-10-20 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/SCB-837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16657815#comment-16657815
 ] 

ASF GitHub Bot commented on SCB-837:


coveralls edited a comment on issue #947:  [SCB-837] make http2 production ready
URL: 
https://github.com/apache/incubator-servicecomb-java-chassis/pull/947#issuecomment-428578957
 
 
   
   [![Coverage 
Status](https://coveralls.io/builds/19630471/badge)](https://coveralls.io/builds/19630471)
   
   Coverage increased (+0.03%) to 86.436% when pulling 
**b7d006c021cdfcfbf7ddbec0638e5a31cd57e2be on heyile:metrics_http2** into 
**56d8899c4039813045ff11c004c55114bc6ec12b on apache:master**.
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


> make http2 production ready
> ---
>
> Key: SCB-837
> URL: https://issues.apache.org/jira/browse/SCB-837
> Project: Apache ServiceComb
>  Issue Type: Improvement
>  Components: Java-Chassis
>Reporter: wujimin
>Assignee: 何一乐
>Priority: Major
> Fix For: java-chassis-1.1.0
>
>
> currenty, http2 client use all http1.1 settings, that cause http2 client 
> performance is so bad.
>  
> we need to conside http2 client settings at least:
> 1.concurrent stream in one connection, default value is 3, we must make it 
> bigger
> 2.maxPoolSize, http1.1 need a big pool, but http2 need a big concurrent 
> stream count
>  
> we must perform a performance test, that make sure got a good result, and 
> then set the setting to be our default setting.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)