You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2023/06/07 11:27:55 UTC

[camel-quarkus] branch main updated: Ref #4959: Delegate complexity to quarkus-groovy

This is an automated email from the ASF dual-hosted git repository.

ppalaga pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git


The following commit(s) were added to refs/heads/main by this push:
     new 76c0b26dd3 Ref #4959: Delegate complexity to quarkus-groovy
76c0b26dd3 is described below

commit 76c0b26dd3b5043ecaf1b031f2bfc382697d21e3
Author: Nicolas Filotto <nf...@talend.com>
AuthorDate: Wed Jun 7 09:15:44 2023 +0200

    Ref #4959: Delegate complexity to quarkus-groovy
---
 extensions/groovy-dsl/deployment/pom.xml           |   4 +
 extensions/groovy-dsl/runtime/pom.xml              |   4 +
 .../groovy/runtime/graal/GroovySubstitutions.java  | 149 ---------------------
 .../graal/SubstituteGroovyRoutesBuilderLoader.java |  34 -----
 extensions/groovy/deployment/pom.xml               |   4 +-
 extensions/groovy/runtime/pom.xml                  |   4 +-
 pom.xml                                            |   1 +
 poms/bom/pom.xml                                   |  10 ++
 poms/bom/src/main/generated/flattened-full-pom.xml |  10 ++
 .../src/main/generated/flattened-reduced-pom.xml   |  10 ++
 .../generated/flattened-reduced-verbose-pom.xml    |  10 ++
 11 files changed, 53 insertions(+), 187 deletions(-)

diff --git a/extensions/groovy-dsl/deployment/pom.xml b/extensions/groovy-dsl/deployment/pom.xml
index 5f895bce22..1684486146 100644
--- a/extensions/groovy-dsl/deployment/pom.xml
+++ b/extensions/groovy-dsl/deployment/pom.xml
@@ -30,6 +30,10 @@
     <name>Camel Quarkus :: Groovy DSL :: Deployment</name>
 
     <dependencies>
+        <dependency>
+            <groupId>io.quarkiverse.groovy</groupId>
+            <artifactId>quarkus-groovy-deployment</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-core-deployment</artifactId>
diff --git a/extensions/groovy-dsl/runtime/pom.xml b/extensions/groovy-dsl/runtime/pom.xml
index e4f665b2bf..6fd35dc83c 100644
--- a/extensions/groovy-dsl/runtime/pom.xml
+++ b/extensions/groovy-dsl/runtime/pom.xml
@@ -36,6 +36,10 @@
     </properties>
 
     <dependencies>
