public ODatabaseDocument acquire() { if (this.pool != null) return this.pool.acquire(); return null; } }
@Override public void close() { pool.close(); } }
@Override public void start(final String database) { this.database = database; pool = new ODatabasePool(orientDB.get(), database, userManager.getUser(), userManager.getPassword()); // check database connection pool.acquire().close(); logger.debug("Pool {} started for database '{}'", getType(), this.database); }
@Override public OrientDBDocumentCollectionManager get(String database) { requireNonNull(database, "database is required"); orient.createIfNotExists(database, storageType); ODatabasePool pool = new ODatabasePool(orient, database, user, password); return new DefaultOrientDBDocumentCollectionManager(pool); }
@Override public Connection getConnection(String username, String password) throws SQLException { if (orientDB == null) { Properties info = new Properties(this.info); info.put("user", username); info.put("password", password); final String serverUsername = info.getProperty("serverUser", ""); final String serverPassword = info.getProperty("serverPassword", ""); String orientDbUrl = dbUrl.replace("jdbc:orient:", ""); OURLConnection connUrl = OURLHelper.parseNew(orientDbUrl); OrientDBConfig settings = OrientDBConfig.builder() .addConfig(OGlobalConfiguration.DB_POOL_MIN, Integer.valueOf(info.getProperty("db.pool.min", "1"))) .addConfig(OGlobalConfiguration.DB_POOL_MAX, Integer.valueOf(info.getProperty("db.pool.max", "10"))) .build(); orientDB = new OrientDB(connUrl.getType() + ":" + connUrl.getPath(), serverUsername, serverPassword, settings); if (!serverUsername.isEmpty() && !serverPassword.isEmpty()) orientDB.createIfNotExists(connUrl.getDbName(), connUrl.getDbType().orElse(ODatabaseType.MEMORY)); pool = new ODatabasePool(orientDB, connUrl.getDbName(), username, password); } return new OrientJdbcConnection(pool.acquire(), orientDB, info); }
@Override public OrientDBDocumentCollectionManagerAsync getAsync(String database) throws UnsupportedOperationException, NullPointerException { requireNonNull(database, "database is required"); orient.createIfNotExists(database, storageType); ODatabasePool pool = new ODatabasePool(orient, database, user, password); return new DefaultOrientDBDocumentCollectionManagerAsync(pool); }
@Override public void live(String query, OrientDBLiveCallback<DocumentEntity> callbacks, Object... params) { requireNonNull(query, "query is required"); requireNonNull(callbacks, "callbacks is required"); ODatabaseSession tx = pool.acquire(); tx.live(query, new LiveQueryListener(callbacks, tx)); }
pool = new ODatabasePool(orient, dbCtx, dbUser, dbPassword); } else if ("plocal".equalsIgnoreCase(kind)) { orient.create(dbName, ODatabaseType.PLOCAL); pool = new ODatabasePool(orient, dbName, dbUser, dbPassword); } else { orient = new OrientDB("remote:" + dbCtx, serverUser, serverPassword, null); orient.create(dbName, ODatabaseType.PLOCAL); pool = new ODatabasePool(orient, dbName, dbUser, dbPassword);
public void close() { if (this.pool != null) this.pool.close(); this.pool = null; }
@Override public List<DocumentEntity> sql(String query, Map<String, Object> params) { requireNonNull(query, "query is required"); requireNonNull(params, "params is required"); try (ODatabaseSession tx = pool.acquire(); OResultSet resultSet = tx.command(query, params)) { return OrientDBConverter.convert(resultSet); } }
public void reCreatePool() { close(); OrientDBConfig config = OrientDBConfig.defaultConfig(); config.getConfigurations().setValue(OGlobalConfiguration.DB_POOL_MAX, this.maxSize); this.pool = new ODatabasePool(this.orientdb, this.dbName, this.userName, this.password, config); }
@Override public void close() { pool.close(); }
@Override public long count(String documentCollection) { requireNonNull(documentCollection, "query is required"); try (ODatabaseSession tx = pool.acquire()) { String query = "select count(*) from ".concat(documentCollection); OResultSet command = tx.command(query); OResult next = command.next(); Object count = next.getProperty("count(*)"); return Number.class.cast(count).longValue(); } }
@Override @SuppressWarnings("PMD.NullAssignment") public void stop() { if (pool != null) { pool.close(); pool = null; logger.debug("Pool {} closed for database '{}'", getType(), database); database = null; } }
@Override public List<DocumentEntity> sql(String query, Object... params) { requireNonNull(query, "query is required"); try (ODatabaseSession tx = pool.acquire(); OResultSet resultSet = tx.command(query, params)) { return OrientDBConverter.convert(resultSet); } }
public void close() { loader.getPool().close(); loader.close(); }
@Override public void sql(String query, Consumer<List<DocumentEntity>> callBack, Map<String, Object> params) throws NullPointerException { requireNonNull(query, "query is required"); requireNonNull(callBack, "callBack is required"); requireNonNull(params, "params is required"); ODatabaseSession tx = pool.acquire(); QueryOSQLFactory.QueryResultAsync orientQuery = toAsync(query, l -> callBack.accept(l.stream() .map(OrientDBConverter::convert) .collect(toList())), params); tx.command(orientQuery.getQuery()).execute(orientQuery.getParams()); }
@Override public void sql(String query, Consumer<List<DocumentEntity>> callBack, Object... params) throws NullPointerException { requireNonNull(query, "query is required"); requireNonNull(callBack, "callBack is required"); ODatabaseSession tx = pool.acquire(); QueryOSQLFactory.QueryResultAsync orientQuery = toAsync(query, l -> callBack.accept(l.stream() .map(OrientDBConverter::convert) .collect(toList())), params); tx.command(orientQuery.getQuery()).execute(orientQuery.getParams()); }
@Override public void select(DocumentQuery query, Consumer<List<DocumentEntity>> callBack) throws ExecuteAsyncQueryException, UnsupportedOperationException { requireNonNull(query, "query is required"); requireNonNull(callBack, "callBack is required"); ODatabaseSession tx = pool.acquire(); QueryOSQLFactory.QueryResultAsync orientQuery = toAsync(query, l -> callBack.accept(l.stream() .map(OrientDBConverter::convert) .collect(toList()))); tx.command(orientQuery.getQuery()).execute(orientQuery.getParams()); }
@Override public void count(String documentCollection, Consumer<Long> callback) { requireNonNull(documentCollection, "query is required"); requireNonNull(callback, "callBack is required"); ODatabaseSession tx = pool.acquire(); String query = "select count(*) from ".concat(documentCollection); Consumer<List<ODocument>> orientCallback = l -> callback.accept(l.stream() .findFirst() .map(e -> e.field("count")) .map(n -> Number.class.cast(n).longValue()) .orElse(0L)); QueryOSQLFactory.QueryResultAsync orientQuery = toAsync(query, orientCallback); tx.command(orientQuery.getQuery()).execute(orientQuery.getParams()); }