Package jencks: Specfile

Packager: Igor Vlasenko <viy@altlinux.ru>
BuildRequires: geronimo-jms-1.1-api javacc3
BuildRequires: /proc
BuildRequires: jpackage-compat
# Copyright (c) 2000-2009, JPackage Project
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
#    notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
#    notice, this list of conditions and the following disclaimer in the
#    documentation and/or other materials provided with the
#    distribution.
# 3. Neither the name of the JPackage Project nor the names of its
#    contributors may be used to endorse or promote products derived
#    from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#


Name:           jencks
Version:        2.1
Release:        alt2_1jpp5
Epoch:          0
Summary:        Jencks JCA container

Group:          Development/Java
License:        ASL 2.0
URL:            http://www.jencks.org/
Source0:        jencks-2.1.tar.gz
# svn export http://svn.codehaus.org/jencks/tags/jencks-parent-2.1/

Source1:        %{name}-jpp-depmap.xml
Source2:        %{name}-settings.xml


BuildArch:      noarch
BuildRequires: jpackage-utils >= 0:1.7.5
BuildRequires: junit
BuildRequires: maven2 >= 0:2.0.7
BuildRequires: maven2-plugin-assembly
BuildRequires: maven2-plugin-compiler
BuildRequires: maven2-plugin-install
BuildRequires: maven2-plugin-jar
BuildRequires: maven2-plugin-javadoc
BuildRequires: maven2-plugin-resources
BuildRequires: maven-release
BuildRequires: maven-surefire-plugin
BuildRequires: activemq4
BuildRequires: activemq4-ra
BuildRequires: axion
BuildRequires: genericjmsra10
BuildRequires: geronimo-genesis
BuildRequires: hsqldb
BuildRequires: log4j
BuildRequires: spring2-jdbc
BuildRequires: spring2-test

BuildRequires: geronimo-txmanager
BuildRequires: howl-logger
BuildRequires: j2ee_connector_1_5_api
BuildRequires: j2ee_management_1_0_api
BuildRequires: jakarta-commons-collections
BuildRequires: jakarta-commons-dbcp
BuildRequires: jakarta-commons-logging
BuildRequires: jakarta-commons-pool
BuildRequires: jms_1_1_api
BuildRequires: jta_1_0_1B_api
BuildRequires: jta_1_1_api
BuildRequires: servlet_2_4_api
BuildRequires: spring2-aop
BuildRequires: spring2-jms
BuildRequires: tranql-connector
BuildRequires: xapool
BuildRequires: xbean

Requires: geronimo-txmanager
Requires: howl-logger
Requires: j2ee_connector_1_5_api
Requires: j2ee_management_1_0_api
Requires: jakarta-commons-collections
Requires: jakarta-commons-dbcp
Requires: jakarta-commons-logging
Requires: jakarta-commons-pool
Requires: jms_1_1_api
Requires: jta_1_0_1B_api
Requires: jta_1_1_api
Requires: servlet_2_4_api
Requires: spring2-aop
Requires: spring2-jms
Requires: tranql-connector
Requires: xapool
Requires: xbean

Requires(post): jpackage-utils >= 0:1.7.5
Requires(postun): jpackage-utils >= 0:1.7.5

%description
Jencks is a lightweight JCA container which is easy to 
deploy inside Spring to provide Message Driven POJOs.
In addition Jencks supports inbound and outbound messaging 
using APIs like JMS, JAX-RPC, JBI and JCA CCI as well as 
providing an XA based pooling mechanism for JDBC. e.g. 
here is how to use Outbound JMS or Outbound JDBC.
Jencks by default reuses the Geronimo JCA connector, 
WorkManager and TransactionManager - though there are no 
fixed runtime dependencies on Geronimo so you should be 
able to use Jencks with JOTM and Jonas too - though we 
recommend the Geronimo implementations as they are heavily 
tested and support full XA recovery.

%package        amqpool
Summary:        ActiveMQ Pool for %{name}
Group:          Development/Java
Requires: %{name} = %{epoch}:%{version}-%{release}

%description    amqpool
%{summary}.

%package        javadoc
Summary:        Javadoc for %{name}
Group:          Development/Documentation
BuildArch: noarch

%description    javadoc
%{summary}.

%prep
%setup -q -n %{name}-parent-%{version}

%build
cp %{SOURCE2} maven2-settings.xml

