All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.quarkus.jaxp.deployment.JaxpProcessor Maven / Gradle / Ivy

There is a newer version: 3.15.0
Show newest version
package io.quarkus.jaxp.deployment;

import java.util.function.Consumer;
import java.util.stream.Stream;

import io.quarkus.deployment.annotations.BuildProducer;
import io.quarkus.deployment.annotations.BuildStep;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
import io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBundleBuildItem;
import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;

class JaxpProcessor {

    @BuildStep
    void reflectiveClasses(BuildProducer reflectiveClass) {
        reflectiveClass
                .produce(ReflectiveClassBuildItem.builder("com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl",
                        "com.sun.org.apache.xerces.internal.jaxp.datatype.DatatypeFactoryImpl",
                        "com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl",
                        "com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl",
                        "com.sun.org.apache.xerces.internal.parsers.SAXParser",
                        "com.sun.org.apache.xml.internal.utils.FastStringBuffer").build());

        reflectiveClass.produce(ReflectiveClassBuildItem.builder("com.sun.xml.internal.stream.XMLInputFactoryImpl",
                "com.sun.xml.internal.stream.XMLOutputFactoryImpl",
                "com.sun.org.apache.xpath.internal.functions.FuncNot",
                "com.sun.org.apache.xerces.internal.impl.dv.xs.SchemaDVFactoryImpl",
                "javax.xml.namespace.QName").methods().build());
    }

    @BuildStep
    void resourceBundles(BuildProducer resourceBundle) {
        Consumer resourceBundleItemProducer = bundleName -> resourceBundle
                .produce(new NativeImageResourceBundleBuildItem(bundleName, "java.xml"));
        Stream.of(
                "com.sun.org.apache.xml.internal.serializer.utils.SerializerMessages",
                "com.sun.org.apache.xml.internal.res.XMLErrorResources",
                "com.sun.org.apache.xerces.internal.impl.msg.SAXMessages",
                "com.sun.org.apache.xerces.internal.impl.msg.XMLMessages",
                "com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages",
                "com.sun.org.apache.xerces.internal.impl.xpath.regex.message")
                .forEach(resourceBundleItemProducer);
    }

    @BuildStep
    void resources(BuildProducer resource) {

        Stream.of(
                "html",
                "text",
                "xml",
                "unknown")
                .map(s -> "com/sun/org/apache/xml/internal/serializer/output_" + s + ".properties")
                .map(NativeImageResourceBuildItem::new)
                .forEach(resource::produce);

    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy