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

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


The following commit(s) were added to refs/heads/main by this push:
     new ff35956a22a CAMEL-23109: Remove aot experiment in camel-spring-boot 
(#1690)
ff35956a22a is described below

commit ff35956a22a019ba4e5238bbd1e0a2473d6a58be
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Mar 2 07:47:39 2026 +0100

    CAMEL-23109: Remove aot experiment in camel-spring-boot (#1690)
    
    * CAMEL-23109: Remove aot experiment in camel-spring-boot
---
 components-starter/camel-xml-jaxb-starter/pom.xml  |   6 -
 .../xml/jaxb/springboot/JAXBRuntimeHints.java      | 294 ---------------------
 .../jaxb/springboot/graalvm/JAXBSubstitutions.java | 102 -------
 .../main/resources/META-INF/spring/aot.factories   |  18 --
 .../camel/xml/jaxb/springboot/BeanScope.java       |  27 --
 .../org/apache/camel/xml/jaxb/springboot/Book.java |  47 ----
 .../camel/xml/jaxb/springboot/IdentifiedType.java  |  45 ----
 .../xml/jaxb/springboot/JAXBRuntimeHintsTest.java  |  57 ----
 .../camel/xml/jaxb/springboot/USAddress.java       | 177 -------------
 .../apache/camel/xml/jaxb/springboot/jaxb.index    |   1 -
 .../camel/spring/boot/CamelAutoConfiguration.java  |   2 -
 .../camel/spring/boot/aot/CamelRuntimeHints.java   |  99 -------
 .../camel/spring/boot/aot/ReflectionHelper.java    | 257 ------------------
 .../camel/spring/boot/aot/RuntimeHintsHelper.java  |  76 ------
 .../camel-spring-boot/native-image.properties      |  17 --
 .../spring/boot/aot/CamelRuntimeHintsTest.java     |  56 ----
 .../spring/boot/aot/ReflectionHelperTest.java      | 145 ----------
 .../src/main/docs/java-joor-dsl.json               |   2 +-
 .../src/main/docs/xml-io-dsl.json                  |   2 +-
 .../src/main/docs/xml-jaxb-dsl.json                |   2 +-
 .../jaxb/springboot/aot/XMLDSLRuntimeHints.java    |  30 ---
 .../main/resources/META-INF/spring/aot.factories   |  18 --
 .../src/main/docs/yaml-io-dsl.json                 |  15 ++
 pom.xml                                            |   1 -
 24 files changed, 18 insertions(+), 1478 deletions(-)

diff --git a/components-starter/camel-xml-jaxb-starter/pom.xml 
b/components-starter/camel-xml-jaxb-starter/pom.xml
index 80a2f8fce04..4e55fbb9eb7 100644
--- a/components-starter/camel-xml-jaxb-starter/pom.xml
+++ b/components-starter/camel-xml-jaxb-starter/pom.xml
@@ -38,12 +38,6 @@
       <artifactId>camel-xml-jaxb</artifactId>
       <version>${camel-version}</version>
     </dependency>
-    <dependency>
-      <groupId>org.graalvm.sdk</groupId>
-      <artifactId>graal-sdk</artifactId>
-      <version>${graal-sdk-version}</version>
-      <scope>provided</scope>
-    </dependency>
     <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-test</artifactId>
diff --git 
a/components-starter/camel-xml-jaxb-starter/src/main/java/org/apache/camel/xml/jaxb/springboot/JAXBRuntimeHints.java
 
b/components-starter/camel-xml-jaxb-starter/src/main/java/org/apache/camel/xml/jaxb/springboot/JAXBRuntimeHints.java
deleted file mode 100644
index b04852d313c..00000000000
--- 
a/components-starter/camel-xml-jaxb-starter/src/main/java/org/apache/camel/xml/jaxb/springboot/JAXBRuntimeHints.java
+++ /dev/null
@@ -1,294 +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.xml.jaxb.springboot;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.StringReader;
-import java.lang.annotation.Annotation;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.List;
-
-import jakarta.xml.bind.annotation.XmlAccessOrder;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAnyAttribute;
-import jakarta.xml.bind.annotation.XmlAnyElement;
-import jakarta.xml.bind.annotation.XmlAttachmentRef;
-import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlElement;
-import jakarta.xml.bind.annotation.XmlElementDecl;
-import jakarta.xml.bind.annotation.XmlElementRef;
-import jakarta.xml.bind.annotation.XmlElementRefs;
-import jakarta.xml.bind.annotation.XmlElementWrapper;
-import jakarta.xml.bind.annotation.XmlElements;
-import jakarta.xml.bind.annotation.XmlEnum;
-import jakarta.xml.bind.annotation.XmlEnumValue;
-import jakarta.xml.bind.annotation.XmlID;
-import jakarta.xml.bind.annotation.XmlIDREF;
-import jakarta.xml.bind.annotation.XmlInlineBinaryData;
-import jakarta.xml.bind.annotation.XmlList;
-import jakarta.xml.bind.annotation.XmlMimeType;
-import jakarta.xml.bind.annotation.XmlMixed;
-import jakarta.xml.bind.annotation.XmlNs;
-import jakarta.xml.bind.annotation.XmlRegistry;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlSchema;
-import jakarta.xml.bind.annotation.XmlSchemaType;
-import jakarta.xml.bind.annotation.XmlSchemaTypes;
-import jakarta.xml.bind.annotation.XmlSeeAlso;
-import jakarta.xml.bind.annotation.XmlTransient;
-import jakarta.xml.bind.annotation.XmlType;
-import jakarta.xml.bind.annotation.XmlValue;
-import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.aot.hint.MemberCategory;
-import org.springframework.aot.hint.RuntimeHints;
-import org.springframework.aot.hint.RuntimeHintsRegistrar;
-import org.springframework.aot.hint.TypeReference;
-import org.springframework.asm.ClassReader;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.util.ReflectionUtils;
-
-import static org.apache.camel.spring.boot.aot.ReflectionHelper.applyIfMatch;
-import static 
org.apache.camel.spring.boot.aot.ReflectionHelper.getClassesByAnnotations;
-import static 
org.apache.camel.spring.boot.aot.RuntimeHintsHelper.registerClassHierarchy;
-
-final class JAXBRuntimeHints implements RuntimeHintsRegistrar {
-
-    /**
-     * The logger.
-     */
-    private static final Logger LOG = 
LoggerFactory.getLogger(JAXBRuntimeHints.class);
-
-    private static final List<Class<? extends Annotation>> 
JAXB_ROOT_ANNOTATIONS = List.of(XmlRootElement.class,
-            XmlType.class, XmlRegistry.class, XmlJavaTypeAdapter.class, 
XmlSeeAlso.class);
-
-    private static final List<Class<? extends Annotation>> JAXB_ANNOTATIONS = 
List.of(XmlAccessorType.class,
-            XmlAnyAttribute.class, XmlAnyElement.class, 
XmlAttachmentRef.class, XmlAttribute.class, XmlElement.class,
-            XmlElementDecl.class, XmlElementRef.class, XmlElementRefs.class, 
XmlElements.class, XmlElementWrapper.class,
-            XmlEnum.class, XmlEnumValue.class, XmlID.class, XmlIDREF.class, 
XmlInlineBinaryData.class, XmlList.class,
-            XmlMimeType.class, XmlMixed.class, XmlNs.class, XmlRegistry.class, 
XmlRootElement.class, XmlSchema.class,
-            XmlSchemaType.class, XmlSchemaTypes.class, XmlSeeAlso.class, 
XmlTransient.class, XmlType.class,
-            XmlValue.class, XmlJavaTypeAdapter.class, 
XmlJavaTypeAdapters.class);
-
-    private static final List<String> NATIVE_PROXY_DEFINITIONS = List.of(
-            "org.glassfish.jaxb.core.marshaller.CharacterEscapeHandler",
-            "com.sun.xml.txw2.output.CharacterEscapeHandler", 
"org.glassfish.jaxb.core.v2.schemagen.episode.Bindings",
-            "org.glassfish.jaxb.core.v2.schemagen.episode.SchemaBindings",
-            "org.glassfish.jaxb.core.v2.schemagen.episode.Klass",
-            "org.glassfish.jaxb.core.v2.schemagen.episode.Package",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Annotated",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Annotation",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Any",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Appinfo",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.AttrDecls",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.AttributeType",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.ComplexContent",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.ComplexExtension",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.ComplexRestriction",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.ComplexType",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.ComplexTypeHost",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.ComplexTypeModel",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.ContentModelContainer",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Documentation",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Element",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.ExplicitGroup",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.ExtensionType",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.FixedOrDefault",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Import",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.List",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.LocalAttribute",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.LocalElement",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.NestedParticle",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.NoFixedFacet",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Occurs",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Particle",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Redefinable",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Schema",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.SchemaTop",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.SimpleContent",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.SimpleDerivation",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.SimpleExtension",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.SimpleRestriction",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.SimpleRestrictionModel",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.SimpleType",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.SimpleTypeHost",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.TopLevelAttribute",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.TopLevelElement",
-            
"org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.TypeDefParticle",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.TypeHost",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Union",
-            "org.glassfish.jaxb.runtime.v2.schemagen.xmlschema.Wildcard", 
"com.sun.xml.txw2.TypedXmlWriter");
-    private static final List<String> JAXB_RUNTIME_CLASSES = 
List.of("org.glassfish.jaxb.runtime.v2.ContextFactory",
-            "com.sun.xml.internal.stream.XMLInputFactoryImpl", 
"com.sun.xml.internal.stream.XMLOutputFactoryImpl",
-            "com.sun.org.apache.xpath.internal.functions.FuncNot",
-            "org.glassfish.jaxb.core.v2.model.nav.ReflectionNavigator",
-            
"org.glassfish.jaxb.runtime.v2.runtime.property.SingleElementLeafProperty",
-            
"org.glassfish.jaxb.runtime.v2.runtime.property.ArrayElementLeafProperty",
-            
"org.glassfish.jaxb.runtime.v2.runtime.property.SingleElementNodeProperty",
-            
"org.glassfish.jaxb.runtime.v2.runtime.property.SingleReferenceNodeProperty",
-            
"org.glassfish.jaxb.runtime.v2.runtime.property.SingleMapNodeProperty",
-            
"org.glassfish.jaxb.runtime.v2.runtime.property.ArrayElementNodeProperty",
-            
"org.glassfish.jaxb.runtime.v2.runtime.property.ArrayReferenceNodeProperty",
-            
"com.sun.org.apache.xerces.internal.impl.dv.xs.SchemaDVFactoryImpl", 
XmlAccessOrder.class.getName());
-
-    @Override
-    public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
-        List<Class<?>> classes = getClassesByAnnotations(classLoader, 
JAXB_ROOT_ANNOTATIONS);
-        for (Class<?> c : classes) {
-            if (c.isAnnotationPresent(XmlSeeAlso.class)) {
-                XmlSeeAlso annotation = c.getAnnotation(XmlSeeAlso.class);
-                for (Class<?> type : annotation.value()) {
-                    hints.reflection().registerType(type, 
MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS);
-                }
-            }
-            applyIfMatch(c, XmlJavaTypeAdapter.class, 
XmlJavaTypeAdapter::value,
-                    type -> hints.reflection().registerType(type, 
MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
-                            MemberCategory.INVOKE_DECLARED_METHODS, 
MemberCategory.INVOKE_PUBLIC_METHODS,
-                            MemberCategory.DECLARED_FIELDS));
-            hints.reflection().registerType(c, 
MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
-                    MemberCategory.INVOKE_DECLARED_METHODS, 
MemberCategory.INVOKE_PUBLIC_METHODS,
-                    MemberCategory.DECLARED_FIELDS);
-        }
-        boolean classDetected = false;
-        for (String className : getClassesFromIndexes(classLoader)) {
-            registerClassHierarchy(hints, classLoader, className, 
MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
-                    MemberCategory.INTROSPECT_DECLARED_METHODS, 
MemberCategory.DECLARED_FIELDS);
-            classDetected = true;
-        }
-        if (classes.isEmpty() && !classDetected) {
-            return;
-        }
-        // Register all JAXB indexes
-        hints.resources().registerPattern("**/jaxb.index");
-
-        hints.reflection().registerTypeIfPresent(classLoader, 
"jakarta.xml.bind.annotation.W3CDomHandler",
-                MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS);
-        for (Class<?> c : JAXB_ANNOTATIONS) {
-            hints.reflection().registerType(c, 
MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
-                    MemberCategory.INVOKE_DECLARED_METHODS, 
MemberCategory.INVOKE_PUBLIC_METHODS);
-        }
-        hints.proxies().registerJdkProxy(TypeReference.of(XmlSeeAlso.class),
-                
TypeReference.of("org.glassfish.jaxb.core.v2.model.annotation.Locatable"));
-        for (String className : NATIVE_PROXY_DEFINITIONS) {
-            hints.proxies().registerJdkProxy(TypeReference.of(className));
-        }
-        for (String className : JAXB_RUNTIME_CLASSES) {
-            hints.reflection().registerTypeIfPresent(classLoader, className, 
MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
-                    MemberCategory.INVOKE_DECLARED_METHODS, 
MemberCategory.INVOKE_PUBLIC_METHODS);
-        }
-        // Register the JAXB resource bundles
-        hints.reflection().registerTypeIfPresent(classLoader, 
"jakarta.xml.bind.Messages");
-        
hints.resources().registerPattern("jakarta/xml/bind/Messages.properties");
-        hints.reflection().registerTypeIfPresent(classLoader, 
"jakarta.xml.bind.helpers.Messages");
-        
hints.resources().registerPattern("jakarta/xml/bind/helpers/Messages.properties");
-    }
-
-    private static List<String> getClassesFromIndexes(ClassLoader classLoader) 
{
-        List<String> classNames = new ArrayList<>();
-        PathMatchingResourcePatternResolver resolver = new 
PathMatchingResourcePatternResolver(classLoader);
-        try {
-            for (Resource resource : 
resolver.getResources("classpath*:**/jaxb.index")) {
-                String filename = resource.getFilename();
-                if (filename == null || filename.isBlank()) {
-                    continue;
-                }
-                String packageName = getPackageName(resource, "jaxb.index");
-                if (packageName == null) {
-                    LOG.debug("The package name could not be found for the 
resource {}", resource);
-                    continue;
-                }
-                try (BufferedReader reader = new BufferedReader(
-                        new 
StringReader(resource.getContentAsString(StandardCharsets.UTF_8)))) {
-                    String line = reader.readLine();
-                    while (line != null) {
-                        if (line.startsWith("#") || line.isBlank()) {
-                            line = reader.readLine();
-                            continue;
-                        }
-                        String className = "%s%s".formatted(packageName, 
line.trim());
-                        LOG.debug("Found the class {} to register", className);
-                        classNames.add(className);
-                        line = reader.readLine();
-                    }
-                }
-            }
-        } catch (IOException e) {
-            LOG.debug("Could not load the JAXB indexes: {}", e.getMessage());
-        }
-        return classNames;
-    }
-
-    /**
-     * Give the package name of the given resource.
-     *
-     * @param resource
-     *            the resource for which the package name is expected.
-     * @param fileName
-     *            the name of file corresponding to the resource
-     *
-     * @return the package name if it could be found, {@code null} otherwise.
-     *
-     * @throws IOException
-     *             an error occurs while trying to retrieve the package name.
-     */
-    private static String getPackageName(Resource resource, String fileName) 
throws IOException {
-        URL url = resource.getURL();
-        String protocol = url.getProtocol();
-        String packageName = null;
-        if ("jar".equals(protocol)) {
-            String path = url.getPath();
-            String suffix = ".jar!/";
-            int index = path.indexOf(suffix);
-            if (index == -1) {
-                LOG.trace("The jar suffix could not be found in {}", path);
-            } else {
-                packageName = path.substring(index + suffix.length(), 
path.length() - fileName.length());
-            }
-        } else if (resource.isFile()) {
-            File file = resource.getFile();
-            File[] files = file.getParentFile().listFiles((dir, name) -> 
name.endsWith(".class"));
-            if (files != null && files.length > 0) {
-                try (InputStream is = new FileInputStream(files[0])) {
-                    ClassReader reader = new ClassReader(is);
-                    String className = reader.getClassName();
-                    int index = className.lastIndexOf('/');
-                    if (index == -1) {
-                        packageName = "";
-                    } else {
-                        packageName = className.substring(0, index + 1);
-                    }
-                }
-            } else {
-                LOG.trace("No class file could be found in {}", 
file.getParentFile());
-            }
-        }
-        if (packageName != null) {
-            packageName = packageName.replace('/', '.');
-        }
-        return packageName;
-    }
-}
diff --git 
a/components-starter/camel-xml-jaxb-starter/src/main/java/org/apache/camel/xml/jaxb/springboot/graalvm/JAXBSubstitutions.java
 
b/components-starter/camel-xml-jaxb-starter/src/main/java/org/apache/camel/xml/jaxb/springboot/graalvm/JAXBSubstitutions.java
deleted file mode 100644
index 34664e794d6..00000000000
--- 
a/components-starter/camel-xml-jaxb-starter/src/main/java/org/apache/camel/xml/jaxb/springboot/graalvm/JAXBSubstitutions.java
+++ /dev/null
@@ -1,102 +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.xml.jaxb.springboot.graalvm;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.HashMap;
-import java.util.Map;
-
-import jakarta.xml.bind.annotation.XmlSeeAlso;
-
-import com.oracle.svm.core.annotate.Alias;
-import com.oracle.svm.core.annotate.Substitute;
-import com.oracle.svm.core.annotate.TargetClass;
-import org.glassfish.jaxb.core.v2.model.annotation.Locatable;
-import org.glassfish.jaxb.runtime.v2.model.annotation.LocatableAnnotation;
-import 
org.glassfish.jaxb.runtime.v2.model.annotation.RuntimeInlineAnnotationReader;
-
-public class JAXBSubstitutions {
-}
-
-@TargetClass(RuntimeInlineAnnotationReader.class)
-final class SubstituteRuntimeInlineAnnotationReader {
-
-    @Alias
-    private Map<Class<? extends Annotation>, Map<Package, Annotation>> 
packageCache;
-
-    @Substitute
-    public <A extends Annotation> A getFieldAnnotation(Class<A> annotation, 
Field field, Locatable srcPos) {
-        return field.getAnnotation(annotation);
-    }
-
-    @Substitute
-    public Annotation[] getAllFieldAnnotations(Field field, Locatable srcPos) {
-        return field.getAnnotations();
-    }
-
-    @Substitute
-    public <A extends Annotation> A getClassAnnotation(Class<A> a, Class 
clazz, Locatable srcPos) {
-        A ann = ((Class<?>) clazz).getAnnotation(a);
-        return (ann != null && ann.annotationType() == XmlSeeAlso.class) ? 
LocatableAnnotation.create(ann, srcPos)
-                : ann;
-    }
-
-    @Substitute
-    public <A extends Annotation> A getMethodAnnotation(Class<A> annotation, 
Method method, Locatable srcPos) {
-        return method.getAnnotation(annotation);
-    }
-
-    @Substitute
-    public Annotation[] getAllMethodAnnotations(Method method, Locatable 
srcPos) {
-        return method.getAnnotations();
-    }
-
-    @Substitute
-    public <A extends Annotation> A getMethodParameterAnnotation(Class<A> 
annotation, Method method, int paramIndex,
-            Locatable srcPos) {
-        Annotation[] pa = method.getParameterAnnotations()[paramIndex];
-        for (Annotation a : pa) {
-            if (a.annotationType() == annotation)
-                return (A) a;
-        }
-        return null;
-    }
-
-    @SuppressWarnings("unchecked")
-    @Substitute
-    public <A extends Annotation> A getPackageAnnotation(Class<A> a, Class 
clazz, Locatable srcPos) {
-        Package p = clazz.getPackage();
-        if (p == null) {
-            return null;
-        }
-
-        Map<Package, Annotation> cache = packageCache.get(a);
-        if (cache == null) {
-            cache = new HashMap<>();
-            packageCache.put(a, cache);
-        }
-        if (cache.containsKey(p)) {
-            return (A) cache.get(p);
-        } else {
-            A ann = p.getAnnotation(a);
-            cache.put(p, ann);
-            return ann;
-        }
-    }
-}
diff --git 
a/components-starter/camel-xml-jaxb-starter/src/main/resources/META-INF/spring/aot.factories
 
b/components-starter/camel-xml-jaxb-starter/src/main/resources/META-INF/spring/aot.factories
deleted file mode 100644
index a4d96c415be..00000000000
--- 
a/components-starter/camel-xml-jaxb-starter/src/main/resources/META-INF/spring/aot.factories
+++ /dev/null
@@ -1,18 +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.
-## ---------------------------------------------------------------------------
-org.springframework.aot.hint.RuntimeHintsRegistrar=\
-org.apache.camel.xml.jaxb.springboot.JAXBRuntimeHints
diff --git 
a/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/BeanScope.java
 
b/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/BeanScope.java
deleted file mode 100644
index a81dcb4c4d8..00000000000
--- 
a/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/BeanScope.java
+++ /dev/null
@@ -1,27 +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.xml.jaxb.springboot;
-
-import jakarta.xml.bind.annotation.XmlEnum;
-
-@XmlEnum
-public enum BeanScope {
-    Singleton, Request, Prototype;
-
-    BeanScope() {
-    }
-}
diff --git 
a/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/Book.java
 
b/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/Book.java
deleted file mode 100644
index 280e5b1fef2..00000000000
--- 
a/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/Book.java
+++ /dev/null
@@ -1,47 +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.xml.jaxb.springboot;
-
-import jakarta.xml.bind.annotation.XmlElement;
-import jakarta.xml.bind.annotation.XmlRootElement;
-import jakarta.xml.bind.annotation.XmlTransient;
-import jakarta.xml.bind.annotation.XmlType;
-
-@XmlRootElement(name = "book")
-@XmlType(propOrder = { "id", "name", "date" })
-public class Book extends IdentifiedType {
-    private String name;
-    private String author;
-
-    @XmlElement(name = "title")
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    @XmlTransient
-    public void setAuthor(String author) {
-        this.author = author;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public String getAuthor() {
-        return author;
-    }
-}
diff --git 
a/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/IdentifiedType.java
 
b/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/IdentifiedType.java
deleted file mode 100644
index 1720ca2033b..00000000000
--- 
a/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/IdentifiedType.java
+++ /dev/null
@@ -1,45 +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.xml.jaxb.springboot;
-
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlID;
-import jakarta.xml.bind.annotation.XmlType;
-
-import org.apache.camel.spi.Metadata;
-
-@XmlType(name = "identifiedType")
-@XmlAccessorType(XmlAccessType.FIELD)
-public abstract class IdentifiedType {
-    @XmlAttribute
-    @XmlID
-    @Metadata(description = "The id of this node")
-    private String id;
-
-    public IdentifiedType() {
-    }
-
-    public String getId() {
-        return this.id;
-    }
-
-    public void setId(String value) {
-        this.id = value;
-    }
-}
diff --git 
a/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/JAXBRuntimeHintsTest.java
 
b/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/JAXBRuntimeHintsTest.java
deleted file mode 100644
index 309bd118358..00000000000
--- 
a/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/JAXBRuntimeHintsTest.java
+++ /dev/null
@@ -1,57 +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.xml.jaxb.springboot;
-
-import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.springframework.aot.hint.RuntimeHints;
-import org.springframework.aot.hint.predicate.RuntimeHintsPredicates;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-/**
- * Unit tests for {@link JAXBRuntimeHints}.
- */
-class JAXBRuntimeHintsTest {
-    private final RuntimeHints hints = new RuntimeHints();
-
-    @BeforeEach
-    void init() {
-        new JAXBRuntimeHints().registerHints(hints, 
getClass().getClassLoader());
-    }
-
-    @Test
-    void shouldRegisterHintsForJAXB() throws Exception {
-        
assertThat(RuntimeHintsPredicates.resource().forResource("jakarta/xml/bind/Messages.properties"))
-                .accepts(hints);
-        
assertThat(RuntimeHintsPredicates.resource().forResource("org/apache/camel/spring/boot/aot/jaxb.index"))
-                .accepts(hints);
-        
assertThat(RuntimeHintsPredicates.reflection().onType(Book.class)).accepts(hints);
-        assertThat(RuntimeHintsPredicates.reflection().onMethod(Book.class, 
"getName")).accepts(hints);
-        
assertThat(RuntimeHintsPredicates.reflection().onType(IdentifiedType.class)).accepts(hints);
-        
assertThat(RuntimeHintsPredicates.reflection().onMethod(IdentifiedType.class, 
"setId")).accepts(hints);
-        
assertThat(RuntimeHintsPredicates.resource().forResource("org/apache/camel/core/xml/util/jsse/jaxb.index"))
-                .accepts(hints);
-        
assertThat(RuntimeHintsPredicates.reflection().onType(BeanScope.class)).accepts(hints);
-        assertThat(RuntimeHintsPredicates.reflection()
-                
.onMethod("org.glassfish.jaxb.core.v2.model.nav.ReflectionNavigator", 
"getInstance")).accepts(hints);
-        
assertThat(RuntimeHintsPredicates.reflection().onType(USAddress.class)).accepts(hints);
-        
assertThat(RuntimeHintsPredicates.reflection().onType(CollapsedStringAdapter.class)).accepts(hints);
-    }
-}
diff --git 
a/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/USAddress.java
 
b/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/USAddress.java
deleted file mode 100644
index 5b4cf5a9187..00000000000
--- 
a/components-starter/camel-xml-jaxb-starter/src/test/java/org/apache/camel/xml/jaxb/springboot/USAddress.java
+++ /dev/null
@@ -1,177 +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.xml.jaxb.springboot;
-
-import java.math.BigDecimal;
-
-import jakarta.xml.bind.annotation.XmlAccessType;
-import jakarta.xml.bind.annotation.XmlAccessorType;
-import jakarta.xml.bind.annotation.XmlAttribute;
-import jakarta.xml.bind.annotation.XmlElement;
-import jakarta.xml.bind.annotation.XmlType;
-import jakarta.xml.bind.annotation.adapters.CollapsedStringAdapter;
-import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
-
-@XmlAccessorType(XmlAccessType.FIELD)
-@XmlType(name = "USAddress", propOrder = { "name", "street", "city", "state", 
"zip" })
-public class USAddress {
-
-    @XmlElement(required = true)
-    protected String name;
-    @XmlElement(required = true)
-    protected String street;
-    @XmlElement(required = true)
-    protected String city;
-    @XmlElement(required = true)
-    protected String state;
-    @XmlElement(required = true)
-    protected BigDecimal zip;
-    @XmlAttribute
-    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
-    protected String country;
-
-    /**
-     * Gets the value of the name property.
-     *
-     * @return possible object is {@link String }
-     *
-     */
-    public String getName() {
-        return name;
-    }
-
-    /**
-     * Sets the value of the name property.
-     *
-     * @param value
-     *            allowed object is {@link String }
-     *
-     */
-    public void setName(String value) {
-        this.name = value;
-    }
-
-    /**
-     * Gets the value of the street property.
-     *
-     * @return possible object is {@link String }
-     *
-     */
-    public String getStreet() {
-        return street;
-    }
-
-    /**
-     * Sets the value of the street property.
-     *
-     * @param value
-     *            allowed object is {@link String }
-     *
-     */
-    public void setStreet(String value) {
-        this.street = value;
-    }
-
-    /**
-     * Gets the value of the city property.
-     *
-     * @return possible object is {@link String }
-     *
-     */
-    public String getCity() {
-        return city;
-    }
-
-    /**
-     * Sets the value of the city property.
-     *
-     * @param value
-     *            allowed object is {@link String }
-     *
-     */
-    public void setCity(String value) {
-        this.city = value;
-    }
-
-    /**
-     * Gets the value of the state property.
-     *
-     * @return possible object is {@link String }
-     *
-     */
-    public String getState() {
-        return state;
-    }
-
-    /**
-     * Sets the value of the state property.
-     *
-     * @param value
-     *            allowed object is {@link String }
-     *
-     */
-    public void setState(String value) {
-        this.state = value;
-    }
-
-    /**
-     * Gets the value of the zip property.
-     *
-     * @return possible object is {@link java.math.BigDecimal }
-     *
-     */
-    public BigDecimal getZip() {
-        return zip;
-    }
-
-    /**
-     * Sets the value of the zip property.
-     *
-     * @param value
-     *            allowed object is {@link java.math.BigDecimal }
-     *
-     */
-    public void setZip(BigDecimal value) {
-        this.zip = value;
-    }
-
-    /**
-     * Gets the value of the country property.
-     *
-     * @return possible object is {@link String }
-     *
-     */
-    public String getCountry() {
-        if (country == null) {
-            return "US";
-        } else {
-            return country;
-        }
-    }
-
-    /**
-     * Sets the value of the country property.
-     *
-     * @param value
-     *            allowed object is {@link String }
-     *
-     */
-    public void setCountry(String value) {
-        this.country = value;
-    }
-
-}
diff --git 
a/components-starter/camel-xml-jaxb-starter/src/test/resources/org/apache/camel/xml/jaxb/springboot/jaxb.index
 
b/components-starter/camel-xml-jaxb-starter/src/test/resources/org/apache/camel/xml/jaxb/springboot/jaxb.index
deleted file mode 100644
index 31d2b53009d..00000000000
--- 
a/components-starter/camel-xml-jaxb-starter/src/test/resources/org/apache/camel/xml/jaxb/springboot/jaxb.index
+++ /dev/null
@@ -1 +0,0 @@
-BeanScope
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
index 03592509fad..d904ddf8809 100644
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
+++ 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
@@ -48,7 +48,6 @@ import org.apache.camel.spi.StartupConditionStrategy;
 import org.apache.camel.spi.StartupStepRecorder;
 import org.apache.camel.spi.VariableRepository;
 import org.apache.camel.spi.VariableRepositoryFactory;
-import org.apache.camel.spring.boot.aot.CamelRuntimeHints;
 import org.apache.camel.spring.spi.ApplicationContextBeanRepository;
 import org.apache.camel.spring.spi.CamelBeanPostProcessor;
 import org.apache.camel.support.DefaultRegistry;
@@ -82,7 +81,6 @@ import org.springframework.core.env.EnumerablePropertySource;
 import org.springframework.core.env.Environment;
 import org.springframework.core.env.MutablePropertySources;
 
-@ImportRuntimeHints(CamelRuntimeHints.class)
 @Configuration(proxyBeanMethods = false)
 @EnableConfigurationProperties({CamelConfigurationProperties.class, 
CamelStartupConditionConfigurationProperties.class, 
PropertiesComponentConfiguration.class})
 @Import(TypeConversionConfiguration.class)
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/aot/CamelRuntimeHints.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/aot/CamelRuntimeHints.java
deleted file mode 100644
index 96bcd61ab33..00000000000
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/aot/CamelRuntimeHints.java
+++ /dev/null
@@ -1,99 +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.spring.boot.aot;
-
-import static 
org.apache.camel.spring.boot.aot.RuntimeHintsHelper.registerClassHierarchy;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.StringReader;
-import java.nio.charset.StandardCharsets;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.aot.hint.MemberCategory;
-import org.springframework.aot.hint.RuntimeHints;
-import org.springframework.aot.hint.RuntimeHintsRegistrar;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-
-/**
- * {@code CamelRuntimeHints} provide the basic hints for the native 
compilation of a Camel application.
- */
-public final class CamelRuntimeHints implements RuntimeHintsRegistrar {
-
-    /**
-     * The logger.
-     */
-    private static final Logger LOG = 
LoggerFactory.getLogger(CamelRuntimeHints.class);
-
-    @Override
-    public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
-        // Give access to the catalog
-        
hints.resources().registerPattern("org/apache/camel/main/*.properties");
-        // Register all the camel services
-        registerCamelServices(hints, classLoader);
-        // Register collections
-        hints.reflection().registerType(java.util.List.class, 
MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
-                MemberCategory.INVOKE_PUBLIC_METHODS);
-        hints.reflection().registerType(java.util.Collection.class, 
MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
-                MemberCategory.INVOKE_PUBLIC_METHODS);
-    }
-
-    /**
-     * Register all the Camel services that could be found in the given 
classloader.
-     *
-     * @param hints
-     *            the hints contributed so far for the deployment unit
-     * @param classLoader
-     *            the ClassLoader to load classpath resources with, or {@code 
null} for using the thread context class
-     *            loader at the time of actual resource access
-     */
-    private static void registerCamelServices(RuntimeHints hints, ClassLoader 
classLoader) {
-        
hints.resources().registerPattern("META-INF/services/org/apache/camel/**");
-        PathMatchingResourcePatternResolver resolver = new 
PathMatchingResourcePatternResolver(classLoader);
-        try {
-            for (Resource resource : 
resolver.getResources("classpath*:META-INF/services/org/apache/camel/**")) {
-                String filename = resource.getFilename();
-                if (filename == null || filename.isBlank() || 
filename.endsWith(".properties")) {
-                    continue;
-                }
-                try (BufferedReader reader = new BufferedReader(
-                        new 
StringReader(resource.getContentAsString(StandardCharsets.UTF_8)))) {
-                    String line = reader.readLine();
-                    String prefixClass = "class=";
-                    while (line != null) {
-                        if (line.startsWith("#") || line.isBlank()) {
-                            line = reader.readLine();
-                            continue;
-                        }
-                        String className = line.trim();
-                        if (line.startsWith(prefixClass)) {
-                            className = line.substring(prefixClass.length());
-                        }
-                        LOG.debug("Found the class {} to register", className);
-                        registerClassHierarchy(hints, classLoader, className, 
MemberCategory.INVOKE_PUBLIC_CONSTRUCTORS,
-                                MemberCategory.INVOKE_DECLARED_METHODS, 
MemberCategory.INVOKE_PUBLIC_METHODS,
-                                MemberCategory.INTROSPECT_DECLARED_METHODS, 
MemberCategory.INTROSPECT_PUBLIC_METHODS);
-                        line = reader.readLine();
-                    }
-                }
-            }
-        } catch (IOException e) {
-            LOG.debug("Could not load the Camel services: {}", e.getMessage());
-        }
-    }
-}
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/aot/ReflectionHelper.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/aot/ReflectionHelper.java
deleted file mode 100644
index bd673b75683..00000000000
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/aot/ReflectionHelper.java
+++ /dev/null
@@ -1,257 +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.spring.boot.aot;
-
-import java.lang.annotation.Annotation;
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Target;
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Parameter;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.EnumMap;
-import java.util.List;
-import java.util.Set;
-import java.util.function.Consumer;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition;
-import org.springframework.beans.factory.config.BeanDefinition;
-import 
org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
-import org.springframework.core.io.ByteArrayResource;
-import org.springframework.core.io.Resource;
-import org.springframework.core.io.ResourceLoader;
-import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
-import org.springframework.core.type.AnnotationMetadata;
-import org.springframework.core.type.ClassMetadata;
-import org.springframework.core.type.classreading.MetadataReader;
-import org.springframework.core.type.classreading.MetadataReaderFactory;
-import org.springframework.core.type.filter.AnnotationTypeFilter;
-import org.springframework.core.type.filter.TypeFilter;
-import org.springframework.util.ClassUtils;
-import org.springframework.util.ReflectionUtils;
-
-/**
- * {@code ReflectionHelper} utility class providing methods needed for the 
native mode.
- */
-public final class ReflectionHelper {
-
-    /**
-     * The logger.
-     */
-    private static final Logger LOG = 
LoggerFactory.getLogger(ReflectionHelper.class);
-
-    private ReflectionHelper() {
-
-    }
-
-    /**
-     * Apply a specific action anytime the annotation is found in the class 
according to the type of target supported by
-     * the annotation which can be either {@link ElementType#TYPE}, {@link 
ElementType#CONSTRUCTOR},
-     * {@link ElementType#METHOD}, {@link ElementType#FIELD}, or {@link 
ElementType#PARAMETER}.
-     *
-     * @param c
-     *            the target class
-     * @param a
-     *            the target type of annotation
-     * @param getter
-     *            the method allowing to extract the excepted values from the 
annotation
-     * @param onMatch
-     *            the action to perform in case of a match
-     * @param <A>
-     *            the type of the target annotation
-     * @param <T>
-     *            the type of the content extracted from the annotation found
-     */
-    public static <A extends Annotation, T> void applyIfMatch(Class<?> c, 
Class<A> a, Function<A, T> getter,
-            Consumer<T> onMatch) {
-        Set<ElementType> targets = null;
-        if (a.isAnnotationPresent(Target.class)) {
-            targets = Collections.newSetFromMap(new 
EnumMap<>(ElementType.class));
-            
targets.addAll(Arrays.asList(a.getAnnotation(Target.class).value()));
-        }
-        if ((targets == null || targets.contains(ElementType.TYPE)) && 
c.isAnnotationPresent(a)) {
-            onMatch.accept(getter.apply(c.getAnnotation(a)));
-        }
-        boolean checkConstructors = targets == null || 
targets.contains(ElementType.CONSTRUCTOR);
-        boolean checkParameters = targets == null || 
targets.contains(ElementType.PARAMETER);
-        if (checkConstructors || checkParameters) {
-            for (Constructor<?> constructor : c.getDeclaredConstructors()) {
-                if (checkConstructors && constructor.isAnnotationPresent(a)) {
-                    onMatch.accept(getter.apply(constructor.getAnnotation(a)));
-                }
-                if (checkParameters) {
-                    for (Parameter parameter : constructor.getParameters()) {
-                        if (parameter.isAnnotationPresent(a)) {
-                            
onMatch.accept(getter.apply(parameter.getAnnotation(a)));
-                        }
-                    }
-                }
-            }
-        }
-        if (targets == null || targets.contains(ElementType.FIELD)) {
-            ReflectionUtils.doWithFields(c, field -> 
onMatch.accept(getter.apply(field.getAnnotation(a))),
-                    field -> field.isAnnotationPresent(a));
-        }
-        boolean checkMethods = targets == null || 
targets.contains(ElementType.METHOD);
-        if (checkMethods || checkParameters) {
-            ReflectionUtils.doWithMethods(c, method -> {
-                if (checkMethods && method.isAnnotationPresent(a)) {
-                    onMatch.accept(getter.apply(method.getAnnotation(a)));
-                }
-                if (checkParameters) {
-                    for (Parameter parameter : method.getParameters()) {
-                        if (parameter.isAnnotationPresent(a)) {
-                            
onMatch.accept(getter.apply(parameter.getAnnotation(a)));
-                        }
-                    }
-                }
-            });
-        }
-    }
-
-    /**
-     * Give all the classes available in the given class loader that are 
annotated with at least one of the annotations.
-     *
-     * @param classLoader
-     *            the class loader from which the classes to find are loaded
-     * @param annotations
-     *            the target annotations
-     *
-     * @return the list of classes that are annotated with at least one of the 
annotations.
-     */
-    public static List<Class<?>> getClassesByAnnotations(ClassLoader 
classLoader,
-            List<Class<? extends Annotation>> annotations) {
-        return getClassesByFilters(classLoader,
-                
annotations.stream().map(AnnotationTypeFilter::new).collect(Collectors.toList()));
-    }
-
-    /**
-     * Give all the classes available in the given class loader that match 
with at least one of the filters.
-     *
-     * @param classLoader
-     *            the class loader from which the classes to find are loaded
-     * @param includeFilters
-     *            the filters to apply the classes found
-     *
-     * @return a list of classes that match with at least one of the given 
filters
-     */
-    public static List<Class<?>> getClassesByFilters(ClassLoader classLoader, 
List<TypeFilter> includeFilters) {
-        ClassPathScanningCandidateComponentProvider provider = new 
ClassPathScanningCandidateComponentProvider(false) {
-            @Override
-            protected boolean isCandidateComponent(AnnotatedBeanDefinition 
beanDefinition) {
-                return true;
-            }
-        };
-        provider.setResourceLoader(new 
PathMatchingResourcePatternResolver(classLoader));
-        provider.setMetadataReaderFactory(new 
SafeMetadataReaderFactory(provider.getMetadataReaderFactory()));
-        provider.addExcludeFilter((metadata, factory) -> {
-            String className = metadata.getClassMetadata().getClassName();
-            return className.startsWith("org.springframework.") || 
className.startsWith("java.")
-                    || className.startsWith("jakarta.");
-        });
-        for (TypeFilter filter : includeFilters) {
-            provider.addIncludeFilter(filter);
-        }
-        return provider.findCandidateComponents("").stream().map(b -> 
asClass(b, classLoader))
-                .collect(Collectors.toList());
-    }
-
-    /**
-     * Convert the given bean definition into a class.
-     *
-     * @param bean
-     *            the bean definition to convert.
-     * @param classLoader
-     *            the classloader from which the class of the bean is loaded
-     *
-     * @return the class corresponding to the bean definition if it could be 
found, {@code null} otherwise.
-     */
-    private static Class<?> asClass(BeanDefinition bean, ClassLoader 
classLoader) {
-        String beanClassName = bean.getBeanClassName();
-        if (beanClassName == null) {
-            LOG.debug("The name of the class corresponding to the bean '{}' 
could not be found", bean);
-        } else {
-            try {
-                return ClassUtils.forName(beanClassName, classLoader);
-            } catch (ClassNotFoundException | NoClassDefFoundError e) {
-                LOG.debug("The class corresponding to the bean '{}' could not 
be found: {}", bean, e.getMessage());
-            }
-        }
-        return null;
-    }
-
-    /**
-     * {@code SafeMetadataReaderFactory} is a specific {@link 
MetadataReaderFactory} whose methods never throw any
-     * exceptions, if an error occurs while calling the underlying {@link 
MetadataReaderFactory} a debug message is
-     * logged and the default result is returned.
-     */
-    private static class SafeMetadataReaderFactory implements 
MetadataReaderFactory {
-
-        /**
-         * The instance of the default result in case of an error.
-         */
-        private static final MetadataReader DEFAULT = new MetadataReader() {
-            @Override
-            public Resource getResource() {
-                return new ByteArrayResource(new byte[0]);
-            }
-
-            @Override
-            public ClassMetadata getClassMetadata() {
-                return AnnotationMetadata.introspect(Object.class);
-            }
-
-            @Override
-            public AnnotationMetadata getAnnotationMetadata() {
-                return AnnotationMetadata.introspect(Object.class);
-            }
-        };
-        private final MetadataReaderFactory delegate;
-
-        SafeMetadataReaderFactory(MetadataReaderFactory delegate) {
-            this.delegate = delegate;
-        }
-
-        @Override
-        public MetadataReader getMetadataReader(String className) {
-            try {
-                return delegate.getMetadataReader(className);
-            } catch (Exception | NoClassDefFoundError e) {
-                LOG.debug("Could not get the metadata of the class {}", 
className);
-            }
-            return DEFAULT;
-        }
-
-        @Override
-        public MetadataReader getMetadataReader(Resource resource) {
-            try {
-                return delegate.getMetadataReader(resource);
-            } catch (Exception | NoClassDefFoundError e) {
-                LOG.debug("Could not get the metadata of the resource {}", 
resource);
-            }
-            return DEFAULT;
-        }
-
-        @Override
-        public ResourceLoader getResourceLoader() {
-            return delegate.getResourceLoader();
-        }
-    }
-}
diff --git 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/aot/RuntimeHintsHelper.java
 
b/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/aot/RuntimeHintsHelper.java
deleted file mode 100644
index 444eff3bcbf..00000000000
--- 
a/core/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/aot/RuntimeHintsHelper.java
+++ /dev/null
@@ -1,76 +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.spring.boot.aot;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.aot.hint.MemberCategory;
-import org.springframework.aot.hint.RuntimeHints;
-import org.springframework.util.ClassUtils;
-
-public final class RuntimeHintsHelper {
-
-    /**
-     * The logger.
-     */
-    private static final Logger LOG = 
LoggerFactory.getLogger(RuntimeHintsHelper.class);
-
-    private RuntimeHintsHelper() {
-    }
-
-    /**
-     * Register the given class and all its parent classes by applying the 
given member categories.
-     *
-     * @param hints
-     *            the hints contributed so far for the deployment unit
-     * @param classLoader
-     *            the ClassLoader to load classpath resources with, or {@code 
null} for using the thread context class
-     *            loader at the time of actual resource access
-     * @param className
-     *            the name of the class to register
-     * @param memberCategories
-     *            the member categories to apply
-     */
-    public static void registerClassHierarchy(RuntimeHints hints, ClassLoader 
classLoader, String className,
-            MemberCategory... memberCategories) {
-        try {
-            registerClassHierarchy(hints, ClassUtils.forName(className, 
classLoader), memberCategories);
-        } catch (ClassNotFoundException | NoClassDefFoundError e) {
-            LOG.debug("The class {} cannot be found", className);
-        }
-    }
-
-    /**
-     * Register the given class and all its parent classes by applying the 
given member categories.
-     *
-     * @param hints
-     *            the hints contributed so far for the deployment unit
-     * @param clazz
-     *            the class to register
-     * @param memberCategories
-     *            the member categories to apply
-     */
-    public static void registerClassHierarchy(RuntimeHints hints, Class<?> 
clazz, MemberCategory... memberCategories) {
-        if (clazz.isInterface() || clazz.isArray()) {
-            return;
-        }
-        while (clazz != Object.class) {
-            hints.reflection().registerType(clazz, memberCategories);
-            clazz = clazz.getSuperclass();
-        }
-    }
-}
diff --git 
a/core/camel-spring-boot/src/main/resources/META-INF/native-image/org.apache.camel.springboot/camel-spring-boot/native-image.properties
 
b/core/camel-spring-boot/src/main/resources/META-INF/native-image/org.apache.camel.springboot/camel-spring-boot/native-image.properties
deleted file mode 100644
index 88e8e90e1a3..00000000000
--- 
a/core/camel-spring-boot/src/main/resources/META-INF/native-image/org.apache.camel.springboot/camel-spring-boot/native-image.properties
+++ /dev/null
@@ -1,17 +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.
-## ---------------------------------------------------------------------------
-Args = -H:+AddAllCharsets
diff --git 
a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/aot/CamelRuntimeHintsTest.java
 
b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/aot/CamelRuntimeHintsTest.java
deleted file mode 100644
index c74403ab5c6..00000000000
--- 
a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/aot/CamelRuntimeHintsTest.java
+++ /dev/null
@@ -1,56 +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.spring.boot.aot;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.language.simple.SimpleLanguage;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.springframework.aot.hint.RuntimeHints;
-import org.springframework.aot.hint.predicate.RuntimeHintsPredicates;
-
-/**
- * Unit tests for {@link CamelRuntimeHints}.
- */
-class CamelRuntimeHintsTest {
-
-    private final RuntimeHints hints = new RuntimeHints();
-
-    @BeforeEach
-    void init() {
-        new CamelRuntimeHints().registerHints(hints, 
getClass().getClassLoader());
-    }
-
-    @Test
-    void shouldRegisterHintsForCamelServices() throws Exception {
-        
assertThat(RuntimeHintsPredicates.resource().forResource("META-INF/services/org/apache/camel/language/simple"))
-                .accepts(hints);
-        
assertThat(RuntimeHintsPredicates.reflection().onConstructor(SimpleLanguage.class.getConstructor()))
-                .accepts(hints);
-        
assertThat(RuntimeHintsPredicates.reflection().onMethod(SimpleLanguage.class.getMethod("init"))).accepts(hints);
-        assertThat(RuntimeHintsPredicates.reflection()
-                .onMethod(SimpleLanguage.class.getMethod("setCamelContext", 
CamelContext.class))).accepts(hints);
-    }
-
-    @Test
-    void shouldRegisterHintsForCamelCatalog() {
-        
assertThat(RuntimeHintsPredicates.resource().forResource("org/apache/camel/main/components.properties"))
-                .accepts(hints);
-    }
-}
diff --git 
a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/aot/ReflectionHelperTest.java
 
b/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/aot/ReflectionHelperTest.java
deleted file mode 100644
index 21b69553577..00000000000
--- 
a/core/camel-spring-boot/src/test/java/org/apache/camel/spring/boot/aot/ReflectionHelperTest.java
+++ /dev/null
@@ -1,145 +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.spring.boot.aot;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-import java.util.concurrent.atomic.AtomicInteger;
-import org.junit.jupiter.api.Test;
-
-/**
- * Unit tests for {@link ReflectionHelperTest}.
- */
-class ReflectionHelperTest {
-
-    private final AtomicInteger counter = new AtomicInteger();
-
-    @Test
-    void shouldAlwaysApply() {
-        ReflectionHelper.applyIfMatch(Foo.class, All.class, a -> null, x -> 
counter.incrementAndGet());
-        assertThat(counter.get()).isEqualTo(11);
-    }
-
-    @Test
-    void shouldNeverApply() {
-        ReflectionHelper.applyIfMatch(Foo.class, None.class, a -> null, x -> 
counter.incrementAndGet());
-        assertThat(counter.get()).isZero();
-    }
-
-    @Test
-    void shouldApplyToClassOnly() {
-        ReflectionHelper.applyIfMatch(Foo.class, OnlyType.class, a -> null, x 
-> counter.incrementAndGet());
-        assertThat(counter.get()).isEqualTo(1);
-    }
-
-    @Test
-    void shouldApplyToOneSpecificConstructor() {
-        ReflectionHelper.applyIfMatch(Foo.class, OnlyConstructor.class, a -> 
null, x -> counter.incrementAndGet());
-        assertThat(counter.get()).isEqualTo(1);
-    }
-
-    @Test
-    void shouldApplyToOneSpecificField() {
-        ReflectionHelper.applyIfMatch(Foo.class, OnlyField.class, a -> null, x 
-> counter.incrementAndGet());
-        assertThat(counter.get()).isEqualTo(1);
-    }
-
-    @Test
-    void shouldApplyToOneSpecificMethod() {
-        ReflectionHelper.applyIfMatch(Foo.class, OnlyMethod.class, a -> null, 
x -> counter.incrementAndGet());
-        assertThat(counter.get()).isEqualTo(1);
-    }
-
-    @Test
-    void shouldApplyToSpecificParameters() {
-        ReflectionHelper.applyIfMatch(Foo.class, OnlyParameter.class, a -> 
null, x -> counter.incrementAndGet());
-        assertThat(counter.get()).isEqualTo(2);
-    }
-
-    @OnlyType
-    @All
-    public static class Foo {
-
-        @All
-        private String someField1;
-        @OnlyField
-        @All
-        private String someField2;
-
-        @All
-        private Foo() {
-        }
-
-        @OnlyConstructor
-        @All
-        private Foo(@OnlyParameter @All String someParam1, @All String 
someParam2) {
-        }
-
-        @All
-        private void someMethod1(@All String someParam1, @All @OnlyParameter 
String someParam2) {
-        }
-
-        @OnlyMethod
-        @All
-        private void someMethod2() {
-        }
-    }
-
-    @Retention(RetentionPolicy.RUNTIME)
-    public @interface All {
-
-    }
-
-    @Retention(RetentionPolicy.RUNTIME)
-    public @interface None {
-
-    }
-
-    @Target(ElementType.TYPE)
-    @Retention(RetentionPolicy.RUNTIME)
-    public @interface OnlyType {
-
-    }
-
-    @Target(ElementType.FIELD)
-    @Retention(RetentionPolicy.RUNTIME)
-    public @interface OnlyField {
-
-    }
-
-    @Target(ElementType.CONSTRUCTOR)
-    @Retention(RetentionPolicy.RUNTIME)
-    public @interface OnlyConstructor {
-
-    }
-
-    @Target(ElementType.METHOD)
-    @Retention(RetentionPolicy.RUNTIME)
-    public @interface OnlyMethod {
-
-    }
-
-    @Target(ElementType.PARAMETER)
-    @Retention(RetentionPolicy.RUNTIME)
-    public @interface OnlyParameter {
-
-    }
-}
diff --git 
a/dsl-starter/camel-java-joor-dsl-starter/src/main/docs/java-joor-dsl.json 
b/dsl-starter/camel-java-joor-dsl-starter/src/main/docs/java-joor-dsl.json
index 938fe319b6b..309073cd317 100644
--- a/dsl-starter/camel-java-joor-dsl-starter/src/main/docs/java-joor-dsl.json
+++ b/dsl-starter/camel-java-joor-dsl-starter/src/main/docs/java-joor-dsl.json
@@ -10,6 +10,6 @@
     "supportLevel": "Stable",
     "groupId": "org.apache.camel",
     "artifactId": "camel-java-joor-dsl",
-    "version": "4.7.0-SNAPSHOT"
+    "version": "4.19.0-SNAPSHOT"
   }
 }
diff --git a/dsl-starter/camel-xml-io-dsl-starter/src/main/docs/xml-io-dsl.json 
b/dsl-starter/camel-xml-io-dsl-starter/src/main/docs/xml-io-dsl.json
index a37e41ceecf..a83b81de8d2 100644
--- a/dsl-starter/camel-xml-io-dsl-starter/src/main/docs/xml-io-dsl.json
+++ b/dsl-starter/camel-xml-io-dsl-starter/src/main/docs/xml-io-dsl.json
@@ -10,6 +10,6 @@
     "supportLevel": "Stable",
     "groupId": "org.apache.camel",
     "artifactId": "camel-xml-io-dsl",
-    "version": "4.7.0-SNAPSHOT"
+    "version": "4.19.0-SNAPSHOT"
   }
 }
