Sophie

Sophie

distrib > Fedora > 18 > i386 > by-pkgid > a58a12756f704c1060db04dc176518c9 > files > 15

mule-2.0.2.20080813-7.fc18.src.rpm

# Copyright (c) 2011, Andy Grimm <agrimm@gmail.com>
# All rights reserved.
#

%global spring springframework

Name: mule
Version: 2.0.2.20080813
Release: 7%{?dist}
Summary: Mule Enterprise Service Bus Java libraries
License: CPAL
Group: Development/Libraries
URL: http://www.mulesoft.com
# svn export http://svn.codehaus.org/mule/tags/mule-2.0.2.20080813
Source0: mule-2.0.2.20080813.tbz
Source1: mule-depmap

# Fix for newer apache-commons-fileutils
Patch0: mule-fix-movefile-return.patch
# Disable spring jms for now
Patch1: mule-remove-spring-jms.patch
# Update from java-uuid-generator 2 to 3
Patch2: mule-jug3.patch 
# Update from spring2 to spring3
Patch3: mule-spring3.patch 
# Remove dependency on YourKit
Patch4: mule-no-yourkit.patch 
# Update from quartz 1.6 to 2.1
Patch5: mule-quartz2.1.patch 
# Ognl was adopted into apache commons, and is now org.apache.commons.ognl
Patch6: mule-fix-ognl-namespace.patch 
# The mule build requires jdk 1.4.2 ... wow
Patch7: mule-allow-jdk7.patch
# Turn off Class-Path embedded in manifest
Patch9: mule-disable-classpath-in-manifest.patch
# MX4J does not have poms, so point directly to the jars
Patch10: mule-mx4j.patch
# spring 3.1
Patch11: mule-spring31.patch
# Remove backport-util-concurrent dep
Patch12: mule-no-backport.patch

BuildArch: noarch
BuildRequires: jpackage-utils
BuildRequires: java-devel >= 1.5.0
BuildRequires: maven
BuildRequires: maven-enforcer-plugin
BuildRequires: maven-plugin-cobertura
BuildRequires: maven-eclipse-plugin
BuildRequires: maven-checkstyle-plugin
BuildRequires: aopalliance
BuildRequires: apache-commons-beanutils
BuildRequires: apache-commons-cli
BuildRequires: apache-commons-collections
BuildRequires: apache-commons-io
BuildRequires: apache-commons-jxpath
BuildRequires: apache-commons-lang
BuildRequires: apache-commons-ognl
BuildRequires: apache-commons-pool
BuildRequires: bea-stax-api
BuildRequires: dom4j
BuildRequires: geronimo-ejb
BuildRequires: tomcat6-servlet-2.5-api
BuildRequires: geronimo-jaxrpc
BuildRequires: geronimo-jms
BuildRequires: geronimo-jta
BuildRequires: groovy
BuildRequires: jaxen
BuildRequires: java-service-wrapper
BuildRequires: java-uuid-generator
BuildRequires: jboss-connector-1.6-api
BuildRequires: jboss-j2eemgmt-1.1-api
BuildRequires: log4j
BuildRequires: mx4j
BuildRequires: quartz
BuildRequires: slf4j
BuildRequires: %{spring}-aop
BuildRequires: %{spring}-beans
BuildRequires: %{spring}-context
BuildRequires: %{spring}-context-support
BuildRequires: %{spring}-expression
BuildRequires: %{spring}-instrument
BuildRequires: %{spring}-jdbc
BuildRequires: %{spring}-tx
BuildRequires: %{spring}-web
BuildRequires: %{spring}
BuildRequires: stax-utils
BuildRequires: xstream

# mule-core
Requires: java >= 0:1.5.0
Requires: jpackage-utils
Requires: apache-commons-beanutils
Requires: apache-commons-cli
Requires: apache-commons-collections
Requires: apache-commons-io
Requires: apache-commons-lang
Requires: apache-commons-pool
Requires: java-service-wrapper
Requires: java-uuid-generator
Requires: jboss-connector-1.6-api
Requires: log4j
Requires: mx4j
Requires: slf4j
Requires: xml-commons-apis
Requires: xpp2

%description
Mule comprises an infrastructure for Java applications to communicate,
referred to as a bus. It also gives the applications an address to
be contacted.  

%package buildtools
Summary: Tools used by the Mule's build procedure
Requires: java >= 0:1.5.0
Requires: jpackage-utils

%description buildtools
%{summary}.

%package module-builders
Summary: Standard configuration builders for Mule
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j
Requires: %{spring}
Requires: %{spring}-beans
Requires: %{spring}-context
Requires: tomcat-servlet-3.0-api

