Ver Código Fonte

修复dubbo的oninvoke属性bug,修改了DubboBeanDefinitionParser和FutureFilter

huangbo 7 anos atrás
pai
commit
0a4bf8791b

+ 0 - 8
ipu-service-demo/src/main/java/com/ai/ipu/service/demo/IInterceptService.java

@ -1,8 +0,0 @@
1
package com.ai.ipu.service.demo;
2

3
import com.ailk.common.data.IData;
4

5
public interface IInterceptService {
6

7
    IData interceptMethod(IData params);
8
}

+ 0 - 16
ipu-service-demo/src/main/java/com/ai/ipu/service/demo/impl/InterceptService.java

@ -1,16 +0,0 @@
1
package com.ai.ipu.service.demo.impl;
2

3
import com.ai.ipu.service.demo.IInterceptService;
4
import com.ailk.common.data.IData;
5
import com.ailk.common.data.impl.DataMap;
6

7
public class InterceptService implements IInterceptService{
8

9
    public IData interceptMethod(IData params) {
10
        // TODO Auto-generated method stub
11
        IData result = new DataMap();
12
        result.put("msg", "正常执行");
13
        return result;
14
    }
15

16
}

+ 5 - 4
ipu-service-demo/src/main/java/com/ai/ipu/service/demo/interceptor/ServiceInterceptor.java

@ -2,17 +2,18 @@ package com.ai.ipu.service.demo.interceptor;
2 2

3 3
import com.ai.ipu.service.dubbo.interceptor.IServiceInterceptor;
4 4

5

5 6
/**
6 7
 * @author huangbo@asiainfo.com
7 8
 * @team IPU
8 9
 * @date 2018年3月7日下午3:58:40
9 10
 * @desc 拦截器服务案例,onInvoke没有测试通过
10 11
 */
