This is an automated email from the ASF dual-hosted git repository.

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git


The following commit(s) were added to refs/heads/master by this push:
     new c390279ac [SCB-2785]support spring boot auto configure and remove 
component scan (#3683)
c390279ac is described below

commit c390279acd486d6e5a876fa44f989e3784848f00
Author: liubao68 <[email protected]>
AuthorDate: Mon Feb 27 17:20:34 2023 +0800

    [SCB-2785]support spring boot auto configure and remove component scan 
(#3683)
---
 .../servicecomb/qps/ConsumerFlowControlFilter.java |  2 --
 .../qps/FlowControlQpsConfiguration.java}          | 20 ++++++++++-------
 .../servicecomb/qps/ProviderFlowControlFilter.java |  2 --
 .../src/main/resources/META-INF/spring.factories   | 18 +++++++++++++++
 .../loadbalance/LoadBalanceConfiguration.java      |  5 +++++
 .../loadbalance/RuleNameExtentionsFactory.java     |  3 ---
 .../custom/ServiceCombCanaryDistributer.java       |  2 --
 .../custom/ServiceCombRouterConfiguration.java}    | 15 ++++++-------
 .../src/main/resources/META-INF/spring.factories   | 18 +++++++++++++++
 .../inspector/internal/InspectorBootListener.java  |  2 --
 .../inspector/internal/InspectorConfig.java        |  2 --
 ...ctorConfig.java => InspectorConfiguration.java} | 26 ++++++++++------------
 .../src/main/resources/META-INF/spring.factories   | 18 +++++++++++++++
 .../metrics/core/HealthBootListener.java           |  2 --
 .../metrics/core/MetricsCoreConfiguration.java     | 16 ++++---------
 .../src/main/resources/META-INF/spring.factories   | 18 +++++++++++++++
 16 files changed, 112 insertions(+), 57 deletions(-)

diff --git 
a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerFlowControlFilter.java
 
b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerFlowControlFilter.java
index 358208ef6..af259bb13 100644
--- 
a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerFlowControlFilter.java
+++ 
b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ConsumerFlowControlFilter.java
@@ -29,11 +29,9 @@ import 
org.apache.servicecomb.swagger.invocation.InvocationType;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
-import org.springframework.stereotype.Component;
 
 import com.google.common.annotations.VisibleForTesting;
 
