Search in sources :

Example 1 with EndpointRouter

use of org.infinispan.server.router.router.EndpointRouter in project infinispan by infinispan.

the class SinglePortTest method shouldUpgradeThroughALPN.

@Test
public void shouldUpgradeThroughALPN() throws Exception {
    checkForOpenSSL();
    // given
    restServer = RestTestingUtil.createDefaultRestServer("rest", "default");
    RestServerRouteDestination restDestination = new RestServerRouteDestination("rest", restServer);
    SinglePortRouteSource singlePortSource = new SinglePortRouteSource();
    Route<SinglePortRouteSource, RestServerRouteDestination> routeToRest = new Route<>(singlePortSource, restDestination);
    SslContextFactory sslContextFactory = new SslContextFactory();
    RouterConfigurationBuilder routerConfigurationBuilder = new RouterConfigurationBuilder();
    routerConfigurationBuilder.singlePort().sslContext(sslContextFactory.keyStoreFileName(KEY_STORE_PATH).keyStorePassword(KEY_STORE_PASSWORD.toCharArray()).getContext()).port(0).ip(InetAddress.getLoopbackAddress()).routing().add(routeToRest);
    router = new Router(routerConfigurationBuilder.build());
    router.start();
    EndpointRouter singlePortRouter = router.getRouter(EndpointRouter.Protocol.SINGLE_PORT).get();
    // when
    RestClientConfigurationBuilder builder = new RestClientConfigurationBuilder();
    builder.addServer().host(singlePortRouter.getHost()).port(singlePortRouter.getPort()).protocol(Protocol.HTTP_20).security().ssl().trustStoreFileName(TRUST_STORE_PATH).trustStorePassword("secret".toCharArray()).hostnameVerifier((hostname, session) -> true);
    httpClient = RestClient.forConfiguration(builder.build());
    CompletionStage<RestResponse> response = httpClient.cache("default").post("test", VALUE);
    // then
    ResponseAssertion.assertThat(response).hasNoContent();
}
Also used : SslContextFactory(org.infinispan.commons.util.SslContextFactory) RestClientConfigurationBuilder(org.infinispan.client.rest.configuration.RestClientConfigurationBuilder) SinglePortRouteSource(org.infinispan.server.router.routes.singleport.SinglePortRouteSource) RestResponse(org.infinispan.client.rest.RestResponse) Router(org.infinispan.server.router.Router) EndpointRouter(org.infinispan.server.router.router.EndpointRouter) RestServerRouteDestination(org.infinispan.server.router.routes.rest.RestServerRouteDestination) EndpointRouter(org.infinispan.server.router.router.EndpointRouter) RouterConfigurationBuilder(org.infinispan.server.router.configuration.builder.RouterConfigurationBuilder) Route(org.infinispan.server.router.routes.Route) Test(org.junit.Test)

Example 2 with EndpointRouter

use of org.infinispan.server.router.router.EndpointRouter in project infinispan by infinispan.

the class SinglePortTest method shouldUpgradeToHotRodThroughALPN.

