You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2020/10/07 13:54:38 UTC
[camel] branch master updated: UUID (#4379)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 15c2295 UUID (#4379)
15c2295 is described below
commit 15c22955e1bbd202fbcdc880256e78baea79ed8c
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Oct 7 15:54:17 2020 +0200
UUID (#4379)
CAMEL-15584: Switch UUID generator to new fast vanilla implementation and move old into classic generator implementation.
---
.../apache/camel/cdi/mock/DummyRestConsumerFactory.java | 8 ++++----
.../apache/camel/openapi/DummyRestConsumerFactory.java | 6 +++---
.../apache/camel/spring/CamelContextFactoryBeanTest.java | 2 +-
.../apache/camel/swagger/DummyRestConsumerFactory.java | 6 +++---
.../org/apache/camel/impl/engine/SimpleCamelContext.java | 1 +
.../camel/component/rest/DummyRestConsumerFactory.java | 8 ++++----
...dGeneratorTest.java => ClassicUuidGeneratorTest.java} | 14 +++++++-------
.../org/apache/camel/impl/DefaultUuidGeneratorTest.java | 16 ++++------------
.../camel/impl/engine/DefaultCamelContextTest.java | 1 +
.../org/apache/camel/support/ClassicUuidGenerator.java} | 12 ++++++------
...nillaUuidGenerator.java => DefaultUuidGenerator.java} | 7 ++++---
.../org/apache/camel/support/VanillaUuidGenerator.java | 3 +++
.../modules/ROOT/pages/camel-3x-upgrade-guide-3_6.adoc | 12 ++++++++++++
.../apache/camel/itest/jmh/DefaultUuidGeneratorTest.java | 2 +-
14 files changed, 54 insertions(+), 44 deletions(-)
diff --git a/components/camel-cdi/src/test/java/org/apache/camel/cdi/mock/DummyRestConsumerFactory.java b/components/camel-cdi/src/test/java/org/apache/camel/cdi/mock/DummyRestConsumerFactory.java
index 4ec5072..e56447f 100644
--- a/components/camel-cdi/src/test/java/org/apache/camel/cdi/mock/DummyRestConsumerFactory.java
+++ b/components/camel-cdi/src/test/java/org/apache/camel/cdi/mock/DummyRestConsumerFactory.java
@@ -22,10 +22,10 @@ import org.apache.camel.CamelContext;
import org.apache.camel.Consumer;
import org.apache.camel.Processor;
import org.apache.camel.component.seda.SedaEndpoint;
-import org.apache.camel.impl.engine.DefaultUuidGenerator;
import org.apache.camel.spi.RestApiConsumerFactory;
import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
+import org.apache.camel.support.ClassicUuidGenerator;
public class DummyRestConsumerFactory implements RestConsumerFactory, RestApiConsumerFactory {
@@ -39,9 +39,9 @@ public class DummyRestConsumerFactory implements RestConsumerFactory, RestApiCon
// just use a seda endpoint for testing purpose
String id;
if (uriTemplate != null) {
- id = DefaultUuidGenerator.generateSanitizedId(basePath + uriTemplate);
+ id = ClassicUuidGenerator.generateSanitizedId(basePath + uriTemplate);
} else {
- id = DefaultUuidGenerator.generateSanitizedId(basePath);
+ id = ClassicUuidGenerator.generateSanitizedId(basePath);
}
// remove leading dash as we add that ourselves
if (id.startsWith("-")) {
@@ -59,7 +59,7 @@ public class DummyRestConsumerFactory implements RestConsumerFactory, RestApiCon
Map<String, Object> parameters)
throws Exception {
// just use a seda endpoint for testing purpose
- String id = DefaultUuidGenerator.generateSanitizedId(contextPath);
+ String id = ClassicUuidGenerator.generateSanitizedId(contextPath);
// remove leading dash as we add that ourselves
if (id.startsWith("-")) {
id = id.substring(1);
diff --git a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/DummyRestConsumerFactory.java b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/DummyRestConsumerFactory.java
index 4a2c201..feabc72 100644
--- a/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/DummyRestConsumerFactory.java
+++ b/components/camel-openapi-java/src/test/java/org/apache/camel/openapi/DummyRestConsumerFactory.java
@@ -22,9 +22,9 @@ import org.apache.camel.CamelContext;
import org.apache.camel.Consumer;
import org.apache.camel.Processor;
import org.apache.camel.component.seda.SedaEndpoint;
-import org.apache.camel.impl.engine.DefaultUuidGenerator;
import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
+import org.apache.camel.support.ClassicUuidGenerator;
public class DummyRestConsumerFactory implements RestConsumerFactory {
@@ -36,9 +36,9 @@ public class DummyRestConsumerFactory implements RestConsumerFactory {
// just use a seda endpoint for testing purpose
String id;
if (uriTemplate != null) {
- id = DefaultUuidGenerator.generateSanitizedId(basePath + uriTemplate);
+ id = ClassicUuidGenerator.generateSanitizedId(basePath + uriTemplate);
} else {
- id = DefaultUuidGenerator.generateSanitizedId(basePath);
+ id = ClassicUuidGenerator.generateSanitizedId(basePath);
}
// remove leading dash as we add that ourselves
if (id.startsWith("-")) {
diff --git a/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextFactoryBeanTest.java b/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextFactoryBeanTest.java
index 188c509..a804b7e 100644
--- a/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextFactoryBeanTest.java
+++ b/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextFactoryBeanTest.java
@@ -20,9 +20,9 @@ import java.net.URL;
import java.util.LinkedList;
import java.util.List;
-import org.apache.camel.impl.engine.DefaultUuidGenerator;
import org.apache.camel.spi.ModelJAXBContextFactory;
import org.apache.camel.spi.UuidGenerator;
+import org.apache.camel.support.DefaultUuidGenerator;
import org.apache.camel.support.SimpleUuidGenerator;
import org.apache.camel.xml.jaxb.DefaultModelJAXBContextFactory;
import org.junit.jupiter.api.BeforeEach;
diff --git a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/DummyRestConsumerFactory.java b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/DummyRestConsumerFactory.java
index 8682537..ce94131 100644
--- a/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/DummyRestConsumerFactory.java
+++ b/components/camel-swagger-java/src/test/java/org/apache/camel/swagger/DummyRestConsumerFactory.java
@@ -22,9 +22,9 @@ import org.apache.camel.CamelContext;
import org.apache.camel.Consumer;
import org.apache.camel.Processor;
import org.apache.camel.component.seda.SedaEndpoint;
-import org.apache.camel.impl.engine.DefaultUuidGenerator;
import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
+import org.apache.camel.support.ClassicUuidGenerator;
public class DummyRestConsumerFactory implements RestConsumerFactory {
@@ -36,9 +36,9 @@ public class DummyRestConsumerFactory implements RestConsumerFactory {
// just use a seda endpoint for testing purpose
String id;
if (uriTemplate != null) {
- id = DefaultUuidGenerator.generateSanitizedId(basePath + uriTemplate);
+ id = ClassicUuidGenerator.generateSanitizedId(basePath + uriTemplate);
} else {
- id = DefaultUuidGenerator.generateSanitizedId(basePath);
+ id = ClassicUuidGenerator.generateSanitizedId(basePath);
}
// remove leading dash as we add that ourselves
if (id.startsWith("-")) {
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
index 61c281a..f1770bd 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java
@@ -76,6 +76,7 @@ import org.apache.camel.spi.UuidGenerator;
import org.apache.camel.spi.ValidatorRegistry;
import org.apache.camel.spi.XMLRoutesDefinitionLoader;
import org.apache.camel.support.DefaultRegistry;
+import org.apache.camel.support.DefaultUuidGenerator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
diff --git a/core/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestConsumerFactory.java b/core/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestConsumerFactory.java
index 417d018..ef80693 100644
--- a/core/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestConsumerFactory.java
+++ b/core/camel-core/src/test/java/org/apache/camel/component/rest/DummyRestConsumerFactory.java
@@ -22,11 +22,11 @@ import org.apache.camel.CamelContext;
import org.apache.camel.Consumer;
import org.apache.camel.Processor;
import org.apache.camel.component.seda.SedaEndpoint;
-import org.apache.camel.impl.engine.DefaultUuidGenerator;
import org.apache.camel.spi.RestApiConsumerFactory;
import org.apache.camel.spi.RestConfiguration;
import org.apache.camel.spi.RestConsumerFactory;
import org.apache.camel.support.CamelContextHelper;
+import org.apache.camel.support.ClassicUuidGenerator;
public class DummyRestConsumerFactory implements RestConsumerFactory, RestApiConsumerFactory {
@@ -49,9 +49,9 @@ public class DummyRestConsumerFactory implements RestConsumerFactory, RestApiCon
// just use a seda endpoint for testing purpose
String id;
if (uriTemplate != null) {
- id = DefaultUuidGenerator.generateSanitizedId(basePath + uriTemplate);
+ id = ClassicUuidGenerator.generateSanitizedId(basePath + uriTemplate);
} else {
- id = DefaultUuidGenerator.generateSanitizedId(basePath);
+ id = ClassicUuidGenerator.generateSanitizedId(basePath);
}
// remove leading dash as we add that ourselves
if (id.startsWith("-")) {
@@ -77,7 +77,7 @@ public class DummyRestConsumerFactory implements RestConsumerFactory, RestApiCon
Map<String, Object> parameters)
throws Exception {
// just use a seda endpoint for testing purpose
- String id = DefaultUuidGenerator.generateSanitizedId(contextPath);
+ String id = ClassicUuidGenerator.generateSanitizedId(contextPath);
// remove leading dash as we add that ourselves
if (id.startsWith("-")) {
id = id.substring(1);
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultUuidGeneratorTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/ClassicUuidGeneratorTest.java
similarity index 81%
copy from core/camel-core/src/test/java/org/apache/camel/impl/DefaultUuidGeneratorTest.java
copy to core/camel-core/src/test/java/org/apache/camel/impl/ClassicUuidGeneratorTest.java
index 339544d..75f74b0 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultUuidGeneratorTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/ClassicUuidGeneratorTest.java
@@ -16,7 +16,7 @@
*/
package org.apache.camel.impl;
-import org.apache.camel.impl.engine.DefaultUuidGenerator;
+import org.apache.camel.support.ClassicUuidGenerator;
import org.apache.camel.util.StopWatch;
import org.apache.camel.util.TimeUtils;
import org.junit.jupiter.api.Test;
@@ -26,13 +26,13 @@ import org.slf4j.LoggerFactory;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotSame;
-public class DefaultUuidGeneratorTest {
+public class ClassicUuidGeneratorTest {
- private static final Logger LOG = LoggerFactory.getLogger(DefaultUuidGeneratorTest.class);
+ private static final Logger LOG = LoggerFactory.getLogger(ClassicUuidGeneratorTest.class);
@Test
public void testGenerateUUID() {
- DefaultUuidGenerator uuidGenerator = new DefaultUuidGenerator();
+ ClassicUuidGenerator uuidGenerator = new ClassicUuidGenerator();
String firstUUID = uuidGenerator.generateUuid();
String secondUUID = uuidGenerator.generateUuid();
@@ -42,7 +42,7 @@ public class DefaultUuidGeneratorTest {
@Test
public void testPerformance() {
- DefaultUuidGenerator uuidGenerator = new DefaultUuidGenerator();
+ ClassicUuidGenerator uuidGenerator = new ClassicUuidGenerator();
StopWatch watch = new StopWatch();
LOG.info("First id: " + uuidGenerator.generateUuid());
@@ -56,9 +56,9 @@ public class DefaultUuidGeneratorTest {
@Test
public void testSanitizeHostName() throws Exception {
- assertEquals("somehost.lan", DefaultUuidGenerator.sanitizeHostName("somehost.lan"));
+ assertEquals("somehost.lan", ClassicUuidGenerator.sanitizeHostName("somehost.lan"));
// include a UTF-8 char in the text \u0E08 is a Thai elephant
- assertEquals("otherhost.lan", DefaultUuidGenerator.sanitizeHostName("other\u0E08host.lan"));
+ assertEquals("otherhost.lan", ClassicUuidGenerator.sanitizeHostName("other\u0E08host.lan"));
}
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultUuidGeneratorTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultUuidGeneratorTest.java
index 339544d..f654398 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultUuidGeneratorTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultUuidGeneratorTest.java
@@ -16,23 +16,22 @@
*/
package org.apache.camel.impl;
-import org.apache.camel.impl.engine.DefaultUuidGenerator;
+import org.apache.camel.spi.UuidGenerator;
+import org.apache.camel.support.DefaultUuidGenerator;
import org.apache.camel.util.StopWatch;
import org.apache.camel.util.TimeUtils;
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotSame;
public class DefaultUuidGeneratorTest {
-
private static final Logger LOG = LoggerFactory.getLogger(DefaultUuidGeneratorTest.class);
@Test
public void testGenerateUUID() {
- DefaultUuidGenerator uuidGenerator = new DefaultUuidGenerator();
+ UuidGenerator uuidGenerator = new DefaultUuidGenerator();
String firstUUID = uuidGenerator.generateUuid();
String secondUUID = uuidGenerator.generateUuid();
@@ -42,7 +41,7 @@ public class DefaultUuidGeneratorTest {
@Test
public void testPerformance() {
- DefaultUuidGenerator uuidGenerator = new DefaultUuidGenerator();
+ UuidGenerator uuidGenerator = new DefaultUuidGenerator();
StopWatch watch = new StopWatch();
LOG.info("First id: " + uuidGenerator.generateUuid());
@@ -54,11 +53,4 @@ public class DefaultUuidGeneratorTest {
LOG.info("Took " + TimeUtils.printDuration(watch.taken()));
}
- @Test
- public void testSanitizeHostName() throws Exception {
- assertEquals("somehost.lan", DefaultUuidGenerator.sanitizeHostName("somehost.lan"));
- // include a UTF-8 char in the text \u0E08 is a Thai elephant
- assertEquals("otherhost.lan", DefaultUuidGenerator.sanitizeHostName("other\u0E08host.lan"));
- }
-
}
diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java
index 0d2b36b..1b4e436 100644
--- a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java
+++ b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java
@@ -36,6 +36,7 @@ import org.apache.camel.component.log.LogComponent;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.spi.UuidGenerator;
import org.apache.camel.support.CamelContextHelper;
+import org.apache.camel.support.DefaultUuidGenerator;
import org.apache.camel.support.service.ServiceSupport;
import org.junit.jupiter.api.Test;
diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultUuidGenerator.java b/core/camel-support/src/main/java/org/apache/camel/support/ClassicUuidGenerator.java
similarity index 93%
rename from core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultUuidGenerator.java
rename to core/camel-support/src/main/java/org/apache/camel/support/ClassicUuidGenerator.java
index 0801e26..cc96a37 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultUuidGenerator.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/ClassicUuidGenerator.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.camel.impl.engine;
+package org.apache.camel.support;
import java.util.concurrent.atomic.AtomicLong;
@@ -25,11 +25,11 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * Default {@link UuidGenerator} optimized for Camel usage.
+ * The classic (Camel 2.x) {@link UuidGenerator} optimized for Camel usage.
*/
-public class DefaultUuidGenerator implements UuidGenerator {
+public class ClassicUuidGenerator implements UuidGenerator {
- private static final Logger LOG = LoggerFactory.getLogger(DefaultUuidGenerator.class);
+ private static final Logger LOG = LoggerFactory.getLogger(ClassicUuidGenerator.class);
private static final String UNIQUE_STUB;
private static int instanceCount;
private static String hostName;
@@ -77,7 +77,7 @@ public class DefaultUuidGenerator implements UuidGenerator {
UNIQUE_STUB = stub;
}
- public DefaultUuidGenerator(String prefix) {
+ public ClassicUuidGenerator(String prefix) {
synchronized (UNIQUE_STUB) {
this.seed = prefix + UNIQUE_STUB + (instanceCount++) + "-";
// let the ID be friendly for URL and file systems
@@ -86,7 +86,7 @@ public class DefaultUuidGenerator implements UuidGenerator {
}
}
- public DefaultUuidGenerator() {
+ public ClassicUuidGenerator() {
this("ID-" + hostName);
}
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/VanillaUuidGenerator.java b/core/camel-support/src/main/java/org/apache/camel/support/DefaultUuidGenerator.java
similarity index 88%
copy from core/camel-support/src/main/java/org/apache/camel/support/VanillaUuidGenerator.java
copy to core/camel-support/src/main/java/org/apache/camel/support/DefaultUuidGenerator.java
index 890b358..9da9945 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/VanillaUuidGenerator.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/DefaultUuidGenerator.java
@@ -22,10 +22,10 @@ import java.util.concurrent.atomic.AtomicLong;
import org.apache.camel.spi.UuidGenerator;
/**
- * An implementation of the {@link UuidGenerator} that uses a random generated seed and a counter which increments by
- * one. This generator is not unique per host or JVM.
+ * Default {@link UuidGenerator} optimized for Camel usage.
*/
-public class VanillaUuidGenerator implements UuidGenerator {
+public class DefaultUuidGenerator implements UuidGenerator {
+
private static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
private final char[] seed
@@ -47,4 +47,5 @@ public class VanillaUuidGenerator implements UuidGenerator {
}
return new String(hexChars);
}
+
}
diff --git a/core/camel-support/src/main/java/org/apache/camel/support/VanillaUuidGenerator.java b/core/camel-support/src/main/java/org/apache/camel/support/VanillaUuidGenerator.java
index 890b358..9d985b3 100644
--- a/core/camel-support/src/main/java/org/apache/camel/support/VanillaUuidGenerator.java
+++ b/core/camel-support/src/main/java/org/apache/camel/support/VanillaUuidGenerator.java
@@ -24,7 +24,10 @@ import org.apache.camel.spi.UuidGenerator;
/**
* An implementation of the {@link UuidGenerator} that uses a random generated seed and a counter which increments by
* one. This generator is not unique per host or JVM.
+ *
+ * @deprecated this is now the default uuid generator in Camel 3.6 onwards.
*/
+@Deprecated
public class VanillaUuidGenerator implements UuidGenerator {
private static final char[] HEX_ARRAY = "0123456789ABCDEF".toCharArray();
diff --git a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_6.adoc b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_6.adoc
index a758d4b..dbf815d 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_6.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-3x-upgrade-guide-3_6.adoc
@@ -6,6 +6,18 @@ from both 3.0 to 3.1 and 3.1 to 3.2.
== Upgrading Camel 3.5 to 3.6
+=== UUID Generator
+
+The default UUID Generator in Camel has switched to a faster algorithm based on UUID that were used by Camel Quarkus and Camel K.
+This generator does not use the hostname as part of the ID generation and avoids any network IO calls during initialization.
+
+The old generator has been renamed and moved into a new package at `org.apache.camel.support.ClassicUuidGenerator`.
+The new default generator is now also located in camel-support as `org.apache.camel.support.DefaultUuidGenerator`
+where all the out of the box generators reside.
+
+Users that want to use the old UUID generator can configure Camel to use `org.apache.camel.support.ClassicUuidGenerator`
+as the generator.
+
=== Simple language
The simple language have been optimized to handle numeric and boolean values more naturally.
diff --git a/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/DefaultUuidGeneratorTest.java b/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/DefaultUuidGeneratorTest.java
index 13fcee5..381d222 100644
--- a/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/DefaultUuidGeneratorTest.java
+++ b/tests/camel-jmh/src/test/java/org/apache/camel/itest/jmh/DefaultUuidGeneratorTest.java
@@ -18,7 +18,7 @@ package org.apache.camel.itest.jmh;
import java.util.concurrent.TimeUnit;
-import org.apache.camel.impl.engine.DefaultUuidGenerator;
+import org.apache.camel.support.DefaultUuidGenerator;
import org.junit.jupiter.api.Test;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.Level;