Skip to content
This repository was archived by the owner on Apr 4, 2022. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 10 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 All @@ -33,11 +33,19 @@
<id>docs</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<inherited>false</inherited>
</plugin>
<plugin>
<groupId>com.agilejava.docbkx</groupId>
<artifactId>docbkx-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
Expand Down
30 changes: 0 additions & 30 deletions docs/src/main/ruby/generate_readme.sh

This file was deleted.

10 changes: 5 additions & 5 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 All @@ -53,7 +53,7 @@
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.RELEASE</version>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
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
19 changes: 12 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.RELEASE</spring-cloud-commons.version>
<spring-cloud-netflix.version>2.0.0.RELEASE</spring-cloud-netflix.version>
<archaius.version>0.7.6</archaius.version>
<etcd4j.version>2.16.0</etcd4j.version>
<netty.version>4.1.25.Final</netty.version>
<common.configuration.version>1.8</common.configuration.version>
</properties>

Expand Down Expand Up @@ -93,6 +93,11 @@
<artifactId>spring-cloud-netflix-core</artifactId>
<version>${spring-cloud-netflix.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-ribbon</artifactId>
<version>${spring-cloud-netflix.version}</version>
</dependency>
<dependency>
<groupId>com.netflix.archaius</groupId>
<artifactId>archaius-core</artifactId>
Expand Down
6 changes: 5 additions & 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 All @@ -24,6 +24,10 @@
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-ribbon</artifactId>
</dependency>
<dependency>
<groupId>com.netflix.archaius</groupId>
<artifactId>archaius-core</artifactId>
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 @@ -56,29 +58,27 @@ public String description() {
return "Spring Cloud etcd Discovery Client";
}

@Override
public ServiceInstance getLocalServiceInstance() {
return new DefaultServiceInstance(lifecycle.getService().getAppName(),
properties.getHostname(), lifecycle.getConfiguredPort(), 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 +91,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 +102,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 +126,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);
}
}
Loading