@Override public Optional<MethodMetadata> getMethodMetadata(String name) { if (LOG_METHOD_METADATA.getName().equals(name)) { return Optional.of(LOG_METHOD_METADATA); } return Optional.empty(); }
@Override public Optional<MethodMetadata> getMethodMetadata(String name) { if (LOG_METHOD_METADATA.getName().equals(name)) { return Optional.of(LOG_METHOD_METADATA); } return Optional.empty(); }
@Override public ListenableFuture<Object> invoke(ServerInvokeRequest request) { ServiceMethod method = methods.get(request.getMethod().getName()); if (method == null) { return Futures.immediateFailedFuture(new TApplicationException(Type.UNKNOWN_METHOD, "Invalid method name: '" + request.getMethod().getName() + "'")); } return method.invokeMethod(request); }
@Override public Optional<MethodMetadata> getMethodMetadata(String name) { if (LOG_METHOD_METADATA.getName().equals(name)) { return Optional.of(LOG_METHOD_METADATA); } return Optional.empty(); }
@Override public Optional<MethodMetadata> getMethodMetadata(String name) { if (LOG_METHOD_METADATA.getName().equals(name)) { return Optional.of(LOG_METHOD_METADATA); } return Optional.empty(); }
@Override public ListenableFuture<Object> invoke(ServerInvokeRequest request) { ServiceMethod method = methods.get(request.getMethod().getName()); if (method == null) { return Futures.immediateFailedFuture(new TApplicationException(Type.UNKNOWN_METHOD, "Invalid method name: '" + request.getMethod().getName() + "'")); } return method.invokeMethod(request); }
@Override public Optional<MethodMetadata> getMethodMetadata(String name) { if (LOG_METHOD_METADATA.getName().equals(name)) { return Optional.of(LOG_METHOD_METADATA); } return Optional.empty(); }
private synchronized void unexpectedError(Throwable throwable) { String message = "Unexpected error processing invocation of " + metadata.getName(); setException(new TException(message, throwable)); log.error(throwable, message); } }
private synchronized void unexpectedError(Throwable throwable) { String message = "Unexpected error processing invocation of " + metadata.getName(); setException(new TException(message, throwable)); log.error(throwable, message); } }
@Override public synchronized MethodInvocationStat getStat(ThriftServiceMetadata serviceMetadata, Optional<String> qualifier, MethodMetadata metadata) { ObjectNameBuilder objectNameBuilder = new ObjectNameBuilder("thrift.server"); objectNameBuilder.withProperty("name", serviceMetadata.getName()); qualifier.ifPresent(qualifierName -> objectNameBuilder.withProperty("type", qualifierName)); objectNameBuilder.withProperty("method", metadata.getName()); String objectName = objectNameBuilder.build(); return stats.computeIfAbsent(objectName, name -> { JmxMethodInvocationStat stat = new JmxMethodInvocationStat(metadata.getName()); exporter.export(objectName, stat); return stat; }); }
@Override public synchronized MethodInvocationStat getStat(ThriftServiceMetadata serviceMetadata, Optional<String> qualifier, MethodMetadata metadata) { ObjectNameBuilder objectNameBuilder = new ObjectNameBuilder("thrift.client"); objectNameBuilder.withProperty("name", serviceMetadata.getName()); qualifier.ifPresent(qualifierName -> objectNameBuilder.withProperty("type", qualifierName)); objectNameBuilder.withProperty("method", metadata.getName()); String objectName = objectNameBuilder.build(); return stats.computeIfAbsent(objectName, name -> { JmxMethodInvocationStat stat = new JmxMethodInvocationStat(metadata.getName()); exporter.export(objectName, stat); return stat; }); }
@Override public void assertInvocation(String expectedMethodName, int expectedId, String expectedName) { assertEquals(request.getMethod().getName(), expectedMethodName); assertEquals(request.getParameters().get((short) 1), expectedId); assertEquals(request.getParameters().get((short) 2), expectedName); } }
@Override public void assertInvocation(String expectedMethodName, int expectedId, String expectedName) { assertEquals(request.getMethod().getName(), expectedMethodName); assertEquals(request.getParameters().get((short) 1), expectedId); assertEquals(request.getParameters().get((short) 2), expectedName); } }
@Override public void assertInvocation(String expectedMethodName, int expectedId, String expectedName) { assertEquals(request.getMethod().getName(), expectedMethodName); assertEquals(request.getParameters().get((short) 1), expectedId); assertEquals(request.getParameters().get((short) 2), expectedName); } }
@Override public void assertInvocation(String expectedMethodName, int expectedId, String expectedName) { assertEquals(request.getMethod().getName(), expectedMethodName); assertEquals(request.getParameters().get((short) 1), expectedId); assertEquals(request.getParameters().get((short) 2), expectedName); } }
private static void verifyMethodInvocation(Collection<Supplier<InvokeRequest>> targets, String methodName, int id, String name, Map<String, String> headers) { for (Supplier<InvokeRequest> target : targets) { InvokeRequest invokeRequest = target.get(); assertEquals(invokeRequest.getMethod().getName(), methodName); assertEquals(invokeRequest.getParameters(), ImmutableList.of(id, name)); assertEquals(invokeRequest.getHeaders(), headers); } }
private static void assertUnexpectedException(Throwable cause) { assertEquals(cause.getClass(), TException.class); TException exception = (TException) cause; assertTrue(exception.getMessage().matches("Unexpected error processing.*" + METHOD_METADATA.getName() + ".*")); assertSame(exception.getCause(), UNEXPECTED_EXCEPTION); // No retry information is attached to an unexpected exception assertEquals(exception.getSuppressed().length, 0); }
@Override public TestingMethodInvocationStat getStat(ThriftServiceMetadata serviceMetadata, Optional<String> qualifier, MethodMetadata metadata) { return stats.computeIfAbsent(new Key(serviceMetadata.getName(), qualifier, metadata.getName()), key -> new TestingMethodInvocationStat()); }
@Override public TestingMethodInvocationStat getStat(ThriftServiceMetadata serviceMetadata, Optional<String> qualifier, MethodMetadata metadata) { return stats.computeIfAbsent(new Key(serviceMetadata.getName(), qualifier, metadata.getName()), key -> new TestingMethodInvocationStat()); }
@Override public TestingMethodInvocationStat getStat(ThriftServiceMetadata serviceMetadata, Optional<String> qualifier, MethodMetadata metadata) { return stats.computeIfAbsent(new Key(serviceMetadata.getName(), qualifier, metadata.getName()), key -> new TestingMethodInvocationStat()); }