@Test
public void shouldUpgradeToHotRodThroughALPN() {
    checkForOpenSSL();
    // given
    hotrodServer = HotRodTestingUtil.startHotRodServerWithoutTransport("default");
    restServer = RestTestingUtil.createDefaultRestServer("rest", "default");
    HotRodServerRouteDestination hotrodDestination = new HotRodServerRouteDestination("hotrod", hotrodServer);
    RestServerRouteDestination restDestination = new RestServerRouteDestination("rest", restServer);
    SinglePortRouteSource singlePortSource = new SinglePortRouteSource();
    Route<SinglePortRouteSource, RestServerRouteDestination> routeToRest = new Route<>(singlePortSource, restDestination);
    Route<SinglePortRouteSource, HotRodServerRouteDestination> routeToHotRod = new Route<>(singlePortSource, hotrodDestination);
    SslContextFactory sslContextFactory = new SslContextFactory();
    RouterConfigurationBuilder routerConfigurationBuilder = new RouterConfigurationBuilder();
    routerConfigurationBuilder.singlePort().sslContext(sslContextFactory.keyStoreFileName(KEY_STORE_PATH).keyStorePassword(KEY_STORE_PASSWORD.toCharArray()).getContext()).port(0).ip(InetAddress.getLoopbackAddress()).routing().add(routeToRest).add(routeToHotRod);
    router = new Router(routerConfigurationBuilder.build());
    router.start();
    EndpointRouter endpointRouter = router.getRouter(EndpointRouter.Protocol.SINGLE_PORT).get();
    // when
    ConfigurationBuilder builder = new ConfigurationBuilder();
    builder.addServer().host(endpointRouter.getIp().getHostAddress()).port(endpointRouter.getPort());
    builder.security().ssl().trustStoreFileName(TRUST_STORE_PATH).trustStorePassword(TRUST_STORE_PASSWORD.toCharArray());
    hotRodClient = new RemoteCacheManager(builder.build());
    hotRodClient.getCache("default").put("test", "test");
}
Also used : RestClientConfigurationBuilder(org.infinispan.client.rest.configuration.RestClientConfigurationBuilder) HotRodServerConfigurationBuilder(org.infinispan.server.hotrod.configuration.HotRodServerConfigurationBuilder) ConfigurationBuilder(org.infinispan.client.hotrod.configuration.ConfigurationBuilder) RestServerConfigurationBuilder(org.infinispan.rest.configuration.RestServerConfigurationBuilder) RouterConfigurationBuilder(org.infinispan.server.router.configuration.builder.RouterConfigurationBuilder) RemoteCacheManager(org.infinispan.client.hotrod.RemoteCacheManager) SslContextFactory(org.infinispan.commons.util.SslContextFactory) SinglePortRouteSource(org.infinispan.server.router.routes.singleport.SinglePortRouteSource) Router(org.infinispan.server.router.Router) EndpointRouter(org.infinispan.server.router.router.EndpointRouter) RestServerRouteDestination(org.infinispan.server.router.routes.rest.RestServerRouteDestination) EndpointRouter(org.infinispan.server.router.router.EndpointRouter) RouterConfigurationBuilder(org.infinispan.server.router.configuration.builder.RouterConfigurationBuilder) HotRodServerRouteDestination(org.infinispan.server.router.routes.hotrod.HotRodServerRouteDestination) Route(org.infinispan.server.router.routes.Route) Test(org.junit.Test)

Example 3 with EndpointRouter

use of org.infinispan.server.router.router.EndpointRouter in project infinispan by infinispan.

the class SinglePortTest method shouldUpgradeToHotRodThroughHTTP11UpgradeHeaders.

