diff --git a/pom.xml b/pom.xml index 4fa260b..0677eab 100644 --- a/pom.xml +++ b/pom.xml @@ -6,14 +6,14 @@ org.springframework.boot spring-boot-starter-parent - 2.3.4.RELEASE + 3.3.10 spring-boot-sample-jta-atomikos Spring Boot Atomikos JTA Sample Spring Boot Atomikos JTA Sample - 5.0.108.EVAL + 6.0.114.EVAL @@ -26,8 +26,9 @@ spring-boot-starter-data-jpa - org.springframework.boot - spring-boot-starter-jta-atomikos + com.atomikos + transactions-spring-boot3-starter + ${atomikos.version} org.springframework.boot @@ -59,24 +60,25 @@ ${atomikos.version} - - com.atomikos - transactions-spring-boot-starter + transactions-spring-boot ${atomikos.version} com.atomikos - transactions-spring-boot + transactions-spring-boot-logcloud ${atomikos.version} com.atomikos - transactions-spring-boot-logcloud + transactions-remoting-recovery + ${atomikos.version} + + + com.atomikos + transactions-remoting ${atomikos.version} @@ -85,6 +87,10 @@ 2.0.1 provided + + jakarta.xml.bind + jakarta.xml.bind-api + org.springframework.boot @@ -96,7 +102,12 @@ spring-boot-configuration-processor true - + + com.atomikos + transactions-hibernate4 + ${atomikos.version} + jakarta + org.springframework.boot @@ -112,19 +123,4 @@ - - - java9+ - - [9,) - - - - jakarta.xml.bind - jakarta.xml.bind-api - 2.3.2 - - - - diff --git a/src/main/java/sample/atomikos/Account.java b/src/main/java/sample/atomikos/Account.java index 4221ebc..5cf000b 100644 --- a/src/main/java/sample/atomikos/Account.java +++ b/src/main/java/sample/atomikos/Account.java @@ -16,9 +16,9 @@ package sample.atomikos; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.Id; @Entity public class Account { diff --git a/src/main/java/sample/atomikos/AccountService.java b/src/main/java/sample/atomikos/AccountService.java index 6cb4fc7..854acc0 100644 --- a/src/main/java/sample/atomikos/AccountService.java +++ b/src/main/java/sample/atomikos/AccountService.java @@ -16,7 +16,7 @@ package sample.atomikos; -import javax.transaction.Transactional; +import jakarta.transaction.Transactional; import org.springframework.jms.core.JmsTemplate; import org.springframework.stereotype.Service; diff --git a/src/main/resources/application-postgres.properties b/src/main/resources/application-postgres.properties deleted file mode 100644 index c22a242..0000000 --- a/src/main/resources/application-postgres.properties +++ /dev/null @@ -1,17 +0,0 @@ -spring.artemis.embedded.queues=accounts -spring.jpa.open-in-view=true - -spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true -spring.datasource.url=jdbc:postgresql://localhost:5432/atomikos -spring.datasource.username=atomikos -spring.datasource.password=atomikos -spring.jpa.hibernate.ddl-auto=create-drop - -spring.jta.atomikos.datasource.supports-tm-join=false -spring.jta.atomikos.datasource.unique-resource-name=APP -# allow DDL on startup -spring.jta.atomikos.datasource.local-transaction-mode=true - -#all instances that connect to the same logCloud must use the same name (the one defined in data.sql) -spring.jta.atomikos.properties.transaction-manager-unique-name=logcloud -spring.datasource.continue-on-error=true diff --git a/src/main/resources/application-postgres.yml b/src/main/resources/application-postgres.yml new file mode 100644 index 0000000..66cf626 --- /dev/null +++ b/src/main/resources/application-postgres.yml @@ -0,0 +1,31 @@ +# Conversion to YAML from Properties formar report +# Warnings: +# - The yaml file had comments which are lost in the refactoring! +spring: + artemis: + embedded: + queues: accounts + jpa: + open-in-view: true + properties: + hibernate: + jdbc: + lob: + "[non_contextual_creation]": true + hibernate: + ddl-auto: create-drop + datasource: + url: jdbc:postgresql://localhost:5432/atomikos + username: atomikos + password: atomikos + jta: + atomikos: + datasource: + supports-tm-join: false + unique-resource-name: APP + local-transaction-mode: true + properties: + transaction-manager-unique-name: logcloud + sql: + init: + continue-on-error: true diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties deleted file mode 100644 index 731971d..0000000 --- a/src/main/resources/application.properties +++ /dev/null @@ -1,13 +0,0 @@ -spring.artemis.embedded.queues=accounts -spring.jpa.open-in-view=true -spring.datasource.url=jdbc:h2:./logcloud - -spring.jta.atomikos.datasource.unique-resource-name=APP -# allow DDL on starup -spring.jta.atomikos.datasource.local-transaction-mode=true - -#all instances that connect to the same logCloud must use the same name (the one defined in data.sql) -spring.jta.atomikos.properties.transaction-manager-unique-name=logcloud -spring.datasource.continue-on-error=true - -atomikos.properties.transaction-manager-unique-name=logcloud diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml new file mode 100644 index 0000000..d1bc154 --- /dev/null +++ b/src/main/resources/application.yml @@ -0,0 +1,28 @@ +# Conversion to YAML from Properties formar report +# Warnings: +# - The yaml file had comments which are lost in the refactoring! +spring: + artemis: + embedded: + queues: accounts + jpa: + open-in-view: true + hibernate: + ddl-auto: update + datasource: + url: jdbc:h2:./logcloud + jta: + atomikos: + datasource: + unique-resource-name: APP + local-transaction-mode: true + properties: + transaction-manager-unique-name: logcloud + sql: + init: + continue-on-error: true + mode: always + +atomikos: + properties: + transaction-manager-unique-name: logcloud diff --git a/src/test/java/sample/atomikos/SampleAtomikosApplicationTests.java b/src/test/java/sample/atomikos/SampleAtomikosApplicationTests.java index 71a25cd..367b90c 100644 --- a/src/test/java/sample/atomikos/SampleAtomikosApplicationTests.java +++ b/src/test/java/sample/atomikos/SampleAtomikosApplicationTests.java @@ -16,28 +16,27 @@ package sample.atomikos; -import org.assertj.core.api.Condition; -import org.junit.Rule; -import org.junit.Test; - -import org.springframework.boot.test.system.OutputCaptureRule; - import static org.assertj.core.api.Assertions.assertThat; +import org.assertj.core.api.Condition; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.boot.test.system.CapturedOutput; +import org.springframework.boot.test.system.OutputCaptureExtension; + /** * Basic integration tests for demo application. * * @author Phillip Webb */ +@ExtendWith(OutputCaptureExtension.class) public class SampleAtomikosApplicationTests { - @Rule - public OutputCaptureRule outputCapture = new OutputCaptureRule(); @Test - public void testTransactionRollback() throws Exception { + public void testTransactionRollback(CapturedOutput capturedOutput) throws Exception { SampleAtomikosApplication.main(new String[] {}); - String output = this.outputCapture.toString(); + String output = capturedOutput.getOut(); assertThat(output).has(substring(1, "---->")); assertThat(output).has(substring(1, "----> josh")); assertThat(output).has(substring(2, "Count is 1"));