%global namedreltag .RELEASE
%global namedversion %{version}%{?namedreltag}
%global oname spring-social
Name: springframework-social
# Newer release require springframework >= 4.0.6.RELEASE
Version: 1.0.3
Release: 1%{?dist}
Summary: Connect your applications with SaaS providers such as Facebook and Twitter
License: ASL 2.0
URL: http://projects.spring.io/spring-social/
Source0: https://github.com/spring-projects/spring-social/archive/v%{namedversion}.tar.gz
Source1: http://repo1.maven.org/maven2/org/springframework/social/%{oname}-core/%{namedversion}/%{oname}-core-%{namedversion}.pom
Source2: http://repo1.maven.org/maven2/org/springframework/social/%{oname}-test/%{namedversion}/%{oname}-test-%{namedversion}.pom
Source3: http://repo1.maven.org/maven2/org/springframework/social/%{oname}-web/%{namedversion}/%{oname}-web-%{namedversion}.pom
BuildRequires: maven-local
BuildRequires: mvn(com.h2database:h2)
BuildRequires: mvn(commons-codec:commons-codec)
BuildRequires: mvn(javax.inject:javax.inject)
BuildRequires: mvn(javax.servlet:javax.servlet-api)
BuildRequires: mvn(javax.servlet.jsp:javax.servlet.jsp-api)
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(org.apache.httpcomponents:httpclient)
BuildRequires: mvn(org.codehaus.jackson:jackson-mapper-asl)
BuildRequires: mvn(org.hamcrest:hamcrest-library)
BuildRequires: mvn(org.mockito:mockito-core)
BuildRequires: mvn(org.springframework:spring-jdbc)
BuildRequires: mvn(org.springframework:spring-test)
BuildRequires: mvn(org.springframework:spring-web)
BuildRequires: mvn(org.springframework:spring-webmvc)
BuildRequires: mvn(org.springframework.security:spring-security-crypto)
BuildArch: noarch
%description
The Spring Social project allows you to integrate the
APIs exposed by Software-as-a-Service (SaaS) providers
such as Facebook and Twitter into your applications.
It consists of a service provider 'connect' framework,
sign-in support, and strongly-typed Java API bindings.
%package javadoc
Summary: Javadoc for %{name}
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -n %{oname}-%{namedversion}
find . -name "*.bat" -delete
find . -name "*.class" -delete
find . -name "*.jar" -delete
cp -p %{SOURCE1} %{oname}-core/pom.xml
cp -p %{SOURCE2} %{oname}-test/pom.xml
cp -p %{SOURCE3} %{oname}-web/pom.xml
# This is a dummy POM added just to ease building in the RPM platforms
cat > pom.xml << EOF
4.0.0
org.springframework.social
spring-social
%{namedversion}
pom
Spring Social
spring-social-core
spring-social-test
spring-social-web
EOF
# Add OSGi support
for p in core test web; 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
# Use commons-codec instead of unbundle spring-security-crypto Base64 class
sed -i "s|org.springframework.security.crypto.codec.Base64|org.apache.commons.codec.binary.Base64|" \
spring-social-core/src/main/java/org/springframework/social/oauth1/SigningSupport.java \
spring-social-core/src/main/java/org/springframework/social/oauth2/PreemptiveBasicAuthClientHttpRequestInterceptor.java
sed -i "s|Base64.encode|Base64.encodeBase64|" \
spring-social-core/src/main/java/org/springframework/social/oauth1/SigningSupport.java \
spring-social-core/src/main/java/org/springframework/social/oauth2/PreemptiveBasicAuthClientHttpRequestInterceptor.java
%pom_add_dep commons-codec:commons-codec:1.10:compile %{oname}-core
# Fix test dep
%pom_add_dep com.h2database:h2:1.3.170:test %{oname}-core
%pom_add_dep junit:junit:4.11:test %{oname}-core
%pom_add_dep org.mockito:mockito-core:1.9.5:test %{oname}-core
%pom_add_dep junit:junit:4.11:test %{oname}-test
%pom_add_dep org.codehaus.jackson:jackson-mapper-asl:1.9.9:test %{oname}-test
%pom_add_dep org.codehaus.jackson:jackson-mapper-asl:1.9.9:test %{oname}-web
%pom_add_dep junit:junit:4.11:test %{oname}-web
%pom_add_dep org.springframework:spring-test:3.1.4.RELEASE:test %{oname}-web
%pom_add_dep org.hamcrest:hamcrest-library:1.3:test %{oname}-web
# Copy test resources in default maven location
mkdir -p %{oname}-core/src/test/resources/org/springframework/social/connect/jdbc
cp -p %{oname}-core/src/test/java/org/springframework/social/connect/jdbc/PrefixedJdbcUsersConnectionRepository.sql \
%{oname}-core/src/test/resources/org/springframework/social/connect/jdbc/
mkdir -p %{oname}-test/src/test/resources/org/springframework/social/connect/{oauth1,oauth2}
cp -p %{oname}-test/src/test/java/org/springframework/social/connect/oauth1/*.formencoded \
%{oname}-test/src/test/resources/org/springframework/social/connect/oauth1/
cp -p %{oname}-test/src/test/java/org/springframework/social/connect/oauth2/*.facebook \
%{oname}-test/src/test/resources/org/springframework/social/connect/oauth2/
cp -p %{oname}-test/src/test/java/org/springframework/social/connect/oauth2/*.json \
%{oname}-test/src/test/resources/org/springframework/social/connect/oauth2/
mkdir -p %{oname}-test/src/test/resources/org/springframework/social/{oauth1,oauth2}
cp -p %{oname}-test/src/test/java/org/springframework/social/oauth1/*.formencoded \
%{oname}-test/src/test/resources/org/springframework/social/oauth1/
cp -p %{oname}-test/src/test/java/org/springframework/social/oauth2/*.facebook \
%{oname}-test/src/test/resources/org/springframework/social/oauth2/
cp -p %{oname}-test/src/test/java/org/springframework/social/oauth2/*.json \
%{oname}-test/src/test/resources/org/springframework/social/oauth2/
mkdir -p %{oname}-web/src/main/resources/META-INF
cp -p %{oname}-web/src/main/resources/tld/*.tld %{oname}-web/src/main/resources/META-INF/
# ComparisonFailure: expected: but was:
rm -r %{oname}-core/src/test/java/org/springframework/social/oauth1/SigningSupportTest.java
# Require spring-test-mvc
rm -r %{oname}-web/src/test/java/org/springframework/social/connect/web/ProviderSignInControllerTest.java \
%{oname}-web/src/test/java/org/springframework/social/connect/web/ConnectControllerTest.java
# Force use of servlet 3.1 apis
%pom_change_dep :servlet-api :javax.servlet-api:3.1.0 %{oname}-web
sed -i 's/\r//' src/dist/*.txt
%mvn_package :%{oname} __noinstall
%build
%mvn_build -- -Dproject.build.sourceEncoding=UTF-8
%install
%mvn_install
%files -f .mfiles
%doc README src/dist/changelog.txt src/dist/readme.txt
%license LICENSE NOTICE src/dist/license.txt src/dist/notice.txt
%files javadoc -f .mfiles-javadoc
%license LICENSE NOTICE src/dist/license.txt src/dist/notice.txt
%changelog
* Sun Sep 27 2015 gil cattaneo 1.0.3-1
- initial rpm