com.alibaba.dubbo.common.beanutil.JavaBeanDescriptor Java Examples

The following examples show how to use com.alibaba.dubbo.common.beanutil.JavaBeanDescriptor. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: HessianProtocolTest.java    From dubbo-2.6.5 with Apache License 2.0 6 votes vote down vote up
@Test
public void testGenericInvokeWithBean() {
    HessianServiceImpl server = new HessianServiceImpl();
    Assert.assertFalse(server.isCalled());
    ProxyFactory proxyFactory = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
    Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
    URL url = URL.valueOf("hessian://127.0.0.1:5342/" + HessianService.class.getName() + "?version=1.0.0&generic=bean");
    Exporter<HessianService> exporter = protocol.export(proxyFactory.getInvoker(server, HessianService.class, url));
    Invoker<GenericService> invoker = protocol.refer(GenericService.class, url);
    GenericService client = proxyFactory.getProxy(invoker);

    JavaBeanDescriptor javaBeanDescriptor = JavaBeanSerializeUtil.serialize("haha");

    Object result = client.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{javaBeanDescriptor});
    Assert.assertTrue(server.isCalled());
    Assert.assertEquals("Hello, haha", JavaBeanSerializeUtil.deserialize((JavaBeanDescriptor) result));
    invoker.destroy();
    exporter.unexport();
}
 
Example #2
Source File: HttpProtocolTest.java    From dubbo-2.6.5 with Apache License 2.0 6 votes vote down vote up
@Test
public void testGenericInvokeWithBean() {
    HttpServiceImpl server = new HttpServiceImpl();
    Assert.assertFalse(server.isCalled());
    ProxyFactory proxyFactory = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();
    Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();
    URL url = URL.valueOf("http://127.0.0.1:5342/" + HttpService.class.getName() + "?version=1.0.0&generic=bean");
    Exporter<HttpService> exporter = protocol.export(proxyFactory.getInvoker(server, HttpService.class, url));
    Invoker<GenericService> invoker = protocol.refer(GenericService.class, url);
    GenericService client = proxyFactory.getProxy(invoker);

    JavaBeanDescriptor javaBeanDescriptor = JavaBeanSerializeUtil.serialize("haha");

    Object result = client.$invoke("sayHello", new String[]{"java.lang.String"}, new Object[]{javaBeanDescriptor});
    Assert.assertTrue(server.isCalled());
    Assert.assertEquals("Hello, haha", JavaBeanSerializeUtil.deserialize((JavaBeanDescriptor) result));
    invoker.destroy();
    exporter.unexport();
}
 
Example #3
Source File: ITTracingFilter_Provider.java    From brave with Apache License 2.0 6 votes vote down vote up
@Before public void setup() {
  server.service.setFilter("tracing");
  server.service.setInterface(GreeterService.class);
  server.service.setRef((method, parameterTypes, args) -> {
    JavaBeanDescriptor arg = (JavaBeanDescriptor) args[0];
    if (arg.getProperty("value").equals("bad")) {
      throw new IllegalArgumentException("bad");
    }
    String value = currentTraceContext.get() != null
        ? currentTraceContext.get().traceIdString()
        : "";
    arg.setProperty("value", value);
    return args[0];
  });
  server.start();

  ReferenceConfig<GreeterService> ref = new ReferenceConfig<>();
  ref.setApplication(new ApplicationConfig("bean-consumer"));
  ref.setInterface(GreeterService.class);
  ref.setUrl("dubbo://" + server.ip() + ":" + server.port() + "?scope=remote&generic=bean");
  client = ref;

  init();
}
 
Example #4
Source File: ITTracingFilter_Consumer.java    From brave with Apache License 2.0 5 votes vote down vote up
@Test public void customParser() {
  Tag<DubboResponse> javaValue = new Tag<DubboResponse>("dubbo.result_value") {
    @Override protected String parseValue(DubboResponse input, TraceContext context) {
      Result result = input.result();
      if (result == null) return null;
      Object value = result.getValue();
      if (value instanceof JavaBeanDescriptor) {
        return String.valueOf(((JavaBeanDescriptor) value).getProperty("value"));
      }
      return null;
    }
  };

  RpcTracing rpcTracing = RpcTracing.newBuilder(tracing)
      .clientResponseParser((res, context, span) -> {
        RpcResponseParser.DEFAULT.parse(res, context, span);
        if (res instanceof DubboResponse) {
          javaValue.tag((DubboResponse) res, span);
        }
      }).build();
  init().setRpcTracing(rpcTracing);

  String javaResult = client.get().sayHello("jorge");

  assertThat(testSpanHandler.takeRemoteSpan(CLIENT).tags())
      .containsEntry("dubbo.result_value", javaResult);
}
 
Example #5
Source File: ITTracingFilter_Provider.java    From brave with Apache License 2.0 5 votes vote down vote up
@Test public void customParser() {
  Tag<DubboResponse> javaValue = new Tag<DubboResponse>("dubbo.result_value") {
    @Override protected String parseValue(DubboResponse input, TraceContext context) {
      Result result = input.result();
      if (result == null) return null;
      Object value = result.getValue();
      if (value instanceof JavaBeanDescriptor) {
        return String.valueOf(((JavaBeanDescriptor) value).getProperty("value"));
      }
      return null;
    }
  };

  RpcTracing rpcTracing = RpcTracing.newBuilder(tracing)
      .serverResponseParser((res, context, span) -> {
        RpcResponseParser.DEFAULT.parse(res, context, span);
        if (res instanceof DubboResponse) {
          javaValue.tag((DubboResponse) res, span);
        }
      })
      .build();
  init().setRpcTracing(rpcTracing);

  String javaResult = client.get().sayHello("jorge");

  assertThat(testSpanHandler.takeRemoteSpan(SERVER).tags())
      .containsEntry("dubbo.result_value", javaResult);
}