File dom4j.spec of Package dom4j

#
# spec file for package dom4j (Version 1.6.1)
#
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%define _with_repolib 1
%define with_repolib %{?_with_repolib:1}%{!?_with_repolib:0}
%define without_repolib %{!?_with_repolib:1}%{?_with_repolib:0}
%define repodir %{_javadir}/repository.jboss.com/dom4j/1.6.1-brew
%define repodirlib %{repodir}/lib
%define repodirsrc %{repodir}/src
%define section free

Name:           dom4j
Version:        1.6.1
Release:        2
Summary:        JarJar of dom4j for JBoss
License:        Other uncritical OpenSource License
Url:            http://www.dom4j.org/
Group:          Development/Libraries/Java
#Source0:        dom4j-1.6.1.tar.gz
# Debian sources don't need a proprietary msv for build, so that's why I used them
# svn co svn://svn.debian.org/svn/pkg-java/trunk/dom4j
# rm dom4j/docs/xref/org/dom4j/tree/ConcurrentReaderHashMap.html
# rm dom4j/docs/clover/org/dom4j/tree/ConcurrentReaderHashMap.html
# #bnc501764
# rm dom4j/lib/tools/clover.license
# tar --exclude-vcs -cjf dom4j-1.6.1-debian.tar.bz2 dom4j/
Source0:        dom4j-1.6.1-debian.tar.bz2
Source1:        dom4j_rundemo.sh
#Source2:        dom4j-build.xml
Source3:        http://repo1.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.pom
Source4:        dom4j-1.6.1-component-info.xml
# http://repository.jboss.com/jboss/dom4j-jarjar/1.6.1/build/build.xml
Source5:        dom4j-jarjar-build.xml
Source6:        dom4j-jarjar-component-info.xml
Patch0:         dom4j-1.6.1-bug1618750.patch
BuildRequires:  jpackage-utils >= 1.7.4
BuildRequires:  jarjar
BuildRequires:  java-devel >= 1.5.0
BuildRequires:  ant >= 1.6.5
BuildRequires:  junit
BuildRequires:  ant-junit
BuildRequires:  ant-trax
BuildRequires:  ant-apache-resolver
BuildRequires:  jtidy
BuildRequires:  junitperf
BuildRequires:  isorelax
BuildRequires:  jaxen-bootstrap >= 1.1
BuildRequires:  relaxngDatatype
BuildRequires:  bea-stax
BuildRequires:  stax_1_0_api
BuildRequires:  ws-jaxme
BuildRequires:  xalan-j2 >= 2.7
BuildRequires:  xerces-j2
#BuildRequires:  jaxp = 1.2
BuildRequires:  xpp2
BuildRequires:  xpp3
Requires:       java >= 1.5.0
Requires:       xpp2
Requires:       xpp3
Requires:       xerces-j2
Requires:       relaxngDatatype
Requires:       isorelax
Requires:       jaxen >= 1.1
Requires:       bea-stax
Requires:       stax_1_0_api
Requires:       ws-jaxme
Requires:       xalan-j2
#Requires:       jaxp = 1.2
Requires(post): jpackage-utils >= 1.7.4
Requires(postun): jpackage-utils >= 1.7.4
BuildArch:      noarch
BuildRoot:      %{_tmppath}/%{name}-%{version}-build

%description
A jarjard version of dom4j that moves the classes to the
org.jboss.dom4j package space and strips the following packages:

org.dom4j.jaxb.* org.dom4j.swing.* org.dom4j.xpath.* org.dom4j.xpp.*



%if %{with_repolib}

%package repolib
License:        Other uncritical OpenSource License
Summary:        XML, XPath and XSLT library for Java
Group:          Development/Libraries/Java

%description repolib
dom4j is an easy to use Open Source XML, XPath and XSLT framework for
Java using the Java Collections Framework. dom4j allows you to read,
write, navigate, create and modify XML documents. dom4j integrates with
DOM, SAX and JAXP and is seamlessly integrated with full XPath support.



%package jarjar
License:        Other uncritical OpenSource License
Summary:        JarJar of dom4j for JBoss
Group:          Development/Libraries/Java

%description jarjar
A jarjared version of dom4j that moves the classes to the
org.jboss.dom4j package space and strips the following packages:

org.dom4j.jaxb.* org.dom4j.swing.* org.dom4j.xpath.* org.dom4j.xpp.*



%package jarjar-repolib
License:        Other uncritical OpenSource License
Summary:        JarJar of dom4j for JBoss
Group:          Development/Libraries/Java

%description jarjar-repolib
A jarjared version of dom4j that moves the classes to the
org.jboss.dom4j package space and strips the following packages:

org.dom4j.jaxb.* org.dom4j.swing.* org.dom4j.xpath.* org.dom4j.xpp.*



%endif

