diff --git a/data-mongodb/src/main/java/io/micronaut/data/mongodb/session/MongoConnectionOperationsImpl.java b/data-mongodb/src/main/java/io/micronaut/data/mongodb/session/MongoConnectionOperationsImpl.java index 023af65799d..f596f9a619f 100644 --- a/data-mongodb/src/main/java/io/micronaut/data/mongodb/session/MongoConnectionOperationsImpl.java +++ b/data-mongodb/src/main/java/io/micronaut/data/mongodb/session/MongoConnectionOperationsImpl.java @@ -22,9 +22,11 @@ import io.micronaut.data.connection.ConnectionDefinition; import io.micronaut.data.connection.ConnectionStatus; import io.micronaut.data.connection.support.AbstractConnectionOperations; +import io.micronaut.data.mongodb.conf.RequiresSyncMongo; -@Internal +@RequiresSyncMongo @EachBean(MongoClient.class) +@Internal final class MongoConnectionOperationsImpl extends AbstractConnectionOperations implements MongoConnectionOperations { private final MongoClient mongoClient; @@ -40,9 +42,6 @@ protected ClientSession openConnection(ConnectionDefinition definition) { @Override protected void setupConnection(ConnectionStatus connectionStatus) { -// if (connectionStatus.getDefinition().isP) { -// throw new ConnectionException("MongoDB client doesn't support read only client session!"); -// } } @Override diff --git a/data-processor/src/main/java/io/micronaut/data/processor/visitors/RepositoryTypeElementVisitor.java b/data-processor/src/main/java/io/micronaut/data/processor/visitors/RepositoryTypeElementVisitor.java index faa0a34b023..0b319d25a85 100644 --- a/data-processor/src/main/java/io/micronaut/data/processor/visitors/RepositoryTypeElementVisitor.java +++ b/data-processor/src/main/java/io/micronaut/data/processor/visitors/RepositoryTypeElementVisitor.java @@ -73,6 +73,7 @@ import io.micronaut.inject.ast.ParameterElement; import io.micronaut.inject.ast.TypedElement; import io.micronaut.inject.processing.ProcessingException; +import io.micronaut.inject.visitor.ElementPostponedToNextRoundException; import io.micronaut.inject.visitor.TypeElementVisitor; import io.micronaut.inject.visitor.VisitorContext; @@ -321,6 +322,11 @@ public void visitMethod(MethodElement element, VisitorContext context) { context.fail(matchContext.getUnableToImplementMessage() + e.getMessage(), e.getElement() == null ? element : e.getElement()); this.failing = true; } catch (Exception e) { + if (e instanceof ElementPostponedToNextRoundException || e.getClass().getSimpleName().equals("PostponeToNextRoundException")) { + // rethrow postponed and don't fail compilation + // this is not ideal since PostponeToNextRoundException is part of inject-java + throw e; + } matchContext.fail(e.getMessage()); this.failing = true; }