%description module-builders
%{summary}.

%package module-client
Summary: MuleClient interface
Requires: apache-commons-io
Requires: apache-commons-lang
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j
Requires: %{spring}-beans

%description module-client
MuleClient is a simple interface for Mule clients to send and receive
events from local or remote Mule Servers.

%package module-jaas
Summary: Jaas Authentication providers for mule
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j
Requires: %{spring}-beans

%description module-jaas
Mule Jaas Support exposes Jaas Authentication providers and Method
interceptors to authentication event traffic via endpoints.

%package module-management
Summary: Management Extensions for Mule
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: mule-module-xml = %{version}-%{release}
Requires: mx4j

%description module-management
%{summary}.

%package module-ognl
Summary: Support for filtering mule events using OGNL notation
Requires: apache-commons-ognl
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j
Requires: %{spring}-beans
Requires: xml-commons-apis

%description module-ognl
%{summary}.

%package module-spring-config
Summary: Mule Builder for use with Spring Namespace based XML config
Requires: mule = %{version}-%{release}
Requires: slf4j
Requires: %{spring}
Requires: %{spring}-beans
Requires: %{spring}-context
Requires: xml-commons-apis
Requires: xpp2
Requires: xpp3

%description module-spring-config
%{summary}.

%package module-xml
Summary: Mule functionality for working with XML
Requires: apache-commons-io
Requires: apache-commons-jxpath
Requires: apache-commons-lang
Requires: apache-commons-pool
Requires: dom4j
Requires: jaxen
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j
Requires: %{spring}-beans
Requires: stax-utils
Requires: xml-commons-apis
Requires: xpp2
Requires: xpp3
Requires: xstream

%description module-xml
%{summary}.

%package transport-bpm
Summary: Mule transport for Business Process Management Systems
Requires: apache-commons-lang
Requires: jboss-connector-1.6-api
Requires: mule = %{version}-%{release}
Requires: mule-module-client = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j
Requires: %{spring}-beans
Requires: xml-commons-apis

%description transport-bpm
%{summary}.

%package transport-ejb
Summary: Mule transport for Ejb Connectivity
Requires: jboss-ejb-3.1-api
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: mule-transport-rmi = %{version}-%{release}

%description transport-ejb
%{summary}.

%package transport-http
Summary: Mule transport for HTTP Connectivity
Requires: apache-commons-codec
Requires: apache-commons-io
Requires: apache-commons-lang
Requires: jakarta-commons-httpclient
Requires: jboss-connector-1.6-api
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: mule-transport-ssl = %{version}-%{release}
Requires: mule-transport-tcp = %{version}-%{release}
Requires: slf4j
Requires: %{spring}-beans
Requires: tomcat-servlet-3.0-api

%description transport-http
%{summary}.

%package transport-jms
Summary: Mule transport for JMS Connectivity
Requires: apache-commons-collections
Requires: apache-commons-io
Requires: apache-commons-lang
Requires: geronimo-jms
Requires: jboss-connector-1.6-api
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j
Requires: %{spring}-beans

%description transport-jms
%{summary}.

%package transport-multicast
Summary: Mule transport for UDP Multicasting
Requires: apache-commons-pool
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: mule-transport-udp = %{version}-%{release}
Requires: slf4j

%description transport-multicast
%{summary}.

%package transport-quartz
Summary: Mule transport for Quartz Scheduler
Requires: mule = %{version}-%{release}
Requires: mule-module-client = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: quartz
Requires: slf4j
Requires: %{spring}-beans

%description transport-quartz
%{summary}.

%package transport-rmi
Summary: Mule transport for RMI Connectivity
Requires: apache-commons-collections
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j

%description transport-rmi
%{summary}.

%package transport-servlet
Summary: Mule transport for Servlet containers
Requires: apache-commons-io
Requires: jakarta-commons-httpclient
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: mule-transport-http = %{version}-%{release}
Requires: slf4j
Requires: tomcat-servlet-3.0-api

%description transport-servlet
%{summary}.

%package transport-soap
Summary: Mule transport for SOAP connectivity
Requires: dom4j
Requires: geronimo-saaj
Requires: jboss-jaxrpc-1.1-api
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j
Requires: %{spring}-beans
Requires: xml-commons-apis
Requires: xpp3

%description transport-soap
%{summary}.

%package transport-ssl
Summary: Mule transport for Socket connectivity using SSL authentication
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: mule-transport-tcp = %{version}-%{release}
Requires: slf4j
Requires: %{spring}-beans

%description transport-ssl
%{summary}.

%package transport-stdio
Summary: Mule transport for testing, using System.out
Requires: apache-commons-io
Requires: apache-commons-lang
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}

