/** * Create a MySQL client which maintains its own pool. * @param vertx the Vert.x instance * @param config the configuration * @return the client */ public static io.vertx.rxjava.ext.asyncsql.AsyncSQLClient createNonShared(io.vertx.rxjava.core.Vertx vertx, JsonObject config) { io.vertx.rxjava.ext.asyncsql.AsyncSQLClient ret = io.vertx.rxjava.ext.asyncsql.AsyncSQLClient.newInstance(io.vertx.ext.asyncsql.MySQLClient.createNonShared(vertx.getDelegate(), config)); return ret; }
public static io.vertx.ext.asyncsql.AsyncSQLClient createShared(io.vertx.ext.asyncsql.MySQLClient j_receiver, io.vertx.core.Vertx vertx, java.util.Map<String, Object> config, java.lang.String poolName) { return io.vertx.core.impl.ConversionHelper.fromObject(io.vertx.ext.asyncsql.MySQLClient.createShared(vertx, config != null ? io.vertx.core.impl.ConversionHelper.toJsonObject(config) : null, poolName)); } public static io.vertx.ext.asyncsql.AsyncSQLClient createShared(io.vertx.ext.asyncsql.MySQLClient j_receiver, io.vertx.core.Vertx vertx, java.util.Map<String, Object> config) {
/** * Execute a one shot SQL statement that returns a single SQL row. This method will reduce the boilerplate code by * getting a connection from the pool (this object) and return it back after the execution. Only the first result * from the result set is returned. * @param sql the statement to execute * @param handler the result handler * @return self */ public io.vertx.rxjava.ext.sql.SQLOperations querySingle(String sql, Handler<AsyncResult<JsonArray>> handler) { delegate.querySingle(sql, handler); return this; }
@Override protected void internalInit(Handler<AsyncResult<IDataStore>> handler) { try { mySQLClient = shared ? MySQLClient.createShared(vertx, getConfig()) : MySQLClient.createNonShared(vertx, getConfig()); datastore = new MySqlDataStore(vertx, mySQLClient, getConfig()); handler.handle(Future.succeededFuture(datastore)); } catch (Exception e) { handler.handle(Future.failedFuture(e)); } }
/** * Execute a one shot SQL statement with arguments that returns a single SQL row. This method will reduce the * boilerplate code by getting a connection from the pool (this object) and return it back after the execution. * Only the first result from the result set is returned. * @param sql the statement to execute * @param arguments the arguments * @param handler the result handler * @return self */ public io.vertx.rxjava.ext.sql.SQLOperations querySingleWithParams(String sql, JsonArray arguments, Handler<AsyncResult<JsonArray>> handler) { delegate.querySingleWithParams(sql, arguments, handler); return this; }
public static io.vertx.ext.sql.SQLOperations querySingleWithParams(io.vertx.ext.asyncsql.MySQLClient j_receiver, java.lang.String sql, java.util.List<Object> arguments, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.util.List<Object>>> handler) { io.vertx.core.impl.ConversionHelper.fromObject(j_receiver.querySingleWithParams(sql, arguments != null ? io.vertx.core.impl.ConversionHelper.toJsonArray(arguments) : null, handler != null ? new io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonArray>>() { public void handle(io.vertx.core.AsyncResult<io.vertx.core.json.JsonArray> ar) { handler.handle(ar.map(event -> io.vertx.core.impl.ConversionHelper.fromJsonArray(event))); } } : null)); return j_receiver; } }
public static io.vertx.ext.asyncsql.AsyncSQLClient createNonShared(io.vertx.ext.asyncsql.MySQLClient j_receiver, io.vertx.core.Vertx vertx, java.util.Map<String, Object> config) { return io.vertx.core.impl.ConversionHelper.fromObject(io.vertx.ext.asyncsql.MySQLClient.createNonShared(vertx, config != null ? io.vertx.core.impl.ConversionHelper.toJsonObject(config) : null)); } public static io.vertx.ext.asyncsql.AsyncSQLClient createShared(io.vertx.ext.asyncsql.MySQLClient j_receiver, io.vertx.core.Vertx vertx, java.util.Map<String, Object> config, java.lang.String poolName) {
private static void initInternal(final Vertx vertx, final String name) { Fn.pool(CLIENTS, name, () -> Infix.init(Plugins.Infix.MYSQL, (config) -> MySQLClient.createShared(vertx, config, name), MongoInfix.class)); }
public static io.vertx.ext.sql.SQLOperations querySingle(io.vertx.ext.asyncsql.MySQLClient j_receiver, java.lang.String sql, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.util.List<Object>>> handler) { io.vertx.core.impl.ConversionHelper.fromObject(j_receiver.querySingle(sql, handler != null ? new io.vertx.core.Handler<io.vertx.core.AsyncResult<io.vertx.core.json.JsonArray>>() { public void handle(io.vertx.core.AsyncResult<io.vertx.core.json.JsonArray> ar) { handler.handle(ar.map(event -> io.vertx.core.impl.ConversionHelper.fromJsonArray(event))); } } : null)); return j_receiver; } public static io.vertx.ext.sql.SQLOperations querySingleWithParams(io.vertx.ext.asyncsql.MySQLClient j_receiver, java.lang.String sql, java.util.List<Object> arguments, io.vertx.core.Handler<io.vertx.core.AsyncResult<java.util.List<Object>>> handler) {
@Override protected SQLClient createClient(Vertx vertx, JsonObject config) { return MySQLClient.createNonShared(vertx, config.mergeIn(new JsonObject() .put("host", mysql.getContainerIpAddress()) .put("port", mysql.getMappedPort(3306)) .put("database", MYSQL_DATABASE) .put("username", MYSQL_USERNAME) .put("password", MYSQL_PASSWORD))); }
public static io.vertx.ext.asyncsql.AsyncSQLClient createShared(io.vertx.ext.asyncsql.MySQLClient j_receiver, io.vertx.core.Vertx vertx, java.util.Map<String, Object> config) { return io.vertx.core.impl.ConversionHelper.fromObject(io.vertx.ext.asyncsql.MySQLClient.createShared(vertx, config != null ? io.vertx.core.impl.ConversionHelper.toJsonObject(config) : null)); } }
@Override protected SQLClient createClient(Vertx vertx, JsonObject config) { return MySQLClient.createNonShared(vertx, config.mergeIn(new JsonObject() .put("host", mysql.getContainerIpAddress()) .put("port", mysql.getMappedPort(3306)) .put("database", MYSQL_DATABASE) .put("username", MYSQL_USERNAME) .put("password", MYSQL_PASSWORD))); }
/** * Create a MySQL client which shares its data source with any other MySQL clients created with the same * data source name * @param vertx the Vert.x instance * @param config the configuration * @param poolName the pool name * @return the client */ public static io.vertx.rxjava.ext.asyncsql.AsyncSQLClient createShared(io.vertx.rxjava.core.Vertx vertx, JsonObject config, String poolName) { io.vertx.rxjava.ext.asyncsql.AsyncSQLClient ret = io.vertx.rxjava.ext.asyncsql.AsyncSQLClient.newInstance(io.vertx.ext.asyncsql.MySQLClient.createShared(vertx.getDelegate(), config, poolName)); return ret; }
@Override protected SQLClient createClient(Vertx vertx, JsonObject config) { return MySQLClient.createNonShared(vertx, config.mergeIn(new JsonObject() .put("host", mysql.getContainerIpAddress()) .put("port", mysql.getMappedPort(3306)) .put("database", MYSQL_DATABASE) .put("username", MYSQL_USERNAME) .put("password", MYSQL_PASSWORD))); }
/** * Like {@link io.vertx.rxjava.ext.asyncsql.MySQLClient#createShared} but with the default pool name * @param vertx the Vert.x instance * @param config the configuration * @return the client */ public static io.vertx.rxjava.ext.asyncsql.AsyncSQLClient createShared(io.vertx.rxjava.core.Vertx vertx, JsonObject config) { io.vertx.rxjava.ext.asyncsql.AsyncSQLClient ret = io.vertx.rxjava.ext.asyncsql.AsyncSQLClient.newInstance(io.vertx.ext.asyncsql.MySQLClient.createShared(vertx.getDelegate(), config)); return ret; }
@Before public void init() { mysql.start(); client = MySQLClient.createNonShared(vertx, new JsonObject() .put("host", mysql.getContainerIpAddress()) .put("port", mysql.getMappedPort(3306)) .put("database", MYSQL_DATABASE) .put("username", MYSQL_USERNAME) .put("password", MYSQL_PASSWORD)); clientNoDatabase = MySQLClient.createNonShared(vertx, new JsonObject() .put("host", "localhost") .put("port", 65000) .put("maxPoolSize", 2) ); }
private static void initInternal(final Vertx vertx, final String name) { Fn.pool(CLIENTS, name, () -> Infix.init(Plugins.Infix.MYSQL, (config) -> MySQLClient.createShared(vertx, config, name), MongoInfix.class)); }
@Before public void init() { mysql.start(); client = MySQLClient.createNonShared(vertx, new JsonObject() .put("host", mysql.getContainerIpAddress()) .put("port", mysql.getMappedPort(3306)) .put("database", MYSQL_DATABASE) .put("username", MYSQL_USERNAME) .put("password", MYSQL_PASSWORD)); clientNoDatabase = MySQLClient.createNonShared(vertx, new JsonObject() .put("host", "localhost") .put("port", 65000) .put("maxPoolSize", 2) ); }
@Test public void testSharedDefault() throws Exception { LocalMap<String, Object> map = getLocalMap(); JsonObject config = new JsonObject(); SQLClient client1 = MySQLClient.createShared(vertx, config); assertEquals(1, map.size()); SQLClient client2 = MySQLClient.createShared(vertx, config); assertEquals(1, map.size()); SQLClient client3 = MySQLClient.createShared(vertx, config); assertEquals(1, map.size()); client1.close(); assertEquals(1, map.size()); client2.close(); assertEquals(1, map.size()); client3.close(); assertWaitUntil(() -> map.size() == 0); assertWaitUntil(() -> map != getLocalMap()); // Map has been closed }
@Before public void init() { mysql.start(); client = MySQLClient.createNonShared(vertx, new JsonObject() .put("host", mysql.getContainerIpAddress()) .put("port", mysql.getMappedPort(3306)) .put("database", MYSQL_DATABASE) .put("username", MYSQL_USERNAME) .put("password", MYSQL_PASSWORD)); clientNoDatabase = MySQLClient.createNonShared(vertx, new JsonObject() .put("host", "localhost") .put("port", 65000) .put("maxPoolSize", 2) ); }