diff --git 
a/dsl-starter/camel-xml-jaxb-dsl-starter/src/main/docs/xml-jaxb-dsl.json 
b/dsl-starter/camel-xml-jaxb-dsl-starter/src/main/docs/xml-jaxb-dsl.json
index 1d0a33b8006..ce6d20477e2 100644
--- a/dsl-starter/camel-xml-jaxb-dsl-starter/src/main/docs/xml-jaxb-dsl.json
+++ b/dsl-starter/camel-xml-jaxb-dsl-starter/src/main/docs/xml-jaxb-dsl.json
@@ -10,6 +10,6 @@
     "supportLevel": "Stable",
     "groupId": "org.apache.camel",
     "artifactId": "camel-xml-jaxb-dsl",
-    "version": "4.7.0-SNAPSHOT"
+    "version": "4.19.0-SNAPSHOT"
   }
 }
diff --git 
a/dsl-starter/camel-xml-jaxb-dsl-starter/src/main/java/org/apache/camel/dsl/xml/jaxb/springboot/aot/XMLDSLRuntimeHints.java
 
b/dsl-starter/camel-xml-jaxb-dsl-starter/src/main/java/org/apache/camel/dsl/xml/jaxb/springboot/aot/XMLDSLRuntimeHints.java
deleted file mode 100644
index 2cfac6ab430..00000000000
--- 
a/dsl-starter/camel-xml-jaxb-dsl-starter/src/main/java/org/apache/camel/dsl/xml/jaxb/springboot/aot/XMLDSLRuntimeHints.java
+++ /dev/null
@@ -1,30 +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.dsl.xml.jaxb.springboot.aot;
-
-import java.util.ArrayList;
-
-import org.springframework.aot.hint.MemberCategory;
-import org.springframework.aot.hint.RuntimeHints;
-import org.springframework.aot.hint.RuntimeHintsRegistrar;
-
-public final class XMLDSLRuntimeHints implements RuntimeHintsRegistrar {
-    @Override
-    public void registerHints(RuntimeHints hints, ClassLoader classLoader) {
-        hints.reflection().registerType(ArrayList.class, 
MemberCategory.INVOKE_DECLARED_CONSTRUCTORS);
-    }
-}
diff --git 
a/dsl-starter/camel-xml-jaxb-dsl-starter/src/main/resources/META-INF/spring/aot.factories
 