11
public class ServiceInterceptor implements IServiceInterceptor {
12
public class ServiceInterceptor implements IServiceInterceptor{
12 13

13
    public void onInvoke(Object service, Object ... params) {
14
    public void onInvoke(Object ... params) {
14 15
        // TODO Auto-generated method stub
15
        System.out.println("服务对象:" + service);
16
        System.out.println("服务调用");
16 17
        for(Object param : params){
17 18
            System.out.println("服务入参:" + param);
18 19
        }
@ -20,7 +21,7 @@ public class ServiceInterceptor implements IServiceInterceptor {
20 21

21 22
    public void onReturn(Object result, Object ... params) {
22 23
        // TODO Auto-generated method stub
23
        System.out.println("服务返回" + result);
24
        System.out.println("服务返回:" + result);
24 25
        for(Object param : params){
25 26
            System.out.println("服务入参:" + param);
26 27
        }

+ 0 - 3
ipu-service-demo/src/main/resources/dubbo-provider-mult.xml

@ -37,8 +37,5 @@
37 37
	    </dubbo:method>
38 38
	</dubbo:service>
39 39
	<bean id="callbackService" class="com.ai.ipu.service.demo.impl.CallbackServiceImpl" />
40
	<!-- 服务拦截 -->
41
	<dubbo:service interface="com.ai.ipu.service.demo.IInterceptService" ref="interceptService"/>
42
    <bean id="interceptService" class="com.ai.ipu.service.demo.impl.InterceptService"/>
43 40
    <!-- 服务注册配置 end =========================== -->
44 41
</beans>

+ 0 - 3
ipu-service-demo/src/main/resources/dubbo-provider-simple.xml

@ -44,8 +44,5 @@
44 44
	    </dubbo:method>
45 45
	</dubbo:service>
46 46
	<bean id="callbackService" class="com.ai.ipu.service.demo.impl.CallbackServiceImpl" />
47
	<!-- 服务拦截 -->
48
	<dubbo:service interface="com.ai.ipu.service.demo.IInterceptService" ref="interceptService"/>
49
    <bean id="interceptService" class="com.ai.ipu.service.demo.impl.InterceptService"/>
50 47
    <!-- 服务注册配置 end =========================== -->
51 48
</beans>

+ 0 - 3
ipu-service-demo/src/main/resources/dubbo-provider-zoo.xml

@ -42,8 +42,5 @@
42 42
	    </dubbo:method>
43 43
	</dubbo:service>
44 44
	<bean id="callbackService" class="com.ai.ipu.service.demo.impl.CallbackServiceImpl" />
45
	<!-- 服务拦截 -->
46
	<dubbo:service interface="com.ai.ipu.service.demo.IInterceptService" ref="interceptService"/>
47
    <bean id="interceptService" class="com.ai.ipu.service.demo.impl.InterceptService"/>
48 45
    <!-- 服务注册配置 end =========================== -->
49 46
</beans>

+ 0 - 8
ipu-service-demo/src/test/java/com/ai/ipu/service/demo/impl/InterceptorServiceTest.java

@ -6,7 +6,6 @@ import org.springframework.context.support.ClassPathXmlApplicationContext;
6 6

7 7
import com.ai.ipu.service.DubboServiceStart;
8 8
import com.ai.ipu.service.demo.IBizService;
9
import com.ai.ipu.service.demo.IInterceptService;
10 9
import com.ailk.common.data.IData;
11 10
import com.ailk.common.data.impl.DataMap;
12 11

@ -20,13 +19,6 @@ public class InterceptorServiceTest extends TestCase{
20 19
        context.start();
21 20
    }
22 21
    
23
    public void testInterceptMethod() {
24
        // TODO Auto-generated method stub
25
        IInterceptService interceptService = (IInterceptService)context.getBean("interceptorService"); // 获取远程服务代理
26
        IData result = interceptService.interceptMethod(new DataMap()); // 执行远程方法
27
        System.out.println("服务消费者接收:" + result); // 显示调用结果
28
    }
29

30 22
    public void testInterceptorService() {
31 23
        // TODO Auto-generated method stub
32 24
        IBizService bizInterceptService = (IBizService)context.getBean("bizInterceptService"); // 获取远程服务代理

+ 4 - 6
ipu-service-demo/src/test/resources/dubbo-consumer-mult.xml

@ -24,14 +24,12 @@
24 24
	<dubbo:reference id="callbackService" interface="com.ai.ipu.service.demo.ICallbackService" />
25 25
	
26 26
	<!-- 服务拦截 -->
27
	<!-- 增加oninvoke属性以后,解析配置文件报错 -->
28 27
	<bean id="serviceInterceptor" class="com.ai.ipu.service.demo.interceptor.ServiceInterceptor" />
29 28
	<dubbo:reference id="bizInterceptService" interface="com.ai.ipu.service.demo.IBizService">
30
		<dubbo:method name="queryUserInfo" onreturn="serviceInterceptor.onReturn"/>
31
		<dubbo:method name="triggerException" async="true" onthrow="serviceInterceptor.onThrow"/>
32
	</dubbo:reference>
33
	<dubbo:reference id="interceptorService" interface="com.ai.ipu.service.demo.IInterceptService">
34
		<dubbo:method name="interceptMethod" onreturn="serviceInterceptor.onReturn"/>
29
		<dubbo:method name="queryUserInfo" oninvoke="serviceInterceptor.onInvoke"
30
			onreturn="serviceInterceptor.onReturn" />
31
		<dubbo:method name="triggerException" oninvoke="serviceInterceptor.onInvoke"
32
			onthrow="serviceInterceptor.onThrow" async="true" />
35 33
	</dubbo:reference>
36 34
	<!-- 服务注册配置 end =========================== -->
37 35
</beans>

+ 4 - 6
ipu-service-demo/src/test/resources/dubbo-consumer-simple.xml

@ -26,14 +26,12 @@
26 26
		interface="com.ai.ipu.service.demo.ICallbackService" />
27 27
		
28 28
	<!-- 服务拦截 -->
29
	<!-- 增加oninvoke属性以后,解析配置文件报错 -->
30 29
	<bean id="serviceInterceptor" class="com.ai.ipu.service.demo.interceptor.ServiceInterceptor" />
31 30
	<dubbo:reference id="bizInterceptService" interface="com.ai.ipu.service.demo.IBizService">
32
		<dubbo:method name="queryUserInfo" onreturn="serviceInterceptor.onReturn"/>
33
		<dubbo:method name="triggerException" async="true" onthrow="serviceInterceptor.onThrow"/>
34
	</dubbo:reference>
35
	<dubbo:reference id="interceptorService" interface="com.ai.ipu.service.demo.IInterceptService">
36
		<dubbo:method name="interceptMethod" onreturn="serviceInterceptor.onReturn"/>
31
		<dubbo:method name="queryUserInfo" oninvoke="serviceInterceptor.onInvoke"
32
			onreturn="serviceInterceptor.onReturn" />
33
		<dubbo:method name="triggerException" oninvoke="serviceInterceptor.onInvoke"
34
			onthrow="serviceInterceptor.onThrow" async="true" />
37 35
	</dubbo:reference>
38 36
	<!-- 服务注册配置 end =========================== -->
39 37
</beans>

+ 4 - 6
ipu-service-demo/src/test/resources/dubbo-consumer-zoo.xml

@ -27,14 +27,12 @@
27 27
	<dubbo:reference id="callbackService" interface="com.ai.ipu.service.demo.ICallbackService" />
28 28
	
29 29
	<!-- 服务拦截 -->
30
	<!-- 增加oninvoke属性以后,解析配置文件报错 -->
31 30
	<bean id="serviceInterceptor" class="com.ai.ipu.service.demo.interceptor.ServiceInterceptor" />
32 31
	<dubbo:reference id="bizInterceptService" interface="com.ai.ipu.service.demo.IBizService">
33
		<dubbo:method name="queryUserInfo" onreturn="serviceInterceptor.onReturn"/>
34
		<dubbo:method name="triggerException" async="true" onthrow="serviceInterceptor.onThrow"/>
35
	</dubbo:reference>
36
	<dubbo:reference id="interceptorService" interface="com.ai.ipu.service.demo.IInterceptService">
37
		<dubbo:method name="interceptMethod" onreturn="serviceInterceptor.onReturn"/>
32
		<dubbo:method name="queryUserInfo" oninvoke="serviceInterceptor.onInvoke"
33
			onreturn="serviceInterceptor.onReturn" />
34
		<dubbo:method name="triggerException" oninvoke="serviceInterceptor.onInvoke"
35
			onthrow="serviceInterceptor.onThrow" async="true" />
38 36
	</dubbo:reference>
39 37
	<!-- 服务注册配置 end =========================== -->
40 38
</beans>