#efine java6 1 #f %java6 %define javaver 1.6.0 #lse # TODO require test #efine javaver 1.7.0 #ndif %define javadir %{_jvmdir}/java-%{javaver}-openjdk-%{javaver}.0 Name: glassfish-jaxb Version: 2.2.4 Release: %mkrel 2.u1.1 Summary: Java API for XML Web Services API Group: Development/Java License: CDDL, GPL Url: http://jaxb.java.net/ # svn export https://svn.java.net/svn/jaxb~version2/tags/jaxb-2_2_4u1/jaxb-ri glassfish-jaxb-2.2.4 # tar czf glassfish-jaxb-2.2.4u1-src-svn.tar.gz glassfish-jaxb-2.2.4 Source0: glassfish-jaxb-2.2.4u1-src-svn.tar.gz # from http://download.java.net/maven/2/com/sun/xml/bind/jaxb-impl/2.2.4-1/jaxb-impl-2.2.4-1.pom Source1: jaxb-impl-2.2.4-1-modified.pom # from http://download.java.net/maven/2/com/sun/xml/bind/jaxb-xjc/2.2.4-1/jaxb-xjc-2.2.4-1.pom Source2: jaxb-xjc-2.2.4-1-modified.pom # from http://download.java.net/maven/2/com/sun/xml/bind/jaxb-osgi/2.2.4-1/jaxb-osgi-2.2.4-1.pom Source3: jaxb-osgi-2.2.4-1-modified.pom # from http://download.java.net/maven/2/javax/xml/bind/jaxb-api-osgi/2.2.3/jaxb-api-osgi-2.2.3.pom Source4: jaxb-api-osgi-2.2.3-modified.pom Patch0: glassfish-jaxb-2.2.4u1-noclasspathmanifest.patch # use xml-commons-resolver instead of glassfish-resolver Patch1: glassfish-jaxb-2.2.4u1-xjc-Options.patch Patch2: glassfish-jaxb-2.2.4u1-bin-schemagen.patch Patch3: glassfish-jaxb-2.2.4u1-bin-xjc.patch BuildRequires: java-devel >= 1.6.0 BuildRequires: ant BuildRequires: ant-contrib BuildRequires: ant-junit BuildRequires: ant-trax BuildRequires: antlr # TODO don't work BuildRequires: aqute-bndlib BuildRequires: args4j10 BuildRequires: codemodel BuildRequires: dom4j BuildRequires: glassfish-jaf BuildRequires: glassfish-jaxb1 BuildRequires: glassfish-jaxb-api #BuildRequires: glassfish-resolver BuildRequires: glassfish-stax-api #BuildRequires: gsc BuildRequires: isorelax BuildRequires: javacc3 # require java 1.5.0 for javadoc BuildRequires: java-gcj-compat-devel BuildRequires: jing03 BuildRequires: jsp21 BuildRequires: servlet25 BuildRequires: junit BuildRequires: maven-repository-importer BuildRequires: msv-msv BuildRequires: msv-xsdlib BuildRequires: package-rename-task BuildRequires: relaxngcc BuildRequires: relaxngDatatype BuildRequires: rngom BuildRequires: sax2 BuildRequires: saxon BuildRequires: sfx4j BuildRequires: stax-ex BuildRequires: sun-dtdparser BuildRequires: sun-fi BuildRequires: sun-istack-commons BuildRequires: sun-sjsxp BuildRequires: sun-txw2 BuildRequires: sun-xsom BuildRequires: xerces-j2 BuildRequires: xml-commons-apis BuildRequires: xml-commons-resolver # FIXME glassfish-jaf create link activation.jar Requires: glassfish-jaf Requires: glassfish-jaxb1 Requires: glassfish-jaxb-api # FIXME glassfish-stax-api create link jsr173_1.0_api.jar Requires: glassfish-stax-api Requires: java Requires: jpackage-utils #BuildArch: noarch %description The Java Architecture for XML Binding (JAXB) 2.2 API according to JSR-222. JAXB provides an API and tools that automate the mapping between XML documents and Java objects. The JAXB framework enables developers to perform the following operations: * Unmarshal XML content into a Java representation * Access and update the Java representation * Marshal the Java representation of the XML content into XML content JAXB gives Java developers an efficient and standard way of mapping between XML and Java code. Java developers using JAXB are more productive because they can write less code themselves and do not have to be experts in XML. JAXB makes it easier for developers to extend their applications with XML and Web Services technologies. %package javadoc Group: Development/Java Summary: Javadoc for %{name} Requires: %{name} = %{version}-%{release} Requires: jpackage-utils BuildArch: noarch %description javadoc Java API for XML Web Services API. This package contains javadoc for %{name}. %package osgi Group: Development/Java Summary: JAXB OSGi bundle for GlassFish V3 Requires: glassfish-jaf Requires: glassfish-jaxb1 Requires: glassfish-stax-api Requires: jpackage-utils BuildArch: noarch %description osgi Java API for XML Web Services API. This module is exclusively meant for use in GlassFish V3 development. It is highly unlikely to work in any other environment. %prep %setup -q -n glassfish-jaxb-%{version} chmod -R go=u-w * #%patch0 -p0 %patch1 -p0 %patch2 -p0 sed -i "s|@LIB_DIR@|%{_libdir}|" tools/bin/schemagen.sh %patch3 -p0 sed -i "s|@LIB_DIR@|%{_libdir}|" tools/bin/xjc.sh for j in $(find . -name "*.jar" ! -name "*source*.jar"); do mv $j $j.no done # ManifestReader need to build osgi jars source code is available here http://www.codeproject.com/KB/java/ManifestReader.aspx for c in $(find . -name "*.class" ! -name "*ManifestReader*.class"); do rm -rf $c done for d in $(find . -name "*.dll"); do rm -rf $d done pushd tools pushd lib pushd rebundle pushd runtime # mv isorelax.jar isorelax.jar.no ln -sf $(build-classpath isorelax) . # mv msv.jar.no msv.jar ln -sf $(build-classpath msv-msv) msv.jar # mv xsdlib.jar.no xsdlib.jar ln -sf $(build-classpath msv-xsdlib) xsdlib.jar # mv relaxngDatatype.jar relaxngDatatype.jar.no ln -sf $(build-classpath relaxngDatatype) . popd pushd compiler # mv rngom.jar rngom.jar.no ln -sf $(build-classpath rngom) . # mv codemodel.jar codemodel.jar.no ln -sf $(build-classpath codemodel-core) codemodel.jar # mv dtd-parser.jar dtd-parser.jar.no ln -sf $(build-classpath sun-dtdparser) dtd-parser.jar # mv xsom.jar xsom.jar.no ln -sf $(build-classpath sun-xsom/xsom) xsom.jar # mv resolver.jar resolver.jar.no # ln -sf $(build-classpath glassfish-resolver) resolver.jar ln -sf $(build-classpath xml-commons-resolver) resolver.jar # mv istack-commons-tools.jar istack-commons-tools.jar.no ln -sf $(build-classpath sun-istack-commons/tools) istack-commons-tools.jar # mv relaxngDatatype.jar relaxngDatatype.jar.no ln -sf $(build-classpath relaxngDatatype) . popd pushd runtime2 # mv txw2.jar txw2.jar.no ln -sf $(build-classpath sun-txw2) txw2.jar # mv istack-commons-runtime.jar istack-commons-runtime.jar.no ln -sf $(build-classpath sun-istack-commons/runtime) istack-commons-runtime.jar popd popd pushd redist # mv activation.jar activation.jar.no ln -sf $(build-classpath glassfish-jaf) activation.jar # mv jaxb-api.jar jaxb-api.jar.no ln -sf $(build-classpath jaxb-api) . # mv jsr173_1.0_api.jar jsr173_1.0_api.jar.no ln -sf $(build-classpath stax-api) jsr173_1.0_api.jar popd pushd util # mv ant.jar ant.jar.no ln -sf $(build-classpath ant) . # mv ant-junit.jar ant-junit.jar.no ln -sf $(build-classpath ant/ant-junit) . # mv ant-launcher.jar ant-launcher.jar.no ln -sf $(build-classpath ant-launcher) . # mv ant-trax.jar ant-trax.jar.no ln -sf $(build-classpath ant) ant-trax.jar # mv ant-fsget.jar ant-fsget.jar.no # mv ant-contrib-0.6.jar ant-contrib-0.6.jar.no ln -sf $(build-classpath ant/ant-contrib) ant-contrib-0.6.jar # mv txwc2.jar txwc2.jar.no ln -sf $(build-classpath sun-txwc2) txwc2.jar # mv junit-3.8.1.jar junit-3.8.1.jar.no ln -sf $(build-classpath junit) junit-3.8.1.jar # mv sfx4j-1.0.jar sfx4j-1.0.jar.no ln -sf $(build-classpath sfx4j) sfx4j-1.0.jar # mv args4j.jar args4j.jar.no ln -sf $(build-classpath args4j10) args4j.jar # mv istack-commons-test.jar istack-commons-test.jar.no ln -sf $(build-classpath sun-istack-commons/test) istack-commons-test.jar # mv FastInfoset.jar FastInfoset.jar.no ln -sf $(build-classpath FastInfoset) . # mv dom4j.jar dom4j.jar.no ln -sf $(build-classpath dom4j) . # mv xercesImpl.jar xercesImpl.jar.no ln -sf $(build-classpath xerces-j2) xercesImpl.jar # mv sjsxp.jar sjsxp.jar.no ln -sf $(build-classpath sun-sjsxp) sjsxp.jar # mv jing.jar jing.jar.no ln -sf $(build-classpath jing03) jing.jar # jing requires ln -sf $(build-classpath isorelax) . ln -sf $(build-classpath xml-commons-apis) xml-apis.jar ln -sf $(build-classpath saxon) saxon.jar # mv codemodel-annotation-compiler.jar codemodel-annotation-compiler.jar.no ln -sf $(build-classpath codemodel-annotation-compiler) . # mv stax-ex.jar stax-ex.jar.no ln -sf $(build-classpath stax-ex) . # mv relaxngcc.jar.no relaxngcc.jar ln -sf $(build-classpath relaxngcc) . # mv package-rename-task.jar package-rename-task.jar.no ln -sf $(build-classpath package-rename-task) . # mv maven-repository-importer.jar maven-repository-importer.jar.no ln -sf $(build-classpath maven-repository-importer) . mv bnd-0.0.249.jar.no bnd-0.0.249.jar # ln -sf $(build-classpath aqute-bndlib) bnd-0.0.249.jar popd popd pushd compiler10 # mv jaxb1-xjc.jar jaxb1-xjc.jar.no ln -sf $(build-classpath jaxb1-xjc) . popd popd %build export CLASSPATH="" # Show the jave we use for debuging purpose echo `%{_jvmdir}/java/bin/java -version` CLASSPATH=$CLASSPATH:$(build-classpath ant-launcher javacc3 antlr) ant dist ant -f osgi/build.xml ( cd tools/taglets ant jar ) CLASSPATH=$CLASSPATH:$(build-classpath sax2) CLASSPATH=$CLASSPATH:$(build-classpath jaxb-api):$PWD/dist/lib/jaxb-xjc.jar:$PWD/dist/lib/jaxb-impl.jar CLASSPATH=$CLASSPATH:$PWD/tools/taglets/build/taglets.jar # FIXME with java 6 do not build export JAVA_HOME=%{_jvmdir}/java-1.5.0 # removed do not allow to build javadoc rm -rf runtime/src/com/sun/xml/bind/v2/Messages.java rm -rf runtime/src/com/sun/xml/bind/v2/model/annotation/Messages.java rm -rf runtime/src/com/sun/xml/bind/v2/model/core/PropertyKind.java rm -rf runtime/src/com/sun/xml/bind/v2/model/impl/Messages.java rm -rf runtime/src/com/sun/xml/bind/v2/runtime/Messages.java rm -rf runtime/src/com/sun/xml/bind/v2/runtime/property/Messages.java rm -rf runtime/src/com/sun/xml/bind/v2/runtime/reflect/Messages.java rm -rf runtime/src/com/sun/xml/bind/v2/runtime/unmarshaller/Messages.java rm -rf runtime/src/com/sun/xml/bind/v2/schemagen/XmlSchemaGenerator.java rm -rf xjc/src/com/sun/tools/jxc/Messages.java rm -rf xjc/src/com/sun/tools/jxc/apt/Messages.java rm -rf xjc/src/com/sun/tools/xjc/api/util/Messages.java rm -rf xjc/src/com/sun/tools/xjc/generator/bean/Messages.java rm -rf xjc/src/com/sun/tools/xjc/generator/bean/field/Messages.java rm -rf xjc/src/com/sun/tools/xjc/reader/Messages.java rm -rf xjc/src/com/sun/tools/xjc/reader/dtd/TDTDReader.java ant architecture-document #pushd tools # CLASSPATH=$CLASSPATH:$(build-classpath jsp servlet) # pushd webapp-commons # ant jar # popd # CLASSPATH=$CLASSPATH:$(build-classpath antlr gsc jaxb1-xjc) # pushd servlet # ant compile # popd #popd %install [ %{buildroot} != / ] && rm -rf %{buildroot} mkdir -p %{buildroot}%{_javadir}/jaxb-tools install -pm 644 osgi/build/jaxb-api-osgi.jar %{buildroot}%{_javadir}/jaxb-api-osgi-%{version}.jar install -pm 644 osgi/build/jaxb-osgi.jar %{buildroot}%{_javadir}/jaxb-osgi-%{version}.jar mkdir -p %{buildroot}%{_mavenpomdir} install -m 644 %{SOURCE3} %{buildroot}%{_mavenpomdir}/JPP-jaxb-osgi.pom %add_maven_depmap JPP-jaxb-osgi.pom jaxb-osgi.jar install -m 644 %{SOURCE4} %{buildroot}%{_mavenpomdir}/JPP-jaxb-api-osgi.pom %add_maven_depmap JPP-jaxb-api-osgi.pom jaxb-api-osgi.jar mv %{buildroot}%{_mavendepmapfragdir}/%{name} %{buildroot}%{_mavendepmapfragdir}/%{name}-osgi install -pm 644 dist/lib/jaxb-impl.jar %{buildroot}%{_javadir}/jaxb-impl-%{version}.jar install -pm 644 dist/lib/jaxb-xjc.jar %{buildroot}%{_javadir}/jaxb-xjc-%{version}.jar install -m 644 %{SOURCE1} %{buildroot}%{_mavenpomdir}/JPP-jaxb-impl.pom %add_maven_depmap JPP-jaxb-impl.pom jaxb-impl.jar install -m 644 %{SOURCE2} %{buildroot}%{_mavenpomdir}/JPP-jaxb-xjc.pom %add_maven_depmap JPP-jaxb-xjc.pom jaxb-xjc.jar ( cd %{buildroot}%{_javadir} for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"` done ) install -m 644 tools/jing-rnc-driver/build/jing-rnc-driver.jar %{buildroot}%{_javadir}/jaxb-tools/jing-rnc-driver-%{version}.jar install -m 644 tools/pretty-printer/build/pretty-printer.jar %{buildroot}%{_javadir}/jaxb-tools/pretty-printer-%{version}.jar install -m 644 tools/taglets/build/taglets.jar %{buildroot}%{_javadir}/jaxb-tools/taglets-%{version}.jar install -m 644 tools/xmllint/build/xmllint.jar %{buildroot}%{_javadir}/jaxb-tools/xmllint-%{version}.jar ( cd %{buildroot}%{_javadir}/jaxb-tools for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"` done ) mkdir -p %{buildroot}%{_bindir} install -m 755 dist/bin/schemagen.sh %{buildroot}%{_bindir}/jaxb-schemagen install -m 755 dist/bin/xjc.sh %{buildroot}%{_bindir}/jaxb-xjc mkdir -p %{buildroot}%{_javadocdir}/%{name} cp -pr build/javadoc/* %{buildroot}%{_javadocdir}/%{name} # see # http://www.java.net/node/700048 # https://metro.dev.java.net/guide/Using_JAX_WS_2_x___Metro_1_x_2_0_with_Java_SE_6.html # http://forums.netbeans.org/topic16441.html mkdir -p %{buildroot}%{javadir}/jre/lib/endorsed ln -sf $(build-classpath jaxb-api) %{buildroot}%{javadir}/jre/lib/endorsed/ %post %update_maven_depmap %postun %update_maven_depmap %files %{_bindir}/jaxb-* %{_javadir}/jaxb-impl-%{version}.jar %{_javadir}/jaxb-impl.jar %{_javadir}/jaxb-xjc-%{version}.jar %{_javadir}/jaxb-xjc.jar %{_javadir}/jaxb-tools/jing-rnc-driver-%{version}.jar %{_javadir}/jaxb-tools/jing-rnc-driver.jar %{_javadir}/jaxb-tools/pretty-printer-%{version}.jar %{_javadir}/jaxb-tools/pretty-printer.jar %{_javadir}/jaxb-tools/taglets-%{version}.jar %{_javadir}/jaxb-tools/taglets.jar %{_javadir}/jaxb-tools/xmllint-%{version}.jar %{_javadir}/jaxb-tools/xmllint.jar %{javadir}/jre/lib/endorsed/* %{_mavenpomdir}/JPP-jaxb-impl.pom %{_mavenpomdir}/JPP-jaxb-xjc.pom %{_mavendepmapfragdir}/%{name} %doc License.html License.txt ThirdPartyLicenseReadme.txt %files javadoc %{_javadocdir}/%{name} %files osgi %{_javadir}/jaxb-api-osgi-%{version}.jar %{_javadir}/jaxb-api-osgi.jar %{_javadir}/jaxb-osgi-%{version}.jar %{_javadir}/jaxb-osgi.jar %{_mavenpomdir}/JPP-jaxb-api-osgi.pom %{_mavenpomdir}/JPP-jaxb-osgi.pom %{_mavendepmapfragdir}/%{name}-osgi %changelog * Tue Nov 08 2011 dmorgan <dmorgan> 2.2.4-2.u1.1.mga2 + Revision: 165181 - Add java-devel as buildrequires - Clean spec file + gil <gil> - edit spec file - edit spec file, see http://www.java.net/node/700048 - edit spec file, see see - added xjc and schemagen scripts - imported package glassfish-jaxb * Sun Jul 03 2011 gil <gil> 2.1.9-0.%%mkrel - initial rpm