public AvaticaProtobufHandler(Service service, MetricsSystem metrics, AvaticaServerConfiguration serverConfig) { this.service = Objects.requireNonNull(service); this.metrics = Objects.requireNonNull(metrics); this.requestTimer = this.metrics.getTimer( MetricsHelper.concat(AvaticaProtobufHandler.class, MetricsAwareAvaticaHandler.REQUEST_TIMER_NAME)); this.protobufTranslation = new ProtobufTranslationImpl(); this.pbHandler = new ProtobufHandler(service, protobufTranslation, metrics); this.threadLocalBuffer = new ThreadLocal<UnsynchronizedBuffer>() { @Override public UnsynchronizedBuffer initialValue() { return new UnsynchronizedBuffer(); } }; this.serverConfig = serverConfig; }
public AvaticaProtobufHandler(Service service, MetricsSystem metrics, AvaticaServerConfiguration serverConfig) { this.service = Objects.requireNonNull(service); this.metrics = Objects.requireNonNull(metrics); this.requestTimer = this.metrics.getTimer( MetricsHelper.concat(AvaticaProtobufHandler.class, MetricsAwareAvaticaHandler.REQUEST_TIMER_NAME)); this.protobufTranslation = new ProtobufTranslationImpl(); this.pbHandler = new ProtobufHandler(service, protobufTranslation, metrics); this.threadLocalBuffer = new ThreadLocal<UnsynchronizedBuffer>() { @Override public UnsynchronizedBuffer initialValue() { return new UnsynchronizedBuffer(); } }; this.serverConfig = serverConfig; }
int maxDelay = Integer.valueOf(connectionInfo.getProperty(MAX_DELAY_NAME, DEFAULT_MAX_DELAY_BASE.toString())); FailoverRetryPolicy retryPolicy = new FailoverRetryPolicy(maxRetries, intervalMills, maxDelay); service = new HARemoteProtobufService(httpClient, new ProtobufTranslationImpl(), retryPolicy); } else { service = new RemoteProtobufService(httpClient, new ProtobufTranslationImpl());
break; case PROTOBUF: service = new RemoteProtobufService(httpClient, new ProtobufTranslationImpl()); break; default:
break; case PROTOBUF: service = new RemoteProtobufService(httpClient, new ProtobufTranslationImpl()); break; default:
/** * Creates a {@link Service} with the given {@link AvaticaConnection} and configuration. * * @param connection The {@link AvaticaConnection} to use. * @param config Configuration properties * @return A Service implementation. */ Service createService(AvaticaConnection connection, ConnectionConfig config) { final Service.Factory metaFactory = config.factory(); final Service service; if (metaFactory != null) { service = metaFactory.create(connection); } else if (config.url() != null) { final AvaticaHttpClient httpClient = getHttpClient(connection, config); final Serialization serializationType = getSerialization(config); switch (serializationType) { case JSON: service = new RemoteService(httpClient); break; case PROTOBUF: service = new RemoteProtobufService(httpClient, new ProtobufTranslationImpl()); break; default: throw new IllegalArgumentException("Unhandled serialization type: " + serializationType); } } else { service = new MockJsonService(Collections.<String, String>emptyMap()); } return service; }
@Parameters public static List<Object[]> parameters() { List<Object[]> params = new ArrayList<>(); // The impl we're testing ProtobufTranslationImpl translation = new ProtobufTranslationImpl(); // Identity transformation for Requests RequestFunc requestFunc = new RequestFunc(translation); // Identity transformation for Responses ResponseFunc responseFunc = new ResponseFunc(translation); List<Request> requests = getRequests(); List<Request> requestsWithNulls = getRequestsWithNulls(); List<Response> responses = getResponses(); // Requests for (Request request : requests) { params.add(new Object[] {request, requestFunc}); } // Requests with nulls in parameters for (Request request : requestsWithNulls) { params.add(new Object[] {request, requestFunc}); } // Responses for (Response response : responses) { params.add(new Object[] {response, responseFunc}); } return params; }
@Parameters public static List<Object[]> parameters() { List<Object[]> params = new ArrayList<>(); // The impl we're testing ProtobufTranslationImpl translation = new ProtobufTranslationImpl(); // Identity transformation for Requests RequestFunc requestFunc = new RequestFunc(translation); // Identity transformation for Responses ResponseFunc responseFunc = new ResponseFunc(translation); List<Request> requests = getRequests(); List<Request> requestsWithNulls = getRequestsWithNulls(); List<Response> responses = getResponses(); // Requests for (Request request : requests) { params.add(new Object[] {request, requestFunc}); } // Requests with nulls in parameters for (Request request : requestsWithNulls) { params.add(new Object[] {request, requestFunc}); } // Responses for (Response response : responses) { params.add(new Object[] {response, responseFunc}); } return params; }
@Parameters public static List<Object[]> parameters() { List<Object[]> params = new ArrayList<>(); // The impl we're testing ProtobufTranslationImpl translation = new ProtobufTranslationImpl(); // Identity transformation for Requests RequestFunc requestFunc = new RequestFunc(translation); // Identity transformation for Responses ResponseFunc responseFunc = new ResponseFunc(translation); List<Request> requests = getRequests(); List<Request> requestsWithNulls = getRequestsWithNulls(); List<Response> responses = getResponses(); // Requests for (Request request : requests) { params.add(new Object[] {request, requestFunc}); } // Requests with nulls in parameters for (Request request : requestsWithNulls) { params.add(new Object[] {request, requestFunc}); } // Responses for (Response response : responses) { params.add(new Object[] {response, responseFunc}); } return params; }
@Test public void testExecuteSerialization() throws Exception { Service.ExecuteRequest executeRequest = new Service.ExecuteRequest( new StatementHandle("connection", 12345, getSignature()), getTypedValues(), 0); Requests.ExecuteRequest pbExecuteRequest = executeRequest.serialize(); ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); pbExecuteRequest.writeTo(baos); byte[] serialized = baos.toByteArray(); baos.reset(); WireMessage wireMsg = WireMessage.newBuilder().setName(Requests.ExecuteRequest.class.getName()) .setWrappedMessage(UnsafeByteOperations.unsafeWrap(serialized)).build(); wireMsg.writeTo(baos); serialized = baos.toByteArray(); ProtobufTranslation translator = new ProtobufTranslationImpl(); Request newRequest = translator.parseRequest(serialized); Assert.assertEquals(executeRequest, newRequest); }
@Test public void testExecuteSerialization() throws Exception { Service.ExecuteRequest executeRequest = new Service.ExecuteRequest( new StatementHandle("connection", 12345, getSignature()), getTypedValues(), 0); Requests.ExecuteRequest pbExecuteRequest = executeRequest.serialize(); ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); pbExecuteRequest.writeTo(baos); byte[] serialized = baos.toByteArray(); baos.reset(); WireMessage wireMsg = WireMessage.newBuilder().setName(Requests.ExecuteRequest.class.getName()) .setWrappedMessage(UnsafeByteOperations.unsafeWrap(serialized)).build(); wireMsg.writeTo(baos); serialized = baos.toByteArray(); ProtobufTranslation translator = new ProtobufTranslationImpl(); Request newRequest = translator.parseRequest(serialized); Assert.assertEquals(executeRequest, newRequest); }