diff --git a/vertx-core/src/main/java/io/vertx/core/impl/deployment/DefaultDeploymentManager.java b/vertx-core/src/main/java/io/vertx/core/impl/deployment/DefaultDeploymentManager.java
index 089b26894f2..b16868e57e0 100644
--- a/vertx-core/src/main/java/io/vertx/core/impl/deployment/DefaultDeploymentManager.java
+++ b/vertx-core/src/main/java/io/vertx/core/impl/deployment/DefaultDeploymentManager.java
@@ -19,6 +19,7 @@
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.atomic.AtomicLong;
/**
* @author Tim Fox
@@ -27,6 +28,8 @@ public class DefaultDeploymentManager implements DeploymentManager {
public static final Logger log = LoggerFactory.getLogger(DefaultDeploymentManager.class);
+ private static final AtomicLong nextId = new AtomicLong();
+
private final VertxImpl vertx;
private final Map deploying = new HashMap<>();
private final Map deployments = new ConcurrentHashMap<>();
@@ -36,7 +39,11 @@ public DefaultDeploymentManager(VertxImpl vertx) {
}
private String generateDeploymentID() {
- return UUID.randomUUID().toString();
+ if (vertx.isClustered() && vertx.haManager()!=null) {
+ // in this case we need a globally unique id
+ return UUID.randomUUID().toString();
+ }
+ return Long.valueOf(nextId.incrementAndGet()).toString();
}
public Future undeploy(String deploymentID) {