diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore index e69de29..19bffb0 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/jaxb-4.0.1.tar.gz diff --git a/gating.yaml b/gating.yaml new file mode 100644 index 0000000..f1bb5dd --- /dev/null +++ b/gating.yaml @@ -0,0 +1,7 @@ +--- !Policy +product_versions: + - rhel-9 +decision_contexts: + - osci_compose_gate +rules: + - !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional} diff --git a/jaxb.spec b/jaxb.spec new file mode 100644 index 0000000..8d79910 --- /dev/null +++ b/jaxb.spec @@ -0,0 +1,160 @@ +Name: jaxb +Version: 4.0.1 +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 +BuildArch: noarch + +Source0: %{url}/archive/%{version}-RI/%{name}-%{version}.tar.gz + +BuildRequires: maven-local +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(com.sun.xml.fastinfoset:FastInfoset) +BuildRequires: mvn(jakarta.activation:jakarta.activation-api:2.1.0) +BuildRequires: mvn(jakarta.xml.bind:jakarta.xml.bind-api:4.0.0) +BuildRequires: mvn(org.apache.ant:ant) +BuildRequires: mvn(org.apache.felix:maven-bundle-plugin) +BuildRequires: mvn(org.apache.maven.plugins:maven-assembly-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) +BuildRequires: mvn(org.jvnet.staxex:stax-ex) + +%description +GlassFish JAXB Reference Implementation. + +%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 relaxng-datatype +Summary: RelaxNG Datatype + +%description relaxng-datatype +RelaxNG Datatype library. + +%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 core +Summary: JAXB Core + +%description core +JAXB Core module. Contains sources required by XJC, JXC and Runtime modules. + +%package rngom +Summary: RELAX NG Object Model/Parser + +%description rngom +This package contains RELAX NG Object Model/Parser. + +%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. + +%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 txwc2 +Summary: TXW2 Compiler + +%description txwc2 +JAXB schema generator. The tool to generate XML schema based on java classes. + +%prep +%setup -q -n jaxb-ri-%{version}-RI + +pushd jaxb-ri + +find -name 'module-info.java' -type f -delete + +# Remove ee4j parent +%pom_remove_parent boms/bom codemodel external xsom + +%pom_remove_plugin -r :buildnumber-maven-plugin +%pom_remove_plugin -r :maven-enforcer-plugin + +# Skip docs generation because of missing dependencies +%pom_xpath_remove "pom:profiles/pom:profile[pom:id='default-profile']/pom:modules" + +# Disable unneeded extra OSGi bundles +%pom_disable_module bundles + +# Missing dependency on org.checkerframework:compiler +%pom_disable_module jxc + +%pom_remove_dep org.eclipse.angus:angus-activation core + +# Don't install aggregator and parent poms +%mvn_package :jaxb-bom __noinstall +%mvn_package :jaxb-bom-ext __noinstall +%mvn_package :jaxb-bundles __noinstall +%mvn_package :jaxb-codemodel-parent __noinstall +%mvn_package :jaxb-docs-parent __noinstall +%mvn_package :jaxb-external-parent __noinstall +%mvn_package :jaxb-parent __noinstall +%mvn_package :jaxb-runtime-parent __noinstall +%mvn_package :jaxb-samples __noinstall +%mvn_package :jaxb-txw-parent __noinstall +%mvn_package :jaxb-www __noinstall +popd + +%build +pushd jaxb-ri +%mvn_build -s -f -j +popd + +%install +pushd jaxb-ri +%mvn_install +popd + +%files codemodel -f jaxb-ri/.mfiles-codemodel +%license LICENSE.md NOTICE.md +%files codemodel-annotation-compiler -f jaxb-ri/.mfiles-codemodel-annotation-compiler +%files relaxng-datatype -f jaxb-ri/.mfiles-relaxng-datatype +%license LICENSE.md NOTICE.md +%files xsom -f jaxb-ri/.mfiles-xsom +%files core -f jaxb-ri/.mfiles-jaxb-core +%files rngom -f jaxb-ri/.mfiles-rngom +%files runtime -f jaxb-ri/.mfiles-jaxb-runtime +%files txw2 -f jaxb-ri/.mfiles-txw2 +%license LICENSE.md NOTICE.md +%files txwc2 -f jaxb-ri/.mfiles-txwc2 +%files xjc -f jaxb-ri/.mfiles-jaxb-xjc + +%changelog +* Tue Jan 17 2023 Marian Koncek - 4.0.1-1 +- Initial build diff --git a/plans/Smoke.java b/plans/Smoke.java new file mode 100644 index 0000000..f51d935 --- /dev/null +++ b/plans/Smoke.java @@ -0,0 +1,45 @@ +import jakarta.xml.bind.annotation.XmlRootElement; + +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Marshaller; +import jakarta.xml.bind.Unmarshaller; + +import java.io.InputStream; +import java.io.ByteArrayOutputStream; +import java.io.ByteArrayInputStream; + +@XmlRootElement(namespace = "org.fedoraproject.jaxb.test.smoke") +class Data +{ + public String text = "default text"; + public int number = 123; +} + +public class Smoke +{ + public static void main(String[] args) throws Exception + { + JAXBContext context = JAXBContext.newInstance(Data.class); + Marshaller m = context.createMarshaller(); + m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + m.marshal(new Data(), baos); + + Unmarshaller um = context.createUnmarshaller(); + + Data data; + try (InputStream is = new ByteArrayInputStream(baos.toByteArray())) { + data = Data.class.cast(um.unmarshal(is)); + } + + if (!data.text.equals("default text")) + { + throw new RuntimeException("Expected \"default text\", found \"" + data.text + "\""); + } + if (data.number != 123) + { + throw new RuntimeException("Expected 123, found " + String.valueOf(data.number)); + } + } +} diff --git a/plans/smoke.fmf b/plans/smoke.fmf new file mode 100644 index 0000000..892604d --- /dev/null +++ b/plans/smoke.fmf @@ -0,0 +1,25 @@ +summary: Basic smoke test +prepare: + how: install + package: + - jakarta-activation2 + - istack-commons-runtime + - java-11-openjdk-devel + - jaxb-core + - jaxb-runtime + - xmvn-tools +discover: + how: shell + tests: + - name: /smoke/marshal-unmarshal + test: | + CLASSPATH+=":$(xmvn-resolve jakarta.activation:jakarta.activation-api:2)" + CLASSPATH+=":$(xmvn-resolve jakarta.xml.bind:jakarta.xml.bind-api:4)" + CLASSPATH+=":$(xmvn-resolve com.sun.istack:istack-commons-runtime)" + CLASSPATH+=":$(xmvn-resolve org.glassfish.jaxb:jaxb-runtime)" + CLASSPATH+=":$(xmvn-resolve org.glassfish.jaxb:jaxb-core)" + export CLASSPATH + /usr/lib/jvm/java-11-openjdk/bin/javac plans/Smoke.java + /usr/lib/jvm/java-11-openjdk/bin/java -cp "${CLASSPATH}:plans" Smoke +execute: + how: tmt diff --git a/sources b/sources new file mode 100644 index 0000000..a935f56 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (jaxb-4.0.1.tar.gz) = 51e238d748eaf4e1872fa5c82dbe7215d6faadd49b4000533257635a87e4fdbb9ff91c4f98d666806b5a1af6fd6ee12791ee17b41dfb5a61b60fd771f2ae153c