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 2025/08/21 06:51:04 UTC

(camel-quarkus) 03/03: Demote OptaPlanner extension to JVM only due to #7533

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

commit 1dc02611ed63983c591faebbc28571ef47446f32
Author: James Netherton <ja...@gmail.com>
AuthorDate: Wed Aug 20 10:38:43 2025 +0100

    Demote OptaPlanner extension to JVM only due to #7533
---
 .../ROOT/examples/components/optaplanner.yml       |  6 +--
 .../modules/ROOT/pages/migration-guide/3.26.0.adoc |  6 +++
 .../pages/reference/extensions/optaplanner.adoc    | 14 +++----
 extensions/optaplanner/deployment/pom.xml          |  2 +
 extensions/optaplanner/runtime/pom.xml             |  5 +++
 integration-tests/optaplanner/pom.xml              |  2 +
 .../optaplanner/it/SolverManagerProducers.java     | 44 ++++++++++++++++++++++
 integration-tests/pom.xml                          |  2 +-
 poms/bom/pom.xml                                   |  2 +
 poms/bom/src/main/generated/flattened-full-pom.xml | 14 -------
 .../src/main/generated/flattened-reduced-pom.xml   | 44 ----------------------
 .../generated/flattened-reduced-verbose-pom.xml    | 44 ----------------------
 tooling/scripts/test-categories.yaml               |  2 +-
 13 files changed, 71 insertions(+), 116 deletions(-)

diff --git a/docs/modules/ROOT/examples/components/optaplanner.yml b/docs/modules/ROOT/examples/components/optaplanner.yml
index 37172ea39e..a30b9bebd6 100644
--- a/docs/modules/ROOT/examples/components/optaplanner.yml
+++ b/docs/modules/ROOT/examples/components/optaplanner.yml
@@ -2,11 +2,11 @@
 # This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
 cqArtifactId: camel-quarkus-optaplanner
 cqArtifactIdBase: optaplanner
-cqNativeSupported: true
-cqStatus: Stable
+cqNativeSupported: false
+cqStatus: Preview
 cqDeprecated: false
 cqJvmSince: 1.1.0
-cqNativeSince: 1.5.0
+cqNativeSince: n/a
 cqCamelPartName: optaplanner
 cqCamelPartTitle: OptaPlanner
 cqCamelPartDescription: Solve planning problems with OptaPlanner.
diff --git a/docs/modules/ROOT/pages/migration-guide/3.26.0.adoc b/docs/modules/ROOT/pages/migration-guide/3.26.0.adoc
index b73f4dcd27..d88a05ef68 100644
--- a/docs/modules/ROOT/pages/migration-guide/3.26.0.adoc
+++ b/docs/modules/ROOT/pages/migration-guide/3.26.0.adoc
@@ -17,3 +17,9 @@ Due to `quarkus-hazelcast` 4.0.0 not being compatible with Quarkus >= 3.26.0, it
 This means that any native support and any `quarkus-hazelcast` specific features are temporarily not supported with `camel-quarkus-hazelcast`.
 You can continue to use the extension in JVM mode using the standard `camel-hazelcast` component functionality.
 
+== `optaplanner-quarkus` removed from `camel-quarkus-optaplanner`
+
+Due to `optaplanner-quarkus` 10.0.0 not being compatible with Quarkus >= 3.26.0, it has been temporarily removed from the `camel-quarkus-optaplanner` extension.
+
+This means that any native support and any `optaplanner-quarkus` specific features are temporarily not supported with `camel-quarkus-optaplanner`.
+You can continue to use the extension in JVM mode using the standard `camel-optaplanner` component functionality.
diff --git a/docs/modules/ROOT/pages/reference/extensions/optaplanner.adoc b/docs/modules/ROOT/pages/reference/extensions/optaplanner.adoc
index 9bf8076d4a..0acd1f2db3 100644
--- a/docs/modules/ROOT/pages/reference/extensions/optaplanner.adoc
+++ b/docs/modules/ROOT/pages/reference/extensions/optaplanner.adoc
@@ -4,17 +4,17 @@
 = OptaPlanner
 :linkattrs:
 :cq-artifact-id: camel-quarkus-optaplanner
