/** * Default configuration map must specify default values for all properties. */ private static ParSeqRestliClientConfig createDefaultConfig() { ParSeqRestliClientConfigBuilder builder = new ParSeqRestliClientConfigBuilder(); builder.addTimeoutMs("*.*/*.*", DEFAULT_TIMEOUT); builder.addBatchingEnabled("*.*/*.*", DEFAULT_BATCHING_ENABLED); builder.addMaxBatchSize("*.*/*.*", DEFAULT_MAX_BATCH_SIZE); return builder.build(); } }
public void addConfig(ParSeqRestliClientConfig config) { addTimeoutMsConfigMap(config.getTimeoutMsConfig()); addBatchingEnabledConfigMap(config.isBatchingEnabledConfig()); addMaxBatchSizeConfigMap(config.getMaxBatchSizeConfig()); }
public ParSeqRestliClientConfigBuilder(ParSeqRestliClientConfig config) { addConfig(config); }
@Override public ParSeqRestliClientConfig getParSeqRestClientConfig() { return new ParSeqRestliClientConfigBuilder() .addBatchingEnabled("*.*/*.*", Boolean.TRUE) .build(); }
@Test public void testSubResourceNoMultiColo() { ParSeqRestliClientConfigBuilder configBuilder = new ParSeqRestliClientConfigBuilder(); configBuilder.addTimeoutMs("*.*/associations-prod-lsg1:associationsSub-prod-lsg1.*", 1003L); try { RequestConfigProvider.build(configBuilder.build(), () -> Optional.empty()); } catch (Throwable e) { assertTrue(e instanceof RuntimeException && e.getCause() instanceof RequestConfigKeyParsingException); } }
@Override public ParSeqRestliClientConfig getParSeqRestClientConfig() { return new ParSeqRestliClientConfigBuilder().build(); }
public RequestConfigProvider build() throws RequestConfigKeyParsingException { return new RequestConfigProviderImpl(_inboundRequestFinder, _config.build()); }
@Test public void testPrioritiesWithInboundAndOutboundMatchSubresource() throws RequestConfigKeyParsingException { ParSeqRestliClientConfigBuilder configBuilder = new ParSeqRestliClientConfigBuilder(); configBuilder.addTimeoutMs("*.*/*.GET", 1000L); configBuilder.addTimeoutMs("x.GET/*.GET", 1001L); configBuilder.addTimeoutMs("y.GET/x1.GET", 1002L); configBuilder.addTimeoutMs("y.GET/x2.GET", 1003L); configBuilder.addTimeoutMs("*.GET/x.GET", 1004L); configBuilder.addTimeoutMs("*.GET/x2.GET", 1005L); configBuilder.addTimeoutMs("*.GET/greetings.GET", 1006L); configBuilder.addTimeoutMs("greetings.GET/*.GET", 1007L); configBuilder.addTimeoutMs("greetings:associationsSub.GET/greetings.GET", 1008L); RequestConfigProvider provider = RequestConfigProvider.build(configBuilder.build(), requestContextFinder("greetings", ResourceMethod.GET.toString().toUpperCase(), Optional.empty(), Optional.empty())); RequestConfig rc = provider.apply(new GreetingsBuilders().get().id(0L).build()); assertNotNull(rc); assertEquals(rc.getTimeoutMs().getValue(), Long.valueOf(1006L)); assertEquals(rc.isBatchingEnabled().getValue(), Boolean.valueOf(false)); assertEquals(rc.getMaxBatchSize().getValue(), Integer.valueOf(1024)); }
@Override public ParSeqRestliClientConfig getParSeqRestClientConfig() { return new ParSeqRestliClientConfigBuilder().build(); }
@Override public ParSeqRestliClientConfig getParSeqRestClientConfig() { return new ParSeqRestliClientConfigBuilder() .addBatchingEnabled("*.*/*.*", Boolean.TRUE) .build(); }
@Override public ParSeqRestliClientConfig getParSeqRestClientConfig() { return new ParSeqRestliClientConfigBuilder() .addTimeoutMs("*.*/greetings.GET", 9999L) .addTimeoutMs("*.*/greetings.*", 10001L) .addTimeoutMs("*.*/*.GET", 10002L) .addTimeoutMs("foo.*/greetings.GET", 10003L) .addTimeoutMs("foo.GET/greetings.GET", 10004L) .addTimeoutMs("foo.ACTION-*/greetings.GET", 10005L) .addTimeoutMs("foo.ACTION-bar/greetings.GET", 10006L) .addBatchingEnabled("withBatching.*/*.*", true) .addMaxBatchSize("withBatching.*/*.*", 3) .build(); }
@Test public void testPrioritiesWithInboundAndOutboundMatchSubresource2() throws RequestConfigKeyParsingException { ParSeqRestliClientConfigBuilder configBuilder = new ParSeqRestliClientConfigBuilder(); configBuilder.addTimeoutMs("*.*/*.GET", 1000L); configBuilder.addTimeoutMs("x.GET/*.GET", 1001L); configBuilder.addTimeoutMs("y.GET/x1.GET", 1002L); configBuilder.addTimeoutMs("y.GET/x2.GET", 1003L); configBuilder.addTimeoutMs("*.GET/x.GET", 1004L); configBuilder.addTimeoutMs("*.GET/x2.GET", 1005L); configBuilder.addTimeoutMs("*.GET/greetings.GET", 1006L); configBuilder.addTimeoutMs("greetings.GET/*.GET", 1007L); configBuilder.addTimeoutMs("greetings:associationsSub.GET/greetings.GET", 1008L); RequestConfigProvider provider = RequestConfigProvider.build(configBuilder.build(), requestContextFinder("greetings:associationsSub", ResourceMethod.GET.toString().toUpperCase(), Optional.empty(), Optional.empty())); RequestConfig rc = provider.apply(new GreetingsBuilders().get().id(0L).build()); assertNotNull(rc); assertEquals(rc.getTimeoutMs().getValue(), Long.valueOf(1008L)); assertEquals(rc.isBatchingEnabled().getValue(), Boolean.valueOf(false)); assertEquals(rc.getMaxBatchSize().getValue(), Integer.valueOf(1024)); }
/** * Creates new ParSeqRestClient with default configuration. * * @deprecated Please use {@link ParSeqRestliClientBuilder} to create instances. */ @Deprecated public ParSeqRestClient(final Client client) { ArgumentUtil.requireNotNull(client, "client"); _client = client; _requestConfigProvider = RequestConfigProvider.build(new ParSeqRestliClientConfigBuilder().build(), () -> Optional.empty()); _requestContextProvider = request -> new RequestContext(); _d2RequestTimeoutEnabled = false; }
public RequestConfigProviderBuilder addConfig(ParSeqRestliClientConfig config) { _config.addConfig(config); return this; }
@Override public ParSeqRestliClientConfig getParSeqRestClientConfig() { return new ParSeqRestliClientConfigBuilder() .addTimeoutMs("*.*/greetings.GET", 9999L) .addTimeoutMs("*.*/greetings.*", 10001L) .addTimeoutMs("*.*/*.GET", 10002L) .addTimeoutMs("foo.*/greetings.GET", 10003L) .addTimeoutMs("foo.GET/greetings.GET", 10004L) .addTimeoutMs("foo.ACTION-*/greetings.GET", 10005L) .addTimeoutMs("foo.ACTION-bar/greetings.GET", 10006L) .addBatchingEnabled("withBatching.*/*.*", true) .addMaxBatchSize("withBatching.*/*.*", 3) .build(); }
@Test public void testPrioritiesWithInboundFinderAndOutboundMatch() throws RequestConfigKeyParsingException { ParSeqRestliClientConfigBuilder configBuilder = new ParSeqRestliClientConfigBuilder(); configBuilder.addTimeoutMs("*.*/*.GET", 1000L); configBuilder.addTimeoutMs("x.GET/*.GET", 1000L); configBuilder.addTimeoutMs("y.GET/x1.GET", 1000L); configBuilder.addTimeoutMs("y.GET/x2.GET", 1000L); configBuilder.addTimeoutMs("*.GET/x.GET", 1000L); configBuilder.addTimeoutMs("*.GET/x2.GET", 1000L); configBuilder.addTimeoutMs("*.GET/greetings.GET", 1000L); configBuilder.addTimeoutMs("greetings.GET/*.GET", 1000L); configBuilder.addTimeoutMs("greetings.GET/greetings.GET", 100L); configBuilder.addTimeoutMs("*.*/greetings.DELETE", 1000L); configBuilder.addTimeoutMs("greetings.*/greetings.DELETE", 1000L); configBuilder.addTimeoutMs("*.GET/greetings.DELETE", 1000L); configBuilder.addTimeoutMs("greetings.GET/greetings.DELETE", 500L); configBuilder.addTimeoutMs("greetings.FINDER-*/greetings.GET", 500L); configBuilder.addTimeoutMs("greetings.FINDER-*/greetings.DELETE", 500L); configBuilder.addTimeoutMs("greetings.FINDER-foobar/greetings.GET", 500L); configBuilder.addTimeoutMs("greetings.FINDER-foobar/greetings.DELETE", 500L); configBuilder.addTimeoutMs("greetings.FINDER-findAll/greetings.GET", 400L); configBuilder.addTimeoutMs("greetings.FINDER-findAll/greetings.DELETE", 300L); RequestConfigProvider provider = RequestConfigProvider.build(configBuilder.build(), requestContextFinder("greetings", "FINDER", Optional.of("findAll"), Optional.empty())); RequestConfig rc = provider.apply(new GreetingsBuilders().get().id(0L).build());
/** * Creates new ParSeqRestClient with default configuration. * * @deprecated Please use {@link ParSeqRestliClientBuilder} to create instances. */ @Deprecated public ParSeqRestClient(final RestClient client) { ArgumentUtil.requireNotNull(client, "client"); _client = client; _requestConfigProvider = RequestConfigProvider.build(new ParSeqRestliClientConfigBuilder().build(), () -> Optional.empty()); _requestContextProvider = request -> new RequestContext(); _d2RequestTimeoutEnabled = false; }
@Override public ParSeqRestliClientConfig getParSeqRestClientConfig() { return new ParSeqRestliClientConfigBuilder() .addTimeoutMs("*.*/greetings.GET", 9999L) .addTimeoutMs("*.*/greetings.*", 10001L) .addTimeoutMs("*.*/*.GET", 10002L) .addTimeoutMs("foo.*/greetings.GET", 10003L) .addTimeoutMs("foo.GET/greetings.GET", 10004L) .addTimeoutMs("foo.ACTION-*/greetings.GET", 10005L) .addTimeoutMs("foo.ACTION-bar/greetings.GET", 10006L) .addBatchingEnabled("withBatching.*/*.*", true) .addMaxBatchSize("withBatching.*/*.*", 3) .build(); }
@Test public void testPrioritiesWithHttpInboundAndOutboundMatch() throws RequestConfigKeyParsingException { ParSeqRestliClientConfigBuilder configBuilder = new ParSeqRestliClientConfigBuilder(); configBuilder.addTimeoutMs("*.*/*.GET", 1000L); configBuilder.addTimeoutMs("x.GET/*.GET", 1000L); configBuilder.addTimeoutMs("y.GET/x1.GET", 1000L); configBuilder.addTimeoutMs("y.GET/x2.GET", 1000L); configBuilder.addTimeoutMs("*.GET/x.GET", 1000L); configBuilder.addTimeoutMs("*.GET/x2.GET", 1000L); configBuilder.addTimeoutMs("*.GET/greetings.GET", 1000L); configBuilder.addTimeoutMs("greetings.GET/*.GET", 1000L); configBuilder.addTimeoutMs("greetings.POST/greetings.GET", 100L); configBuilder.addTimeoutMs("*.*/greetings.DELETE", 1000L); configBuilder.addTimeoutMs("greetings.*/greetings.DELETE", 1000L); configBuilder.addTimeoutMs("*.GET/greetings.DELETE", 1000L); configBuilder.addTimeoutMs("greetings.POST/greetings.DELETE", 500L); RequestConfigProvider provider = RequestConfigProvider.build(configBuilder.build(), requestContextFinder("greetings", "POST", Optional.empty(), Optional.empty())); RequestConfig rc = provider.apply(new GreetingsBuilders().get().id(0L).build()); assertNotNull(rc); assertEquals(rc.getTimeoutMs().getValue(), Long.valueOf(100L)); assertEquals(rc.isBatchingEnabled().getValue(), Boolean.valueOf(false)); assertEquals(rc.getMaxBatchSize().getValue(), Integer.valueOf(1024)); rc = provider.apply(new GreetingsBuilders().delete().id(0L).build()); assertNotNull(rc); assertEquals(rc.getTimeoutMs().getValue(), Long.valueOf(500L)); assertEquals(rc.isBatchingEnabled().getValue(), Boolean.valueOf(false)); assertEquals(rc.getMaxBatchSize().getValue(), Integer.valueOf(1024)); }
@Test public void testFromEmptyMap() throws RequestConfigKeyParsingException { RequestConfigProvider provider = RequestConfigProvider.build(new ParSeqRestliClientConfigBuilder().build(), () -> Optional.empty()); RequestConfig rc = provider.apply(new GreetingsBuilders().get().id(0L).build()); assertNotNull(rc); assertEquals(rc.getTimeoutMs().getValue(), Long.valueOf(DEFAULT_TIMEOUT)); assertEquals(rc.isBatchingEnabled().getValue(), Boolean.valueOf(false)); assertEquals(rc.getMaxBatchSize().getValue(), Integer.valueOf(1024)); rc = provider.apply(new AssociationsSubBuilders().get().srcKey("a").destKey("b").id("x").build()); assertNotNull(rc); assertEquals(rc.getTimeoutMs().getValue(), Long.valueOf(DEFAULT_TIMEOUT)); assertEquals(rc.isBatchingEnabled().getValue(), Boolean.valueOf(false)); assertEquals(rc.getMaxBatchSize().getValue(), Integer.valueOf(1024)); }