-@Component
 public class ConsumerFlowControlFilter implements ConsumerFilter {
   private final QpsControllerManager qpsControllerMgr = new 
QpsControllerManager(false);
 
diff --git 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
 
b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/FlowControlQpsConfiguration.java
similarity index 67%
copy from 
handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
copy to 
handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/FlowControlQpsConfiguration.java
index 7912f9c3d..de13eae57 100644
--- 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
+++ 
b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/FlowControlQpsConfiguration.java
@@ -14,23 +14,27 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.loadbalance;
+package org.apache.servicecomb.qps;
 
-import org.apache.servicecomb.core.filter.ConsumerFilter;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
-@ConditionalOnProperty(value = LoadBalanceConfiguration.LOAD_BALANCE_ENABLED,
+@ConditionalOnProperty(value = 
FlowControlQpsConfiguration.FLOW_CONTROL_ENABLED,
     havingValue = "true", matchIfMissing = true)
-public class LoadBalanceConfiguration {
-  public static final String LOAD_BALANCE_PREFIX = "servicecomb.loadbalance";
+public class FlowControlQpsConfiguration {
+  public static final String FLOW_CONTROL_PREFIX = "servicecomb.flowcontrol";
 
-  public static final String LOAD_BALANCE_ENABLED = LOAD_BALANCE_PREFIX + 
".enabled";
+  public static final String FLOW_CONTROL_ENABLED = FLOW_CONTROL_PREFIX + 
".enabled";
 
   @Bean
-  public ConsumerFilter loadBalanceFilter() {
-    return new LoadBalanceFilter();
+  public ProviderFlowControlFilter providerFlowControlFilter() {
+    return new ProviderFlowControlFilter();
+  }
+
+  @Bean
+  public ConsumerFlowControlFilter consumerFlowControlFilter() {
+    return new ConsumerFlowControlFilter();
   }
 }
diff --git 
a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderFlowControlFilter.java
 
b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderFlowControlFilter.java
index 4cf437581..a4840146d 100644
--- 
a/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderFlowControlFilter.java
+++ 
b/handlers/handler-flowcontrol-qps/src/main/java/org/apache/servicecomb/qps/ProviderFlowControlFilter.java
@@ -30,11 +30,9 @@ import 
org.apache.servicecomb.swagger.invocation.InvocationType;
 import org.apache.servicecomb.swagger.invocation.Response;
 import org.apache.servicecomb.swagger.invocation.exception.CommonExceptionData;
 import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
-import org.springframework.stereotype.Component;
 
 import com.google.common.annotations.VisibleForTesting;
 
-@Component
 public class ProviderFlowControlFilter implements ProducerFilter {
   private final QpsControllerManager qpsControllerMgr = new 
QpsControllerManager(true);
 
diff --git 
a/handlers/handler-flowcontrol-qps/src/main/resources/META-INF/spring.factories 
b/handlers/handler-flowcontrol-qps/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000..684911417
--- /dev/null
+++ 
b/handlers/handler-flowcontrol-qps/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+  org.apache.servicecomb.qps.FlowControlQpsConfiguration
diff --git 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
index 7912f9c3d..b1a4f224b 100644
--- 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
+++ 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
@@ -33,4 +33,9 @@ public class LoadBalanceConfiguration {
   public ConsumerFilter loadBalanceFilter() {
     return new LoadBalanceFilter();
   }
+
+  @Bean
+  public RuleNameExtentionsFactory ruleNameExtentionsFactory() {
+    return new RuleNameExtentionsFactory();
+  }
 }
diff --git 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/RuleNameExtentionsFactory.java
 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/RuleNameExtentionsFactory.java
index 193d125d5..9315928ea 100644
--- 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/RuleNameExtentionsFactory.java
+++ 
b/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/RuleNameExtentionsFactory.java
@@ -18,11 +18,8 @@ package org.apache.servicecomb.loadbalance;
 
 import java.util.Collection;
 
-import org.springframework.stereotype.Component;
-
 import com.google.common.collect.Lists;
 
-@Component
 public class RuleNameExtentionsFactory implements ExtensionsFactory {
   private static final Collection<String> ACCEPT_KEYS = Lists.newArrayList(
       Configuration.RULE_STRATEGY_NAME);
diff --git 
a/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/ServiceCombCanaryDistributer.java
 
b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/ServiceCombCanaryDistributer.java
index 1bde97588..cde6807f4 100644
--- 
a/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/ServiceCombCanaryDistributer.java
+++ 
b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/ServiceCombCanaryDistributer.java
@@ -19,9 +19,7 @@ package org.apache.servicecomb.router.custom;
 import org.apache.servicecomb.loadbalance.ServiceCombServer;
 import org.apache.servicecomb.registry.api.registry.Microservice;
 import org.apache.servicecomb.router.distribute.AbstractRouterDistributor;
-import org.springframework.stereotype.Component;
 
-@Component
 public class ServiceCombCanaryDistributer extends
     AbstractRouterDistributor<ServiceCombServer, Microservice> {
 
diff --git 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
 
b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/ServiceCombRouterConfiguration.java
similarity index 69%
copy from 
handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
copy to 
handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/ServiceCombRouterConfiguration.java
index 7912f9c3d..9e8a5a3fa 100644
--- 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
+++ 
b/handlers/handler-router/src/main/java/org/apache/servicecomb/router/custom/ServiceCombRouterConfiguration.java
@@ -14,23 +14,22 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.loadbalance;
+package org.apache.servicecomb.router.custom;
 
-import org.apache.servicecomb.core.filter.ConsumerFilter;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
-@ConditionalOnProperty(value = LoadBalanceConfiguration.LOAD_BALANCE_ENABLED,
+@ConditionalOnProperty(value = ServiceCombRouterConfiguration.ROUTER_ENABLED,
     havingValue = "true", matchIfMissing = true)
-public class LoadBalanceConfiguration {
-  public static final String LOAD_BALANCE_PREFIX = "servicecomb.loadbalance";
+public class ServiceCombRouterConfiguration {
+  public static final String ROUTER_PREFIX = "servicecomb.router";
 
-  public static final String LOAD_BALANCE_ENABLED = LOAD_BALANCE_PREFIX + 
".enabled";
+  public static final String ROUTER_ENABLED = ROUTER_PREFIX + ".enabled";
 
   @Bean
-  public ConsumerFilter loadBalanceFilter() {
-    return new LoadBalanceFilter();
+  public ServiceCombCanaryDistributer serviceCombCanaryDistributer() {
+    return new ServiceCombCanaryDistributer();
   }
 }
diff --git 
a/handlers/handler-router/src/main/resources/META-INF/spring.factories 
b/handlers/handler-router/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000..47ff945b1
--- /dev/null
+++ b/handlers/handler-router/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+  org.apache.servicecomb.router.custom.ServiceCombRouterConfiguration
diff --git 
a/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorBootListener.java
 
b/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorBootListener.java
index 71d906b01..3e654e5d9 100644
--- 
a/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorBootListener.java
+++ 
b/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorBootListener.java
@@ -21,9 +21,7 @@ import org.apache.servicecomb.core.BootListener;
 import org.apache.servicecomb.registry.RegistrationManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
 
-@Component
 public class InspectorBootListener implements BootListener {
   private static final Logger LOGGER = 
LoggerFactory.getLogger(InspectorBootListener.class);
 
diff --git 
a/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorConfig.java
 
b/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorConfig.java
index 28f28ddb6..6aa6014b9 100644
--- 
a/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorConfig.java
+++ 
b/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorConfig.java
@@ -18,9 +18,7 @@ package org.apache.servicecomb.inspector.internal;
 
 import org.apache.servicecomb.config.inject.InjectProperties;
 import org.apache.servicecomb.config.inject.InjectProperty;
-import org.springframework.stereotype.Component;
 
-@Component
 @InjectProperties(prefix = "servicecomb.inspector")
 public class InspectorConfig {
   @InjectProperty(keys = "enabled", defaultValue = "true")
diff --git 
a/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorConfig.java
 
b/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorConfiguration.java
similarity index 61%
copy from 
inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorConfig.java
copy to 
inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorConfiguration.java
index 28f28ddb6..afdfb3943 100644
--- 
a/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorConfig.java
+++ 
b/inspector/src/main/java/org/apache/servicecomb/inspector/internal/InspectorConfiguration.java
@@ -16,22 +16,20 @@
  */
 package org.apache.servicecomb.inspector.internal;
 
-import org.apache.servicecomb.config.inject.InjectProperties;
-import org.apache.servicecomb.config.inject.InjectProperty;
-import org.springframework.stereotype.Component;
+import org.apache.servicecomb.config.priority.PriorityPropertyFactory;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
 
-@Component
-@InjectProperties(prefix = "servicecomb.inspector")
-public class InspectorConfig {
-  @InjectProperty(keys = "enabled", defaultValue = "true")
-  private boolean enabled;
-
-  public boolean isEnabled() {
-    return enabled;
+@Configuration
+public class InspectorConfiguration {
+  @Bean
+  public InspectorBootListener inspectorBootListener(InspectorConfig 
inspectorConfig,
+      PriorityPropertyFactory propertyFactory) {
+    return new InspectorBootListener(inspectorConfig, propertyFactory);
   }
 
-  public InspectorConfig setEnabled(boolean enabled) {
-    this.enabled = enabled;
-    return this;
+  @Bean
+  public InspectorConfig inspectorConfig() {
+    return new InspectorConfig();
   }
 }
diff --git a/inspector/src/main/resources/META-INF/spring.factories 
b/inspector/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000..2099d563a
--- /dev/null
+++ b/inspector/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+  org.apache.servicecomb.inspector.internal.InspectorConfiguration
diff --git 
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/HealthBootListener.java
 
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/HealthBootListener.java
index cef2eea25..0cdce0ab0 100644
--- 
a/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/HealthBootListener.java
+++ 
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/HealthBootListener.java
@@ -18,11 +18,9 @@ package org.apache.servicecomb.metrics.core;
 
 import org.apache.servicecomb.core.BootListener;
 import org.apache.servicecomb.metrics.core.publish.HealthCheckerRestPublisher;
-import org.springframework.stereotype.Component;
 
 import com.netflix.config.DynamicPropertyFactory;
 
-@Component
 public class HealthBootListener implements BootListener {
   @Override
   public void onBeforeProducerProvider(BootEvent event) {
diff --git 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
 
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/MetricsCoreConfiguration.java
similarity index 61%
copy from 
handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
copy to 
metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/MetricsCoreConfiguration.java
index 7912f9c3d..51588359d 100644
--- 
a/handlers/handler-loadbalance/src/main/java/org/apache/servicecomb/loadbalance/LoadBalanceConfiguration.java
+++ 
b/metrics/metrics-core/src/main/java/org/apache/servicecomb/metrics/core/MetricsCoreConfiguration.java
@@ -14,23 +14,15 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.loadbalance;
+package org.apache.servicecomb.metrics.core;
 
-import org.apache.servicecomb.core.filter.ConsumerFilter;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 @Configuration
-@ConditionalOnProperty(value = LoadBalanceConfiguration.LOAD_BALANCE_ENABLED,
-    havingValue = "true", matchIfMissing = true)
-public class LoadBalanceConfiguration {
-  public static final String LOAD_BALANCE_PREFIX = "servicecomb.loadbalance";
-
-  public static final String LOAD_BALANCE_ENABLED = LOAD_BALANCE_PREFIX + 
".enabled";
-
+public class MetricsCoreConfiguration {
   @Bean
-  public ConsumerFilter loadBalanceFilter() {
-    return new LoadBalanceFilter();
+  public HealthBootListener healthBootListener() {
+    return new HealthBootListener();
   }
 }
diff --git a/metrics/metrics-core/src/main/resources/META-INF/spring.factories 
b/metrics/metrics-core/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000..59335a834
--- /dev/null
+++ b/metrics/metrics-core/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,18 @@
+#
+# 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.
+#
+org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+  org.apache.servicecomb.metrics.core.MetricsCoreConfiguration

Reply via email to