Skip to content

Commit

Permalink
Change the version to 2.0.0.BUILD-SNAPSHOT to support Spring Boot 2.0…
Browse files Browse the repository at this point in the history
….0.RELEASE and Spring Cloud 2.0.0.x, spring-attic#46

1. Change the version to 2.0.0.BUILD-SNAPSHOT
2. Merge the spring-attic#43 from @venilnoronha for the EtcdLifecycle can't work now
3. Upgrade the etcd version to v3.3.1 for ci
  • Loading branch information
qiyi committed Mar 3, 2018
1 parent 7d640d7 commit 5ab50de
Show file tree
Hide file tree
Showing 22 changed files with 623 additions and 283 deletions.
2 changes: 1 addition & 1 deletion README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ See the https://coreos.com/etcd/[overview] for more information.

== Building

:jdkversion: 1.7
:jdkversion: 1.8

=== Basic Compile and Test

Expand Down
4 changes: 2 additions & 2 deletions docs/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-etcd</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<version>2.0.0.BUILD-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>spring-cloud-etcd-docs</artifactId>
<packaging>pom</packaging>
<name>Spring Cloud Etcd Docs</name>
<description>Spring Cloud Docs</description>
<version>1.0.0.BUILD-SNAPSHOT</version>
<version>2.0.0.BUILD-SNAPSHOT</version>
<properties>
<docs.main>spring-cloud-etcd</docs.main>
<main.basedir>${basedir}/..</main.basedir>
Expand Down
8 changes: 4 additions & 4 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,15 @@

<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-etcd</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<version>2.0.0.BUILD-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Spring Cloud Etcd</name>
<description>Spring Cloud Etcd</description>

<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-build</artifactId>
<version>1.3.1.BUILD-SNAPSHOT</version>
<version>2.0.0.BUILD-SNAPSHOT</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
Expand Down Expand Up @@ -41,8 +41,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
Expand Down
2 changes: 1 addition & 1 deletion spring-cloud-etcd-config/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-etcd</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<version>2.0.0.BUILD-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>

Expand Down
2 changes: 1 addition & 1 deletion spring-cloud-etcd-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-etcd</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<version>2.0.0.BUILD-SNAPSHOT</version>
<relativePath>../</relativePath>
</parent>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,24 @@

import mousio.etcd4j.EtcdClient;

import org.springframework.boot.actuate.endpoint.AbstractEndpoint;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.boot.context.properties.ConfigurationProperties;

