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 res = reply.result(); + verticleID = res.address(); + if(reply.succeeded()) { + String replyMsg = (String) res.body(); + System.out.println("Respuesta recibida (" + res.address() + "): " + replyMsg + "\n\n\n"); + } else { + System.out.println("No ha habido respuesta"); + } + }); + }); + } +} diff --git a/backend/vertx/src/main/java/net/miarma/contaminus/p2p/VerticleConfig.java b/backend/vertx/src/main/java/net/miarma/contaminus/p2p/VerticleConfig.java new file mode 100644 index 0000000..5cb7988 --- /dev/null +++ b/backend/vertx/src/main/java/net/miarma/contaminus/p2p/VerticleConfig.java @@ -0,0 +1,43 @@ +package net.miarma.contaminus.p2p; + +public class VerticleConfig { + private String name; + private int num; + private boolean isDup; + + public VerticleConfig() { + + } + + public VerticleConfig(String name, int num, boolean isDup) { + this.isDup = isDup; + this.num = num; + this.name = name; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public int getNum() { + return num; + } + + public void setNum(int num) { + this.num = num; + } + + public boolean isDup() { + return isDup; + } + + public void setDup(boolean isDup) { + this.isDup = isDup; + } + + +} diff --git a/backend/vertx/target/classes/.gitignore b/backend/vertx/target/classes/.gitignore index 64663da..eded030 100644 --- a/backend/vertx/target/classes/.gitignore +++ b/backend/vertx/target/classes/.gitignore @@ -1,2 +1,2 @@ -/META-INF/ /net/ +/META-INF/