@Test
public void shouldUpgradeToHotRodThroughHTTP11UpgradeHeaders() {
    // given
    EmbeddedCacheManager cacheManager = TestCacheManagerFactory.createCacheManager(hotRodCacheConfiguration());
    // Initialize a transport-less Hot Rod server
    HotRodServerConfigurationBuilder hotRodServerBuilder = new HotRodServerConfigurationBuilder();
    hotRodServerBuilder.startTransport(false);
    hotRodServerBuilder.name(TestResourceTracker.getCurrentTestName());
    hotrodServer = HotRodClientTestingUtil.startHotRodServer(cacheManager, hotRodServerBuilder);
    // Initialize a transport-less REST server
    restServer = new RestServer();
    RestServerConfigurationBuilder restServerConfigurationBuilder = new RestServerConfigurationBuilder();
    restServerConfigurationBuilder.startTransport(false);
    restServerConfigurationBuilder.name(TestResourceTracker.getCurrentTestName());
    restServer.setServerManagement(new DummyServerManagement(), true);
    restServer.start(restServerConfigurationBuilder.build(), cacheManager);
    // Initialize a Single Port server with routes to the Hot Rod and REST servers
    HotRodServerRouteDestination hotrodDestination = new HotRodServerRouteDestination("hotrod", hotrodServer);
    RestServerRouteDestination restDestination = new RestServerRouteDestination("rest", restServer);
    SinglePortRouteSource singlePortSource = new SinglePortRouteSource();
    Route<SinglePortRouteSource, HotRodServerRouteDestination> routeToHotRod = new Route<>(singlePortSource, hotrodDestination);
    Route<SinglePortRouteSource, RestServerRouteDestination> routeToRest = new Route<>(singlePortSource, restDestination);
    RouterConfigurationBuilder routerConfigurationBuilder = new RouterConfigurationBuilder();
    routerConfigurationBuilder.singlePort().port(0).ip(InetAddress.getLoopbackAddress()).routing().add(routeToRest).add(routeToHotRod);
    router = new Router(routerConfigurationBuilder.build());
    router.start();
    EndpointRouter endpointRouter = router.getRouter(EndpointRouter.Protocol.SINGLE_PORT).get();
    String host = endpointRouter.getHost();
    int port = endpointRouter.getPort();
    // First off we verify that the HTTP side of things works
    RestClientConfigurationBuilder builder = new RestClientConfigurationBuilder();
    builder.addServer().host(host).port(port).protocol(Protocol.HTTP_11);
    httpClient = RestClient.forConfiguration(builder.build());
    CompletionStage<RestResponse> response = httpClient.cache(cacheManager.getCacheManagerConfiguration().defaultCacheName().get()).post("key", VALUE);
    ResponseAssertion.assertThat(response).hasNoContent();
    Assertions.assertThat(restServer.getCacheManager().getCache().size()).isEqualTo(1);
    // Next up, the RemoteCacheManager
    ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
    configurationBuilder.marshaller(new UTF8StringMarshaller());
    configurationBuilder.addServer().host(host).port(port);
    hotRodClient = new RemoteCacheManager(configurationBuilder.build());
    Object value = hotRodClient.getCache().withDataFormat(DataFormat.builder().keyType(TEXT_PLAIN).valueType(TEXT_PLAIN).build()).get("key");
    Assertions.assertThat(value).isEqualTo("test");
}
Also used : RestClientConfigurationBuilder(org.infinispan.client.rest.configuration.RestClientConfigurationBuilder) HotRodServerConfigurationBuilder(org.infinispan.server.hotrod.configuration.HotRodServerConfigurationBuilder) ConfigurationBuilder(org.infinispan.client.hotrod.configuration.ConfigurationBuilder) RestServerConfigurationBuilder(org.infinispan.rest.configuration.RestServerConfigurationBuilder) RouterConfigurationBuilder(org.infinispan.server.router.configuration.builder.RouterConfigurationBuilder) SinglePortRouteSource(org.infinispan.server.router.routes.singleport.SinglePortRouteSource) RestResponse(org.infinispan.client.rest.RestResponse) UTF8StringMarshaller(org.infinispan.commons.marshall.UTF8StringMarshaller) Router(org.infinispan.server.router.Router) EndpointRouter(org.infinispan.server.router.router.EndpointRouter) DummyServerManagement(org.infinispan.server.core.DummyServerManagement) RestServerRouteDestination(org.infinispan.server.router.routes.rest.RestServerRouteDestination) EmbeddedCacheManager(org.infinispan.manager.EmbeddedCacheManager) RouterConfigurationBuilder(org.infinispan.server.router.configuration.builder.RouterConfigurationBuilder) HotRodServerRouteDestination(org.infinispan.server.router.routes.hotrod.HotRodServerRouteDestination) RestServer(org.infinispan.rest.RestServer) RestServerConfigurationBuilder(org.infinispan.rest.configuration.RestServerConfigurationBuilder) RemoteCacheManager(org.infinispan.client.hotrod.RemoteCacheManager) RestClientConfigurationBuilder(org.infinispan.client.rest.configuration.RestClientConfigurationBuilder) HotRodServerConfigurationBuilder(org.infinispan.server.hotrod.configuration.HotRodServerConfigurationBuilder) EndpointRouter(org.infinispan.server.router.router.EndpointRouter) Route(org.infinispan.server.router.routes.Route) Test(org.junit.Test)

Aggregations

RestClientConfigurationBuilder (org.infinispan.client.rest.configuration.RestClientConfigurationBuilder)3 Router (org.infinispan.server.router.Router)3 RouterConfigurationBuilder (org.infinispan.server.router.configuration.builder.RouterConfigurationBuilder)3 EndpointRouter (org.infinispan.server.router.router.EndpointRouter)3 Route (org.infinispan.server.router.routes.Route)3 RestServerRouteDestination (org.infinispan.server.router.routes.rest.RestServerRouteDestination)3 SinglePortRouteSource (org.infinispan.server.router.routes.singleport.SinglePortRouteSource)3 Test (org.junit.Test)3 RemoteCacheManager (org.infinispan.client.hotrod.RemoteCacheManager)2 ConfigurationBuilder (org.infinispan.client.hotrod.configuration.ConfigurationBuilder)2 RestResponse (org.infinispan.client.rest.RestResponse)2 SslContextFactory (org.infinispan.commons.util.SslContextFactory)2 RestServerConfigurationBuilder (org.infinispan.rest.configuration.RestServerConfigurationBuilder)2 HotRodServerConfigurationBuilder (org.infinispan.server.hotrod.configuration.HotRodServerConfigurationBuilder)2 HotRodServerRouteDestination (org.infinispan.server.router.routes.hotrod.HotRodServerRouteDestination)2 UTF8StringMarshaller (org.infinispan.commons.marshall.UTF8StringMarshaller)1 EmbeddedCacheManager (org.infinispan.manager.EmbeddedCacheManager)1 RestServer (org.infinispan.rest.RestServer)1 DummyServerManagement (org.infinispan.server.core.DummyServerManagement)1