+        <dependency>
+            <groupId>io.quarkiverse.groovy</groupId>
+            <artifactId>quarkus-groovy</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-core</artifactId>
diff --git a/extensions/groovy-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/groovy/runtime/graal/GroovySubstitutions.java b/extensions/groovy-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/groovy/runtime/graal/GroovySubstitutions.java
deleted file mode 100644
index 927018517c..0000000000
--- a/extensions/groovy-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/groovy/runtime/graal/GroovySubstitutions.java
+++ /dev/null
@@ -1,149 +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.dsl.groovy.runtime.graal;
-
-import java.lang.invoke.MethodHandle;
-import java.lang.invoke.MutableCallSite;
-import java.util.function.BiFunction;
-
-import com.oracle.svm.core.annotate.Alias;
-import com.oracle.svm.core.annotate.Substitute;
-import com.oracle.svm.core.annotate.TargetClass;
-import org.codehaus.groovy.control.SourceUnit;
-import org.codehaus.groovy.runtime.memoize.MemoizeCache;
-import org.codehaus.groovy.vmplugin.v8.CacheableCallSite;
-import org.codehaus.groovy.vmplugin.v8.IndyInterface;
-
-final class GroovySubstitutions {
-}
-
-@TargetClass(className = "org.codehaus.groovy.vmplugin.v8.MethodHandleWrapper")
-final class SubstituteMethodHandleWrapper {
-
-    @Alias
-    public boolean isCanSetTarget() {
-        return false;
-    }
-
-    @Alias
-    public MethodHandle getCachedMethodHandle() {
-        return null;
-    }
-}
-
-@TargetClass(className = "org.codehaus.groovy.vmplugin.v8.IndyInterface$FallbackSupplier")
-final class SubstituteIndyFallbackSupplier {
-
-    @Alias
-    SubstituteIndyFallbackSupplier(MutableCallSite callSite, Class<?> sender, String methodName, int callID,
-            Boolean safeNavigation, Boolean thisCall, Boolean spreadCall, Object dummyReceiver, Object[] arguments) {
-
-    }
-
-    @Alias
-    SubstituteMethodHandleWrapper get() {
-        return null;
-    }
-}
-
-@TargetClass(CacheableCallSite.class)
-final class SubstituteCacheableCallSite {
-
-    @Alias
-    public SubstituteMethodHandleWrapper getAndPut(String className,
-            MemoizeCache.ValueProvider<? super String, ? extends SubstituteMethodHandleWrapper> valueProvider) {
-        return null;
-    }
-}
-
-@TargetClass(IndyInterface.class)
-final class SubstituteIndyInterface {
-
-    @Alias
-    private static SubstituteMethodHandleWrapper NULL_METHOD_HANDLE_WRAPPER;
-
-    @Substitute
-    protected static void invalidateSwitchPoints() {
-        throw new UnsupportedOperationException("invalidateSwitchPoints is not supported");
-    }
-
-    @Alias
-    private static boolean bypassCache(Boolean spreadCall, Object[] arguments) {
-        return false;
-    }
-
-    @Alias
-    private static <T> T doWithCallSite(MutableCallSite callSite, Object[] arguments,
-            BiFunction<? super SubstituteCacheableCallSite, ? super Object, ? extends T> f) {
-        return null;
-    }
-
-    @Substitute
-    public static Object selectMethod(MutableCallSite callSite, Class<?> sender, String methodName, int callID,
-            Boolean safeNavigation, Boolean thisCall, Boolean spreadCall, Object dummyReceiver, Object[] arguments)
-            throws Throwable {
-        throw new UnsupportedOperationException("selectMethod is not supported");
-    }
-
-    @Substitute
-    public static Object fromCache(MutableCallSite callSite, Class<?> sender, String methodName, int callID,
-            Boolean safeNavigation, Boolean thisCall, Boolean spreadCall, Object dummyReceiver, Object[] arguments)
-            throws Throwable {
-        SubstituteIndyFallbackSupplier fallbackSupplier = new SubstituteIndyFallbackSupplier(callSite, sender, methodName,
-                callID, safeNavigation, thisCall, spreadCall, dummyReceiver, arguments);
-
-        SubstituteMethodHandleWrapper mhw = bypassCache(spreadCall, arguments)
-                ? NULL_METHOD_HANDLE_WRAPPER
-                : doWithCallSite(
-                        callSite, arguments,
-                        new FromCacheBiFunction(fallbackSupplier));
-
-        if (NULL_METHOD_HANDLE_WRAPPER == mhw) {
-            mhw = fallbackSupplier.get();
-        }
-
-        return mhw.getCachedMethodHandle().invokeExact(arguments);
-    }
-
-    static class FromCacheBiFunction implements BiFunction<SubstituteCacheableCallSite, Object, SubstituteMethodHandleWrapper> {
-
-        private final SubstituteIndyFallbackSupplier fallbackSupplier;
-
-        FromCacheBiFunction(SubstituteIndyFallbackSupplier fallbackSupplier) {
-            this.fallbackSupplier = fallbackSupplier;
-        }
-
-        @Override
-        public SubstituteMethodHandleWrapper apply(SubstituteCacheableCallSite cs, Object receiver) {
-            return cs.getAndPut(
-                    receiver.getClass().getName(),
-                    c -> {
-                        SubstituteMethodHandleWrapper fbMhw = fallbackSupplier.get();
-                        return fbMhw.isCanSetTarget() ? fbMhw : NULL_METHOD_HANDLE_WRAPPER;
-                    });
-        }
-    }
-}
-
-@TargetClass(SourceUnit.class)
-final class SubstituteSourceUnit {
-
-    @Substitute
-    public void convert() {
-        throw new UnsupportedOperationException("convert is not supported");
-    }
-}
diff --git a/extensions/groovy-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/groovy/runtime/graal/SubstituteGroovyRoutesBuilderLoader.java b/extensions/groovy-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/groovy/runtime/graal/SubstituteGroovyRoutesBuilderLoader.java
deleted file mode 100644
index d2880aaa95..0000000000
--- a/extensions/groovy-dsl/runtime/src/main/java/org/apache/camel/quarkus/dsl/groovy/runtime/graal/SubstituteGroovyRoutesBuilderLoader.java
+++ /dev/null
@@ -1,34 +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.dsl.groovy.runtime.graal;
-
-import java.io.Reader;
-
-import com.oracle.svm.core.annotate.Substitute;
-import com.oracle.svm.core.annotate.TargetClass;
-import org.apache.camel.builder.endpoint.EndpointRouteBuilder;
-import org.apache.camel.dsl.groovy.GroovyRoutesBuilderLoader;
-
-@TargetClass(GroovyRoutesBuilderLoader.class)
-final class SubstituteGroovyRoutesBuilderLoader {
-
-    @Substitute
-    protected void doLoadEndpointRouteBuilder(Reader reader, EndpointRouteBuilder builder) {
-        // Do nothing
-    }
-
-}
diff --git a/extensions/groovy/deployment/pom.xml b/extensions/groovy/deployment/pom.xml
index 0beefa5e60..baf13b02b2 100644
--- a/extensions/groovy/deployment/pom.xml
+++ b/extensions/groovy/deployment/pom.xml
@@ -39,8 +39,8 @@
             <artifactId>camel-quarkus-groovy</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-groovy-dsl-deployment</artifactId>
