Skip to content

Commit 3d32ffd

Browse files
committed
Update 11/04/2026
1 parent 2f90a9b commit 3d32ffd

4 files changed

Lines changed: 11 additions & 150 deletions

File tree

src/main/java/io/nodelink/server/app/infra/Sync.java

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/main/java/io/nodelink/server/app/node/NodeStarter.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ public class NodeStarter {
1616
private static final NodeStarter INSTANCE = new NodeStarter();
1717
private Javalin app;
1818

19+
private int range = (1 - 9999) + 1;
20+
private int port = (int) (Math.random() * range) + 9999;
21+
1922
static {
2023
LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
2124
loggerContext.getLogger("io.javalin").setLevel(Level.OFF);
@@ -32,7 +35,7 @@ public void startServer() {
3235
config.bundledPlugins.enableCors(cors -> {
3336
cors.addRule(CorsPluginConfig.CorsRule::anyHost);
3437
});
35-
}).start(CONSTANT.PORT_BONE);
38+
}).start(getPort());
3639

3740
RouteHandler.registerAllRoutes(app, "io.nodelink.server.app.node.api.routes");
3841

@@ -49,4 +52,8 @@ public Javalin getApp() {
4952
public static NodeStarter getNodeStarterSingleton() {
5053
return INSTANCE;
5154
}
55+
56+
public int getPort() {
57+
return port;
58+
}
5259
}

src/main/java/io/nodelink/server/command/CommandLogics.java

Lines changed: 3 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import io.nodelink.server.app.data.BONE_LOCATION;
88
import io.nodelink.server.app.data.CLUSTER_LOCATION;
99
import io.nodelink.server.app.infra.CONSTANT;
10+
import io.nodelink.server.app.node.NodeStarter;
1011
import io.nodelink.server.enums.CommandsEnum;
1112
import org.jline.reader.LineReader;
1213
import org.jline.terminal.Terminal;
@@ -88,7 +89,7 @@ public CommandLogics(CommandDispatcher dispatcher, LineReader reader, Terminal t
8889
);
8990

9091
HttpRequest registerReq = HttpRequest.newBuilder()
91-
.uri(URI.create("http://localhost:" + CONSTANT.PORT_BONE + "/bone/api/v1/addBone"))
92+
.uri(URI.create("http://localhost:" + NodeLink.getInstance().getNodeStarter().getPort() + "/bone/api/v1/addBone"))
9293
.header("Content-Type", "application/json")
9394
.POST(HttpRequest.BodyPublishers.ofString(registrationJson))
9495
.build();
@@ -186,85 +187,6 @@ public CommandLogics(CommandDispatcher dispatcher, LineReader reader, Terminal t
186187
}
187188
});
188189

