This is an automated email from the ASF dual-hosted git repository. wangxin pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/master by this push: new b7dde72 [Dubbo-1684] add unit test for dubbo spring config (#1809) b7dde72 is described below commit b7dde7236ff255cc51e087f025dc096dc0395a00 Author: Huang YunKun <hty...@gmail.com> AuthorDate: Fri Jun 1 13:07:03 2018 +0800 [Dubbo-1684] add unit test for dubbo spring config (#1809) * add test for config spring module * add more test for serviceBean and refBean --- .codecov.yml | 3 +- .../alibaba/dubbo/config/spring/ConfigTest.java | 2 +- .../dubbo/config/spring/ServiceBeanTest.java | 40 ++++++ .../ReferenceAnnotationBeanPostProcessorTest.java | 23 +++ .../spring/schema/DubboNamespaceHandlerTest.java | 160 +++++++++++++++++++++ .../spring/status/DataSourceStatusCheckerTest.java | 100 +++++++++++++ .../spring/status/SpringStatusCheckerTest.java | 80 +++++++++++ .../META-INF/spring/dubbo-annotation-consumer.xml | 3 + ...ay-fixed-time.xml => consumer-notification.xml} | 67 ++++----- .../dubbo/config/spring/delay-fixed-time.xml | 5 +- .../{delay-fixed-time.xml => multi-monitor.xml} | 74 +++++----- .../{delay-fixed-time.xml => provider-multi.xml} | 80 ++++++----- ...lay-fixed-time.xml => provider-with-module.xml} | 78 +++++----- ...ay-fixed-time.xml => provider-with-monitor.xml} | 72 +++++----- 14 files changed, 601 insertions(+), 186 deletions(-) diff --git a/.codecov.yml b/.codecov.yml index bd786c1..3d04ce5 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -6,4 +6,5 @@ coverage: threshold: 0.1% ignore: - "dubbo-demo/.*" - - "dubbo-common/src/main/java/com/alibaba/dubbo/common/json/*.java" # internal JSON impl is deprecate, ignore test coverage for them \ No newline at end of file + - "dubbo-common/src/main/java/com/alibaba/dubbo/common/json/*.java" # internal JSON impl is deprecate, ignore test coverage for them + - "dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/AnnotationBean.java" # Deprecated \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java index 80de429..86c37be 100644 --- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java +++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ConfigTest.java @@ -46,7 +46,7 @@ import com.alibaba.dubbo.rpc.RpcContext; import com.alibaba.dubbo.rpc.RpcException; import com.alibaba.dubbo.rpc.service.GenericException; import com.alibaba.dubbo.rpc.service.GenericService; -import junit.framework.Assert; +import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; import org.springframework.beans.factory.BeanCreationException; diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ServiceBeanTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ServiceBeanTest.java new file mode 100644 index 0000000..11f7055 --- /dev/null +++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/ServiceBeanTest.java @@ -0,0 +1,40 @@ +/* + * 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 com.alibaba.dubbo.config.spring; + +import com.alibaba.dubbo.config.annotation.Service; +import org.junit.Assert; +import org.junit.Test; + +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.CoreMatchers.nullValue; +import static org.mockito.Mockito.mock; + +public class ServiceBeanTest { + @Test + public void testGetService() { + TestService service = mock(TestService.class); + ServiceBean serviceBean = new ServiceBean(service); + + Service beanService = serviceBean.getService(); + Assert.assertThat(beanService, not(nullValue())); + } + + abstract class TestService implements Service { + + } +} \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessorTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessorTest.java index 01dbc53..a1b5807 100644 --- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessorTest.java +++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessorTest.java @@ -36,6 +36,10 @@ import java.util.Collection; import java.util.Map; import static com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor.BEAN_NAME; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.CoreMatchers.nullValue; +import static org.hamcrest.MatcherAssert.assertThat; /** * {@link ReferenceAnnotationBeanPostProcessor} Test @@ -174,6 +178,25 @@ public class ReferenceAnnotationBeanPostProcessorTest { } + @Test + public void testModuleInfo() { + AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(TestBean.class); + + ReferenceAnnotationBeanPostProcessor beanPostProcessor = context.getBean(BEAN_NAME, + ReferenceAnnotationBeanPostProcessor.class); + + + Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> referenceBeanMap = + beanPostProcessor.getInjectedMethodReferenceBeanMap(); + + for (Map.Entry<InjectionMetadata.InjectedElement, ReferenceBean<?>> entry : referenceBeanMap.entrySet()) { + ReferenceBean<?> referenceBean = entry.getValue(); + + assertThat(referenceBean.getModule().getName(),is("defaultModule")); + assertThat(referenceBean.getMonitor(), not(nullValue())); + } + } + private static class AncestorBean { diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandlerTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandlerTest.java new file mode 100644 index 0000000..7b86652 --- /dev/null +++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandlerTest.java @@ -0,0 +1,160 @@ +/* + * 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 com.alibaba.dubbo.config.spring.schema; + +import com.alibaba.dubbo.config.ApplicationConfig; +import com.alibaba.dubbo.config.ModuleConfig; +import com.alibaba.dubbo.config.MonitorConfig; +import com.alibaba.dubbo.config.ProtocolConfig; +import com.alibaba.dubbo.config.ProviderConfig; +import com.alibaba.dubbo.config.spring.ConfigTest; +import com.alibaba.dubbo.config.spring.ServiceBean; +import com.alibaba.dubbo.config.spring.api.DemoService; +import com.alibaba.dubbo.config.spring.impl.DemoServiceImpl; +import org.junit.Test; +import org.springframework.beans.factory.BeanCreationException; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +import java.util.Map; + +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.CoreMatchers.not; +import static org.hamcrest.CoreMatchers.nullValue; +import static org.junit.Assert.assertThat; + +public class DubboNamespaceHandlerTest { + @Test + public void testProviderXml() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/demo-provider.xml"); + ctx.start(); + + ProtocolConfig protocolConfig = ctx.getBean(ProtocolConfig.class); + assertThat(protocolConfig, not(nullValue())); + assertThat(protocolConfig.getName(), is("dubbo")); + assertThat(protocolConfig.getPort(), is(20813)); + + ApplicationConfig applicationConfig = ctx.getBean(ApplicationConfig.class); + assertThat(applicationConfig, not(nullValue())); + assertThat(applicationConfig.getName(), is("demo-provider")); + + DemoService service = ctx.getBean(DemoService.class); + assertThat(service, not(nullValue())); + } + + @Test + public void testMultiProtocol() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/multi-protocol.xml"); + ctx.start(); + + Map<String, ProtocolConfig> protocolConfigMap = ctx.getBeansOfType(ProtocolConfig.class); + assertThat(protocolConfigMap.size(), is(2)); + + ProtocolConfig rmiProtocolConfig = protocolConfigMap.get("rmi"); + assertThat(rmiProtocolConfig.getPort(), is(10991)); + + ProtocolConfig dubboProtocolConfig = protocolConfigMap.get("dubbo"); + assertThat(dubboProtocolConfig.getPort(), is(20881)); + } + + @Test + public void testDefaultProtocol() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/override-protocol.xml"); + ctx.start(); + + ProtocolConfig protocolConfig = ctx.getBean(ProtocolConfig.class); + assertThat(protocolConfig.getName(), is("dubbo")); + } + + @Test + public void testCustomParameter() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/customize-parameter.xml"); + ctx.start(); + + ProtocolConfig protocolConfig = ctx.getBean(ProtocolConfig.class); + assertThat(protocolConfig.getParameters().size(), is(1)); + assertThat(protocolConfig.getParameters().get("protocol-paramA"), is("protocol-paramA")); + + ServiceBean serviceBean = ctx.getBean(ServiceBean.class); + assertThat(serviceBean.getParameters().size(), is(1)); + assertThat(serviceBean.getParameters().get("service-paramA"), is("service-paramA")); + } + + + @Test + public void testDelayFixedTime() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/delay-fixed-time.xml"); + ctx.start(); + + assertThat(ctx.getBean(ServiceBean.class).getDelay(), is(300)); + } + + @Test + public void testTimeoutConfig() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/provider-nested-service.xml"); + ctx.start(); + + Map<String, ProviderConfig> providerConfigMap = ctx.getBeansOfType(ProviderConfig.class); + + assertThat(providerConfigMap.get("com.alibaba.dubbo.config.ProviderConfig").getTimeout(), is(2000)); + } + + @Test + public void testMonitor() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/provider-with-monitor.xml"); + ctx.start(); + + assertThat(ctx.getBean(MonitorConfig.class), not(nullValue())); + } + + @Test(expected = BeanCreationException.class) + public void testMultiMonitor() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/multi-monitor.xml"); + ctx.start(); + } + + @Test(expected = BeanCreationException.class) + public void testMultiProviderConfig() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/provider-multi.xml"); + ctx.start(); + } + + @Test + public void testModuleInfo() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/provider-with-module.xml"); + ctx.start(); + + ModuleConfig moduleConfig = ctx.getBean(ModuleConfig.class); + assertThat(moduleConfig.getName(), is("test-module")); + } + + @Test(expected = BeanCreationException.class) + public void testNotificationWithWrongBean() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/consumer-notification.xml"); + ctx.start(); + } + + @Test + public void testProperty() { + ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(ConfigTest.class.getPackage().getName().replace('.', '/') + "/service-class.xml"); + ctx.start(); + + ServiceBean serviceBean = ctx.getBean(ServiceBean.class); + + String prefix = ((DemoServiceImpl) serviceBean.getRef()).getPrefix(); + assertThat(prefix, is("welcome:")); + } +} \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusCheckerTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusCheckerTest.java new file mode 100644 index 0000000..27ef380 --- /dev/null +++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusCheckerTest.java @@ -0,0 +1,100 @@ +/* + * 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 com.alibaba.dubbo.config.spring.status; + +import com.alibaba.dubbo.common.status.Status; +import com.alibaba.dubbo.config.spring.ServiceBean; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Answers; +import org.mockito.Mock; +import org.springframework.context.ApplicationContext; + +import javax.sql.DataSource; +import java.sql.Connection; +import java.sql.SQLException; +import java.util.HashMap; +import java.util.Map; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.MockitoAnnotations.initMocks; + +public class DataSourceStatusCheckerTest { + private DataSourceStatusChecker dataSourceStatusChecker; + + @Mock + private ApplicationContext applicationContext; + + @Before + public void setUp() throws Exception { + initMocks(this); + this.dataSourceStatusChecker = new DataSourceStatusChecker(); + new ServiceBean<Object>().setApplicationContext(applicationContext); + } + + @Test + public void testWithoutApplicationContext() { + Status status = dataSourceStatusChecker.check(); + + assertThat(status.getLevel(), is(Status.Level.UNKNOWN)); + } + + @Test + public void testWithoutDatasource() { + Map<String, DataSource> map = new HashMap<String, DataSource>(); + given(applicationContext.getBeansOfType(eq(DataSource.class), anyBoolean(), anyBoolean())).willReturn(map); + + Status status = dataSourceStatusChecker.check(); + + assertThat(status.getLevel(), is(Status.Level.UNKNOWN)); + } + + @Test + public void testWithDatasourceHasNextResult() throws SQLException { + Map<String, DataSource> map = new HashMap<String, DataSource>(); + DataSource dataSource = mock(DataSource.class); + Connection connection = mock(Connection.class, Answers.RETURNS_DEEP_STUBS); + given(dataSource.getConnection()).willReturn(connection); + given(connection.getMetaData().getTypeInfo().next()).willReturn(true); + + map.put("mockDatabase", dataSource); + given(applicationContext.getBeansOfType(eq(DataSource.class), anyBoolean(), anyBoolean())).willReturn(map); + Status status = dataSourceStatusChecker.check(); + + assertThat(status.getLevel(), is(Status.Level.OK)); + } + + @Test + public void testWithDatasourceNotHasNextResult() throws SQLException { + Map<String, DataSource> map = new HashMap<String, DataSource>(); + DataSource dataSource = mock(DataSource.class); + Connection connection = mock(Connection.class, Answers.RETURNS_DEEP_STUBS); + given(dataSource.getConnection()).willReturn(connection); + given(connection.getMetaData().getTypeInfo().next()).willReturn(false); + + map.put("mockDatabase", dataSource); + given(applicationContext.getBeansOfType(eq(DataSource.class), anyBoolean(), anyBoolean())).willReturn(map); + Status status = dataSourceStatusChecker.check(); + + assertThat(status.getLevel(), is(Status.Level.ERROR)); + } +} \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/SpringStatusCheckerTest.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/SpringStatusCheckerTest.java new file mode 100644 index 0000000..1a57925 --- /dev/null +++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/status/SpringStatusCheckerTest.java @@ -0,0 +1,80 @@ +/* + * 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 com.alibaba.dubbo.config.spring.status; + +import com.alibaba.dubbo.common.status.Status; +import com.alibaba.dubbo.config.spring.ServiceBean; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.springframework.context.ApplicationContext; +import org.springframework.context.Lifecycle; + +import static org.hamcrest.CoreMatchers.is; +import static org.junit.Assert.assertThat; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.MockitoAnnotations.initMocks; + +public class SpringStatusCheckerTest { + private SpringStatusChecker springStatusChecker; + + @Mock + private ApplicationContext applicationContext; + + @Before + public void setUp() throws Exception { + initMocks(this); + this.springStatusChecker = new SpringStatusChecker(); + new ServiceBean<Object>().setApplicationContext(applicationContext); + } + + @Test + public void testWithoutApplicationContext() { + Status status = springStatusChecker.check(); + + assertThat(status.getLevel(), is(Status.Level.UNKNOWN)); + } + + @Test + public void testWithLifeCycleRunning() { + ApplicationLifeCycle applicationLifeCycle = mock(ApplicationLifeCycle.class); + new ServiceBean<Object>().setApplicationContext(applicationLifeCycle); + given(applicationLifeCycle.getConfigLocations()).willReturn(new String[]{"test1", "test2"}); + given(applicationLifeCycle.isRunning()).willReturn(true); + + Status status = springStatusChecker.check(); + + assertThat(status.getLevel(), is(Status.Level.OK)); + assertThat(status.getMessage(), is("test1,test2")); + } + + @Test + public void testWithoutLifeCycleRunning() { + ApplicationLifeCycle applicationLifeCycle = mock(ApplicationLifeCycle.class); + new ServiceBean<Object>().setApplicationContext(applicationLifeCycle); + given(applicationLifeCycle.isRunning()).willReturn(false); + + Status status = springStatusChecker.check(); + + assertThat(status.getLevel(), is(Status.Level.ERROR)); + } + + interface ApplicationLifeCycle extends Lifecycle, ApplicationContext { + String[] getConfigLocations(); + } +} \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-annotation-consumer.xml b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-annotation-consumer.xml index d73c1e9..f69cc74 100644 --- a/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-annotation-consumer.xml +++ b/dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/dubbo-annotation-consumer.xml @@ -26,5 +26,8 @@ <!-- 连接注册中心配置 --> <dubbo:registry address="N/A"/> + <dubbo:monitor version="1.1"/> + <dubbo:module name="defaultModule"/> + <dubbo:consumer version="1.2.0"/> </beans> \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/consumer-notification.xml similarity index 70% copy from dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml copy to dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/consumer-notification.xml index d083bd2..f6b7ccc 100644 --- a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml +++ b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/consumer-notification.xml @@ -1,37 +1,32 @@ -<!-- - 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:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" - xmlns="http://www.springframework.org/schema/beans" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd - http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd - "> - - <!-- 当前应用信息配置 --> - <dubbo:application name="demo-provider"/> - - <!-- 连接注册中心配置 --> - <dubbo:registry address="127.0.0.1:4548"/> - - <dubbo:protocol name="dubbo" port="20883"/> - - <!-- 暴露服务配置 --> - <dubbo:service interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService" delay="300"/> - - <bean id="demoService" class="com.alibaba.dubbo.config.spring.impl.DemoServiceImpl"/> - +<!-- + 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:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" + xmlns="http://www.springframework.org/schema/beans" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd + http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd + "> + + <!-- current application configuration --> + <dubbo:application name="demo-consumer"/> + + <!-- service reference configuration --> + <dubbo:reference id="demoService" interface="com.alibaba.dubbo.config.spring.api.DemoService"> + <dubbo:method name="sayName" onreturn="notify.getBox" onthrow="notify.getBox" oninvoke="notify.getBox"/> + </dubbo:reference> + </beans> \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml index d083bd2..0fc5cb2 100644 --- a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml +++ b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml @@ -21,15 +21,12 @@ http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd "> - <!-- 当前应用信息配置 --> <dubbo:application name="demo-provider"/> - <!-- 连接注册中心配置 --> - <dubbo:registry address="127.0.0.1:4548"/> + <dubbo:registry address="N/A"/> <dubbo:protocol name="dubbo" port="20883"/> - <!-- 暴露服务配置 --> <dubbo:service interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService" delay="300"/> <bean id="demoService" class="com.alibaba.dubbo.config.spring.impl.DemoServiceImpl"/> diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/multi-monitor.xml similarity index 76% copy from dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml copy to dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/multi-monitor.xml index d083bd2..badcc2a 100644 --- a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml +++ b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/multi-monitor.xml @@ -1,37 +1,39 @@ -<!-- - 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:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" - xmlns="http://www.springframework.org/schema/beans" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd - http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd - "> - - <!-- 当前应用信息配置 --> - <dubbo:application name="demo-provider"/> - - <!-- 连接注册中心配置 --> - <dubbo:registry address="127.0.0.1:4548"/> - - <dubbo:protocol name="dubbo" port="20883"/> - - <!-- 暴露服务配置 --> - <dubbo:service interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService" delay="300"/> - - <bean id="demoService" class="com.alibaba.dubbo.config.spring.impl.DemoServiceImpl"/> - +<!-- + 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:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" + xmlns="http://www.springframework.org/schema/beans" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd + http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd + "> + + <dubbo:application name="service-class"/> + + <dubbo:registry address="N/A"/> + + <dubbo:protocol name="dubbo" port="20887"/> + + <dubbo:provider timeout="2000"/> + + <dubbo:service id="serviceConfig" interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService"/> + + <dubbo:monitor version="1.1"/> + <dubbo:monitor version="1.2"/> + + <bean id="demoService" class="com.alibaba.dubbo.config.spring.impl.DemoServiceImpl"/> + </beans> \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/provider-multi.xml similarity index 63% copy from dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml copy to dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/provider-multi.xml index d083bd2..6a2d2e9 100644 --- a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml +++ b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/provider-multi.xml @@ -1,37 +1,45 @@ -<!-- - 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:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" - xmlns="http://www.springframework.org/schema/beans" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd - http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd - "> - - <!-- 当前应用信息配置 --> - <dubbo:application name="demo-provider"/> - - <!-- 连接注册中心配置 --> - <dubbo:registry address="127.0.0.1:4548"/> - - <dubbo:protocol name="dubbo" port="20883"/> - - <!-- 暴露服务配置 --> - <dubbo:service interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService" delay="300"/> - - <bean id="demoService" class="com.alibaba.dubbo.config.spring.impl.DemoServiceImpl"/> - +<!-- + 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:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" + xmlns="http://www.springframework.org/schema/beans" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd + http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd + "> + + <dubbo:application name="service-class"/> + + <dubbo:registry address="N/A"/> + + <dubbo:protocol name="dubbo" port="20887"/> + + <dubbo:provider timeout="2000"/> + + <dubbo:service id="serviceConfig" interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService"/> + + <dubbo:provider timeout="1000" default="true" delay="1000"> + <dubbo:service id="serviceConfig2" interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService" + group="demo2"/> + </dubbo:provider> + <dubbo:provider default="true" delay="500"> + <dubbo:service interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService" + group="demo2"/> + </dubbo:provider> + + <bean id="demoService" class="com.alibaba.dubbo.config.spring.impl.DemoServiceImpl"/> + </beans> \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/provider-with-module.xml similarity index 68% copy from dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml copy to dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/provider-with-module.xml index d083bd2..faaee83 100644 --- a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml +++ b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/provider-with-module.xml @@ -1,37 +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. - --> -<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" - xmlns="http://www.springframework.org/schema/beans" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd - http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd - "> - - <!-- 当前应用信息配置 --> - <dubbo:application name="demo-provider"/> - - <!-- 连接注册中心配置 --> - <dubbo:registry address="127.0.0.1:4548"/> - - <dubbo:protocol name="dubbo" port="20883"/> - - <!-- 暴露服务配置 --> - <dubbo:service interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService" delay="300"/> - - <bean id="demoService" class="com.alibaba.dubbo.config.spring.impl.DemoServiceImpl"/> - +<!-- + 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:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" + xmlns="http://www.springframework.org/schema/beans" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd + http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd + "> + + <dubbo:application name="service-class"/> + + <dubbo:registry address="N/A"/> + + <dubbo:protocol name="dubbo" port="20887"/> + + <dubbo:provider timeout="2000"/> + + <dubbo:service id="serviceConfig" interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService"/> + + <!-- nested configuration --> + <dubbo:provider timeout="1000"> + <dubbo:service id="serviceConfig2" interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService" + group="demo2"/> + </dubbo:provider> + <dubbo:module name="test-module" version="1.1"/> + + <bean id="demoService" class="com.alibaba.dubbo.config.spring.impl.DemoServiceImpl"/> + </beans> \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/provider-with-monitor.xml similarity index 76% copy from dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml copy to dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/provider-with-monitor.xml index d083bd2..86c860e 100644 --- a/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/delay-fixed-time.xml +++ b/dubbo-config/dubbo-config-spring/src/test/resources/com/alibaba/dubbo/config/spring/provider-with-monitor.xml @@ -1,37 +1,37 @@ -<!-- - 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:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" - xmlns="http://www.springframework.org/schema/beans" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd - http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd - "> - - <!-- 当前应用信息配置 --> - <dubbo:application name="demo-provider"/> - - <!-- 连接注册中心配置 --> - <dubbo:registry address="127.0.0.1:4548"/> - - <dubbo:protocol name="dubbo" port="20883"/> - - <!-- 暴露服务配置 --> - <dubbo:service interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService" delay="300"/> - - <bean id="demoService" class="com.alibaba.dubbo.config.spring.impl.DemoServiceImpl"/> - +<!-- + 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:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" + xmlns="http://www.springframework.org/schema/beans" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd + http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd + "> + + <dubbo:application name="service-class"/> + + <dubbo:registry address="N/A"/> + + <dubbo:protocol name="dubbo" port="20887"/> + + <dubbo:provider timeout="2000"/> + + <dubbo:service id="serviceConfig" interface="com.alibaba.dubbo.config.spring.api.DemoService" ref="demoService"/> + <dubbo:monitor default="true"/> + + <bean id="demoService" class="com.alibaba.dubbo.config.spring.impl.DemoServiceImpl"/> + </beans> \ No newline at end of file -- To stop receiving notification emails like this one, please contact wang...@apache.org.