# Conditionally build with a minimal dependency set %bcond_with jp_minimal Name: jaxb Version: 2.3.3 Release: 1%{?dist} Summary: JAXB Reference Implementation # EDL-1.0 license is BSD-3-clause License: BSD URL: https://github.com/eclipse-ee4j/jaxb-ri Source0: https://github.com/eclipse-ee4j/jaxb-ri/archive/%{version}-RI.tar.gz # Avoid hard runtime dep on istack-commons from the main implementation jar Patch0: 0001-Avoid-runtime-dependency-on-istack-commons-from-main.patch BuildRequires: maven-local BuildRequires: mvn(com.sun.activation:jakarta.activation) BuildRequires: mvn(jakarta.activation:jakarta.activation-api) BuildRequires: mvn(jakarta.xml.bind:jakarta.xml.bind-api) BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin) BuildRequires: mvn(org.apache.maven.plugins:maven-source-plugin) BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin) %if %{without jp_minimal} BuildRequires: mvn(com.sun.istack:istack-commons-runtime) BuildRequires: mvn(com.sun.istack:istack-commons-tools) BuildRequires: mvn(com.sun.xml.dtd-parser:dtd-parser) BuildRequires: mvn(junit:junit) BuildRequires: mvn(org.apache.ant:ant) BuildRequires: mvn(org.apache.maven.plugins:maven-failsafe-plugin) BuildRequires: mvn(xml-resolver:xml-resolver) BuildRequires: mvn(xmlunit:xmlunit) %endif %global obs_vr 2.3.3-1 BuildArch: noarch %description GlassFish JAXB Reference Implementation. %package runtime Summary: JAXB Runtime # Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 Provides: glassfish-jaxb = %{version}-%{release} Obsoletes: glassfish-jaxb < %{obs_vr} Provides: glassfish-jaxb-runtime = %{version}-%{release} Obsoletes: glassfish-jaxb-runtime < %{obs_vr} # -core subpackage was merged into -runtime during F33 Provides: glassfish-jaxb-core = %{version}-%{release} Obsoletes: glassfish-jaxb-core < %{obs_vr} # Obsolete module gone away for good Obsoletes: glassfish-jaxb1-impl < %{obs_vr} # Unable to ship any longer due to missing dep: org.checkerframework:compiler Obsoletes: glassfish-jaxb-jxc < %{obs_vr} # Disable javadocs for now, due to https://github.com/fedora-java/xmvn/issues/58 Obsoletes: glassfish-jaxb-javadoc < %{obs_vr} # No longer shipping parent pom packages Obsoletes: glassfish-jaxb-codemodel-parent < %{obs_vr} Obsoletes: glassfish-jaxb-external-parent < %{obs_vr} Obsoletes: glassfish-jaxb-parent < %{obs_vr} Obsoletes: glassfish-jaxb-runtime-parent < %{obs_vr} Obsoletes: glassfish-jaxb-txw-parent < %{obs_vr} %if %{with jp_minimal} # Obsolete packages that are not shipped in the minimal build Obsoletes: glassfish-jaxb-bom < %{obs_vr} Obsoletes: glassfish-jaxb-bom-ext < %{obs_vr} Obsoletes: glassfish-jaxb-codemodel < %{obs_vr} Obsoletes: glassfish-jaxb-codemodel-annotation-compiler < %{obs_vr} Obsoletes: glassfish-jaxb-rngom < %{obs_vr} Obsoletes: glassfish-jaxb-txwc2 < %{obs_vr} Obsoletes: glassfish-jaxb-xjc < %{obs_vr} Obsoletes: %{name}-bom < %{obs_vr} Obsoletes: %{name}-bom-ext < %{obs_vr} Obsoletes: %{name}-codemodel < %{obs_vr} Obsoletes: %{name}-codemodel-annotation-compiler < %{obs_vr} Obsoletes: %{name}-rngom < %{obs_vr} Obsoletes: %{name}-txwc2 < %{obs_vr} Obsoletes: %{name}-xjc < %{obs_vr} Obsoletes: %{name}-xsom < %{obs_vr} Obsoletes: %{name}-relaxng-datatype < %{obs_vr} %endif %description runtime JAXB (JSR 222) Reference Implementation %package txw2 Summary: TXW2 Runtime # Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 Provides: glassfish-jaxb-txw2 = %{version}-%{release} Obsoletes: glassfish-jaxb-txw2 < %{obs_vr} %description txw2 TXW is a library that allows you to write XML documents. %package impl Summary: Old JAXB Runtime %description impl Old JAXB Runtime module. Contains sources required for runtime processing. Standalone bundle suitable for use in OSGi runtimes. %if %{without jp_minimal} %package codemodel Summary: Codemodel Core # Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 Provides: glassfish-jaxb-codemodel = %{version}-%{release} Obsoletes: glassfish-jaxb-codemodel < %{obs_vr} %description codemodel The core functionality of the CodeModel java source code generation library. %package codemodel-annotation-compiler Summary: Codemodel Annotation Compiler # Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 Provides: glassfish-jaxb-codemodel-annotation-compiler = %{version}-%{release} Obsoletes: glassfish-jaxb-codemodel-annotation-compiler < %{obs_vr} %description codemodel-annotation-compiler The annotation compiler ant task for the CodeModel java source code generation library. %package bom Summary: JAXB BOM # Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 Provides: glassfish-jaxb-bom = %{version}-%{release} Obsoletes: glassfish-jaxb-bom < %{obs_vr} %description bom JAXB Bill of Materials (BOM) %package bom-ext Summary: JAXB BOM with all dependencies # Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 Provides: glassfish-jaxb-bom-ext = %{version}-%{release} Obsoletes: glassfish-jaxb-bom-ext < %{obs_vr} %description bom-ext JAXB Bill of Materials (BOM) with all dependencies. %package xjc Summary: JAXB XJC # Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 Provides: glassfish-jaxb-xjc = %{version}-%{release} Obsoletes: glassfish-jaxb-xjc < %{obs_vr} %description xjc JAXB Binding Compiler. Contains source code needed for binding customization files into java sources. In other words: the tool to generate java classes for the given xml representation. %package rngom Summary: RELAX NG Object Model/Parser # Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 Provides: glassfish-jaxb-rngom = %{version}-%{release} Obsoletes: glassfish-jaxb-rngom < %{obs_vr} %description rngom This package contains RELAX NG Object Model/Parser. %package txwc2 Summary: TXW2 Compiler # Package renamed from glassfish-jaxb with version 2.3.3-1 in F33 Provides: glassfish-jaxb-txwc2 = %{version}-%{release} Obsoletes: glassfish-jaxb-txwc2 < %{obs_vr} %description txwc2 JAXB schema generator. The tool to generate XML schema based on java classes. %package xsom Summary: XML Schema Object Model %description xsom XML Schema Object Model (XSOM) is a Java library that allows applications to easily parse XML Schema documents and inspect information in them. It is expected to be useful for applications that need to take XML Schema as an input. %package relaxng-datatype Summary: RelaxNG Datatype %description relaxng-datatype RelaxNG Datatype library. %endif %prep %setup -q -n jaxb-ri-%{version}-RI # Avoid unnecessary runtime dependency on istack commons %patch0 -p1 pushd jaxb-ri # Remove unnecessary dep on ee4j parent pom (it adds nothing to our downstream builds) %pom_remove_parent boms/bom codemodel external xsom # Fix dep on xml resolver %pom_change_dep -r com.sun.org.apache.xml.internal:resolver xml-resolver:xml-resolver:1.2 sed -i -e 's/com\.sun\.org\.apache\.xml\.internal\.resolver/org.apache.xml.resolver/' xjc/src/main/java/com/sun/tools/xjc/CatalogUtil.java # Plug-ins not useful for RPM builds %pom_remove_plugin -r :buildnumber-maven-plugin %pom_remove_plugin -r :maven-enforcer-plugin # Disable unneeded extra OSGi bundles %pom_disable_module xjc bundles %pom_disable_module jxc bundles %pom_disable_module ri bundles %pom_disable_module osgi bundles # Missing dep in Fedora: org.checkerframework:compiler %pom_disable_module jxc %if %{with jp_minimal} # For minimal build disable all modules with extra deps %pom_disable_module external %pom_disable_module compiler txw %pom_disable_module xjc %pom_disable_module xsom %pom_disable_module codemodel # Don't run tests for minimal build %pom_remove_plugin -r :maven-failsafe-plugin %endif # These packages not yet proper JPMS modules in Fedora # TODO: remove this when staxex, fastinfoset are updated %pom_remove_dep org.jvnet.staxex:stax-ex runtime/impl bundles/runtime %pom_remove_dep com.sun.xml.fastinfoset:FastInfoset runtime/impl bundles/runtime rm runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/unmarshaller/{FastInfoset,StAXEx}Connector.java rm runtime/impl/src/main/java/com/sun/xml/bind/v2/runtime/output/{FastInfoset,StAXEx}StreamWriterOutput.java sed -i -e '/org.jvnet.staxex/d' -e '/com.sun.xml.fastinfoset/d' runtime/impl/src/main/java/module-info.java bundles/runtime/src/main/java/module-info.java # Ignore tests that require Internet connections sed -i -e 's/void testParse/void ignoreTestParse/' xsom/src/test/java/XSOMParserTest.java # Ignore tests that require an ancient version of javaparser (version in Fedora is too new) %pom_remove_dep com.google.code.javaparser:javaparser codemodel/codemodel rm codemodel/codemodel/src/test/java/com/sun/codemodel/tests/JDefinedClassInstanceInitTest.java # Ignore tests requiring org.jmockit:jmockit which is not in Fedora %pom_remove_dep -r org.jmockit:jmockit rm xjc/src/test/java/com/sun/tools/xjc/addon/code_injector/PluginImplTest.java # Missing test dep for OSGi tests %pom_remove_plugin org.apache.felix:maven-junit4osgi-plugin bundles/runtime # Compatibility aliases %mvn_alias org.glassfish.jaxb:jaxb-xjc "com.sun.xml.bind:jaxb-xjc" %mvn_alias org.glassfish.jaxb:jaxb-runtime org.glassfish.jaxb:jaxb-core # Don't install aggregator and parent poms %mvn_package com.sun.xml.bind.mvn: __noinstall %mvn_package :::sources __noinstall %if %{with jp_minimal} # Don't install aggregator poms or boms for minimal build %mvn_package :jaxb-bom* __noinstall %endif popd %build pushd jaxb-ri %if %{with jp_minimal} # Don't run tests for minimal build %mvn_build -j -s -f -- -Ddev -DbuildNumber=unknown -Drelaxng.version=%{version} %else %mvn_build -j -s -- -Ddev -DbuildNumber=unknown -Drelaxng.version=%{version} %endif popd %install pushd jaxb-ri %mvn_install popd %files runtime -f jaxb-ri/.mfiles-jaxb-runtime %license LICENSE.md NOTICE.md %files txw2 -f jaxb-ri/.mfiles-txw2 %license LICENSE.md NOTICE.md %files impl -f jaxb-ri/.mfiles-jaxb-impl %license LICENSE.md NOTICE.md %if %{without jp_minimal} %files codemodel -f jaxb-ri/.mfiles-codemodel %license LICENSE.md NOTICE.md %files codemodel-annotation-compiler -f jaxb-ri/.mfiles-codemodel-annotation-compiler %files bom -f jaxb-ri/.mfiles-jaxb-bom %license LICENSE.md NOTICE.md %files bom-ext -f jaxb-ri/.mfiles-jaxb-bom-ext %files xjc -f jaxb-ri/.mfiles-jaxb-xjc %files rngom -f jaxb-ri/.mfiles-rngom %license LICENSE.md NOTICE.md %files txwc2 -f jaxb-ri/.mfiles-txwc2 %license LICENSE.md NOTICE.md %files xsom -f jaxb-ri/.mfiles-xsom %files relaxng-datatype -f jaxb-ri/.mfiles-relaxng-datatype %endif %changelog * Tue Aug 04 2020 Mat Booth - 2.3.3-1 - Update to latest upstream release - Disable javadocs for now, due to https://github.com/fedora-java/xmvn/issues/58 - Upstream moved to eclipse-ee4j and implementation license changed to BSD (EDL) - Enable tests, don't unnecessarily ship parent poms - Rename package from glassfish-jaxb