%if 0%{?fedora}
# Unavailable deps
# https://bugzilla.redhat.com/show_bug.cgi?id=1325689
%bcond_with jdk8
# https://bugzilla.redhat.com/show_bug.cgi?id=1325688
%bcond_with jsr310
%endif
Name: airlift
Version: 0.126
Release: 1%{?dist}
Summary: Java Framework for building REST services
License: ASL 2.0
URL: https://github.com/airlift/airlift
Source0: https://github.com/airlift/airlift/archive/%{version}.tar.gz
BuildRequires: maven-local
BuildRequires: mvn(cglib:cglib)
BuildRequires: mvn(ch.qos.logback:logback-core)
BuildRequires: mvn(com.fasterxml.jackson.core:jackson-annotations)
BuildRequires: mvn(com.fasterxml.jackson.core:jackson-core)
BuildRequires: mvn(com.fasterxml.jackson.core:jackson-databind)
BuildRequires: mvn(com.fasterxml.jackson.dataformat:jackson-dataformat-smile)
BuildRequires: mvn(com.fasterxml.jackson.datatype:jackson-datatype-guava)
%if %{with jdk8}
BuildRequires: mvn(com.fasterxml.jackson.datatype:jackson-datatype-jdk8)
%endif
BuildRequires: mvn(com.fasterxml.jackson.datatype:jackson-datatype-joda)
%if %{with jsr310}
BuildRequires: mvn(com.fasterxml.jackson.datatype:jackson-datatype-jsr310)
%endif
BuildRequires: mvn(com.google.code.findbugs:annotations)
BuildRequires: mvn(com.google.code.findbugs:jsr305)
BuildRequires: mvn(com.google.guava:guava)
BuildRequires: mvn(com.google.inject:guice)
BuildRequires: mvn(com.google.inject.extensions:guice-multibindings)
BuildRequires: mvn(com.h2database:h2)
# https://bugzilla.redhat.com/show_bug.cgi?id=1325690
BuildRequires: mvn(io.airlift:slice)
BuildRequires: mvn(javax.inject:javax.inject)
BuildRequires: mvn(javax.servlet:javax.servlet-api)
BuildRequires: mvn(javax.validation:validation-api)
BuildRequires: mvn(javax.ws.rs:javax.ws.rs-api)
BuildRequires: mvn(joda-time:joda-time)
BuildRequires: mvn(mysql:mysql-connector-java)
BuildRequires: mvn(org.apache.bval:bval-jsr)
BuildRequires: mvn(org.eclipse.jetty:jetty-client)
BuildRequires: mvn(org.eclipse.jetty:jetty-http)
BuildRequires: mvn(org.eclipse.jetty:jetty-io)
BuildRequires: mvn(org.eclipse.jetty:jetty-jmx)
BuildRequires: mvn(org.eclipse.jetty:jetty-security)
BuildRequires: mvn(org.eclipse.jetty:jetty-server)
BuildRequires: mvn(org.eclipse.jetty:jetty-servlet)
BuildRequires: mvn(org.eclipse.jetty:jetty-util)
BuildRequires: mvn(org.glassfish.jersey.containers:jersey-container-servlet)
BuildRequires: mvn(org.glassfish.jersey.containers:jersey-container-servlet-core)
BuildRequires: mvn(org.glassfish.jersey.core:jersey-common)
BuildRequires: mvn(org.glassfish.jersey.core:jersey-server)
BuildRequires: mvn(org.mockito:mockito-core)
BuildRequires: mvn(org.openjdk.jmh:jmh-core)
# https://bugzilla.redhat.com/show_bug.cgi?id=1325671
BuildRequires: mvn(org.openjdk.jol:jol-core)
BuildRequires: mvn(org.slf4j:jcl-over-slf4j)
BuildRequires: mvn(org.slf4j:log4j-over-slf4j)
BuildRequires: mvn(org.slf4j:slf4j-jdk14)
BuildRequires: mvn(org.testng:testng)
# https://bugzilla.redhat.com/show_bug.cgi?id=1325672
BuildRequires: mvn(org.weakref:jmxutils)
BuildArch: noarch
%description
Airlift is a framework for building REST services in Java.
%package javadoc
Summary: Javadoc for %{name}
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -n airlift-%{version}
find -name '*.class' -print -delete
find -name '*.jar' -print -delete
# https://github.com/airlift/procname
rm -r launcher/src/main/resources/procname/Linux-x86_64/
%pom_disable_module launcher
%pom_disable_module packaging
# io.airlift:airbase:pom:51
%pom_remove_parent
%pom_xpath_inject "pom:project" "io.airlift"
%pom_add_plugin org.apache.maven.plugins:maven-compiler-plugin:3.0 . '
1.8
'
%pom_change_dep -r org.eclipse.jetty: ::9.3.8.v20160314
%pom_change_dep -r :testng ::6.9.6
%pom_change_dep -r :guava ::18.0
%pom_change_dep -r :cglib-nodep :cglib
# use bval 1.1.1
%pom_change_dep -r :bval-jsr303 :bval-jsr:1.1.1
sed -i "s|org.apache.bval.jsr303|org.apache.bval.jsr|" \
testing/src/main/java/io/airlift/testing/ValidationAssertions.java \
configuration/src/main/java/io/airlift/configuration/ConfigurationFactory.java \
units/src/test/java/io/airlift/units/TestDurationValidator.java \
units/src/test/java/io/airlift/units/TestDataSizeValidator.java \
jaxrs/src/main/java/io/airlift/jaxrs/JsonMapper.java
# com.fasterxml.jackson.datatype:jackson-datatype-jdk7 This module is deprecate
%pom_remove_dep :jackson-datatype-jdk7 json
sed -i '/dk7/d' \
json/src/main/java/io/airlift/json/ObjectMapperProvider.java
%if %{without jdk8}
%pom_remove_dep :jackson-datatype-jdk8 json
sed -i '/dk8/d' \
json/src/main/java/io/airlift/json/ObjectMapperProvider.java
%endif
%if %{without jsr310}
%pom_remove_dep :jackson-datatype-jsr310 json
sed -i '/310/d' \
json/src/main/java/io/airlift/json/ObjectMapperProvider.java
%endif
# NoClassDefFoundError: net/sf/cglib/proxy/CallbackFilter
%pom_add_dep cglib:cglib::test json
# package javax.annotation.concurrent does not exist
%pom_add_dep com.google.code.findbugs:jsr305:2.0.3 log-manager
%pom_add_dep com.google.code.findbugs:jsr305:2.0.3 concurrent
# Use org.openjdk.jmh::0.3 cannot find symbol org.openjdk.jmh.annotations.GenerateMicroBenchmark
rm stats/src/test/java/io/airlift/stats/cardinality/BenchmarkDenseHll.java \
stats/src/test/java/io/airlift/stats/cardinality/BenchmarkSparseHll.java
# AssertionError: socket backlog is too large (41 connections accepted)
rm http-client/src/test/java/io/airlift/http/client/jetty/TestAsyncJettyHttpClient.java \
http-client/src/test/java/io/airlift/http/client/jetty/TestJettyHttpClient.java \
http-client/src/test/java/io/airlift/http/client/jetty/TestJettyHttpsClient.java
# Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol
# (protocol is disabled or cipher suites are inappropriate)
rm -r http-server/src/test/java/*
%build
%mvn_build -- -Dproject.build.sourceEncoding=UTF-8
%install
%mvn_install
%files -f .mfiles
%doc CHANGES NEWS README.md
%license LICENSE
%files javadoc -f .mfiles-javadoc
%license LICENSE
%changelog
* Sun Apr 10 2016 gil cattaneo 0.126-1
- initial rpm