Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

optimize: optimization for DefaultRemotingParser #2033

Merged
merged 9 commits into from
Feb 5, 2020
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import io.seata.rm.tcc.api.TwoPhaseBusinessAction;
import io.seata.rm.tcc.remoting.Protocols;
import io.seata.rm.tcc.remoting.RemotingDesc;
import io.seata.rm.tcc.remoting.RemotingParser;
import io.seata.rm.tcc.remoting.parser.DefaultRemotingParser;
import org.springframework.context.ApplicationContext;

Expand Down Expand Up @@ -139,8 +140,9 @@ protected static boolean isTccProxyTargetBean(RemotingDesc remotingDesc) {
* @return if sofa:service, sofa:reference, dubbo:reference, dubbo:service return true, else return false
*/
protected static boolean parserRemotingServiceInfo(Object bean, String beanName) {
if (DefaultRemotingParser.get().isRemoting(bean, beanName)) {
return null != DefaultRemotingParser.get().parserRemotingServiceInfo(bean, beanName);
RemotingParser remotingParser = DefaultRemotingParser.get().isRemoting(bean, beanName);
if (remotingParser != null) {
return DefaultRemotingParser.get().parserRemotingServiceInfo(bean, beanName, remotingParser) != null;
}
return false;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,13 +87,13 @@ protected void initRemotingParser() {
* @param beanName the bean name
* @return boolean boolean
*/
public boolean isRemoting(Object bean, String beanName) {
public RemotingParser isRemoting(Object bean, String beanName) {
for (RemotingParser remotingParser : allRemotingParsers) {
if (remotingParser.isRemoting(bean, beanName)) {
return true;
return remotingParser;
}
}
return false;
return null;
}

/**
Expand Down Expand Up @@ -159,16 +159,16 @@ public RemotingDesc getServiceDesc(Object bean, String beanName) {
* @param beanName the bean name
* @return remoting desc
*/
public RemotingDesc parserRemotingServiceInfo(Object bean, String beanName) {
RemotingDesc remotingBeanDesc = getServiceDesc(bean, beanName);
public RemotingDesc parserRemotingServiceInfo(Object bean, String beanName, RemotingParser remotingParser) {
RemotingDesc remotingBeanDesc = remotingParser.getServiceDesc(bean, beanName);
if (remotingBeanDesc == null) {
return null;
}
remotingServiceMap.put(beanName, remotingBeanDesc);

Class<?> interfaceClass = remotingBeanDesc.getInterfaceClass();
Method[] methods = interfaceClass.getMethods();
if (isService(bean, beanName)) {
if (remotingParser.isService(bean, beanName)) {
try {
//service bean, registry resource
Object targetBean = remotingBeanDesc.getTargetBean();
Expand All @@ -195,7 +195,7 @@ public RemotingDesc parserRemotingServiceInfo(Object bean, String beanName) {
throw new FrameworkException(t, "parser remoting service error");
}
}
if (isReference(bean, beanName)) {
if (remotingParser.isReference(bean, beanName)) {
//reference bean, TCC proxy
remotingBeanDesc.setReference(true);
}
Expand Down