This is an automated email from the ASF dual-hosted git repository. albumenj pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/dubbo-samples.git
The following commit(s) were added to refs/heads/master by this push: new 6c662a2e add dubbo + spring boot + mybatis & hibernate samples (#643) 6c662a2e is described below commit 6c662a2e7e75114eed72eeab343fc4b9fb062810 Author: francisoyc <619491...@qq.com> AuthorDate: Tue Feb 7 16:36:03 2023 +0800 add dubbo + spring boot + mybatis & hibernate samples (#643) --- 99-integration/dubbo-samples-hibernate/README.md | 4 +- .../dubbo-samples-hibernate/case-configuration.yml | 36 +++++++++-- .../dubbo-samples-hibernate/case-versions.conf | 7 +-- .../pom.xml} | 30 ++++++---- .../hibernate/samples}/HibernateService.java | 2 +- .../dubbo/springboot/hibernate/samples}/User.java | 4 +- .../pom.xml | 48 +++++++++++++++ .../samples/HibernateConsumerApplication.java} | 39 +++++++----- .../src/main/resources/application.yml} | 21 ++++--- .../src/main/resources/log4j.properties | 7 +++ .../springboot/hibernate/samples/HibernateIT.java | 41 +++++++++++++ .../pom.xml | 62 +++++++++++++++++++ .../hibernate/samples}/EmbeddedZooKeeper.java | 2 +- .../samples/HibernateProviderApplication.java} | 17 +++--- .../samples}/impl/HibernateServiceImpl.java | 25 ++++---- .../hibernate/samples/repository}/UserModel.java | 4 +- .../samples/repository/UserRepository.java} | 10 ++-- .../src/main/resources/application.yml} | 29 ++++++--- .../resources/liquibase/liquibase-changelog.xml | 6 -- .../src/main/resources/log4j.properties | 7 +++ 99-integration/dubbo-samples-hibernate/pom.xml | 61 +++++++------------ .../boundary/hibernate/HibernateConsumer.java | 42 ------------- .../boundary/hibernate/impl/dao/UserDaoImpl.java | 47 --------------- .../src/main/resources/log4j.properties | 26 -------- .../main/resources/spring/hibernate-consumer.xml | 32 ---------- .../main/resources/spring/hibernate-provider.xml | 69 ---------------------- .../boundary/hibernate/HibernateServiceIT.java | 65 -------------------- 99-integration/dubbo-samples-mybatis/README.md | 3 +- .../dubbo-samples-mybatis/case-configuration.yml | 36 +++++++++-- .../dubbo-samples-mybatis/case-versions.conf | 5 +- .../pom.xml} | 30 ++++++---- .../mybatis/samples}/MybatisService.java | 4 +- .../dubbo/springboot/mybatis/samples}/User.java | 2 +- .../pom.xml | 48 +++++++++++++++ .../samples/MybatisConsumerApplication.java} | 36 ++++++----- .../src/main/resources/application.yml} | 21 ++++--- .../src/main/resources/log4j.properties | 7 +++ .../springboot/mybatis/samples/MybatisIT.java | 39 ++++++++++++ .../pom.xml | 67 +++++++++++++++++++++ .../mybatis/samples}/EmbeddedZooKeeper.java | 2 +- .../samples/MybatisProviderApplication.java} | 16 ++--- .../springboot/mybatis/samples}/dao/UserDao.java | 4 +- .../springboot/mybatis/samples}/dao/UserModel.java | 4 +- .../mybatis/samples}/impl/MybatisServiceImpl.java | 24 ++++---- .../src/main/resources/application.yml} | 29 ++++++--- .../resources/liquibase/liquibase-changelog.xml | 0 .../src/main/resources/log4j.properties | 7 +++ .../src/main/resources/mapper/UserMapper.xml | 4 +- 99-integration/dubbo-samples-mybatis/pom.xml | 30 ++-------- .../samples/boundary/mybatis/MybatisConsumer.java | 40 ------------- .../src/main/resources/log4j.properties | 26 -------- .../spring/application-provider.properties | 12 ---- .../src/main/resources/spring/mybatis-consumer.xml | 33 ----------- .../samples/boundary/mybatis/MybatisServiceIT.java | 62 ------------------- 54 files changed, 634 insertions(+), 700 deletions(-) diff --git a/99-integration/dubbo-samples-hibernate/README.md b/99-integration/dubbo-samples-hibernate/README.md index bf718087..c3cdd1bc 100644 --- a/99-integration/dubbo-samples-hibernate/README.md +++ b/99-integration/dubbo-samples-hibernate/README.md @@ -1,8 +1,6 @@ # Dubbo + Hibernate -This is a dubbo + hibernate sample. - -In this sample, both provider and consumer are using xml as configuration. +This is a dubbo + spring boot + hibernate sample. Please aware that dubbo doesn't require special hibernate version, but spring and hibernate does have some version requirement. So please make sure you are diff --git a/99-integration/dubbo-samples-hibernate/case-configuration.yml b/99-integration/dubbo-samples-hibernate/case-configuration.yml index 821c36f1..693210d8 100644 --- a/99-integration/dubbo-samples-hibernate/case-configuration.yml +++ b/99-integration/dubbo-samples-hibernate/case-configuration.yml @@ -14,11 +14,35 @@ # See the License for the specific language governing permissions and # limitations under the License. -from: app-builtin-zookeeper.yml +services: + zookeeper: + image: zookeeper:latest -props: - project_name: dubbo-samples-hibernate - main_class: org.apache.dubbo.samples.boundary.hibernate.HibernateProvider - zookeeper_port: 2181 - dubbo_port: 20880 + dubbo-samples-spring-boot-hibernate-provider: + type: app + basedir: dubbo-samples-spring-boot-hibernate-provider + mainClass: org.apache.dubbo.springboot.hibernate.samples.HibernateProviderApplication + systemProps: + - zookeeper.address=zookeeper + waitPortsBeforeRun: + - zookeeper:2181 + checkPorts: + - 20880 + checkLog: "dubbo service started" + depends_on: + - zookeeper + + dubbo-samples-spring-boot-hibernate-consumer: + type: test + basedir: dubbo-samples-spring-boot-hibernate-consumer + tests: + - "**/*IT.class" + systemProps: + - zookeeper.address=zookeeper + waitPortsBeforeRun: + - zookeeper:2181 + - dubbo-samples-spring-boot-hibernate-provider:20880 + depends_on: + - zookeeper + - dubbo-samples-spring-boot-hibernate-provider diff --git a/99-integration/dubbo-samples-hibernate/case-versions.conf b/99-integration/dubbo-samples-hibernate/case-versions.conf index 28f07efd..32a2e5be 100644 --- a/99-integration/dubbo-samples-hibernate/case-versions.conf +++ b/99-integration/dubbo-samples-hibernate/case-versions.conf @@ -19,8 +19,7 @@ # Supported component versions of the test case -# Spring app -#dubbo.version=2.7.*, 3.* -dubbo.version=4.* -spring.version=4.* +# SpringBoot app +dubbo.version=2.7*, 3.1* +spring-boot.version=2.* java.version= [<= 11] diff --git a/99-integration/dubbo-samples-mybatis/src/main/resources/mapper/UserMapper.xml b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/pom.xml similarity index 53% copy from 99-integration/dubbo-samples-mybatis/src/main/resources/mapper/UserMapper.xml copy to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/pom.xml index ba193d05..c0833545 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/resources/mapper/UserMapper.xml +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/pom.xml @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8" ?> +<?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 @@ -15,17 +15,21 @@ See the License for the specific language governing permissions and limitations under the License. --> -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > -<mapper namespace="org.apache.dubbo.samples.boundary.mybatis.impl.dao.UserDao"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>dubbo-samples-hibernate</artifactId> + <groupId>org.apache.dubbo</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> - <resultMap id="BASE_RESULT" type="org.apache.dubbo.samples.boundary.mybatis.impl.dao.UserModel"> - <id column="id" property="id"/> - <result column="name" property="name"/> - </resultMap> - <select id="findByUserId" resultMap="BASE_RESULT"> - SELECT id, name - FROM user - where id = #{userId} - </select> + <artifactId>dubbo-samples-spring-boot-hibernate-api</artifactId> -</mapper> + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + </properties> + +</project> \ No newline at end of file diff --git a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/api/HibernateService.java b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/src/main/java/org/apache/dubbo/springboot/hibernate/samples/HibernateService.java similarity index 94% rename from 99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/api/HibernateService.java rename to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/src/main/java/org/apache/dubbo/springboot/hibernate/samples/HibernateService.java index 2e3e5eb7..98ffe06d 100644 --- a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/api/HibernateService.java +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/src/main/java/org/apache/dubbo/springboot/hibernate/samples/HibernateService.java @@ -17,7 +17,7 @@ * */ -package org.apache.dubbo.samples.boundary.hibernate.api; +package org.apache.dubbo.springboot.hibernate.samples; import java.util.List; diff --git a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/api/User.java b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/src/main/java/org/apache/dubbo/springboot/hibernate/samples/User.java similarity index 92% rename from 99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/api/User.java rename to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/src/main/java/org/apache/dubbo/springboot/hibernate/samples/User.java index 244d68ca..371437cc 100644 --- a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/api/User.java +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-api/src/main/java/org/apache/dubbo/springboot/hibernate/samples/User.java @@ -17,12 +17,12 @@ * */ -package org.apache.dubbo.samples.boundary.hibernate.api; +package org.apache.dubbo.springboot.hibernate.samples; import lombok.Data; @Data public class User implements java.io.Serializable { - private long id; + private Long id; private String name; } diff --git a/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/pom.xml b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/pom.xml new file mode 100644 index 00000000..35ab99f4 --- /dev/null +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/pom.xml @@ -0,0 +1,48 @@ +<?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. + --> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>dubbo-samples-hibernate</artifactId> + <groupId>org.apache.dubbo</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>dubbo-samples-spring-boot-hibernate-consumer</artifactId> + + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.dubbo</groupId> + <artifactId>dubbo-samples-spring-boot-hibernate-api</artifactId> + <version>${project.parent.version}</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-test</artifactId> + <scope>test</scope> + </dependency> + </dependencies> +</project> \ No newline at end of file diff --git a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisProvider.java b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/main/java/org/apache/dubbo/springboot/hibernate/samples/HibernateConsumerApplication.java similarity index 52% copy from 99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisProvider.java copy to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/main/java/org/apache/dubbo/springboot/hibernate/samples/HibernateConsumerApplication.java index 73d0f607..94fbbcaa 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisProvider.java +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/main/java/org/apache/dubbo/springboot/hibernate/samples/HibernateConsumerApplication.java @@ -17,30 +17,39 @@ * */ -package org.apache.dubbo.samples.boundary.mybatis; -import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; +package org.apache.dubbo.springboot.hibernate.samples; -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.CommandLineRunner; +import org.apache.dubbo.config.annotation.DubboReference; +import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.PropertySource; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.stereotype.Service; -@SpringBootApplication +import java.util.List; + +@Service @EnableDubbo -@MapperScan("org.apache.dubbo.samples.boundary.mybatis") -@PropertySource("classpath:spring/application-provider.properties") -public class MybatisProvider implements CommandLineRunner { +@SpringBootApplication(exclude={DataSourceAutoConfiguration.class}) +public class HibernateConsumerApplication { - public static void main(String[] args) throws Exception { - new EmbeddedZooKeeper(2181, false).start(); + @DubboReference + private HibernateService hibernateService; - SpringApplication.run(MybatisProvider.class, args); + public static void main(String[] args) { + ConfigurableApplicationContext context = SpringApplication.run(HibernateConsumerApplication.class, args); + HibernateConsumerApplication application = context.getBean(HibernateConsumerApplication.class); + List<User> userList = application.findAll(); + System.out.println("result: " + userList); } - @Override - public void run(String... args) throws Exception { - System.out.println("dubbo service started"); + public List<User> findAll() { + return hibernateService.findAll(); } } + + + + diff --git a/99-integration/dubbo-samples-hibernate/case-configuration.yml b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/main/resources/application.yml similarity index 67% copy from 99-integration/dubbo-samples-hibernate/case-configuration.yml copy to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/main/resources/application.yml index 821c36f1..346a891d 100644 --- a/99-integration/dubbo-samples-hibernate/case-configuration.yml +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/main/resources/application.yml @@ -14,11 +14,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -from: app-builtin-zookeeper.yml - -props: - project_name: dubbo-samples-hibernate - main_class: org.apache.dubbo.samples.boundary.hibernate.HibernateProvider - zookeeper_port: 2181 - dubbo_port: 20880 - +dubbo: + application: + name: dubbo-samples-spring-boot-hibernate-consumer + protocol: + name: dubbo + port: 20081 + registry: + id: zk-registry + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 + config-center: + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 + metadata-report: + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 diff --git a/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/main/resources/log4j.properties b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/main/resources/log4j.properties new file mode 100644 index 00000000..8de4c4fd --- /dev/null +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/main/resources/log4j.properties @@ -0,0 +1,7 @@ +###set log levels### +log4j.rootLogger=info, stdout +###output to the console### +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2}: %m%n diff --git a/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/test/java/org/apache/dubbo/springboot/hibernate/samples/HibernateIT.java b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/test/java/org/apache/dubbo/springboot/hibernate/samples/HibernateIT.java new file mode 100644 index 00000000..521d86c4 --- /dev/null +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-consumer/src/test/java/org/apache/dubbo/springboot/hibernate/samples/HibernateIT.java @@ -0,0 +1,41 @@ +/* + * 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.dubbo.springboot.hibernate.samples; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import java.util.List; + + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = {HibernateConsumerApplication.class}) +public class HibernateIT { + @Autowired + private HibernateConsumerApplication consumerApplication; + + @Test + public void test() throws Exception { + List<User> users = consumerApplication.findAll(); + Assert.assertEquals(1, users.size()); + } +} diff --git a/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/pom.xml b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/pom.xml new file mode 100644 index 00000000..22f5c92f --- /dev/null +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/pom.xml @@ -0,0 +1,62 @@ +<?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. + --> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>dubbo-samples-hibernate</artifactId> + <groupId>org.apache.dubbo</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>dubbo-samples-spring-boot-hibernate-provider</artifactId> + + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.dubbo</groupId> + <artifactId>dubbo-samples-spring-boot-hibernate-api</artifactId> + <version>${project.parent.version}</version> + <scope>compile</scope> + </dependency> + + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>1.4.200</version> + </dependency> + + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>druid</artifactId> + <version>1.2.6</version> + </dependency> + + <dependency> + <groupId>org.liquibase</groupId> + <artifactId>liquibase-core</artifactId> + <version>4.4.0</version> + </dependency> + + </dependencies> +</project> \ No newline at end of file diff --git a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/EmbeddedZooKeeper.java b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/EmbeddedZooKeeper.java similarity index 99% rename from 99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/EmbeddedZooKeeper.java rename to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/EmbeddedZooKeeper.java index ae4c712f..722e8e2f 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/EmbeddedZooKeeper.java +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/EmbeddedZooKeeper.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.dubbo.samples.boundary.mybatis; +package org.apache.dubbo.springboot.hibernate.samples; import org.apache.zookeeper.server.ServerConfig; import org.apache.zookeeper.server.ZooKeeperServerMain; diff --git a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/HibernateProvider.java b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/HibernateProviderApplication.java similarity index 71% rename from 99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/HibernateProvider.java rename to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/HibernateProviderApplication.java index 9ae1839f..d0cf3ba6 100644 --- a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/HibernateProvider.java +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/HibernateProviderApplication.java @@ -17,21 +17,20 @@ * */ -package org.apache.dubbo.samples.boundary.hibernate; +package org.apache.dubbo.springboot.hibernate.samples; -import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; -import java.util.concurrent.CountDownLatch; -public class HibernateProvider { +@EnableDubbo +@SpringBootApplication +public class HibernateProviderApplication { public static void main(String[] args) throws Exception { new EmbeddedZooKeeper(2181, false).start(); - - ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/hibernate-provider.xml"); - context.start(); - + SpringApplication.run(HibernateProviderApplication.class, args); System.out.println("dubbo service started"); - new CountDownLatch(1).await(); } } diff --git a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/HibernateServiceImpl.java b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/impl/HibernateServiceImpl.java similarity index 71% rename from 99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/HibernateServiceImpl.java rename to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/impl/HibernateServiceImpl.java index b13f487c..8debb65b 100644 --- a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/HibernateServiceImpl.java +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/impl/HibernateServiceImpl.java @@ -30,32 +30,37 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.dubbo.samples.boundary.hibernate.impl; - -import org.apache.dubbo.samples.boundary.hibernate.api.HibernateService; -import org.apache.dubbo.samples.boundary.hibernate.api.User; -import org.apache.dubbo.samples.boundary.hibernate.impl.dao.UserDao; -import org.apache.dubbo.samples.boundary.hibernate.impl.dao.UserModel; +package org.apache.dubbo.springboot.hibernate.samples.impl; +import org.apache.dubbo.config.annotation.DubboService; +import org.apache.dubbo.springboot.hibernate.samples.HibernateService; +import org.apache.dubbo.springboot.hibernate.samples.User; +import org.apache.dubbo.springboot.hibernate.samples.repository.UserRepository; +import org.apache.dubbo.springboot.hibernate.samples.repository.UserModel; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; +@Service +@DubboService public class HibernateServiceImpl implements HibernateService { @Autowired - private UserDao userDao; + private UserRepository userRepository; @Override public List<User> findAll() { - List<UserModel> userModels = userDao.findAll(); + UserModel userModel = new UserModel(); + userModel.setId(1L); + userModel.setName("apache dubbo"); + userRepository.saveAndFlush(userModel); + List<UserModel> userModels = userRepository.findAll(); return userModels.stream().map(u -> { User user = new User(); - user.setId(u.getId()); user.setName(u.getName()); - return user; }).collect(Collectors.toList()); } diff --git a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/dao/UserModel.java b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/repository/UserModel.java similarity index 93% rename from 99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/dao/UserModel.java rename to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/repository/UserModel.java index a1b6153b..98049ca0 100644 --- a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/dao/UserModel.java +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/repository/UserModel.java @@ -17,7 +17,7 @@ * */ -package org.apache.dubbo.samples.boundary.hibernate.impl.dao; +package org.apache.dubbo.springboot.hibernate.samples.repository; import lombok.Data; @@ -34,7 +34,7 @@ import javax.persistence.Table; public class UserModel { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) - private long id; + private Long id; @Column(name = "name", nullable = false) private String name; } diff --git a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/dao/UserDao.java b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/repository/UserRepository.java similarity index 76% rename from 99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/dao/UserDao.java rename to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/repository/UserRepository.java index 9932aa21..8f4b8bc9 100644 --- a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/dao/UserDao.java +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/java/org/apache/dubbo/springboot/hibernate/samples/repository/UserRepository.java @@ -17,12 +17,12 @@ * */ -package org.apache.dubbo.samples.boundary.hibernate.impl.dao; +package org.apache.dubbo.springboot.hibernate.samples.repository; -import java.util.List; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; -public interface UserDao { - List<UserModel> findAll(); +@Repository +public interface UserRepository extends JpaRepository<UserModel, Long> { - void saveUserModel(UserModel userModel); } diff --git a/99-integration/dubbo-samples-hibernate/case-configuration.yml b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/resources/application.yml similarity index 52% copy from 99-integration/dubbo-samples-hibernate/case-configuration.yml copy to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/resources/application.yml index 821c36f1..7baf8838 100644 --- a/99-integration/dubbo-samples-hibernate/case-configuration.yml +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/resources/application.yml @@ -14,11 +14,26 @@ # See the License for the specific language governing permissions and # limitations under the License. -from: app-builtin-zookeeper.yml - -props: - project_name: dubbo-samples-hibernate - main_class: org.apache.dubbo.samples.boundary.hibernate.HibernateProvider - zookeeper_port: 2181 - dubbo_port: 20880 +dubbo: + application: + name: dubbo-samples-spring-boot-hibernate-provider + protocol: + name: dubbo + port: 20880 + registry: + id: zk-registry + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 + config-center: + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 + metadata-report: + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 + scan: + base-packages: org.apache.dubbo.springboot.hibernate.samples +spring: + liquibase: + change-log: liquibase/liquibase-changelog.xml + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: org.h2.Driver + url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;MODE=Oracle;TRACE_LEVEL_SYSTEM_OUT=2;DATABASE_TO_LOWER=TRUE \ No newline at end of file diff --git a/99-integration/dubbo-samples-mybatis/src/main/resources/liquibase/liquibase-changelog.xml b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/resources/liquibase/liquibase-changelog.xml similarity index 89% rename from 99-integration/dubbo-samples-mybatis/src/main/resources/liquibase/liquibase-changelog.xml rename to 99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/resources/liquibase/liquibase-changelog.xml index b468536c..e3b496fb 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/resources/liquibase/liquibase-changelog.xml +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/resources/liquibase/liquibase-changelog.xml @@ -28,10 +28,4 @@ <column name="name" type="varchar(50)"/> </createTable> </changeSet> - - <changeSet author="add-test-data" id="htynkn"> - <insert tableName="user"> - <column name="name" value="apache dubbo"/> - </insert> - </changeSet> </databaseChangeLog> diff --git a/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/resources/log4j.properties b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/resources/log4j.properties new file mode 100644 index 00000000..8de4c4fd --- /dev/null +++ b/99-integration/dubbo-samples-hibernate/dubbo-samples-spring-boot-hibernate-provider/src/main/resources/log4j.properties @@ -0,0 +1,7 @@ +###set log levels### +log4j.rootLogger=info, stdout +###output to the console### +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2}: %m%n diff --git a/99-integration/dubbo-samples-hibernate/pom.xml b/99-integration/dubbo-samples-hibernate/pom.xml index cde9a388..4a940d05 100644 --- a/99-integration/dubbo-samples-hibernate/pom.xml +++ b/99-integration/dubbo-samples-hibernate/pom.xml @@ -20,6 +20,12 @@ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> + <packaging>pom</packaging> + <modules> + <module>dubbo-samples-spring-boot-hibernate-api</module> + <module>dubbo-samples-spring-boot-hibernate-provider</module> + <module>dubbo-samples-spring-boot-hibernate-consumer</module> + </modules> <parent> <groupId>org.apache</groupId> <artifactId>apache</artifactId> @@ -39,17 +45,16 @@ <dubbo.version>3.0.7</dubbo.version> <spring.version>4.3.29.RELEASE</spring.version> <junit.version>4.13.1</junit.version> - <spring.version>4.3.29.RELEASE</spring.version> + <spring-boot.version>2.4.1</spring-boot.version> <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version> - <hibernate.version>4.3.6.Final</hibernate.version> </properties> <dependencyManagement> <dependencies> <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-framework-bom</artifactId> - <version>${spring.version}</version> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-dependencies</artifactId> + <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> @@ -71,39 +76,14 @@ <dependencies> <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> - <version>1.4.200</version> - </dependency> - - <dependency> - <groupId>com.alibaba</groupId> - <artifactId>druid</artifactId> - <version>1.2.6</version> - </dependency> - - <dependency> - <groupId>org.liquibase</groupId> - <artifactId>liquibase-core</artifactId> - <version>4.4.0</version> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-orm</artifactId> - <version>${spring.version}</version> - </dependency> - - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-context</artifactId> - <version>${spring.version}</version> - </dependency> - - <dependency> - <groupId>org.hibernate</groupId> - <artifactId>hibernate-core</artifactId> - <version>${hibernate.version}</version> + <groupId>org.apache.dubbo</groupId> + <artifactId>dubbo-spring-boot-starter</artifactId> + <version>${dubbo.version}</version> </dependency> <dependency> @@ -112,12 +92,6 @@ <type>pom</type> </dependency> - <dependency> - <groupId>org.apache.dubbo</groupId> - <artifactId>dubbo</artifactId> - <version>${dubbo.version}</version> - </dependency> - <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> @@ -137,6 +111,11 @@ <version>1.18.20</version> <scope>provided</scope> </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-jpa</artifactId> + </dependency> </dependencies> <profiles> diff --git a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/HibernateConsumer.java b/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/HibernateConsumer.java deleted file mode 100644 index b7eb1e79..00000000 --- a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/HibernateConsumer.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.apache.dubbo.samples.boundary.hibernate; - -import org.apache.dubbo.samples.boundary.hibernate.api.HibernateService; -import org.apache.dubbo.samples.boundary.hibernate.api.User; - -import org.springframework.context.support.ClassPathXmlApplicationContext; - -import java.util.List; - -public class HibernateConsumer { - - public static void main(String[] args) throws Exception { - ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/hibernate-consumer.xml"); - context.start(); - - HibernateService hibernateService = context.getBean(HibernateService.class); - - for (int i = 0; i < 5; i++) { - List<User> users = hibernateService.findAll(); - System.out.println("find users: " + users); - } - } -} diff --git a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/dao/UserDaoImpl.java b/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/dao/UserDaoImpl.java deleted file mode 100644 index 8e82c677..00000000 --- a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/impl/dao/UserDaoImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.apache.dubbo.samples.boundary.hibernate.impl.dao; - -import org.hibernate.Session; -import org.hibernate.SessionFactory; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Repository; - -import java.util.List; - -@Repository(value = "userDao") -public class UserDaoImpl implements UserDao { - @Autowired - private SessionFactory sessionFactory; - - @Override - public List<UserModel> findAll() { - return sessionFactory.openSession().createCriteria(UserModel.class).list(); - } - - @Override - public void saveUserModel(UserModel userModel) { - Session session = sessionFactory.openSession(); - - session.save(userModel); - - session.close(); - } -} diff --git a/99-integration/dubbo-samples-hibernate/src/main/resources/log4j.properties b/99-integration/dubbo-samples-hibernate/src/main/resources/log4j.properties deleted file mode 100644 index d6ecd5ce..00000000 --- a/99-integration/dubbo-samples-hibernate/src/main/resources/log4j.properties +++ /dev/null @@ -1,26 +0,0 @@ -# -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# - -###set log levels### -log4j.rootLogger=info, stdout -###output to the console### -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.Target=System.out -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy hh:mm:ss:sss z}] %t %5p %c{2}: %m%n \ No newline at end of file diff --git a/99-integration/dubbo-samples-hibernate/src/main/resources/spring/hibernate-consumer.xml b/99-integration/dubbo-samples-hibernate/src/main/resources/spring/hibernate-consumer.xml deleted file mode 100644 index 7fb555e3..00000000 --- a/99-integration/dubbo-samples-hibernate/src/main/resources/spring/hibernate-consumer.xml +++ /dev/null @@ -1,32 +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:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" - xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd - http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> - <context:property-placeholder/> - - <dubbo:application name="hibernate-consumer"/> - - <dubbo:registry address="zookeeper://${zookeeper.address:127.0.0.1}:${zookeeper.port:2181}"/> - - <dubbo:reference id="hibernateService" interface="org.apache.dubbo.samples.boundary.hibernate.api.HibernateService"/> - -</beans> diff --git a/99-integration/dubbo-samples-hibernate/src/main/resources/spring/hibernate-provider.xml b/99-integration/dubbo-samples-hibernate/src/main/resources/spring/hibernate-provider.xml deleted file mode 100644 index 7edc7084..00000000 --- a/99-integration/dubbo-samples-hibernate/src/main/resources/spring/hibernate-provider.xml +++ /dev/null @@ -1,69 +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:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" - xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" - xmlns:tx="http://www.springframework.org/schema/tx" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd - http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> - <context:property-placeholder/> - - <dubbo:application name="hibernate-provider"/> - - <dubbo:registry address="zookeeper://${zookeeper.address:127.0.0.1}:${zookeeper.port:2181}"/> - - <dubbo:provider token="true"/> - - <dubbo:protocol name="dubbo" port="20880"/> - - <bean id="hibernateService" class="org.apache.dubbo.samples.boundary.hibernate.impl.HibernateServiceImpl"/> - - <dubbo:service interface="org.apache.dubbo.samples.boundary.hibernate.api.HibernateService" ref="hibernateService"/> - - - <context:component-scan base-package="org.apache.dubbo.samples.boundary.hibernate.impl.dao"/> - - <bean name="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> - <property name="driverClassName" value="org.h2.Driver"/> - <property name="url" value="jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;MODE=Oracle;TRACE_LEVEL_SYSTEM_OUT=2"/> - </bean> - - <bean id="liquibase" class="liquibase.integration.spring.SpringLiquibase"> - <property name="dataSource" ref="dataSource"/> - <property name="changeLog" value="classpath:liquibase/liquibase-changelog.xml"/> - </bean> - - <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> - <property name="dataSource" ref="dataSource"/> - <property name="packagesToScan" value="org.apache.dubbo.samples.boundary.hibernate.impl.dao"/> - <property name="hibernateProperties"> - <props> - <prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop> - <prop key="hibernate.show_sql">true</prop> - <prop key="hibernate.format_sql">true</prop> - </props> - </property> - </bean> - - <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> - <property name="sessionFactory" ref="sessionFactory"/> - </bean> - - <tx:annotation-driven transaction-manager="transactionManager"/> -</beans> diff --git a/99-integration/dubbo-samples-hibernate/src/test/java/org/apache/dubbo/samples/boundary/hibernate/HibernateServiceIT.java b/99-integration/dubbo-samples-hibernate/src/test/java/org/apache/dubbo/samples/boundary/hibernate/HibernateServiceIT.java deleted file mode 100644 index 2a5b05bc..00000000 --- a/99-integration/dubbo-samples-hibernate/src/test/java/org/apache/dubbo/samples/boundary/hibernate/HibernateServiceIT.java +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Copyright 2014 the original author or authors. - * - * Licensed 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.dubbo.samples.boundary.hibernate; - -import org.apache.dubbo.samples.boundary.hibernate.api.HibernateService; -import org.apache.dubbo.samples.boundary.hibernate.api.User; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -import java.util.List; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.not; -import static org.hamcrest.CoreMatchers.nullValue; -import static org.hamcrest.MatcherAssert.assertThat; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations = "classpath*:spring/hibernate-consumer.xml") -public class HibernateServiceIT { - @Autowired - private HibernateService service; - - @Test - public void shouldGetDataFromHibernate() throws Exception { - List<User> users = service.findAll(); - - assertThat(users, not(nullValue())); - assertThat(users.size(), is(1)); - assertThat(users.get(0).getName(), is("apache dubbo")); - } -} diff --git a/99-integration/dubbo-samples-mybatis/README.md b/99-integration/dubbo-samples-mybatis/README.md index 5750aa16..77347856 100644 --- a/99-integration/dubbo-samples-mybatis/README.md +++ b/99-integration/dubbo-samples-mybatis/README.md @@ -1,6 +1,5 @@ # Dubbo + Mybatis -This is a dubbo + mybatis sample. +This is a dubbo + spring boot + mybatis sample. -In this sample, provider is using @ComponentScan and consumer is using xml configuration. diff --git a/99-integration/dubbo-samples-mybatis/case-configuration.yml b/99-integration/dubbo-samples-mybatis/case-configuration.yml index 09f661f4..91704126 100644 --- a/99-integration/dubbo-samples-mybatis/case-configuration.yml +++ b/99-integration/dubbo-samples-mybatis/case-configuration.yml @@ -14,11 +14,35 @@ # See the License for the specific language governing permissions and # limitations under the License. -from: app-builtin-zookeeper.yml +services: + zookeeper: + image: zookeeper:latest -props: - project_name: dubbo-samples-mybatis - main_class: org.apache.dubbo.samples.boundary.mybatis.MybatisProvider - zookeeper_port: 2181 - dubbo_port: 20880 + dubbo-samples-spring-boot-mybatis-provider: + type: app + basedir: dubbo-samples-spring-boot-mybatis-provider + mainClass: org.apache.dubbo.springboot.mybatis.samples.MybatisProviderApplication + systemProps: + - zookeeper.address=zookeeper + waitPortsBeforeRun: + - zookeeper:2181 + checkPorts: + - 20880 + checkLog: "dubbo service started" + depends_on: + - zookeeper + + dubbo-samples-spring-boot-mybatis-consumer: + type: test + basedir: dubbo-samples-spring-boot-mybatis-consumer + tests: + - "**/*IT.class" + systemProps: + - zookeeper.address=zookeeper + waitPortsBeforeRun: + - zookeeper:2181 + - dubbo-samples-spring-boot-mybatis-provider:20880 + depends_on: + - zookeeper + - dubbo-samples-spring-boot-mybatis-provider diff --git a/99-integration/dubbo-samples-mybatis/case-versions.conf b/99-integration/dubbo-samples-mybatis/case-versions.conf index ec7136bb..32a2e5be 100644 --- a/99-integration/dubbo-samples-mybatis/case-versions.conf +++ b/99-integration/dubbo-samples-mybatis/case-versions.conf @@ -19,8 +19,7 @@ # Supported component versions of the test case -# Spring app -#dubbo.version=2.7.*, 3.* -dubbo.version=4.* +# SpringBoot app +dubbo.version=2.7*, 3.1* spring-boot.version=2.* java.version= [<= 11] diff --git a/99-integration/dubbo-samples-mybatis/src/main/resources/mapper/UserMapper.xml b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/pom.xml similarity index 53% copy from 99-integration/dubbo-samples-mybatis/src/main/resources/mapper/UserMapper.xml copy to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/pom.xml index ba193d05..cb620911 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/resources/mapper/UserMapper.xml +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/pom.xml @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="UTF-8" ?> +<?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 @@ -15,17 +15,21 @@ See the License for the specific language governing permissions and limitations under the License. --> -<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > -<mapper namespace="org.apache.dubbo.samples.boundary.mybatis.impl.dao.UserDao"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>dubbo-samples-mybatis</artifactId> + <groupId>org.apache.dubbo</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> - <resultMap id="BASE_RESULT" type="org.apache.dubbo.samples.boundary.mybatis.impl.dao.UserModel"> - <id column="id" property="id"/> - <result column="name" property="name"/> - </resultMap> - <select id="findByUserId" resultMap="BASE_RESULT"> - SELECT id, name - FROM user - where id = #{userId} - </select> + <artifactId>dubbo-samples-spring-boot-mybatis-api</artifactId> -</mapper> + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + </properties> + +</project> \ No newline at end of file diff --git a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/api/MybatisService.java b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/src/main/java/org/apache/dubbo/springboot/mybatis/samples/MybatisService.java similarity index 90% rename from 99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/api/MybatisService.java rename to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/src/main/java/org/apache/dubbo/springboot/mybatis/samples/MybatisService.java index 02c43e98..a3e95b15 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/api/MybatisService.java +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/src/main/java/org/apache/dubbo/springboot/mybatis/samples/MybatisService.java @@ -17,9 +17,9 @@ * */ -package org.apache.dubbo.samples.boundary.mybatis.api; +package org.apache.dubbo.springboot.mybatis.samples; public interface MybatisService { - User findByUserId(long id); + User findByUserId(Long id); } diff --git a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/api/User.java b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/src/main/java/org/apache/dubbo/springboot/mybatis/samples/User.java similarity index 94% rename from 99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/api/User.java rename to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/src/main/java/org/apache/dubbo/springboot/mybatis/samples/User.java index 75df5d9f..307b761f 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/api/User.java +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-api/src/main/java/org/apache/dubbo/springboot/mybatis/samples/User.java @@ -17,7 +17,7 @@ * */ -package org.apache.dubbo.samples.boundary.mybatis.api; +package org.apache.dubbo.springboot.mybatis.samples; import lombok.Data; diff --git a/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/pom.xml b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/pom.xml new file mode 100644 index 00000000..35f9ab6f --- /dev/null +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/pom.xml @@ -0,0 +1,48 @@ +<?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. + --> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>dubbo-samples-mybatis</artifactId> + <groupId>org.apache.dubbo</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>dubbo-samples-spring-boot-mybatis-consumer</artifactId> + + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.dubbo</groupId> + <artifactId>dubbo-samples-spring-boot-mybatis-api</artifactId> + <version>${project.parent.version}</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-test</artifactId> + <scope>test</scope> + </dependency> + </dependencies> +</project> \ No newline at end of file diff --git a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisProvider.java b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/main/java/org/apache/dubbo/springboot/mybatis/samples/MybatisConsumerApplication.java similarity index 52% copy from 99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisProvider.java copy to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/main/java/org/apache/dubbo/springboot/mybatis/samples/MybatisConsumerApplication.java index 73d0f607..4f445947 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisProvider.java +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/main/java/org/apache/dubbo/springboot/mybatis/samples/MybatisConsumerApplication.java @@ -17,30 +17,36 @@ * */ -package org.apache.dubbo.samples.boundary.mybatis; +package org.apache.dubbo.springboot.mybatis.samples; +import org.apache.dubbo.config.annotation.DubboReference; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; - -import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.PropertySource; +import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; +import org.springframework.context.ConfigurableApplicationContext; +import org.springframework.stereotype.Service; -@SpringBootApplication +@Service @EnableDubbo -@MapperScan("org.apache.dubbo.samples.boundary.mybatis") -@PropertySource("classpath:spring/application-provider.properties") -public class MybatisProvider implements CommandLineRunner { +@SpringBootApplication(exclude={DataSourceAutoConfiguration.class}) +public class MybatisConsumerApplication { - public static void main(String[] args) throws Exception { - new EmbeddedZooKeeper(2181, false).start(); + @DubboReference(version = "1.0.0") + private MybatisService mybatisService; - SpringApplication.run(MybatisProvider.class, args); + public static void main(String[] args) { + ConfigurableApplicationContext context = SpringApplication.run(MybatisConsumerApplication.class, args); + MybatisConsumerApplication application = context.getBean(MybatisConsumerApplication.class); + User user = application.findByUserId(1L); + System.out.println("result: " + user); } - @Override - public void run(String... args) throws Exception { - System.out.println("dubbo service started"); + public User findByUserId(Long userId) { + return mybatisService.findByUserId(userId); } } + + + + diff --git a/99-integration/dubbo-samples-hibernate/case-configuration.yml b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/main/resources/application.yml similarity index 67% copy from 99-integration/dubbo-samples-hibernate/case-configuration.yml copy to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/main/resources/application.yml index 821c36f1..6ecfe9f1 100644 --- a/99-integration/dubbo-samples-hibernate/case-configuration.yml +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/main/resources/application.yml @@ -14,11 +14,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -from: app-builtin-zookeeper.yml - -props: - project_name: dubbo-samples-hibernate - main_class: org.apache.dubbo.samples.boundary.hibernate.HibernateProvider - zookeeper_port: 2181 - dubbo_port: 20880 - +dubbo: + application: + name: dubbo-samples-spring-boot-mybatis-consumer + protocol: + name: dubbo + port: 20081 + registry: + id: zk-registry + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 + config-center: + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 + metadata-report: + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 diff --git a/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/main/resources/log4j.properties b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/main/resources/log4j.properties new file mode 100644 index 00000000..8de4c4fd --- /dev/null +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/main/resources/log4j.properties @@ -0,0 +1,7 @@ +###set log levels### +log4j.rootLogger=info, stdout +###output to the console### +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2}: %m%n diff --git a/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/test/java/org/apache/dubbo/springboot/mybatis/samples/MybatisIT.java b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/test/java/org/apache/dubbo/springboot/mybatis/samples/MybatisIT.java new file mode 100644 index 00000000..48e75119 --- /dev/null +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-consumer/src/test/java/org/apache/dubbo/springboot/mybatis/samples/MybatisIT.java @@ -0,0 +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. + */ + +package org.apache.dubbo.springboot.mybatis.samples; + +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = {MybatisConsumerApplication.class}) +public class MybatisIT { + @Autowired + private MybatisConsumerApplication consumerApplication; + + @Test + public void test() throws Exception { + User user = consumerApplication.findByUserId(1L); + Assert.assertEquals(1, user.getId()); + } +} diff --git a/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/pom.xml b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/pom.xml new file mode 100644 index 00000000..edab0853 --- /dev/null +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/pom.xml @@ -0,0 +1,67 @@ +<?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. + --> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <parent> + <artifactId>dubbo-samples-mybatis</artifactId> + <groupId>org.apache.dubbo</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + + <artifactId>dubbo-samples-spring-boot-mybatis-provider</artifactId> + + <properties> + <maven.compiler.source>8</maven.compiler.source> + <maven.compiler.target>8</maven.compiler.target> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.dubbo</groupId> + <artifactId>dubbo-samples-spring-boot-mybatis-api</artifactId> + <version>${project.parent.version}</version> + <scope>compile</scope> + </dependency> + + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <version>1.4.200</version> + </dependency> + + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>druid</artifactId> + <version>1.2.6</version> + </dependency> + + <dependency> + <groupId>org.liquibase</groupId> + <artifactId>liquibase-core</artifactId> + <version>4.4.0</version> + </dependency> + + <dependency> + <groupId>com.baomidou</groupId> + <artifactId>mybatis-plus-boot-starter</artifactId> + <version>${mybatis-plus-starter.version}</version> + </dependency> + </dependencies> +</project> \ No newline at end of file diff --git a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/EmbeddedZooKeeper.java b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/EmbeddedZooKeeper.java similarity index 99% rename from 99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/EmbeddedZooKeeper.java rename to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/EmbeddedZooKeeper.java index be37d35c..1549412c 100644 --- a/99-integration/dubbo-samples-hibernate/src/main/java/org/apache/dubbo/samples/boundary/hibernate/EmbeddedZooKeeper.java +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/EmbeddedZooKeeper.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.dubbo.samples.boundary.hibernate; +package org.apache.dubbo.springboot.mybatis.samples; import org.apache.zookeeper.server.ServerConfig; import org.apache.zookeeper.server.ZooKeeperServerMain; diff --git a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisProvider.java b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/MybatisProviderApplication.java similarity index 72% rename from 99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisProvider.java rename to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/MybatisProviderApplication.java index 73d0f607..5d8181e8 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisProvider.java +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/MybatisProviderApplication.java @@ -17,30 +17,24 @@ * */ -package org.apache.dubbo.samples.boundary.mybatis; +package org.apache.dubbo.springboot.mybatis.samples; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; - import org.mybatis.spring.annotation.MapperScan; -import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.PropertySource; @SpringBootApplication @EnableDubbo -@MapperScan("org.apache.dubbo.samples.boundary.mybatis") -@PropertySource("classpath:spring/application-provider.properties") -public class MybatisProvider implements CommandLineRunner { +@MapperScan("org.apache.dubbo.springboot.mybatis.samples.dao") +public class MybatisProviderApplication { public static void main(String[] args) throws Exception { new EmbeddedZooKeeper(2181, false).start(); - SpringApplication.run(MybatisProvider.class, args); - } + SpringApplication.run(MybatisProviderApplication.class, args); - @Override - public void run(String... args) throws Exception { System.out.println("dubbo service started"); + } } diff --git a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/impl/dao/UserDao.java b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/dao/UserDao.java similarity index 89% rename from 99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/impl/dao/UserDao.java rename to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/dao/UserDao.java index 2afe665f..2a09db2d 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/impl/dao/UserDao.java +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/dao/UserDao.java @@ -17,7 +17,7 @@ * */ -package org.apache.dubbo.samples.boundary.mybatis.impl.dao; +package org.apache.dubbo.springboot.mybatis.samples.dao; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @@ -27,5 +27,5 @@ import org.springframework.stereotype.Repository; @Mapper @Repository public interface UserDao extends BaseMapper<UserModel> { - public UserModel findByUserId(@Param("userId") long userId); + UserModel findByUserId(@Param("userId") long userId); } diff --git a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/impl/dao/UserModel.java b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/dao/UserModel.java similarity index 91% rename from 99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/impl/dao/UserModel.java rename to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/dao/UserModel.java index f191d7d0..d33952cb 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/impl/dao/UserModel.java +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/dao/UserModel.java @@ -17,12 +17,12 @@ * */ -package org.apache.dubbo.samples.boundary.mybatis.impl.dao; +package org.apache.dubbo.springboot.mybatis.samples.dao; import lombok.Data; @Data public class UserModel { - private long id; + private Long id; private String name; } diff --git a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/impl/MybatisServiceImpl.java b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/impl/MybatisServiceImpl.java similarity index 71% rename from 99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/impl/MybatisServiceImpl.java rename to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/impl/MybatisServiceImpl.java index 21e23713..482ad46b 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/impl/MybatisServiceImpl.java +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/java/org/apache/dubbo/springboot/mybatis/samples/impl/MybatisServiceImpl.java @@ -16,14 +16,13 @@ * limitations under the License. * */ -package org.apache.dubbo.samples.boundary.mybatis.impl; +package org.apache.dubbo.springboot.mybatis.samples.impl; import org.apache.dubbo.config.annotation.DubboService; -import org.apache.dubbo.samples.boundary.mybatis.api.MybatisService; -import org.apache.dubbo.samples.boundary.mybatis.api.User; -import org.apache.dubbo.samples.boundary.mybatis.impl.dao.UserDao; -import org.apache.dubbo.samples.boundary.mybatis.impl.dao.UserModel; - +import org.apache.dubbo.springboot.mybatis.samples.MybatisService; +import org.apache.dubbo.springboot.mybatis.samples.User; +import org.apache.dubbo.springboot.mybatis.samples.dao.UserDao; +import org.apache.dubbo.springboot.mybatis.samples.dao.UserModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -35,14 +34,11 @@ public class MybatisServiceImpl implements MybatisService { private UserDao userDao; @Override - public User findByUserId(long id) { + public User findByUserId(Long id) { UserModel userModel = userDao.findByUserId(id); - - User u = new User(); - - u.setId(userModel.getId()); - u.setName(userModel.getName()); - - return u; + User user = new User(); + user.setId(userModel.getId()); + user.setName(userModel.getName()); + return user; } } diff --git a/99-integration/dubbo-samples-hibernate/case-configuration.yml b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/resources/application.yml similarity index 52% copy from 99-integration/dubbo-samples-hibernate/case-configuration.yml copy to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/resources/application.yml index 821c36f1..8a30505d 100644 --- a/99-integration/dubbo-samples-hibernate/case-configuration.yml +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/resources/application.yml @@ -14,11 +14,26 @@ # See the License for the specific language governing permissions and # limitations under the License. -from: app-builtin-zookeeper.yml - -props: - project_name: dubbo-samples-hibernate - main_class: org.apache.dubbo.samples.boundary.hibernate.HibernateProvider - zookeeper_port: 2181 - dubbo_port: 20880 +dubbo: + application: + name: dubbo-samples-spring-boot-mybatis-provider + protocol: + name: dubbo + port: 20880 + registry: + id: zk-registry + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 + config-center: + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 + metadata-report: + address: zookeeper://${zookeeper.address:127.0.0.1}:2181 + scan: + base-packages: org.apache.dubbo.springboot.mybatis.samples +spring: + liquibase: + change-log: liquibase/liquibase-changelog.xml + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: org.h2.Driver + url: jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;MODE=Oracle;TRACE_LEVEL_SYSTEM_OUT=2;DATABASE_TO_LOWER=TRUE diff --git a/99-integration/dubbo-samples-hibernate/src/main/resources/liquibase/liquibase-changelog.xml b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/resources/liquibase/liquibase-changelog.xml similarity index 100% rename from 99-integration/dubbo-samples-hibernate/src/main/resources/liquibase/liquibase-changelog.xml rename to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/resources/liquibase/liquibase-changelog.xml diff --git a/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/resources/log4j.properties b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/resources/log4j.properties new file mode 100644 index 00000000..8de4c4fd --- /dev/null +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/resources/log4j.properties @@ -0,0 +1,7 @@ +###set log levels### +log4j.rootLogger=info, stdout +###output to the console### +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.Target=System.out +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy HH:mm:ss:SSS z}] %t %5p %c{2}: %m%n diff --git a/99-integration/dubbo-samples-mybatis/src/main/resources/mapper/UserMapper.xml b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/resources/mapper/UserMapper.xml similarity index 86% rename from 99-integration/dubbo-samples-mybatis/src/main/resources/mapper/UserMapper.xml rename to 99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/resources/mapper/UserMapper.xml index ba193d05..fa793701 100644 --- a/99-integration/dubbo-samples-mybatis/src/main/resources/mapper/UserMapper.xml +++ b/99-integration/dubbo-samples-mybatis/dubbo-samples-spring-boot-mybatis-provider/src/main/resources/mapper/UserMapper.xml @@ -16,9 +16,9 @@ limitations under the License. --> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > -<mapper namespace="org.apache.dubbo.samples.boundary.mybatis.impl.dao.UserDao"> +<mapper namespace="org.apache.dubbo.springboot.mybatis.samples.dao.UserDao"> - <resultMap id="BASE_RESULT" type="org.apache.dubbo.samples.boundary.mybatis.impl.dao.UserModel"> + <resultMap id="BASE_RESULT" type="org.apache.dubbo.springboot.mybatis.samples.dao.UserModel"> <id column="id" property="id"/> <result column="name" property="name"/> </resultMap> diff --git a/99-integration/dubbo-samples-mybatis/pom.xml b/99-integration/dubbo-samples-mybatis/pom.xml index d62c3d67..f6545057 100644 --- a/99-integration/dubbo-samples-mybatis/pom.xml +++ b/99-integration/dubbo-samples-mybatis/pom.xml @@ -19,6 +19,11 @@ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> + <modules> + <module>dubbo-samples-spring-boot-mybatis-api</module> + <module>dubbo-samples-spring-boot-mybatis-provider</module> + <module>dubbo-samples-spring-boot-mybatis-consumer</module> + </modules> <parent> <groupId>org.apache</groupId> <artifactId>apache</artifactId> @@ -31,6 +36,7 @@ <version>1.0-SNAPSHOT</version> <name>Dubbo Samples Mybatis</name> <description>Dubbo Samples Mybatis</description> + <packaging>pom</packaging> <properties> <source.level>1.8</source.level> @@ -73,36 +79,12 @@ <artifactId>spring-boot-starter</artifactId> </dependency> - <dependency> - <groupId>com.baomidou</groupId> - <artifactId>mybatis-plus-boot-starter</artifactId> - <version>${mybatis-plus-starter.version}</version> - </dependency> - <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-spring-boot-starter</artifactId> <version>${dubbo.version}</version> </dependency> - <dependency> - <groupId>com.h2database</groupId> - <artifactId>h2</artifactId> - <version>1.4.200</version> - </dependency> - - <dependency> - <groupId>com.alibaba</groupId> - <artifactId>druid</artifactId> - <version>1.2.6</version> - </dependency> - - <dependency> - <groupId>org.liquibase</groupId> - <artifactId>liquibase-core</artifactId> - <version>4.4.0</version> - </dependency> - <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-dependencies-zookeeper</artifactId> diff --git a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisConsumer.java b/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisConsumer.java deleted file mode 100644 index 7fbbceca..00000000 --- a/99-integration/dubbo-samples-mybatis/src/main/java/org/apache/dubbo/samples/boundary/mybatis/MybatisConsumer.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -package org.apache.dubbo.samples.boundary.mybatis; - -import org.apache.dubbo.samples.boundary.mybatis.api.MybatisService; -import org.apache.dubbo.samples.boundary.mybatis.api.User; - -import org.springframework.context.support.ClassPathXmlApplicationContext; - -public class MybatisConsumer { - - public static void main(String[] args) throws Exception { - ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/hibernate-consumer.xml"); - context.start(); - - MybatisService mybatisService = (MybatisService) context.getBean(MybatisService.class); - - for (int i = 0; i < 5; i++) { - User user = mybatisService.findByUserId(1L); - System.out.println("find user: " + user); - } - } -} diff --git a/99-integration/dubbo-samples-mybatis/src/main/resources/log4j.properties b/99-integration/dubbo-samples-mybatis/src/main/resources/log4j.properties deleted file mode 100644 index d6ecd5ce..00000000 --- a/99-integration/dubbo-samples-mybatis/src/main/resources/log4j.properties +++ /dev/null @@ -1,26 +0,0 @@ -# -# -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# - -###set log levels### -log4j.rootLogger=info, stdout -###output to the console### -log4j.appender.stdout=org.apache.log4j.ConsoleAppender -log4j.appender.stdout.Target=System.out -log4j.appender.stdout.layout=org.apache.log4j.PatternLayout -log4j.appender.stdout.layout.ConversionPattern=[%d{dd/MM/yy hh:mm:ss:sss z}] %t %5p %c{2}: %m%n \ No newline at end of file diff --git a/99-integration/dubbo-samples-mybatis/src/main/resources/spring/application-provider.properties b/99-integration/dubbo-samples-mybatis/src/main/resources/spring/application-provider.properties deleted file mode 100644 index 16484a3b..00000000 --- a/99-integration/dubbo-samples-mybatis/src/main/resources/spring/application-provider.properties +++ /dev/null @@ -1,12 +0,0 @@ -spring.liquibase.change-log=classpath:liquibase/liquibase-changelog.xml -spring.application.name=mybatis-provider -dubbo.scan.base-packages=org.apache.dubbo.samples.boundary.mybatis -dubbo.protocol.name=dubbo -dubbo.protocol.port=20880 -dubbo.registry.address=zookeeper://127.0.0.1:2181 -dubbo.provider.token=true -dubbo.application.name=${spring.application.name} - -spring.datasource.type=com.alibaba.druid.pool.DruidDataSource -spring.datasource.driver=org.h2.Driver -spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;MODE=Oracle;TRACE_LEVEL_SYSTEM_OUT=2 diff --git a/99-integration/dubbo-samples-mybatis/src/main/resources/spring/mybatis-consumer.xml b/99-integration/dubbo-samples-mybatis/src/main/resources/spring/mybatis-consumer.xml deleted file mode 100644 index 3501b636..00000000 --- a/99-integration/dubbo-samples-mybatis/src/main/resources/spring/mybatis-consumer.xml +++ /dev/null @@ -1,33 +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:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" - xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" - xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd - http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> - <context:property-placeholder/> - - <dubbo:application name="mybatis-consumer"/> - - <dubbo:registry address="zookeeper://${zookeeper.address:127.0.0.1}:${zookeeper.port:2181}"/> - - <dubbo:reference id="cacheService" interface="org.apache.dubbo.samples.boundary.mybatis.api.MybatisService" - version="1.0.0"/> - -</beans> diff --git a/99-integration/dubbo-samples-mybatis/src/test/java/org/apache/dubbo/samples/boundary/mybatis/MybatisServiceIT.java b/99-integration/dubbo-samples-mybatis/src/test/java/org/apache/dubbo/samples/boundary/mybatis/MybatisServiceIT.java deleted file mode 100644 index da35f79d..00000000 --- a/99-integration/dubbo-samples-mybatis/src/test/java/org/apache/dubbo/samples/boundary/mybatis/MybatisServiceIT.java +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/* - * Copyright 2014 the original author or authors. - * - * Licensed 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.dubbo.samples.boundary.mybatis; - -import org.apache.dubbo.samples.boundary.mybatis.api.MybatisService; -import org.apache.dubbo.samples.boundary.mybatis.api.User; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.not; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.core.IsNull.nullValue; - -@RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(locations = "classpath*:spring/mybatis-consumer.xml") -public class MybatisServiceIT { - @Autowired - private MybatisService service; - - @Test - public void shouldGetDataFromMybatis() throws Exception { - User user = service.findByUserId(1); - - assertThat(user, not(nullValue())); - assertThat(user.getName(), is("apache dubbo")); - } -} --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@dubbo.apache.org For additional commands, e-mail: notifications-h...@dubbo.apache.org