Search in sources :

Example 31 with BsonString

use of org.bson.BsonString in project mongo-java-driver by mongodb.

the class IdHoldingBsonWriter method writeString.

@Override
public void writeString(final String name, final String value) {
    setCurrentFieldName(name);
    addBsonValue(() -> new BsonString(value), () -> getIdBsonWriter().writeString(name, value));
    super.writeString(name, value);
}
Also used : BsonString(org.bson.BsonString)

Example 32 with BsonString

use of org.bson.BsonString in project mongo-java-driver by mongodb.

the class UnifiedGridFSHelper method executeDownload.

public OperationResult executeDownload(final BsonDocument operation) {
    GridFSBucket bucket = entities.getBucket(operation.getString("object").getValue());
    BsonDocument arguments = operation.getDocument("arguments");
    BsonValue id = arguments.get("id");
    if (arguments.size() > 1) {
        throw new UnsupportedOperationException("Unexpected arguments");
    }
    requireNonNull(id);
    try {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        bucket.downloadToStream(id, baos);
        return OperationResult.of(new BsonString(HexUtils.toHex(baos.toByteArray())));
    } catch (Exception e) {
        return OperationResult.of(e);
    }
}
Also used : GridFSBucket(com.mongodb.client.gridfs.GridFSBucket) BsonDocument(org.bson.BsonDocument) BsonString(org.bson.BsonString) ByteArrayOutputStream(java.io.ByteArrayOutputStream) BsonValue(org.bson.BsonValue)

Example 33 with BsonString

use of org.bson.BsonString in project mongo-java-driver by mongodb.

the class JsonPoweredCrudTestHelper method getDownloadResult.

BsonDocument getDownloadResult(final BsonDocument collectionOptions, final BsonDocument arguments, @Nullable final ClientSession clientSession) throws IOException {
    ByteArrayOutputStream outputStream = null;
    try {
        outputStream = new ByteArrayOutputStream();
        gridFSBucket.downloadToStream(arguments.getObjectId("id").getValue(), outputStream);
    } finally {
        outputStream.close();
    }
    return toResult("result", new BsonString(Hex.encode(outputStream.toByteArray()).toLowerCase()));
}
Also used : BsonString(org.bson.BsonString) ByteArrayOutputStream(java.io.ByteArrayOutputStream)

Example 34 with BsonString

use of org.bson.BsonString in project mongo-java-driver by mongodb.

the class JsonPoweredCrudTestHelper method getOperationResults.

BsonDocument getOperationResults(final BsonDocument operation, @Nullable final ClientSession clientSession) {
    BsonDocument collectionOptions = operation.getDocument("collectionOptions", new BsonDocument());
    BsonDocument arguments = operation.getDocument("arguments", new BsonDocument());
    String methodName = createMethodName(operation.getString("name").getValue(), operation.getString("object", new BsonString("")).getValue());
    try {
        Method method = getClass().getDeclaredMethod(methodName, BsonDocument.class, BsonDocument.class, ClientSession.class);
        return (BsonDocument) method.invoke(this, collectionOptions, arguments, clientSession);
    } catch (NoSuchMethodException e) {
        throw new UnsupportedOperationException("No handler for operation " + methodName);
    } catch (InvocationTargetException e) {
        if (e.getTargetException() instanceof MongoException) {
            throw (MongoException) e.getTargetException();
        }
        throw (RuntimeException) e.getTargetException();
    } catch (IllegalAccessException e) {
        throw new UnsupportedOperationException("Invalid handler access for operation " + methodName);
    }
}
Also used : MongoException(com.mongodb.MongoException) BsonDocument(org.bson.BsonDocument) BsonString(org.bson.BsonString) BsonString(org.bson.BsonString) Method(java.lang.reflect.Method) InvocationTargetException(java.lang.reflect.InvocationTargetException)

Example 35 with BsonString

use of org.bson.BsonString in project mongo-java-driver by mongodb.

the class ServerDiscoveryAndMonitoringProseTests method testConnectionPoolManagement.