-:cq-native-supported: true
-:cq-status: Stable
-:cq-status-deprecation: Stable
+:cq-native-supported: false
+:cq-status: Preview
+:cq-status-deprecation: Preview
 :cq-description: Solve planning problems with OptaPlanner.
 :cq-deprecated: false
 :cq-jvm-since: 1.1.0
-:cq-native-since: 1.5.0
+:cq-native-since: n/a
 
 ifeval::[{doc-show-badges} == true]
 [.badges]
-[.badge-key]##JVM since##[.badge-supported]##1.1.0## [.badge-key]##Native since##[.badge-supported]##1.5.0##
+[.badge-key]##JVM since##[.badge-supported]##1.1.0## [.badge-key]##Native##[.badge-unsupported]##unsupported##
 endif::[]
 
 Solve planning problems with OptaPlanner.
@@ -29,10 +29,6 @@ Please refer to the above link for usage and configuration details.
 [id="extensions-optaplanner-maven-coordinates"]
 == Maven coordinates
 
-https://{link-quarkus-code-generator}/?extension-search=camel-quarkus-optaplanner[Create a new project with this extension on {link-quarkus-code-generator}, window="_blank"]
-
-Or add the coordinates to your existing project:
-
 [source,xml]
 ----
 <dependency>
diff --git a/extensions/optaplanner/deployment/pom.xml b/extensions/optaplanner/deployment/pom.xml
index 9636204c8f..f4890cad4d 100644
--- a/extensions/optaplanner/deployment/pom.xml
+++ b/extensions/optaplanner/deployment/pom.xml
@@ -38,6 +38,7 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-optaplanner</artifactId>
         </dependency>
+        <!-- TODO: Restore when optaplanner-quarkus > 10.0.0 is available - https://github.com/apache/camel-quarkus/issues/7533
         <dependency>
             <groupId>org.optaplanner</groupId>
             <artifactId>optaplanner-quarkus-deployment</artifactId>
@@ -46,6 +47,7 @@
             <groupId>org.optaplanner</groupId>
             <artifactId>optaplanner-quarkus-jackson-deployment</artifactId>
         </dependency>
+        -->
     </dependencies>
 
     <build>
diff --git a/extensions/optaplanner/runtime/pom.xml b/extensions/optaplanner/runtime/pom.xml
index 54c10bbd2e..dfba8775c3 100644
--- a/extensions/optaplanner/runtime/pom.xml
+++ b/extensions/optaplanner/runtime/pom.xml
@@ -32,7 +32,10 @@
 
     <properties>
         <camel.quarkus.jvmSince>1.1.0</camel.quarkus.jvmSince>
+        <!-- TODO: Restore / remove when optaplanner-quarkus > 10.0.0 is available - https://github.com/apache/camel-quarkus/issues/7533
         <camel.quarkus.nativeSince>1.5.0</camel.quarkus.nativeSince>
+        -->
+        <quarkus.metadata.nativeSupported>false</quarkus.metadata.nativeSupported>
     </properties>
 
     <dependencies>
@@ -44,6 +47,7 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-optaplanner</artifactId>
         </dependency>
+        <!-- TODO: Restore when optaplanner-quarkus > 10.0.0 is available - https://github.com/apache/camel-quarkus/issues/7533
         <dependency>
             <groupId>org.optaplanner</groupId>
             <artifactId>optaplanner-quarkus</artifactId>
@@ -52,6 +56,7 @@
             <groupId>org.optaplanner</groupId>
             <artifactId>optaplanner-quarkus-jackson</artifactId>
         </dependency>
+        -->
     </dependencies>
 
     <build>
diff --git a/integration-tests/optaplanner/pom.xml b/integration-tests/optaplanner/pom.xml
index 7c0246e082..4a6b26e29e 100644
--- a/integration-tests/optaplanner/pom.xml
+++ b/integration-tests/optaplanner/pom.xml
@@ -71,6 +71,7 @@
     </dependencies>
 
     <profiles>
+        <!-- TODO: Restore when optaplanner-quarkus > 10.0.0 is available - https://github.com/apache/camel-quarkus/issues/7533
         <profile>
             <id>native</id>
             <activation>
@@ -98,6 +99,7 @@
                 </plugins>
             </build>
         </profile>
+        -->
         <profile>
             <id>virtualDependencies</id>
             <activation>
