You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2023/02/09 10:15:08 UTC
[camel-quarkus] 01/01: Ref #4523/#4443: Get rid of jOOR workarounds used for native mode
This is an automated email from the ASF dual-hosted git repository.
nfilotto pushed a commit to branch 4523/fix-joor-it
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
commit 22737110d70e7f6994d8257655d5be3aec68cf9d
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Thu Feb 9 11:14:43 2023 +0100
Ref #4523/#4443: Get rid of jOOR workarounds used for native mode
---
.../java/joor/deployment/JavaJoorDslProcessor.java | 59 +++++-----------
.../dsl/java/joor/runtime/JavaJoorDslRecorder.java | 4 +-
.../graal/SubstituteJavaRoutesBuilderLoader.java | 36 ++++++++++
.../component/joor/deployment/JoorProcessor.java | 78 +++++++--------------
.../joor/runtime/JoorExpressionLanguage.java | 80 ----------------------
.../joor/runtime/JoorExpressionRecorder.java | 20 ++----
integration-tests/java-joor-dsl/pom.xml | 4 --
7 files changed, 87 insertions(+), 194 deletions(-)
diff --git a/extensions/java-joor-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/java/joor/deployment/JavaJoorDslProcessor.java b/extensions/java-joor-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/java/joor/deployment/JavaJoorDslProcessor.java
index c27528d110..9fc0c54154 100644
--- a/extensions/java-joor-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/java/joor/deployment/JavaJoorDslProcessor.java
+++ b/extensions/java-joor-dsl/deployment/src/main/java/org/apache/camel/quarkus/dsl/java/joor/deployment/JavaJoorDslProcessor.java
@@ -23,8 +23,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import java.util.stream.Collectors;
import io.quarkus.deployment.annotations.BuildProducer;
@@ -41,13 +39,12 @@ import io.quarkus.paths.PathCollection;
import io.quarkus.runtime.RuntimeValue;
import org.apache.camel.CamelContext;
import org.apache.camel.dsl.java.joor.CompilationUnit;
+import org.apache.camel.dsl.java.joor.Helper;
import org.apache.camel.dsl.java.joor.MultiCompile;
import org.apache.camel.quarkus.core.deployment.main.CamelMainHelper;
import org.apache.camel.quarkus.core.deployment.spi.CamelContextBuildItem;
import org.apache.camel.quarkus.dsl.java.joor.runtime.JavaJoorDslRecorder;
import org.apache.camel.spi.Resource;
-import org.apache.camel.support.ResourceHelper;
-import org.apache.camel.util.FileUtil;
import org.apache.camel.util.IOHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -57,9 +54,6 @@ public class JavaJoorDslProcessor {
private static final Logger LOG = LoggerFactory.getLogger(JavaJoorDslProcessor.class);
private static final String FEATURE = "camel-java-joor-dsl";
- private static final Pattern PACKAGE_PATTERN = Pattern.compile(
- "^\\s*package\\s+([a-zA-Z][\\.\\w]*)\\s*;.*$", Pattern.MULTILINE);
-
@BuildStep
FeatureBuildItem feature() {
return new FeatureBuildItem(FEATURE);
@@ -78,7 +72,7 @@ public class JavaJoorDslProcessor {
}
try (InputStream is = resource.getInputStream()) {
String content = IOHelper.loadText(is);
- String name = determineName(resource, content);
+ String name = Helper.determineName(resource, content);
unit.addClass(name, content);
nameToResource.put(name, resource);
} catch (IOException e) {
@@ -88,26 +82,20 @@ public class JavaJoorDslProcessor {
if (nameToResource.isEmpty()) {
return;
}
- // Temporary workaround until being able to provide the classpath somehow to the method MultiCompile.compileUnit
- // https://issues.apache.org/jira/browse/CAMEL-18860
- String previousCP = System.getProperty("java.class.path");
- try {
- String cp = curateOutcomeBuildItem.getApplicationModel().getDependencies().stream()
- .map(ResolvedDependency::getResolvedPaths)
- .flatMap(PathCollection::stream)
- .map(Objects::toString)
- .collect(Collectors.joining(System.getProperty("path.separator")));
- System.setProperty("java.class.path", cp);
- LOG.debug("Compiling unit: {}", unit);
- CompilationUnit.Result result = MultiCompile.compileUnit(unit);
- for (String className : result.getClassNames()) {
- generatedClass
- .produce(new JavaJoorGeneratedClassBuildItem(className, nameToResource.get(className).getLocation(),
- result.getByteCode(className)));
- }
- } finally {
- // Restore the CP
- System.setProperty("java.class.path", previousCP);
+ LOG.debug("Compiling unit: {}", unit);
+ CompilationUnit.Result result = MultiCompile.compileUnit(
+ unit,
+ List.of(
+ "-classpath",
+ curateOutcomeBuildItem.getApplicationModel().getDependencies().stream()
+ .map(ResolvedDependency::getResolvedPaths)
+ .flatMap(PathCollection::stream)
+ .map(Objects::toString)
+ .collect(Collectors.joining(System.getProperty("path.separator")))));
+ for (String className : result.getClassNames()) {
+ generatedClass
+ .produce(new JavaJoorGeneratedClassBuildItem(className, nameToResource.get(className).getLocation(),
+ result.getByteCode(className)));
}
}
@@ -132,19 +120,4 @@ public class JavaJoorDslProcessor {
recorder.registerRoutesBuilder(camelContext, clazz.getName(), clazz.getLocation());
}
}
-
- private static String determineName(Resource resource, String content) {
- String loc = resource.getLocation();
- // strip scheme to compute the name
- String scheme = ResourceHelper.getScheme(loc);
- if (scheme != null) {
- loc = loc.substring(scheme.length());
- }
- final String name = FileUtil.onlyName(loc, true);
- final Matcher matcher = PACKAGE_PATTERN.matcher(content);
-
- return matcher.find()
- ? matcher.group(1) + "." + name
- : name;
- }
}
diff --git a/extensions/java-joor-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/java/joor/runtime/JavaJoorDslRecorder.java b/extensions/java-joor-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/java/joor/runtime/JavaJoorDslRecorder.java
index 4a309eceb4..246627e7d6 100644
--- a/extensions/java-joor-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/java/joor/runtime/JavaJoorDslRecorder.java
+++ b/extensions/java-joor-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/java/joor/runtime/JavaJoorDslRecorder.java
@@ -45,11 +45,11 @@ public class JavaJoorDslRecorder {
// create a new instance of the class
try {
Object obj = context.getValue().getInjector().newInstance(clazz);
- if (obj instanceof RoutesBuilder) {
+ if (obj instanceof RoutesBuilder builder) {
// inject context and resource
CamelContextAware.trySetCamelContext(obj, context.getValue());
ResourceAware.trySetResource(obj, ResourceHelper.fromString(location, ""));
- context.getValue().addRoutes((RoutesBuilder) obj);
+ context.getValue().addRoutes(builder);
} else {
LOG.warn("Ignoring the class {} as it is not of type RoutesBuilder", className);
}
diff --git a/extensions/java-joor-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/java/joor/runtime/graal/SubstituteJavaRoutesBuilderLoader.java b/extensions/java-joor-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/java/joor/runtime/graal/SubstituteJavaRoutesBuilderLoader.java
new file mode 100644
index 0000000000..9fdc7d75e6
--- /dev/null
+++ b/extensions/java-joor-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/java/joor/runtime/graal/SubstituteJavaRoutesBuilderLoader.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.dsl.java.joor.runtime.graal;
+
+import java.util.Collection;
+import java.util.List;
+
+import com.oracle.svm.core.annotate.Substitute;
+import com.oracle.svm.core.annotate.TargetClass;
+import org.apache.camel.RoutesBuilder;
+import org.apache.camel.dsl.java.joor.JavaRoutesBuilderLoader;
+import org.apache.camel.spi.Resource;
+
+@TargetClass(JavaRoutesBuilderLoader.class)
+final class SubstituteJavaRoutesBuilderLoader {
+
+ @Substitute
+ protected Collection<RoutesBuilder> doLoadRoutesBuilders(Collection<Resource> resources) throws Exception {
+ // Do nothing as it is already done
+ return List.of();
+ }
+}
diff --git a/extensions/joor/deployment/src/main/java/org/apache/camel/quarkus/component/joor/deployment/JoorProcessor.java b/extensions/joor/deployment/src/main/java/org/apache/camel/quarkus/component/joor/deployment/JoorProcessor.java
index baa8008967..cb8c10df23 100644
--- a/extensions/joor/deployment/src/main/java/org/apache/camel/quarkus/component/joor/deployment/JoorProcessor.java
+++ b/extensions/joor/deployment/src/main/java/org/apache/camel/quarkus/component/joor/deployment/JoorProcessor.java
@@ -16,8 +16,6 @@
*/
package org.apache.camel.quarkus.component.joor.deployment;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -44,10 +42,10 @@ import org.apache.camel.dsl.java.joor.MultiCompile;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.language.joor.JoorCompiler;
import org.apache.camel.language.joor.JoorExpression;
+import org.apache.camel.language.joor.JoorLanguage;
import org.apache.camel.language.joor.JoorScriptingCompiler;
import org.apache.camel.quarkus.component.joor.runtime.JoorExpressionCompiler;
import org.apache.camel.quarkus.component.joor.runtime.JoorExpressionConfig;
-import org.apache.camel.quarkus.component.joor.runtime.JoorExpressionLanguage;
import org.apache.camel.quarkus.component.joor.runtime.JoorExpressionRecorder;
import org.apache.camel.quarkus.component.joor.runtime.JoorExpressionScriptingCompiler;
import org.apache.camel.quarkus.core.deployment.spi.CamelBeanBuildItem;
@@ -60,11 +58,10 @@ import org.apache.camel.quarkus.support.language.runtime.ScriptUID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.apache.camel.quarkus.component.joor.runtime.JoorExpressionLanguage.PACKAGE_NAME;
-
class JoorProcessor {
private static final Logger LOG = LoggerFactory.getLogger(JoorProcessor.class);
+ private static final String PACKAGE_NAME = "org.apache.camel.quarkus.component.joor.generated";
private static final String FEATURE = "camel-joor";
@BuildStep
@@ -90,25 +87,25 @@ class JoorProcessor {
}
// Don't close it as it won't be started and some log entries are added on close/stop
CamelContext ctx = new DefaultCamelContext();
- try (JoorExpressionLanguage language = new JoorExpressionLanguage()) {
+ try (JoorLanguage language = new JoorLanguage()) {
language.setCamelContext(ctx);
language.setSingleQuotes(config.singleQuotes);
config.configResource.ifPresent(language::setConfigResource);
language.setPreCompile(false);
language.init();
- JoorCompiler compiler = language.getJoorCompiler();
+ JoorCompiler compiler = language.getCompiler();
for (ExpressionBuildItem expression : joorExpressions) {
JoorExpression exp = (JoorExpression) language.createExpression(expression.getExpression(),
expression.getProperties());
ExpressionUID id = new ExpressionUID(expression.getExpression(), exp.isSingleQuotes());
String name = String.format("%s.%s", PACKAGE_NAME, id);
- String content = evalCode(compiler, ctx, name, expression.getExpression(), exp.isSingleQuotes());
+ String content = compiler.evalCode(ctx, name, expression.getExpression(), exp.isSingleQuotes());
if (LOG.isDebugEnabled()) {
LOG.debug("Compiling expression:\n\n{}\n", content);
}
producer.produce(new JoorExpressionSourceBuildItem(id, name, content));
}
- JoorScriptingCompiler scriptingCompiler = language.getJoorScriptingCompiler();
+ JoorScriptingCompiler scriptingCompiler = language.getScriptingCompiler();
for (ScriptBuildItem script : joorScripts) {
ScriptUID id = new ScriptUID(script.getContent(), script.getBindings(), language.isSingleQuotes());
String name = String.format("%s.%s", PACKAGE_NAME, id);
@@ -134,29 +131,23 @@ class JoorProcessor {
for (JoorExpressionSourceBuildItem source : sources) {
unit.addClass(source.getClassName(), source.getSourceCode());
}
- // Temporary workaround until being able to provide the classpath somehow to the method MultiCompile.compileUnit
- // https://issues.apache.org/jira/browse/CAMEL-18860
- String previousCP = System.getProperty("java.class.path");
- try {
- ApplicationModel model = curateOutcomeBuildItem.getApplicationModel();
- List<ResolvedDependency> dependencies = new ArrayList<>(model.getDependencies());
- dependencies.add(model.getAppArtifact());
- String cp = dependencies.stream()
- .map(ResolvedDependency::getResolvedPaths)
- .flatMap(PathCollection::stream)
- .map(Objects::toString)
- .collect(Collectors.joining(System.getProperty("path.separator")));
- System.setProperty("java.class.path", cp);
- LOG.debug("Compiling unit: {}", unit);
- CompilationUnit.Result compilationResult = MultiCompile.compileUnit(unit);
- for (String className : compilationResult.getClassNames()) {
- generatedClass
- .produce(
- new GeneratedClassBuildItem(true, className, compilationResult.getByteCode(className)));
- }
- } finally {
- // Restore the CP
- System.setProperty("java.class.path", previousCP);
+ ApplicationModel model = curateOutcomeBuildItem.getApplicationModel();
+ List<ResolvedDependency> dependencies = new ArrayList<>(model.getDependencies());
+ dependencies.add(model.getAppArtifact());
+ LOG.debug("Compiling unit: {}", unit);
+ CompilationUnit.Result compilationResult = MultiCompile.compileUnit(
+ unit,
+ List.of(
+ "-classpath",
+ dependencies.stream()
+ .map(ResolvedDependency::getResolvedPaths)
+ .flatMap(PathCollection::stream)
+ .map(Objects::toString)
+ .collect(Collectors.joining(System.getProperty("path.separator")))));
+ for (String className : compilationResult.getClassNames()) {
+ generatedClass
+ .produce(
+ new GeneratedClassBuildItem(true, className, compilationResult.getByteCode(className)));
}
}
@@ -186,31 +177,14 @@ class JoorProcessor {
recorderContext.classProxy(source.getClassName()));
}
}
- final RuntimeValue<JoorExpressionLanguage> language = recorder.languageNewInstance(config);
+ final RuntimeValue<JoorLanguage> language = recorder.languageNewInstance(config, expressionCompilerBuilder,
+ expressionScriptingCompilerBuilder);
config.resultType.ifPresent(c -> recorder.setResultType(language, recorderContext.classProxy(c)));
- recorder.setJoorCompiler(language, expressionCompilerBuilder);
- recorder.setJoorScriptingCompiler(language, expressionScriptingCompilerBuilder);
- return new CamelBeanBuildItem("joor", JoorExpressionLanguage.class.getName(), language);
+ return new CamelBeanBuildItem("joor", JoorLanguage.class.getName(), language);
}
return null;
}
- /**
- * @return the code generated by the {@link JoorCompiler} to compile.
- */
- private String evalCode(JoorCompiler compiler, CamelContext camelContext, String fqn, String script, boolean singleQuotes) {
- // Use reflection as temporary workaround since it is not yet possible
- // Will be fixed by https://issues.apache.org/jira/browse/CAMEL-18977
- try {
- Method m = JoorCompiler.class.getDeclaredMethod("evalCode", CamelContext.class, String.class, String.class,
- boolean.class);
- m.setAccessible(true);
- return (String) m.invoke(compiler, camelContext, fqn, script, singleQuotes);
- } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {
- throw new RuntimeException("Cannot extract the generated code from the compiler", e);
- }
- }
-
/**
* Indicates whether the jOOR expressions should be compiled at build time.
*/
diff --git a/extensions/joor/runtime/src/main/java/org/apache/camel/quarkus/component/joor/runtime/JoorExpressionLanguage.java b/extensions/joor/runtime/src/main/java/org/apache/camel/quarkus/component/joor/runtime/JoorExpressionLanguage.java
deleted file mode 100644
index 69a15d7e1e..0000000000
--- a/extensions/joor/runtime/src/main/java/org/apache/camel/quarkus/component/joor/runtime/JoorExpressionLanguage.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.quarkus.component.joor.runtime;
-
-import java.lang.reflect.Field;
-
-import org.apache.camel.language.joor.JoorCompiler;
-import org.apache.camel.language.joor.JoorLanguage;
-import org.apache.camel.language.joor.JoorScriptingCompiler;
-
-/**
- * {@code JoorExpressionLanguage} is a jOOR language which uses a specific jOOR compiler and jOOR scripting compiler
- * that can be preloaded during the static initialization phase.
- */
-public class JoorExpressionLanguage extends JoorLanguage {
-
- public static final String PACKAGE_NAME = "org.apache.camel.quarkus.component.joor.generated";
-
- public JoorCompiler getJoorCompiler() {
- // Use reflection as temporary workaround since it is not yet possible
- // Will be fixed by https://issues.apache.org/jira/browse/CAMEL-18977
- try {
- Field f = JoorLanguage.class.getDeclaredField("compiler");
- f.setAccessible(true);
- return (JoorCompiler) f.get(this);
- } catch (NoSuchFieldException | IllegalAccessException e) {
- throw new RuntimeException("Cannot extract the compiler from the language", e);
- }
- }
-
- public void setJoorCompiler(JoorCompiler compiler) {
- // Use reflection as temporary workaround since it is not yet possible
- // Will be fixed by https://issues.apache.org/jira/browse/CAMEL-18977
- try {
- Field f = JoorLanguage.class.getDeclaredField("compiler");
- f.setAccessible(true);
- f.set(this, compiler);
- } catch (NoSuchFieldException | IllegalAccessException e) {
- throw new RuntimeException("Cannot set the compiler to the language", e);
- }
- }
-
- public JoorScriptingCompiler getJoorScriptingCompiler() {
- // Use reflection as temporary workaround since it is not yet possible
- // Will be fixed by https://issues.apache.org/jira/browse/CAMEL-18977
- try {
- Field f = JoorLanguage.class.getDeclaredField("scriptingCompiler");
- f.setAccessible(true);
- return (JoorScriptingCompiler) f.get(this);
- } catch (NoSuchFieldException | IllegalAccessException e) {
- throw new RuntimeException("Cannot extract the scripting compiler from the language", e);
- }
- }
-
- public void setJoorScriptingCompiler(JoorScriptingCompiler compiler) {
- // Use reflection as temporary workaround since it is not yet possible
- // Will be fixed by https://issues.apache.org/jira/browse/CAMEL-18977
- try {
- Field f = JoorLanguage.class.getDeclaredField("scriptingCompiler");
- f.setAccessible(true);
- f.set(this, compiler);
- } catch (NoSuchFieldException | IllegalAccessException e) {
- throw new RuntimeException("Cannot set the scripting compiler to the language", e);
- }
- }
-}
diff --git a/extensions/joor/runtime/src/main/java/org/apache/camel/quarkus/component/joor/runtime/JoorExpressionRecorder.java b/extensions/joor/runtime/src/main/java/org/apache/camel/quarkus/component/joor/runtime/JoorExpressionRecorder.java
index 3d0b301fae..94b056d52e 100644
--- a/extensions/joor/runtime/src/main/java/org/apache/camel/quarkus/component/joor/runtime/JoorExpressionRecorder.java
+++ b/extensions/joor/runtime/src/main/java/org/apache/camel/quarkus/component/joor/runtime/JoorExpressionRecorder.java
@@ -19,20 +19,24 @@ package org.apache.camel.quarkus.component.joor.runtime;
import io.quarkus.runtime.RuntimeValue;
import io.quarkus.runtime.annotations.Recorder;
import org.apache.camel.CamelContext;
+import org.apache.camel.language.joor.JoorLanguage;
import org.apache.camel.language.joor.JoorMethod;
import org.apache.camel.language.joor.JoorScriptingMethod;
@Recorder
public class JoorExpressionRecorder {
- public RuntimeValue<JoorExpressionLanguage> languageNewInstance(JoorExpressionConfig config) {
- RuntimeValue<JoorExpressionLanguage> language = new RuntimeValue<>(new JoorExpressionLanguage());
+ public RuntimeValue<JoorLanguage> languageNewInstance(JoorExpressionConfig config,
+ RuntimeValue<JoorExpressionCompiler.Builder> compilerBuilder,
+ RuntimeValue<JoorExpressionScriptingCompiler.Builder> scriptingCompilerBuilder) {
+ RuntimeValue<JoorLanguage> language = new RuntimeValue<>(
+ new JoorLanguage(compilerBuilder.getValue().build(), scriptingCompilerBuilder.getValue().build()));
language.getValue().setSingleQuotes(config.singleQuotes);
config.configResource.ifPresent(language.getValue()::setConfigResource);
return language;
}
- public void setResultType(RuntimeValue<JoorExpressionLanguage> language, Class<?> resultType) {
+ public void setResultType(RuntimeValue<JoorLanguage> language, Class<?> resultType) {
language.getValue().setResultType(resultType);
}
@@ -64,14 +68,4 @@ public class JoorExpressionRecorder {
throw new RuntimeException(e);
}
}
-
- public void setJoorCompiler(RuntimeValue<JoorExpressionLanguage> language,
- RuntimeValue<JoorExpressionCompiler.Builder> builder) {
- language.getValue().setJoorCompiler(builder.getValue().build());
- }
-
- public void setJoorScriptingCompiler(RuntimeValue<JoorExpressionLanguage> language,
- RuntimeValue<JoorExpressionScriptingCompiler.Builder> builder) {
- language.getValue().setJoorScriptingCompiler(builder.getValue().build());
- }
}
diff --git a/integration-tests/java-joor-dsl/pom.xml b/integration-tests/java-joor-dsl/pom.xml
index 5632a945e6..06b6b518b3 100644
--- a/integration-tests/java-joor-dsl/pom.xml
+++ b/integration-tests/java-joor-dsl/pom.xml
@@ -30,10 +30,6 @@
<name>Camel Quarkus :: Integration Tests :: Java jOOR DSL</name>
<description>Integration tests for Camel Java jOOR DSL extension</description>
- <properties>
- <ci.native.tests.skip>true</ci.native.tests.skip><!-- https://github.com/apache/camel-quarkus/issues/4523 -->
- </properties>
-
<dependencies>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>