/**
 * See
 * <a href="https://github.com/mongodb/specifications/blob/master/source/server-discovery-and-monitoring/server-discovery-and-monitoring-tests.rst#connection-pool-management">Connection Pool Management</a>.
 */
@Test
@Ignore
@SuppressWarnings("try")
public void testConnectionPoolManagement() throws InterruptedException {
    assumeTrue(serverVersionAtLeast(4, 3));
    assumeFalse(isServerlessTest());
    BlockingQueue<Object> events = new LinkedBlockingQueue<>();
    ServerMonitorListener serverMonitorListener = new ServerMonitorListener() {

        @Override
        public void serverHeartbeatSucceeded(final ServerHeartbeatSucceededEvent event) {
            put(events, event);
        }

        @Override
        public void serverHeartbeatFailed(final ServerHeartbeatFailedEvent event) {
            put(events, event);
        }
    };
    ConnectionPoolListener connectionPoolListener = new ConnectionPoolListener() {

        @Override
        public void connectionPoolReady(final ConnectionPoolReadyEvent event) {
            put(events, event);
        }

        @Override
        public void connectionPoolCleared(final ConnectionPoolClearedEvent event) {
            put(events, event);
        }
    };
    String appName = "SDAMPoolManagementTest";
    MongoClientSettings clientSettings = getMongoClientSettingsBuilder().applicationName(appName).applyToClusterSettings(ClusterFixture::setDirectConnection).applyToServerSettings(builder -> builder.heartbeatFrequency(100, TimeUnit.MILLISECONDS).addServerMonitorListener(serverMonitorListener)).applyToConnectionPoolSettings(builder -> builder.addConnectionPoolListener(connectionPoolListener)).build();
    try (MongoClient unused = MongoClients.create(clientSettings)) {
        /* Note that ServerHeartbeatSucceededEvent type is sometimes allowed but never required.
             * This is because DefaultServerMonitor does not send such events in situations when a server check happens as part
             * of a connection handshake. */
        assertPoll(events, ServerHeartbeatSucceededEvent.class, singleton(ConnectionPoolReadyEvent.class));
        configureFailPoint(new BsonDocument().append("configureFailPoint", new BsonString("failCommand")).append("mode", new BsonDocument().append("times", new BsonInt32(2))).append("data", new BsonDocument().append("failCommands", new BsonArray(asList(new BsonString("isMaster"), new BsonString("hello")))).append("errorCode", new BsonInt32(1234)).append("appName", new BsonString(appName))));
        assertPoll(events, ServerHeartbeatSucceededEvent.class, new HashSet<>(asList(ServerHeartbeatFailedEvent.class, ConnectionPoolClearedEvent.class)));
        assertPoll(events, null, new HashSet<>(asList(ServerHeartbeatSucceededEvent.class, ConnectionPoolReadyEvent.class)));
    } finally {
        disableFailPoint("failCommand");
    }
}
Also used : Document(org.bson.Document) ServerListener(com.mongodb.event.ServerListener) Fixture.getMongoClientSettingsBuilder(com.mongodb.client.Fixture.getMongoClientSettingsBuilder) Collections.singleton(java.util.Collections.singleton) Arrays.asList(java.util.Arrays.asList) BsonArray(org.bson.BsonArray) ClusterFixture.isStandalone(com.mongodb.ClusterFixture.isStandalone) Assert.fail(org.junit.Assert.fail) ServerDescriptionChangedEvent(com.mongodb.event.ServerDescriptionChangedEvent) ServerHeartbeatSucceededEvent(com.mongodb.event.ServerHeartbeatSucceededEvent) ClusterFixture.isServerlessTest(com.mongodb.ClusterFixture.isServerlessTest) BsonNull(org.bson.BsonNull) Collections.synchronizedList(java.util.Collections.synchronizedList) Set(java.util.Set) BlockingQueue(java.util.concurrent.BlockingQueue) MILLISECONDS(java.util.concurrent.TimeUnit.MILLISECONDS) ConnectionPoolClearedEvent(com.mongodb.event.ConnectionPoolClearedEvent) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue) String.format(java.lang.String.format) CountDownLatch(java.util.concurrent.CountDownLatch) List(java.util.List) Block(com.mongodb.Block) Assert.assertFalse(org.junit.Assert.assertFalse) Optional(java.util.Optional) ClusterFixture.configureFailPoint(com.mongodb.ClusterFixture.configureFailPoint) Assume.assumeTrue(org.junit.Assume.assumeTrue) MongoClientSettings(com.mongodb.MongoClientSettings) Fixture.getDefaultDatabaseName(com.mongodb.client.Fixture.getDefaultDatabaseName) BsonDocument.parse(org.bson.BsonDocument.parse) NANOSECONDS(java.util.concurrent.TimeUnit.NANOSECONDS) Assume.assumeFalse(org.junit.Assume.assumeFalse) BsonString(org.bson.BsonString) ServerSettings(com.mongodb.connection.ServerSettings) BsonDocument(org.bson.BsonDocument) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) ClusterFixture(com.mongodb.ClusterFixture) ServerHeartbeatFailedEvent(com.mongodb.event.ServerHeartbeatFailedEvent) Logger(com.mongodb.diagnostics.logging.Logger) MongoInterruptedException(com.mongodb.MongoInterruptedException) ConnectionPoolListener(com.mongodb.event.ConnectionPoolListener) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) Timeout(com.mongodb.internal.Timeout) TimeUnit(java.util.concurrent.TimeUnit) ConnectionPoolReadyEvent(com.mongodb.event.ConnectionPoolReadyEvent) ServerMonitorListener(com.mongodb.event.ServerMonitorListener) Ignore(org.junit.Ignore) Loggers(com.mongodb.diagnostics.logging.Loggers) ClusterFixture.serverVersionAtLeast(com.mongodb.ClusterFixture.serverVersionAtLeast) Nullable(com.mongodb.lang.Nullable) BsonInt32(org.bson.BsonInt32) ClusterFixture.disableFailPoint(com.mongodb.ClusterFixture.disableFailPoint) SECONDS(java.util.concurrent.TimeUnit.SECONDS) Assert.assertEquals(org.junit.Assert.assertEquals) ServerHeartbeatFailedEvent(com.mongodb.event.ServerHeartbeatFailedEvent) BsonString(org.bson.BsonString) MongoClientSettings(com.mongodb.MongoClientSettings) LinkedBlockingQueue(java.util.concurrent.LinkedBlockingQueue) ServerHeartbeatSucceededEvent(com.mongodb.event.ServerHeartbeatSucceededEvent) ServerMonitorListener(com.mongodb.event.ServerMonitorListener) BsonInt32(org.bson.BsonInt32) ConnectionPoolClearedEvent(com.mongodb.event.ConnectionPoolClearedEvent) BsonDocument(org.bson.BsonDocument) ConnectionPoolListener(com.mongodb.event.ConnectionPoolListener) BsonString(org.bson.BsonString) BsonArray(org.bson.BsonArray) ConnectionPoolReadyEvent(com.mongodb.event.ConnectionPoolReadyEvent) Ignore(org.junit.Ignore) ClusterFixture.isServerlessTest(com.mongodb.ClusterFixture.isServerlessTest) Test(org.junit.Test)

Aggregations

BsonString (org.bson.BsonString)168 BsonDocument (org.bson.BsonDocument)146 BsonInt32 (org.bson.BsonInt32)54 BsonArray (org.bson.BsonArray)48 Test (org.junit.Test)33 BsonValue (org.bson.BsonValue)31 Document (org.bson.Document)28 BsonInt64 (org.bson.BsonInt64)27 ArrayList (java.util.ArrayList)23 Map (java.util.Map)14 MongoClientSettings (com.mongodb.MongoClientSettings)13 BsonBinary (org.bson.BsonBinary)13 BsonDouble (org.bson.BsonDouble)13 EncryptOptions (com.mongodb.client.model.vault.EncryptOptions)12 HashMap (java.util.HashMap)12 MongoNamespace (com.mongodb.MongoNamespace)11 Test (org.junit.jupiter.api.Test)11 List (java.util.List)10 DataKeyOptions (com.mongodb.client.model.vault.DataKeyOptions)9 BsonBoolean (org.bson.BsonBoolean)9