public Iterable<ServiceDescriptor> getServiceDescriptors(final String type) { return Iterables.filter(getServiceDescriptors(), new Predicate<ServiceDescriptor>() { @Override public boolean apply(ServiceDescriptor serviceDescriptor) { return serviceDescriptor.getType().equals(type); } }); }
@Override public ListenableFuture<List<ServiceDescriptor>> refresh() { // this should be async, but it is never used inventory.updateServiceInventory(); return immediateFuture(selectAllServices()); } }
@Test public void testFileServiceInventory() throws Exception { try (JettyHttpClient httpClient = new JettyHttpClient()) { ServiceInventoryConfig serviceInventoryConfig = new ServiceInventoryConfig() .setServiceInventoryUri(Resources.getResource("service-inventory.json").toURI()); ServiceInventory serviceInventory = new ServiceInventory(serviceInventoryConfig, new NodeInfo("test"), JsonCodec.jsonCodec(ServiceDescriptorsRepresentation.class), httpClient); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery")), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery", "general")), 2); serviceInventory.updateServiceInventory(); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery")), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery", "general")), 2); } }
logServerError("Expected environment to be %s, but was %s", environment, serviceDescriptorsRepresentation.getEnvironment()); logServerError("Error loading service inventory from %s", serviceInventoryUri.toASCIIString());
@Test public void testFileServiceInventory() throws Exception { ServiceInventoryConfig serviceInventoryConfig = new ServiceInventoryConfig() .setServiceInventoryUri(Resources.getResource("service-inventory.json").toURI()); ServiceInventory serviceInventory = new ServiceInventory(serviceInventoryConfig, new NodeInfo("test"), JsonCodec.jsonCodec(ServiceDescriptorsRepresentation.class), new ApacheHttpClient()); Assert.assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 2); Assert.assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery")), 2); Assert.assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery", "general")), 2); serviceInventory.updateServiceInventory(); Assert.assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 2); Assert.assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery")), 2); Assert.assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery", "general")), 2); }
logServerError("Expected environment to be %s, but was %s", environment, serviceDescriptorsRepresentation.getEnvironment()); logServerError("Error loading service inventory from %s", serviceInventoryUri.toASCIIString());
@Test public void testNullServiceInventory() throws Exception { ServiceInventory serviceInventory = new ServiceInventory(new ServiceInventoryConfig(), new NodeInfo("test"), JsonCodec.jsonCodec(ServiceDescriptorsRepresentation.class), new ApacheHttpClient()); Assert.assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 0); serviceInventory.updateServiceInventory(); Assert.assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 0); }
public Iterable<ServiceDescriptor> getServiceDescriptors(final String type, final String pool) { return Iterables.filter(getServiceDescriptors(), new Predicate<ServiceDescriptor>() { @Override public boolean apply(ServiceDescriptor serviceDescriptor) { return serviceDescriptor.getType().equals(type) && serviceDescriptor.getPool().equals(pool); } }); }
@Override public ListenableFuture<List<ServiceDescriptor>> refresh() { // todo modify Service inventory to be async inventory.updateServiceInventory(); return immediateFuture(selectAllServices()); } }
logServerError("Expected environment to be %s, but was %s", environment, serviceDescriptorsRepresentation.getEnvironment()); logServerError("Error loading service inventory from %s", serviceInventoryUri.toASCIIString());
@Test public void testNullServiceInventory() { try (JettyHttpClient httpClient = new JettyHttpClient()) { ServiceInventory serviceInventory = new ServiceInventory(new ServiceInventoryConfig(), new NodeInfo("test"), JsonCodec.jsonCodec(ServiceDescriptorsRepresentation.class), httpClient); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 0); serviceInventory.updateServiceInventory(); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 0); } }
public Iterable<ServiceDescriptor> getServiceDescriptors(final String type, final String pool) { return Iterables.filter(getServiceDescriptors(), new Predicate<ServiceDescriptor>() { @Override public boolean apply(ServiceDescriptor serviceDescriptor) { return serviceDescriptor.getType().equals(type) && serviceDescriptor.getPool().equals(pool); } }); }
@Override public void run() { try { updateServiceInventory(); } catch (Throwable e) { log.error(e, "Unexpected exception from service inventory update"); } } }, (long) updateInterval.toMillis(), (long) updateInterval.toMillis(), TimeUnit.MILLISECONDS);
@Test public void testFileServiceInventory() throws Exception { try (JettyHttpClient httpClient = new JettyHttpClient()) { ServiceInventoryConfig serviceInventoryConfig = new ServiceInventoryConfig() .setServiceInventoryUri(Resources.getResource("service-inventory.json").toURI()); ServiceInventory serviceInventory = new ServiceInventory(serviceInventoryConfig, new NodeInfo("test"), JsonCodec.jsonCodec(ServiceDescriptorsRepresentation.class), httpClient); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery")), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery", "general")), 2); serviceInventory.updateServiceInventory(); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery")), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery", "general")), 2); } }
public Iterable<ServiceDescriptor> getServiceDescriptors(final String type) { return Iterables.filter(getServiceDescriptors(), new Predicate<ServiceDescriptor>() { @Override public boolean apply(ServiceDescriptor serviceDescriptor) { return serviceDescriptor.getType().equals(type); } }); }
@Override public void run() { try { updateServiceInventory(); } catch (Throwable e) { log.error(e, "Unexpected exception from service inventory update"); } } }, updateInterval.toMillis(), updateInterval.toMillis(), TimeUnit.MILLISECONDS);
@Test public void testNullServiceInventory() { try (JettyHttpClient httpClient = new JettyHttpClient()) { ServiceInventory serviceInventory = new ServiceInventory(new ServiceInventoryConfig(), new NodeInfo("test"), JsonCodec.jsonCodec(ServiceDescriptorsRepresentation.class), httpClient); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 0); serviceInventory.updateServiceInventory(); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 0); } }
@Override public List<ServiceDescriptor> selectAllServices() { return ImmutableList.copyOf(inventory.getServiceDescriptors(getType())); }
@Inject public ServiceInventory(ServiceInventoryConfig config, NodeInfo nodeInfo, JsonCodec<ServiceDescriptorsRepresentation> serviceDescriptorsCodec, @ForDiscoveryClient HttpClient httpClient) { requireNonNull(config, "config is null"); requireNonNull(nodeInfo, "nodeInfo is null"); requireNonNull(serviceDescriptorsCodec, "serviceDescriptorsCodec is null"); requireNonNull(httpClient, "httpClient is null"); this.nodeInfo = nodeInfo; this.environment = nodeInfo.getEnvironment(); this.serviceInventoryUri = config.getServiceInventoryUri(); updateInterval = config.getUpdateInterval(); this.serviceDescriptorsCodec = serviceDescriptorsCodec; this.httpClient = httpClient; if (serviceInventoryUri != null) { String scheme = serviceInventoryUri.getScheme().toLowerCase(); Preconditions.checkArgument(scheme.equals("http") || scheme.equals("https") || scheme.equals("file"), "Service inventory uri must have a http, https, or file scheme"); try { updateServiceInventory(); } catch (Exception ignored) { } } }
.setServiceInventoryUri(baseURI); ServiceInventory serviceInventory = new ServiceInventory(serviceInventoryConfig, new NodeInfo("test"), JsonCodec.jsonCodec(ServiceDescriptorsRepresentation.class), httpClient); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery")), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery", "general")), 2); serviceInventory.updateServiceInventory(); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors()), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery")), 2); assertEquals(Iterables.size(serviceInventory.getServiceDescriptors("discovery", "general")), 2);