+            <groupId>io.quarkiverse.groovy</groupId>
+            <artifactId>quarkus-groovy-deployment</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
diff --git a/extensions/groovy/runtime/pom.xml b/extensions/groovy/runtime/pom.xml
index b1f0e4483e..aa83d2b1c0 100644
--- a/extensions/groovy/runtime/pom.xml
+++ b/extensions/groovy/runtime/pom.xml
@@ -49,8 +49,8 @@
             <artifactId>camel-groovy</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-groovy-dsl</artifactId>
+            <groupId>io.quarkiverse.groovy</groupId>
+            <artifactId>quarkus-groovy</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/pom.xml b/pom.xml
index 730209ac59..35bb4d1699 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,6 +52,7 @@
         <quarkiverse-artemis.version>3.0.0</quarkiverse-artemis.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/artemis/quarkus-artemis-parent/ -->
         <quarkiverse-cxf.version>2.1.0</quarkiverse-cxf.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/cxf/quarkus-cxf-parent/ -->
         <quarkiverse-freemarker.version>1.0.0</quarkiverse-freemarker.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/freemarker/quarkus-freemarker-parent/ -->
+        <quarkiverse-groovy.version>3.1.0</quarkiverse-groovy.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/groovy/quarkus-groovy-parent/ -->
         <quarkiverse-jackson-jq.version>2.0.1</quarkiverse-jackson-jq.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/jackson-jq/quarkus-jackson-jq-parent/ -->
         <quarkiverse-jgit.version>3.0.0</quarkiverse-jgit.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/jgit/quarkus-jgit-parent/ -->
         <quarkiverse-jsch.version>3.0.1</quarkiverse-jsch.version><!-- https://repo1.maven.org/maven2/io/quarkiverse/jsch/quarkus-jsch-parent/ -->
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 63140acf54..5536f4ffb3 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -6193,6 +6193,16 @@
                 <artifactId>quarkus-freemarker-deployment</artifactId>
                 <version>${quarkiverse-freemarker.version}</version>
             </dependency>
+            <dependency>
+                <groupId>io.quarkiverse.groovy</groupId>
+                <artifactId>quarkus-groovy</artifactId>
+                <version>${quarkiverse-groovy.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.quarkiverse.groovy</groupId>
+                <artifactId>quarkus-groovy-deployment</artifactId>
+                <version>${quarkiverse-groovy.version}</version>
+            </dependency>
             <dependency>
                 <groupId>io.quarkiverse.jackson-jq</groupId>
                 <artifactId>quarkus-jackson-jq</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml b/poms/bom/src/main/generated/flattened-full-pom.xml
index 98bd4a5255..226ffcaf44 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -6116,6 +6116,16 @@
         <artifactId>quarkus-freemarker-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>1.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>io.quarkiverse.groovy</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>quarkus-groovy</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.1.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
+      <dependency>
+        <groupId>io.quarkiverse.groovy</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>quarkus-groovy-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.1.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
       <dependency>
         <groupId>io.quarkiverse.jackson-jq</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>quarkus-jackson-jq</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml b/poms/bom/src/main/generated/flattened-reduced-pom.xml
index 20fdb8bcf7..6fe7e3793a 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -6116,6 +6116,16 @@
         <artifactId>quarkus-freemarker-deployment</artifactId>
         <version>1.0.0</version>
       </dependency>
+      <dependency>
+        <groupId>io.quarkiverse.groovy</groupId>
+        <artifactId>quarkus-groovy</artifactId>
+        <version>3.1.0</version>
+      </dependency>
+      <dependency>
+        <groupId>io.quarkiverse.groovy</groupId>
+        <artifactId>quarkus-groovy-deployment</artifactId>
+        <version>3.1.0</version>
+      </dependency>
       <dependency>
         <groupId>io.quarkiverse.jackson-jq</groupId>
         <artifactId>quarkus-jackson-jq</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
index 45acd578ea..09bba7d5b7 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -6116,6 +6116,16 @@
         <artifactId>quarkus-freemarker-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>1.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>io.quarkiverse.groovy</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>quarkus-groovy</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.1.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
+      <dependency>
+        <groupId>io.quarkiverse.groovy</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>quarkus-groovy-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.1.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
       <dependency>
         <groupId>io.quarkiverse.jackson-jq</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>quarkus-jackson-jq</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->