DATAGRAPH-575 - Update to Neo4j 2.1.7 .

This commit is contained in:
Michael Hunger
2015-03-23 04:26:48 +01:00
parent 5ec16d01c6
commit 82148d3640
5 changed files with 47 additions and 21 deletions

34
pom.xml
View File

@@ -38,7 +38,7 @@
<source.level>1.7</source.level>
<target.level>1.7</target.level>
<neo4j.version>2.1.6</neo4j.version>
<neo4j.version>2.1.7</neo4j.version>
<neo4j.spatial.version>0.13-neo4j-2.1.4</neo4j.spatial.version>
<neo4j-cypher-dsl.version>2.0.1</neo4j-cypher-dsl.version>
@@ -52,6 +52,32 @@
<maven.test.skip>true</maven.test.skip>
</properties>
</profile>
<profile>
<id>neo22</id>
<properties>
<neo4j.version>2.2.0-RC01</neo4j.version>
</properties>
<dependencies>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-io</artifactId>
<version>${neo4j.version}</version>
<scope>test</scope>
<type>test-jar</type>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-spatial</artifactId>
<version>0.14-neo4j-2.2.0-M02</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>neo4j-contrib-releases</id>
<url>https://raw.github.com/neo4j-contrib/m2/master/releases</url>
</repository>
</repositories>
</profile>
<profile>
<id>distribute</id>
<properties>
@@ -152,9 +178,9 @@
<version>${neo4j.version}</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-cypher</artifactId>
<version>${neo4j.version}</version>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jta_1.1_spec</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>

View File

@@ -18,7 +18,6 @@
<properties>
<validation>1.0.0.GA</validation>
<jersey.version>1.9</jersey.version>
<neo4j.version>2.1.6</neo4j.version>
</properties>
<dependencies>

View File

@@ -20,8 +20,6 @@ import javax.transaction.UserTransaction;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.kernel.GraphDatabaseAPI;
import org.neo4j.kernel.impl.transaction.SpringTransactionManager;
import org.neo4j.kernel.impl.transaction.UserTransactionImpl;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.data.neo4j.core.GraphDatabase;
import org.springframework.transaction.jta.JtaTransactionManager;
@@ -109,25 +107,32 @@ public class JtaTransactionManagerFactoryBean implements FactoryBean<JtaTransact
private TransactionManager createTransactionManagerForOnePointSeven( GraphDatabaseService gds )
{
return createDynamically( SpringTransactionManager.class, GraphDatabaseService.class, gds );
return createDynamically( this.<TransactionManager>classFor("org.neo4j.kernel.impl.transaction.SpringTransactionManager"), GraphDatabaseService.class, gds );
}
private UserTransaction createUserTransactionForOnePointSeven( GraphDatabaseService gds )
{
TransactionManager txManager = ((GraphDatabaseAPI) gds).getDependencyResolver().resolveDependency(TransactionManager.class);
return createDynamically( UserTransactionImpl.class, TransactionManager.class, txManager );
return createDynamically(this.<UserTransaction>classFor("org.neo4j.kernel.impl.transaction.UserTransactionImpl"), TransactionManager.class, txManager);
}
private TransactionManager createTransactionManagerForOnePointEight( GraphDatabaseService gds )
{
return createDynamically( SpringTransactionManager.class, GraphDatabaseAPI.class, gds );
return createDynamically( this.<TransactionManager>classFor("org.neo4j.kernel.impl.transaction.SpringTransactionManager"), GraphDatabaseAPI.class, gds );
}
private UserTransaction createUserTransactionForOnePointEight( GraphDatabaseService gds )
{
return createDynamically( UserTransactionImpl.class, GraphDatabaseAPI.class, gds );
return createDynamically( this.<UserTransaction>classFor("org.neo4j.kernel.impl.transaction.UserTransactionImpl"), GraphDatabaseAPI.class, gds );
}
private <T> Class<T> classFor(String name) {
try {
return (Class<T>) Class.forName(name);
} catch (ClassNotFoundException cnfe) {
throw new RuntimeException("Class not found",cnfe);
}
}
private <T> T createDynamically( Class<T> requiredClass, Class<?> argumentClass, Object gds )
{
try {
@@ -136,5 +141,4 @@ public class JtaTransactionManagerFactoryBean implements FactoryBean<JtaTransact
throw new RuntimeException("Error accessing constructor of class "+requiredClass+ " for parameter type "+argumentClass,e);
}
}
}

View File

@@ -22,10 +22,7 @@ import org.neo4j.graphdb.NotInTransactionException;
import org.neo4j.graphdb.TransactionFailureException;
import org.neo4j.index.impl.lucene.QueryNotPossibleException;
import org.neo4j.kernel.DeadlockDetectedException;
import org.neo4j.kernel.impl.core.ReadOnlyDbException;
import org.neo4j.kernel.impl.locking.community.LockException;
import org.neo4j.kernel.impl.nioneo.store.StoreFailureException;
import org.neo4j.kernel.impl.persistence.IdGenerationFailedException;
import org.neo4j.kernel.impl.transaction.IllegalResourceException;
import org.springframework.dao.*;
import org.springframework.dao.support.PersistenceExceptionTranslator;
@@ -54,14 +51,8 @@ public class Neo4jExceptionTranslator implements PersistenceExceptionTranslator
throw new InvalidDataAccessApiUsageException(nit.getMessage(), nit);
} catch(TransactionFailureException tfe) {
throw new org.springframework.data.neo4j.core.UncategorizedGraphStoreException(tfe.getMessage(), tfe);
} catch(ReadOnlyDbException rodbe) {
throw new InvalidDataAccessResourceUsageException(rodbe.getMessage(), rodbe);
} catch(IllegalResourceException ire) {
throw new InvalidDataAccessResourceUsageException(ire.getMessage(), ire);
} catch(StoreFailureException sfe) {
throw new DataAccessResourceFailureException(sfe.getMessage(), sfe);
} catch(IdGenerationFailedException idfe) {
throw new NonTransientDataAccessResourceException(idfe.getMessage(), idfe);
} catch(NotFoundException nfe) {
throw new DataRetrievalFailureException(nfe.getMessage(), nfe);
} catch(QueryNotPossibleException qnpe) {
@@ -71,6 +62,12 @@ public class Neo4jExceptionTranslator implements PersistenceExceptionTranslator
} catch(LockException le) {
throw new ConcurrencyFailureException(le.getMessage(),le);
} catch(RuntimeException e) {
if (e.getClass().getName().equals("org.neo4j.kernel.impl.core.ReadOnlyDbException"))
throw new InvalidDataAccessResourceUsageException(e.getMessage(), e);
if (e.getClass().getName().equals("org.neo4j.kernel.impl.nioneo.store.StoreFailureException"))
throw new DataAccessResourceFailureException(e.getMessage(), e);
if (e.getClass().getName().equals("org.neo4j.kernel.impl.persistence.IdGenerationFailedException"))
throw new NonTransientDataAccessResourceException(e.getMessage(), e);
throw e; // exception thrown by the user
}
}