diff --git a/pom.xml b/pom.xml index a0f2a8595..a5b1a5ba1 100644 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 - + org.springframework.data spring-data-mongodb-parent 1.6.0.BUILD-SNAPSHOT @@ -31,8 +31,9 @@ spring-data-mongodb 1.9.0.BUILD-SNAPSHOT 2.12.1 + 2.12.1 - + ogierke @@ -104,10 +105,35 @@ + mongo-next - 2.12.0 + 2.12.3-SNAPSHOT + + + + mongo-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + + + + + + + mongo-3-next + + 3.0.0-SNAPSHOT + + + + + mongo-snapshots + https://oss.sonatype.org/content/repositories/snapshots + + + @@ -119,14 +145,14 @@ ${mongo} - + spring-libs-snapshot http://repo.spring.io/libs-snapshot - + spring-plugins-release diff --git a/spring-data-mongodb-cross-store/template.mf b/spring-data-mongodb-cross-store/template.mf index 046a11a09..8561ad900 100644 --- a/spring-data-mongodb-cross-store/template.mf +++ b/spring-data-mongodb-cross-store/template.mf @@ -7,7 +7,7 @@ Import-Package: Export-Template: org.springframework.data.mongodb.crossstore.*;version="${project.version}" Import-Template: - com.mongodb.*;version="${mongo:[=.=.=,+1.0.0)}", + com.mongodb.*;version="${mongo.osgi:[=.=.=,+1.0.0)}", javax.persistence.*;version="${jpa:[=.=.=,+1.0.0)}", org.aspectj.*;version="${aspectj:[1.0.0, 2.0.0)}", org.bson.*;version="0", diff --git a/spring-data-mongodb-log4j/template.mf b/spring-data-mongodb-log4j/template.mf index cca0bedf7..e7d182b11 100644 --- a/spring-data-mongodb-log4j/template.mf +++ b/spring-data-mongodb-log4j/template.mf @@ -5,5 +5,5 @@ Bundle-ManifestVersion: 2 Import-Package: sun.reflect;version="0";resolution:=optional Import-Template: - com.mongodb.*;version="${mongo:[=.=.=,+1.0.0)}", + com.mongodb.*;version="${mongo.osgi:[=.=.=,+1.0.0)}", org.apache.log4j.*;version="${log4j:[=.=.=,+1.0.0)}" diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoExceptionTranslator.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoExceptionTranslator.java index 9b591b56e..b8eeb427d 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoExceptionTranslator.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/MongoExceptionTranslator.java @@ -23,11 +23,15 @@ import org.springframework.dao.InvalidDataAccessResourceUsageException; import org.springframework.dao.support.PersistenceExceptionTranslator; import org.springframework.data.mongodb.UncategorizedMongoDbException; +import com.mongodb.MongoCursorNotFoundException; import com.mongodb.MongoException; import com.mongodb.MongoException.CursorNotFound; import com.mongodb.MongoException.DuplicateKey; import com.mongodb.MongoException.Network; import com.mongodb.MongoInternalException; +import com.mongodb.MongoServerSelectionException; +import com.mongodb.MongoSocketException; +import com.mongodb.MongoTimeoutException; /** * Simple {@link PersistenceExceptionTranslator} for Mongo. Convert the given runtime exception to an appropriate @@ -47,21 +51,23 @@ public class MongoExceptionTranslator implements PersistenceExceptionTranslator // Check for well-known MongoException subclasses. - // All other MongoExceptions - if (ex instanceof DuplicateKey) { + if (ex instanceof DuplicateKey || ex instanceof DuplicateKeyException) { return new DuplicateKeyException(ex.getMessage(), ex); } - if (ex instanceof Network) { + if (ex instanceof Network || ex instanceof MongoSocketException) { return new DataAccessResourceFailureException(ex.getMessage(), ex); } - if (ex instanceof CursorNotFound) { + if (ex instanceof CursorNotFound || ex instanceof MongoCursorNotFoundException) { return new DataAccessResourceFailureException(ex.getMessage(), ex); } - // Driver 2.12 throws this to indicate connection problems. String comparison to avoid hard dependency - if (ex.getClass().getName().equals("com.mongodb.MongoServerSelectionException")) { + if (ex instanceof MongoServerSelectionException) { + return new DataAccessResourceFailureException(ex.getMessage(), ex); + } + + if (ex instanceof MongoTimeoutException) { return new DataAccessResourceFailureException(ex.getMessage(), ex); } @@ -69,6 +75,7 @@ public class MongoExceptionTranslator implements PersistenceExceptionTranslator return new InvalidDataAccessResourceUsageException(ex.getMessage(), ex); } + // All other MongoExceptions if (ex instanceof MongoException) { int code = ((MongoException) ex).getCode(); diff --git a/spring-data-mongodb/template.mf b/spring-data-mongodb/template.mf index 2fcf7671d..8071550e3 100644 --- a/spring-data-mongodb/template.mf +++ b/spring-data-mongodb/template.mf @@ -8,7 +8,7 @@ Export-Template: org.springframework.data.mongodb.*;version="${project.version}" Import-Template: com.google.common.base.*;version="[11.0.0,14.0.0)";resolution:=optional, - com.mongodb.*;version="${mongo:[=.=.=,+1.0.0)}", + com.mongodb.*;version="${mongo.osgi:[=.=.=,+1.0.0)}", com.mysema.query.*;version="[2.1.1, 3.0.0)";resolution:=optional, javax.annotation.processing.*;version="0", javax.enterprise.*;version="${cdi:[=.=.=,+1.0.0)}";resolution:=optional,