sed -i -e "s|<url>__JPP_URL_PLACEHOLDER__</url>|<url>file://`pwd`/m2_repo/repository</url>|g" maven2-settings.xml
sed -i -e "s|<url>__JAVADIR_PLACEHOLDER__</url>|<url>file://`pwd`/external_repo</url>|g" maven2-settings.xml
sed -i -e "s|<url>__MAVENREPO_DIR_PLACEHOLDER__</url>|<url>file://`pwd`/m2_repo/repository</url>|g" maven2-settings.xml
sed -i -e "s|<url>__MAVENDIR_PLUGIN_PLACEHOLDER__</url>|<url>file:///usr/share/maven2/plugins</url>|g" maven2-settings.xml
sed -i -e "s|<url>__ECLIPSEDIR_PLUGIN_PLACEHOLDER__</url>|<url>file:///usr/share/eclipse/plugins</url>|g" maven2-settings.xml

mkdir external_repo
ln -s %{_javadir} external_repo/JPP

export M2SETTINGS=$(pwd)/maven2-settings.xml
export MAVEN_REPO_LOCAL=`pwd`/m2_repo/repository

mvn-jpp -Dmaven.compile.target=1.5 -Dmaven.javadoc.source=1.5  \
        -e \
        -s ${M2SETTINGS} \
        -Dmaven.repo.local=$MAVEN_REPO_LOCAL \
        -Dmaven2.jpp.depmap.file=%{SOURCE1} \
	install:install-file -DgroupId=commons-primitives -DartifactId=commons-primitives -Dversion=1.0 -Dpackaging=jar -Dfile=$(build-classpath commons-primitives)

mvn-jpp -Dmaven.compile.target=1.5 -Dmaven.javadoc.source=1.5  \
        -e \
        -s ${M2SETTINGS} \
        -Dmaven.repo.local=$MAVEN_REPO_LOCAL \
        -Dmaven2.jpp.depmap.file=%{SOURCE1} \
        install:install-file -DgroupId=javacc -DartifactId=javacc \
        -Dversion=3.2 -Dpackaging=jar -Dfile=$(build-classpath javacc3)

mvn-jpp -Dmaven.compile.target=1.5 -Dmaven.javadoc.source=1.5  -e \
        -s ${M2SETTINGS} \
        -Dmaven.repo.local=$MAVEN_REPO_LOCAL \
        -Dmaven2.jpp.depmap.file=%{SOURCE1} \
        -Dmaven.test.failure.ignore=true \
        install

mvn-jpp -Dmaven.compile.target=1.5 -Dmaven.javadoc.source=1.5  -e \
        -s ${M2SETTINGS} \
        -Daggregate=true \
        -Dmaven.repo.local=$MAVEN_REPO_LOCAL \
        -Dmaven2.jpp.depmap.file=%{SOURCE1} \
        javadoc:javadoc


%install
install -dm 755 $RPM_BUILD_ROOT%{_javadir}
install -dm 755 $RPM_BUILD_ROOT%{_datadir}/maven2/poms

install -m 644 jencks-amqpool/target/jencks-amqpool-%{version}.jar \
  $RPM_BUILD_ROOT%{_javadir}/%{name}-amqpool-%{version}.jar
install -m 644 jencks/target/jencks-%{version}.jar \
  $RPM_BUILD_ROOT%{_javadir}/%{name}-%{version}.jar
install -m 644 jencks/target/jencks-%{version}-all.jar \
  $RPM_BUILD_ROOT%{_javadir}/%{name}-all-%{version}.jar
(cd $RPM_BUILD_ROOT%{_javadir} && for jar in *-%{version}*; do ln -sf ${jar} `echo $jar| sed  "s|-%{version}||g"`; done)

install -m 644 pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP-%{name}-parent.pom
%add_to_maven_depmap org.jencks jencks-parent %{version} JPP %{name}-parent
install -m 644 jencks/pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP-%{name}.pom
%add_to_maven_depmap org.jencks jencks %{version} JPP %{name}
install -m 644 jencks-amqpool/pom.xml $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP-%{name}-amqpool.pom
%add_to_maven_depmap org.jencks jencks-amqpool %{version} JPP %{name}-amqpool

# javadoc
install -dm 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}-%{version}
ln -s %{name}-%{version} $RPM_BUILD_ROOT%{_javadocdir}/%{name} # ghost symlink

%files
%{_javadir}/%{name}-%{version}.jar
%{_javadir}/%{name}.jar
%{_javadir}/%{name}-all*.jar
%doc {LICENSE,README}.txt
%{_datadir}/maven2/poms/*
%{_mavendepmapfragdir}/*

%files amqpool
%{_javadir}/%{name}-amqpool*.jar

%files javadoc
%doc %{_javadocdir}/%{name}-%{version}
%doc %{_javadocdir}/%{name}

%changelog
* Wed Oct 27 2010 Igor Vlasenko <viy@altlinux.ru> 0:2.1-alt2_1jpp5
- fixed build

* Sun Mar 28 2010 Igor Vlasenko <viy@altlinux.ru> 0:2.1-alt1_1jpp5
- new version