From 7200a208fb087b2be28ff75bb2b3bdf8b1337ea3 Mon Sep 17 00:00:00 2001 From: Michael Hunger Date: Fri, 27 Apr 2012 10:47:28 +0200 Subject: [PATCH] DATAGRAPH-228 update examples to neo4j 1.7-SNAPSHOT --- pom.xml | 1 + spring-data-neo4j-cross-store/pom.xml | 4 + spring-data-neo4j-parent/pom.xml | 19 +- spring-data-neo4j-tx/pom.xml | 176 ++++++++++++++++++ spring-data-neo4j-tx/src/META-INF/MANIFEST.MF | 3 + .../ChainedTransactionManager.java | 0 .../DefaultSynchronizationManager.java | 0 .../neo4j/transaction/JotmFactoryBean.java | 0 .../transaction/MultiTransactionStatus.java | 0 .../neo4j/transaction/Neo4jTransactional.java | 0 .../neo4j/transaction/SpringProvider.java | 0 .../neo4j/transaction/SpringServiceImpl.java | 20 +- .../transaction/SynchronizationManager.java | 0 ...mpl.transaction.TransactionManagerProvider | 0 .../ChainedTransactionManagerTest.java | 0 .../transaction/JOTMIntegrationTest.java | 15 +- .../test/resources/spring-tx-text-context.xml | 28 +++ spring-data-neo4j-tx/template.mf | 26 +++ spring-data-neo4j/pom.xml | 12 +- .../test/resources/spring-tx-text-context.xml | 37 ---- 20 files changed, 268 insertions(+), 73 deletions(-) create mode 100644 spring-data-neo4j-tx/pom.xml create mode 100644 spring-data-neo4j-tx/src/META-INF/MANIFEST.MF rename {spring-data-neo4j => spring-data-neo4j-tx}/src/main/java/org/springframework/data/neo4j/transaction/ChainedTransactionManager.java (100%) rename {spring-data-neo4j => spring-data-neo4j-tx}/src/main/java/org/springframework/data/neo4j/transaction/DefaultSynchronizationManager.java (100%) rename {spring-data-neo4j => spring-data-neo4j-tx}/src/main/java/org/springframework/data/neo4j/transaction/JotmFactoryBean.java (100%) rename {spring-data-neo4j => spring-data-neo4j-tx}/src/main/java/org/springframework/data/neo4j/transaction/MultiTransactionStatus.java (100%) rename {spring-data-neo4j => spring-data-neo4j-tx}/src/main/java/org/springframework/data/neo4j/transaction/Neo4jTransactional.java (100%) rename {spring-data-neo4j => spring-data-neo4j-tx}/src/main/java/org/springframework/data/neo4j/transaction/SpringProvider.java (100%) rename {spring-data-neo4j => spring-data-neo4j-tx}/src/main/java/org/springframework/data/neo4j/transaction/SpringServiceImpl.java (78%) rename {spring-data-neo4j => spring-data-neo4j-tx}/src/main/java/org/springframework/data/neo4j/transaction/SynchronizationManager.java (100%) rename {spring-data-neo4j => spring-data-neo4j-tx}/src/main/resources/META-INF/services/org.neo4j.kernel.impl.transaction.TransactionManagerProvider (100%) rename {spring-data-neo4j => spring-data-neo4j-tx}/src/test/java/org/springframework/data/neo4j/transaction/ChainedTransactionManagerTest.java (100%) rename {spring-data-neo4j => spring-data-neo4j-tx}/src/test/java/org/springframework/data/neo4j/transaction/JOTMIntegrationTest.java (89%) create mode 100644 spring-data-neo4j-tx/src/test/resources/spring-tx-text-context.xml create mode 100644 spring-data-neo4j-tx/template.mf delete mode 100644 spring-data-neo4j/src/test/resources/spring-tx-text-context.xml diff --git a/pom.xml b/pom.xml index 77a175752..f5d07710e 100644 --- a/pom.xml +++ b/pom.xml @@ -13,6 +13,7 @@ spring-data-neo4j-parent spring-data-neo4j spring-data-neo4j-rest + spring-data-neo4j-tx spring-data-neo4j-aspects spring-data-neo4j-cross-store diff --git a/spring-data-neo4j-cross-store/pom.xml b/spring-data-neo4j-cross-store/pom.xml index 016afd36e..976394abc 100644 --- a/spring-data-neo4j-cross-store/pom.xml +++ b/spring-data-neo4j-cross-store/pom.xml @@ -40,6 +40,10 @@ org.springframework.data spring-data-neo4j-aspects + + org.springframework.data + spring-data-neo4j-tx + org.springframework.data spring-data-neo4j diff --git a/spring-data-neo4j-parent/pom.xml b/spring-data-neo4j-parent/pom.xml index 4f7caf981..8c788b733 100644 --- a/spring-data-neo4j-parent/pom.xml +++ b/spring-data-neo4j-parent/pom.xml @@ -293,6 +293,11 @@ spring-data-neo4j-aspects ${project.version} + + org.springframework.data + spring-data-neo4j-tx + ${project.version} + @@ -300,12 +305,14 @@ slf4j-api ${org.slf4j.version} compile + true org.slf4j jcl-over-slf4j ${org.slf4j.version} runtime + true org.slf4j @@ -493,18 +500,6 @@ 1.6 provided - - - org.ow2.jotm - jotm-core - 2.1.9 - - - org.ow2.spec.ee - ow2-connector-1.5-spec - 1.0-M1 - - diff --git a/spring-data-neo4j-tx/pom.xml b/spring-data-neo4j-tx/pom.xml new file mode 100644 index 000000000..2c1b4a683 --- /dev/null +++ b/spring-data-neo4j-tx/pom.xml @@ -0,0 +1,176 @@ + + 4.0.0 + + org.springframework.data + spring-data-neo4j-parent + 2.1.0.BUILD-SNAPSHOT + ../spring-data-neo4j-parent/pom.xml + + spring-data-neo4j-tx + jar + Neo4j Spring XA Transaction Integration + + http://neo4j.org + + + + org.springframework + spring-beans + + + org.springframework + spring-tx + + + org.springframework + spring-aspects + + + org.neo4j + neo4j-kernel + ${neo4j.version} + + + org.neo4j + neo4j-lucene-index + ${neo4j.version} + test + + + org.neo4j + neo4j-kernel + ${neo4j.version} + test + test-jar + + + + org.ow2.jotm + jotm-core + 2.1.9 + true + + + org.ow2.spec.ee + ow2-connector-1.5-spec + 1.0-M1 + true + + + + junit + junit + + + + org.aspectj + aspectjrt + ${aspectj.version} + + + + + org.slf4j + slf4j-api + + + org.slf4j + slf4j-log4j12 + + + log4j + log4j + + + + cglib + cglib + 2.2 + + + + + org.hibernate.javax.persistence + hibernate-jpa-2.0-api + 1.0.0.Final + true + compile + + + + + + + org.codehaus.mojo + aspectj-maven-plugin + 1.2 + + + org.aspectj + aspectjrt + ${aspectj.version} + + + org.aspectj + aspectjtools + ${aspectj.version} + + + + + + + + org.springframework + spring-aspects + + + + 1.6 + 1.6 + + + + default-compile + + compile + + + + test-compile + + test-compile + + + + + + + org.apache.maven.plugins + maven-eclipse-plugin + 2.8 + + + 1.5 + + org.eclipse.ajdt.ui.ajnature + org.eclipse.jdt.core.javanature + org.springframework.ide.eclipse.core.springnature + + + + + + diff --git a/spring-data-neo4j-tx/src/META-INF/MANIFEST.MF b/spring-data-neo4j-tx/src/META-INF/MANIFEST.MF new file mode 100644 index 000000000..254272e1c --- /dev/null +++ b/spring-data-neo4j-tx/src/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/ChainedTransactionManager.java b/spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/ChainedTransactionManager.java similarity index 100% rename from spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/ChainedTransactionManager.java rename to spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/ChainedTransactionManager.java diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/DefaultSynchronizationManager.java b/spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/DefaultSynchronizationManager.java similarity index 100% rename from spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/DefaultSynchronizationManager.java rename to spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/DefaultSynchronizationManager.java diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/JotmFactoryBean.java b/spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/JotmFactoryBean.java similarity index 100% rename from spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/JotmFactoryBean.java rename to spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/JotmFactoryBean.java diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/MultiTransactionStatus.java b/spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/MultiTransactionStatus.java similarity index 100% rename from spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/MultiTransactionStatus.java rename to spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/MultiTransactionStatus.java diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/Neo4jTransactional.java b/spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/Neo4jTransactional.java similarity index 100% rename from spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/Neo4jTransactional.java rename to spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/Neo4jTransactional.java diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/SpringProvider.java b/spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/SpringProvider.java similarity index 100% rename from spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/SpringProvider.java rename to spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/SpringProvider.java diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/SpringServiceImpl.java b/spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/SpringServiceImpl.java similarity index 78% rename from spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/SpringServiceImpl.java rename to spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/SpringServiceImpl.java index d7dd8a4c4..b2995d21a 100644 --- a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/SpringServiceImpl.java +++ b/spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/SpringServiceImpl.java @@ -17,9 +17,9 @@ package org.springframework.data.neo4j.transaction; import org.neo4j.kernel.impl.transaction.AbstractTransactionManager; -import org.neo4j.kernel.impl.transaction.XaDataSourceManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Configurable; +import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.jta.JtaTransactionManager; import javax.transaction.*; @@ -30,8 +30,7 @@ import javax.transaction.*; @Configurable class SpringServiceImpl extends AbstractTransactionManager { - @Autowired - private JtaTransactionManager jtaTransactionManager; + private PlatformTransactionManager transactionManager; private TransactionManager delegate; @@ -41,7 +40,11 @@ class SpringServiceImpl extends AbstractTransactionManager @Override public void init() throws Throwable { - delegate = jtaTransactionManager.getTransactionManager(); + if (transactionManager instanceof JtaTransactionManager) { + delegate = ((JtaTransactionManager) transactionManager).getTransactionManager(); + } else { + throw new IllegalStateException("Injected transaction manager is not of type JtaTransactionManager but "+ transactionManager.getClass().getName()); + } } @Override @@ -108,4 +111,13 @@ class SpringServiceImpl extends AbstractTransactionManager { // Currently a no-op } + + public PlatformTransactionManager getTransactionManager() { + return transactionManager; + } + + @Autowired + public void setTransactionManager(PlatformTransactionManager transactionManager) { + this.transactionManager = transactionManager; + } } diff --git a/spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/SynchronizationManager.java b/spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/SynchronizationManager.java similarity index 100% rename from spring-data-neo4j/src/main/java/org/springframework/data/neo4j/transaction/SynchronizationManager.java rename to spring-data-neo4j-tx/src/main/java/org/springframework/data/neo4j/transaction/SynchronizationManager.java diff --git a/spring-data-neo4j/src/main/resources/META-INF/services/org.neo4j.kernel.impl.transaction.TransactionManagerProvider b/spring-data-neo4j-tx/src/main/resources/META-INF/services/org.neo4j.kernel.impl.transaction.TransactionManagerProvider similarity index 100% rename from spring-data-neo4j/src/main/resources/META-INF/services/org.neo4j.kernel.impl.transaction.TransactionManagerProvider rename to spring-data-neo4j-tx/src/main/resources/META-INF/services/org.neo4j.kernel.impl.transaction.TransactionManagerProvider diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/transaction/ChainedTransactionManagerTest.java b/spring-data-neo4j-tx/src/test/java/org/springframework/data/neo4j/transaction/ChainedTransactionManagerTest.java similarity index 100% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/transaction/ChainedTransactionManagerTest.java rename to spring-data-neo4j-tx/src/test/java/org/springframework/data/neo4j/transaction/ChainedTransactionManagerTest.java diff --git a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/transaction/JOTMIntegrationTest.java b/spring-data-neo4j-tx/src/test/java/org/springframework/data/neo4j/transaction/JOTMIntegrationTest.java similarity index 89% rename from spring-data-neo4j/src/test/java/org/springframework/data/neo4j/transaction/JOTMIntegrationTest.java rename to spring-data-neo4j-tx/src/test/java/org/springframework/data/neo4j/transaction/JOTMIntegrationTest.java index ed293ae15..40e0f660b 100644 --- a/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/transaction/JOTMIntegrationTest.java +++ b/spring-data-neo4j-tx/src/test/java/org/springframework/data/neo4j/transaction/JOTMIntegrationTest.java @@ -17,8 +17,8 @@ package org.springframework.data.neo4j.transaction; import org.junit.After; +import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.neo4j.graphdb.GraphDatabaseService; import org.neo4j.graphdb.Node; @@ -27,7 +27,6 @@ import org.neo4j.kernel.AbstractGraphDatabase; import org.neo4j.kernel.configuration.Config; import org.objectweb.jotm.Current; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.data.neo4j.support.node.Neo4jHelper; import org.springframework.transaction.jta.JtaTransactionManager; import org.springframework.transaction.jta.ManagedTransactionAdapter; @@ -43,7 +42,6 @@ import static org.junit.Assert.assertNotNull; * @since 21.02.11 */ -@Ignore("TODO") public class JOTMIntegrationTest { private ClassPathXmlApplicationContext ctx; private GraphDatabaseService gds; @@ -52,7 +50,6 @@ public class JOTMIntegrationTest { public void setUp() throws Exception { ctx = new ClassPathXmlApplicationContext("classpath:spring-tx-text-context.xml"); gds = ctx.getBean(GraphDatabaseService.class); - Neo4jHelper.cleanDb(gds); } @After @@ -72,11 +69,11 @@ public class JOTMIntegrationTest { transaction.finish(); } Node readBackOutsideOfTx = gds.getNodeById(node.getId()); - assertEquals(node, readBackOutsideOfTx); + Assert.assertEquals(node, readBackOutsideOfTx); try { transaction = gds.beginTx(); Node readBackInsideOfTx = gds.getNodeById(node.getId()); - assertEquals(node, readBackInsideOfTx); + Assert.assertEquals(node, readBackInsideOfTx); transaction.success(); } finally { transaction.finish(); @@ -95,7 +92,7 @@ public class JOTMIntegrationTest { transaction.finish(); } Node retrievedNode = gds.index().forNodes("node").get("name", "value").getSingle(); - assertEquals(node,retrievedNode); + Assert.assertEquals(node, retrievedNode); } @Test(expected = NotFoundException.class) @@ -115,12 +112,12 @@ public class JOTMIntegrationTest { @Test public void databaseConfiguredWithSpringJtaShouldUseJtaTransactionManager() throws SystemException, NotSupportedException { final Config config = ((AbstractGraphDatabase) gds).getConfig(); - assertEquals("spring-jta", config.getParams().get(Config.TXMANAGER_IMPLEMENTATION)); + Assert.assertEquals("spring-jta", config.getParams().get(Config.TXMANAGER_IMPLEMENTATION)); JtaTransactionManager tm = ctx.getBean("transactionManager", JtaTransactionManager.class); Transaction transaction = tm.createTransaction("jotm", 1000); - assertEquals(ManagedTransactionAdapter.class, transaction.getClass()); + Assert.assertEquals(ManagedTransactionAdapter.class, transaction.getClass()); assertEquals(Current.class, ((ManagedTransactionAdapter) transaction).getTransactionManager().getClass()); } } diff --git a/spring-data-neo4j-tx/src/test/resources/spring-tx-text-context.xml b/spring-data-neo4j-tx/src/test/resources/spring-tx-text-context.xml new file mode 100644 index 000000000..e695e597b --- /dev/null +++ b/spring-data-neo4j-tx/src/test/resources/spring-tx-text-context.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/spring-data-neo4j-tx/template.mf b/spring-data-neo4j-tx/template.mf new file mode 100644 index 000000000..2886da95b --- /dev/null +++ b/spring-data-neo4j-tx/template.mf @@ -0,0 +1,26 @@ +Bundle-SymbolicName: org.springframework.data.neo4j.transaction +Bundle-Name: Neo4j Spring XA Transaction Integration +Bundle-Vendor: SpringSource +Bundle-ManifestVersion: 2 +Import-Template: + org.springframework.beans.*;version="[3.0.0, 4.0.0)", + org.springframework.context.*;version="[3.0.0, 4.0.0)", + org.springframework.core.*;version="[3.0.0, 4.0.0)", + org.springframework.stereotype.*;version="[3.0.0, 4.0.0)", + org.springframework.transaction.*;version="[3.0.0, 4.0.0)", + org.springframework.util.*;version="[3.0.0, 4.0.0)", + org.neo4j.*;version="0", + org.aspectj.*;version="[1.6.5, 2.0.0)", + org.apache.commons.configuration.*;version="0", + org.objectweb.jotm.*;version="0", + org.apache.lucene.*;version="0", + org.slf4j.*;version="0", + javax.persistence.*;version="[1.0.0, 3.0.0)";resolution:=optional, + javax.transaction.*;version="[1.0.1, 2.0.0)";resolution:=optional, + javax.naming.*;version="[1.0.1, 2.0.0)";resolution:=optional +Import-Package: + sun.reflect;version="0";resolution:=optional, + net.sf.cglib.proxy;version="[2.2.0,3.0.0)", + net.sf.cglib.core;version="[2.2.0,3.0.0)", + net.sf.cglib.reflect;version="[2.2.0,3.0.0)" +DynamicImport-Package: * \ No newline at end of file diff --git a/spring-data-neo4j/pom.xml b/spring-data-neo4j/pom.xml index 8d8c131ab..2468883dc 100644 --- a/spring-data-neo4j/pom.xml +++ b/spring-data-neo4j/pom.xml @@ -38,17 +38,6 @@ spring-data-commons-core - - org.ow2.jotm - jotm-core - provided - - - org.ow2.spec.ee - ow2-connector-1.5-spec - provided - - org.slf4j @@ -222,6 +211,7 @@ org.hibernate.javax.persistence hibernate-jpa-2.0-api 1.0.0.Final + true diff --git a/spring-data-neo4j/src/test/resources/spring-tx-text-context.xml b/spring-data-neo4j/src/test/resources/spring-tx-text-context.xml deleted file mode 100644 index 6ccf613dd..000000000 --- a/spring-data-neo4j/src/test/resources/spring-tx-text-context.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file