Sophie

Sophie

distrib > Mageia > 2 > i586 > media > core-release-src > by-pkgid > d68c9cf1c6da4d33d8cdcd306a53ddbe > files > 6

glassfish-jaxb-2.2.4-2.u1.1.mga2.src.rpm

#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