@Bean @ConditionalOnProperty(prefix="edison.serviceregistry", name="enabled", havingValue = "true") public ServiceDependency serviceRegistryDependency() { return ServiceDependencyBuilder.serviceDependency(serviceRegistryProperties.getServers()) .withName("Service Registry") .withDescription("Registers this service at a service registry") .withExpectations(expects(Availability.MEDIUM, Performance.MEDIUM)) .withCriticality(Criticality.criticality(Level.HIGH, "Service cannot be registered")) .build(); }
/** * Returns a builder instance that is initialized using a prototype ServiceDependency. * <p> * All values of the prototype are copied. * </p> * @param prototype the prototype dependency * @return ServiceDependencyBuilder */ public static ServiceDependencyBuilder copyOf(final ServiceDependency prototype) { return new ServiceDependencyBuilder() .withName(prototype.getName()) .withDescription(prototype.getDescription()) .withUrl(prototype.getUrl()) .withType(prototype.getType()) .withSubtype(prototype.getSubtype()) .withMethods(prototype.getMethods()) .withMediaTypes(prototype.getMediaTypes()) .withAuthentication(prototype.getAuthentication()) .withCriticality(prototype.getCriticality()) .withExpectations(prototype.getExpectations()); }
/** * Creates a generic ServiceDependencyBuilder with type="service" and subtype="OTHER". * * @param url the url or uri-template of the accessed service. * @return ServiceDependencyBuilder */ public static ServiceDependencyBuilder serviceDependency(final String url) { return new ServiceDependencyBuilder() .withUrl(url) .withType(ServiceDependency.TYPE_SERVICE) .withSubtype(ServiceDependency.SUBTYPE_OTHER); }
/** * Creates a ServiceDependencyBuilder with type="service" and subtype="REST". * * @param url the url or uri-template of the accessed REST service. * @return ServiceDependencyBuilder */ public static ServiceDependencyBuilder restServiceDependency(final String url) { return new ServiceDependencyBuilder() .withUrl(url) .withType(ServiceDependency.TYPE_SERVICE) .withSubtype(ServiceDependency.SUBTYPE_REST) .withMethods(singletonList("GET")) .withMediaTypes(singletonList("application/json")); }
@Test public void shouldCopyServiceDependency() { final ServiceDependency dependency = serviceDependency("http://example.com") .withName("name") .withDescription("description") .withMediaTypes(singletonList("application/json")) .withAuthentication(AUTH_HMAC) .withMethods(asList("GET", "HEAD")) .withType("some type") .withSubtype("some subtype") .build(); assertThat(dependency).isEqualTo(copyOf(dependency).build()); assertThat(dependency.hashCode()).isEqualTo(copyOf(dependency).build().hashCode()); }
@Test public void shouldBuildServiceDependency() { final ServiceDependency dependency = serviceDependency("http://example.com") .withName("name") .withDescription("description") .withMediaTypes(singletonList("application/json")) .withMethods(asList("GET", "HEAD")) .withAuthentication(AUTH_HMAC) .build(); assertThat(dependency.getName()).isEqualTo("name"); assertThat(dependency.getDescription()).isEqualTo("description"); assertThat(dependency.getAuthentication()).isEqualTo("HMAC"); assertThat(dependency.getMediaTypes()).contains("application/json"); assertThat(dependency.getMethods()).contains("GET", "HEAD"); assertThat(dependency.getType()).isEqualTo("service"); assertThat(dependency.getSubtype()).isEqualTo("OTHER"); assertThat(dependency.getUrl()).isEqualTo("http://example.com"); }
@Test public void shouldBuildRestServiceDependency() { final ServiceDependency dependency = restServiceDependency("http://example.com") .withName("name") .withDescription("description") .withMediaTypes(singletonList("application/json")) .withAuthentication(AUTH_OAUTH) .withMethods(asList("GET", "HEAD")) .build(); assertThat(dependency.getName()).isEqualTo("name"); assertThat(dependency.getDescription()).isEqualTo("description"); assertThat(dependency.getAuthentication()).isEqualTo("OAUTH"); assertThat(dependency.getMediaTypes()).contains("application/json"); assertThat(dependency.getMethods()).contains("GET", "HEAD"); assertThat(dependency.getType()).isEqualTo("service"); assertThat(dependency.getSubtype()).isEqualTo("REST"); assertThat(dependency.getUrl()).isEqualTo("http://example.com"); }
when(externalDependencies.getDependencies()).thenReturn(asList( mongoDependency(singletonList(datasource("foo:42/bar"))).build(), restServiceDependency("foobar:4711") .withCriticality(criticality(HIGH, "Bad. Really bad.")) .withExpectations(lowExpectations()) .build() )); mockMvc.perform(get("/internal/dependencies").accept(APPLICATION_JSON))
@Bean ServiceDependency someDependency() { return restServiceDependency("http://example.com/foo").build(); } }
when(externalDependencies.getDependencies()).thenReturn(asList( mongoDependency(singletonList(datasource("foo:42/bar"))).withName("test").build(), restServiceDependency("foobar:4711").build() )); mockMvc.perform(get("/internal/dependencies").accept(APPLICATION_JSON))