%description transport-stdio
%{summary}.

%package transport-tcp
Summary: Mule transport for TCP Connectivity
Requires: apache-commons-io
Requires: apache-commons-lang
Requires: apache-commons-pool
Requires: jboss-connector-1.6-api
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j
Requires: %{spring}-beans

%description transport-tcp
%{summary}.

%package transport-udp
Summary: Mule transport for UDP Connectivity
Requires: apache-commons-pool
Requires: jboss-connector-1.6-api
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j

%description transport-udp
%{summary}.

%package transport-vm
Summary: Mule virtual memory transport
Requires: mule = %{version}-%{release}
Requires: mule-module-spring-config = %{version}-%{release}
Requires: slf4j
Requires: %{spring}-beans

%description transport-vm
This Mule transport enables event sending and receiving over VM or
embedded memory queues.

%package javadoc
Summary: Javadoc for %{name}
Group: Documentation
Requires: jpackage-utils

%description javadoc
This package contains the API documentation for %{name}.

%prep
%setup -q 
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1

# Fix java-service-wrapper link to match arch
if [ \! -d /usr/lib64/java-service-wrapper ]; then
  sed -i -e "s#lib64/java-service-wrapper#lib/java-service-wrapper#" modules/management/pom.xml
fi

# Remove requirement for YourKit
find modules/management/src/main/java/org/mule/module/management -name "YourKitProfiler*" -exec rm {} \;

# I believe this causes a circular dep
%pom_remove_plugin org.mule.tools:mule-assembly-verifier
# groovy-maven-plugin is not in Fedora yet
%pom_remove_plugin org.codehaus.mojo.groovy:groovy-maven-plugin
%pom_remove_dep mockobjects:mockobjects-core core
# Tests do not build yet
%pom_disable_module tests

# Remove all backport-util-concurrent deps
%pom_remove_dep backport-util-concurrent:backport-util-concurrent core

# Disable some modules which don't build yet
%pom_disable_module jboss-transactions modules
%pom_remove_dep com.yourkit:yjp-controller-api-redist modules/management
%pom_disable_module spring-extras modules
%pom_disable_module acegi modules
%pom_disable_module boot modules
%pom_disable_module jca modules
%pom_disable_module pgp modules 
%pom_disable_module scripting modules 
# As long as one or more modules are disabled, we must disable
# "all-modules", which depends on every module being built
%pom_disable_module all-modules modules 

# Disable some transports which don't build yet
%pom_disable_module axis transports
%pom_disable_module cxf transports
%pom_disable_module email transports
%pom_disable_module file transports
%pom_disable_module ftp transports
%pom_disable_module jetty transports
%pom_disable_module jbpm transports
%pom_disable_module jdbc transports
# disable xmpp until we fix jivesoftware references
%pom_disable_module xmpp transports

# As long as one or more transports are disabled, we must disable
# "all-modules", which depends on every transport being built
%pom_disable_module all-transports transports 

# Disable examples and tools, which are not required
%pom_disable_module examples
%pom_disable_module tools 

%build
mvn-rpmbuild \
  -Dproject.build.sourceEncoding=ISO-8859-1 \
  -Dmaven.local.depmap.file="%{SOURCE1}" \
  -Dmaven.test.skip=true \
  install javadoc:aggregate

%install
cp -p core/src/main/resources/MULE_LICENSE.txt LICENSE.txt

install -d -m 755 %{buildroot}%{_javadir}/%{name}
install -d -m 755 %{buildroot}%{_mavenpomdir}
install -d -m 755 %{buildroot}%{_mavendepmapfragdir}

# POMs without jars
install -m 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}.pom
install -m 644 modules/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-modules.pom
install -m 644 transports/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-transports.pom
%add_maven_depmap JPP-%{name}.pom
%add_maven_depmap JPP.%{name}-%{name}-modules.pom
%add_maven_depmap JPP.%{name}-%{name}-transports.pom

for pom_path in $( find . -name pom.xml ); do
    dir=$( dirname $pom_path | sed "s#./##" )
    jar=${dir}/target/mule-$( echo $dir | sed -r "s#(module|transport)s#\1#; s#/#-#" )-%{version}.jar
    if [ -f $jar ]; then
      target_jar_name=$( basename $jar | sed "s/-%{version}//g" )
      pom_name=JPP.%{name}-$( echo $target_jar_name | sed 's/.jar$//' ).pom
      install -m 644 $jar %{buildroot}%{_javadir}/%{name}/$target_jar_name
      install -m 644 $pom_path %{buildroot}%{_mavenpomdir}/$pom_name
      %add_maven_depmap $pom_name %{name}/${target_jar_name}  
    fi
