Loading sharding-jdbc-example/transaction-example/transaction-base-seata-example/pom.xml +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ <modules> <module>transaction-base-seata-raw-jdbc-example</module> <module>transaction-base-seata-spring-boot-example</module> <module>transaction-base-seata-spring-namespace-example</module> </modules> <dependencies> Loading sharding-jdbc-example/transaction-example/transaction-base-seata-example/transaction-base-seata-spring-namespace-example/pom.xml 0 → 100644 +74 −0 Original line number Diff line number Diff line <?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"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.apache.shardingsphere.example</groupId> <artifactId>transaction-base-seata-example</artifactId> <version>4.0.0-RC2-SNAPSHOT</version> </parent> <artifactId>transaction-base-seata-spring-namespace-example</artifactId> <dependencies> <dependency> <groupId>org.apache.shardingsphere.example</groupId> <artifactId>repository-mybatis</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-transaction-base-seata-at</artifactId> </dependency> <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-namespace</artifactId> </dependency> <dependency> <groupId>io.shardingsphere</groupId> <artifactId>sharding-transaction-jdbc-spring</artifactId> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> </dependencies> </project> No newline at end of file sharding-jdbc-example/transaction-example/transaction-base-seata-example/transaction-base-seata-spring-namespace-example/src/main/java/org/apache/shardingsphere/example/transaction/base/seata/spring/namespace/SeataTransactionalService.java 0 → 100755 +66 −0 Original line number Diff line number Diff line /* * 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.shardingsphere.example.transaction.base.seata.spring.namespace; import org.apache.shardingsphere.example.common.mybatis.service.SpringPojoService; import org.apache.shardingsphere.transaction.annotation.ShardingTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @Component public class SeataTransactionalService { private final SpringPojoService springPojoService; @Autowired public SeataTransactionalService(final SpringPojoService jpaCommonService) { this.springPojoService = jpaCommonService; } public void initEnvironment() { springPojoService.initEnvironment(); } public void cleanEnvironment() { springPojoService.cleanEnvironment(); } /** * process success. */ @ShardingTransactionType(TransactionType.BASE) @Transactional public void processSuccess() { springPojoService.processSuccess(); } /** * process failure. */ @ShardingTransactionType(TransactionType.BASE) @Transactional public void processFailure() { springPojoService.processFailure(); } public void printData() { springPojoService.printData(); } } sharding-jdbc-example/transaction-example/transaction-base-seata-example/transaction-base-seata-spring-namespace-example/src/main/java/org/apache/shardingsphere/example/transaction/base/seata/spring/namespace/SpringNamespaceExample.java 0 → 100755 +46 −0 Original line number Diff line number Diff line /* * 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.shardingsphere.example.transaction.base.seata.spring.namespace; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringNamespaceExample { private static final String CONFIG_FILE = "META-INF/application-sharding-databases-tables.xml"; // private static final String CONFIG_FILE = "META-INF/application-master-slave.xml"; public static void main(final String[] args) { try (ConfigurableApplicationContext applicationContext = new ClassPathXmlApplicationContext(CONFIG_FILE)) { processSeataTransaction(applicationContext); } } private static void processSeataTransaction(final ConfigurableApplicationContext applicationContext) { SeataTransactionalService transactionalService = applicationContext.getBean(SeataTransactionalService.class); transactionalService.initEnvironment(); transactionalService.processSuccess(); try { transactionalService.processFailure(); } catch (final Exception ex) { transactionalService.printData(); } finally { transactionalService.cleanEnvironment(); } } } sharding-jdbc-example/transaction-example/transaction-base-seata-example/transaction-base-seata-spring-namespace-example/src/main/resources/META-INF/application-master-slave.xml 0 → 100755 +74 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <!-- ~ Licensed to the Apache Software Foundation (ASF) under one or more ~ contributor license agreements. See the NOTICE file distributed with ~ this work for additional information regarding copyright ownership. ~ The ASF licenses this file to You under the Apache License, Version 2.0 ~ (the "License"); you may not use this file except in compliance with ~ the License. You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:master-slave="http://shardingsphere.apache.org/schema/shardingsphere/masterslave" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.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 http://shardingsphere.apache.org/schema/shardingsphere/masterslave http://shardingsphere.apache.org/schema/shardingsphere/masterslave/master-slave.xsd"> <import resource="classpath:META-INF/shardingTransaction.xml"/> <context:component-scan base-package="org.apache.shardingsphere.example" /> <bean id="demo_ds_master" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds_master?useSSL=false"/> <property name="username" value="root"/> <property name="password" value=""/> </bean> <bean id="demo_ds_slave_0" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds_slave_0?useSSL=false"/> <property name="username" value="root"/> <property name="password" value=""/> </bean> <bean id="demo_ds_slave_1" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds_slave_1?useSSL=false"/> <property name="username" value="root"/> <property name="password" value=""/> </bean> <master-slave:load-balance-algorithm id="randomStrategy" type="RANDOM" /> <master-slave:data-source id="masterSlaveDataSource" master-data-source-name="demo_ds_master" slave-data-source-names="demo_ds_slave_0, demo_ds_slave_1" strategy-ref="randomStrategy" /> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="masterSlaveDataSource" /> </bean> <tx:annotation-driven /> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="masterSlaveDataSource"/> <property name="mapperLocations" value="classpath*:META-INF/mappers/*.xml"/> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="org.apache.shardingsphere.example.common.mybatis.repository"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> </beans> Loading
sharding-jdbc-example/transaction-example/transaction-base-seata-example/pom.xml +1 −0 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ <modules> <module>transaction-base-seata-raw-jdbc-example</module> <module>transaction-base-seata-spring-boot-example</module> <module>transaction-base-seata-spring-namespace-example</module> </modules> <dependencies> Loading
sharding-jdbc-example/transaction-example/transaction-base-seata-example/transaction-base-seata-spring-namespace-example/pom.xml 0 → 100644 +74 −0 Original line number Diff line number Diff line <?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"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.apache.shardingsphere.example</groupId> <artifactId>transaction-base-seata-example</artifactId> <version>4.0.0-RC2-SNAPSHOT</version> </parent> <artifactId>transaction-base-seata-spring-namespace-example</artifactId> <dependencies> <dependency> <groupId>org.apache.shardingsphere.example</groupId> <artifactId>repository-mybatis</artifactId> <version>${project.version}</version> </dependency> <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-transaction-base-seata-at</artifactId> </dependency> <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-spring-namespace</artifactId> </dependency> <dependency> <groupId>io.shardingsphere</groupId> <artifactId>sharding-transaction-jdbc-spring</artifactId> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> </dependency> </dependencies> </project> No newline at end of file
sharding-jdbc-example/transaction-example/transaction-base-seata-example/transaction-base-seata-spring-namespace-example/src/main/java/org/apache/shardingsphere/example/transaction/base/seata/spring/namespace/SeataTransactionalService.java 0 → 100755 +66 −0 Original line number Diff line number Diff line /* * 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.shardingsphere.example.transaction.base.seata.spring.namespace; import org.apache.shardingsphere.example.common.mybatis.service.SpringPojoService; import org.apache.shardingsphere.transaction.annotation.ShardingTransactionType; import org.apache.shardingsphere.transaction.core.TransactionType; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @Component public class SeataTransactionalService { private final SpringPojoService springPojoService; @Autowired public SeataTransactionalService(final SpringPojoService jpaCommonService) { this.springPojoService = jpaCommonService; } public void initEnvironment() { springPojoService.initEnvironment(); } public void cleanEnvironment() { springPojoService.cleanEnvironment(); } /** * process success. */ @ShardingTransactionType(TransactionType.BASE) @Transactional public void processSuccess() { springPojoService.processSuccess(); } /** * process failure. */ @ShardingTransactionType(TransactionType.BASE) @Transactional public void processFailure() { springPojoService.processFailure(); } public void printData() { springPojoService.printData(); } }
sharding-jdbc-example/transaction-example/transaction-base-seata-example/transaction-base-seata-spring-namespace-example/src/main/java/org/apache/shardingsphere/example/transaction/base/seata/spring/namespace/SpringNamespaceExample.java 0 → 100755 +46 −0 Original line number Diff line number Diff line /* * 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.shardingsphere.example.transaction.base.seata.spring.namespace; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class SpringNamespaceExample { private static final String CONFIG_FILE = "META-INF/application-sharding-databases-tables.xml"; // private static final String CONFIG_FILE = "META-INF/application-master-slave.xml"; public static void main(final String[] args) { try (ConfigurableApplicationContext applicationContext = new ClassPathXmlApplicationContext(CONFIG_FILE)) { processSeataTransaction(applicationContext); } } private static void processSeataTransaction(final ConfigurableApplicationContext applicationContext) { SeataTransactionalService transactionalService = applicationContext.getBean(SeataTransactionalService.class); transactionalService.initEnvironment(); transactionalService.processSuccess(); try { transactionalService.processFailure(); } catch (final Exception ex) { transactionalService.printData(); } finally { transactionalService.cleanEnvironment(); } } }
sharding-jdbc-example/transaction-example/transaction-base-seata-example/transaction-base-seata-spring-namespace-example/src/main/resources/META-INF/application-master-slave.xml 0 → 100755 +74 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="UTF-8"?> <!-- ~ Licensed to the Apache Software Foundation (ASF) under one or more ~ contributor license agreements. See the NOTICE file distributed with ~ this work for additional information regarding copyright ownership. ~ The ASF licenses this file to You under the Apache License, Version 2.0 ~ (the "License"); you may not use this file except in compliance with ~ the License. You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:master-slave="http://shardingsphere.apache.org/schema/shardingsphere/masterslave" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.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 http://shardingsphere.apache.org/schema/shardingsphere/masterslave http://shardingsphere.apache.org/schema/shardingsphere/masterslave/master-slave.xsd"> <import resource="classpath:META-INF/shardingTransaction.xml"/> <context:component-scan base-package="org.apache.shardingsphere.example" /> <bean id="demo_ds_master" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds_master?useSSL=false"/> <property name="username" value="root"/> <property name="password" value=""/> </bean> <bean id="demo_ds_slave_0" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds_slave_0?useSSL=false"/> <property name="username" value="root"/> <property name="password" value=""/> </bean> <bean id="demo_ds_slave_1" class="com.zaxxer.hikari.HikariDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/demo_ds_slave_1?useSSL=false"/> <property name="username" value="root"/> <property name="password" value=""/> </bean> <master-slave:load-balance-algorithm id="randomStrategy" type="RANDOM" /> <master-slave:data-source id="masterSlaveDataSource" master-data-source-name="demo_ds_master" slave-data-source-names="demo_ds_slave_0, demo_ds_slave_1" strategy-ref="randomStrategy" /> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="masterSlaveDataSource" /> </bean> <tx:annotation-driven /> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="masterSlaveDataSource"/> <property name="mapperLocations" value="classpath*:META-INF/mappers/*.xml"/> </bean> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="org.apache.shardingsphere.example.common.mybatis.repository"/> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> </bean> </beans>