Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Merge java client #964

Merged
merged 127 commits into from
May 9, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
127 commits
Select commit Hold shift + click to select a range
ba4dc3c
First commit
shengofsun Mar 10, 2018
c6bb6ff
add java client source code
shengofsun Mar 10, 2018
46a3343
rpc: fix delay overflow, explictly close socket when close, fix test
shengofsun Mar 19, 2018
15be374
fix ut: MetricsPoolTest mistakenly relying on the output order of jso…
shengofsun Mar 19, 2018
cdba5e4
add reverse option in MultiGetOptions to support search in reverse di…
qinzuoyan Mar 20, 2018
7fbde17
fix logging
qinzuoyan Mar 28, 2018
566b68a
Bump version to 1.9.SNAPSHOT-thrift-0.11.0-inlined
qinzuoyan Mar 30, 2018
e8236e7
idl: add namespace for python
acelyc111 Apr 17, 2018
5924f49
add scan test; change default scan batch size (#4)
qinzuoyan Jun 26, 2018
757d789
support incr (#7)
qinzuoyan Jul 11, 2018
78e879f
Bump version to 1.10.SNAPSHOT-thrift-0.11.0-inlined
qinzuoyan Jul 13, 2018
d941b55
add checkAndSet and compareExchange interface (#8)
qinzuoyan Jul 19, 2018
e2cb668
Bump version to 1.11.SNAPSHOT-thrift-0.11.0-inlined
acelyc111 Jul 19, 2018
987796a
rpc: use nio socket channel of netty (#9)
shengofsun Jul 25, 2018
bdf69da
make fields of CheckAndSetResult/CompareExchangeResult public (#10)
qinzuoyan Jul 31, 2018
1414e6c
table: bugfix for hashkey filtering of unorderedScan (#12)
Aug 10, 2018
5822933
rpc: add message filter to support anandon message easily (#13)
shengofsun Aug 14, 2018
7927b4b
add check_and_mutate() (#11)
Aug 17, 2018
171e98c
Bump version to 1.12.SNAPSHOT-thrift-0.11.0-inlined
hycdong Aug 17, 2018
9d0b96c
Mutations: constructor public (#14)
Aug 20, 2018
bac5d3a
Mutations: make all member methods public (#15)
Aug 20, 2018
e06bd86
rpc: add some comments (#16)
shengofsun Aug 21, 2018
a4e45c9
interface: incr support reset ttl (#17)
qinzuoyan Sep 13, 2018
cf7893e
tools: fix Toollet static{} (#18)
Sep 19, 2018
c8d0bb2
logging: validate table name and print log for problem diagnosis (#20)
qinzuoyan Nov 13, 2018
e28961d
tools: add zstd compression support (#21)
Nov 17, 2018
5b9a69a
add copy_data operator in PegasusCli (#23)
qinzuoyan Dec 10, 2018
53e1908
set client_timeout in header (#24)
qinzuoyan Dec 10, 2018
5c260ce
support get forward address from configuration_query_by_index_respons…
qinzuoyan Dec 29, 2018
920217a
re-implement getting forward address from configuration_query_by_inde…
qinzuoyan Jan 14, 2019
3f0f2e6
close session when it's not responding for a while (#32)
Jan 17, 2019
5890bf5
add travis ci support and checkstyle to enforce code style (#35)
Jan 21, 2019
1d81a8c
format test codes and ensure travis fails on unformatted files (#36)
Jan 21, 2019
ffa86ba
ensure if response decode failed, client can be informed (#37)
Jan 22, 2019
dcbbb5e
format sources under base/ (#40)
Mar 5, 2019
6b1beee
fix vulnerability alert of checkstyle (#43)
Mar 18, 2019
6bfc6d3
Adapt to partition split (#44)
hycdong Apr 4, 2019
97559d9
bugfix: fix unit test failure on travis (#47)
Apr 14, 2019
76dcf05
fix travis; fix comments; fix zk client handle not close bug (#46)
qinzuoyan Apr 15, 2019
4f8bd7d
add createClient API with clientOptions (#49)
foreverneverer May 27, 2019
eeabaa5
upgrade netty version to 4.0.56.Final (#50)
Aug 9, 2019
e7a26c9
bugfix: catch and rethrow BlockingOperationException for batchSet (#51)
Aug 16, 2019
c924e2c
fix: handle case where Future.cause() is null in FutureGroup (#52)
Aug 22, 2019
63ad1a5
fix: set error to ERR_SESSION_RESET to trigger meta query while se… (…
Sep 24, 2019
8877531
docs: update PegasusClientFactory annotations (#57)
foreverneverer Oct 12, 2019
2f9cac1
refactor: add more exception info (#59)
foreverneverer Oct 17, 2019
57b9f46
feat: add delRange api (#48)
foreverneverer Oct 18, 2019
59a4a15
feat: support resolving meta host through DNS (#60)
foreverneverer Oct 26, 2019
cce3f89
feat: establish the connection when session is initialized (#38)
Oct 31, 2019
592bcde
feat: add more exception info on synchronous APIs (#62)
Nov 4, 2019
0ec8cb3
feat: have package version prefixed in PException (#63)
Nov 5, 2019
4034941
build(deps): bump netty-all from 4.0.56.Final to 4.1.42.Final (#58)
dependabot[bot] Nov 5, 2019
ce180c5
fix: fix block bug of InetAddressValidator.getInstance() (#64)
foreverneverer Nov 7, 2019
127eb4e
fix: fix bug where timeout in exception info is 0 (#65)
foreverneverer Nov 7, 2019
d078730
refactor: check the value of ttl #69
Nov 14, 2019
0619e2c
fix: add info for ERR_SESSION_RESET when querying meta failed (#66)
Nov 15, 2019
7021c9b
fix: use operation_timeout as socket connect timeout (#73)
Nov 19, 2019
29935c1
refactor: bound minimal value for socket connect timeout (#74)
Nov 19, 2019
612b0d3
fix: add check of invalid ttl value for checkAndSet interface (#75)
Nov 20, 2019
ad297a5
refactor: update async_workers default value to cpu cores number (#76)
foreverneverer Dec 2, 2019
521ba73
build: add maven-shade for zkclient&guava (#72)
foreverneverer Dec 2, 2019
7666a60
fix: handle potential NullPointerException on RequestEntry.timeoutTas…
Dec 11, 2019
fac0ffa
fix: close session when unable to connect (#81)
Dec 17, 2019
3b5c0d1
fix: prevent session to be actively closed when it gets response from…
Jan 6, 2020
50cb7a1
refactor: delete unused log in TableHandler (#87)
levy5307 Feb 12, 2020
d4a30a0
refactor(rpc): refactor request meta to adapt to new version of rpc p…
Feb 28, 2020
28b67ee
feat: implement backup request (#93)
Mar 17, 2020
6100bb6
build(deps): bump checkstyle from 8.18 to 8.29 (#99)
Apr 13, 2020
5d57146
build: add maven-shade for thrift (#71)
foreverneverer Apr 13, 2020
0d23496
feat: forbid large-size-value written to pegasus server (#95)
foreverneverer Apr 28, 2020
2d65cc6
feat: handle scan iteration exceed limit and refactor code (#96)
hycdong Apr 28, 2020
1f746ae
fix: make SetItem Serializable (#101)
May 11, 2020
6a76f58
refactor: reduce parameters in construction of internal Table and Clu…
May 12, 2020
76620ab
feat: add configuration for meta query timeout (#103)
May 12, 2020
197c7ee
fix: use origin expireNanoTime to init new clientRequestRound (#105)
foreverneverer May 13, 2020
67d48d6
improvement: add detailed information when operation has exception (#…
foreverneverer May 19, 2020
717eefe
fix: startSortKey can't pass null (#108)
foreverneverer May 21, 2020
05051e1
build(deps): add dependency of javax.annotation-api (#109)
qinzuoyan May 21, 2020
33a9a05
refactor: optimize perf-counter (#98)
foreverneverer Jun 1, 2020
2b244d9
fix: release streams resource while loading config (#113)
Jun 28, 2020
bd90d94
fix: revert default asyncWorkers value (#114)
foreverneverer Jul 20, 2020
d857d40
chore: change the dev branch to 2.1-SNAPSHOT (#116)
Jul 23, 2020
70047f3
docs: add example on table scan (#120)
Aug 5, 2020
2f5af93
refactor: delete duplicate config and use ClientOptions uniformly (#117)
foreverneverer Aug 5, 2020
8ecd6b3
refactor: restrict enableBackupRequest to read_operator (#128)
Sep 1, 2020
5d60bd1
refactor: using "interceptor" to implement backup-request (#125)
foreverneverer Sep 2, 2020
ed7d4c7
feat: using "interceptor" to enhance the api(compress) (#126)
foreverneverer Sep 4, 2020
1b602ba
feat(security): add negotiation class (#132)
levy5307 Sep 14, 2020
4cf307c
refactor: using abstract Batch class to refactor all batch api (#129)
foreverneverer Sep 16, 2020
a79ea8c
feat(security): implement start negotiation (#134)
levy5307 Sep 18, 2020
3615cfd
feat(security): add ReplicaSession interceptor (#135)
levy5307 Sep 24, 2020
6081cea
test: add license check as a ci step (#140)
Oct 14, 2020
7eb3a56
chore: fix license missing in some files (#141)
Oct 14, 2020
c027e85
chore: fix license for files in rpc/async and metrics/ (#142)
Oct 14, 2020
13d3b36
feat(security): implement AuthProtocol and Credential classes (#139)
levy5307 Nov 6, 2020
6923623
feat(security): handle list mechanism response (#136)
levy5307 Nov 20, 2020
5aa92a0
feat(security): handle mechanism selected response (#137)
levy5307 Nov 24, 2020
befbf8b
feat(security): handle challenge from server (#138)
levy5307 Nov 27, 2020
d17b81a
refactor: remove unused PegasusCli (#144)
Dec 4, 2020
d427496
refactor: remove unused methods in replica session (#143)
Dec 8, 2020
55f7893
feat(security): treat negotiation succeed if server is old version (#…
levy5307 Dec 29, 2020
0091762
fix: make sure return "maxFetchCount" record if valid record is enoug…
foreverneverer Jan 29, 2021
f58574f
docs: change the license to ASF (#147)
Mar 24, 2021
210f9f0
fix: validate the client config value (#153)
foreverneverer Apr 1, 2021
fdcdc6f
fix: return value of asyncNext should use netty future (#155)
ZhongChaoqiang Apr 29, 2021
b8b01a0
fix: scanner.next() won't automatically recover when server side not …
foreverneverer May 8, 2021
f7b18ba
feat(security): refresh tgt in background (#158)
levy5307 Jun 8, 2021
614c76d
chore: update ci from travis to github-action (#163)
foreverneverer Jul 27, 2021
4222817
feat: support session reset time windows config and init default valu…
foreverneverer Jul 27, 2021
034c114
feat: support create client with Proprities object (#166)
foreverneverer Aug 24, 2021
b31c506
feat: adapt partition split (#165)
hycdong Aug 30, 2021
497f1b1
fix: decompress will failed when the value is null (#167)
foreverneverer Sep 26, 2021
b3d80c9
fix: incorrect expire time of client request (#164)
ZhongChaoqiang Sep 28, 2021
e2cc860
fix: gc task may encounter deadlock (#168)
cauchy1988 Oct 26, 2021
ed66cf9
feat: handle ERR_DISK_INSUFFICIENT (#170)
hycdong Oct 26, 2021
83f9ea7
fix: full scan may be failed when the server side encounter error (#171)
cauchy1988 Oct 28, 2021
2fe3531
fix: auto close the io after decompress (#172)
foreverneverer Jan 4, 2022
8f858b6
build: require add issue reference in description using github action…
foreverneverer Jan 6, 2022
5e297d4
fix: batchMultiGet may not fetch all required data (#177)
cauchy1988 Feb 10, 2022
fd2c32a
feat: change download url of pegasus tools (#178)
levy5307 Feb 24, 2022
fe4bfa2
feat: add a batch get client interface which uses 'BATCH_GET' rpc for…
cauchy1988 Mar 3, 2022
9db2efc
feat: add a app create interface to the java client (#180)
cauchy1988 Mar 29, 2022
6660e9b
fix: fix a mismatch code (#181)
ZhongChaoqiang Apr 28, 2022
bdce846
fix: HashKeyData constructor compatible (#184)
cauchy1988 May 5, 2022
88c5018
chore: prepare to merge into incubator-pegasus (#183)
cauchy1988 May 6, 2022
7af817b
Merge pegasus-java-client repo
May 7, 2022
c1f1538
java client conform to apache style
May 7, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .github/workflows/test_java-client.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

name: Test - java client
on:
pull_request:
branches:
- master
- 'v[0-9]+.*' # release branch
- ci-test # testing branch for github action
- '*dev' # developing branch
paths:
- java-client/**

workflow_dispatch:

defaults:
run:
shell: bash

jobs:
test:
name: test
runs-on: ubuntu-latest
strategy:
matrix:
java: [ '8', '11']
steps:
- uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- uses: actions/checkout@v2
- uses: actions/setup-java@v1
with:
java-version: ${{ matrix.java }}
- name: ci
working-directory: ./java-client
run: ./scripts/ci-test.sh
15 changes: 15 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -122,3 +122,18 @@ pegasus-server*
admin-cli/bin/
pegic/bin/
golangci-*

java-client/bin/
java-client/release/
java-client/target/
java-client/.settings
java-client/.project
java-client/.classpath
java-client/.idea
java-client/pegasus-client.iml
java-client/log.txt
java-client/rolling_log/
java-client/.vscode/
java-client/google-java-format-*
java-client/pegasus-*
java-client/dependency-reduced-pom.xml
6 changes: 5 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ under the License.
-->

[github-release]: https://github.com/apache/incubator-pegasus/releases
<!-- markdown-link-check-disable -->
[PacificA]: https://www.microsoft.com/en-us/research/publication/pacifica-replication-in-log-based-distributed-storage-systems/
<!-- markdown-link-check-enable-->
[pegasus-rocksdb]: https://github.com/xiaomi/pegasus-rocksdb
[facebook-rocksdb]: https://github.com/facebook/rocksdb
[hbase]: https://hbase.apache.org/
Expand Down Expand Up @@ -69,7 +71,9 @@ See our documentation on the [Pegasus Website][website].

Pegasus has support for several languages:

- [Java](https://github.com/xiaomi/pegasus-java-client)
<!-- markdown-link-check-disable -->
- [Java](https://github.com/apache/incubator-pegasus/blob/master/java-client)
<!-- markdown-link-check-enable-->
- [C++](https://github.com/apache/incubator-pegasus/blob/master/src/include/pegasus/client.h)
- [Go](https://github.com/xiaomi/pegasus-go-client)
- [Python](https://github.com/xiaomi/pegasus-python-client)
Expand Down
99 changes: 99 additions & 0 deletions java-client/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->

# Pegasus Java Client

[![Test - java client](https://github.com/apache/incubator-pegasus/actions/workflows/test_java-client.yml/badge.svg)](https://github.com/apache/incubator-pegasus/actions/workflows/test_java-client.yml)

## Build

```
mvn clean package -DskipTests
```

## Install

```
mvn clean install -DskipTests
```

## Test

To run test, you should start pegasus onebox firstly, and run test as:

```
mvn clean package
```

or specify one test:

```
mvn clean package -Dtest=TestPing
```

## Configuration

Configure client by "pegasus.properties", for example:

```
meta_servers = 127.0.0.1:34601,127.0.0.1:34602,127.0.0.1:34603
operation_timeout = 1000
async_workers = 4
enable_perf_counter = true
perf_counter_tags = k1=v1,k2=v2,k3=v3
push_counter_interval_secs = 10
```

You can provide a parameter of 'configPath' when creating a client instance.

The format of 'configPath' should be one of these:
* zk path: zk://host1:port1,host2:port2,host3:port3/path/to/config
* local file path: file:///path/to/config
* resource path: resource:///path/to/config

## PerfCounter(Metrics)

Pegasus Java Client supports QPS and latency statistics of requests.

The related configurations are:

```
enable_perf_counter = true
perf_counter_tags = k1=v1,k2=v2,k3=v3
push_counter_interval_secs = 10
```

For each type of request(get, set, multiset, etc.), we collect 8 metrics:
1. cps-1sec: the request's qps
2. cps-1min: the request's queries per 1 minute
3. cps-5min: the request's queries per 5 minutes
4. cps-15min: the request's queries per 15 minutes
5. latency-p50: the moving median of request's queries
6. latency-p99: the moving p99 of request's queries
7. lantecy-p999: the moving p999 of request's queries
8: latency-max: the moving max of request's queries

We use io.dropwizard.metrics library to calculate the request count.

Currently, metrics are integrated with open-falcon(https://open-falcon.org/),
<!-- markdown-link-check-disable -->
which push counters to local http agent http://127.0.0.1:1988/push/v1.
<!-- markdown-link-check-enable-->

If you'd like to integrate pegasus client with other monitor system, please let us know ASAP.
42 changes: 42 additions & 0 deletions java-client/configuration/log4j.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

log4j.rootLogger=DEBUG, rolling_file
log4j.logger.org.apache.pegasus = INFO

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=log.txt
log4j.appender.file.ImmediateFlush=true
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.file.Append=true

log4j.appender.rolling_file=org.apache.log4j.RollingFileAppender
log4j.appender.rolling_file.File=rolling_log/log.txt
log4j.appender.rolling_file.MaxFileSize=10MB
log4j.appender.rolling_file.MaxBackupIndex=10
log4j.appender.rolling_file.ImmediateFlush=true
log4j.appender.rolling_file.layout=org.apache.log4j.PatternLayout
log4j.appender.rolling_file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
log4j.appender.rolling_file.Append=true
31 changes: 31 additions & 0 deletions java-client/configuration/pegasus.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

meta_servers = 127.0.0.1:34601,127.0.0.1:34602,127.0.0.1:34603
operation_timeout = 5000
async_workers = 4
enable_perf_counter = false
perf_counter_tags = cluster=onebox,app=unit_test
push_counter_interval_secs = 10
meta_query_timeout = 5000
auth_protocol =
kerberos_service_name =
kerberos_service_fqdn =
kerberos_keytab =
kerberos_principal =
55 changes: 55 additions & 0 deletions java-client/dev-support/checkstyle-suppressions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?xml version="1.0"?>
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->

<!DOCTYPE suppressions PUBLIC
"-//Puppy Crawl//DTD Suppressions 1.0//EN"
"http://www.puppycrawl.com/dtds/suppressions_1_0.dtd">

<suppressions>
<!--
/* TODO(wutao1): Temporary Suppressions
* The following checks should be removed from
* the suppression list after their checkstyle errors are fixed.
*/
-->
<suppress checks="LineLengthCheck" files=".*\.java"/>
<suppress checks="IndentationCheck" files=".*\.java"/>
<suppress checks="NeedBracesCheck" files=".*\.java"/>
<suppress checks="MemberNameCheck" files=".*\.java"/>
<suppress checks="CustomImportOrderCheck" files=".*\.java"/>
<suppress checks="JavadocMethod" files=".*\.java"/>
<suppress checks="ArrayTypeStyle" files=".*\.java"/>
<suppress checks="TypeName" files=".*\.java"/>
<suppress checks="JavadocParagraph" files=".*\.java"/>
<suppress checks="SummaryJavadoc" files=".*\.java"/>
<suppress checks="EmptyCatchBlock" files=".*\.java"/>
<suppress checks="UpperEll" files=".*\.java"/>
<suppress checks="LocalVariableName" files=".*\.java"/>
<suppress checks="NoFinalizer" files=".*\.java"/>
<suppress checks="AbbreviationAsWordInName" files=".*\.java"/>
<suppress checks="MissingSwitchDefault" files=".*\.java"/>
<suppress checks="AvoidStarImport" files=".*\.java"/>
<suppress checks="SingleLineJavadoc" files=".*\.java"/>
<suppress checks="EmptyLineSeparator" files=".*\.java"/>
<suppress checks="NonEmptyAtclauseDescription" files=".*\.java"/>
<suppress checks="ParameterName" files=".*\.java"/>
<suppress checks="VariableDeclarationUsageDistance" files=".*\.java"/>
<suppress checks="RightCurly" files=".*\.java"/>
</suppressions>
42 changes: 42 additions & 0 deletions java-client/dev-support/findbugs-exclude.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
~ distributed with this work for additional information
~ regarding copyright ownership. The ASF licenses this file
~ to you under the Apache License, Version 2.0 (the
~ "License"); you may not use this file except in compliance
~ with the License. You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing,
~ software distributed under the License is distributed on an
~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~ KIND, either express or implied. See the License for the
~ specific language governing permissions and limitations
~ under the License.
-->

<FindBugsFilter>

<Match>
<Or>
<!-- thrift generated files -->
<Package name="org.apache.pegasus.apps"/>
<Package name="org.apache.pegasus.base"/>
<Package name="org.apache.pegasus.replication"/>

<!--
TODO(wutao1): The following packages should be removed from
the exclusion list after their bugs are fixed.
-->
<Package name="org.apache.pegasus.rpc.async"/>
<Package name="org.apache.pegasus.client"/>
<Package name="org.apache.pegasus.metrics"/>
<Package name="org.apache.pegasus.tools"/>
<Package name="org.apache.pegasus.client.request"/>
<Package name="org.apache.pegasus.example"/>
</Or>
</Match>

</FindBugsFilter>
Loading