You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2023/02/27 06:50:32 UTC
[servicecomb-java-chassis] branch master updated: [SCB-2785]support spring boot auto configure and remove component scan (#3672)
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 62b306144 [SCB-2785]support spring boot auto configure and remove component scan (#3672)
62b306144 is described below
commit 62b3061444c4af08dbd294629a82d9f5190c6154
Author: liubao68 <bi...@qq.com>
AuthorDate: Mon Feb 27 14:50:26 2023 +0800
[SCB-2785]support spring boot auto configure and remove component scan (#3672)
---
.../CoreExceptionConfiguration.java} | 17 ++++----
.../core/exception/DefaultExceptionProcessor.java | 2 -
.../servicecomb/core/exception/Exceptions.java | 2 -
.../core/filter/CoreFilterConfiguration.java | 24 +++++++++++
.../core/filter/FilterChainsManager.java | 2 -
.../core/filter/impl/ParameterValidatorFilter.java | 2 -
.../core/filter/impl/ProducerOperationFilter.java | 2 -
.../core/filter/impl/ScheduleFilter.java | 2 -
.../CoreGovernanceConfiguration.java} | 35 ++++++++++++----
.../ServiceCombCircuitBreakerExtension.java | 2 -
.../ServiceCombConfigurationEventAdapter.java | 2 -
.../ServiceCombInstanceIsolationExtension.java | 2 -
.../governance/ServiceCombMicroserviceMeta.java | 2 -
.../core/governance/ServiceCombRetryExtension.java | 2 -
.../invocation/CoreInvocationConfiguration.java | 47 ++++++++++++++++++++++
.../invocation/InvocationTimeoutBootListener.java | 2 -
.../invocation/timeout/PassingTimeStrategy.java | 2 -
.../invocation/timeout/ProcessingTimeStrategy.java | 2 -
core/src/main/resources/META-INF/spring.factories | 5 ++-
.../resources/META-INF/spring/scb-core-bean.xml | 22 ----------
20 files changed, 111 insertions(+), 67 deletions(-)
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/CoreFilterConfiguration.java b/core/src/main/java/org/apache/servicecomb/core/exception/CoreExceptionConfiguration.java
similarity index 72%
copy from core/src/main/java/org/apache/servicecomb/core/filter/CoreFilterConfiguration.java
copy to core/src/main/java/org/apache/servicecomb/core/exception/CoreExceptionConfiguration.java
index 17beb8276..d7ec21b1f 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/CoreFilterConfiguration.java
+++ b/core/src/main/java/org/apache/servicecomb/core/exception/CoreExceptionConfiguration.java
@@ -14,16 +14,17 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.servicecomb.core.filter;
+package org.apache.servicecomb.core.exception;
import org.springframework.context.annotation.Configuration;
@Configuration
-public class CoreFilterConfiguration {
- //TODO: need remove all component scan or will cause bean conflict with load balance module
-// @Bean
-// @ConditionalOnMissingBean(name = "loadBalanceFilter")
-// public ConsumerFilter loadBalanceFilter() {
-// return new SimpleLoadBalanceFilter();
-// }
+public class CoreExceptionConfiguration {
+ public Exceptions exceptions() {
+ return new Exceptions();
+ }
+
+ public DefaultExceptionProcessor defaultExceptionProcessor() {
+ return new DefaultExceptionProcessor();
+ }
}
diff --git a/core/src/main/java/org/apache/servicecomb/core/exception/DefaultExceptionProcessor.java b/core/src/main/java/org/apache/servicecomb/core/exception/DefaultExceptionProcessor.java
index 0b458a32c..5d37de247 100644
--- a/core/src/main/java/org/apache/servicecomb/core/exception/DefaultExceptionProcessor.java
+++ b/core/src/main/java/org/apache/servicecomb/core/exception/DefaultExceptionProcessor.java
@@ -46,11 +46,9 @@ import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
import com.fasterxml.jackson.annotation.JsonIgnore;
-@Component
@InjectProperties(prefix = "servicecomb.invocation.exception")
public class DefaultExceptionProcessor implements ExceptionProcessor {
private static final Logger LOGGER = LoggerFactory.getLogger(DefaultExceptionProcessor.class);
diff --git a/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java b/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java
index ceaa4a1fc..aff3e1e60 100644
--- a/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java
+++ b/core/src/main/java/org/apache/servicecomb/core/exception/Exceptions.java
@@ -35,9 +35,7 @@ import org.apache.servicecomb.swagger.invocation.Response;
import org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory;
import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-@Component
public class Exceptions {
private static ExceptionProcessor processor = new DefaultExceptionProcessor();
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/CoreFilterConfiguration.java b/core/src/main/java/org/apache/servicecomb/core/filter/CoreFilterConfiguration.java
index 17beb8276..0d383075c 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/CoreFilterConfiguration.java
+++ b/core/src/main/java/org/apache/servicecomb/core/filter/CoreFilterConfiguration.java
@@ -16,6 +16,10 @@
*/
package org.apache.servicecomb.core.filter;
+import org.apache.servicecomb.core.filter.impl.ParameterValidatorFilter;
+import org.apache.servicecomb.core.filter.impl.ProducerOperationFilter;
+import org.apache.servicecomb.core.filter.impl.ScheduleFilter;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@@ -26,4 +30,24 @@ public class CoreFilterConfiguration {
// public ConsumerFilter loadBalanceFilter() {
// return new SimpleLoadBalanceFilter();
// }
+
+ @Bean
+ public ProducerFilter producerOperationFilter() {
+ return new ProducerOperationFilter();
+ }
+
+ @Bean
+ public ProducerFilter scheduleFilter() {
+ return new ScheduleFilter();
+ }
+
+ @Bean
+ public FilterChainsManager filterChainsManager() {
+ return new FilterChainsManager();
+ }
+
+ @Bean
+ public ProducerFilter parameterValidatorFilter() {
+ return new ParameterValidatorFilter();
+ }
}
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/FilterChainsManager.java b/core/src/main/java/org/apache/servicecomb/core/filter/FilterChainsManager.java
index 00707974b..72b895cad 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/FilterChainsManager.java
+++ b/core/src/main/java/org/apache/servicecomb/core/filter/FilterChainsManager.java
@@ -24,9 +24,7 @@ import java.util.stream.Collectors;
import org.apache.servicecomb.swagger.invocation.InvocationType;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-@Component
public class FilterChainsManager {
private final InvocationFilterChains consumerChains = new InvocationFilterChains(InvocationType.CONSUMER);
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java
index b7bde7395..880595d04 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java
+++ b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ParameterValidatorFilter.java
@@ -43,11 +43,9 @@ import org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpo
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
-import org.springframework.stereotype.Component;
import com.netflix.config.DynamicPropertyFactory;
-@Component
public class ParameterValidatorFilter implements ProducerFilter, InitializingBean {
private static final Logger LOGGER = LoggerFactory.getLogger(ParameterValidatorFilter.class);
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ProducerOperationFilter.java b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ProducerOperationFilter.java
index 3fa8c030f..eb92e372d 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ProducerOperationFilter.java
+++ b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ProducerOperationFilter.java
@@ -31,9 +31,7 @@ import org.apache.servicecomb.swagger.engine.SwaggerProducerOperation;
import org.apache.servicecomb.swagger.invocation.InvocationType;
import org.apache.servicecomb.swagger.invocation.Response;
import org.apache.servicecomb.swagger.invocation.context.ContextUtils;
-import org.springframework.stereotype.Component;
-@Component
public class ProducerOperationFilter implements ProducerFilter {
public static final String NAME = "producer-operation";
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ScheduleFilter.java b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ScheduleFilter.java
index 898a47bf2..00d430a7b 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/impl/ScheduleFilter.java
+++ b/core/src/main/java/org/apache/servicecomb/core/filter/impl/ScheduleFilter.java
@@ -29,9 +29,7 @@ import org.apache.servicecomb.core.filter.ProducerFilter;
import org.apache.servicecomb.core.invocation.InvocationStageTrace;
import org.apache.servicecomb.swagger.invocation.InvocationType;
import org.apache.servicecomb.swagger.invocation.Response;
-import org.springframework.stereotype.Component;
-@Component
public class ScheduleFilter implements ProducerFilter {
public static final String NAME = "schedule";
diff --git a/core/src/main/java/org/apache/servicecomb/core/filter/CoreFilterConfiguration.java b/core/src/main/java/org/apache/servicecomb/core/governance/CoreGovernanceConfiguration.java
similarity index 50%
copy from core/src/main/java/org/apache/servicecomb/core/filter/CoreFilterConfiguration.java
copy to core/src/main/java/org/apache/servicecomb/core/governance/CoreGovernanceConfiguration.java
index 17beb8276..957eef55f 100644
--- a/core/src/main/java/org/apache/servicecomb/core/filter/CoreFilterConfiguration.java
+++ b/core/src/main/java/org/apache/servicecomb/core/governance/CoreGovernanceConfiguration.java
@@ -14,16 +14,35 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.servicecomb.core.filter;
+package org.apache.servicecomb.core.governance;
+import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
-public class CoreFilterConfiguration {
- //TODO: need remove all component scan or will cause bean conflict with load balance module
-// @Bean
-// @ConditionalOnMissingBean(name = "loadBalanceFilter")
-// public ConsumerFilter loadBalanceFilter() {
-// return new SimpleLoadBalanceFilter();
-// }
+public class CoreGovernanceConfiguration {
+ @Bean
+ public ServiceCombCircuitBreakerExtension serviceCombCircuitBreakerExtension() {
+ return new ServiceCombCircuitBreakerExtension();
+ }
+
+ @Bean
+ public ServiceCombInstanceIsolationExtension serviceCombInstanceIsolationExtension() {
+ return new ServiceCombInstanceIsolationExtension();
+ }
+
+ @Bean
+ public ServiceCombMicroserviceMeta serviceCombMicroserviceMeta() {
+ return new ServiceCombMicroserviceMeta();
+ }
+
+ @Bean
+ public ServiceCombRetryExtension serviceCombRetryExtension() {
+ return new ServiceCombRetryExtension();
+ }
+
+ @Bean
+ public ServiceCombConfigurationEventAdapter serviceCombConfigurationEventAdapter() {
+ return new ServiceCombConfigurationEventAdapter();
+ }
}
diff --git a/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombCircuitBreakerExtension.java b/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombCircuitBreakerExtension.java
index 021a7fd11..77f36c5a3 100644
--- a/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombCircuitBreakerExtension.java
+++ b/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombCircuitBreakerExtension.java
@@ -23,9 +23,7 @@ import org.apache.servicecomb.governance.handler.ext.AbstractCircuitBreakerExten
import org.apache.servicecomb.swagger.invocation.Response;
import org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory;
import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
-import org.springframework.stereotype.Component;
-@Component
public class ServiceCombCircuitBreakerExtension extends AbstractCircuitBreakerExtension {
@Override
protected String extractStatusCode(Object result) {
diff --git a/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombConfigurationEventAdapter.java b/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombConfigurationEventAdapter.java
index 3d72a86ea..bb15d232f 100644
--- a/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombConfigurationEventAdapter.java
+++ b/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombConfigurationEventAdapter.java
@@ -26,11 +26,9 @@ import org.apache.servicecomb.config.event.RefreshGovernanceConfigurationEvent;
import org.apache.servicecomb.foundation.common.event.EventManager;
import org.apache.servicecomb.governance.event.GovernanceConfigurationChangedEvent;
import org.apache.servicecomb.governance.event.GovernanceEventManager;
-import org.springframework.stereotype.Component;
import com.google.common.eventbus.Subscribe;
-@Component
public class ServiceCombConfigurationEventAdapter {
public ServiceCombConfigurationEventAdapter() {
EventManager.register(this);
diff --git a/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombInstanceIsolationExtension.java b/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombInstanceIsolationExtension.java
index 2e907f573..f3b9075ea 100644
--- a/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombInstanceIsolationExtension.java
+++ b/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombInstanceIsolationExtension.java
@@ -18,9 +18,7 @@
package org.apache.servicecomb.core.governance;
import org.apache.servicecomb.governance.handler.ext.AbstractInstanceIsolationExtension;
-import org.springframework.stereotype.Component;
-@Component
public class ServiceCombInstanceIsolationExtension extends AbstractInstanceIsolationExtension {
private ServiceCombRetryExtension retryExtension = new ServiceCombRetryExtension();
diff --git a/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombMicroserviceMeta.java b/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombMicroserviceMeta.java
index 52074d00a..af95fe9ad 100644
--- a/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombMicroserviceMeta.java
+++ b/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombMicroserviceMeta.java
@@ -19,9 +19,7 @@ package org.apache.servicecomb.core.governance;
import org.apache.servicecomb.governance.MicroserviceMeta;
import org.apache.servicecomb.registry.RegistrationManager;
-import org.springframework.stereotype.Component;
-@Component
public class ServiceCombMicroserviceMeta implements MicroserviceMeta {
@Override
public String getName() {
diff --git a/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombRetryExtension.java b/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombRetryExtension.java
index c47866a8f..ae312b288 100644
--- a/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombRetryExtension.java
+++ b/core/src/main/java/org/apache/servicecomb/core/governance/ServiceCombRetryExtension.java
@@ -23,9 +23,7 @@ import org.apache.servicecomb.governance.handler.ext.AbstractRetryExtension;
import org.apache.servicecomb.swagger.invocation.Response;
import org.apache.servicecomb.swagger.invocation.exception.ExceptionFactory;
import org.apache.servicecomb.swagger.invocation.exception.InvocationException;
-import org.springframework.stereotype.Component;
-@Component
public class ServiceCombRetryExtension extends AbstractRetryExtension {
@Override
protected String extractStatusCode(Object result) {
diff --git a/core/src/main/java/org/apache/servicecomb/core/invocation/CoreInvocationConfiguration.java b/core/src/main/java/org/apache/servicecomb/core/invocation/CoreInvocationConfiguration.java
new file mode 100644
index 000000000..8fadf19d2
--- /dev/null
+++ b/core/src/main/java/org/apache/servicecomb/core/invocation/CoreInvocationConfiguration.java
@@ -0,0 +1,47 @@
+/*
+ * 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.core.invocation;
+
+import java.util.List;
+
+import org.apache.servicecomb.core.invocation.timeout.PassingTimeStrategy;
+import org.apache.servicecomb.core.invocation.timeout.ProcessingTimeStrategy;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+
+import com.google.common.eventbus.EventBus;
+
+@Configuration
+public class CoreInvocationConfiguration {
+ @Bean
+ public InvocationTimeoutBootListener invocationTimeoutBootListener(EventBus eventBus,
+ List<InvocationTimeoutStrategy> strategies,
+ Environment environment) {
+ return new InvocationTimeoutBootListener(eventBus, strategies, environment);
+ }
+
+ @Bean
+ public PassingTimeStrategy passingTimeStrategy() {
+ return new PassingTimeStrategy();
+ }
+
+ @Bean
+ public ProcessingTimeStrategy processingTimeStrategy() {
+ return new ProcessingTimeStrategy();
+ }
+}
diff --git a/core/src/main/java/org/apache/servicecomb/core/invocation/InvocationTimeoutBootListener.java b/core/src/main/java/org/apache/servicecomb/core/invocation/InvocationTimeoutBootListener.java
index 5c8ac67ec..93429e3c7 100644
--- a/core/src/main/java/org/apache/servicecomb/core/invocation/InvocationTimeoutBootListener.java
+++ b/core/src/main/java/org/apache/servicecomb/core/invocation/InvocationTimeoutBootListener.java
@@ -31,13 +31,11 @@ import org.apache.servicecomb.foundation.common.event.EnableExceptionPropagation
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.env.Environment;
-import org.springframework.stereotype.Component;
import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
@SuppressWarnings({"UnstableApiUsage", "unused"})
-@Component
public class InvocationTimeoutBootListener {
private static final Logger LOGGER = LoggerFactory.getLogger(InvocationTimeoutBootListener.class);
diff --git a/core/src/main/java/org/apache/servicecomb/core/invocation/timeout/PassingTimeStrategy.java b/core/src/main/java/org/apache/servicecomb/core/invocation/timeout/PassingTimeStrategy.java
index 4e9ce7404..986c085b3 100644
--- a/core/src/main/java/org/apache/servicecomb/core/invocation/timeout/PassingTimeStrategy.java
+++ b/core/src/main/java/org/apache/servicecomb/core/invocation/timeout/PassingTimeStrategy.java
@@ -24,7 +24,6 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.servicecomb.core.Invocation;
import org.apache.servicecomb.core.invocation.InvocationTimeoutStrategy;
-import org.springframework.stereotype.Component;
/**
* <pre>
@@ -53,7 +52,6 @@ import org.springframework.stereotype.Component;
* ......
* </pre>
*/
-@Component
public class PassingTimeStrategy implements InvocationTimeoutStrategy {
public static final String NAME = "passing-time";
diff --git a/core/src/main/java/org/apache/servicecomb/core/invocation/timeout/ProcessingTimeStrategy.java b/core/src/main/java/org/apache/servicecomb/core/invocation/timeout/ProcessingTimeStrategy.java
index 8fbed64bc..4c2c021a4 100644
--- a/core/src/main/java/org/apache/servicecomb/core/invocation/timeout/ProcessingTimeStrategy.java
+++ b/core/src/main/java/org/apache/servicecomb/core/invocation/timeout/ProcessingTimeStrategy.java
@@ -20,7 +20,6 @@ package org.apache.servicecomb.core.invocation.timeout;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.servicecomb.core.Invocation;
import org.apache.servicecomb.core.invocation.InvocationTimeoutStrategy;
-import org.springframework.stereotype.Component;
import com.google.common.base.Ticker;
@@ -56,7 +55,6 @@ import com.google.common.base.Ticker;
* ......
* </pre>
*/
-@Component
public class ProcessingTimeStrategy implements InvocationTimeoutStrategy {
public static final String NAME = "processing-time";
diff --git a/core/src/main/resources/META-INF/spring.factories b/core/src/main/resources/META-INF/spring.factories
index eb62fbdd2..799bc8d67 100644
--- a/core/src/main/resources/META-INF/spring.factories
+++ b/core/src/main/resources/META-INF/spring.factories
@@ -16,4 +16,7 @@
## ---------------------------------------------------------------------------
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
- org.apache.servicecomb.core.filter.CoreFilterConfiguration
+ org.apache.servicecomb.core.filter.CoreFilterConfiguration,\
+ org.apache.servicecomb.core.invocation.CoreInvocationConfiguration,\
+ org.apache.servicecomb.core.governance.CoreGovernanceConfiguration,\
+ org.apache.servicecomb.core.exception.CoreExceptionConfiguration
diff --git a/core/src/main/resources/META-INF/spring/scb-core-bean.xml b/core/src/main/resources/META-INF/spring/scb-core-bean.xml
deleted file mode 100644
index a37acb0cf..000000000
--- a/core/src/main/resources/META-INF/spring/scb-core-bean.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ 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.
- -->
-
-<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
-
-</beans>