@Override public String getClientDataAccept() { return prefixedConfig.getString(CLIENT_DATA_ACCEPT_KEY, EurekaAccept.full.name()); }
@GET @Path("{vipAddress}") public Response statusUpdate(@PathParam("version") String version, @PathParam("vipAddress") String vipAddress, @HeaderParam("Accept") final String acceptHeader, @HeaderParam(EurekaAccept.HTTP_X_EUREKA_ACCEPT) String eurekaAccept) { return getVipResponse(version, vipAddress, acceptHeader, EurekaAccept.fromString(eurekaAccept), Key.EntityType.VIP); }
public static EurekaAccept fromString(String name) { if (name == null || name.isEmpty()) { return full; } try { return EurekaAccept.valueOf(name.toLowerCase()); } catch (Exception e) { return full; } } }
@Override public JerseyEurekaHttpClientFactory build() { Map<String, String> additionalHeaders = new HashMap<>(); if (allowRedirect) { additionalHeaders.put(HTTP_X_DISCOVERY_ALLOW_REDIRECT, "true"); } if (EurekaAccept.compact == eurekaAccept) { additionalHeaders.put(EurekaAccept.HTTP_X_EUREKA_ACCEPT, eurekaAccept.name()); } if (experimental) { return buildExperimental(additionalHeaders); } return buildLegacy(additionalHeaders, systemSSL); }
@GET @Path("{svipAddress}") public Response statusUpdate(@PathParam("version") String version, @PathParam("svipAddress") String svipAddress, @HeaderParam("Accept") final String acceptHeader, @HeaderParam(EurekaAccept.HTTP_X_EUREKA_ACCEPT) String eurekaAccept) { return getVipResponse(version, svipAddress, acceptHeader, EurekaAccept.fromString(eurekaAccept), Key.EntityType.SVIP); }
public static EurekaAccept fromString(String name) { if (name == null || name.isEmpty()) { return full; } try { return EurekaAccept.valueOf(name.toLowerCase()); } catch (Exception e) { return full; } } }
public Key(EntityType entityType, String entityName, KeyType type, Version v, EurekaAccept eurekaAccept, @Nullable String[] regions) { this.regions = regions; this.entityType = entityType; this.entityName = entityName; this.requestType = type; this.requestVersion = v; this.eurekaAccept = eurekaAccept; hashKey = this.entityType + this.entityName + (null != this.regions ? Arrays.toString(this.regions) : "") + requestType.name() + requestVersion.name() + this.eurekaAccept.name(); }
/** * Resolve the decoder to use based on the specified decoder name, as well as the specified eurekaAccept. * The eurekAccept trumps the decoder name if the decoder specified is one that is not valid for use for the * specified eurekaAccept. */ public static synchronized DecoderWrapper resolveDecoder(String name, String eurekaAccept) { EurekaAccept accept = EurekaAccept.fromString(eurekaAccept); switch (accept) { case compact: return getDecoder(JacksonJsonMini.class); case full: default: return getDecoder(name); } }
@Override public String getClientDataAccept() { return configInstance.getStringProperty( namespace + CLIENT_DATA_ACCEPT_KEY, EurekaAccept.full.name()).get(); }
keyType, CurrentRequestVersion.get(), EurekaAccept.fromString(eurekaAccept) );
@Test public void testFullAppsGetGzipJsonHeaderType() throws Exception { Response response = applicationsResource.getContainers( Version.V2.name(), MediaType.APPLICATION_JSON, "gzip", // encoding EurekaAccept.full.name(), null, // uriInfo null // remote regions ); assertThat(response.getMetadata().getFirst("Content-Encoding").toString(), is("gzip")); assertThat(response.getMetadata().getFirst("Content-Type").toString(), is(MediaType.APPLICATION_JSON)); }
keyType, CurrentRequestVersion.get(), EurekaAccept.fromString(eurekaAccept), regions );
@Test public void testFullAppsGetGzipXmlHeaderType() throws Exception { Response response = applicationsResource.getContainers( Version.V2.name(), MediaType.APPLICATION_XML, "gzip", // encoding EurekaAccept.full.name(), null, // uriInfo null // remote regions ); assertThat(response.getMetadata().getFirst("Content-Encoding").toString(), is("gzip")); assertThat(response.getMetadata().getFirst("Content-Type").toString(), is(MediaType.APPLICATION_XML)); }
keyType, CurrentRequestVersion.get(), EurekaAccept.fromString(eurekaAccept), regions );
@Test public void testFullAppGet() throws Exception { Response response = applicationResource.getApplication( Version.V2.name(), MediaType.APPLICATION_JSON, EurekaAccept.full.name() ); String json = String.valueOf(response.getEntity()); DecoderWrapper decoder = CodecWrappers.getDecoder(CodecWrappers.LegacyJacksonJson.class); Application decodedApp = decoder.decode(json, Application.class); assertThat(EurekaEntityComparators.equal(testApplication, decodedApp), is(true)); }
public B withClientConfig(EurekaClientConfig clientConfig) { withClientAccept(EurekaAccept.fromString(clientConfig.getClientDataAccept())); withAllowRedirect(clientConfig.allowRedirects()); withConnectionTimeout(clientConfig.getEurekaServerConnectTimeoutSeconds() * 1000); withReadTimeout(clientConfig.getEurekaServerReadTimeoutSeconds() * 1000); withMaxConnectionsPerHost(clientConfig.getEurekaServerTotalConnectionsPerHost()); withMaxTotalConnections(clientConfig.getEurekaServerTotalConnections()); withConnectionIdleTimeout(clientConfig.getEurekaConnectionIdleTimeoutSeconds() * 1000); withEncoder(clientConfig.getEncoderName()); return withDecoder(clientConfig.getDecoderName(), clientConfig.getClientDataAccept()); }
@Test public void testMiniAppGet() throws Exception { Response response = applicationResource.getApplication( Version.V2.name(), MediaType.APPLICATION_JSON, EurekaAccept.compact.name() ); String json = String.valueOf(response.getEntity()); DecoderWrapper decoder = CodecWrappers.getDecoder(CodecWrappers.LegacyJacksonJson.class); Application decodedApp = decoder.decode(json, Application.class); // assert false as one is mini, so should NOT equal assertThat(EurekaEntityComparators.equal(testApplication, decodedApp), is(false)); for (InstanceInfo instanceInfo : testApplication.getInstances()) { InstanceInfo decodedInfo = decodedApp.getByInstanceId(instanceInfo.getId()); assertThat(EurekaEntityComparators.equalMini(instanceInfo, decodedInfo), is(true)); } }
@GET @Path("{vipAddress}") public Response statusUpdate(@PathParam("version") String version, @PathParam("vipAddress") String vipAddress, @HeaderParam("Accept") final String acceptHeader, @HeaderParam(EurekaAccept.HTTP_X_EUREKA_ACCEPT) String eurekaAccept) { return getVipResponse(version, vipAddress, acceptHeader, EurekaAccept.fromString(eurekaAccept), Key.EntityType.VIP); }
@Override protected EurekaHttpClient getEurekaHttpClient(URI serviceURI) { Preconditions.checkState(eurekaHttpClient == null, "EurekaHttpClient has been already created"); httpClientFactory = JerseyEurekaHttpClientFactory.newBuilder() .withClientName("test") .withMaxConnectionsPerHost(10) .withMaxTotalConnections(10) .withDecoder(JacksonJson.class.getSimpleName(), EurekaAccept.full.name()) .withEncoder(JacksonJson.class.getSimpleName()) .build(); this.eurekaHttpClient = httpClientFactory.newClient(new DefaultEndpoint(serviceURI.toString())); return eurekaHttpClient; } }
@GET @Path("{svipAddress}") public Response statusUpdate(@PathParam("version") String version, @PathParam("svipAddress") String svipAddress, @HeaderParam("Accept") final String acceptHeader, @HeaderParam(EurekaAccept.HTTP_X_EUREKA_ACCEPT) String eurekaAccept) { return getVipResponse(version, svipAddress, acceptHeader, EurekaAccept.fromString(eurekaAccept), Key.EntityType.SVIP); }