# Conditionally build with a minimal dependency set
%bcond_with jp_minimal
Name: glassfish-jaxb
Version: 2.2.11
Release: 15%{?dist}
Summary: JAXB Reference Implementation
License: CDDL-1.1 and GPLv2 with exceptions
URL: http://jaxb.java.net
Source0: https://jaxb.java.net/%{version}/jaxb-ri-%{version}.src.zip
Patch0: 0001-Avoid-unnecessary-dep-on-istack-commons.patch
Patch1: 0002-Port-to-latest-version-of-args4j.patch
BuildRequires: maven-local
BuildRequires: mvn(javax.xml.bind:jaxb-api)
BuildRequires: mvn(net.java:jvnet-parent:pom:)
BuildRequires: mvn(org.apache.felix:maven-bundle-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-dependency-plugin)
BuildRequires: mvn(org.apache.maven.plugins:maven-shade-plugin)
BuildRequires: mvn(org.codehaus.mojo:build-helper-maven-plugin)
%if %{without jp_minimal}
BuildRequires: mvn(args4j:args4j)
BuildRequires: mvn(com.sun.istack:istack-commons-runtime)
BuildRequires: mvn(com.sun.istack:istack-commons-tools)
BuildRequires: mvn(com.sun:tools)
BuildRequires: mvn(com.sun.xml.dtd-parser:dtd-parser)
BuildRequires: mvn(com.sun.xml.fastinfoset:FastInfoset)
BuildRequires: mvn(com.sun.xsom:xsom)
BuildRequires: mvn(org.apache.ant:ant)
BuildRequires: mvn(org.jvnet.staxex:stax-ex)
BuildRequires: mvn(relaxngDatatype:relaxngDatatype)
%endif
Requires: %{name}-core = %{version}-%{release}
Requires: %{name}-runtime = %{version}-%{release}
Requires: %{name}-txw2 = %{version}-%{release}
%if %{without jp_minimal}
Requires: %{name}-bom = %{version}-%{release}
Requires: %{name}-bom-ext = %{version}-%{release}
Requires: %{name}-codemodel = %{version}-%{release}
Requires: %{name}-codemodel-annotation-compiler = %{version}-%{release}
Requires: %{name}-codemodel-parent = %{version}-%{release}
Requires: %{name}-external-parent = %{version}-%{release}
Requires: %{name}-jxc = %{version}-%{release}
Requires: %{name}-parent = %{version}-%{release}
Requires: %{name}-rngom = %{version}-%{release}
Requires: %{name}-runtime-parent = %{version}-%{release}
Requires: %{name}-txwc2 = %{version}-%{release}
Requires: %{name}-txw-parent = %{version}-%{release}
Requires: %{name}-xjc = %{version}-%{release}
%endif
Obsoletes: glassfish-jaxb1-impl < 2.2.11-12
BuildArch: noarch
%description
GlassFish JAXB Reference Implementation.
%package core
Summary: JAXB Core
%description core
JAXB Core module. Contains sources required by XJC, JXC and Runtime
modules.
%package runtime
Summary: JAXB Runtime
%description runtime
JAXB (JSR 222) Reference Implementation
%package txw2
Summary: TXW2 Runtime
%description txw2
TXW is a library that allows you to write XML documents.
%if %{without jp_minimal}
%package codemodel
Summary: Codemodel Core
%description codemodel
The core functionality of the CodeModel java source code generation
library.
%package codemodel-annotation-compiler
Summary: Codemodel Annotation Compiler
%description codemodel-annotation-compiler
The annotation compiler ant task for the CodeModel java source code
generation library.
%package bom
Summary: JAXB BOM
%description bom
JAXB Bill of Materials (BOM)
%package bom-ext
Summary: JAXB BOM with all dependencies
%description bom-ext
JAXB Bill of Materials (BOM) with all dependencies.
%package codemodel-parent
Summary: Codemodel parent POM
%description codemodel-parent
This package contains codemodel parent POM.
%package external-parent
Summary: JAXB External parent POM
%description external-parent
JAXB External parent POM.
%package jxc
Summary: JAXB schema generator
%description jxc
The tool to generate XML schema based on java classes.
%package parent
Summary: JAXB parent POM
%description parent
This package contains parent POM.
%package runtime-parent
Summary: JAXB Runtime parent POM
%description runtime-parent
This package contains Runtime parent POM.
%package txw-parent
Summary: JAXB TXW parent POM
%description txw-parent
This package contains TXW parent POM.
%package xjc
Summary: JAXB XJC
%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
%description rngom
This package contains RELAX NG Object Model/Parser.
%package txwc2
Summary: TXW2 Compiler
%description txwc2
JAXB schema generator. The tool to generate XML schema based on java
classes.
%endif
%package javadoc
Summary: Javadocs for %{name}
%description javadoc
This package contains the API documentation for %{name}.
%prep
%setup -q -c
%if %{with jp_minimal}
%patch0 -p1
%endif
%patch1 -p1
# Disable unneeded OSGi bundles
%pom_disable_module xjc bundles
%pom_disable_module jxc bundles
%pom_disable_module ri bundles
%pom_disable_module osgi bundles
%pom_disable_module core bundles
# Fix jar plug-in usage for OSGi bundles
%pom_xpath_replace "pom:useDefaultManifestFile" "
\${project.build.outputDirectory}/META-INF/MANIFEST.MF
" bundles/core bundles/runtime
# Make javax.activation an optional dep
%pom_xpath_inject "pom:configuration/pom:instructions" "
javax.activation;resolution:=optional,*" bundles/runtime
# Disable ancient jaxb1 runtime
%pom_disable_module jaxb1 runtime
# Fix hard-coded tools location
%pom_remove_dep com.sun:tools
%pom_add_dep_mgmt com.sun:tools
%pom_remove_dep com.sun:tools jxc
%pom_add_dep com.sun:tools jxc
# Plug-ins not useful for RPM builds
%pom_remove_plugin :buildnumber-maven-plugin
%pom_remove_plugin :gfnexus-maven-plugin
%pom_remove_plugin :maven-enforcer-plugin
%pom_remove_plugin :maven-site-plugin
%pom_remove_plugin :maven-source-plugin jxc
%pom_remove_plugin :maven-source-plugin xjc
%if %{with jp_minimal}
# For minimal build disable all modules with extra deps
%pom_disable_module codemodel
%pom_disable_module external
%pom_disable_module jxc
%pom_disable_module compiler txw
%pom_disable_module xjc
# For minimal build of impl module, don't compile in support for extra deps
%pom_remove_dep org.jvnet.staxex:stax-ex runtime/impl
%pom_remove_dep com.sun.xml.fastinfoset:FastInfoset runtime/impl
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
%endif
%mvn_alias org.glassfish.jaxb:jaxb-xjc "com.sun.xml.bind:jaxb-xjc"
# Package OSGi version of runtime with the non-OSGi version
%mvn_package com.sun.xml.bind:jaxb-impl jaxb-runtime
# Don't install bundles parent pom
%mvn_package com.sun.xml.bind.mvn:jaxb-bundles __noinstall
%if %{with jp_minimal}
# Don't install aggregator poms or boms for minimal build
%mvn_package com.sun.xml.bind.mvn: __noinstall
%mvn_package :jaxb-bom* __noinstall
%endif
%build
%mvn_build -f -s -- -Ddev -DbuildNumber=unknown
%install
%mvn_install
%files
%license License.txt licenceheader.txt License.html
%files core -f .mfiles-jaxb-core
%license License.txt licenceheader.txt License.html
%files runtime -f .mfiles-jaxb-runtime
%license License.txt licenceheader.txt License.html
%files txw2 -f .mfiles-txw2
%license License.txt licenceheader.txt License.html
%if %{without jp_minimal}
%files codemodel -f .mfiles-codemodel
%license License.txt licenceheader.txt License.html
%files codemodel-annotation-compiler -f .mfiles-codemodel-annotation-compiler
%files bom -f .mfiles-jaxb-bom
%license License.txt licenceheader.txt License.html
%files bom-ext -f .mfiles-jaxb-bom-ext
%files codemodel-parent -f .mfiles-jaxb-codemodel-parent
%files external-parent -f .mfiles-jaxb-external-parent
%files jxc -f .mfiles-jaxb-jxc
%license License.txt licenceheader.txt License.html
%files parent -f .mfiles-jaxb-parent
%files runtime-parent -f .mfiles-jaxb-runtime-parent
%files txw-parent -f .mfiles-jaxb-txw-parent
%files xjc -f .mfiles-jaxb-xjc
%files rngom -f .mfiles-rngom
%license License.txt licenceheader.txt License.html
%files txwc2 -f .mfiles-txwc2
%license License.txt licenceheader.txt License.html
%endif
%files javadoc -f .mfiles-javadoc
%license License.txt licenceheader.txt License.html
%changelog
* Thu Jul 25 2019 Fedora Release Engineering - 2.2.11-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri May 10 2019 Mat Booth - 2.2.11-14
- Make javax.activation an optional dep in OSGi metadata
* Fri May 10 2019 Mat Booth - 2.2.11-13
- Add conditional build for reduced dependency set
* Thu May 09 2019 Mat Booth - 2.2.11-12
- Disable ancient jaxb1 runtime
- Enable OSGi bundle version of the runtime
- Spec file clean up
* Thu Jan 31 2019 Fedora Release Engineering - 2.2.11-11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Fri Jul 13 2018 Fedora Release Engineering - 2.2.11-10
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Fri May 25 2018 Michael Simacek - 2.2.11-9
- Reduce build deps
* Wed Feb 07 2018 Fedora Release Engineering - 2.2.11-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Nov 09 2017 Michael Simacek - 2.2.11-7
- Specify CDDL license version
* Wed Jul 26 2017 Fedora Release Engineering - 2.2.11-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering - 2.2.11-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Wed Feb 03 2016 Fedora Release Engineering - 2.2.11-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Wed Jun 17 2015 Fedora Release Engineering - 2.2.11-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Fri Mar 20 2015 Michal Srb - 2.2.11-2
- Split into subpackages (Resolves: rhbz#1204187)
* Mon Jan 19 2015 Michal Srb - 2.2.11-1
- Update to upstream version 2.2.11
* Mon Oct 27 2014 Michal Srb - 2.2.5-8
- Fix FTBFS (Resolves: rhbz#1106636)
- Adapt to current packaging guidelines
- Remove R, add BR: javapackages-local (for %%mvn_artifact macro)
* Sat Jun 07 2014 Fedora Release Engineering - 2.2.5-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Fri Mar 28 2014 Michael Simacek - 2.2.5-6
- Use Requires: java-headless rebuild (#1067528)
* Sat Aug 03 2013 Fedora Release Engineering - 2.2.5-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Wed Feb 13 2013 Fedora Release Engineering - 2.2.5-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
* Thu Jul 19 2012 Fedora Release Engineering - 2.2.5-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Mar 13 2012 Juan Hernandez 2.2.5-2
- Add missing xsom and rngom dependencies to the POM files
* Sat Mar 10 2012 Juan Hernandez 2.2.5-1
- Updated to upstream version 2.2.5
- Removed classpath from manifest files
* Wed Mar 7 2012 Juan Hernandez 2.2.4u1-4
- Updated to reflect the change from glassfish-fi to glassfish-fastinfoset
* Wed Feb 22 2012 Juan Hernandez 2.2.4u1-3
- Updated to reflect the changes of the jar names in txw2
* Wed Feb 22 2012 Juan Hernandez 2.2.4u1-2
- Cleanup of the spec file
* Sat Jan 21 2012 Marek Goldmann 2.2.4u1-1
- Initial packaging