instance.getPort() >= 0 || (instance.getSslPort() != null && instance.getSslPort() >= 0), "WTH?! Both port and sslPort not set" ); final int port; final String scheme; if (instance.getSslPort() == null) { port = instance.getPort(); scheme = "http"; } else { port = instance.getSslPort() >= 0 ? instance.getSslPort() : instance.getPort(); scheme = instance.getSslPort() >= 0 ? "https" : "http";
@Test public void testPickWithSslPort() throws Exception { EasyMock.expect(serviceProvider.getInstance()).andReturn(instance).anyTimes(); EasyMock.expect(instance.getAddress()).andReturn(ADDRESS).anyTimes(); EasyMock.expect(instance.getPort()).andReturn(PORT).anyTimes(); EasyMock.expect(instance.getSslPort()).andReturn(SSL_PORT).anyTimes(); EasyMock.replay(instance, serviceProvider); Server server = serverDiscoverySelector.pick(); Assert.assertEquals(SSL_PORT, server.getPort()); Assert.assertEquals(ADDRESS, server.getAddress()); Assert.assertTrue(server.getHost().contains(Integer.toString(SSL_PORT))); Assert.assertTrue(server.getHost().contains(ADDRESS)); Assert.assertEquals("https", server.getScheme()); EasyMock.verify(instance, serviceProvider); final URI uri = new URI( server.getScheme(), null, server.getAddress(), server.getPort(), "/druid/indexer/v1/action", null, null ); Assert.assertEquals(SSL_PORT, uri.getPort()); Assert.assertEquals(ADDRESS, uri.getHost()); Assert.assertEquals("https", uri.getScheme()); }
@Test public void testPickWithNullSslPort() throws Exception { EasyMock.expect(serviceProvider.getInstance()).andReturn(instance).anyTimes(); EasyMock.expect(instance.getAddress()).andReturn(ADDRESS).anyTimes(); EasyMock.expect(instance.getPort()).andReturn(PORT).anyTimes(); EasyMock.expect(instance.getSslPort()).andReturn(null).anyTimes(); EasyMock.replay(instance, serviceProvider); Server server = serverDiscoverySelector.pick(); Assert.assertEquals(PORT, server.getPort()); Assert.assertEquals(ADDRESS, server.getAddress()); Assert.assertTrue(server.getHost().contains(Integer.toString(PORT))); Assert.assertTrue(server.getHost().contains(ADDRESS)); Assert.assertEquals("http", server.getScheme()); EasyMock.verify(instance, serviceProvider); final URI uri = new URI( server.getScheme(), null, server.getAddress(), server.getPort(), "/druid/indexer/v1/action", null, null ); Assert.assertEquals(PORT, uri.getPort()); Assert.assertEquals(ADDRESS, uri.getHost()); Assert.assertEquals("http", uri.getScheme()); }
@Test public void testPick() throws Exception { EasyMock.expect(serviceProvider.getInstance()).andReturn(instance).anyTimes(); EasyMock.expect(instance.getAddress()).andReturn(ADDRESS).anyTimes(); EasyMock.expect(instance.getPort()).andReturn(PORT).anyTimes(); EasyMock.expect(instance.getSslPort()).andReturn(-1).anyTimes(); EasyMock.replay(instance, serviceProvider); Server server = serverDiscoverySelector.pick(); Assert.assertEquals(PORT, server.getPort()); Assert.assertEquals(ADDRESS, server.getAddress()); Assert.assertTrue(server.getHost().contains(Integer.toString(PORT))); Assert.assertTrue(server.getHost().contains(ADDRESS)); Assert.assertEquals("http", server.getScheme()); EasyMock.verify(instance, serviceProvider); final URI uri = new URI( server.getScheme(), null, server.getAddress(), server.getPort(), "/druid/indexer/v1/action", null, null ); Assert.assertEquals(PORT, uri.getPort()); Assert.assertEquals(ADDRESS, uri.getHost()); Assert.assertEquals("http", uri.getScheme()); }
@Test public void testPickIPv6Bracket() throws Exception { final String ADDRESS = "[2001:0db8:0000:0000:0000:ff00:0042:8329]"; EasyMock.expect(serviceProvider.getInstance()).andReturn(instance).anyTimes(); EasyMock.expect(instance.getAddress()).andReturn(ADDRESS).anyTimes(); EasyMock.expect(instance.getPort()).andReturn(PORT).anyTimes(); EasyMock.expect(instance.getSslPort()).andReturn(-1).anyTimes(); EasyMock.replay(instance, serviceProvider); Server server = serverDiscoverySelector.pick(); Assert.assertEquals(PORT, server.getPort()); Assert.assertEquals(ADDRESS, server.getAddress()); Assert.assertTrue(server.getHost().contains(Integer.toString(PORT))); Assert.assertTrue(server.getHost().contains(ADDRESS)); Assert.assertEquals("http", server.getScheme()); EasyMock.verify(instance, serviceProvider); final URI uri = new URI( server.getScheme(), null, server.getAddress(), server.getPort(), "/druid/indexer/v1/action", null, null ); Assert.assertEquals(PORT, uri.getPort()); Assert.assertEquals(ADDRESS, uri.getHost()); Assert.assertEquals("http", uri.getScheme()); }
@Test public void testPickIPv6() throws Exception { final String ADDRESS = "2001:0db8:0000:0000:0000:ff00:0042:8329"; EasyMock.expect(serviceProvider.getInstance()).andReturn(instance).anyTimes(); EasyMock.expect(instance.getAddress()).andReturn(ADDRESS).anyTimes(); EasyMock.expect(instance.getPort()).andReturn(PORT).anyTimes(); EasyMock.expect(instance.getSslPort()).andReturn(-1).anyTimes(); EasyMock.replay(instance, serviceProvider); Server server = serverDiscoverySelector.pick(); Assert.assertEquals(PORT, server.getPort()); Assert.assertEquals(ADDRESS, server.getAddress()); Assert.assertTrue(server.getHost().contains(Integer.toString(PORT))); Assert.assertTrue(server.getHost().contains(ADDRESS)); Assert.assertEquals("http", server.getScheme()); EasyMock.verify(instance, serviceProvider); final URI uri = new URI( server.getScheme(), null, server.getAddress(), server.getPort(), "/druid/indexer/v1/action", null, null ); Assert.assertEquals(PORT, uri.getPort()); Assert.assertEquals(StringUtils.format("[%s]", ADDRESS), uri.getHost()); Assert.assertEquals("http", uri.getScheme()); }
@Override public boolean isSecure() { if (this.serviceInstance == null) { return false; } return this.serviceInstance.getSslPort() != null; }
instance.getPort() >= 0 || (instance.getSslPort() != null && instance.getSslPort() >= 0), "WTH?! Both port and sslPort not set" ); final int port; final String scheme; if (instance.getSslPort() == null) { port = instance.getPort(); scheme = "http"; } else { port = instance.getSslPort() >= 0 ? instance.getSslPort() : instance.getPort(); scheme = instance.getSslPort() >= 0 ? "https" : "http";
instance.getPort() >= 0 || (instance.getSslPort() != null && instance.getSslPort() >= 0), "WTH?! Both port and sslPort not set" ); final int port; final String scheme; if (instance.getSslPort() == null) { port = instance.getPort(); scheme = "http"; } else { port = instance.getSslPort() >= 0 ? instance.getSslPort() : instance.getPort(); scheme = instance.getSslPort() >= 0 ? "https" : "http";
@Override public boolean isSecure(Server server) { if (server instanceof ZookeeperServer) { ZookeeperServer zookeeperServer = (ZookeeperServer) server; Integer sslPort = zookeeperServer.getInstance().getSslPort(); return sslPort != null && sslPort > 0; } return super.isSecure(server); }
private DiscoveryInstance toSoaInstance(ServiceInstance<Payload> instance) { if ( instance == null ) { return null; } Payload payload = instance.getPayload(); int port = Objects.firstNonNull(instance.getPort(), Objects.firstNonNull(instance.getSslPort(), 0)); return new DiscoveryInstanceImpl(instance.getId(), instance.getAddress(), port, instance.getSslPort() != null, payload); }
/** * @param serviceId The service id to be used * @param serviceInstance The zookeeper service instance described by this service instance */ public ZookeeperServiceInstance(String serviceId, org.apache.curator.x.discovery.ServiceInstance<ZookeeperInstance> serviceInstance) { this.serviceId = serviceId; this.serviceInstance = serviceInstance; this.host = this.serviceInstance.getAddress(); this.secure = serviceInstance.getSslPort() != null; Integer port = serviceInstance.getPort(); if (this.secure) { port = serviceInstance.getSslPort(); } this.port = port; this.uri = URI.create(serviceInstance.buildUriSpec()); if (serviceInstance.getPayload() != null) { this.metadata = serviceInstance.getPayload().getMetadata(); } else { this.metadata = new HashMap<>(); } }
@Override public List<ServiceDefinition> getServices(String name) { if (serviceDiscovery == null) { return Collections.emptyList(); } try { return serviceDiscovery.queryForInstances(name).stream() .map(si -> { Map<String, String> meta = new HashMap<>(); ObjectHelper.ifNotEmpty(si.getPayload(), meta::putAll); meta.putIfAbsent(ServiceDefinition.SERVICE_META_NAME, si.getName()); meta.putIfAbsent(ServiceDefinition.SERVICE_META_ID, si.getId()); return new DefaultServiceDefinition( si.getName(), si.getAddress(), si.getSslPort() != null ? si.getSslPort() : si.getPort(), meta); }) .collect(Collectors.toList()); } catch (Exception e) { throw new RuntimeCamelException(e); } }
localVariables.put(FIELD_ADDRESS, nullCheck(serviceInstance.getAddress())); localVariables.put(FIELD_PORT, nullCheck(serviceInstance.getPort())); localVariables.put(FIELD_SSL_PORT, nullCheck(serviceInstance.getSslPort())); localVariables.put(FIELD_REGISTRATION_TIME_UTC, nullCheck(serviceInstance.getRegistrationTimeUTC())); localVariables.put(FIELD_SERVICE_TYPE, (serviceInstance.getServiceType() != null) ? serviceInstance.getServiceType().name().toLowerCase() : ""); if ( serviceInstance.getSslPort() != null )
instance.getRegistrationTimeUTC()); record.getMetadata().put("zookeeper-port", instance.getPort()); record.getMetadata().put("zookeeper-ssl-port", instance.getSslPort()); record.getMetadata().put("zookeeper-id", instance.getId()); } else { String uri = "http"; if (instance.getSslPort() != null) { uri += "s://" + instance.getAddress() + ":" + instance.getSslPort(); } else if (instance.getPort() != null) { uri += "s://" + instance.getAddress() + ":" + instance.getPort(); record.getLocation().put("port", instance.getPort()); if (instance.getSslPort() != null) { record.getLocation().put("ssl-port", instance.getSslPort());
instance.getRegistrationTimeUTC()); record.getMetadata().put("zookeeper-port", instance.getPort()); record.getMetadata().put("zookeeper-ssl-port", instance.getSslPort()); record.getMetadata().put("zookeeper-id", instance.getId()); } else { String uri = "http"; if (instance.getSslPort() != null) { uri += "s://" + instance.getAddress() + ":" + instance.getSslPort(); } else if (instance.getPort() != null) { uri += "s://" + instance.getAddress() + ":" + instance.getPort(); record.getLocation().put("port", instance.getPort()); if (instance.getSslPort() != null) { record.getLocation().put("ssl-port", instance.getSslPort());
public ServiceInstance<JsonObject> deserialize(byte[] bytes) throws Exception { ServiceInstance rawServiceInstance = this.mapper.readValue(bytes, this.type); ServiceInstanceBuilder<JsonObject> builder = ServiceInstance.<JsonObject>builder() .address(rawServiceInstance.getAddress()) .id(rawServiceInstance.getId()) .name(rawServiceInstance.getName()) .payload(new JsonObject(rawServiceInstance.getPayload().toString())) .registrationTimeUTC(rawServiceInstance.getRegistrationTimeUTC()) .serviceType(rawServiceInstance.getServiceType()); if (rawServiceInstance.getSslPort() != null) { builder.sslPort(rawServiceInstance.getSslPort()); } if (rawServiceInstance.getPort() != null) { builder.sslPort(rawServiceInstance.getPort()); } if (rawServiceInstance.getUriSpec() != null) { builder.uriSpec(rawServiceInstance.getUriSpec()); } return builder.build(); } }
public ServiceInstance<JsonObject> deserialize(byte[] bytes) throws Exception { ServiceInstance rawServiceInstance = this.mapper.readValue(bytes, this.type); ServiceInstanceBuilder<JsonObject> builder = ServiceInstance.<JsonObject>builder() .address(rawServiceInstance.getAddress()) .id(rawServiceInstance.getId()) .name(rawServiceInstance.getName()) .payload(new JsonObject(rawServiceInstance.getPayload().toString())) .registrationTimeUTC(rawServiceInstance.getRegistrationTimeUTC()) .serviceType(rawServiceInstance.getServiceType()); if (rawServiceInstance.getSslPort() != null) { builder.sslPort(rawServiceInstance.getSslPort()); } if (rawServiceInstance.getPort() != null) { builder.sslPort(rawServiceInstance.getPort()); } if (rawServiceInstance.getUriSpec() != null) { builder.uriSpec(rawServiceInstance.getUriSpec()); } return builder.build(); } }
@Override public byte[] serialize(ServiceInstance<T> instance) throws Exception { if ( compatibleSerializationMode ) { OldServiceInstance<T> compatible = new OldServiceInstance<T>(instance.getName(), instance.getId(), instance.getAddress(), instance.getPort(), instance.getSslPort(), instance.getPayload(), instance.getRegistrationTimeUTC(), instance.getServiceType(), instance.getUriSpec()); return mapper.writeValueAsBytes(compatible); } return mapper.writeValueAsBytes(instance); } }
static<T> ObjectNode writeInstance(ObjectMapper mapper, ServiceInstance<T> instance, DiscoveryContext<T> context) { ObjectNode node = mapper.createObjectNode(); node.put("name", instance.getName()); node.put("id", instance.getId()); node.put("address", instance.getAddress()); putInteger(node, "port", instance.getPort()); putInteger(node, "sslPort", instance.getSslPort()); node.put("registrationTimeUTC", instance.getRegistrationTimeUTC()); node.put("serviceType", instance.getServiceType().name()); try { context.marshallJson(node, "payload", instance.getPayload()); } catch ( Exception e ) { ThreadUtils.checkInterrupted(e); throw new WebApplicationException(e); } return node; }