コード例 #1
0
ファイル: MongoSourceElement.java プロジェクト: zioda/Lab7ORW
  @Override
  public void testStarted() {
    if (log.isDebugEnabled()) {
      log.debug(getTitle() + " testStarted");
    }

    MongoClientOptions.Builder builder =
        MongoClientOptions.builder()
            .autoConnectRetry(getAutoConnectRetry())
            .connectTimeout(getConnectTimeout())
            .connectionsPerHost(getConnectionsPerHost())
            .maxAutoConnectRetryTime(getMaxAutoConnectRetryTime())
            .maxWaitTime(getMaxWaitTime())
            .socketKeepAlive(getSocketKeepAlive())
            .socketTimeout(getSocketTimeout())
            .threadsAllowedToBlockForConnectionMultiplier(
                getThreadsAllowedToBlockForConnectionMultiplier());

    if (getSafe()) {
      builder.writeConcern(WriteConcern.SAFE);
    } else {
      builder.writeConcern(
          new WriteConcern(
              getWriteOperationNumberOfServers(),
              getWriteOperationTimeout(),
              getFsync(),
              getWaitForJournaling(),
              getContinueOnInsertError()));
    }
    MongoClientOptions mongoOptions = builder.build();

    if (log.isDebugEnabled()) {
      log.debug("options : " + mongoOptions.toString());
    }

    if (getThreadContext().getVariables().getObject(getSource()) != null) {
      if (log.isWarnEnabled()) {
        log.warn(getSource() + " has already been defined.");
      }
    } else {
      if (log.isDebugEnabled()) {
        log.debug(getSource() + "  is being defined.");
      }
      try {
        getThreadContext()
            .getVariables()
            .putObject(
                getSource(),
                new MongoDB(MongoUtils.toServerAddresses(getConnection()), mongoOptions));
      } catch (UnknownHostException e) {
        throw new IllegalStateException(e);
      }
    }
  }