189-
dispatcher.registerHandler(CommandsEnum.SERVICE_DEV_PEER_ADD, tokens -> {
190-
// Nettoyage des tokens (on enlève les espaces vides)
191-
List<String> cleanTokens = new ArrayList<>();
192-
for (String t : tokens) if (!t.trim().isEmpty()) cleanTokens.add(t.trim());
193-
194-
// Structure attendue : service dev peer add <TYPE> <URL>
195-
// Index : 0 1 2 3 4 5
196-
if (cleanTokens.size() < 6) {
197-
terminal.writer().println("Usage: service dev peer add <BONE|CLUSTER> <URL>");
198-
terminal.writer().println("Exemple: service dev peer add BONE http://127.0.0.1:8081");
199-
return;
200-
}
201-
202-
String type = cleanTokens.get(4).toUpperCase();
203-
String url = cleanTokens.get(5);
204-
205-
// Petite validation de l'URL
206-
if (!url.startsWith("http")) {
207-
terminal.writer().println("Erreur : L'URL doit commencer par http:// ou https://");
208-
return;
209-
}
210-
211-
try {
212-
213-
terminal.writer().println("------------------------------------------");
214-
terminal.writer().println("Succès : Nouveau Peer enregistré !");
215-
terminal.writer().println("Type : " + type);
216-
terminal.writer().println("URL : " + url);
217-
terminal.writer().println("Ce nœud sera inclus dans la prochaine synchronisation.");
218-
terminal.writer().println("------------------------------------------");
219-
220-
} catch (Exception e) {
221-
terminal.writer().println("Erreur lors de l'ajout en base de données : " + e.getMessage());
222-
}
223-
});
224-
225-
dispatcher.registerHandler(CommandsEnum.SERVICE_DEV_SYNC_START, tokens -> {
226-
terminal.writer().println("[Sync] Initialisation de la synchronisation globale...");
227-
228-
new Thread(() -> {
229-
try {
230-
231-
} catch (Exception e) {
232-
terminal.writer().println("\n[Erreur Sync] : " + e.getMessage());
233-
e.printStackTrace();
234-
}
235-
}).start();
236-
});
237-
238-
dispatcher.registerHandler(CommandsEnum.SERVICE_DEV_PEER_LIST, tokens -> {
239-
try {
240-
241-
terminal.writer().println("\n" + "=".repeat(60));
242-
terminal.writer().println(String.format(" %-30s | %-15s", "URL DU PEER", "TYPE"));
243-
terminal.writer().println("-".repeat(60));
244-
245-
terminal.writer().println();
246-
247-
} catch (Exception e) {
248-
terminal.writer().println("Erreur d'affichage : " + e.getMessage());
249-
}
250-
});
251-
252-
dispatcher.registerHandler(CommandsEnum.SERVICE_DEV_PEER_REMOVE, tokens -> {
253-
// Nettoyage des tokens pour récupérer l'URL
254-
List<String> cleanTokens = new ArrayList<>();
255-
for (String t : tokens) if (!t.trim().isEmpty()) cleanTokens.add(t.trim());
256-
257-
if (cleanTokens.size() < 5) {
258-
terminal.writer().println("Usage: service dev peer remove <URL>");
259-
terminal.writer().println("Exemple: service dev peer remove http://localhost:8081");
260-
return;
261-
}
262-
263-
String urlToRemove = cleanTokens.get(4);
264-
265-
266-
});
267-
268190
dispatcher.registerHandler(CommandsEnum.SERVICE_INFO_STATS, tokens -> {
269191
terminal.writer().println("Affichage des stats...");
270192

@@ -280,6 +202,7 @@ public CommandLogics(CommandDispatcher dispatcher, LineReader reader, Terminal t
280202
terminal.writer().println("Bone Type : " + NodeLink.getInstance().getStoreData().get(NodeLink.getInstance().getStoreData().TYPE_BONE));
281203
terminal.writer().println("Bone URL : " + NodeLink.getInstance().getStoreData().get(NodeLink.getInstance().getStoreData().URL_BONE));
282204
terminal.writer().println("ID : " + NodeLink.getInstance().getStoreData().get(NodeLink.getInstance().getStoreData().ID));
205+
terminal.writer().println("PORT ACTIVE : " + NodeLink.getInstance().getNodeStarter().getPort());
283206
}
284207
});
285208
}

src/main/java/io/nodelink/server/enums/CommandsEnum.java

Lines changed: 0 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package io.nodelink.server.enums;
22

3-
import io.nodelink.server.NodeLink;
43
import io.nodelink.server.app.data.BONE_LOCATION;
54
import io.nodelink.server.app.data.CLUSTER_LOCATION;
65
import io.nodelink.server.command.CommandNode;
76
import io.nodelink.server.provider.CommandsProvider;
8-
import org.w3c.dom.Node;
97

108
public enum CommandsEnum implements CommandsProvider {
119
CLEAR {
@@ -118,63 +116,6 @@ public CommandNode getCommandNode() {
118116
}
119117
},
120118

121-
SERVICE_DEV_PEER_ADD {
122-
@Override
123-
public CommandNode getCommandNode() {
124-
CommandNode root = new CommandNode("service");
125-
CommandNode dev = root.child("dev");
126-
CommandNode peer = dev.child("peer");
127-
CommandNode add = peer.child("add");
128-
129-
CommandNode boneType = add.child("BONE");
130-
CommandNode clusterType = add.child("CLUSTER");
131-
132-
boneType.setOwner(this);
133-
clusterType.setOwner(this);
134-
135-
return root;
136-
}
137-
},
138-
139-
SERVICE_DEV_PEER_LIST {
140-
@Override
141-
public CommandNode getCommandNode() {
142-
CommandNode root = new CommandNode("service");
143-
CommandNode dev = root.child("dev");
144-
CommandNode peer = dev.child("peer");
145-
CommandNode list = peer.child("list");
146-
147-
list.setOwner(this);
148-
return root;
149-
}
150-
},
151-
152-
SERVICE_DEV_PEER_REMOVE {
153-
@Override
154-
public CommandNode getCommandNode() {
155-
CommandNode root = new CommandNode("service");
156-
CommandNode dev = root.child("dev");
157-
CommandNode peer = dev.child("peer");
158-
CommandNode remove = peer.child("remove");
159-
160-
remove.setOwner(this);
161-
return root;
162-
}
163-
},
164-
165-
SERVICE_DEV_SYNC_START {
166-
@Override
167-
public CommandNode getCommandNode() {
168-
CommandNode root = new CommandNode("service");
169-
CommandNode dev = root.child("dev");
170-
CommandNode sync = dev.child("sync");
171-
CommandNode start = sync.child("start");
172-
173-
start.setOwner(this);
174-
return root;
175-
}
176-
},
177-
178119
SERVICE_INFO_STATS {
179120
@Override
180121
public CommandNode getCommandNode() {

0 commit comments

Comments
 (0)