%package demo
License:        Other uncritical OpenSource License
Summary:        XML, XPath and XSLT library for Java
Group:          Development/Libraries/Java
Requires:       %{name} = %{version}

%description demo
dom4j is an easy to use Open Source XML, XPath and XSLT framework for
Java using the Java Collections Framework. dom4j allows you to read,
write, navigate, create and modify XML documents. dom4j integrates with
DOM, SAX and JAXP and is seamlessly integrated with full XPath support.



%package manual
License:        Other uncritical OpenSource License
Summary:        JarJar of dom4j for JBoss
Group:          Development/Libraries/Java

%description manual
A jarjard version of dom4j that moves the classes to the
org.jboss.dom4j package space and strips the following packages:

org.dom4j.jaxb.* org.dom4j.swing.* org.dom4j.xpath.* org.dom4j.xpp.*



%package javadoc
License:        Other uncritical OpenSource License
Summary:        XML, XPath and XSLT library for Java
Group:          Development/Libraries/Java

%description javadoc
dom4j is an easy to use Open Source XML, XPath and XSLT framework for
Java using the Java Collections Framework. dom4j allows you to read,
write, navigate, create and modify XML documents. dom4j integrates with
DOM, SAX and JAXP and is seamlessly integrated with full XPath support.



%prep
%setup -q -n %{name}
# replace run.sh
cp %{SOURCE1} run.sh
rm -f src/test/org/dom4j/xpath/MatrixConcatTest.java
# won't succeed in headless environment
rm src/test/org/dom4j/bean/BeansTest.java
# FIXME Bug in Xalan 2.6 -- reactivate with Xalan 2.7
#rm src/test/org/dom4j/XPathExamplesTest.java
# fix for deleted jars
sed -i -e '/unjar/d' -e 's|,cookbook/\*\*,|,|' build.xml
# FIXME: (yyang): failed in JDK6
rm -f src/test/org/dom4j/ThreadingTest.java
# FIXME: (yyang): failed in JDK6, maybe failed to load russArticle.xml because it's russian encoding
rm -f src/test/org/dom4j/io/StaxTest.java
%patch0 -p1 -b .bug1618750
perl -pi -e 's/\r//g' LICENSE.txt docs/clover/*.css docs/style/*.css docs/xref/*.css docs/xref-test/*.css src/doc/style/*.css docs/benchmarks/xpath/*.java
# jarjar
cp -p %{SOURCE5} dom4j-jarjar-build.xml
pushd lib
ln -sf $(build-classpath xpp2)
ln -sf $(build-classpath relaxngDatatype)
pushd endorsed
#ln -sf $(build-classpath jaxp12) 
popd
ln -sf $(build-classpath jaxme/jaxmeapi) 
#ln -sf $(build-classpath msv-xsdlib) 
#ln -sf $(build-classpath msv-msv) 
ln -sf $(build-classpath jaxen) 
ln -sf $(build-classpath bea-stax-api) 
pushd test
ln -sf $(build-classpath bea-stax-ri) 
ln -sf $(build-classpath junitperf) 
ln -sf $(build-classpath junit) 
popd
ln -sf $(build-classpath xpp3) 
pushd tools
ln -sf $(build-classpath jaxme/jaxmexs) 
ln -sf $(build-classpath xalan-j2) 
ln -sf $(build-classpath xalan-j2-serializer) 
ln -sf $(build-classpath jaxme/jaxmejs) 
ln -sf $(build-classpath jtidy) 
ln -sf $(build-classpath isorelax) 
ln -sf $(build-classpath jaxme/jaxme2) 
ln -sf $(build-classpath xerces-j2) 
popd
popd

%build
export CLASSPATH=
export OPT_JAR_LIST="junit ant/ant-junit"
#ant package test release-javadoc
ant package release-javadoc
#export CLASSPATH=`pwd`/dom4j-1.6.1.jar:$(build-classpath xpp2)
#ant samples
# jarjar
export CLASSPATH=$(build-classpath jarjar)
export OPT_JAR_LIST=:
ant -f dom4j-jarjar-build.xml

%install
# jars
install -d -m 755 $RPM_BUILD_ROOT%{_javadir}
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/poms
cp -p build/%{name}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
# jarjar
cp -p output/dom4j-jarjar.jar $RPM_BUILD_ROOT%{_javadir}/%{name}-jarjar-%{version}.jar
(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}.jar; do ln -sf ${jar} `echo $jar| sed "s|-%{version}||g"`; done)
%add_to_maven_depmap %{name} %{name} %{version} JPP %{name}
install -m 644 %{SOURCE3} $RPM_BUILD_ROOT/%{_datadir}/maven2/poms/JPP-%{name}.pom
# javadoc
mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
cp -pr build/doc/javadoc/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name}
# manual
mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
rm -rf docs/apidocs
cp -pr docs/* $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
# demo
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/classes/org/dom4j
cp -pr xml $RPM_BUILD_ROOT%{_datadir}/%{name}
mkdir -p $RPM_BUILD_ROOT%{_datadir}/%{name}/src
cp -pr src/samples $RPM_BUILD_ROOT%{_datadir}/%{name}/src
#cp -pr build/classes/org/dom4j/samples $RPM_BUILD_ROOT%{_datadir}/%{name}/classes/org/dom4j
install -m 0755 run.sh $RPM_BUILD_ROOT%{_datadir}/%{name}
%if %{with_repolib}
        install -d -m 755 $RPM_BUILD_ROOT%{repodir}
        install -d -m 755 $RPM_BUILD_ROOT%{repodirlib}
        install -p -m 644 %{SOURCE4} $RPM_BUILD_ROOT%{repodir}/component-info.xml
        sed -i "s/@VERSION@/%{version}-brew/g" $RPM_BUILD_ROOT%{repodir}/component-info.xml
        tag=`echo %{name}-%{version}-%{release} | sed 's|\.|_|g'`
        sed -i "s/@TAG@/$tag/g" build.xml $RPM_BUILD_ROOT%{repodir}/component-info.xml
        install -d -m 755 $RPM_BUILD_ROOT%{repodirsrc}
        install -p -m 644 %{PATCH0} $RPM_BUILD_ROOT%{repodirsrc}
        cp -p $RPM_BUILD_ROOT%{_javadir}/dom4j-%{version}.jar $RPM_BUILD_ROOT%{repodirlib}/dom4j.jar
        # jarjar
        %define repodir %{_javadir}/repository.jboss.com/jboss/dom4j-jarjar/1.6.1-brew
        install -d -m 755 $RPM_BUILD_ROOT%{repodir}
        install -d -m 755 $RPM_BUILD_ROOT%{repodirlib}
        install -p -m 644 %{SOURCE6} $RPM_BUILD_ROOT%{repodir}/component-info.xml
        sed -i "s/@VERSION@/%{version}-brew/g" $RPM_BUILD_ROOT%{repodir}/component-info.xml
        tag=`echo %{name}-%{version}-%{release} | sed 's|\.|_|g'`
        sed -i "s/@TAG@/$tag/g" $RPM_BUILD_ROOT%{repodir}/component-info.xml
        install -d -m 755 $RPM_BUILD_ROOT%{repodirsrc}
        install -p -m 644 %{PATCH0} $RPM_BUILD_ROOT%{repodirsrc}
        install -p -m 644 %{SOURCE5} $RPM_BUILD_ROOT%{repodirsrc}
        cp -p $RPM_BUILD_ROOT%{_javadir}/%{name}-jarjar-%{version}.jar $RPM_BUILD_ROOT%{repodirlib}/dom4j-jarjar.jar
%endif

%clean
rm -rf $RPM_BUILD_ROOT

%post
%update_maven_depmap

%postun
%update_maven_depmap

%files
%defattr(0644,root,root,0755)
%doc LICENSE.txt
%{_javadir}/%{name}.jar
%{_javadir}/%{name}-%{version}.jar
%{_datadir}/maven2/*
%config %{_mavendepmapfragdir}/*

%files jarjar
%defattr(0644,root,root,0755)
%{_javadir}/%{name}-jarjar.jar
%{_javadir}/%{name}-jarjar-%{version}.jar

%files javadoc
%defattr(0644,root,root,0755)
%{_javadocdir}/%{name}-%{version}
%{_javadocdir}/%{name}

%files manual
%defattr(0644,root,root,0755)
%{_docdir}/%{name}-%{version}

%files demo
%defattr(-,root,root,0755)
%{_datadir}/%{name}
%if %{with_repolib}

%files repolib
%defattr(0644,root,root,0755)
%dir %{_javadir}/repository.jboss.com
%{_javadir}/repository.jboss.com/dom4j

%files jarjar-repolib
%defattr(0644,root,root,0755)
%dir %{_javadir}/repository.jboss.com
%{_javadir}/repository.jboss.com/jboss
%endif

%changelog
* Wed May 20 2009 mvyskocil@suse.cz
- 'fixed bnc#501764: removed clover.license from source tarball'
* Mon May 18 2009 mvyskocil@suse.cz
- Removed documentation of ConcurrentReaderHashMap (bnc#504663)
  * dom4j-1.6.1/docs/clover/org/dom4j/tree/ConcurrentReaderHashMap.html
  * dom4j-1.6.1/docs/xref/org/dom4j/tree/ConcurrentReaderHashMap.html
* Thu May 14 2009 mvyskocil@suse.cz
- Initial SUSE packaging:
  * spec script and jarjar build support was taken from jpackage.org 5.0
  * Source of dom4j and build.xml comes from Debian unstable, as there don't need
  proprietary msv from sun (bnc#430592)
openSUSE Build Service is sponsored by