Skip to content

Commit

Permalink
Merge pull request #594 from qiangdavidliu/master
Browse files Browse the repository at this point in the history
Updating dependencies to jersey 1.19 and governator 1.7.5.
  • Loading branch information
qiangdavidliu committed Jul 23, 2015
2 parents e10cedc + 037415c commit ff6f011
Show file tree
Hide file tree
Showing 14 changed files with 62 additions and 68 deletions.
5 changes: 3 additions & 2 deletions build.gradle
Expand Up @@ -6,8 +6,9 @@ ext {
githubProjectName = 'eureka'
awsVersion='1.9.3'
servletVersion='2.5'
jerseyVersion='1.11'
governatorVersion='1.3.3'
jerseyVersion='1.19'
guiceVersion='4.0'
governatorVersion='1.7.5'
archaiusVersion='0.6.5'
blitzVersion='1.34'
mockitoVersion='1.9.5'
Expand Down
9 changes: 5 additions & 4 deletions eureka-client/build.gradle
Expand Up @@ -3,14 +3,15 @@ apply plugin: 'nebula-test-jar'
dependencies {
compile "com.netflix.netflix-commons:netflix-eventbus:0.1.2"
compile 'com.thoughtworks.xstream:xstream:1.4.2'
compile "com.netflix.archaius:archaius-core:$archaiusVersion"
compile "com.netflix.archaius:archaius-core:${archaiusVersion}"
compile 'javax.ws.rs:jsr311-api:1.1.1'
compile 'com.netflix.servo:servo-core:0.8.3'
compile "com.sun.jersey:jersey-core:$jerseyVersion"
compile "com.sun.jersey:jersey-client:$jerseyVersion"
compile "com.sun.jersey:jersey-core:${jerseyVersion}"
compile "com.sun.jersey:jersey-client:${jerseyVersion}"
compile 'com.sun.jersey.contribs:jersey-apache-client4:1.11'
compile 'org.apache.httpcomponents:httpclient:4.2.1'
compile "com.netflix.governator:governator:$governatorVersion"
compile "com.google.inject:guice:${guiceVersion}"
compile "com.netflix.governator:governator-annotations:${governatorVersion}"
runtime 'org.codehaus.jettison:jettison:1.2'

testCompile project(':eureka-test-utils')
Expand Down
Expand Up @@ -17,13 +17,13 @@
package com.netflix.appinfo;

import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import com.netflix.appinfo.InstanceInfo.InstanceStatus;
import com.netflix.appinfo.providers.EurekaConfigBasedInstanceInfoProvider;
import com.netflix.discovery.StatusChangeEvent;
import com.netflix.governator.guice.lazy.FineGrainedLazySingleton;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -44,7 +44,7 @@
* @author Karthik Ranganathan, Greg Kim
*
*/
@FineGrainedLazySingleton
@Singleton
public class ApplicationInfoManager {
private static final Logger logger = LoggerFactory.getLogger(ApplicationInfoManager.class);
private static ApplicationInfoManager instance = new ApplicationInfoManager();
Expand Down
Expand Up @@ -25,10 +25,11 @@
import com.netflix.appinfo.providers.CloudInstanceConfigProvider;
import com.netflix.config.DynamicBooleanProperty;
import com.netflix.config.DynamicPropertyFactory;
import com.netflix.governator.guice.lazy.FineGrainedLazySingleton;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.inject.Singleton;

/**
* An {@link InstanceInfo} configuration for AWS cloud deployments.
*
Expand All @@ -43,7 +44,7 @@
* @author Karthik Ranganathan
*
*/
@FineGrainedLazySingleton
@Singleton
@ProvidedBy(CloudInstanceConfigProvider.class)
public class CloudInstanceConfig extends PropertiesInstanceConfig {
private static final Logger logger = LoggerFactory.getLogger(CloudInstanceConfig.class);
Expand Down
Expand Up @@ -17,15 +17,16 @@

import com.google.inject.ProvidedBy;
import com.netflix.appinfo.providers.MyDataCenterInstanceConfigProvider;
import com.netflix.governator.guice.lazy.FineGrainedLazySingleton;

import javax.inject.Singleton;

/**
* An {@link InstanceInfo} configuration for the non-AWS datacenter.
*
* @author Karthik Ranganathan
*
*/
@FineGrainedLazySingleton
@Singleton
@ProvidedBy(MyDataCenterInstanceConfigProvider.class)
public class MyDataCenterInstanceConfig extends PropertiesInstanceConfig
implements EurekaInstanceConfig {
Expand Down
@@ -1,6 +1,7 @@
package com.netflix.appinfo.providers;

import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.Map;

import com.google.inject.Provider;
Expand All @@ -9,7 +10,6 @@
import com.netflix.appinfo.InstanceInfo.InstanceStatus;
import com.netflix.appinfo.InstanceInfo.PortType;
import com.netflix.appinfo.LeaseInfo;
import com.netflix.governator.guice.lazy.LazySingleton;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -23,7 +23,7 @@
* @author elandau
*
*/
@LazySingleton
@Singleton
public class EurekaConfigBasedInstanceInfoProvider implements Provider<InstanceInfo> {
private static final Logger LOG = LoggerFactory.getLogger(EurekaConfigBasedInstanceInfoProvider.class);

Expand Down
Expand Up @@ -17,6 +17,7 @@
package com.netflix.discovery;

import javax.annotation.Nullable;
import javax.inject.Singleton;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
Expand All @@ -27,7 +28,6 @@
import com.netflix.config.DynamicPropertyFactory;
import com.netflix.config.DynamicStringProperty;
import com.netflix.discovery.providers.DefaultEurekaClientConfigProvider;
import com.netflix.governator.guice.lazy.FineGrainedLazySingleton;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -54,7 +54,7 @@
* @author Karthik Ranganathan
*
*/
@FineGrainedLazySingleton
@Singleton
@ProvidedBy(DefaultEurekaClientConfigProvider.class)
public class DefaultEurekaClientConfig implements EurekaClientConfig {
private static final String ARCHAIUS_DEPLOYMENT_ENVIRONMENT = "archaius.deployment.environment";
Expand Down
Expand Up @@ -18,6 +18,7 @@

import javax.annotation.Nullable;
import javax.annotation.PreDestroy;
import javax.inject.Singleton;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.core.UriBuilder;
Expand Down Expand Up @@ -68,7 +69,6 @@
import com.netflix.discovery.shared.EurekaJerseyClient;
import com.netflix.discovery.shared.EurekaJerseyClient.JerseyClient;
import com.netflix.eventbus.spi.EventBus;
import com.netflix.governator.guice.lazy.FineGrainedLazySingleton;
import com.netflix.servo.monitor.Counter;
import com.netflix.servo.monitor.Monitors;
import com.netflix.servo.monitor.Stopwatch;
Expand Down Expand Up @@ -104,7 +104,7 @@
* @author Spencer Gibb
*
*/
@FineGrainedLazySingleton
@Singleton
public class DiscoveryClient implements EurekaClient {
private static final Logger logger = LoggerFactory.getLogger(DiscoveryClient.class);
private static final DynamicPropertyFactory configInstance = DynamicPropertyFactory.getInstance();
Expand Down
Expand Up @@ -2,14 +2,14 @@

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.inject.Singleton;
import java.util.concurrent.atomic.AtomicLong;

import com.google.inject.Inject;
import com.netflix.appinfo.InstanceInfo;
import com.netflix.eventbus.spi.EventBus;
import com.netflix.eventbus.spi.InvalidSubscriberException;
import com.netflix.eventbus.spi.Subscribe;
import com.netflix.governator.guice.lazy.LazySingleton;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -20,7 +20,7 @@
* @author elandau
*
*/
@LazySingleton
@Singleton
public class EurekaUpStatusResolver {
private static Logger LOG = LoggerFactory.getLogger(EurekaUpStatusResolver.class);

Expand Down
Expand Up @@ -10,7 +10,6 @@
import com.netflix.appinfo.InstanceInfo;
import com.netflix.governator.annotations.binding.DownStatus;
import com.netflix.governator.annotations.binding.UpStatus;
import com.netflix.governator.guice.lazy.LazySingleton;

/**
* Specific bindings for eureka status checker.
Expand All @@ -29,7 +28,7 @@
*/
@Singleton
public class InternalEurekaStatusModule extends AbstractModule {
@LazySingleton
@Singleton
public static class UpStatusProvider implements Provider<Supplier<Boolean>> {
@Inject
private Provider<EurekaUpStatusResolver> upStatus;
Expand All @@ -46,7 +45,7 @@ public Boolean get() {
}
}

@LazySingleton
@Singleton
public static class DownStatusProvider implements Provider<Supplier<Boolean>> {
@Inject
private Provider<EurekaUpStatusResolver> upStatus;
Expand Down
13 changes: 7 additions & 6 deletions eureka-core/build.gradle
@@ -1,14 +1,15 @@
dependencies {
compile project(':eureka-client')

compile "com.amazonaws:aws-java-sdk-core:$awsVersion"
compile "com.amazonaws:aws-java-sdk-ec2:$awsVersion"
compile "com.amazonaws:aws-java-sdk-autoscaling:$awsVersion"
compile "com.amazonaws:aws-java-sdk-sts:$awsVersion"
compile "javax.servlet:servlet-api:$servletVersion"
compile "com.amazonaws:aws-java-sdk-core:${awsVersion}"
compile "com.amazonaws:aws-java-sdk-ec2:${awsVersion}"
compile "com.amazonaws:aws-java-sdk-autoscaling:${awsVersion}"
compile "com.amazonaws:aws-java-sdk-sts:${awsVersion}"
compile "javax.servlet:servlet-api:${servletVersion}"
compile "com.netflix.governator:governator:${governatorVersion}"
compile 'com.thoughtworks.xstream:xstream:1.4.2'
compile 'javax.ws.rs:jsr311-api:1.1.1'
compile "com.netflix.blitz4j:blitz4j:$blitzVersion"
compile "com.netflix.blitz4j:blitz4j:${blitzVersion}"

testCompile project(':eureka-test-utils')
testCompile "junit:junit:${junit_version}"
Expand Down
3 changes: 2 additions & 1 deletion eureka-examples/build.gradle
Expand Up @@ -4,7 +4,8 @@ dependencies {
compile project(':eureka-client')
compile files('conf')

compile 'org.slf4j:slf4j-simple:1.7.7'
compile "com.netflix.governator:governator:${governatorVersion}"
runtime 'org.slf4j:slf4j-simple:1.7.7'
}

startScripts.enabled = false
Expand Down
@@ -1,20 +1,13 @@
package com.netflix.eureka;

import com.google.inject.AbstractModule;
import com.google.inject.Injector;
import com.google.inject.Scopes;
import com.google.inject.util.Modules;

import com.netflix.appinfo.EurekaInstanceConfig;
import com.netflix.appinfo.MyDataCenterInstanceConfig;
import com.netflix.config.DynamicPropertyFactory;
import com.netflix.discovery.guice.EurekaModule;
import com.netflix.eventbus.impl.EventBusImpl;
import com.netflix.eventbus.spi.EventBus;
import com.netflix.governator.guice.LifecycleInjector;
import com.netflix.governator.guice.LifecycleInjectorBuilder;
import com.netflix.governator.guice.LifecycleInjectorMode;
import com.netflix.governator.lifecycle.LifecycleManager;
import com.netflix.governator.Governator;
import com.netflix.governator.LifecycleInjector;

/**
* Sample Eureka service that registers with Eureka to receive and process requests, using EurekaModule.
Expand All @@ -30,48 +23,42 @@ protected void configure() {
}
}

private static ExampleServiceBase init() throws Exception {
private static LifecycleInjector init() throws Exception {
System.out.println("Creating injector for Example Service");

// Simulated Child Injectors required for the optional @Injects in DiscoveryClient
LifecycleInjectorBuilder builder = LifecycleInjector.builder().withMode(LifecycleInjectorMode.SIMULATED_CHILD_INJECTORS);
builder.withModules(
Modules
.override(new EurekaModule())
.with(new AbstractModule() {
@Override
protected void configure() {
DynamicPropertyFactory configInstance = com.netflix.config.DynamicPropertyFactory.getInstance();
bind(DynamicPropertyFactory.class).toInstance(configInstance);
// the default impl of EurekaInstanceConfig is CloudInstanceConfig, which we only want in an AWS
// environment. Here we override that by binding MyDataCenterInstanceConfig to EurekaInstanceConfig.
bind(EurekaInstanceConfig.class).to(MyDataCenterInstanceConfig.class);
LifecycleInjector injector = Governator.createInjector(
Modules.override(new EurekaModule()).with(new AbstractModule() {
@Override
protected void configure() {
DynamicPropertyFactory configInstance = com.netflix.config.DynamicPropertyFactory.getInstance();
bind(DynamicPropertyFactory.class).toInstance(configInstance);
// the default impl of EurekaInstanceConfig is CloudInstanceConfig, which we only want in an AWS
// environment. Here we override that by binding MyDataCenterInstanceConfig to EurekaInstanceConfig.
bind(EurekaInstanceConfig.class).to(MyDataCenterInstanceConfig.class);

// (DiscoveryClient optional bindings) bind the optional event bus
// bind(EventBus.class).to(EventBusImpl.class).in(Scopes.SINGLETON);
}
// (DiscoveryClient optional bindings) bind the optional event bus
// bind(EventBus.class).to(EventBusImpl.class).in(Scopes.SINGLETON);
}
}),
new ExampleServiceModule());
new ExampleServiceModule()
);

Injector injector = builder.build().createInjector();
LifecycleManager lifecycleManager = injector.getInstance(LifecycleManager.class);
lifecycleManager.start();

System.out.println("Done creating the injector");
return injector.getInstance(ExampleServiceBase.class);
return injector;
}

public static void main(String[] args) throws Exception {
ExampleServiceBase exampleServiceBase = null;
LifecycleInjector injector = null;
try {
exampleServiceBase = init();
exampleServiceBase.start();
injector = init();
injector.awaitTermination();
} catch (Exception e) {
System.out.println("Error starting the sample service: " + e);
e.printStackTrace();
} finally {
if (exampleServiceBase != null) {
exampleServiceBase.stop();
if (injector != null) {
injector.shutdown();
}
}
}
Expand Down
Expand Up @@ -5,6 +5,8 @@
import com.netflix.config.DynamicPropertyFactory;
import com.netflix.discovery.EurekaClient;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.inject.Inject;
import javax.inject.Singleton;
import java.io.BufferedReader;
Expand Down Expand Up @@ -37,6 +39,7 @@ public ExampleServiceBase(ApplicationInfoManager applicationInfoManager,
this.configInstance = configInstance;
}

@PostConstruct
public void start() {
// A good practice is to register as STARTING and only change status to UP
// after the service is ready to receive traffic
Expand Down Expand Up @@ -80,14 +83,13 @@ public void start() {

}

@PreDestroy
public void stop() {
if (eurekaClient != null) {
eurekaClient.shutdown();
}
}



private void waitForRegistrationWithEureka(EurekaClient eurekaClient) {
// my vip address to listen on
String vipAddress = configInstance.getStringProperty("eureka.vipAddress", "sampleservice.mydomain.net").get();
Expand Down

0 comments on commit ff6f011

Please sign in to comment.