Name: struts2 Version: 2.3.4.1 Release: 1%{?dist} Summary: Web application framework Group: Development/Libraries License: ASL 2.0 URL: http://struts.apache.org/ # don't includes Struts 2 Maven Archetypes Source0: http://www.apache.org/dist/struts/source/struts-%{version}-src.zip # wget -O struts-master-9-pom.xml http://svn.apache.org/repos/asf/struts/maven/tags/STRUTS_MASTER_9/pom.xml Source1: struts-master-9-pom.xml # mkdir -p struts-2.3.4.1/src # cd struts-2.3.4.1/src # svn export http://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_3_4_1/archetypes # cd .. /STRUTS_2_3_7 # tar czf ../struts-archetypes-2.3.4.1-src-svn.tar.gz src # Source2: struts-archetypes-2.3.4.1-src-svn.tar.gz Patch0: %{name}-2.3.4.1-add-to-parent_master-relativePath.patch Patch1: %{name}-2.3.4.1-add-commons-ognl-support.patch # build fix for latest velocity pkg Patch2: %{name}-2.3.4.1-change-IOException-with-Exception.patch BuildRequires: java-devel BuildRequires: jpackage-utils BuildRequires: apache-commons-fileupload BuildRequires: apache-commons-io BuildRequires: apache-commons-jci-fam BuildRequires: apache-commons-lang3 BuildRequires: apache-commons-logging BuildRequires: apache-commons-ognl BuildRequires: cdi-api BuildRequires: cglib BuildRequires: ezmorph BuildRequires: freemarker BuildRequires: jackson BuildRequires: jasperreports BuildRequires: jboss-jsf-2.1-api BuildRequires: jcommon BuildRequires: jfreechart BuildRequires: json-lib BuildRequires: junit BuildRequires: objectweb-asm # BuildRequires: pell-multipart BuildRequires: springframework BuildRequires: springframework-aop BuildRequires: springframework-beans BuildRequires: springframework-context BuildRequires: springframework-context-support BuildRequires: springframework-web BuildRequires: struts-annotations BuildRequires: testng BuildRequires: tomcat6 BuildRequires: tomcat6-lib BuildRequires: tomcat6-jsp-2.1-api BuildRequires: tomcat6-servlet-2.5-api BuildRequires: velocity BuildRequires: velocity-tools BuildRequires: weld-core BuildRequires: xstream Requires: java Requires: jpackage-utils BuildArch: noarch %description Apache Struts2 is an elegant, extensible framework for creating enterprise-ready Java web applications. Struts2 is the "best available" version of Struts in the 2.3 series. %package core Group: Development/Libraries Summary: Struts 2 Core Requires: jpackage-utils Requires: %{name} = %{version}-%{release} Requires: %{name}-xwork-core = %{version}-%{release} Requires: apache-commons-fileupload Requires: apache-commons-io Requires: apache-commons-ognl Requires: freemarker Requires: junit Requires: springframework Requires: struts-annotations Requires: testng Requires: tomcat6-jsp-2.1-api Requires: tomcat6-servlet-2.5-api Requires: velocity Requires: velocity-tools %description core %{summary}. %package xwork-core Group: Development/Libraries Summary: XWork: Core Requires: jpackage-utils Requires: %{name} = %{version}-%{release} Requires: apache-commons-io Requires: apache-commons-lang3 Requires: apache-commons-logging Requires: apache-commons-ognl Requires: cglib Requires: junit Requires: testng Requires: objectweb-asm Requires: springframework Requires: springframework-aop Requires: springframework-beans Requires: springframework-context Requires: springframework-context-support Requires: springframework-web %description xwork-core %{summary}. %package plugins-parent Group: Development/Libraries Summary: Struts 2 Plugins parent pom Requires: jpackage-utils Requires: %{name} = %{version}-%{release} Requires: %{name}-core = %{version}-%{release} Requires: tomcat6-servlet-2.5-api %description plugins-parent %{summary}. %package cdi-plugin Group: Development/Libraries Summary: Struts 2 CDI Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} Requires: cdi-api Requires: weld-core %description cdi-plugin %{summary}. %package codebehind-plugin Group: Development/Libraries Summary: Struts 2 Codebehind Plugin Requires: jpackage-utils Requires: %{name} = %{version}-%{release} Requires: tomcat6-jsp-2.1-api %description codebehind-plugin %{summary}. %package config-browser-plugin Group: Development/Libraries Summary: Struts 2 Configuration Browser Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} %description config-browser-plugin %{summary}. %package convention-plugin Group: Development/Libraries Summary: Struts 2 Convention Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} Requires: apache-commons-lang3 Requires: tomcat6-jsp-2.1-api %description convention-plugin %{summary}. %package dojo-plugin Group: Development/Libraries Summary: Struts 2 Dojo Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} Requires: struts-annotations Requires: tomcat6-jsp-2.1-api Requires: velocity %description dojo-plugin %{summary}. %package jasperreports-plugin Group: Development/Libraries Summary: Struts 2 Jasper Reports Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} Requires: apache-commons-lang3 Requires: jasperreports %description jasperreports-plugin %{summary}. %package javatemplates-plugin Group: Development/Libraries Summary: Struts 2 Java Templates Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} Requires: apache-commons-lang3 %description javatemplates-plugin %{summary}. %package jfreechart-plugin Group: Development/Libraries Summary: Struts 2 JFreeChart Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} Requires: jcommon Requires: jfreechart Requires: tomcat6-jsp-2.1-api %description jfreechart-plugin %{summary}. %package jsf-plugin Group: Development/Libraries Summary: Struts 2 JSF Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} Requires: jboss-jsf-2.1-api %description jsf-plugin %{summary}. %package json-plugin Group: Development/Libraries Summary: Struts 2 JSON Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} Requires: apache-commons-lang3 Requires: tomcat6-jsp-2.1-api %description json-plugin %{summary}. %package pell-multipart-plugin Group: Development/Libraries Summary: Struts 2 Pell Multipart Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} Requires: pell-multipart %description pell-multipart-plugin %{summary}. %package rest-plugin Group: Development/Libraries Summary: Struts 2 REST Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} # Requires: ezmorph todo json-lib requires Requires: jackson Requires: json-lib Requires: springframework Requires: xstream %description rest-plugin %{summary}. %package spring-plugin Group: Development/Libraries Summary: Struts 2 Spring Plugin Requires: jpackage-utils Requires: %{name}-plugins-parent = %{version}-%{release} Requires: apache-commons-jci-fam Requires: apache-commons-lang3 Requires: springframework Requires: springframework-beans Requires: springframework-context Requires: springframework-web %description spring-plugin %{summary}. %package struts1-plugin Group: Development/Libraries Summary: Struts 2 Struts 1 Plugin Requires: jpackage-utils Requires: %{name}-core = %{version}-%{release} Requires: %{name}-plugins-parent = %{version}-%{release} Requires: tomcat6-jsp-2.1-api %description struts1-plugin %{summary}. %package javadoc Group: Documentation Summary: Javadoc for %{name} Requires: jpackage-utils %description javadoc This package contains javadoc for %{name}. %prep %setup -q -n struts-%{version} find -name "*.jar" -delete find -name "*.class" -delete %patch0 -p0 %patch1 -p1 %patch2 -p1 cp -p %{SOURCE1} pom.xml %pom_remove_dep org.easymock:easymockclassextension src %pom_remove_dep cglib:cglib-nodep src %pom_remove_dep taglibs:request src %pom_remove_dep taglibs:standard src %pom_remove_dep javax.servlet:jstl src %pom_remove_dep javax.servlet.jsp:jsp-api src %pom_remove_dep org.apache.tomcat:juli src %pom_remove_dep org.springframework:spring-aspects src %pom_remove_dep org.springframework:spring-test src %pom_remove_dep org.jboss.weld:weld-se src %pom_remove_dep mockobjects:mockobjects-core src %pom_remove_dep mockobjects:mockobjects-jdk1.3 src %pom_remove_dep mockobjects:mockobjects-alt-jdk1.3 src %pom_remove_dep mockobjects:mockobjects-alt-jdk1.3-j2ee1.3 src %pom_remove_dep mockobjects:mockobjects-jdk1.3-j2ee1.3 src %pom_remove_dep jmock:jmock src %pom_remove_dep jmock:jmock-cglib src sed -i "s|javax.servlet|org.apache.tomcat|" src/pom.xml sed -i "s|jsp-api|jsp-api|" src/pom.xml sed -i "s|servlet-api|servlet-api|" src/pom.xml #sed -i "s|jasper|tomcat-jasper|" src/pom.xml #[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project struts2-core: Compilation failure: Compilation failure: #[ERROR] struts-2.3.4.1/src/core/src/main/java/org/apache/struts2/util/URLBean.java:[75,52] error: incompatible types #[ERROR] #[ERROR] #[ERROR] struts-2.3.4.1/src/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java:[244,16] error: method mergeRequestParameters in class ServletUrlRenderer cannot be applied to given types; #[ERROR] -> [Help 1] #[ERROR] struts-2.3.4.1/src/core/src/main/java/org/apache/struts2/util/URLBean.java:[75,52] incompatible types #[ERROR] found : java.util.Map #[ERROR] required: java.util.Map #[ERROR] #[ERROR] struts-2.3.4.1/src/core/src/main/java/org/apache/struts2/components/ServletUrlRenderer.java:[244,16] mergeRequestParameters(java.lang.String,java.util.Map,java.util.Map) in org.apache.struts2.components.ServletUrlRenderer cannot be applied to (java.lang.String,java.util.Map,java.util.Map) #[ERROR] -> [Help 1] sed -i "s|cglib-nodep|cglib|" src/xwork-core/pom.xml %pom_remove_plugin :retrotranslator-maven-plugin src #om_remove_plugin org.apache.myfaces.tobago:maven-apt-plugin src/core #om_remove_plugin org.apache.myfaces.tobago:maven-apt-plugin src/plugins/dojo sed -i "s|org.apache.myfaces.tobago|org.bsc.maven|" src/core/pom.xml src/plugins/dojo/pom.xml sed -i "s|maven-apt-plugin|maven-processor-plugin|" src/core/pom.xml src/plugins/dojo/pom.xml sed -i "s|execute|process|" src/core/pom.xml src/plugins/dojo/pom.xml %pom_remove_dep org.springframework:spring-aspects src/xwork-core %pom_remove_dep org.springframework:spring-test src/xwork-core # require unavailable retrotranslator-maven-plugin %pom_xpath_remove pom:project/pom:profiles src/xwork-core %pom_remove_dep javax.servlet:jsp-api src/core %pom_xpath_inject "pom:project/pom:dependencies" " org.apache.tomcat jsp-api provided " src/core %pom_remove_dep javax.servlet:servlet-api src/core %pom_xpath_inject "pom:project/pom:dependencies" " org.apache.tomcat servlet-api provided " src/core %pom_remove_dep myfaces:myfaces-jsf-api src/plugins/jsf %pom_xpath_inject "pom:project/pom:dependencies" " org.jboss.spec.javax.faces jboss-jsf-api_2.1_spec 2.0.2.Final provided " src/plugins/jsf for p in codebehind convention dojo jfreechart json struts1; do %pom_remove_dep javax.servlet:jsp-api src/plugins/${p} %pom_xpath_inject "pom:project/pom:dependencies" " org.apache.tomcat tomcat-jsp-api provided " src/plugins/${p} done %pom_remove_dep org.springframework:spring-test src/plugins/rest %pom_disable_module apps src %pom_disable_module archetypes src # require struts2-osgi-plugin %pom_disable_module bundles src # require uk.ltd.getahead dwr 1.1.1 http://getahead.ltd.uk/dwr/ http://svn.directwebremoting.org/dwr/tags/ %pom_disable_module dwr src/plugins %pom_remove_dep org.apache.struts:struts2-dwr-plugin src # some deps have broken pom file #om_disable_module embeddedjsp src/plugins # require com.google.gxp google-gxp 0.2.4-beta http://code.google.com/p/gxp/ %pom_disable_module gxp src/plugins # require org.springframework spring-test %pom_disable_module junit src/plugins %pom_remove_dep org.apache.struts:struts2-junit-plugin src # require org.apache.felix org.apache.felix.main 1.4.1 %pom_disable_module osgi src/plugins %pom_remove_dep org.apache.felix:org.apache.felix.main src # require net.sf.oval oval 1.31 http://oval.sourceforge.net/ %pom_disable_module oval src/plugins %pom_remove_dep net.sf.oval:oval src # require opensymphony pell-multipart #om_disable_module pell-multipart src/plugins # require org.codehaus.plexus plexus-container-default 1.0-alpha-10 %pom_disable_module plexus src/plugins # require org.apache.velocity velocity-tools 1.3 %pom_disable_module portlet src/plugins %pom_remove_dep org.apache.struts:struts2-portlet-plugin src # require org.mortbay.jetty jetty 5.1.4 %pom_disable_module sitegraph src/plugins %pom_remove_dep org.mortbay.jetty:jetty src %pom_remove_dep org.mortbay.jetty:jsp-2.1 src # require org.apache.velocity velocity-tools 1.3 opensymphony sitemesh 2.4.2 %pom_disable_module sitemesh src/plugins # require org.springframework spring-test %pom_disable_module testng src/plugins %pom_remove_dep org.testng:testng src # require org.apache.tiles tiles-core tiles-jsp 2.0.6 %pom_disable_module tiles src/plugins %pom_remove_dep org.apache.tiles:tiles-core src %pom_remove_dep org.apache.tiles:tiles-jsp src sed -i "s|jdk15||" $(find src -name "pom.xml") %build cd src # tests skipped for unavailable deps: # org.springframework spring-test, taglibs request, mockobjects, jmock #export JAVA_HOME=%{_jvmdir}/java-1.6.0 mvn-rpmbuild \ -DskipAssembly=true \ -Dmaven.test.skip=true \ -Dproject.build.sourceEncoding=UTF-8 \ install javadoc:aggregate %install a mkdir -p %{buildroot}%{_mavenpomdir} install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP-%{name}-master.pom %add_maven_depmap JPP-%{name}-master.pom install -pm 644 src/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-parent.pom %add_maven_depmap JPP.%{name}-parent.pom mkdir -p %{buildroot}%{_javadir}/%{name} install -m 644 src/core/target/%{name}-core-%{version}.jar %{buildroot}%{_javadir}/%{name}/%{name}-core.jar install -pm 644 src/core/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-core.pom %add_maven_depmap JPP.%{name}-%{name}-core.pom %{name}/%{name}-core.jar -f core install -m 644 src/xwork-core/target/xwork-core-%{version}.jar %{buildroot}%{_javadir}/%{name}/xwork-core.jar install -pm 644 src/xwork-core/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-xwork-core.pom %add_maven_depmap JPP.%{name}-xwork-core.pom %{name}/xwork-core.jar -f xwork-core pushd src/plugins install -pm 644 pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-plugins-parent.pom %add_maven_depmap JPP.%{name}-plugins-parent.pom -f plugins-parent # TODO dwr embeddedjsp gxp junit osgi oval pell-multipart plexus portlet sitegraph sitemesh testng tiles for m in cdi \ codebehind \ config-browser \ convention \ dojo \ jasperreports \ javatemplates \ jfreechart \ jsf \ json \ pell-multipart \ rest \ spring \ struts1; do install -m 644 ${m}/target/%{name}-${m}-plugin-%{version}.jar %{buildroot}%{_javadir}/%{name}/%{name}-${m}-plugin.jar install -pm 644 ${m}/pom.xml %{buildroot}%{_mavenpomdir}/JPP.%{name}-%{name}-${m}-plugin.pom %add_maven_depmap JPP.%{name}-%{name}-${m}-plugin.pom %{name}/%{name}-${m}-plugin.jar -f ${m}-plugin done popd mkdir -p %{buildroot}%{_javadocdir}/%{name} cp -pr src/target/site/apidocs/* %{buildroot}%{_javadocdir}/%{name} %files %dir %{_javadir}/%{name} %{_mavenpomdir}/JPP-%{name}-master.pom %{_mavenpomdir}/JPP.%{name}-parent.pom %{_mavendepmapfragdir}/%{name} %doc LICENSE.txt NOTICE.txt %files core %{_javadir}/%{name}/%{name}-core.jar %{_mavenpomdir}/JPP.%{name}-%{name}-core.pom %{_mavendepmapfragdir}/%{name}-core %doc LICENSE.txt NOTICE.txt %files xwork-core %{_javadir}/%{name}/xwork-core.jar %{_mavenpomdir}/JPP.%{name}-xwork-core.pom %{_mavendepmapfragdir}/%{name}-xwork-core %doc LICENSE.txt NOTICE.txt %files plugins-parent %{_mavenpomdir}/JPP.%{name}-plugins-parent.pom %{_mavendepmapfragdir}/%{name}-plugins-parent %doc LICENSE.txt NOTICE.txt %files cdi-plugin %{_javadir}/%{name}/%{name}-cdi-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-cdi-plugin.pom %{_mavendepmapfragdir}/%{name}-cdi-plugin %doc LICENSE.txt NOTICE.txt %files codebehind-plugin %{_javadir}/%{name}/%{name}-codebehind-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-codebehind-plugin.pom %{_mavendepmapfragdir}/%{name}-codebehind-plugin %doc LICENSE.txt NOTICE.txt %files config-browser-plugin %{_javadir}/%{name}/%{name}-config-browser-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-config-browser-plugin.pom %{_mavendepmapfragdir}/%{name}-config-browser-plugin %doc LICENSE.txt NOTICE.txt %files convention-plugin %{_javadir}/%{name}/%{name}-convention-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-convention-plugin.pom %{_mavendepmapfragdir}/%{name}-convention-plugin %doc LICENSE.txt NOTICE.txt %files dojo-plugin %{_javadir}/%{name}/%{name}-dojo-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-dojo-plugin.pom %{_mavendepmapfragdir}/%{name}-dojo-plugin %doc LICENSE.txt NOTICE.txt %files jasperreports-plugin %{_javadir}/%{name}/%{name}-jasperreports-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-jasperreports-plugin.pom %{_mavendepmapfragdir}/%{name}-jasperreports-plugin %doc LICENSE.txt NOTICE.txt %files javatemplates-plugin %{_javadir}/%{name}/%{name}-javatemplates-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-javatemplates-plugin.pom %{_mavendepmapfragdir}/%{name}-javatemplates-plugin %doc LICENSE.txt NOTICE.txt %files jfreechart-plugin %{_javadir}/%{name}/%{name}-jfreechart-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-jfreechart-plugin.pom %{_mavendepmapfragdir}/%{name}-jfreechart-plugin %doc LICENSE.txt NOTICE.txt %files jsf-plugin %{_javadir}/%{name}/%{name}-jsf-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-jsf-plugin.pom %{_mavendepmapfragdir}/%{name}-jsf-plugin %doc LICENSE.txt NOTICE.txt %files json-plugin %{_javadir}/%{name}/%{name}-json-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-json-plugin.pom %{_mavendepmapfragdir}/%{name}-json-plugin %doc LICENSE.txt NOTICE.txt %files pell-multipart-plugin %{_javadir}/%{name}/%{name}-pell-multipart.jar %{_mavenpomdir}/JPP.%{name}-%{name}-pell-multipart.pom %{_mavendepmapfragdir}/%{name}-pell-multipart %doc LICENSE.txt NOTICE.txt %files rest-plugin %{_javadir}/%{name}/%{name}-rest-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-rest-plugin.pom %{_mavendepmapfragdir}/%{name}-rest-plugin %doc LICENSE.txt NOTICE.txt %files spring-plugin %{_javadir}/%{name}/%{name}-spring-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-spring-plugin.pom %{_mavendepmapfragdir}/%{name}-spring-plugin %doc LICENSE.txt NOTICE.txt %files struts1-plugin %{_javadir}/%{name}/%{name}-struts1-plugin.jar %{_mavenpomdir}/JPP.%{name}-%{name}-struts1-plugin.pom %{_mavendepmapfragdir}/%{name}-struts1-plugin %doc LICENSE.txt NOTICE.txt %files javadoc %{_javadocdir}/%{name} %doc LICENSE.txt NOTICE.txt %changelog * Fri Oct 05 2012 gil cattaneo 2.3.4.1-1 - initial rpm