diff --git a/backend/vertx/.settings/org.eclipse.jdt.core.prefs b/backend/vertx/.settings/org.eclipse.jdt.core.prefs
index 2f5cc74..29163e5 100644
--- a/backend/vertx/.settings/org.eclipse.jdt.core.prefs
+++ b/backend/vertx/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,13 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=23
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=23
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=23
diff --git a/backend/vertx/pom.xml b/backend/vertx/pom.xml
index 805b7df..a454749 100644
--- a/backend/vertx/pom.xml
+++ b/backend/vertx/pom.xml
@@ -10,5 +10,10 @@
vertx-core
4.5.13
+
+ com.google.code.gson
+ gson
+ 2.12.1
+
\ No newline at end of file
diff --git a/backend/vertx/src/main/java/net/miarma/contaminus/ConsumerVerticle1.java b/backend/vertx/src/main/java/net/miarma/contaminus/ConsumerVerticle1.java
new file mode 100644
index 0000000..affa9ac
--- /dev/null
+++ b/backend/vertx/src/main/java/net/miarma/contaminus/ConsumerVerticle1.java
@@ -0,0 +1,22 @@
+package net.miarma.contaminus;
+
+import io.vertx.core.AbstractVerticle;
+import io.vertx.core.Promise;
+
+public class ConsumerVerticle1 extends AbstractVerticle {
+ @Override
+ public void start(Promise startPromise) {
+ getVertx().eventBus().consumer("__addr_ConsumerBox", message -> {
+ String customMessage = (String) message.body();
+ System.out.println("[1] Mensaje recibido (" + message.address() + "): " + customMessage);
+ String replyMessage = "[1] Mensaje recibido: \"" + message.body().toString() + "\"";
+ message.reply(replyMessage);
+ });
+ startPromise.complete();
+ }
+
+ @Override
+ public void stop(Promise stopPromise) throws Exception {
+ super.stop(stopPromise);
+ }
+}
diff --git a/backend/vertx/src/main/java/net/miarma/contaminus/ConsumerVerticle2.java b/backend/vertx/src/main/java/net/miarma/contaminus/ConsumerVerticle2.java
new file mode 100644
index 0000000..d6411a6
--- /dev/null
+++ b/backend/vertx/src/main/java/net/miarma/contaminus/ConsumerVerticle2.java
@@ -0,0 +1,22 @@
+package net.miarma.contaminus;
+
+import io.vertx.core.AbstractVerticle;
+import io.vertx.core.Promise;
+
+public class ConsumerVerticle2 extends AbstractVerticle {
+ @Override
+ public void start(Promise startPromise) {
+ getVertx().eventBus().consumer("__addr_ConsumerBox", message -> {
+ String customMessage = (String) message.body();
+ System.out.println("[2] Mensaje recibido (" + message.address() + "): " + customMessage);
+ String replyMessage = "[2] Mensaje recibido: \"" + message.body().toString() + "\"";
+ message.reply(replyMessage);
+ });
+ startPromise.complete();
+ }
+
+ @Override
+ public void stop(Promise stopPromise) throws Exception {
+ super.stop(stopPromise);
+ }
+}
diff --git a/backend/vertx/src/main/java/net/miarma/contaminus/Main.java b/backend/vertx/src/main/java/net/miarma/contaminus/Main.java
index 625cb42..0608f7c 100644
--- a/backend/vertx/src/main/java/net/miarma/contaminus/Main.java
+++ b/backend/vertx/src/main/java/net/miarma/contaminus/Main.java
@@ -1,20 +1,59 @@
package net.miarma.contaminus;
+import com.google.gson.Gson;
+
import io.vertx.core.AbstractVerticle;
+import io.vertx.core.DeploymentOptions;
import io.vertx.core.Promise;
+import io.vertx.core.json.JsonObject;
+import net.miarma.contaminus.p2p.VerticleConfig;
public class Main extends AbstractVerticle {
+ private Gson gson;
+
@Override
- public void start(Promise startFuture) {
- vertx.createHttpServer().requestHandler(r -> {
- String file = r.path().equals("/") ? "index.html" : r.path().substring(1);
- r.response().sendFile("webroot/" + file);
- }).listen(80, result -> {
+ public void start(Promise promise) {
+ gson = new Gson();
+
+ VerticleConfig config = new VerticleConfig();
+ config.setNum(2);
+ config.setName("[MESSAGE] ");
+
+ DeploymentOptions options = new DeploymentOptions();
+ options.setConfig(new JsonObject(gson.toJson(config)));
+
+ String consumer1Name = ConsumerVerticle1.class.getName();
+ getVertx().deployVerticle(consumer1Name, options, result -> {
if (result.succeeded()) {
- startFuture.complete();
+ System.out.println(consumer1Name + " (" + result.result() + ") ha sido desplegado correctamente");
} else {
- startFuture.fail(result.cause());
+ result.cause().printStackTrace();
+ }
+ });
+
+ String consumer2Name = ConsumerVerticle1.class.getName();
+ getVertx().deployVerticle(consumer2Name, options, result -> {
+ if (result.succeeded()) {
+ System.out.println(consumer2Name + " (" + result.result() + ") ha sido desplegado correctamente");
+ } else {
+ result.cause().printStackTrace();
+ }
+ });
+
+ String senderName = SenderVerticle.class.getName();
+ getVertx().deployVerticle(senderName, options, result -> {
+ if (result.succeeded()) {
+ System.out.println(senderName + " (" + result.result() + ") ha sido desplegado correctamente");
+ } else {
+ result.cause().printStackTrace();
}
});
}
+
+ @Override
+ public void stop(Promise stopFuture) throws Exception {
+ getVertx().undeploy(ConsumerVerticle1.class.getName());
+ getVertx().undeploy(SenderVerticle.class.getName());
+ super.stop(stopFuture);
+ }
}
\ No newline at end of file
diff --git a/backend/vertx/src/main/java/net/miarma/contaminus/SenderVerticle.java b/backend/vertx/src/main/java/net/miarma/contaminus/SenderVerticle.java
new file mode 100644
index 0000000..57445bf
--- /dev/null
+++ b/backend/vertx/src/main/java/net/miarma/contaminus/SenderVerticle.java
@@ -0,0 +1,29 @@
+package net.miarma.contaminus;
+
+import io.vertx.core.AbstractVerticle;
+import io.vertx.core.Promise;
+import io.vertx.core.eventbus.EventBus;
+import io.vertx.core.eventbus.Message;
+
+public class SenderVerticle extends AbstractVerticle {
+ String verticleID = "";
+
+ @Override
+ public void start(Promise promise) {
+ EventBus eventBus = vertx.eventBus();
+
+ vertx.setPeriodic(4000, _id -> {
+ String message = "Hola papu";
+ eventBus.request("__addr_ConsumerBox", message, reply -> {
+ Message