/** * {@inheritDoc} */ @Override public ServiceDiscoveryOptions getDiscoveryOptions() { return options == null ? null : new ServiceDiscoveryOptions(options); }
public static void toJson(ServiceDiscoveryOptions obj, java.util.Map<String, Object> json) { if (obj.getAnnounceAddress() != null) { json.put("announceAddress", obj.getAnnounceAddress()); } json.put("autoRegistrationOfImporters", obj.isAutoRegistrationOfImporters()); if (obj.getBackendConfiguration() != null) { json.put("backendConfiguration", obj.getBackendConfiguration()); } if (obj.getName() != null) { json.put("name", obj.getName()); } if (obj.getUsageAddress() != null) { json.put("usageAddress", obj.getUsageAddress()); } } }
@Override public void start() { ServiceDiscovery discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions() .setAnnounceAddress("service-announce") .setName("my-name"));
/** * Stops listening to service discovery events if they are no longer in use, then closes the service discovery. * * @param options the service discovery options */ protected void stopListening(ServiceDiscoveryOptions options) { eventManager.unregisterConsumer(options.getAnnounceAddress()); eventManager.unregisterConsumer(options.getUsageAddress()); closeServiceDiscovery(options.getName()); }
@Before public void setUp() { vertx = Vertx.vertx(); options = new ServiceDiscoveryOptions().setName("theDiscovery") .setAnnounceAddress("foo").setUsageAddress("bar"); options2 = new ServiceDiscoveryOptions().setName("theDiscovery2") .setAnnounceAddress("foo").setUsageAddress("bar"); discovery = ServiceDiscovery.create(vertx, options); discovery2 = ServiceDiscovery.create(vertx, options); }
@Before public void setUp() { vertx = Vertx.vertx(); options = new ServiceDiscoveryOptions().setName("my-schema-discovery"); discovery = ServiceDiscovery.create(vertx, options); }
final AtomicInteger checkUsage = new AtomicInteger(1); options = new ServiceDiscoveryOptions().setName("the-discovery") .setAnnounceAddress("announceAddress").setUsageAddress("usageAddress"); SchemaAnnounceHandler announce = ann -> { context.assertTrue(checkAnnounce.get() == 0 && "theSchemaRecord".equals(ann.getName())); assertNotNull(registration.getDiscoveryOptions()); ServiceDiscoveryOptions registeredOptions = registration.getDiscoveryOptions(); assertEquals(options.getName(), registeredOptions.getName()); assertEquals(options.getAnnounceAddress(), registeredOptions.getAnnounceAddress()); assertEquals(options.getUsageAddress(), registeredOptions.getUsageAddress()); JsonObject wrongTypeRecord = new Record().setName("someRecord").toJson(); JsonObject matchingRecord = new Record().setName("theSchemaRecord")
@Test public void testName() { ServiceDiscoveryOptions options = new ServiceDiscoveryOptions().setName("my-name"); assertThat(options.getName()).isEqualToIgnoringCase("my-name"); }
@Override public void start() { discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions().setBackendConfiguration(config())); }
@Test public void testInitialRetrieval(TestContext tc) { Async async = tc.async(); ServiceDiscovery discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions().setAutoRegistrationOfImporters(false)); discovery.registerServiceImporter(new KubernetesServiceImporter(), config().copy().put("namespace", "default"), ar -> { if (ar.failed()) { tc.fail(ar.cause()); } else { discovery.getRecords(s -> true, res -> { if (res.failed()) { tc.fail(res.cause()); } else { tc.assertEquals(2, res.result().size()); async.complete(); } }); } }); }
case "announceAddress": if (member.getValue() instanceof String) { obj.setAnnounceAddress((String)member.getValue()); obj.setAutoRegistrationOfImporters((Boolean)member.getValue()); obj.setBackendConfiguration(((JsonObject)member.getValue()).copy()); obj.setName((String)member.getValue()); obj.setUsageAddress((String)member.getValue());
@Test public void should_Manage_Service_Discovery_Creation_And_Invoke_Close_Handler(TestContext context) { Async async = context.async(2); vertx.runOnContext(ctx -> { ServiceDiscovery serviceDiscoveryDefault = abstractRegistrar .getOrCreateDiscovery(new ServiceDiscoveryOptions(), null); context.assertNotNull(serviceDiscoveryDefault); ServiceDiscovery serviceDiscovery1 = abstractRegistrar.getOrCreateDiscovery(options, () -> { abstractRegistrar.closeServiceDiscovery(options.getName()); async.countDown(); return null; }); context.assertTrue(serviceDiscovery1 instanceof ManagedServiceDiscovery); context.assertEquals(1, abstractRegistrar.serviceDiscoveryNames().size()); serviceDiscoveryDefault.close(); context.assertEquals(1, abstractRegistrar.serviceDiscoveryNames().size()); ServiceDiscovery serviceDiscovery2 = abstractRegistrar.getOrCreateDiscovery(options, null); context.assertEquals(serviceDiscovery1, serviceDiscovery2); serviceDiscovery1.close(); context.assertEquals(1, async.count()); context.assertEquals(0, abstractRegistrar.serviceDiscoveryNames().size()); async.countDown(); }); async.awaitSuccess(); }
/** * Gets an existing managed repository, or creates it. * * @param options the service discovery options * @param closeHandler the action to perform when {@code discovery.close()} is called * @return the managed service discovery */ protected ServiceDiscovery getOrCreateDiscovery(ServiceDiscoveryOptions options, Action<Void> closeHandler) { if (options.getName() == null) { options.setName(getNodeId(vertx)); } String discoveryName = options.getName(); if (serviceDiscoveries.containsKey(discoveryName)) { return serviceDiscoveries.get(discoveryName); } ServiceDiscovery discovery = ServiceDiscovery.create(vertx, options); if (closeHandler != null) { discovery = ManagedServiceDiscovery.of(discovery, closeHandler); serviceDiscoveries.put(discoveryName, (ManagedServiceDiscovery) discovery); } return discovery; }
private void registerSchemaEventConsumers( ServiceDiscoveryOptions options, SchemaPublishedHandler<SchemaRegistration> publishedHandler, SchemaUnpublishedHandler<SchemaRegistration> unpublishedHandler) { SchemaAnnounceHandler announceHandler = record -> findRegistration(options.getName(), record.getName()).ifPresent(reg -> { if (Status.UP.equals(record.getStatus())) { publishedHandler.schemaPublished(reg); } else { unpublishedHandler.schemaUnpublished(reg); } }); consumerManager.registerConsumer(options.getAnnounceAddress(), announceHandler); }
@Test public void should_Include_Record_Name_And_Type_In_Equality_Check() { DiscoveryRegistration result1 = DiscoveryRegistration.create(discovery, options); assertNotEquals(result1, new testRegistration(discovery, options)); assertEquals(result1, DiscoveryRegistration.create(discovery, options)); DiscoveryRegistration result2 = DiscoveryRegistration.create(discovery2, options); assertNotEquals(result1, result2); DiscoveryRegistration result3 = DiscoveryRegistration.create(discovery2, options2); assertNotEquals(result2, result3); // Ignore addresses DiscoveryRegistration result4 = DiscoveryRegistration.create(discovery2, options.setAnnounceAddress("baz").setUsageAddress("brr")); assertEquals(result2, result4); assertEquals(result2.hashCode(), result4.hashCode()); }
@Before public void setUp() { vertx = Vertx.vertx(); options = new ServiceDiscoveryOptions().setName("theDiscovery") .setAnnounceAddress("theAnnounceAddress").setUsageAddress("theUsageAddress"); discovery = ServiceDiscovery.create(vertx, options); }
@Before public void setUp() { vertx = Vertx.vertx(); discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions().setName("test-discovery")); config = new JsonObject().put("deliveryOptions", new JsonObject().put("timeout", 1000).put("codecName", "theCodecName")); record = new Record().setLocation(new JsonObject().put(Record.ENDPOINT, "theEndpoint")); graphQLService = new io.engagingspaces.graphql.servicediscovery.service.impl.GraphQLServiceImpl(); }
@Test public void testName() { ServiceDiscoveryOptions options = new ServiceDiscoveryOptions().setName("my-name"); assertThat(options.getName()).isEqualToIgnoringCase("my-name"); }
@Override public void start() throws Exception { discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions().setBackendConfiguration(config())); JsonObject cbOptions = config().getJsonObject("circuit-breaker") != null ? config().getJsonObject("circuit-breaker") : new JsonObject(); circuitBreaker = CircuitBreaker.create(cbOptions.getString("name", "circuit-breaker"), vertx, new CircuitBreakerOptions() .setMaxFailures(cbOptions.getInteger("maxFailures", 5)) .setTimeout(cbOptions.getLong("timeout", 10000L)) .setFallbackOnFailure(true) .setResetTimeout(cbOptions.getLong("resetTimeout", 30000L)) ); }