* Deploys a verticle.
*/
private void doDeployVerticle(final Message<JsonObject> message) {
String main = message.body().getString("main");
if (main == null) {
message.reply(new JsonObject().putString("status", "error").putString("message", "No verticle main specified."));
return;
}
JsonObject config = message.body().getObject("config");
if (config == null) {
config = new JsonObject();
}
int instances = message.body().getInteger("instances", 1);
boolean worker = message.body().getBoolean("worker", false);
if (worker) {
boolean multiThreaded = message.body().getBoolean("multi-threaded", false);
platform.deployWorkerVerticle(main, config, instances, multiThreaded, new Handler<AsyncResult<String>>() {
@Override
public void handle(AsyncResult<String> result) {
if (result.failed()) {
message.reply(new JsonObject().putString("status", "error").putString("message", result.cause().getMessage()));
} else {
final String deploymentID = result.result();
context.execute(new Action<String>() {
@Override
public String perform() {
deployments.put(node, message.body().copy().putString("id", deploymentID).encode());
return deploymentID;
}
}, new Handler<AsyncResult<String>>() {
@Override
public void handle(AsyncResult<String> result) {
message.reply(new JsonObject().putString("status", "ok").putString("id", deploymentID));
}
});
}
}
});
} else {
platform.deployVerticle(main, config, instances, new Handler<AsyncResult<String>>() {
@Override
public void handle(AsyncResult<String> result) {
if (result.failed()) {
message.reply(new JsonObject().putString("status", "error").putString("message", result.cause().getMessage()));
} else {
final String deploymentID = result.result();
context.execute(new Action<String>() {
@Override
public String perform() {
deployments.put(node, message.body().copy().putString("id", deploymentID).encode());
return deploymentID;
}
}, new Handler<AsyncResult<String>>() {
@Override
public void handle(AsyncResult<String> result) {
message.reply(new JsonObject().putString("status", "ok").putString("id", deploymentID));
}
});
}
}
});