diff --git a/java-chassis-dependencies/pom.xml b/java-chassis-dependencies/pom.xml index 6ab39942ce..50a0778dbb 100644 --- a/java-chassis-dependencies/pom.xml +++ b/java-chassis-dependencies/pom.xml @@ -1040,6 +1040,11 @@ metrics-prometheus 1.1.0-SNAPSHOT + + org.apache.servicecomb + spring-boot-common + 1.1.0-SNAPSHOT + com.google.protobuf protobuf-java diff --git a/java-chassis-spring-boot/pom.xml b/java-chassis-spring-boot/pom.xml new file mode 100644 index 0000000000..a20df52d42 --- /dev/null +++ b/java-chassis-spring-boot/pom.xml @@ -0,0 +1,37 @@ + + + + + + java-chassis + org.apache.servicecomb + 1.1.0-SNAPSHOT + + 4.0.0 + pom + java-chassis-spring-boot + + + spring-boot-common + spring-boot-starter + spring-boot2-starter-parent + + + \ No newline at end of file diff --git a/java-chassis-spring-boot/spring-boot-common/pom.xml b/java-chassis-spring-boot/spring-boot-common/pom.xml new file mode 100644 index 0000000000..ad6f2882ff --- /dev/null +++ b/java-chassis-spring-boot/spring-boot-common/pom.xml @@ -0,0 +1,51 @@ + + + + + + java-chassis-parent + org.apache.servicecomb + 1.1.0-SNAPSHOT + ../../parent + + 4.0.0 + + spring-boot-common + + + org.apache.servicecomb + service-registry + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + + + \ No newline at end of file diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java b/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java similarity index 67% rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java rename to java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java index ad605af266..f114439c75 100644 --- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java +++ b/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.servicecomb.springboot2.starter.discovery; +package org.apache.servicecomb.springboot.common; import java.util.ArrayList; import java.util.List; @@ -22,49 +22,41 @@ import org.apache.servicecomb.foundation.common.cache.VersionedCache; import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx; -import org.apache.servicecomb.foundation.common.net.URIEndpointObject; import org.apache.servicecomb.serviceregistry.RegistryUtils; import org.apache.servicecomb.serviceregistry.api.registry.Microservice; -import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance; import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient; import org.apache.servicecomb.serviceregistry.definition.DefinitionConst; import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext; +import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter; import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree; -import org.springframework.cloud.client.DefaultServiceInstance; -import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.client.discovery.DiscoveryClient; -public class CseDiscoveryClient implements DiscoveryClient { +public abstract class AbstractDiscoveryClient { + private Map discoveryTrees = new ConcurrentHashMapEx<>(); + private DiscoveryFilter filter = null; - @Override - public String description() { - return "Spring Cloud CSE Discovery Client"; + public AbstractDiscoveryClient(DiscoveryFilter filter){ + this.filter = filter; } - @Override - public List getInstances(final String serviceId) { + public List doGetInstances(final String serviceId) { DiscoveryContext context = new DiscoveryContext(); context.setInputParameters(serviceId); + DiscoveryTree discoveryTree = discoveryTrees.computeIfAbsent(serviceId, key -> { - return new DiscoveryTree(); + DiscoveryTree tree = new DiscoveryTree(); + tree.addFilter(filter); + return tree; }); + VersionedCache serversVersionedCache = discoveryTree.discovery(context, RegistryUtils.getAppId(), serviceId, DefinitionConst.VERSION_RULE_ALL); - Map servers = serversVersionedCache.data(); - List instances = new ArrayList<>(servers.size()); - for (MicroserviceInstance s : servers.values()) { - for (String endpoint : s.getEndpoints()) { - URIEndpointObject uri = new URIEndpointObject(endpoint); - instances.add(new DefaultServiceInstance(serviceId, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled())); - } - } - return instances; + + return serversVersionedCache.data(); } - @Override public List getServices() { ServiceRegistryClient client = RegistryUtils.getServiceRegistryClient(); List services = client.getAllMicroservices(); diff --git a/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java new file mode 100644 index 0000000000..86f84a968c --- /dev/null +++ b/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java @@ -0,0 +1,78 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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.apache.servicecomb.springboot.common; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.servicecomb.foundation.common.net.URIEndpointObject; +import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance; +import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext; +import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter; +import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class InstanceDiscoveryFilter implements DiscoveryFilter { + + private static final Logger LOGGER = LoggerFactory.getLogger(InstanceDiscoveryFilter.class); + + public interface InstanceFactory { + Object createInstance(String name, URIEndpointObject uri); + } + + InstanceFactory instanceFactory; + + public InstanceDiscoveryFilter(InstanceFactory factory){ + instanceFactory = factory; + } + + @Override + public int getOrder() { + return Short.MAX_VALUE; + } + + @Override + public DiscoveryTreeNode discovery(DiscoveryContext context, DiscoveryTreeNode parent) { + return parent.children() + .computeIfAbsent(context.getInputParameters(), etn -> createDiscoveryTreeNode(context, parent)); + } + + @SuppressWarnings("unchecked") + protected DiscoveryTreeNode createDiscoveryTreeNode(DiscoveryContext context, + DiscoveryTreeNode parent) { + String serviceName = context.getInputParameters(); + + List instances = new ArrayList<>(); + for (MicroserviceInstance instance : ((Map) parent.data()).values()) { + for (String endpoint : instance.getEndpoints()) { + String scheme = endpoint.split(":", 2)[0]; + if (!scheme.equalsIgnoreCase("rest")) { + LOGGER.info("Endpoint {} is not supported in Spring Cloud, ignoring.", endpoint); + continue; + } + URIEndpointObject uri = new URIEndpointObject(endpoint); + instances.add(instanceFactory.createInstance(serviceName, uri)); + } + } + + return new DiscoveryTreeNode() + .subName(parent, serviceName) + .data(instances); + } +}; \ No newline at end of file diff --git a/spring-boot-starter/pom.xml b/java-chassis-spring-boot/spring-boot-starter/pom.xml similarity index 97% rename from spring-boot-starter/pom.xml rename to java-chassis-spring-boot/spring-boot-starter/pom.xml index c29c4dea14..fb83727c65 100644 --- a/spring-boot-starter/pom.xml +++ b/java-chassis-spring-boot/spring-boot-starter/pom.xml @@ -22,7 +22,7 @@ org.apache.servicecomb java-chassis-parent 1.1.0-SNAPSHOT - ../parent + ../../parent spring-boot-starter-parent Java Chassis::Spring Boot Starter::Parent diff --git a/spring-boot-starter/spring-boot-starter-configuration/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-configuration/pom.xml similarity index 100% rename from spring-boot-starter/spring-boot-starter-configuration/pom.xml rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-configuration/pom.xml diff --git a/spring-boot-starter/spring-boot-starter-discovery/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/pom.xml similarity index 95% rename from spring-boot-starter/spring-boot-starter-discovery/pom.xml rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/pom.xml index b8d6b2c300..7ff4b87dc4 100644 --- a/spring-boot-starter/spring-boot-starter-discovery/pom.xml +++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/pom.xml @@ -75,5 +75,9 @@ org.apache.servicecomb service-registry + + org.apache.servicecomb + spring-boot-common + diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClient.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClient.java new file mode 100644 index 0000000000..22565b60b6 --- /dev/null +++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClient.java @@ -0,0 +1,49 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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.apache.servicecomb.springboot.starter.discovery; + +import java.util.List; + +import org.apache.servicecomb.foundation.common.net.URIEndpointObject; +import org.apache.servicecomb.springboot.common.AbstractDiscoveryClient; +import org.apache.servicecomb.springboot.common.InstanceDiscoveryFilter; +import org.springframework.cloud.client.DefaultServiceInstance; +import org.springframework.cloud.client.ServiceInstance; +import org.springframework.cloud.client.discovery.DiscoveryClient; + +public class ScbDiscoveryClient extends AbstractDiscoveryClient implements DiscoveryClient { + + public ScbDiscoveryClient() { + super(new InstanceDiscoveryFilter((String name, URIEndpointObject uri) -> + new DefaultServiceInstance(name, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()))); + } + + @Override + public String description() { + return "Spring Cloud CSE Discovery Client"; + } + + @Override + @Deprecated + public ServiceInstance getLocalServiceInstance() { + return null; + } + + public List getInstances(String serviceId) { + return super.doGetInstances(serviceId); + } +} diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClientConfiguration.java similarity index 95% rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClientConfiguration.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClientConfiguration.java index a6c377e215..b26f459743 100644 --- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClientConfiguration.java +++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClientConfiguration.java @@ -26,11 +26,11 @@ @AutoConfigureBefore(SimpleDiscoveryClientAutoConfiguration.class) @Configuration -public class CseDiscoveryClientConfiguration { +public class ScbDiscoveryClientConfiguration { @Bean @Order(5000) @ConditionalOnProperty(value = "servicecomb.discoveryClient.enabled", havingValue = "true", matchIfMissing = true) public DiscoveryClient cseDiscoveryClient() { - return new CseDiscoveryClient(); + return new ScbDiscoveryClient(); } } diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonClientConfiguration.java similarity index 94% rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonClientConfiguration.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonClientConfiguration.java index 6358cbd145..d93dd08ccf 100644 --- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonClientConfiguration.java +++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonClientConfiguration.java @@ -29,7 +29,7 @@ * @see * Customizing the Ribbon Client */ -public class CseRibbonClientConfiguration { +public class ScbRibbonClientConfiguration { @Bean public ServerList ribbonServerList( IClientConfig config) { diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonConfiguration.java similarity index 91% rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonConfiguration.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonConfiguration.java index b5ebd8b0a0..4cabac6143 100644 --- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonConfiguration.java +++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonConfiguration.java @@ -28,7 +28,7 @@ @EnableConfigurationProperties @ConditionalOnBean(SpringClientFactory.class) @AutoConfigureAfter(RibbonAutoConfiguration.class) -@RibbonClients(defaultConfiguration = CseRibbonClientConfiguration.class) -public class CseRibbonConfiguration { +@RibbonClients(defaultConfiguration = ScbRibbonClientConfiguration.class) +public class ScbRibbonConfiguration { } diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java similarity index 96% rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java index 65f72d7a33..a9a4de57c3 100644 --- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java +++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java @@ -25,7 +25,7 @@ import com.netflix.loadbalancer.Server; -public class CseRibbonEndpointDiscoveryFilter extends AbstractEndpointDiscoveryFilter { +public class ScbRibbonEndpointDiscoveryFilter extends AbstractEndpointDiscoveryFilter { @Override protected String findTransportName(DiscoveryContext context, DiscoveryTreeNode parent) { //only need rest endpoints diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java similarity index 97% rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java index 13f092bd0e..aa20b39aaa 100644 --- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java +++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java @@ -35,7 +35,7 @@ public class ServiceCombServerList extends AbstractServerList { private String serviceId; public ServiceCombServerList() { - discoveryTree.addFilter(new CseRibbonEndpointDiscoveryFilter()); + discoveryTree.addFilter(new ScbRibbonEndpointDiscoveryFilter()); } @Override diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/package-info.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/package-info.java similarity index 100% rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/package-info.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/package-info.java diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories similarity index 81% rename from spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories index 25c4a47306..92267e7acf 100644 --- a/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories +++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories @@ -16,9 +16,9 @@ ## --------------------------------------------------------------------------- org.apache.servicecomb.springboot.starter.provider.EnableServiceComb=\ - org.apache.servicecomb.springboot.starter.discovery.CseDiscoveryClientConfiguration,\ - org.apache.servicecomb.springboot.starter.discovery.CseRibbonConfiguration + org.apache.servicecomb.springboot.starter.discovery.ScbDiscoveryClientConfiguration,\ + org.apache.servicecomb.springboot.starter.discovery.ScbRibbonConfiguration org.springframework.cloud.client.discovery.EnableDiscoveryClient=\ - org.apache.servicecomb.springboot.starter.discovery.CseDiscoveryClientConfiguration + org.apache.servicecomb.springboot.starter.discovery.ScbDiscoveryClientConfiguration org.springframework.cloud.netflix.ribbon.RibbonClient=\ - org.apache.servicecomb.springboot.starter.discovery.CseRibbonConfiguration \ No newline at end of file + org.apache.servicecomb.springboot.starter.discovery.ScbRibbonConfiguration \ No newline at end of file diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClient.java similarity index 77% rename from spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClient.java index 727b306f70..786fd0eba0 100644 --- a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java +++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClient.java @@ -24,9 +24,8 @@ import org.apache.servicecomb.serviceregistry.RegistryUtils; import org.apache.servicecomb.serviceregistry.api.registry.Microservice; import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance; +import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManager; import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient; -import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext; -import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree; import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode; import org.junit.Assert; import org.junit.Test; @@ -36,12 +35,11 @@ import mockit.Injectable; import mockit.Mocked; -public class TestCseDiscoveryClient { +public class TestScbDiscoveryClient { @Test public void testCseDiscoveryClient(@Mocked RegistryUtils registryUtils, - @Injectable ServiceRegistryClient serviceRegistryClient, - @Mocked DiscoveryTree discoveryTree, - @Injectable DiscoveryTreeNode versionedCache) { + @Injectable InstanceCacheManager instanceCacheManager, + @Injectable ServiceRegistryClient serviceRegistryClient) { List microserviceList = new ArrayList<>(); Microservice service1 = new Microservice(); service1.setServiceName("service1"); @@ -50,7 +48,7 @@ public void testCseDiscoveryClient(@Mocked RegistryUtils registryUtils, microserviceList.add(server2); server2.setServiceName("server2"); - Map servers = new HashMap<>(); + List endpoints = new ArrayList<>(); endpoints.add("rest://localhost:3333"); endpoints.add("rest://localhost:4444"); @@ -58,22 +56,20 @@ public void testCseDiscoveryClient(@Mocked RegistryUtils registryUtils, instance1.setServiceId("service1"); instance1.setInstanceId("service1-instance1"); instance1.setEndpoints(endpoints); - servers.put("service1-instance1", instance1); + Map data = new HashMap<>(); + data.put("service1-instance1", instance1); + DiscoveryTreeNode parent = new DiscoveryTreeNode().name("parent").data(data); new Expectations() { { - RegistryUtils.getServiceRegistryClient(); - result = serviceRegistryClient; + instanceCacheManager.getOrCreateVersionedCache(anyString, anyString, anyString); + result = parent; serviceRegistryClient.getAllMicroservices(); result = microserviceList; - discoveryTree.discovery((DiscoveryContext) any, anyString, anyString, anyString); - result = versionedCache; - versionedCache.data(); - result = servers; } }; - DiscoveryClient client = new CseDiscoveryClient(); + DiscoveryClient client = new ScbDiscoveryClient(); Assert.assertEquals("Spring Cloud CSE Discovery Client", client.description()); Assert.assertEquals(2, client.getServices().size()); Assert.assertEquals("server2", client.getServices().get(1)); diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClientConfiguration.java similarity index 84% rename from spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClientConfiguration.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClientConfiguration.java index ad8f4dc3cb..455c95e58d 100644 --- a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClientConfiguration.java +++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClientConfiguration.java @@ -19,10 +19,10 @@ import org.junit.Assert; import org.junit.Test; -public class TestCseDiscoveryClientConfiguration { +public class TestScbDiscoveryClientConfiguration { @Test public void testCseDiscoveryClientConfiguration() { - CseDiscoveryClientConfiguration discoveryClientConfiguration = new CseDiscoveryClientConfiguration(); - Assert.assertTrue(discoveryClientConfiguration.cseDiscoveryClient() instanceof CseDiscoveryClient); + ScbDiscoveryClientConfiguration discoveryClientConfiguration = new ScbDiscoveryClientConfiguration(); + Assert.assertTrue(discoveryClientConfiguration.cseDiscoveryClient() instanceof ScbDiscoveryClient); } } diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseRibbonClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbRibbonClientConfiguration.java similarity index 91% rename from spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseRibbonClientConfiguration.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbRibbonClientConfiguration.java index 078905f771..d833dd7696 100644 --- a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseRibbonClientConfiguration.java +++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbRibbonClientConfiguration.java @@ -24,10 +24,10 @@ import mockit.Injectable; -public class TestCseRibbonClientConfiguration { +public class TestScbRibbonClientConfiguration { @Test public void testCseRibbonClientConfiguration(@Injectable IClientConfig clientConfig) { - CseRibbonClientConfiguration config = new CseRibbonClientConfiguration(); + ScbRibbonClientConfiguration config = new ScbRibbonClientConfiguration(); Assert.assertTrue(config.ribbonServerList(clientConfig) instanceof ServiceCombServerList); } } diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestServiceCombServerList.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestServiceCombServerList.java similarity index 100% rename from spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestServiceCombServerList.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestServiceCombServerList.java diff --git a/spring-boot-starter/spring-boot-starter-provider/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-provider/pom.xml similarity index 100% rename from spring-boot-starter/spring-boot-starter-provider/pom.xml rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-provider/pom.xml diff --git a/spring-boot-starter/spring-boot-starter-provider/src/main/resources/application.properties b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-provider/src/main/resources/application.properties similarity index 100% rename from spring-boot-starter/spring-boot-starter-provider/src/main/resources/application.properties rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-provider/src/main/resources/application.properties diff --git a/spring-boot-starter/spring-boot-starter-registry/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/pom.xml similarity index 100% rename from spring-boot-starter/spring-boot-starter-registry/pom.xml rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/pom.xml diff --git a/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/RegistryIntializer.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/RegistryIntializer.java similarity index 100% rename from spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/RegistryIntializer.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/RegistryIntializer.java diff --git a/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/ServiceCenterRegistryConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/ServiceCenterRegistryConfiguration.java similarity index 100% rename from spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/ServiceCenterRegistryConfiguration.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/ServiceCenterRegistryConfiguration.java diff --git a/spring-boot-starter/spring-boot-starter-registry/src/main/resources/META-INF/spring.factories b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/resources/META-INF/spring.factories similarity index 100% rename from spring-boot-starter/spring-boot-starter-registry/src/main/resources/META-INF/spring.factories rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/resources/META-INF/spring.factories diff --git a/spring-boot-starter/spring-boot-starter-registry/src/test/java/org/apache/servicecomb/springboot/starter/registry/TestServiceCenterRegistryConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/test/java/org/apache/servicecomb/springboot/starter/registry/TestServiceCenterRegistryConfiguration.java similarity index 100% rename from spring-boot-starter/spring-boot-starter-registry/src/test/java/org/apache/servicecomb/springboot/starter/registry/TestServiceCenterRegistryConfiguration.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/test/java/org/apache/servicecomb/springboot/starter/registry/TestServiceCenterRegistryConfiguration.java diff --git a/spring-boot-starter/spring-boot-starter-servicecomb/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/pom.xml similarity index 100% rename from spring-boot-starter/spring-boot-starter-servicecomb/pom.xml rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/pom.xml diff --git a/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/EnableServiceComb.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/EnableServiceComb.java similarity index 100% rename from spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/EnableServiceComb.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/EnableServiceComb.java diff --git a/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/ServiceCombSpringConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/ServiceCombSpringConfiguration.java similarity index 100% rename from spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/ServiceCombSpringConfiguration.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/ServiceCombSpringConfiguration.java diff --git a/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/package-info.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/package-info.java similarity index 100% rename from spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/package-info.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/package-info.java diff --git a/spring-boot-starter/spring-boot-starter-transport/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/pom.xml similarity index 100% rename from spring-boot-starter/spring-boot-starter-transport/pom.xml rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/pom.xml diff --git a/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java similarity index 100% rename from spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java diff --git a/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/package-info.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/package-info.java similarity index 100% rename from spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/package-info.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/package-info.java diff --git a/spring-boot-starter/spring-boot-starter-transport/src/test/java/org/apache/servicecomb/springboot/starter/transport/TestRestServletInitializer.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/test/java/org/apache/servicecomb/springboot/starter/transport/TestRestServletInitializer.java similarity index 100% rename from spring-boot-starter/spring-boot-starter-transport/src/test/java/org/apache/servicecomb/springboot/starter/transport/TestRestServletInitializer.java rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/test/java/org/apache/servicecomb/springboot/starter/transport/TestRestServletInitializer.java diff --git a/spring-boot-starter/spring-cloud-zuul-zipkin/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/pom.xml similarity index 100% rename from spring-boot-starter/spring-cloud-zuul-zipkin/pom.xml rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/pom.xml diff --git a/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfiguration.java similarity index 100% rename from spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfiguration.java rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfiguration.java diff --git a/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePostZuulFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePostZuulFilter.java similarity index 100% rename from spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePostZuulFilter.java rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePostZuulFilter.java diff --git a/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePreZuulFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePreZuulFilter.java similarity index 100% rename from spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePreZuulFilter.java rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePreZuulFilter.java diff --git a/spring-boot-starter/spring-cloud-zuul-zipkin/src/test/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfigurationTest.java b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/test/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfigurationTest.java similarity index 100% rename from spring-boot-starter/spring-cloud-zuul-zipkin/src/test/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfigurationTest.java rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/test/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfigurationTest.java diff --git a/spring-boot-starter/spring-cloud-zuul/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul/pom.xml similarity index 100% rename from spring-boot-starter/spring-cloud-zuul/pom.xml rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul/pom.xml diff --git a/spring-boot-starter/spring-cloud-zuul/src/main/java/org/apache/servicecomb/spring/cloud/zuul/ContextHeaderZuulFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul/src/main/java/org/apache/servicecomb/spring/cloud/zuul/ContextHeaderZuulFilter.java similarity index 100% rename from spring-boot-starter/spring-cloud-zuul/src/main/java/org/apache/servicecomb/spring/cloud/zuul/ContextHeaderZuulFilter.java rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul/src/main/java/org/apache/servicecomb/spring/cloud/zuul/ContextHeaderZuulFilter.java diff --git a/spring-boot2-starter-parent/pom.xml b/java-chassis-spring-boot/spring-boot2-starter-parent/pom.xml similarity index 95% rename from spring-boot2-starter-parent/pom.xml rename to java-chassis-spring-boot/spring-boot2-starter-parent/pom.xml index 08f91172d0..eabeac75b0 100644 --- a/spring-boot2-starter-parent/pom.xml +++ b/java-chassis-spring-boot/spring-boot2-starter-parent/pom.xml @@ -23,7 +23,7 @@ org.apache.servicecomb java-chassis-dependencies-springboot2 1.1.0-SNAPSHOT - ../java-chassis-dependencies-springboot2 + ../../java-chassis-dependencies-springboot2 4.0.0 diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml similarity index 96% rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml index 3106b1670b..e52c5bb59a 100644 --- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml +++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml @@ -94,5 +94,9 @@ org.apache.servicecomb spring-boot2-starter + + org.apache.servicecomb + spring-boot-common + diff --git a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClient.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClient.java new file mode 100644 index 0000000000..eddafc3f17 --- /dev/null +++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClient.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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.apache.servicecomb.springboot2.starter.discovery; + +import java.util.List; + +import org.apache.servicecomb.foundation.common.net.URIEndpointObject; +import org.apache.servicecomb.springboot.common.AbstractDiscoveryClient; +import org.apache.servicecomb.springboot.common.InstanceDiscoveryFilter; +import org.springframework.cloud.client.DefaultServiceInstance; +import org.springframework.cloud.client.ServiceInstance; +import org.springframework.cloud.client.discovery.DiscoveryClient; + +public class ScbDiscoveryClient extends AbstractDiscoveryClient implements DiscoveryClient { + + public ScbDiscoveryClient() { + super(new InstanceDiscoveryFilter((String name, URIEndpointObject uri) -> + new DefaultServiceInstance(name, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()))); + } + + @Override + public String description() { + return "Spring Cloud 2 CSE Discovery Client"; + } + + public List getInstances(String serviceId) { + return super.doGetInstances(serviceId); + } +} diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClientConfiguration.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClientConfiguration.java similarity index 95% rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClientConfiguration.java rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClientConfiguration.java index c99befdda4..75730b77b3 100644 --- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClientConfiguration.java +++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClientConfiguration.java @@ -26,11 +26,11 @@ @AutoConfigureBefore(SimpleDiscoveryClientAutoConfiguration.class) @Configuration -public class CseDiscoveryClientConfiguration { +public class ScbDiscoveryClientConfiguration { @Bean @Order(5000) @ConditionalOnProperty(value = "servicecomb.discoveryClient.enabled", havingValue = "true", matchIfMissing = true) public DiscoveryClient cseDiscoveryClient() { - return new CseDiscoveryClient(); + return new ScbDiscoveryClient(); } } diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonClientConfiguration.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonClientConfiguration.java similarity index 94% rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonClientConfiguration.java rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonClientConfiguration.java index 3ff1fd3693..fa896dc889 100644 --- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonClientConfiguration.java +++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonClientConfiguration.java @@ -29,7 +29,7 @@ * @see * Customizing the Ribbon Client */ -public class CseRibbonClientConfiguration { +public class ScbRibbonClientConfiguration { @Bean public ServerList ribbonServerList( IClientConfig config) { diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonConfiguration.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonConfiguration.java similarity index 91% rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonConfiguration.java rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonConfiguration.java index 72f905eda8..0ffeab3a22 100644 --- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonConfiguration.java +++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonConfiguration.java @@ -28,7 +28,7 @@ @EnableConfigurationProperties @ConditionalOnBean(SpringClientFactory.class) @AutoConfigureAfter(RibbonAutoConfiguration.class) -@RibbonClients(defaultConfiguration = CseRibbonClientConfiguration.class) -public class CseRibbonConfiguration { +@RibbonClients(defaultConfiguration = ScbRibbonClientConfiguration.class) +public class ScbRibbonConfiguration { } diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java similarity index 96% rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java index 8ab7d36fd7..1f17df56d0 100644 --- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java +++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java @@ -25,7 +25,7 @@ import com.netflix.loadbalancer.Server; -public class CseRibbonEndpointDiscoveryFilter extends AbstractEndpointDiscoveryFilter { +public class ScbRibbonEndpointDiscoveryFilter extends AbstractEndpointDiscoveryFilter { @Override protected String findTransportName(DiscoveryContext context, DiscoveryTreeNode parent) { //only need rest endpoints diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java similarity index 97% rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java index 4592ea9d41..61ac3eadc3 100644 --- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java +++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java @@ -35,7 +35,7 @@ public class ServiceCombServerList extends AbstractServerList { private String serviceId; public ServiceCombServerList() { - discoveryTree.addFilter(new CseRibbonEndpointDiscoveryFilter()); + discoveryTree.addFilter(new ScbRibbonEndpointDiscoveryFilter()); } @Override diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/package-info.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/package-info.java similarity index 100% rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/package-info.java rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/package-info.java diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories similarity index 81% rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories index 268f1129fa..de5a9fc177 100644 --- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories +++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories @@ -16,9 +16,9 @@ ## --------------------------------------------------------------------------- org.apache.servicecomb.springboot.starter.provider.EnableServiceComb=\ - org.apache.servicecomb.springboot2.starter.discovery.CseDiscoveryClientConfiguration,\ - org.apache.servicecomb.springboot2.starter.discovery.CseRibbonConfiguration + org.apache.servicecomb.springboot2.starter.discovery.ScbDiscoveryClientConfiguration,\ + org.apache.servicecomb.springboot2.starter.discovery.ScbRibbonConfiguration org.springframework.cloud.client.discovery.EnableDiscoveryClient=\ - org.apache.servicecomb.springboot2.starter.discovery.CseDiscoveryClientConfiguration + org.apache.servicecomb.springboot2.starter.discovery.ScbDiscoveryClientConfiguration org.springframework.cloud.netflix.ribbon.RibbonClient=\ - org.apache.servicecomb.springboot2.starter.discovery.CseRibbonConfiguration \ No newline at end of file + org.apache.servicecomb.springboot2.starter.discovery.ScbRibbonConfiguration \ No newline at end of file diff --git a/spring-boot2-starter-parent/spring-boot2-starter-servlet/pom.xml b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/pom.xml similarity index 100% rename from spring-boot2-starter-parent/spring-boot2-starter-servlet/pom.xml rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/pom.xml diff --git a/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/RestServletInitializer.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/RestServletInitializer.java similarity index 100% rename from spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/RestServletInitializer.java rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/RestServletInitializer.java diff --git a/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/package-info.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/package-info.java similarity index 100% rename from spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/package-info.java rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/package-info.java diff --git a/spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml similarity index 100% rename from spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml diff --git a/spring-boot2-starter-parent/spring-boot2-starter/pom.xml b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/pom.xml similarity index 100% rename from spring-boot2-starter-parent/spring-boot2-starter/pom.xml rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/pom.xml diff --git a/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/EnableServiceComb.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/EnableServiceComb.java similarity index 100% rename from spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/EnableServiceComb.java rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/EnableServiceComb.java diff --git a/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/ServiceCombSpringConfiguration.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/ServiceCombSpringConfiguration.java similarity index 100% rename from spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/ServiceCombSpringConfiguration.java rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/ServiceCombSpringConfiguration.java diff --git a/pom.xml b/pom.xml index dbfd9c30dd..c63541dbbc 100644 --- a/pom.xml +++ b/pom.xml @@ -101,14 +101,13 @@ swagger core service-registry - spring-boot-starter tracing edge metrics dynamic-config archetypes java-chassis-dependencies-springboot2 - spring-boot2-starter-parent + java-chassis-spring-boot diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java b/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java deleted file mode 100644 index ef4857511c..0000000000 --- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You 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.apache.servicecomb.springboot.starter.discovery; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import org.apache.servicecomb.foundation.common.cache.VersionedCache; -import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx; -import org.apache.servicecomb.foundation.common.net.URIEndpointObject; -import org.apache.servicecomb.serviceregistry.RegistryUtils; -import org.apache.servicecomb.serviceregistry.api.registry.Microservice; -import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance; -import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient; -import org.apache.servicecomb.serviceregistry.definition.DefinitionConst; -import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext; -import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree; -import org.springframework.cloud.client.DefaultServiceInstance; -import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.client.discovery.DiscoveryClient; - -public class CseDiscoveryClient implements DiscoveryClient { - private Map discoveryTrees = new ConcurrentHashMapEx<>(); - - @Override - public String description() { - return "Spring Cloud CSE Discovery Client"; - } - - @Override - public List getInstances(final String serviceId) { - DiscoveryContext context = new DiscoveryContext(); - context.setInputParameters(serviceId); - DiscoveryTree discoveryTree = discoveryTrees.computeIfAbsent(serviceId, key -> { - return new DiscoveryTree(); - }); - VersionedCache serversVersionedCache = discoveryTree.discovery(context, - RegistryUtils.getAppId(), - serviceId, - DefinitionConst.VERSION_RULE_ALL); - Map servers = serversVersionedCache.data(); - List instances = new ArrayList<>(servers.size()); - for (MicroserviceInstance s : servers.values()) { - for (String endpoint : s.getEndpoints()) { - URIEndpointObject uri = new URIEndpointObject(endpoint); - instances.add(new DefaultServiceInstance(serviceId, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled())); - } - } - return instances; - } - - @Override - @Deprecated - public ServiceInstance getLocalServiceInstance() { - return null; - } - - @Override - public List getServices() { - ServiceRegistryClient client = RegistryUtils.getServiceRegistryClient(); - List services = client.getAllMicroservices(); - List serviceIDList = new ArrayList<>(); - if (null != services && !services.isEmpty()) { - for (Microservice service : services) { - serviceIDList.add(service.getServiceName()); - } - } - return serviceIDList; - } -}