%global namedreltag .RELEASE %global namedversion %{version}%{?namedreltag} %global oname spring-integration Name: springframework-integration # Newer release require springframework >= 4.1.7.RELEASE Version: 3.0.7 Release: 1%{?dist} Summary: Extends the Spring Enterprise Integration Patterns Support License: ASL 2.0 URL: http://projects.spring.io/spring-integration/ Source0: https://github.com/spring-projects/spring-integration/archive/v%{namedversion}.tar.gz # sh spring-integration-get-poms.sh Source1: spring-integration-poms-%{namedversion}.tar.xz Source2: spring-integration-get-poms.sh Patch0: springframework-integration-3.0.7-spring-retry1.1.patch BuildRequires: maven-local BuildRequires: mvn(com.fasterxml.jackson.core:jackson-databind) BuildRequires: mvn(com.google.guava:guava) BuildRequires: mvn(com.h2database:h2) BuildRequires: mvn(com.jayway.jsonpath:json-path) BuildRequires: mvn(com.jcraft:jsch) BuildRequires: mvn(com.lambdaworks:lettuce) BuildRequires: mvn(com.sun.xml.messaging.saaj:saaj-impl) BuildRequires: mvn(commons-io:commons-io) BuildRequires: mvn(commons-net:commons-net) BuildRequires: mvn(javax.mail:mail) BuildRequires: mvn(javax.xml.soap:saaj-api) BuildRequires: mvn(junit:junit) BuildRequires: mvn(log4j:log4j:1.2.17) BuildRequires: mvn(org.apache.activemq:activemq-core) BuildRequires: mvn(org.apache.geronimo.specs:geronimo-jms_1.1_spec) BuildRequires: mvn(org.apache.geronimo.specs:specs:pom:) BuildRequires: mvn(org.apache.openjpa:openjpa-jdbc) BuildRequires: mvn(org.apache.sshd:sshd-core) BuildRequires: mvn(org.aspectj:aspectjweaver) BuildRequires: mvn(org.codehaus.groovy:groovy-all) BuildRequires: mvn(org.codehaus.jackson:jackson-mapper-asl) BuildRequires: mvn(org.easymock:easymock) BuildRequires: mvn(org.hamcrest:hamcrest-all) BuildRequires: mvn(org.hibernate.javax.persistence:hibernate-jpa-2.0-api) BuildRequires: mvn(org.mockito:mockito-core) BuildRequires: mvn(org.powermock:powermock-api-mockito) BuildRequires: mvn(org.powermock:powermock-module-junit4) BuildRequires: mvn(org.python:jython-standalone) BuildRequires: mvn(org.springframework:spring-aop) BuildRequires: mvn(org.springframework:spring-context) BuildRequires: mvn(org.springframework:spring-context-support) BuildRequires: mvn(org.springframework:spring-expression) BuildRequires: mvn(org.springframework:spring-jdbc) BuildRequires: mvn(org.springframework:spring-jms) BuildRequires: mvn(org.springframework:spring-orm) BuildRequires: mvn(org.springframework:spring-oxm) BuildRequires: mvn(org.springframework:spring-test) BuildRequires: mvn(org.springframework:spring-tx) BuildRequires: mvn(org.springframework:spring-web) BuildRequires: mvn(org.springframework:spring-webmvc) BuildRequires: mvn(org.springframework.amqp:spring-rabbit) BuildRequires: mvn(org.springframework.data:spring-data-mongodb) BuildRequires: mvn(org.springframework.data:spring-data-redis) BuildRequires: mvn(org.springframework.retry:spring-retry) BuildRequires: mvn(org.springframework.security:spring-security-config) BuildRequires: mvn(org.springframework.security:spring-security-core) BuildRequires: mvn(org.springframework.social:spring-social-twitter) BuildRequires: mvn(org.springframework.ws:spring-ws-core) BuildRequires: mvn(org.springframework.ws:spring-ws-support) BuildRequires: mvn(org.springframework.ws:spring-xml) BuildRequires: mvn(xmlunit:xmlunit) BuildArch: noarch %description Extends the Spring programming model to support the well-known Enterprise Integration Patterns. Spring Integration enables lightweight messaging within Spring-based applications and supports integration with external systems via declarative adapters. Those adapters provide a higher-level of abstraction over Spring's support for remoting, messaging, and scheduling. Spring Integration's primary goal is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code. %package javadoc Summary: Javadoc for %{name} %description javadoc This package contains javadoc for %{name}. %prep %setup -q -n %{oname}-%{namedversion} -a1 find . -name "*.bat" -delete find . -name "*.class" -delete find . -name "*.jar" -delete %patch0 -p1 # This is a dummy POM added just to ease building in the RPM platforms cat > pom.xml << EOF 4.0.0 org.springframework.integration spring-integration %{namedversion} pom Spring Integration spring-integration-amqp spring-integration-core spring-integration-event spring-integration-file spring-integration-ftp spring-integration-groovy spring-integration-ip spring-integration-jdbc spring-integration-jms spring-integration-jmx spring-integration-jpa spring-integration-mail spring-integration-mongodb spring-integration-redis spring-integration-rmi spring-integration-scripting spring-integration-security spring-integration-sftp spring-integration-stream spring-integration-syslog spring-integration-test spring-integration-twitter spring-integration-ws spring-integration-xml EOF # Use jvm apis %pom_remove_dep javax.activation:activation %{oname}-ftp %pom_remove_dep javax.activation:activation %{oname}-mail %pom_remove_dep javax.activation:activation %{oname}-sftp %pom_remove_dep javax.activation:activation %{oname}-twitter %pom_remove_dep javax.activation:activation %{oname}-ws %pom_remove_dep javax.activation:activation %{oname}-xml %pom_remove_dep javax.activation:activation %{oname}-xmpp # Add OSGi support for p in amqp \ core \ event \ feed \ file \ ftp \ gemfire \ groovy \ http \ ip \ jdbc \ jms \ jmx \ jpa \ mail \ mongodb \ redis \ rmi \ scripting \ security \ sftp \ stream \ syslog \ test \ twitter \ ws \ xml \ xmpp; do %pom_xpath_inject "pom:project" "bundle" %{oname}-${p} %pom_add_plugin org.apache.felix:maven-bundle-plugin:2.5.4 %{oname}-${p} " true \${project.groupId}.${p} \${project.name} \${project.version} bundle-manifest process-classes manifest " done # fix non ASCII chars for s in %{oname}-core/src/main/java/org/springframework/integration/aggregator/AbstractCorrelatingMessageHandler.java \ %{oname}-core/src/main/java/org/springframework/integration/aggregator/SequenceSizeReleaseStrategy.java;do native2ascii -encoding UTF8 ${s} ${s} done # Add Test deps %pom_add_dep junit:junit:4.11:test %{oname}-core %pom_add_dep org.easymock:easymock:3.3.1:test %{oname}-core %pom_add_dep org.hamcrest:hamcrest-all:1.3:test %{oname}-core %pom_add_dep org.mockito:mockito-core:1.9.5:test %{oname}-core %pom_add_dep org.springframework:spring-test:3.2.11.RELEASE:test %{oname}-core %pom_add_dep org.springframework:spring-web:3.2.11.RELEASE:test %{oname}-core %pom_add_dep org.aspectj:aspectjweaver:1.8.4:test %{oname}-core %pom_add_dep org.springframework:spring-web:3.2.11.RELEASE:test %{oname}-amqp %pom_add_dep org.springframework:spring-web:3.2.11.RELEASE:test %{oname}-groovy %pom_add_dep com.h2database:h2:test %{oname}-jdbc %pom_add_dep log4j:log4j:1.2.17:test %{oname}-jdbc %pom_add_dep org.powermock:powermock-module-junit4:1.5:test %{oname}-jdbc %pom_add_dep org.powermock:powermock-api-mockito:1.5:test %{oname}-jdbc %pom_add_dep log4j:log4j:1.2.17:test %{oname}-jms %pom_add_dep org.apache.activemq:activemq-core:5.6.0:test %{oname}-jms %pom_add_dep org.springframework:spring-oxm:3.2.11.RELEASE:test %{oname}-jms %pom_add_dep org.aspectj:aspectjweaver:1.8.4:test %{oname}-jmx %pom_add_dep org.apache.openjpa:openjpa-jdbc:2.2.0:test %{oname}-jpa %pom_add_dep com.fasterxml.jackson.core:jackson-databind:2.5.0:test %{oname}-redis %pom_add_dep org.python:jython-standalone:2.5.2:test %{oname}-scripting %pom_add_dep org.apache.sshd:sshd-core:0.10.0:test %{oname}-sftp %pom_add_dep org.springframework.ws:spring-ws-support:2.1.1.RELEASE:test %{oname}-ws %pom_add_dep xmlunit:xmlunit:1.0:test %{oname}-xml # Fix test deps %pom_add_plugin "org.apache.maven.plugins:maven-jar-plugin:2.6" %{oname}-redis " test-jar " %pom_add_dep org.springframework.integration:spring-integration-redis:'${project.version}':test %{oname}-twitter "test-jar" %pom_add_dep org.springframework.integration:spring-integration-redis:'${project.version}':test %{oname}-twitter %pom_add_dep com.lambdaworks:lettuce:2.3.3:test %{oname}-twitter for p in amqp \ event \ feed \ file \ ftp \ gemfire \ groovy \ http \ ip \ jdbc \ jms \ jmx \ jpa \ mail \ mongodb \ redis \ rmi \ scripting \ security \ sftp \ stream \ syslog \ twitter \ ws \ xml \ xmpp; do %pom_add_dep org.springframework.integration:spring-integration-test:'${project.version}':test %{oname}-${p} %pom_add_dep junit:junit:4.11:test %{oname}-${p} # clone source directory structure find %{oname}-${p}/src/main/java/ -type d | while read dirname ; do newdirname=`echo $dirname | sed "s:%{oname}-${p}/src/main/java:%{oname}-${p}/src/main/resources:g"` mkdir -p $newdirname done # copy everything except *.java sources find %{oname}-${p}/src/main/java/ -type f | grep -v "\.java" | while read cpfrom ; do cpto=`echo $cpfrom | sed "s:%{oname}-${p}/src/main/java:%{oname}-${p}/src/main/resources:g"` cp $cpfrom $cpto done # Copy test resources in default maven location find %{oname}-${p}/src/test/java/ -type d | while read dirname ; do newdirname=`echo $dirname | sed "s:%{oname}-${p}/src/test/java:%{oname}-${p}/src/test/resources:g"` mkdir -p $newdirname done find %{oname}-${p}/src/test/java/ -type f | grep -v "\.java" | while read cpfrom ; do cpto=`echo $cpfrom | sed "s:%{oname}-${p}/src/test/java:%{oname}-${p}/src/test/resources:g"` cp $cpfrom $cpto done done # [55,8] org.springframework.integration.amqp.StubRabbitConnectionFactory is not abstract and does not override abstract method clearConnectionListeners() in org.springframework.amqp.rabbit.connection.ConnectionFactory # [91,24] org.springframework.integration.amqp.StubRabbitConnectionFactory.StubChannel is not abstract and does not override abstract method basicConsume(java.lang.String,boolean,java.util.Map,com.rabbitmq.client.Consumer) in com.rabbitmq.client.Channel rm -r %{oname}-amqp/src/test/java/org/springframework/integration/amqp/StubRabbitConnectionFactory.java # Use org.apache.ftpserver:ftpserver-core:1.0.6 https://bugzilla.redhat.com/show_bug.cgi?id=855843 rm -r %{oname}-ftp/src/test/java/org/springframework/integration/ftp/TesFtpServer.java \ %{oname}-ftp/src/test/java/org/springframework/integration/ftp/outbound/FtpServerOutboundTests.java # package org.easymock.classextension does not exist rm -r %{oname}-mail/src/test/java/org/springframework/integration/mail/config/MailToStringTransformerParserTests.java \ %{oname}-mail/src/test/java/org/springframework/integration/mail/MailReceivingMessageSourceTests.java # Use org.igniterealtime.smack:smack,smackx:3.2.1 rm -r %{oname}-ws/src/test/java/org/springframework/integration/ws/config/UriVariableTests.java # Convert from dos to unix line ending for file in src/dist/*.txt; do sed -i.orig 's|\r||g' $file touch -r $file.orig $file rm $file.orig done %mvn_package :%{oname} __noinstall %build %mvn_build -- -Dproject.build.sourceEncoding=UTF-8 %install %mvn_install %files -f .mfiles %doc CONTRIBUTING.md README.md src/dist/changelog.txt src/dist/readme.txt %license src/dist/license.txt src/dist/notice.txt %files javadoc -f .mfiles-javadoc %license src/dist/license.txt src/dist/notice.txt %changelog * Sun Sep 27 2015 gil cattaneo 3.0.7-1 - initial rpm