/**
* @author Spencer Gibb
*/
@ConfigurationProperties(prefix = "endpoints.etcd", ignoreUnknownFields = false)
public class EtcdEndpoint extends AbstractEndpoint<EtcdEndpoint.Data> {
@Endpoint(id="etcd")
public class EtcdEndpoint {

private EtcdClient etcd;

public EtcdEndpoint(EtcdClient etcd) {
super("etcd", false, true);
this.etcd = etcd;
}

@Override
@ReadOperation
public Data invoke() {
Data data = new Data();
data.setVersion(etcd.getVersion());
Expand Down
14 changes: 7 additions & 7 deletions spring-cloud-etcd-dependencies/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,24 @@

<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-etcd-dependencies</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<version>2.0.0.BUILD-SNAPSHOT</version>
<packaging>pom</packaging>
<name>spring-cloud-etcd-dependencies</name>
<description>Spring Cloud Etcd Dependencies</description>

<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies-parent</artifactId>
<version>1.3.1.BUILD-SNAPSHOT</version>
<version>2.0.0.BUILD-SNAPSHOT</version>
<relativePath />
</parent>

<properties>
<spring-cloud-commons.version>1.1.0.BUILD-SNAPSHOT</spring-cloud-commons.version>
<spring-cloud-netflix.version>1.1.0.BUILD-SNAPSHOT</spring-cloud-netflix.version>
<archaius.version>0.7.1</archaius.version>
<etcd4j.version>2.7.0</etcd4j.version>
<netty.version>4.1.0.Beta5</netty.version>
<spring-cloud-commons.version>2.0.0.BUILD-SNAPSHOT</spring-cloud-commons.version>
<spring-cloud-netflix.version>2.0.0.BUILD-SNAPSHOT</spring-cloud-netflix.version>
<archaius.version>0.7.5</archaius.version>
<etcd4j.version>2.15.0</etcd4j.version>
<netty.version>4.1.22.Final</netty.version>
<common.configuration.version>1.8</common.configuration.version>
</properties>

Expand Down
2 changes: 1 addition & 1 deletion spring-cloud-etcd-discovery/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-etcd</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<version>2.0.0.BUILD-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/*
* Copyright 2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.springframework.cloud.etcd.discovery;

import javax.servlet.ServletContext;

import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.cloud.client.serviceregistry.AutoServiceRegistrationProperties;
import org.springframework.cloud.etcd.discovery.EtcdDiscoveryProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
* @author Venil Noronha
*/
@Configuration
@ConditionalOnBean(AutoServiceRegistrationProperties.class)
@ConditionalOnProperty(value = "spring.cloud.service-registry.auto-registration.enabled", matchIfMissing = true)
@AutoConfigureAfter(EtcdServiceRegistryAutoConfiguration.class)
public class EtcdAutoServiceRegistrationAutoConfiguration {

@Bean
@ConditionalOnMissingBean
public EtcdRegistration etcdRegistration(EtcdDiscoveryProperties properties, ApplicationContext applicationContext,
ServletContext servletContext) {
return EtcdRegistration.registration(properties, applicationContext, servletContext);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
package org.springframework.cloud.etcd.discovery;

import mousio.etcd4j.EtcdClient;
import mousio.etcd4j.responses.EtcdAuthenticationException;
import mousio.etcd4j.responses.EtcdException;
import mousio.etcd4j.responses.EtcdKeysResponse;
import org.springframework.beans.BeansException;
Expand All @@ -34,20 +35,21 @@

/**
* @author Spencer Gibb
* @author Venil Noronha
*/
public class EtcdDiscoveryClient implements DiscoveryClient, ApplicationContextAware {

private final EtcdClient etcd;

private final EtcdLifecycle lifecycle;

private final EtcdDiscoveryProperties properties;

private final EtcdRegistration registration;

private ApplicationContext context;

public EtcdDiscoveryClient(EtcdClient etcd, EtcdLifecycle lifecycle, EtcdDiscoveryProperties properties) {
public EtcdDiscoveryClient(EtcdClient etcd, EtcdRegistration registration, EtcdDiscoveryProperties properties) {
this.etcd = etcd;
this.lifecycle = lifecycle;
this.registration = registration;
this.properties = properties;
}

Expand All @@ -58,27 +60,31 @@ public String description() {

@Override
public ServiceInstance getLocalServiceInstance() {
return new DefaultServiceInstance(lifecycle.getService().getAppName(),
properties.getHostname(), lifecycle.getConfiguredPort(), false);
return new DefaultServiceInstance(registration.getService().getAppName(),
properties.getHostname(), registration.getService().getPort(), false);
}

@Override
public List<ServiceInstance> getInstances(final String serviceId) {
List<ServiceInstance> instances = null;
try {
EtcdKeysResponse response = etcd.getDir(lifecycle.getAppKey(serviceId)).send().get();
EtcdKeysResponse response = etcd.getDir(getAppKey(registration.getService().getAppName())).send().get();
List<EtcdKeysResponse.EtcdNode> nodes = response.node.nodes;
instances = new ArrayList<>();
for (EtcdKeysResponse.EtcdNode node : nodes) {
String[] parts = node.value.split(":");
instances.add(new DefaultServiceInstance(serviceId, parts[0], Integer.parseInt(parts[1]), false));
}
} catch (IOException | TimeoutException | EtcdException e) {
} catch (IOException | TimeoutException | EtcdException | EtcdAuthenticationException e) {
ReflectionUtils.rethrowRuntimeException(e);
}
return instances;
}

private String getAppKey(String appName) {
return properties.getDiscoveryPrefix() + "/" + appName;
}

@Override
public List<String> getServices() {
List<String> services = null;
Expand All @@ -91,7 +97,7 @@ public List<String> getServices() {
serviceId = serviceId.substring(1);
services.add(serviceId);
}
} catch (IOException | EtcdException | TimeoutException e) {
} catch (IOException | EtcdException | TimeoutException | EtcdAuthenticationException e) {
ReflectionUtils.rethrowRuntimeException(e);
}
return services;
Expand All @@ -102,8 +108,8 @@ public void setApplicationContext(ApplicationContext context) throws BeansExcept
this.context = context;
}

public EtcdLifecycle getLifecycle() {
return lifecycle;
public EtcdRegistration getRegistration() {
return registration;
}

public EtcdDiscoveryProperties getProperties() {
Expand All @@ -126,22 +132,22 @@ public boolean equals(Object o) {
EtcdDiscoveryClient that = (EtcdDiscoveryClient) o;

if (etcd != null ? !etcd.equals(that.etcd) : that.etcd != null) return false;
if (lifecycle != null ? !lifecycle.equals(that.lifecycle) : that.lifecycle != null) return false;
if (registration != null ? !registration.equals(that.registration) : that.registration != null) return false;
if (properties != null ? !properties.equals(that.properties) : that.properties != null) return false;
return context != null ? context.equals(that.context) : that.context == null;
}

@Override
public int hashCode() {
int result = etcd != null ? etcd.hashCode() : 0;
result = 31 * result + (lifecycle != null ? lifecycle.hashCode() : 0);
result = 31 * result + (registration != null ? registration.hashCode() : 0);
result = 31 * result + (properties != null ? properties.hashCode() : 0);
result = 31 * result + (context != null ? context.hashCode() : 0);
return result;
}

@Override
public String toString() {
return String.format("EtcdDiscoveryClient{etcd=%s, lifecycle=%s, properties=%s, context=%s}", etcd, lifecycle, properties, context);
return String.format("EtcdDiscoveryClient{etcd=%s, registration=%s, properties=%s, context=%s}", etcd, registration, properties, context);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,30 +19,35 @@
import mousio.etcd4j.EtcdClient;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
* @author Spencer Gibb
* @author Venil Noronha
*/
@Configuration
@ConditionalOnProperty(value = "spring.cloud.etcd.discovery.enabled", matchIfMissing = true)
@EnableScheduling
@EnableConfigurationProperties
public class EtcdDiscoveryClientConfiguration {

@Autowired
private EtcdClient client;

@Bean
public EtcdLifecycle etcdLifecycle() {
return new EtcdLifecycle(client, etcdDiscoveryProperties());
@ConditionalOnMissingBean
public HeartbeatScheduler heartbeatScheduler(EtcdDiscoveryProperties properties) {
return new HeartbeatScheduler(client, properties);
}

@Bean
public EtcdDiscoveryClient etcdDiscoveryClient() {
return new EtcdDiscoveryClient(client, etcdLifecycle(), etcdDiscoveryProperties());
@ConditionalOnMissingBean
public EtcdDiscoveryClient etcdDiscoveryClient(EtcdDiscoveryProperties properties, EtcdRegistration registration) {
return new EtcdDiscoveryClient(client, registration, properties);
}

@Bean
Expand Down
Loading

0 comments on commit 5ab50de

Please sign in to comment.