diff --git a/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/SolverManagerProducers.java b/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/SolverManagerProducers.java
new file mode 100644
index 0000000000..96f23f430e
--- /dev/null
+++ b/integration-tests/optaplanner/src/main/java/org/apache/camel/quarkus/component/optaplanner/it/SolverManagerProducers.java
@@ -0,0 +1,44 @@
+/*
+ * 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.optaplanner.it;
+
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Singleton;
+import org.apache.camel.quarkus.component.optaplanner.it.domain.Lesson;
+import org.apache.camel.quarkus.component.optaplanner.it.domain.TimeTable;
+import org.apache.camel.quarkus.component.optaplanner.it.solver.TimeTableConstraintProvider;
+import org.optaplanner.core.api.solver.SolverFactory;
+import org.optaplanner.core.api.solver.SolverManager;
+import org.optaplanner.core.config.solver.SolverConfig;
+import org.optaplanner.core.config.solver.termination.TerminationConfig;
+
+/**
+ * Replicates optaplanner-quarkus configuration from application.properties
+ *
+ * TODO: Remove when optaplanner-quarkus > 10.0.0 is available - https://github.com/apache/camel-quarkus/issues/7533
+ */
+@ApplicationScoped
+public class SolverManagerProducers {
+    @Singleton
+    SolverManager<TimeTable, Long> solverManager() {
+        return SolverManager.create(SolverFactory.create(new SolverConfig()
+                .withSolutionClass(TimeTable.class)
+                .withEntityClasses(Lesson.class)
+                .withConstraintProviderClass(TimeTableConstraintProvider.class)
+                .withTerminationConfig(new TerminationConfig().withBestScoreLimit("0hard/*soft").withSecondsSpentLimit(30L))));
+    }
+}
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index 0b211545b0..76cd67d370 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -183,7 +183,7 @@
         <module>openstack</module>
         <module>opentelemetry</module>
         <module>opentelemetry2</module>
-        <!-- <module>optaplanner</module> -->
+        <module>optaplanner</module>
         <module>paho</module>
         <module>paho-mqtt5</module>
         <module>pdf</module>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 162f096bda..37805a76c4 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -2302,6 +2302,7 @@
                 <artifactId>camel-optaplanner</artifactId>
                 <version>${camel.version}</version>
                 <exclusions>
+                    <!-- TODO: Restore when optaplanner-quarkus > 10.0.0 is available - https://github.com/apache/camel-quarkus/issues/7533
                     <exclusion>
                         <groupId>org.optaplanner</groupId>
                         <artifactId>optaplanner-core</artifactId>
@@ -2314,6 +2315,7 @@
                         <groupId>org.optaplanner</groupId>
                         <artifactId>optaplanner-persistence-common</artifactId>
                     </exclusion>
+                    -->
                 </exclusions>
             </dependency>
             <dependency>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml b/poms/bom/src/main/generated/flattened-full-pom.xml
index 33eadca343..f77e5c25de 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -2217,20 +2217,6 @@
         <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>camel-optaplanner</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>4.14.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <exclusions>
-          <exclusion>
-            <groupId>org.optaplanner</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-            <artifactId>optaplanner-core</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-          </exclusion>
-          <exclusion>
-            <groupId>org.optaplanner</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-            <artifactId>optaplanner-core-impl</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-          </exclusion>
-          <exclusion>
-            <groupId>org.optaplanner</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-            <artifactId>optaplanner-persistence-common</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-          </exclusion>
-        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId><!-- 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 7ce4131abd..6310d65f8c 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -2207,20 +2207,6 @@
         <groupId>org.apache.camel</groupId>
         <artifactId>camel-optaplanner</artifactId>
         <version>4.14.0</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.optaplanner</groupId>
-            <artifactId>optaplanner-core</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.optaplanner</groupId>
-            <artifactId>optaplanner-core-impl</artifactId>
-          </exclusion>
-          <exclusion>
-            <groupId>org.optaplanner</groupId>
-            <artifactId>optaplanner-persistence-common</artifactId>
-          </exclusion>
-        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
@@ -7657,26 +7643,6 @@
         <artifactId>opensearch-rest-client</artifactId>
         <version>3.1.0</version>
       </dependency>
