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