b/dsl-starter/camel-xml-jaxb-dsl-starter/src/main/resources/META-INF/spring/aot.factories
deleted file mode 100644
index ec6037e214e..00000000000
--- 
a/dsl-starter/camel-xml-jaxb-dsl-starter/src/main/resources/META-INF/spring/aot.factories
+++ /dev/null
@@ -1,18 +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.
-## ---------------------------------------------------------------------------
-org.springframework.aot.hint.RuntimeHintsRegistrar=\
-org.apache.camel.dsl.xml.jaxb.springboot.aot.XMLDSLRuntimeHints
diff --git a/dsl-starter/camel-yaml-dsl-starter/src/main/docs/yaml-io-dsl.json 
b/dsl-starter/camel-yaml-dsl-starter/src/main/docs/yaml-io-dsl.json
new file mode 100644
index 00000000000..806cf26c0e2
--- /dev/null
+++ b/dsl-starter/camel-yaml-dsl-starter/src/main/docs/yaml-io-dsl.json
@@ -0,0 +1,15 @@
+{
+  "other": {
+    "kind": "other",
+    "name": "yaml-io-dsl",
+    "title": "YAML DSL",
+    "description": "Camel YAML DSL with camel-yaml-io",
+    "deprecated": false,
+    "firstVersion": "4.0.0",
+    "label": "dsl",
+    "supportLevel": "Stable",
+    "groupId": "org.apache.camel",
+    "artifactId": "camel-yaml-io-dsl",
+    "version": "4.19.0-SNAPSHOT"
+  }
+}
diff --git a/pom.xml b/pom.xml
index 2edb23ba72a..b3e88d2a43e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -119,7 +119,6 @@
 
         <!-- versions -->
         <avro-version>1.12.0</avro-version>
-        <graal-sdk-version>25.0.2</graal-sdk-version>
         <jakarta-jaxb-version>4.0.5</jakarta-jaxb-version>
         <jaxb-version>2.3.0</jaxb-version>
         <license-maven-plugin-version>5.0.0</license-maven-plugin-version>

Reply via email to