# 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