-      <dependency>
-        <groupId>org.optaplanner</groupId>
-        <artifactId>optaplanner-quarkus</artifactId>
-        <version>10.0.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.optaplanner</groupId>
-        <artifactId>optaplanner-quarkus-deployment</artifactId>
-        <version>10.0.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.optaplanner</groupId>
-        <artifactId>optaplanner-quarkus-jackson</artifactId>
-        <version>10.0.0</version>
-      </dependency>
-      <dependency>
-        <groupId>org.optaplanner</groupId>
-        <artifactId>optaplanner-quarkus-jackson-deployment</artifactId>
-        <version>10.0.0</version>
-      </dependency>
       <dependency>
         <groupId>org.snakeyaml</groupId>
         <artifactId>snakeyaml-engine</artifactId>
@@ -9064,16 +9030,6 @@
         <artifactId>affinity</artifactId>
         <version>3.23.3</version>
       </dependency>
-      <dependency>
-        <groupId>com.hazelcast</groupId>
-        <artifactId>quarkus-hazelcast-client</artifactId>
-        <version>4.0.0</version>
-      </dependency>
-      <dependency>
-        <groupId>com.hazelcast</groupId>
-        <artifactId>quarkus-hazelcast-client-deployment</artifactId>
-        <version>4.0.0</version>
-      </dependency>
       <dependency>
         <groupId>org.smooks</groupId>
         <artifactId>smooks-core</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 bafb7326d7..439d881c53 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -2207,20 +2207,6 @@
         <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>camel-optaplanner</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>4.14.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <exclusions>
-          <exclusion>
-            <groupId>org.optaplanner</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-            <artifactId>optaplanner-core</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-          </exclusion>
-          <exclusion>
-            <groupId>org.optaplanner</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-            <artifactId>optaplanner-core-impl</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-          </exclusion>
-          <exclusion>
-            <groupId>org.optaplanner</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-            <artifactId>optaplanner-persistence-common</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-          </exclusion>
-        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -7657,26 +7643,6 @@
         <artifactId>opensearch-rest-client</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>org.optaplanner</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <artifactId>optaplanner-quarkus</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <version>10.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-      </dependency>
-      <dependency>
-        <groupId>org.optaplanner</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <artifactId>optaplanner-quarkus-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <version>10.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-      </dependency>
-      <dependency>
-        <groupId>org.optaplanner</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <artifactId>optaplanner-quarkus-jackson</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <version>10.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-      </dependency>
-      <dependency>
-        <groupId>org.optaplanner</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <artifactId>optaplanner-quarkus-jackson-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-        <version>10.0.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
-      </dependency>
       <dependency>
         <groupId>org.snakeyaml</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>snakeyaml-engine</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -9064,16 +9030,6 @@
         <artifactId>affinity</artifactId><!-- com.hazelcast:quarkus-hazelcast-client-bom:4.0.0 -->
         <version>3.23.3</version><!-- com.hazelcast:quarkus-hazelcast-client-bom:4.0.0 -->
       </dependency>
-      <dependency>
-        <groupId>com.hazelcast</groupId><!-- com.hazelcast:quarkus-hazelcast-client-bom:4.0.0 -->
-        <artifactId>quarkus-hazelcast-client</artifactId><!-- com.hazelcast:quarkus-hazelcast-client-bom:4.0.0 -->
-        <version>4.0.0</version><!-- com.hazelcast:quarkus-hazelcast-client-bom:4.0.0 -->
-      </dependency>
-      <dependency>
-        <groupId>com.hazelcast</groupId><!-- com.hazelcast:quarkus-hazelcast-client-bom:4.0.0 -->
-        <artifactId>quarkus-hazelcast-client-deployment</artifactId><!-- com.hazelcast:quarkus-hazelcast-client-bom:4.0.0 -->
-        <version>4.0.0</version><!-- com.hazelcast:quarkus-hazelcast-client-bom:4.0.0 -->
-      </dependency>
       <dependency>
         <groupId>org.smooks</groupId><!-- org.smooks:smooks-bom:2.2.1 -->
         <artifactId>smooks-core</artifactId><!-- org.smooks:smooks-bom:2.2.1 -->
diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml
index b490b0e1e0..4f9ca867e1 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -129,7 +129,7 @@ group-07:
   - lumberjack
   - ognl
   - olingo4
-  #- optaplanner
+  - optaplanner
   - pg-replication-slot
   - splunk-hec
   - sjms2-artemis-client