Name: asynchbase
Version: 1.7.2
Release: 1%{?dist}
Summary: An alternative HBase client library
# ASL 2.0 protobuf/*.proto
License: ASL 2.0 and BSD
URL: http://opentsdb.net/
Source0: https://github.com/OpenTSDB/asynchbase/archive/v%{version}/%{name}-%{version}.tar.gz
# Move to Protobuf 3.1
Patch0: https://github.com/OpenTSDB/asynchbase/commit/a91355b320367318e6a3f30399b22e245bc0762b.patch
BuildRequires: maven-local
BuildRequires: mvn(com.google.guava:guava)
BuildRequires: mvn(com.google.protobuf:protobuf-java)
BuildRequires: mvn(com.stumbleupon:async)
BuildRequires: mvn(io.netty:netty:3)
BuildRequires: mvn(junit:junit)
BuildRequires: mvn(org.apache.ant:ant)
BuildRequires: mvn(org.apache.maven.plugins:maven-antrun-plugin)
BuildRequires: mvn(org.apache.zookeeper:zookeeper)
BuildRequires: mvn(org.hamcrest:hamcrest-core)
BuildRequires: mvn(org.javassist:javassist)
BuildRequires: mvn(org.mockito:mockito-all)
BuildRequires: mvn(org.objenesis:objenesis)
BuildRequires: mvn(org.powermock:powermock-api-mockito)
BuildRequires: mvn(org.powermock:powermock-module-junit4)
BuildRequires: mvn(org.slf4j:log4j-over-slf4j)
BuildRequires: mvn(org.slf4j:slf4j-api)
BuildRequires: mvn(org.sonatype.oss:oss-parent:pom:)
BuildRequires: protobuf-compiler
# protobuf/*.proto
Provides: bundled(hbase) = 0.98.0
BuildArch: noarch
%description
An alternative HBase client library for applications requiring fully
asynchronous, non-blocking and thread-safe HBase connectivity.
%package javadoc
Summary: Javadoc for %{name}
%description javadoc
This package contains javadoc for %{name}.
%prep
%setup -q -n %{name}-%{version}
%patch0 -p1
%pom_xpath_remove pom:build/pom:extensions pom.xml.in
# Cleanup
rm -r .mvn-compat
find . -name "*.class" -print -delete
find . -name "*.jar" -print -delete
find . -name "*.md5" -print -delete
# Use netty compat version
sed -i "s|3.9.4.Final|3|" third_party/netty/include.mk
# Fix non standard source location
%pom_xpath_set pom:build/pom:sourceDirectory src pom.xml.in
# Unwanted
%pom_remove_plugin :maven-dependency-plugin pom.xml.in
%pom_remove_plugin :maven-gpg-plugin pom.xml.in
%pom_remove_plugin :maven-javadoc-plugin pom.xml.in
%pom_remove_plugin :maven-source-plugin pom.xml.in
%pom_remove_plugin :nexus-staging-maven-plugin pom.xml.in
# Not available plugin org.xolstice.maven.plugins:protobuf-maven-plugin:0.5.0
%pom_remove_plugin :protobuf-maven-plugin pom.xml.in
%pom_remove_plugin :maven-antrun-plugin pom.xml.in
%pom_add_plugin org.apache.maven.plugins:maven-antrun-plugin pom.xml.in '
generate-sources
generate-sources
target/generated-sources
run
'
# Fix manifest entries
%pom_add_plugin org.apache.maven.plugins:maven-jar-plugin pom.xml.in "
false
true
true
"
# Use jvm apis
rm -r src/jsr166e
find ./src -name "*.java" -exec sed -i "s/org.hbase.async.jsr166e/java.util.concurrent.atomic/g" {} +
# java.lang.Exception: Test class should have public zero-argument constructor
rm -r test/auth/TestLogin.java \
test/TestGetRequest.java \
test/TestMETALookup.java \
test/TestNSREs.java \
test/TestPutRequest.java
# cglib < - > {powermock-api-,}mokito issues
# java.lang.RuntimeException: Unable to set MockitoNamingPolicy on cglib generator which creates FastClasses
rm -r test/TestDeleteRequest.java \
test/TestHBaseRpc.java \
test/TestRegionClient.java \
test/TestRegionClientDecode.java \
test/TestRegionClientSendRpc.java \
test/TestZKClient.java
# java.lang.LinkageError: loader constraint violation in interface itable initialization:
# when resolving method "$java.security.Principal$$EnhancerByMockitoWithCGLIB$$73abe37a.implies(Ljavax/security/auth/Subject;)Z" the
# class loader (instance of org/powermock/core/classloader/MockClassLoader) of the
# current class, $java/security/Principal$$EnhancerByMockitoWithCGLIB$$73abe37a, and the
# class loader (instance of ) for interface java/security/Principal have different Class objects for the
# type javax/security/auth/Subject used in the signature
rm -r test/auth/TestKerberosClientAuthProvider.java
# java.lang.AssertionError: expected:<...> but was:<...>
rm -r test/TestHBaseClientLocateRegion.java
%mvn_file : %{name}
%build
# Generate POM file
make %{?_smp_mflags} pom.xml
%mvn_build
%install
%mvn_install
%files -f .mfiles
%doc AUTHORS HACKING NEWS README THANKS protobuf/README.txt
%license COPYING protobuf/LICENSE.txt
%files javadoc -f .mfiles-javadoc
%license COPYING protobuf/LICENSE.txt
%changelog
* Thu Oct 06 2016 gil cattaneo 1.7.2-1
- update to 1.7.2
* Sun Nov 08 2015 gil cattaneo 1.7.0-1
- update to 1.7.0
* Mon Jul 20 2015 gil cattaneo 1.6.0-1
- update to 1.6.0
* Mon Nov 25 2013 gil cattaneo 1.4.1-1
- initial rpm