Skip to content

Commit

Permalink
optimize:An optimization about DefaultRemotingParser (#2033)
Browse files Browse the repository at this point in the history
  • Loading branch information
ph3636 committed Feb 5, 2020
1 parent d364751 commit 9f3d47f
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 9 deletions.
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

0 comments on commit 9f3d47f

Please sign in to comment.