done

mkdir -p %{buildroot}%{_javadocdir}/%{name}
cp -rpf target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name}

%files
%doc LICENSE.txt
%dir %{_javadir}/%{name}
%{_javadir}/%{name}/%{name}-core.jar
%{_mavenpomdir}/JPP-%{name}.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-core.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-modules.pom
%{_mavenpomdir}/JPP.%{name}-%{name}-transports.pom
%{_mavendepmapfragdir}/*

%files buildtools
%{_javadir}/%{name}/%{name}-buildtools.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-buildtools.pom

%files module-builders
%{_javadir}/%{name}/%{name}-module-builders.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-module-builders.pom

%files module-client
%{_javadir}/%{name}/%{name}-module-client.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-module-client.pom

%files module-jaas
%{_javadir}/%{name}/%{name}-module-jaas.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-module-jaas.pom

%files module-management
%{_javadir}/%{name}/%{name}-module-management.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-module-management.pom

%files module-ognl
%{_javadir}/%{name}/%{name}-module-ognl.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-module-ognl.pom

%files module-spring-config
%{_javadir}/%{name}/%{name}-module-spring-config.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-module-spring-config.pom

%files module-xml
%{_javadir}/%{name}/%{name}-module-xml.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-module-xml.pom

%files transport-bpm
%{_javadir}/%{name}/%{name}-transport-bpm.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-bpm.pom

%files transport-ejb
%{_javadir}/%{name}/%{name}-transport-ejb.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-ejb.pom

%files transport-http
%{_javadir}/%{name}/%{name}-transport-http.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-http.pom

%files transport-jms
%{_javadir}/%{name}/%{name}-transport-jms.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-jms.pom

%files transport-multicast
%{_javadir}/%{name}/%{name}-transport-multicast.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-multicast.pom

%files transport-quartz
%{_javadir}/%{name}/%{name}-transport-quartz.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-quartz.pom

%files transport-rmi
%{_javadir}/%{name}/%{name}-transport-rmi.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-rmi.pom

%files transport-servlet
%{_javadir}/%{name}/%{name}-transport-servlet.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-servlet.pom

%files transport-soap
%{_javadir}/%{name}/%{name}-transport-soap.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-soap.pom

%files transport-ssl
%{_javadir}/%{name}/%{name}-transport-ssl.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-ssl.pom

%files transport-stdio
%{_javadir}/%{name}/%{name}-transport-stdio.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-stdio.pom

%files transport-tcp
%{_javadir}/%{name}/%{name}-transport-tcp.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-tcp.pom

%files transport-udp
%{_javadir}/%{name}/%{name}-transport-udp.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-udp.pom

%files transport-vm
%{_javadir}/%{name}/%{name}-transport-vm.jar
%{_mavenpomdir}/JPP.%{name}-%{name}-transport-vm.pom

%files javadoc
%{_javadocdir}/%{name}

%changelog
* Mon Dec 10 2012 Andy Grimm <agrimm@gmail.com> - 2.0.2.20080813-7
- Remove dependence on backport-util-concurrent RHBZ#875167

* Sat Aug 11 2012 Andy Grimm <agrimm@gmail.com> - 2.0.2.20080813-6
- Patch for Spring 3.1

* Thu Aug  9 2012 Andy Grimm <agrimm@gmail.com> - 2.0.2.20080813-5
- Enable management module

* Tue Aug  7 2012 Andy Grimm <agrimm@gmail.com> - 2.0.2.20080813-4
- Enable stax-utils classes, which had been patched out

* Sun Aug  5 2012 Andy Grimm <agrimm@gmail.com> - 2.0.2.20080813-3
- disable addClasspath in maven-jar-plugin
- preserve file permissions in cp commands
- change commons-logging buildreq to slf4j

* Fri Aug  3 2012 Andy Grimm <agrimm@gmail.com> - 2.0.2.20080813-2
- Split modules into separate packages

* Wed Aug  1 2012 Andy Grimm <agrimm@gmail.com> - 2.0.2.20080813-1
- Change version number to match upstream tag
- Use maven instead of ant
- Use new pom macros for Fedora 18

* Tue Jul 31 2012 Andy Grimm <agrimm@gmail.com> - 2.0.2-3
- Enable more modules.  General spec file clean-up

* Tue Dec 20 2011 Andy Grimm <agrimm@gmail.com> - 2.0.2-2
- Build against newer JUG, Quartz, and Spring

* Thu Aug 21 2011 Andy Grimm <agrimm@gmail.com> - 2.0.2-1
- Initial package