You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by ra...@apache.org on 2021/12/03 23:25:14 UTC
[trafficcontrol] branch master updated: Update Traffic Router Java version to 11 (#6210)
This is an automated email from the ASF dual-hosted git repository.
rawlin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push:
new 31c4f96 Update Traffic Router Java version to 11 (#6210)
31c4f96 is described below
commit 31c4f9687acd7b0617177c9bda2d9757f9c08bec
Author: Zach Hoffman <zr...@apache.org>
AuthorDate: Fri Dec 3 15:24:59 2021 -0800
Update Traffic Router Java version to 11 (#6210)
* Update maven-pmd-plugin to 3.14.0, which uses PMD 6.29.0
* Update Java PMD rule names to their PMD 6 equivalents
* Unlist rules that are scheduled for removal in PMD 7
* Suppress PMD.CyclomaticComplexity and PMD.NPathComplexity
* Fix PMD warnings
* Set JAVA_HOME so Maven can find javac
* Rebuild the Traffic Router builder image if its Dockerfile was changed
* Use a fetch-depth of 4 to check files changed in the last 3 commits for the build-rpms GHA
* Update Traffic Router Java version to 11
* Do not set UseSplitVerifier, SplitVerifier is required in Java 11
* Resolve new CloseResource PMD failure in Java 11
* Use RSAPrivateCrtKey, RSAPrivateCrtKeyImpl is not visible in Java 11
* Decrease NPath complexity of DeliveryService constructor
* Do not escape '"'
* Commant and unabbreviate commit comparison
* Close resources in LetsEncryptDnsChallengeWatcher.readConfigFile()
* Do not close socket before handling the request
* Bind port to wildcard host for OpenJDK 11 compatibility
* Store socketWrapper socket for use after super.doRun()
* Fix PMD failures where all PMD failures were suppressed
* Remove temporary hack from #3392 that resolved an SSL issue in Tomcat
* Use OpenJDK 11 in Systemd service files
* Use OpenJDK 11 for Ansible Java HOME
---
.github/actions/build-rpms/build-rpms.sh | 7 +-
.github/actions/tr-unit-tests/Dockerfile | 3 +-
.github/workflows/cache-config-tests.yml | 4 +
.github/workflows/ciab.yaml | 18 ++
CHANGELOG.md | 1 +
docs/source/admin/quick_howto/ciab.rst | 2 +-
docs/source/development/building.rst | 9 +-
docs/source/development/traffic_router.rst | 18 +-
.../ansible/roles/traffic-router/defaults/main.yml | 2 +-
.../roles/traffic-router/tasks/traffic_router.yml | 2 +-
.../cdn-in-a-box/traffic_router/Dockerfile | 4 +-
infrastructure/cdn-in-a-box/traffic_router/run.sh | 2 +-
.../docker/build/Dockerfile-traffic_router | 4 +-
infrastructure/docker/traffic_router/shutdowntr.sh | 2 +-
infrastructure/docker/traffic_router/starttr.sh | 2 +-
traffic_router/build/pom.xml | 2 +-
traffic_router/connector/build/pmd/ruleset.xml | 311 +++++++++----------
traffic_router/connector/pom.xml | 2 +-
.../traffic_router/protocol/RouterNioEndpoint.java | 33 ---
.../secure/CertificateDataConverter.java | 2 +-
.../traffic_router/secure/CertificateRegistry.java | 6 +-
traffic_router/core/build/pmd/ruleset.xml | 317 +++++++++-----------
traffic_router/core/pom.xml | 4 +-
.../traffic_router/core/config/ConfigHandler.java | 4 +-
.../core/dns/DNSAccessEventBuilder.java | 8 +-
.../traffic_router/core/dns/NameServer.java | 2 +-
.../traffic_router/core/dns/NameServerMain.java | 3 +-
.../traffic_router/core/dns/SignatureManager.java | 2 +-
.../traffic_router/core/dns/ZoneManager.java | 21 +-
.../traffic_router/core/dns/ZoneUtils.java | 6 +-
.../traffic_router/core/dns/protocol/Protocol.java | 2 +-
.../core/dns/protocol/SocketHandler.java | 4 +-
.../traffic_router/core/dns/protocol/TCP.java | 12 +-
.../traffic_router/core/ds/DeliveryService.java | 94 +++---
.../core/ds/LetsEncryptDnsChallengeWatcher.java | 6 +-
.../traffic_router/core/ds/Steering.java | 1 -
.../traffic_router/core/ds/SteeringFilter.java | 6 +-
.../traffic_router/core/ds/SteeringTarget.java | 21 +-
.../traffic_router/core/hash/NumberSearcher.java | 1 +
.../core/http/HTTPAccessEventBuilder.java | 1 +
.../core/loc/AbstractServiceUpdater.java | 27 +-
.../core/loc/AnonymousIpDatabaseService.java | 5 +-
.../core/loc/AnonymousIpWhitelist.java | 4 +-
.../core/loc/MaxmindGeolocationService.java | 5 +-
.../traffic_router/core/loc/RegionalGeoResult.java | 2 +-
.../traffic_router/core/loc/RegionalGeoRule.java | 5 +-
.../core/monitor/TrafficMonitorWatcher.java | 4 +-
.../traffic_router/core/router/RouteResult.java | 2 +-
.../traffic_router/core/router/StatTracker.java | 4 +-
.../traffic_router/core/router/TrafficRouter.java | 4 +-
.../core/secure/CertificatesClient.java | 2 +-
.../core/secure/CertificatesPoller.java | 2 +-
.../core/util/AbstractResourceWatcher.java | 11 +-
.../traffic_router/core/util/CidrAddress.java | 1 +
.../core/util/ComparableTreeSet.java | 1 +
.../traffic_router/core/util/Config.java | 1 +
.../traffic_router/core/util/DataExporter.java | 2 +-
.../traffic_router/core/util/Fetcher.java | 73 ++---
.../core/util/JsonUtilsException.java | 1 +
.../core/util/PeriodicResourceUpdater.java | 17 +-
.../traffic_router/core/util/ResourceUrl.java | 2 +-
.../main/lib/systemd/system/traffic_router.service | 2 +-
traffic_router/neustar/pom.xml | 3 -
traffic_router/pom.xml | 2 +-
traffic_router/shared/build/pmd/ruleset.xml | 315 +++++++++-----------
traffic_router/shared/pom.xml | 2 +-
.../traffic_router/shared/Certificate.java | 1 -
.../traffic_router/shared/IsEqualCollection.java | 17 +-
.../traffic_router/shared/SigningData.java | 328 ++++++++++-----------
.../traffic_router/shared/ZoneTestRecords.java | 57 ++--
.../src/test/java/secure/BindPrivateKeyTest.java | 4 +-
traffic_router/tests/Dockerfile-test-alpine | 5 +-
traffic_router/tests/Dockerfile-test-centos | 3 +-
traffic_router/tomcat-rpm/tomcat.service | 2 +-
traffic_router/tomcat-rpm/tomcat.spec | 2 +-
75 files changed, 895 insertions(+), 974 deletions(-)
diff --git a/.github/actions/build-rpms/build-rpms.sh b/.github/actions/build-rpms/build-rpms.sh
index 87e539c..aaef054 100755
--- a/.github/actions/build-rpms/build-rpms.sh
+++ b/.github/actions/build-rpms/build-rpms.sh
@@ -28,9 +28,12 @@ if [[ "$GITHUB_REF" == refs/pull/*/merge ]]; then
pr_number="$(<<<"$GITHUB_REF" grep -o '[0-9]\+')"
files_changed="$(curl "${GITHUB_API_URL}/repos/${GITHUB_REPOSITORY}/pulls/${pr_number}/files" | jq -r .[].filename)"
else
- files_changed="$(git diff-tree --no-commit-id --name-only -r "$GITHUB_SHA")"
+ files_changed="$(git diff --name-only HEAD~4 HEAD --)" # Files changed by the last 4 commits
fi
-if <<<"$files_changed" grep '^GO_VERSION$'; then
+if <<<"$files_changed" grep '^GO_VERSION$' ||
+ { [[ "$ATC_COMPONENT" == traffic_router ]] &&
+ <<<"$files_changed" grep '^infrastructure/docker/build/Dockerfile-traffic_router$'; };
+then
pkg_command+=(-b)
fi
diff --git a/.github/actions/tr-unit-tests/Dockerfile b/.github/actions/tr-unit-tests/Dockerfile
index 245ed00..5b73ed5 100644
--- a/.github/actions/tr-unit-tests/Dockerfile
+++ b/.github/actions/tr-unit-tests/Dockerfile
@@ -16,10 +16,11 @@
FROM alpine@sha256:08d6ca16c60fe7490c03d10dc339d9fd8ea67c6466dea8d558526b1330a85930
RUN apk add --no-cache \
- openjdk8 \
+ openjdk11 \
maven \
tomcat-native
ENTRYPOINT cd traffic_router && \
+ export JAVA_HOME="$(command -v java | xargs realpath | xargs dirname)/.." && \
mvn "-Dmaven.repo.local=${GITHUB_WORKSPACE}/.m2/repository" \
test -Djava.library.path=/usr/share/java
diff --git a/.github/workflows/cache-config-tests.yml b/.github/workflows/cache-config-tests.yml
index 4253839..5c31bfd 100644
--- a/.github/workflows/cache-config-tests.yml
+++ b/.github/workflows/cache-config-tests.yml
@@ -70,6 +70,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2
+ with:
+ fetch-depth: 5
- name: Build RPM
uses: ./.github/actions/build-rpms
env:
@@ -86,6 +88,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2
+ with:
+ fetch-depth: 5
- name: Build RPM
uses: ./.github/actions/build-rpms
env:
diff --git a/.github/workflows/ciab.yaml b/.github/workflows/ciab.yaml
index e085840..1cac861 100644
--- a/.github/workflows/ciab.yaml
+++ b/.github/workflows/ciab.yaml
@@ -85,6 +85,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
+ with:
+ fetch-depth: 5
- name: Build RPM
uses: ./.github/actions/build-rpms
env:
@@ -101,6 +103,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
+ with:
+ fetch-depth: 5
- name: Build RPM
uses: ./.github/actions/build-rpms
env:
@@ -117,6 +121,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
+ with:
+ fetch-depth: 5
- name: Build RPM
uses: ./.github/actions/build-rpms
env:
@@ -133,6 +139,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
+ with:
+ fetch-depth: 5
- name: Cache node modules
uses: actions/cache@v2
with:
@@ -156,6 +164,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
+ with:
+ fetch-depth: 5
- name: Cache local Maven repository
uses: actions/cache@v2
with:
@@ -179,6 +189,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
+ with:
+ fetch-depth: 5
- name: Build RPM
uses: ./.github/actions/build-rpms
env:
@@ -195,6 +207,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
+ with:
+ fetch-depth: 5
- name: Build RPM
uses: ./.github/actions/build-rpms
env:
@@ -211,6 +225,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
+ with:
+ fetch-depth: 5
- name: Build RPM
uses: ./.github/actions/build-rpms
env:
@@ -268,6 +284,8 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@master
+ with:
+ fetch-depth: 5
- name: Cache Alpine Docker image
uses: actions/cache@v2
with:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 51e82e6..846f16b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
### Fixed
- [#6197](https://github.com/apache/trafficcontrol/issues/6197) - TO `/deliveryservices/:id/routing` makes requests to all TRs instead of by CDN.
- Fixed Traffic Router crs/stats to prevent overflow and to correctly record the time used in averages.
+- [#6209](https://github.com/apache/trafficcontrol/pull/6209) Updated Traffic Router to use Java 11 to compile and run
- [#5893](https://github.com/apache/trafficcontrol/issues/5893) - A self signed certificate is created when an HTTPS delivery service is created or an HTTP delivery service is updated to HTTPS.
- [#6125](https://github.com/apache/trafficcontrol/issues/6125) - Fix `/cdns/{name}/federations?id=#` to search for CDN.
- [#6255](https://github.com/apache/trafficcontrol/issues/6255) - Unreadable Prod Mode CDN Notifications in Traffic Portal
diff --git a/docs/source/admin/quick_howto/ciab.rst b/docs/source/admin/quick_howto/ciab.rst
index 5067a6d..92be425 100644
--- a/docs/source/admin/quick_howto/ciab.rst
+++ b/docs/source/admin/quick_howto/ciab.rst
@@ -36,7 +36,7 @@ The CDN in a Box directory is found within the Traffic Control repository at :fi
* Traffic Portal - at :file:`infrastructure/cdn-in-a-box/traffic_portal/traffic_portal.rpm`
* Traffic Router - at :file:`infrastructure/cdn-in-a-box/traffic_router/traffic_router.rpm` - also requires an Apache Tomcat RPM at :file:`infrastructure/cdn-in-a-box/traffic_router/tomcat.rpm`
-.. note:: These can also be specified via the ``RPM`` variable to a direct Docker build of the component - with the exception of Traffic Router, which instead accepts ``JDK8_RPM`` to specify a Java Development Kit RPM, ``TRAFFIC_ROUTER_RPM`` to specify a Traffic Router RPM, and ``TOMCAT_RPM`` to specify an Apache Tomcat RPM.
+.. note:: These can also be specified via the ``RPM`` variable to a direct Docker build of the component - with the exception of Traffic Router, which instead accepts ``TRAFFIC_ROUTER_RPM`` to specify a Traffic Router RPM and ``TOMCAT_RPM`` to specify an Apache Tomcat RPM.
These can all be supplied manually via the steps in :ref:`dev-building` (for Traffic Control component RPMs) or via some external source. Alternatively, the :file:`infrastructure/cdn-in-a-box/Makefile` file contains recipes to build all of these - simply run :manpage:`make(1)` from the :file:`infrastructure/cdn-in-a-box/` directory. Once all RPM dependencies have been satisfied, run ``docker-compose build --parallel`` from the :file:`infrastructure/cdn-in-a-box/` directory to construct t [...]
diff --git a/docs/source/development/building.rst b/docs/source/development/building.rst
index 0553e18..dcf03f7 100644
--- a/docs/source/development/building.rst
+++ b/docs/source/development/building.rst
@@ -171,12 +171,12 @@ Install the Dependencies
| macOS\ [#mac-jdk]_ | - rpm | - go | - go | - npm | - maven | - go | - go | - go | - python3 |
| (homebrew_) | | | | - grunt-cli | | | | | |
+----------------------------+---------------------+----------------------------+------------------------+---------------------------+---------------------------+--------------------------+----------+------------------------------+--------------------------+
- | CentOS\ [#centos-go]_, | - git | | | - epel-release | - java-1.8.0-openjdk | | | | - python3-devel |
+ | CentOS\ [#centos-go]_, | - git | | | - epel-release | - java-11-openjdk | | | | - python3-devel |
| Red Hat, | - rpm-build | | | - npm | - maven | | | | - gcc |
| Fedora | - rsync | | | - nodejs-grunt-cli | | | | | - make |
| (yum_) | | | | | | | | | |
+----------------------------+---------------------+----------------------------+------------------------+---------------------------+---------------------------+--------------------------+----------+------------------------------+--------------------------+
- | Arch Linux, | - git | - go | - go | - npm | - jdk8-openjdk | - go | - go | - go | - python-pip |
+ | Arch Linux, | - git | - go | - go | - npm | - jdk11-openjdk | - go | - go | - go | - python-pip |
| Manjaro | - rpm-tools | | | - grunt-cli | - maven | | | | - python-sphinx |
| (pacman_) | - diff | | | | | | | | - make |
+----------------------------+---------------------+----------------------------+------------------------+---------------------------+---------------------------+--------------------------+----------+------------------------------+--------------------------+
@@ -184,7 +184,7 @@ Install the Dependencies
| (cygwin_)\ [#windeps]_ | - rpm-build | | | | | | | | |
| | - rsync | | | | | | | | |
+----------------------------+---------------------+----------------------------+------------------------+---------------------------+---------------------------+--------------------------+----------+------------------------------+--------------------------+
- | Windows | | - golang | - golang | - nodejs | - openjdk8 | - golang | - golang | - golang | - python |
+ | Windows | | - golang | - golang | - nodejs | - openjdk11 | - golang | - golang | - golang | - python |
| (chocolatey_)\ [#windeps]_ | | | | | - maven | | | | - pip |
| | | | | | | | | | - make |
+----------------------------+---------------------+----------------------------+------------------------+---------------------------+---------------------------+--------------------------+----------+------------------------------+--------------------------+
@@ -195,9 +195,6 @@ Install the Dependencies
.. _cygwin: https://cygwin.com/
.. _chocolatey: https://chocolatey.org/
-.. |AdoptOpenJDK instructions| replace:: add the AdoptOpenJDK tap and install the ``adoptopenjdk8`` cask
-.. _AdoptOpenJDK instructions: https://github.com/AdoptOpenJDK/homebrew-openjdk#other-versions
-
After installing the packages using your platform's package manager,
- Install the :ref:`global NPM packages <dev-tp-global-npm>` to build Traffic Portal.
diff --git a/docs/source/development/traffic_router.rst b/docs/source/development/traffic_router.rst
index ae68288..e12433c 100644
--- a/docs/source/development/traffic_router.rst
+++ b/docs/source/development/traffic_router.rst
@@ -36,7 +36,7 @@ To work on Traffic Router you need a \*nix (MacOS and Linux are most commonly us
* Eclipse >= Kepler SR2 (or another Java IDE)
* Maven >= 3.3.1
-* JDK >= 8.0 (OpenJDK suggested, but not required)
+* JDK >= 11 (OpenJDK suggested, but not required)
* OpenSSL >= 1.0.2
* :abbr:`APR (Apache Portable Runtime)` >= 1.4.8-3
* Tomcat Native >= 1.2.23
@@ -44,27 +44,21 @@ To work on Traffic Router you need a \*nix (MacOS and Linux are most commonly us
.. _dev-tr-mac-jdk:
-Get OpenJDK 8 on macOS
+Get OpenJDK 11 on macOS
--------------------------
-If you are on macOS, OpenJDK 8 is not available from Homebrew by default, but it can still be installed using Homebrew with little effort.
-
-Using Homebrew, |AdoptOpenJDK instructions|_
+Using Homebrew:
.. code-block:: shell
- :caption: Install OpenJDK 8 on macOS
+ :caption: Install OpenJDK 11 on macOS
- brew tap AdoptOpenJDK/openjdk
- brew cask install adoptopenjdk8
+ brew install openjdk@11
Next, set the JAVA_HOME environment variable. Add this line to your ``~/.bash_profile``:
.. code-block:: shell
:caption: Set JAVA_HOME environment variable
- export JAVA_HOME=$(/usr/libexec/java_home -v1.8)
-
-.. |AdoptOpenJDK instructions| replace:: add the AdoptOpenJDK tap and install the ``adoptopenjdk8`` cask
-.. _AdoptOpenJDK instructions: https://github.com/AdoptOpenJDK/homebrew-openjdk#other-versions
+ export JAVA_HOME=$(/usr/libexec/java_home -v11)
Traffic Router Project Tree Overview
====================================
diff --git a/infrastructure/ansible/roles/traffic-router/defaults/main.yml b/infrastructure/ansible/roles/traffic-router/defaults/main.yml
index 7689e12..09a39fa 100644
--- a/infrastructure/ansible/roles/traffic-router/defaults/main.yml
+++ b/infrastructure/ansible/roles/traffic-router/defaults/main.yml
@@ -26,7 +26,7 @@ tr_tomcat_base_dir: '/opt/tomcat'
tr_tomcat_logs_dir: "{{ tr_tomcat_base_dir }}/logs"
# JAVA_HOME to use in order to specify the desired JRE
-tr_java_home_dir: '/usr/lib/jvm/jre'
+tr_java_home_dir: '/usr/lib/jvm/jre-11-openjdk'
# Remove any locally cached copy of a CRConfig
tr_purge_crconfig_cache: False
diff --git a/infrastructure/ansible/roles/traffic-router/tasks/traffic_router.yml b/infrastructure/ansible/roles/traffic-router/tasks/traffic_router.yml
index f61c631..b896d79 100644
--- a/infrastructure/ansible/roles/traffic-router/tasks/traffic_router.yml
+++ b/infrastructure/ansible/roles/traffic-router/tasks/traffic_router.yml
@@ -29,7 +29,7 @@
- name: Install TR Dependencies
yum:
name:
- - java-1.8.0-openjdk
+ - java-11-openjdk
- tomcat-native-1.2.23
state: present
update_cache: yes
diff --git a/infrastructure/cdn-in-a-box/traffic_router/Dockerfile b/infrastructure/cdn-in-a-box/traffic_router/Dockerfile
index d302915..d8e8f84 100644
--- a/infrastructure/cdn-in-a-box/traffic_router/Dockerfile
+++ b/infrastructure/cdn-in-a-box/traffic_router/Dockerfile
@@ -37,9 +37,9 @@ RUN dnf -y install epel-release && \
dnf -y install jq git rpm-build net-tools iproute nc wget tar unzip \
perl-JSON perl-WWW-Curl which make autoconf automake gcc gcc-c++ apr apr-devel \
openssl openssl-devel bind-utils net-tools perl-JSON-PP gettext \
- java-1.8.0-openjdk-headless java-1.8.0-openjdk-devel tomcat-native && \
+ java-11-openjdk-headless java-11-openjdk-devel tomcat-native && \
dnf -y clean all && \
- ln -sfv $(realpath /usr/lib/jvm/java-1.8.0) /opt/java
+ ln -sfv $(realpath /usr/lib/jvm/java-11) /opt/java
ADD $TRAFFIC_ROUTER_RPM /traffic_router.rpm
ADD $TOMCAT_RPM /tomcat.rpm
diff --git a/infrastructure/cdn-in-a-box/traffic_router/run.sh b/infrastructure/cdn-in-a-box/traffic_router/run.sh
index bd2135f..0bbe62a 100755
--- a/infrastructure/cdn-in-a-box/traffic_router/run.sh
+++ b/infrastructure/cdn-in-a-box/traffic_router/run.sh
@@ -49,7 +49,7 @@ CATALINA_OPTS="\
-XX:InitiatingHeapOccupancyPercent=30"
if [[ "$TR_DEBUG_ENABLE" == true ]]; then
- export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n";
+ export JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=*:5005,server=y,suspend=n";
longer_dns_timeout;
fi;
diff --git a/infrastructure/docker/build/Dockerfile-traffic_router b/infrastructure/docker/build/Dockerfile-traffic_router
index e91982a..572d352 100644
--- a/infrastructure/docker/build/Dockerfile-traffic_router
+++ b/infrastructure/docker/build/Dockerfile-traffic_router
@@ -46,8 +46,8 @@ FROM common-dependencies AS traffic-router
RUN yum -y install \
which \
curl \
- java-1.8.0-openjdk \
- java-1.8.0-openjdk-devel && \
+ java-11-openjdk \
+ java-11-openjdk-devel && \
yum -y clean all
ENV JAVA_HOME=/usr/lib/jvm/java
diff --git a/infrastructure/docker/traffic_router/shutdowntr.sh b/infrastructure/docker/traffic_router/shutdowntr.sh
index e6ffa5e..1bd8b7c 100755
--- a/infrastructure/docker/traffic_router/shutdowntr.sh
+++ b/infrastructure/docker/traffic_router/shutdowntr.sh
@@ -27,7 +27,7 @@
# TRAFFIC_MONITORS # list of semicolon-delimited FQDN:port monitors. E.g. `monitor.foo.com:80;monitor2.bar.org:80`
# ORIGIN_URI # origin server (e.g. hotair), used to create a delivery service
-export JAVA_HOME=/usr/java/jdk1.8.0_92/jre
+export JAVA_HOME="$(command -v java | xargs realpath | xargs dirname)/.."
export CATALINA_PID=/opt/traffic_router/temp/tomcat.pid
export CATALINA_HOME=/opt/tomcat
export CATALINA_BASE=/opt/traffic_router
diff --git a/infrastructure/docker/traffic_router/starttr.sh b/infrastructure/docker/traffic_router/starttr.sh
index adbb9ab..5b003e3 100755
--- a/infrastructure/docker/traffic_router/starttr.sh
+++ b/infrastructure/docker/traffic_router/starttr.sh
@@ -23,7 +23,7 @@
# Therefore it is important to keep this script up to date with any changes that are
# made to traffic_router/build/build_rpm.sh and traffic_router/build/pom.xml
-export JAVA_HOME=/usr/java/jdk1.8.0_92/jre
+export JAVA_HOME="$(command -v java | xargs realpath | xargs dirname)/.."
export CATALINA_PID=/opt/traffic_router/temp/tomcat.pid
export CATALINA_HOME=/opt/tomcat
export CATALINA_BASE=/opt/traffic_router
diff --git a/traffic_router/build/pom.xml b/traffic_router/build/pom.xml
index 4187a73..29be769 100644
--- a/traffic_router/build/pom.xml
+++ b/traffic_router/build/pom.xml
@@ -236,7 +236,7 @@
</mapping>
</mappings>
<requires>
- <require>java >= 1.8</require>
+ <require>java-11</require>
<require>tomcat >= ${env.TOMCAT_VERSION}.${env.TOMCAT_RELEASE}</require>
<require>apr >= 1.4.8</require>
<require>tomcat-native >= 1.2.23</require>
diff --git a/traffic_router/connector/build/pmd/ruleset.xml b/traffic_router/connector/build/pmd/ruleset.xml
index 2ecc748..f025986 100644
--- a/traffic_router/connector/build/pmd/ruleset.xml
+++ b/traffic_router/connector/build/pmd/ruleset.xml
@@ -13,191 +13,170 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<ruleset name="Overpass PMD Ruleset" xmlns="http://pmd.sf.net/ruleset/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<ruleset name="Overpass PMD Ruleset" xmlns="http://pmd.sf.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>Overpass PMD Ruleset</description>
<exclude-pattern>.*/src/test/.*</exclude-pattern>
- <rule ref="rulesets/java/empty.xml/EmptyCatchBlock" />
- <rule ref="rulesets/java/empty.xml/EmptyIfStmt" />
- <rule ref="rulesets/java/empty.xml/EmptyWhileStmt" />
- <rule ref="rulesets/java/empty.xml/EmptyTryBlock" />
- <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock" />
- <rule ref="rulesets/java/empty.xml/EmptySwitchStatements" />
- <rule ref="rulesets/java/basic.xml/JumbledIncrementer" />
- <rule ref="rulesets/java/basic.xml/ForLoopShouldBeWhileLoop" />
- <rule ref="rulesets/java/unnecessary.xml/UnnecessaryConversionTemporary" />
- <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode" />
- <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking"
+ <rule ref="category/java/errorprone.xml/EmptyCatchBlock" />
+ <rule ref="category/java/errorprone.xml/EmptyIfStmt" />
+ <rule ref="category/java/errorprone.xml/EmptyWhileStmt" />
+ <rule ref="category/java/errorprone.xml/EmptyTryBlock" />
+ <rule ref="category/java/errorprone.xml/EmptyFinallyBlock" />
+ <rule ref="category/java/errorprone.xml/EmptySwitchStatements" />
+ <rule ref="category/java/errorprone.xml/JumbledIncrementer" />
+ <rule ref="category/java/codestyle.xml/ForLoopShouldBeWhileLoop" />
+ <rule ref="category/java/errorprone.xml/UnnecessaryConversionTemporary" />
+ <rule ref="category/java/errorprone.xml/OverrideBothEqualsAndHashcode" />
+ <rule ref="category/java/multithreading.xml/DoubleCheckedLocking"
message="Verify that the double-checked variable is declared as volatile.">
<priority>3</priority>
</rule>
- <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock" />
- <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock" />
- <rule ref="rulesets/java/unnecessary.xml/UnnecessaryReturn" />
- <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer" />
- <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement" />
- <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop" />
- <rule ref="rulesets/java/basic.xml/BooleanInstantiation" />
- <rule ref="rulesets/java/unnecessary.xml/UnnecessaryFinalModifier" />
- <rule ref="rulesets/java/basic.xml/CollapsibleIfStatements" />
- <rule ref="rulesets/java/unnecessary.xml/UselessOverridingMethod" />
- <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray" />
- <rule ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor" />
- <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable" />
- <rule ref="rulesets/java/basic.xml/MisplacedNullCheck" />
- <rule ref="rulesets/java/unnecessary.xml/UnusedNullCheckInEquals" />
- <rule ref="rulesets/java/basic.xml/AvoidThreadGroup" />
- <rule ref="rulesets/java/basic.xml/BrokenNullCheck" />
- <rule ref="rulesets/java/basic.xml/BigIntegerInstantiation" />
- <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues" />
- <rule ref="rulesets/java/basic.xml/AvoidUsingHardCodedIP" />
- <rule ref="rulesets/java/basic.xml/CheckResultSet" />
- <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators" />
- <rule ref="rulesets/java/empty.xml/EmptyInitializer" />
-
- <rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces" />
- <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces" />
- <rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces" />
- <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces" />
-
- <rule ref="rulesets/java/clone.xml/ProperCloneImplementation" />
- <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException" />
- <rule ref="rulesets/java/clone.xml/CloneMethodMustImplementCloneable" />
-
- <rule ref="rulesets/java/codesize.xml/NPathComplexity" />
- <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList" />
- <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity" />
- <rule ref="rulesets/java/codesize.xml/ExcessivePublicCount" />
- <rule ref="rulesets/java/codesize.xml/TooManyFields" />
- <rule ref="rulesets/java/codesize.xml/NcssMethodCount" />
- <rule ref="rulesets/java/codesize.xml/NcssTypeCount" />
- <rule ref="rulesets/java/codesize.xml/NcssConstructorCount" />
-
- <rule ref="rulesets/java/controversial.xml/SuspiciousOctalEscape" />
- <rule ref="rulesets/java/controversial.xml/AvoidUsingNativeCode" />
- <rule ref="rulesets/java/controversial.xml/AvoidAccessibilityAlteration" />
- <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly" />
-
- <rule ref="rulesets/java/coupling.xml/LooseCoupling" />
-
- <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts" />
- <rule ref="rulesets/java/design.xml/AvoidReassigningParameters" >
+ <rule ref="category/java/errorprone.xml/ReturnFromFinallyBlock" />
+ <rule ref="category/java/errorprone.xml/EmptySynchronizedBlock" />
+ <rule ref="category/java/codestyle.xml/UnnecessaryReturn" />
+ <rule ref="category/java/errorprone.xml/UnconditionalIfStatement" />
+ <rule ref="category/java/errorprone.xml/EmptyStatementNotInLoop" />
+ <rule ref="category/java/codestyle.xml/UnnecessaryModifier" />
+ <rule ref="category/java/design.xml/CollapsibleIfStatements" />
+ <rule ref="category/java/design.xml/UselessOverridingMethod" />
+ <rule ref="category/java/errorprone.xml/ClassCastExceptionWithToArray" />
+ <rule ref="category/java/errorprone.xml/AvoidDecimalLiteralsInBigDecimalConstructor" />
+ <rule ref="category/java/errorprone.xml/UselessOperationOnImmutable" />
+ <rule ref="category/java/errorprone.xml/MisplacedNullCheck" />
+ <rule ref="category/java/errorprone.xml/UnusedNullCheckInEquals" />
+ <rule ref="category/java/multithreading.xml/AvoidThreadGroup" />
+ <rule ref="category/java/errorprone.xml/BrokenNullCheck" />
+ <rule ref="category/java/performance.xml/BigIntegerInstantiation" />
+ <rule ref="category/java/errorprone.xml/AvoidUsingOctalValues" />
+ <rule ref="category/java/bestpractices.xml/AvoidUsingHardCodedIP" />
+ <rule ref="category/java/bestpractices.xml/CheckResultSet" />
+ <rule ref="category/java/errorprone.xml/AvoidMultipleUnaryOperators" />
+ <rule ref="category/java/errorprone.xml/EmptyInitializer" />
+
+
+ <rule ref="category/java/errorprone.xml/ProperCloneImplementation" />
+ <rule ref="category/java/errorprone.xml/CloneMethodMustImplementCloneable" />
+
+ <rule ref="category/java/design.xml/NPathComplexity" />
+ <rule ref="category/java/design.xml/ExcessiveParameterList" />
+ <rule ref="category/java/design.xml/CyclomaticComplexity" />
+ <rule ref="category/java/design.xml/ExcessivePublicCount" />
+ <rule ref="category/java/design.xml/TooManyFields" />
+
+ <rule ref="category/java/errorprone.xml/SuspiciousOctalEscape" />
+ <rule ref="category/java/codestyle.xml/AvoidUsingNativeCode" />
+ <rule ref="category/java/errorprone.xml/AvoidAccessibilityAlteration" />
+ <rule ref="category/java/errorprone.xml/DoNotCallGarbageCollectionExplicitly" />
+
+ <rule ref="category/java/bestpractices.xml/LooseCoupling" />
+
+ <rule ref="category/java/design.xml/AvoidDeeplyNestedIfStmts" />
+ <rule ref="category/java/bestpractices.xml/AvoidReassigningParameters" >
<priority>3</priority>
</rule>
- <rule ref="rulesets/java/design.xml/SwitchDensity" />
- <rule ref="rulesets/java/design.xml/ConstructorCallsOverridableMethod" />
- <rule ref="rulesets/java/design.xml/AccessorClassGeneration" />
- <rule ref="rulesets/java/design.xml/FinalFieldCouldBeStatic" />
- <rule ref="rulesets/java/design.xml/CloseResource" />
- <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt" />
- <rule ref="rulesets/java/design.xml/NonCaseLabelInSwitchStatement" />
- <rule ref="rulesets/java/design.xml/OptimizableToArrayCall" />
- <rule ref="rulesets/java/design.xml/BadComparison" />
- <rule ref="rulesets/java/design.xml/EqualsNull" />
- <rule ref="rulesets/java/design.xml/InstantiationToGetClass" />
- <rule ref="rulesets/java/design.xml/IdempotentOperations" />
- <rule ref="rulesets/java/design.xml/ImmutableField" />
- <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass" />
- <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic" />
- <rule ref="rulesets/java/design.xml/MissingStaticMethodInNonInstantiatableClass" />
- <rule ref="rulesets/java/design.xml/MissingBreakInSwitch" />
- <rule ref="rulesets/java/design.xml/UseNotifyAllInsteadOfNotify" />
- <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause" />
- <rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod" />
- <rule ref="rulesets/java/design.xml/SimplifyConditional" />
- <rule ref="rulesets/java/design.xml/PositionLiteralsFirstInComparisons" />
- <rule ref="rulesets/java/design.xml/NonThreadSafeSingleton" />
- <rule ref="rulesets/java/design.xml/UnsynchronizedStaticDateFormatter" />
- <rule ref="rulesets/java/design.xml/PreserveStackTrace" />
- <rule ref="rulesets/java/design.xml/UseCollectionIsEmpty" />
- <rule ref="rulesets/java/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal" />
- <rule ref="rulesets/java/design.xml/SingularField" />
- <rule ref="rulesets/java/design.xml/AbstractClassWithoutAnyMethod" />
-
- <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected" />
- <rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize" />
-
- <rule ref="rulesets/java/imports.xml/DuplicateImports" />
- <rule ref="rulesets/java/imports.xml/DontImportJavaLang" />
- <rule ref="rulesets/java/imports.xml/UnusedImports" />
- <rule ref="rulesets/java/imports.xml/ImportFromSamePackage" />
- <rule ref="rulesets/java/imports.xml/TooManyStaticImports" />
-
- <rule ref="rulesets/java/javabeans.xml/MissingSerialVersionUID" />
-
- <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger" />
- <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal" />
- <rule ref="rulesets/java/logging-java.xml/SystemPrintln" />
- <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace" />
-
- <rule ref="rulesets/java/naming.xml/LongVariable">
+ <rule ref="category/java/design.xml/SwitchDensity" />
+ <rule ref="category/java/errorprone.xml/ConstructorCallsOverridableMethod" />
+ <rule ref="category/java/bestpractices.xml/AccessorClassGeneration" />
+ <rule ref="category/java/design.xml/FinalFieldCouldBeStatic" />
+ <rule ref="category/java/errorprone.xml/CloseResource" />
+ <rule ref="category/java/bestpractices.xml/DefaultLabelNotLastInSwitchStmt" />
+ <rule ref="category/java/errorprone.xml/NonCaseLabelInSwitchStatement" />
+ <rule ref="category/java/performance.xml/OptimizableToArrayCall" />
+ <rule ref="category/java/errorprone.xml/BadComparison" />
+ <rule ref="category/java/errorprone.xml/EqualsNull" />
+ <rule ref="category/java/errorprone.xml/InstantiationToGetClass" />
+ <rule ref="category/java/errorprone.xml/IdempotentOperations" />
+ <rule ref="category/java/design.xml/ImmutableField" />
+ <rule ref="category/java/codestyle.xml/AvoidProtectedFieldInFinalClass" />
+ <rule ref="category/java/errorprone.xml/AssignmentToNonFinalStatic" />
+ <rule ref="category/java/errorprone.xml/MissingStaticMethodInNonInstantiatableClass" />
+ <rule ref="category/java/errorprone.xml/MissingBreakInSwitch" />
+ <rule ref="category/java/multithreading.xml/UseNotifyAllInsteadOfNotify" />
+ <rule ref="category/java/errorprone.xml/AvoidInstanceofChecksInCatchClause" />
+ <rule ref="category/java/bestpractices.xml/AbstractClassWithoutAbstractMethod" />
+ <rule ref="category/java/design.xml/SimplifyConditional" />
+ <rule ref="category/java/multithreading.xml/NonThreadSafeSingleton" />
+ <rule ref="category/java/bestpractices.xml/PreserveStackTrace" />
+ <rule ref="category/java/bestpractices.xml/UseCollectionIsEmpty" />
+ <rule ref="category/java/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal" />
+ <rule ref="category/java/design.xml/SingularField" />
+ <rule ref="category/java/design.xml/AbstractClassWithoutAnyMethod" />
+
+ <rule ref="category/java/errorprone.xml/EmptyFinalizer" />
+ <rule ref="category/java/errorprone.xml/FinalizeOnlyCallsSuperFinalize" />
+ <rule ref="category/java/errorprone.xml/FinalizeOverloaded" />
+ <rule ref="category/java/errorprone.xml/FinalizeDoesNotCallSuperFinalize" />
+ <rule ref="category/java/errorprone.xml/FinalizeShouldBeProtected" />
+ <rule ref="category/java/errorprone.xml/AvoidCallingFinalize" />
+
+ <rule ref="category/java/codestyle.xml/TooManyStaticImports" />
+
+ <rule ref="category/java/errorprone.xml/MissingSerialVersionUID" />
+
+ <rule ref="category/java/errorprone.xml/MoreThanOneLogger" />
+ <rule ref="category/java/bestpractices.xml/SystemPrintln" />
+ <rule ref="category/java/bestpractices.xml/AvoidPrintStackTrace" />
+
+ <rule ref="category/java/codestyle.xml/LongVariable">
<properties>
<property name="minimum" value="30" />
</properties>
</rule>
- <rule ref="rulesets/java/naming.xml/ShortMethodName" />
- <rule ref="rulesets/java/naming.xml/MethodNamingConventions" />
- <rule ref="rulesets/java/naming.xml/ClassNamingConventions" />
- <rule ref="rulesets/java/naming.xml/AbstractNaming" />
- <rule ref="rulesets/java/naming.xml/AvoidDollarSigns" />
- <rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass" />
- <rule ref="rulesets/java/naming.xml/SuspiciousHashcodeMethodName" />
- <rule ref="rulesets/java/naming.xml/SuspiciousConstantFieldName" />
- <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName" />
- <rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingTypeName" />
+ <rule ref="category/java/codestyle.xml/ShortMethodName" />
+ <rule ref="category/java/codestyle.xml/MethodNamingConventions" />
+ <rule ref="category/java/codestyle.xml/ClassNamingConventions" />
+ <rule ref="category/java/codestyle.xml/AvoidDollarSigns" />
+ <rule ref="category/java/errorprone.xml/MethodWithSameNameAsEnclosingClass" />
+ <rule ref="category/java/errorprone.xml/SuspiciousHashcodeMethodName" />
+ <rule ref="category/java/errorprone.xml/SuspiciousEqualsMethodName" />
+ <rule ref="category/java/errorprone.xml/AvoidFieldNameMatchingTypeName" />
<!--<rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingMethodName" />-->
- <rule ref="rulesets/java/naming.xml/NoPackage" />
- <rule ref="rulesets/java/naming.xml/PackageCase" />
- <rule ref="rulesets/java/naming.xml/MisleadingVariableName" />
- <rule ref="rulesets/java/naming.xml/BooleanGetMethodName" />
-
- <rule ref="rulesets/java/optimizations.xml/LocalVariableCouldBeFinal" />
- <rule ref="rulesets/java/optimizations.xml/MethodArgumentCouldBeFinal" />
- <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector" />
- <rule ref="rulesets/java/optimizations.xml/UseStringBufferForStringAppends" />
- <rule ref="rulesets/java/optimizations.xml/UseArraysAsList" />
- <rule ref="rulesets/java/optimizations.xml/AvoidArrayLoops" />
- <rule ref="rulesets/java/optimizations.xml/UnnecessaryWrapperObjectCreation" />
- <rule ref="rulesets/java/optimizations.xml/AddEmptyString" />
-
- <rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable" />
- <rule ref="rulesets/java/strictexception.xml/SignatureDeclareThrowsException" />
- <rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl" />
- <rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE" />
- <rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes" />
- <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException" />
- <rule ref="rulesets/java/strictexception.xml/AvoidRethrowingException" />
- <rule ref="rulesets/java/strictexception.xml/DoNotExtendJavaLangError" />
- <rule ref="rulesets/java/strictexception.xml/DoNotThrowExceptionInFinally" />
- <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNewInstanceOfSameException" />
-
- <rule ref="rulesets/java/strings.xml/AvoidDuplicateLiterals">
+ <rule ref="category/java/codestyle.xml/NoPackage" />
+ <rule ref="category/java/codestyle.xml/PackageCase" />
+ <rule ref="category/java/codestyle.xml/BooleanGetMethodName" />
+
+ <rule ref="category/java/codestyle.xml/LocalVariableCouldBeFinal" />
+ <rule ref="category/java/codestyle.xml/MethodArgumentCouldBeFinal" />
+ <rule ref="category/java/performance.xml/UseArrayListInsteadOfVector" />
+ <rule ref="category/java/performance.xml/UseStringBufferForStringAppends" />
+ <rule ref="category/java/performance.xml/UseArraysAsList" />
+ <rule ref="category/java/performance.xml/AvoidArrayLoops" />
+ <rule ref="category/java/performance.xml/AddEmptyString" />
+
+ <rule ref="category/java/errorprone.xml/AvoidCatchingThrowable" />
+ <rule ref="category/java/design.xml/SignatureDeclareThrowsException" />
+ <rule ref="category/java/design.xml/ExceptionAsFlowControl" />
+ <rule ref="category/java/errorprone.xml/AvoidCatchingNPE" />
+ <rule ref="category/java/design.xml/AvoidThrowingRawExceptionTypes" />
+ <rule ref="category/java/design.xml/AvoidThrowingNullPointerException" />
+ <rule ref="category/java/design.xml/AvoidRethrowingException" />
+ <rule ref="category/java/design.xml/DoNotExtendJavaLangError" />
+ <rule ref="category/java/errorprone.xml/DoNotThrowExceptionInFinally" />
+ <rule ref="category/java/design.xml/AvoidThrowingNewInstanceOfSameException" />
+
+ <rule ref="category/java/errorprone.xml/AvoidDuplicateLiterals">
<properties>
<property name="skipAnnotations" value="true" />
</properties>
</rule>
- <rule ref="rulesets/java/strings.xml/StringInstantiation" />
- <rule ref="rulesets/java/strings.xml/StringToString" />
- <rule ref="rulesets/java/strings.xml/InefficientStringBuffering" />
- <rule ref="rulesets/java/strings.xml/UnnecessaryCaseChange" />
- <rule ref="rulesets/java/strings.xml/UseStringBufferLength" />
- <rule ref="rulesets/java/strings.xml/AppendCharacterWithChar" />
- <rule ref="rulesets/java/strings.xml/ConsecutiveLiteralAppends" />
- <rule ref="rulesets/java/strings.xml/UseIndexOfChar" />
- <rule ref="rulesets/java/strings.xml/UselessStringValueOf" />
- <rule ref="rulesets/java/strings.xml/StringBufferInstantiationWithChar" />
- <rule ref="rulesets/java/strings.xml/UseEqualsToCompareStrings" />
-
- <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateField" />
- <rule ref="rulesets/java/unusedcode.xml/UnusedLocalVariable" />
- <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod" />
- <rule ref="rulesets/java/unusedcode.xml/UnusedFormalParameter" />
+ <rule ref="category/java/performance.xml/StringInstantiation" />
+ <rule ref="category/java/performance.xml/StringToString" />
+ <rule ref="category/java/performance.xml/InefficientStringBuffering" />
+ <rule ref="category/java/errorprone.xml/UnnecessaryCaseChange" />
+ <rule ref="category/java/performance.xml/UseStringBufferLength" />
+ <rule ref="category/java/performance.xml/AppendCharacterWithChar" />
+ <rule ref="category/java/performance.xml/ConsecutiveLiteralAppends" />
+ <rule ref="category/java/performance.xml/UseIndexOfChar" />
+ <rule ref="category/java/performance.xml/UselessStringValueOf" />
+ <rule ref="category/java/errorprone.xml/StringBufferInstantiationWithChar" />
+ <rule ref="category/java/errorprone.xml/UseEqualsToCompareStrings" />
+
+ <rule ref="category/java/bestpractices.xml/UnusedPrivateField" />
+ <rule ref="category/java/bestpractices.xml/UnusedLocalVariable" />
+ <rule ref="category/java/bestpractices.xml/UnusedPrivateMethod" />
+ <rule ref="category/java/bestpractices.xml/UnusedFormalParameter" />
</ruleset>
diff --git a/traffic_router/connector/pom.xml b/traffic_router/connector/pom.xml
index 78e9227..c0eebda 100644
--- a/traffic_router/connector/pom.xml
+++ b/traffic_router/connector/pom.xml
@@ -28,7 +28,7 @@
<plugins>
<plugin>
<artifactId>maven-pmd-plugin</artifactId>
- <version>3.6</version>
+ <version>3.14.0</version>
<executions>
<execution>
<id>PMD</id>
diff --git a/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/protocol/RouterNioEndpoint.java b/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/protocol/RouterNioEndpoint.java
index 5a5957a..b75ae68 100644
--- a/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/protocol/RouterNioEndpoint.java
+++ b/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/protocol/RouterNioEndpoint.java
@@ -127,39 +127,6 @@ public class RouterNioEndpoint extends NioEndpoint {
return super.getSSLHostConfig(sniHostName == null ? null : sniHostName.toLowerCase());
}
- @Override
- protected SocketProcessorBase<NioChannel> createSocketProcessor(
- final SocketWrapperBase<NioChannel> socketWrapper, final SocketEvent event){
- return new RouterSocketProcessor(socketWrapper, event);
- }
-
- /**
- * This class is the equivalent of the Worker, but will simply use in an
- * external Executor thread pool.
- */
- protected class RouterSocketProcessor extends SocketProcessor {
-
- public RouterSocketProcessor(final SocketWrapperBase<NioChannel> socketWrapper, final SocketEvent event){
- super(socketWrapper, event);
- }
-
- /* This override has been added as a temporary hack to resolve an issue in Tomcat.
- Once the issue has been corrected in Tomcat then this can be removed. The
- 'SSL.getLastErrorNumber()' removes an unwanted error condition from the error stack
- in those cases where some error condition has caused the socket to get closed and
- then the processor was put back on the processor stack for reuse in a future connection.
- */
- @Override
- protected void doRun(){
- final SocketWrapperBase<NioChannel> localWrapper = socketWrapper;
- final NioChannel socket = localWrapper.getSocket();
- super.doRun();
- if (!socket.isOpen()){
- SSL.getLastErrorNumber();
- }
- }
- }
-
public String getProtocols() {
return protocols;
}
diff --git a/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/secure/CertificateDataConverter.java b/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/secure/CertificateDataConverter.java
index dacd17c..4b9e7c5 100644
--- a/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/secure/CertificateDataConverter.java
+++ b/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/secure/CertificateDataConverter.java
@@ -59,7 +59,7 @@ public class CertificateDataConverter {
}
if (hostMatch && modMatch) {
return new HandshakeData(certificateData.getDeliveryservice(), certificateData.getHostname(),
- x509Chain.toArray(new X509Certificate[x509Chain.size()]), privateKey);
+ x509Chain.toArray(new X509Certificate[0]), privateKey);
}
else if (!hostMatch) {
log.warn("Service name doesn't match the subject of the certificate = "+certificateData.getHostname());
diff --git a/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/secure/CertificateRegistry.java b/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/secure/CertificateRegistry.java
index 942c46c..21fe6f6 100644
--- a/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/secure/CertificateRegistry.java
+++ b/traffic_router/connector/src/main/java/org/apache/traffic_control/traffic_router/secure/CertificateRegistry.java
@@ -156,9 +156,9 @@ public class CertificateRegistry {
final String selfSignedKeystoreFile = httpsProperties.get("https.certificate.location");
if (new File(selfSignedKeystoreFile).exists()) {
final String password = httpsProperties.get("https.password");
- final InputStream readStream = new FileInputStream(selfSignedKeystoreFile);
- ks.load(readStream, password.toCharArray());
- readStream.close();
+ try (InputStream readStream = new FileInputStream(selfSignedKeystoreFile)) {
+ ks.load(readStream, password.toCharArray());
+ }
final Certificate[] certs = ks.getCertificateChain(defaultAlias);
final List<X509Certificate> x509certs = new ArrayList<>();
diff --git a/traffic_router/core/build/pmd/ruleset.xml b/traffic_router/core/build/pmd/ruleset.xml
index dcbc791..2ed0b2a 100644
--- a/traffic_router/core/build/pmd/ruleset.xml
+++ b/traffic_router/core/build/pmd/ruleset.xml
@@ -13,196 +13,171 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<ruleset name="Overpass PMD Ruleset" xmlns="http://pmd.sf.net/ruleset/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<ruleset name="Overpass PMD Ruleset" xmlns="http://pmd.sf.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>Overpass PMD Ruleset</description>
<exclude-pattern>.*/src/test/.*</exclude-pattern>
- <rule ref="rulesets/java/empty.xml/EmptyCatchBlock" />
- <rule ref="rulesets/java/empty.xml/EmptyIfStmt" />
- <rule ref="rulesets/java/empty.xml/EmptyWhileStmt" />
- <rule ref="rulesets/java/empty.xml/EmptyTryBlock" />
- <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock" />
- <rule ref="rulesets/java/empty.xml/EmptySwitchStatements" />
- <rule ref="rulesets/java/basic.xml/JumbledIncrementer" />
- <rule ref="rulesets/java/basic.xml/ForLoopShouldBeWhileLoop" />
- <rule ref="rulesets/java/unnecessary.xml/UnnecessaryConversionTemporary" />
- <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode" />
- <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking"
+ <rule ref="category/java/errorprone.xml/EmptyCatchBlock" />
+ <rule ref="category/java/errorprone.xml/EmptyIfStmt" />
+ <rule ref="category/java/errorprone.xml/EmptyWhileStmt" />
+ <rule ref="category/java/errorprone.xml/EmptyTryBlock" />
+ <rule ref="category/java/errorprone.xml/EmptyFinallyBlock" />
+ <rule ref="category/java/errorprone.xml/EmptySwitchStatements" />
+ <rule ref="category/java/errorprone.xml/JumbledIncrementer" />
+ <rule ref="category/java/codestyle.xml/ForLoopShouldBeWhileLoop" />
+ <rule ref="category/java/errorprone.xml/UnnecessaryConversionTemporary" />
+ <rule ref="category/java/errorprone.xml/OverrideBothEqualsAndHashcode" />
+ <rule ref="category/java/multithreading.xml/DoubleCheckedLocking"
message="Verify that the double-checked variable is declared as volatile.">
<priority>3</priority>
</rule>
- <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock" />
- <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock" />
- <rule ref="rulesets/java/unnecessary.xml/UnnecessaryReturn" />
- <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer" />
- <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement" />
- <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop" />
- <rule ref="rulesets/java/basic.xml/BooleanInstantiation" />
- <rule ref="rulesets/java/unnecessary.xml/UnnecessaryFinalModifier" />
- <rule ref="rulesets/java/basic.xml/CollapsibleIfStatements" />
- <rule ref="rulesets/java/unnecessary.xml/UselessOverridingMethod" />
- <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray" />
- <rule ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor" />
- <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable" />
- <rule ref="rulesets/java/basic.xml/MisplacedNullCheck" />
- <rule ref="rulesets/java/unnecessary.xml/UnusedNullCheckInEquals" />
- <rule ref="rulesets/java/basic.xml/AvoidThreadGroup" />
- <rule ref="rulesets/java/basic.xml/BrokenNullCheck" />
- <rule ref="rulesets/java/basic.xml/BigIntegerInstantiation" />
- <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues" />
- <rule ref="rulesets/java/basic.xml/AvoidUsingHardCodedIP" />
- <rule ref="rulesets/java/basic.xml/CheckResultSet" />
- <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators" />
- <rule ref="rulesets/java/empty.xml/EmptyInitializer" />
-
- <rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces" />
- <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces" />
- <rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces" />
- <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces" />
-
- <rule ref="rulesets/java/clone.xml/ProperCloneImplementation" />
- <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException" />
- <rule ref="rulesets/java/clone.xml/CloneMethodMustImplementCloneable" />
-
- <rule ref="rulesets/java/codesize.xml/NPathComplexity" />
- <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList" />
- <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity" >
- <properties>
- <property name="showClassesComplexity" value="false" />
- </properties>
- </rule>
- <rule ref="rulesets/java/codesize.xml/ExcessivePublicCount" />
- <rule ref="rulesets/java/codesize.xml/TooManyFields" />
- <rule ref="rulesets/java/codesize.xml/NcssMethodCount" />
- <rule ref="rulesets/java/codesize.xml/NcssTypeCount" />
- <rule ref="rulesets/java/codesize.xml/NcssConstructorCount" />
-
- <rule ref="rulesets/java/controversial.xml/DontImportSun" />
- <rule ref="rulesets/java/controversial.xml/SuspiciousOctalEscape" />
- <rule ref="rulesets/java/controversial.xml/AvoidUsingNativeCode" />
- <rule ref="rulesets/java/controversial.xml/AvoidAccessibilityAlteration" />
- <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly" />
-
- <rule ref="rulesets/java/coupling.xml/LooseCoupling" />
-
- <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts" />
- <rule ref="rulesets/java/design.xml/AvoidReassigningParameters" >
+ <rule ref="category/java/errorprone.xml/ReturnFromFinallyBlock" />
+ <rule ref="category/java/errorprone.xml/EmptySynchronizedBlock" />
+ <rule ref="category/java/codestyle.xml/UnnecessaryReturn" />
+ <rule ref="category/java/errorprone.xml/UnconditionalIfStatement" />
+ <rule ref="category/java/errorprone.xml/EmptyStatementNotInLoop" />
+ <rule ref="category/java/codestyle.xml/UnnecessaryModifier" />
+ <rule ref="category/java/design.xml/CollapsibleIfStatements" />
+ <rule ref="category/java/design.xml/UselessOverridingMethod" />
+ <rule ref="category/java/errorprone.xml/ClassCastExceptionWithToArray" />
+ <rule ref="category/java/errorprone.xml/AvoidDecimalLiteralsInBigDecimalConstructor" />
+ <rule ref="category/java/errorprone.xml/UselessOperationOnImmutable" />
+ <rule ref="category/java/errorprone.xml/MisplacedNullCheck" />
+ <rule ref="category/java/errorprone.xml/UnusedNullCheckInEquals" />
+ <rule ref="category/java/multithreading.xml/AvoidThreadGroup" />
+ <rule ref="category/java/errorprone.xml/BrokenNullCheck" />
+ <rule ref="category/java/performance.xml/BigIntegerInstantiation" />
+ <rule ref="category/java/errorprone.xml/AvoidUsingOctalValues" />
+ <rule ref="category/java/bestpractices.xml/AvoidUsingHardCodedIP" />
+ <rule ref="category/java/bestpractices.xml/CheckResultSet" />
+ <rule ref="category/java/errorprone.xml/AvoidMultipleUnaryOperators" />
+ <rule ref="category/java/errorprone.xml/EmptyInitializer" />
+
+
+ <rule ref="category/java/errorprone.xml/ProperCloneImplementation" />
+ <rule ref="category/java/errorprone.xml/CloneMethodMustImplementCloneable" />
+
+ <rule ref="category/java/design.xml/NPathComplexity" />
+ <rule ref="category/java/design.xml/ExcessiveParameterList" />
+ <rule ref="category/java/design.xml/CyclomaticComplexity" />
+ <rule ref="category/java/design.xml/ExcessivePublicCount" />
+ <rule ref="category/java/design.xml/TooManyFields" />
+
+ <rule ref="category/java/errorprone.xml/DontImportSun" />
+ <rule ref="category/java/errorprone.xml/SuspiciousOctalEscape" />
+ <rule ref="category/java/codestyle.xml/AvoidUsingNativeCode" />
+ <rule ref="category/java/errorprone.xml/AvoidAccessibilityAlteration" />
+ <rule ref="category/java/errorprone.xml/DoNotCallGarbageCollectionExplicitly" />
+
+ <rule ref="category/java/bestpractices.xml/LooseCoupling" />
+
+ <rule ref="category/java/design.xml/AvoidDeeplyNestedIfStmts" />
+ <rule ref="category/java/bestpractices.xml/AvoidReassigningParameters" >
<priority>3</priority>
</rule>
- <rule ref="rulesets/java/design.xml/SwitchDensity" />
- <rule ref="rulesets/java/design.xml/ConstructorCallsOverridableMethod" />
- <rule ref="rulesets/java/design.xml/AccessorClassGeneration" />
- <rule ref="rulesets/java/design.xml/FinalFieldCouldBeStatic" />
- <rule ref="rulesets/java/design.xml/CloseResource" />
- <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt" />
- <rule ref="rulesets/java/design.xml/NonCaseLabelInSwitchStatement" />
- <rule ref="rulesets/java/design.xml/OptimizableToArrayCall" />
- <rule ref="rulesets/java/design.xml/BadComparison" />
- <rule ref="rulesets/java/design.xml/EqualsNull" />
- <rule ref="rulesets/java/design.xml/InstantiationToGetClass" />
- <rule ref="rulesets/java/design.xml/IdempotentOperations" />
- <rule ref="rulesets/java/design.xml/ImmutableField" />
- <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass" />
- <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic" />
- <rule ref="rulesets/java/design.xml/MissingStaticMethodInNonInstantiatableClass" />
- <rule ref="rulesets/java/design.xml/MissingBreakInSwitch" />
- <rule ref="rulesets/java/design.xml/UseNotifyAllInsteadOfNotify" />
- <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause" />
- <rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod" />
- <rule ref="rulesets/java/design.xml/SimplifyConditional" />
- <rule ref="rulesets/java/design.xml/PositionLiteralsFirstInComparisons" />
- <rule ref="rulesets/java/design.xml/NonThreadSafeSingleton" />
- <rule ref="rulesets/java/design.xml/UnsynchronizedStaticDateFormatter" />
- <rule ref="rulesets/java/design.xml/PreserveStackTrace" />
- <rule ref="rulesets/java/design.xml/UseCollectionIsEmpty" />
- <rule ref="rulesets/java/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal" />
- <rule ref="rulesets/java/design.xml/SingularField" />
- <rule ref="rulesets/java/design.xml/AbstractClassWithoutAnyMethod" />
-
- <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected" />
- <rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize" />
-
- <rule ref="rulesets/java/imports.xml/DuplicateImports" />
- <rule ref="rulesets/java/imports.xml/DontImportJavaLang" />
- <rule ref="rulesets/java/imports.xml/UnusedImports" />
- <rule ref="rulesets/java/imports.xml/ImportFromSamePackage" />
- <rule ref="rulesets/java/imports.xml/TooManyStaticImports" />
-
- <rule ref="rulesets/java/javabeans.xml/MissingSerialVersionUID" />
-
- <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger" />
- <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal" />
- <rule ref="rulesets/java/logging-java.xml/SystemPrintln" />
- <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace" />
-
- <rule ref="rulesets/java/naming.xml/LongVariable">
+ <rule ref="category/java/design.xml/SwitchDensity" />
+ <rule ref="category/java/errorprone.xml/ConstructorCallsOverridableMethod" />
+ <rule ref="category/java/bestpractices.xml/AccessorClassGeneration" />
+ <rule ref="category/java/design.xml/FinalFieldCouldBeStatic" />
+ <rule ref="category/java/errorprone.xml/CloseResource" />
+ <rule ref="category/java/bestpractices.xml/DefaultLabelNotLastInSwitchStmt" />
+ <rule ref="category/java/errorprone.xml/NonCaseLabelInSwitchStatement" />
+ <rule ref="category/java/performance.xml/OptimizableToArrayCall" />
+ <rule ref="category/java/errorprone.xml/BadComparison" />
+ <rule ref="category/java/errorprone.xml/EqualsNull" />
+ <rule ref="category/java/errorprone.xml/InstantiationToGetClass" />
+ <rule ref="category/java/errorprone.xml/IdempotentOperations" />
+ <rule ref="category/java/design.xml/ImmutableField" />
+ <rule ref="category/java/codestyle.xml/AvoidProtectedFieldInFinalClass" />
+ <rule ref="category/java/errorprone.xml/AssignmentToNonFinalStatic" />
+ <rule ref="category/java/errorprone.xml/MissingStaticMethodInNonInstantiatableClass" />
+ <rule ref="category/java/errorprone.xml/MissingBreakInSwitch" />
+ <rule ref="category/java/multithreading.xml/UseNotifyAllInsteadOfNotify" />
+ <rule ref="category/java/errorprone.xml/AvoidInstanceofChecksInCatchClause" />
+ <rule ref="category/java/bestpractices.xml/AbstractClassWithoutAbstractMethod" />
+ <rule ref="category/java/design.xml/SimplifyConditional" />
+ <rule ref="category/java/multithreading.xml/NonThreadSafeSingleton" />
+ <rule ref="category/java/bestpractices.xml/PreserveStackTrace" />
+ <rule ref="category/java/bestpractices.xml/UseCollectionIsEmpty" />
+ <rule ref="category/java/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal" />
+ <rule ref="category/java/design.xml/SingularField" />
+ <rule ref="category/java/design.xml/AbstractClassWithoutAnyMethod" />
+
+ <rule ref="category/java/errorprone.xml/EmptyFinalizer" />
+ <rule ref="category/java/errorprone.xml/FinalizeOnlyCallsSuperFinalize" />
+ <rule ref="category/java/errorprone.xml/FinalizeOverloaded" />
+ <rule ref="category/java/errorprone.xml/FinalizeDoesNotCallSuperFinalize" />
+ <rule ref="category/java/errorprone.xml/FinalizeShouldBeProtected" />
+ <rule ref="category/java/errorprone.xml/AvoidCallingFinalize" />
+
+ <rule ref="category/java/codestyle.xml/TooManyStaticImports" />
+
+ <rule ref="category/java/errorprone.xml/MissingSerialVersionUID" />
+
+ <rule ref="category/java/errorprone.xml/MoreThanOneLogger" />
+ <rule ref="category/java/bestpractices.xml/SystemPrintln" />
+ <rule ref="category/java/bestpractices.xml/AvoidPrintStackTrace" />
+
+ <rule ref="category/java/codestyle.xml/LongVariable">
<properties>
<property name="minimum" value="30" />
</properties>
</rule>
- <rule ref="rulesets/java/naming.xml/ShortMethodName" />
- <rule ref="rulesets/java/naming.xml/MethodNamingConventions" />
- <rule ref="rulesets/java/naming.xml/ClassNamingConventions" />
- <rule ref="rulesets/java/naming.xml/AbstractNaming" />
- <rule ref="rulesets/java/naming.xml/AvoidDollarSigns" />
- <rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass" />
- <rule ref="rulesets/java/naming.xml/SuspiciousHashcodeMethodName" />
- <rule ref="rulesets/java/naming.xml/SuspiciousConstantFieldName" />
- <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName" />
- <rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingTypeName" />
+ <rule ref="category/java/codestyle.xml/ShortMethodName" />
+ <rule ref="category/java/codestyle.xml/MethodNamingConventions" />
+ <rule ref="category/java/codestyle.xml/ClassNamingConventions" />
+ <rule ref="category/java/codestyle.xml/AvoidDollarSigns" />
+ <rule ref="category/java/errorprone.xml/MethodWithSameNameAsEnclosingClass" />
+ <rule ref="category/java/errorprone.xml/SuspiciousHashcodeMethodName" />
+ <rule ref="category/java/errorprone.xml/SuspiciousEqualsMethodName" />
+ <rule ref="category/java/errorprone.xml/AvoidFieldNameMatchingTypeName" />
<!--<rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingMethodName" />-->
- <rule ref="rulesets/java/naming.xml/NoPackage" />
- <rule ref="rulesets/java/naming.xml/PackageCase" />
- <rule ref="rulesets/java/naming.xml/MisleadingVariableName" />
- <rule ref="rulesets/java/naming.xml/BooleanGetMethodName" />
-
- <rule ref="rulesets/java/optimizations.xml/LocalVariableCouldBeFinal" />
- <rule ref="rulesets/java/optimizations.xml/MethodArgumentCouldBeFinal" />
- <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector" />
- <rule ref="rulesets/java/optimizations.xml/UseStringBufferForStringAppends" />
- <rule ref="rulesets/java/optimizations.xml/UseArraysAsList" />
- <rule ref="rulesets/java/optimizations.xml/AvoidArrayLoops" />
- <rule ref="rulesets/java/optimizations.xml/UnnecessaryWrapperObjectCreation" />
- <rule ref="rulesets/java/optimizations.xml/AddEmptyString" />
-
- <rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable" />
- <rule ref="rulesets/java/strictexception.xml/SignatureDeclareThrowsException" />
- <rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl" />
- <rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE" />
- <rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes" />
- <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException" />
- <rule ref="rulesets/java/strictexception.xml/AvoidRethrowingException" />
- <rule ref="rulesets/java/strictexception.xml/DoNotExtendJavaLangError" />
- <rule ref="rulesets/java/strictexception.xml/DoNotThrowExceptionInFinally" />
- <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNewInstanceOfSameException" />
-
- <rule ref="rulesets/java/strings.xml/AvoidDuplicateLiterals" >
+ <rule ref="category/java/codestyle.xml/NoPackage" />
+ <rule ref="category/java/codestyle.xml/PackageCase" />
+ <rule ref="category/java/codestyle.xml/BooleanGetMethodName" />
+
+ <rule ref="category/java/codestyle.xml/LocalVariableCouldBeFinal" />
+ <rule ref="category/java/codestyle.xml/MethodArgumentCouldBeFinal" />
+ <rule ref="category/java/performance.xml/UseArrayListInsteadOfVector" />
+ <rule ref="category/java/performance.xml/UseStringBufferForStringAppends" />
+ <rule ref="category/java/performance.xml/UseArraysAsList" />
+ <rule ref="category/java/performance.xml/AvoidArrayLoops" />
+ <rule ref="category/java/performance.xml/AddEmptyString" />
+
+ <rule ref="category/java/errorprone.xml/AvoidCatchingThrowable" />
+ <rule ref="category/java/design.xml/SignatureDeclareThrowsException" />
+ <rule ref="category/java/design.xml/ExceptionAsFlowControl" />
+ <rule ref="category/java/errorprone.xml/AvoidCatchingNPE" />
+ <rule ref="category/java/design.xml/AvoidThrowingRawExceptionTypes" />
+ <rule ref="category/java/design.xml/AvoidThrowingNullPointerException" />
+ <rule ref="category/java/design.xml/AvoidRethrowingException" />
+ <rule ref="category/java/design.xml/DoNotExtendJavaLangError" />
+ <rule ref="category/java/errorprone.xml/DoNotThrowExceptionInFinally" />
+ <rule ref="category/java/design.xml/AvoidThrowingNewInstanceOfSameException" />
+
+ <rule ref="category/java/errorprone.xml/AvoidDuplicateLiterals" >
<properties>
<property name="skipAnnotations" value="true" />
</properties>
</rule>
- <rule ref="rulesets/java/strings.xml/StringInstantiation" />
- <rule ref="rulesets/java/strings.xml/StringToString" />
- <rule ref="rulesets/java/strings.xml/InefficientStringBuffering" />
- <rule ref="rulesets/java/strings.xml/UnnecessaryCaseChange" />
- <rule ref="rulesets/java/strings.xml/UseStringBufferLength" />
- <rule ref="rulesets/java/strings.xml/AppendCharacterWithChar" />
- <rule ref="rulesets/java/strings.xml/ConsecutiveLiteralAppends" />
- <rule ref="rulesets/java/strings.xml/UseIndexOfChar" />
- <rule ref="rulesets/java/strings.xml/UselessStringValueOf" />
- <rule ref="rulesets/java/strings.xml/StringBufferInstantiationWithChar" />
- <rule ref="rulesets/java/strings.xml/UseEqualsToCompareStrings" />
-
- <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateField" />
- <rule ref="rulesets/java/unusedcode.xml/UnusedLocalVariable" />
- <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod" />
- <rule ref="rulesets/java/unusedcode.xml/UnusedFormalParameter" />
+ <rule ref="category/java/performance.xml/StringInstantiation" />
+ <rule ref="category/java/performance.xml/StringToString" />
+ <rule ref="category/java/performance.xml/InefficientStringBuffering" />
+ <rule ref="category/java/errorprone.xml/UnnecessaryCaseChange" />
+ <rule ref="category/java/performance.xml/UseStringBufferLength" />
+ <rule ref="category/java/performance.xml/AppendCharacterWithChar" />
+ <rule ref="category/java/performance.xml/ConsecutiveLiteralAppends" />
+ <rule ref="category/java/performance.xml/UseIndexOfChar" />
+ <rule ref="category/java/performance.xml/UselessStringValueOf" />
+ <rule ref="category/java/errorprone.xml/StringBufferInstantiationWithChar" />
+ <rule ref="category/java/errorprone.xml/UseEqualsToCompareStrings" />
+
+ <rule ref="category/java/bestpractices.xml/UnusedPrivateField" />
+ <rule ref="category/java/bestpractices.xml/UnusedLocalVariable" />
+ <rule ref="category/java/bestpractices.xml/UnusedPrivateMethod" />
+ <rule ref="category/java/bestpractices.xml/UnusedFormalParameter" />
</ruleset>
diff --git a/traffic_router/core/pom.xml b/traffic_router/core/pom.xml
index 8f3b728..208b171 100644
--- a/traffic_router/core/pom.xml
+++ b/traffic_router/core/pom.xml
@@ -86,7 +86,7 @@
<plugins>
<plugin>
<artifactId>maven-pmd-plugin</artifactId>
- <version>3.6</version>
+ <version>3.14.0</version>
<executions>
<execution>
<id>PMD</id>
@@ -182,7 +182,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
- <argLine>-XX:-UseSplitVerifier -Djava.library.path=${java.library.path}</argLine>
+ <argLine>-Djava.library.path=${java.library.path}</argLine>
<excludedGroups>org.apache.traffic_control.traffic_router.core.util.IntegrationTest,org.apache.traffic_control.traffic_router.core.util.ExternalTest</excludedGroups>
</configuration>
</plugin>
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/config/ConfigHandler.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/config/ConfigHandler.java
index d30f84d..2b6a697 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/config/ConfigHandler.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/config/ConfigHandler.java
@@ -71,7 +71,7 @@ import org.apache.traffic_control.traffic_router.core.loc.AnonymousIp;
import org.apache.traffic_control.traffic_router.core.loc.AnonymousIpConfigUpdater;
import org.apache.traffic_control.traffic_router.core.loc.AnonymousIpDatabaseUpdater;
-@SuppressWarnings("PMD.TooManyFields")
+@SuppressWarnings({"PMD.TooManyFields", "PMD.CyclomaticComplexity"})
public class ConfigHandler {
private static final Logger LOGGER = Logger.getLogger(ConfigHandler.class);
@@ -592,7 +592,7 @@ public class ConfigHandler {
ds.setGeoRedirectFile(url.getFile());
//try select the ds by the redirect fake HTTPRequest
final DeliveryService rds = cacheRegister.getDeliveryService(req);
- if (rds == null || rds.getId() != ds.getId()) {
+ if (rds == null || !Objects.equals(rds.getId(), ds.getId())) {
//the redirect url not belongs to this ds
ds.setGeoRedirectUrlType("NOT_DS_URL");
continue;
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/DNSAccessEventBuilder.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/DNSAccessEventBuilder.java
index 11ccdc8..590b21e 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/DNSAccessEventBuilder.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/DNSAccessEventBuilder.java
@@ -122,12 +122,12 @@ public class DNSAccessEventBuilder {
.append(" rdtl=-")
.append(" rerr=\"")
.append(rerr)
- .append("\"")
+ .append('"')
.append(" ttl=\"-\"")
.append(" ans=\"-\"")
.append(" svc=\"")
.append(dsID)
- .append("\"")
+ .append('"')
.toString();
}
@@ -145,12 +145,12 @@ public class DNSAccessEventBuilder {
.append(" rdtl=-")
.append(" rerr=\"")
.append(rerr)
- .append("\"")
+ .append('"')
.append(" ttl=\"-\"")
.append(" ans=\"-\"")
.append(" svc=\"")
.append(dsID)
- .append("\"").toString();
+ .append('"').toString();
}
private static String createQuery(final Record query) {
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServer.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServer.java
index 73f2242..4b9d574 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServer.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServer.java
@@ -39,7 +39,7 @@ import org.xbill.DNS.ClientSubnetOption;
import org.apache.traffic_control.traffic_router.core.ds.DeliveryService;
import org.apache.traffic_control.traffic_router.core.router.TrafficRouterManager;
-
+@SuppressWarnings("PMD.CyclomaticComplexity")
public class NameServer {
private static final int MAX_SUPPORTED_EDNS_VERS = 0;
private static final int MAX_ITERATIONS = 6;
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServerMain.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServerMain.java
index 48db476..f586662 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServerMain.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/NameServerMain.java
@@ -90,8 +90,7 @@ public final class NameServerMain {
* @param args
*/
public static void main(final String[] args) {
- try {
- final ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("/dns-traffic-router.xml");
+ try (ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("/dns-traffic-router.xml")) {
ctx.getBean("NameServerMain");
LOGGER.info("PROCESS_SUCCEEDED");
} catch (final Exception e) {
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/SignatureManager.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/SignatureManager.java
index db71f00..80c0ebb 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/SignatureManager.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/SignatureManager.java
@@ -50,7 +50,7 @@ import org.apache.traffic_control.traffic_router.core.dns.ZoneManager.ZoneCacheT
import org.apache.traffic_control.traffic_router.core.util.TrafficOpsUtils;
import org.apache.traffic_control.traffic_router.core.util.ProtectedFetcher;
-
+@SuppressWarnings("PMD.CyclomaticComplexity")
public final class SignatureManager {
private static final Logger LOGGER = Logger.getLogger(SignatureManager.class);
private int expirationMultiplier;
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManager.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManager.java
index 674b8cf..2611bda 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManager.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneManager.java
@@ -95,6 +95,7 @@ import com.google.common.cache.RemovalNotification;
import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.ListenableFutureTask;
+@SuppressWarnings("PMD.CyclomaticComplexity")
public class ZoneManager extends Resolver {
private static final Logger LOGGER = Logger.getLogger(ZoneManager.class);
@@ -115,7 +116,7 @@ public class ZoneManager extends Resolver {
private static Name topLevelDomain;
private static final String AAAA = "AAAA";
- protected static enum ZoneCacheType {
+ protected enum ZoneCacheType {
DYNAMIC, STATIC
}
@@ -326,11 +327,11 @@ public class ZoneManager extends Resolver {
}
final File zoneFile = new File(getZoneDirectory(), zone.getOrigin().toString());
- final FileWriter w = new FileWriter(zoneFile);
- LOGGER.info("writing: " + zoneFile.getAbsolutePath());
- IOUtils.write(zone.toMasterFile(), w);
- w.flush();
- w.close();
+ try (FileWriter w = new FileWriter(zoneFile)) {
+ LOGGER.info("writing: " + zoneFile.getAbsolutePath());
+ IOUtils.write(zone.toMasterFile(), w);
+ w.flush();
+ }
}
}
@@ -383,7 +384,7 @@ public class ZoneManager extends Resolver {
records = signatureManager.signZone(name, records, (SignedZoneKey) zoneKey);
}
- final Zone zone = new Zone(name, records.toArray(new Record[records.size()]));
+ final Zone zone = new Zone(name, records.toArray(new Record[0]));
if (writeZone) {
writeZone(zone);
@@ -711,7 +712,7 @@ public class ZoneManager extends Resolver {
list.add(new CNAMERecord(name, DClass.IN, ttl, new Name(value)));
break;
case "TXT":
- list.add(new TXTRecord(name, DClass.IN, ttl, new String(value)));
+ list.add(new TXTRecord(name, DClass.IN, ttl, value));
break;
}
} catch (JsonUtilsException ex) {
@@ -800,7 +801,7 @@ public class ZoneManager extends Resolver {
}
@SuppressWarnings({"PMD.CyclomaticComplexity", "PMD.NPathComplexity"})
- private static final Map<String, List<Record>> populateZoneMap(final Map<String, List<Record>> zoneMap,
+ private static Map<String, List<Record>> populateZoneMap(final Map<String, List<Record>> zoneMap,
final Map<String, DeliveryService> dsMap, final CacheRegister data) throws IOException {
final Map<String, List<Record>> superDomains = new HashMap<String, List<Record>>();
@@ -1025,7 +1026,7 @@ public class ZoneManager extends Resolver {
LOGGER.error(e, e);
}
- return new Zone(staticZone.getOrigin(), records.toArray(new Record[records.size()]));
+ return new Zone(staticZone.getOrigin(), records.toArray(new Record[0]));
}
} catch (final IOException e) {
LOGGER.error(e.getMessage(), e);
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneUtils.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneUtils.java
index 3fc63c5..5d69ae2 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneUtils.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/ZoneUtils.java
@@ -75,11 +75,11 @@ public class ZoneUtils {
protected static String getAdminString(final JsonNode jo, final String key, final String d, final String domain) {
if (jo == null) {
- return new StringBuffer(d).append(".").append(domain).toString();
+ return new StringBuffer(d).append('.').append(domain).toString();
}
if (!jo.has(key)) {
- return new StringBuffer(d).append(".").append(domain).toString();
+ return new StringBuffer(d).append('.').append(domain).toString();
}
// check for @ sign in string
@@ -87,7 +87,7 @@ public class ZoneUtils {
if (admin.contains("@")) {
admin = admin.replace("@",".");
} else {
- admin = new StringBuffer(admin).append(".").append(domain).toString();
+ admin = new StringBuffer(admin).append('.').append(domain).toString();
}
return admin;
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/Protocol.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/Protocol.java
index a9c325c..ed44b2c 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/Protocol.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/Protocol.java
@@ -19,5 +19,5 @@ public interface Protocol extends Runnable {
/**
* Shuts down the protocol canceling all pending and running requests.
*/
- public void shutdown();
+ void shutdown();
}
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/SocketHandler.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/SocketHandler.java
index b2f93dc..9f43ede 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/SocketHandler.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/SocketHandler.java
@@ -19,10 +19,10 @@ public interface SocketHandler extends Runnable {
/**
* Cleanup method for implementing classes that must also implement Runnable.run().
*/
- public void cleanup();
+ void cleanup();
/**
* Cancel method for implementing classes that must also implement Runnable.run().
*/
- public void cancel();
+ void cancel();
}
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java
index 2871833..9e21532 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/dns/protocol/TCP.java
@@ -46,9 +46,9 @@ public class TCP extends AbstractProtocol {
@Override
public void run() {
while (!isShutdownRequested()) {
+ final TCPSocketHandler handler;
try {
- final Socket socket = getServerSocket().accept();
- final TCPSocketHandler handler = new TCPSocketHandler(socket);
+ handler = new TCPSocketHandler(getServerSocket().accept());
submit(handler);
} catch (final IOException e) {
LOGGER.warn("error: " + e);
@@ -95,13 +95,13 @@ public class TCP extends AbstractProtocol {
return;
}
- try {
+ try (InputStream iis = Channels.newInputStream(Channels.newChannel(socket.getInputStream()));
+ DataInputStream is = new DataInputStream(iis);
+ DataOutputStream os = new DataOutputStream(socket.getOutputStream())
+ ) {
socket.setSoTimeout(getReadTimeout());
final InetAddress client = socket.getInetAddress();
- final InputStream iis = Channels.newInputStream(Channels.newChannel(socket.getInputStream()));
- final DataInputStream is = new DataInputStream(iis);
- final DataOutputStream os = new DataOutputStream(socket.getOutputStream());
final int length = is.readUnsignedShort();
final byte[] request = new byte[length];
is.readFully(request);
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/DeliveryService.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/DeliveryService.java
index b9f6648..1a88c46 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/DeliveryService.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/DeliveryService.java
@@ -145,48 +145,16 @@ public class DeliveryService {
this.shouldAppendQueryString = JsonUtils.optBoolean(dsJo, "appendQueryString", true);
this.ecsEnabled = JsonUtils.optBoolean(dsJo, "ecsEnabled");
- if (dsJo.has("topology")) {
- this.topology = JsonUtils.optString(dsJo, "topology");
- }
+ initTopology(dsJo);
this.requiredCapabilities = new HashSet<>();
- if (dsJo.has("requiredCapabilities")) {
- final JsonNode requiredCapabilitiesNode = dsJo.get("requiredCapabilities");
- if (!requiredCapabilitiesNode.isArray()) {
- LOGGER.error("Delivery Service '" + id + "' has malformed requiredCapabilities. Disregarding.");
- } else {
- requiredCapabilitiesNode.forEach((requiredCapabilityNode) -> {
- final String requiredCapability = requiredCapabilityNode.asText();
- if (!requiredCapability.isEmpty()) {
- this.requiredCapabilities.add(requiredCapability);
- }
- });
- }
- }
+ initRequiredCapabilities(dsJo);
- this.consistentHashQueryParams = new HashSet<String>();
- if (dsJo.has("consistentHashQueryParams")) {
- final JsonNode cqpNode = dsJo.get("consistentHashQueryParams");
- if (!cqpNode.isArray()) {
- LOGGER.error("Delivery Service '" + id + "' has malformed consistentHashQueryParams. Disregarding.");
- } else {
- for (final JsonNode n : cqpNode) {
- final String s = n.asText();
- if (!s.isEmpty()) {
- this.consistentHashQueryParams.add(s);
- }
- }
- }
- }
+ this.consistentHashQueryParams = new HashSet<>();
+ initConsistentHashQueryParams(dsJo);
// missLocation: {lat: , long: }
final JsonNode mlJo = dsJo.get("missLocation");
- if(mlJo != null) {
- final double lat = JsonUtils.optDouble(mlJo, "lat");
- final double longitude = JsonUtils.optDouble(mlJo, "long");
- missLocation = new Geolocation(lat, longitude);
- } else {
- missLocation = null;
- }
+ missLocation = initMissLocation(mlJo);
this.dispersion = new Dispersion(dsJo);
this.ip6RoutingEnabled = JsonUtils.optBoolean(dsJo, "ip6RoutingEnabled");
@@ -218,6 +186,54 @@ public class DeliveryService {
}
}
+ private void initRequiredCapabilities(final JsonNode dsJo) {
+ if (dsJo.has("requiredCapabilities")) {
+ final JsonNode requiredCapabilitiesNode = dsJo.get("requiredCapabilities");
+ if (!requiredCapabilitiesNode.isArray()) {
+ LOGGER.error("Delivery Service '" + id + "' has malformed requiredCapabilities. Disregarding.");
+ } else {
+ requiredCapabilitiesNode.forEach((requiredCapabilityNode) -> {
+ final String requiredCapability = requiredCapabilityNode.asText();
+ if (!requiredCapability.isEmpty()) {
+ this.requiredCapabilities.add(requiredCapability);
+ }
+ });
+ }
+ }
+ }
+
+ private void initConsistentHashQueryParams(final JsonNode dsJo) {
+ if (dsJo.has("consistentHashQueryParams")) {
+ final JsonNode cqpNode = dsJo.get("consistentHashQueryParams");
+ if (!cqpNode.isArray()) {
+ LOGGER.error("Delivery Service '" + id + "' has malformed consistentHashQueryParams. Disregarding.");
+ } else {
+ for (final JsonNode n : cqpNode) {
+ final String s = n.asText();
+ if (!s.isEmpty()) {
+ this.consistentHashQueryParams.add(s);
+ }
+ }
+ }
+ }
+ }
+
+ private void initTopology(final JsonNode dsJo) {
+ if (dsJo.has("topology")) {
+ this.topology = JsonUtils.optString(dsJo, "topology");
+ }
+ }
+
+ private Geolocation initMissLocation(final JsonNode mlJo) {
+ if(mlJo != null) {
+ final double lat = JsonUtils.optDouble(mlJo, "lat");
+ final double longitude = JsonUtils.optDouble(mlJo, "long");
+ return new Geolocation(lat, longitude);
+ } else {
+ return null;
+ }
+ }
+
private String getDomainFromJson(final JsonNode domains) {
if (domains == null) {
return null;
@@ -530,8 +546,8 @@ public class DeliveryService {
}
private String getEncryptedTrans(final TransInfoType type, final byte[] ipBytes) throws IOException, GeneralSecurityException {
- try (final ByteArrayOutputStream baos = new ByteArrayOutputStream();
- final DataOutputStream dos = new DataOutputStream(baos)) {
+ try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ DataOutputStream dos = new DataOutputStream(baos)) {
dos.write(ipBytes);
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/LetsEncryptDnsChallengeWatcher.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/LetsEncryptDnsChallengeWatcher.java
index 5ebc89c..11953cc 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/LetsEncryptDnsChallengeWatcher.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/LetsEncryptDnsChallengeWatcher.java
@@ -128,9 +128,9 @@ public class LetsEncryptDnsChallengeWatcher extends AbstractResourceWatcher {
}
private String readConfigFile() {
- try {
- final InputStream is = new FileInputStream(databasesDirectory.resolve(configFile).toString());
- final BufferedReader buf = new BufferedReader(new InputStreamReader(is));
+ try (InputStream is = new FileInputStream(databasesDirectory.resolve(configFile).toString());
+ BufferedReader buf = new BufferedReader(new InputStreamReader(is))
+ ) {
String line = buf.readLine();
final StringBuilder sb = new StringBuilder();
while (line != null) {
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/Steering.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/Steering.java
index 34f519f..38da78f 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/Steering.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/Steering.java
@@ -99,7 +99,6 @@ public class Steering {
}
@Override
- @SuppressWarnings("PMD")
public int hashCode() {
int result = deliveryService != null ? deliveryService.hashCode() : 0;
result = 31 * result + (targets != null ? targets.hashCode() : 0);
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/SteeringFilter.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/SteeringFilter.java
index 539d333..dc57b0b 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/SteeringFilter.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/SteeringFilter.java
@@ -49,12 +49,11 @@ public class SteeringFilter {
}
@Override
- @SuppressWarnings("PMD")
- public boolean equals(Object o) {
+ public boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- SteeringFilter that = (SteeringFilter) o;
+ final SteeringFilter that = (SteeringFilter) o;
if (pattern != null ? !pattern.equals(that.pattern) : that.pattern != null) return false;
return deliveryService != null ? deliveryService.equals(that.deliveryService) : that.deliveryService == null;
@@ -62,7 +61,6 @@ public class SteeringFilter {
}
@Override
- @SuppressWarnings("PMD")
public int hashCode() {
int result = pattern != null ? pattern.hashCode() : 0;
result = 31 * result + (deliveryService != null ? deliveryService.hashCode() : 0);
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/SteeringTarget.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/SteeringTarget.java
index 5c1bb92..532d5cc 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/SteeringTarget.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/ds/SteeringTarget.java
@@ -15,9 +15,11 @@
package org.apache.traffic_control.traffic_router.core.ds;
+import com.fasterxml.jackson.annotation.JsonProperty;
import org.apache.traffic_control.traffic_router.core.hash.DefaultHashable;
import org.apache.traffic_control.traffic_router.geolocation.Geolocation;
-import com.fasterxml.jackson.annotation.JsonProperty;
+
+import java.util.Objects;
public class SteeringTarget extends DefaultHashable {
@@ -106,19 +108,18 @@ public class SteeringTarget extends DefaultHashable {
}
@Override
- @SuppressWarnings("PMD")
- public boolean equals(Object o) {
+ public boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
- SteeringTarget target = (SteeringTarget) o;
+ final SteeringTarget target = (SteeringTarget) o;
- if (weight != target.weight) return false;
- if (order != target.order) return false;
- if (geoOrder != target.geoOrder) return false;
- if (latitude != target.latitude) return false;
- if (longitude != target.longitude) return false;
- return deliveryService != null ? deliveryService.equals(target.deliveryService) : target.deliveryService == null;
+ if (weight != target.weight ||
+ order != target.order ||
+ geoOrder != target.geoOrder ||
+ latitude != target.latitude ||
+ longitude != target.longitude) return false;
+ return Objects.equals(deliveryService, target.deliveryService);
}
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/hash/NumberSearcher.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/hash/NumberSearcher.java
index 198740c..2686799 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/hash/NumberSearcher.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/hash/NumberSearcher.java
@@ -17,6 +17,7 @@ package org.apache.traffic_control.traffic_router.core.hash;
import java.util.Arrays;
+@SuppressWarnings("PMD.ClassNamingConventions")
public class NumberSearcher {
public static int findClosest(final Double[] numbers, final double target) {
final int index = Arrays.binarySearch(numbers, target);
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/http/HTTPAccessEventBuilder.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/http/HTTPAccessEventBuilder.java
index c831161..cb2f81f 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/http/HTTPAccessEventBuilder.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/http/HTTPAccessEventBuilder.java
@@ -23,6 +23,7 @@ import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.Map;
+@SuppressWarnings("PMD.ClassNamingConventions")
public class HTTPAccessEventBuilder {
private static String formatRequest(final HttpServletRequest request) {
String url = formatObject(request.getRequestURL());
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AbstractServiceUpdater.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AbstractServiceUpdater.java
index 797774e..639ec52 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AbstractServiceUpdater.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AbstractServiceUpdater.java
@@ -361,24 +361,19 @@ public abstract class AbstractServiceUpdater {
}
}
- InputStream in = conn.getInputStream();
- eTag = conn.getHeaderField("ETag");
-
- if (conn.getResponseCode() == HttpURLConnection.HTTP_NOT_MODIFIED) {
- LOGGER.info("[" + getClass().getSimpleName() + "] " + url + " not modified since our existing database's last update time of " + new Date(existingDb.lastModified()));
- return existingDb;
- }
-
- if (sourceCompressed) {
- in = new GZIPInputStream(in);
- }
-
final File outputFile = File.createTempFile(tmpPrefix, tmpSuffix);
- final OutputStream out = new FileOutputStream(outputFile);
+ try (InputStream in = conn.getInputStream();
+ OutputStream out = new FileOutputStream(outputFile)
+ ) {
+ eTag = conn.getHeaderField("ETag");
+
+ if (conn.getResponseCode() == HttpURLConnection.HTTP_NOT_MODIFIED) {
+ LOGGER.info("[" + getClass().getSimpleName() + "] " + url + " not modified since our existing database's last update time of " + new Date(existingDb.lastModified()));
+ return existingDb;
+ }
- IOUtils.copy(in, out);
- IOUtils.closeQuietly(in);
- IOUtils.closeQuietly(out);
+ IOUtils.copy(sourceCompressed ? new GZIPInputStream(in) : in, out);
+ }
return outputFile;
}
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AnonymousIpDatabaseService.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AnonymousIpDatabaseService.java
index 3237b3d..378c295 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AnonymousIpDatabaseService.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AnonymousIpDatabaseService.java
@@ -41,9 +41,8 @@ public class AnonymousIpDatabaseService {
}
if (databaseFile != null) {
- final DatabaseReader reader = createDatabaseReader(databaseFile);
- if (reader != null) {
- databaseReader = reader;
+ databaseReader = createDatabaseReader(databaseFile);
+ if (databaseReader != null) {
initialized = true;
} else {
throw new IOException("Could not create database reader");
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AnonymousIpWhitelist.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AnonymousIpWhitelist.java
index 206469d..ed590f9 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AnonymousIpWhitelist.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/AnonymousIpWhitelist.java
@@ -18,6 +18,8 @@ import org.apache.log4j.Logger;
import org.apache.traffic_control.traffic_router.core.util.JsonUtilsException;
import com.fasterxml.jackson.databind.JsonNode;
+import java.util.Objects;
+
public class AnonymousIpWhitelist {
private static final Logger LOGGER = Logger.getLogger(AnonymousIpWhitelist.class);
@@ -52,7 +54,7 @@ public class AnonymousIpWhitelist {
try {
final NetworkNode nn = whitelist.getNetwork(address);
- if (nn.getLoc() == AnonymousIp.WHITE_LIST_LOC) {
+ if (Objects.equals(nn.getLoc(), AnonymousIp.WHITE_LIST_LOC)) {
return true;
}
} catch (NetworkNodeException e) {
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/MaxmindGeolocationService.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/MaxmindGeolocationService.java
index d17dc01..27c19d2 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/MaxmindGeolocationService.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/MaxmindGeolocationService.java
@@ -68,9 +68,8 @@ public class MaxmindGeolocationService implements GeolocationService {
}
if (databaseFile != null) {
- final DatabaseReader reader = createDatabaseReader(databaseFile);
- if (reader != null) {
- databaseReader = reader;
+ databaseReader = createDatabaseReader(databaseFile);
+ if (databaseReader != null) {
initialized = true;
}
}
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/RegionalGeoResult.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/RegionalGeoResult.java
index 96d390d..0fe88bb 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/RegionalGeoResult.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/RegionalGeoResult.java
@@ -17,7 +17,7 @@ package org.apache.traffic_control.traffic_router.core.loc;
public class RegionalGeoResult {
- public static enum RegionalGeoResultType {
+ public enum RegionalGeoResultType {
ALLOWED, ALTERNATE_WITH_CACHE, ALTERNATE_WITHOUT_CACHE, DENIED
}
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/RegionalGeoRule.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/RegionalGeoRule.java
index 053a4ea..2d45ad3 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/RegionalGeoRule.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/loc/RegionalGeoRule.java
@@ -18,6 +18,7 @@ package org.apache.traffic_control.traffic_router.core.loc;
import org.apache.log4j.Logger;
import java.util.List;
+import java.util.Objects;
import java.util.Set;
import java.util.regex.Pattern;
@@ -27,7 +28,7 @@ public class RegionalGeoRule {
public static final String WHITE_LIST_NODE_LOCATION = "w";
- public static enum PostalsType {
+ public enum PostalsType {
EXCLUDE, INCLUDE, UNDEFINED
}
@@ -98,7 +99,7 @@ public class RegionalGeoRule {
try {
final NetworkNode nn = whiteListRoot.getNetwork(ip);
- if (nn.getLoc() == WHITE_LIST_NODE_LOCATION) {
+ if (Objects.equals(nn.getLoc(), WHITE_LIST_NODE_LOCATION)) {
return true;
}
} catch (NetworkNodeException e) {
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/monitor/TrafficMonitorWatcher.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/monitor/TrafficMonitorWatcher.java
index 42373c0..388f79e 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/monitor/TrafficMonitorWatcher.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/monitor/TrafficMonitorWatcher.java
@@ -317,7 +317,7 @@ public class TrafficMonitorWatcher implements ApplicationListener<ApplicationCon
} else if (!isLocalConfig() && isBootstrapped()) {
synchronized(monitorSync) {
if (!onlineMonitors.isEmpty()) {
- setHosts(onlineMonitors.toArray(new String[onlineMonitors.size()]));
+ setHosts(onlineMonitors.toArray(new String[0]));
}
}
}
@@ -369,7 +369,7 @@ public class TrafficMonitorWatcher implements ApplicationListener<ApplicationCon
TrafficMonitorWatcher.onlineMonitors = onlineMonitors;
setBootstrapped(true);
- setHosts(onlineMonitors.toArray(new String[onlineMonitors.size()]));
+ setHosts(onlineMonitors.toArray(new String[0]));
}
}
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/RouteResult.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/RouteResult.java
index 0e25f13..d7e85dc 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/RouteResult.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/RouteResult.java
@@ -16,5 +16,5 @@
package org.apache.traffic_control.traffic_router.core.router;
public interface RouteResult {
- public Object getResult();
+ Object getResult();
}
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/StatTracker.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/StatTracker.java
index d93f62a..610a007 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/StatTracker.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/StatTracker.java
@@ -113,7 +113,7 @@ public class StatTracker {
/**
* RouteType represents the type of routing performed/to be performed by Traffic Router.
*/
- public static enum RouteType {
+ public enum RouteType {
/**
* This value indicates DNS routing is taking/has taken/will take place.
*/
@@ -127,7 +127,7 @@ public class StatTracker {
/**
* ResultType represents the final result of attempting to route a request.
*/
- public static enum ResultType {
+ public enum ResultType {
/**
* This value indicates that an error occurred and routing could not be successfully completed.
*/
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/TrafficRouter.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/TrafficRouter.java
index 79b0a8d..a60b69e 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/TrafficRouter.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/router/TrafficRouter.java
@@ -86,7 +86,7 @@ import java.util.stream.Collectors;
/**
* TrafficRouter is the main router class that handles Traffic Router logic.
*/
-@SuppressWarnings({"PMD.TooManyFields", "PMD.ExcessivePublicCount"})
+@SuppressWarnings({"PMD.TooManyFields", "PMD.ExcessivePublicCount", "PMD.CyclomaticComplexity"})
public class TrafficRouter {
public static final Logger LOGGER = Logger.getLogger(TrafficRouter.class);
@@ -351,7 +351,7 @@ public class TrafficRouter {
if (deliveryServiceId != null && !deliveryServiceId.isEmpty()) {
error = error.append(" for delivery service " + deliveryServiceId);
}
- error = error.append(" falling back to " + MaxmindGeolocationService.class.getSimpleName());
+ error = error.append(" falling back to ").append(MaxmindGeolocationService.class.getSimpleName());
LOGGER.error(error);
}
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/secure/CertificatesClient.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/secure/CertificatesClient.java
index f8ae18c..f4c0ec2 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/secure/CertificatesClient.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/secure/CertificatesClient.java
@@ -124,7 +124,7 @@ public class CertificatesClient {
}
}
- return encodedPemItems.toArray(new String[encodedPemItems.size()]);
+ return encodedPemItems.toArray(new String[0]);
}
public void setTrafficOpsUtils(final TrafficOpsUtils trafficOpsUtils) {
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/secure/CertificatesPoller.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/secure/CertificatesPoller.java
index 29cb3c2..c6320dd 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/secure/CertificatesPoller.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/secure/CertificatesPoller.java
@@ -73,7 +73,7 @@ public class CertificatesPoller implements ConfigurationListener {
final Runnable runnable = () -> {
try {
trafficRouterManager.trackEvent("lastHttpsCertificatesCheck");
- List<CertificateData> certificateDataList = certificatesClient.refreshData();
+ final List<CertificateData> certificateDataList = certificatesClient.refreshData();
if (certificateDataList == null) {
return;
}
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/AbstractResourceWatcher.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/AbstractResourceWatcher.java
index 07d4190..8608267 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/AbstractResourceWatcher.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/AbstractResourceWatcher.java
@@ -35,7 +35,7 @@ public abstract class AbstractResourceWatcher extends AbstractServiceUpdater {
protected TrafficOpsUtils trafficOpsUtils;
private int timeout = 15000;
- @SuppressWarnings("PMD")
+ @SuppressWarnings({"PMD.CyclomaticComplexity", "PMD.NPathComplexity"})
public void configure(final JsonNode config) {
URL authUrl;
String credentials;
@@ -151,13 +151,12 @@ public abstract class AbstractResourceWatcher extends AbstractServiceUpdater {
}
File databaseFile = null;
- FileWriter fw;
try {
databaseFile = File.createTempFile(tmpPrefix, tmpSuffix);
- fw = new FileWriter(databaseFile);
- fw.write(jsonData);
- fw.flush();
- fw.close();
+ try (FileWriter fw = new FileWriter(databaseFile)) {
+ fw.write(jsonData);
+ fw.flush();
+ }
}
catch (IOException e) {
LOGGER.warn("Failed to create file from data received from '" + interpolatedUrl + "'");
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/CidrAddress.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/CidrAddress.java
index 91bdc19..fdc43dc 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/CidrAddress.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/CidrAddress.java
@@ -59,6 +59,7 @@ public class CidrAddress implements Comparable<CidrAddress> {
this(address, address.getAddress().length * 8);
}
+ @SuppressWarnings("PMD.CyclomaticComplexity")
public CidrAddress(final InetAddress address, final int netmaskLength) throws NetworkNodeException {
this.netmaskLength = netmaskLength;
this.address = address;
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/ComparableTreeSet.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/ComparableTreeSet.java
index a444b74..6aafe5e 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/ComparableTreeSet.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/ComparableTreeSet.java
@@ -18,6 +18,7 @@ package org.apache.traffic_control.traffic_router.core.util;
import java.util.TreeSet;
public class ComparableTreeSet<E> extends TreeSet<E> implements Comparable<ComparableTreeSet<E>> {
+ private static final long serialVersionUID = 1L;
@Override
public int compareTo(final ComparableTreeSet<E> o) {
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/Config.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/Config.java
index b751212..ae2922b 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/Config.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/Config.java
@@ -17,6 +17,7 @@ package org.apache.traffic_control.traffic_router.core.util;
import java.io.File;
+@SuppressWarnings("PMD.ClassNamingConventions")
public class Config {
private static String confDir = null;
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/DataExporter.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/DataExporter.java
index 8016518..fa387c6 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/DataExporter.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/DataExporter.java
@@ -74,7 +74,7 @@ public class DataExporter {
final Properties props = new Properties();
- try (final InputStream stream = getClass().getResourceAsStream("/version.prop")){
+ try (InputStream stream = getClass().getResourceAsStream("/version.prop")){
props.load(stream);
} catch (IOException e) {
LOGGER.warn(e,e);
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/Fetcher.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/Fetcher.java
index d91b372..2432320 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/Fetcher.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/Fetcher.java
@@ -36,7 +36,6 @@ import javax.net.ssl.SSLSession;
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
-import org.apache.commons.io.IOUtils;
import org.apache.log4j.Logger;
@@ -127,7 +126,7 @@ public class Fetcher {
if (method.equals(POST_STR) && data != null) {
http.setDoOutput(true); // Triggers POST.
- try (final OutputStream output = http.getOutputStream()) {
+ try (OutputStream output = http.getOutputStream()) {
output.write(data.getBytes(UTF8_STR));
}
}
@@ -151,55 +150,44 @@ public class Fetcher {
}
private String fetchIfModifiedSince(final String url, final String data, final String method, final long lastFetchTime) throws IOException {
- final OutputStream out = null;
String ifModifiedSince = null;
- try {
- final HttpURLConnection connection = getConnection(url, data, method, lastFetchTime);
- if (connection != null) {
- if (connection.getResponseCode() == HttpURLConnection.HTTP_NOT_MODIFIED) {
- return null;
- }
-
- if (connection.getResponseCode() > 399) {
- LOGGER.warn("Failed Http Request to " + url + " Status " + connection.getResponseCode());
- return null;
- }
+ final HttpURLConnection connection = getConnection(url, data, method, lastFetchTime);
+ if (connection != null) {
+ if (connection.getResponseCode() == HttpURLConnection.HTTP_NOT_MODIFIED) {
+ return null;
+ }
- final StringBuilder sb = new StringBuilder();
- createStringBuilderFromResponse(sb, connection);
- ifModifiedSince = sb.toString();
+ if (connection.getResponseCode() > 399) {
+ LOGGER.warn("Failed Http Request to " + url + " Status " + connection.getResponseCode());
+ return null;
}
- } finally {
- IOUtils.closeQuietly(out);
+ final StringBuilder sb = new StringBuilder();
+ createStringBuilderFromResponse(sb, connection);
+ ifModifiedSince = sb.toString();
}
return ifModifiedSince;
}
public int getIfModifiedSince(final String url, final long lastFetchTime, final StringBuilder stringBuilder) throws IOException {
- final OutputStream out = null;
int status = 0;
- try {
- final HttpURLConnection connection = getConnection(url, null, "GET", lastFetchTime);
- if (connection != null) {
- status = connection.getResponseCode();
+ final HttpURLConnection connection = getConnection(url, null, "GET", lastFetchTime);
+ if (connection != null) {
+ status = connection.getResponseCode();
- if (status == HttpURLConnection.HTTP_NOT_MODIFIED) {
- return status;
- }
+ if (status == HttpURLConnection.HTTP_NOT_MODIFIED) {
+ return status;
+ }
- if (connection.getResponseCode() > 399) {
- LOGGER.warn("Failed Http Request to " + url + " Status " + connection.getResponseCode());
- return status;
- }
+ if (connection.getResponseCode() > 399) {
+ LOGGER.warn("Failed Http Request to " + url + " Status " + connection.getResponseCode());
+ return status;
+ }
- createStringBuilderFromResponse(stringBuilder, connection);
+ createStringBuilderFromResponse(stringBuilder, connection);
- }
- return status;
- } finally {
- IOUtils.closeQuietly(out);
}
+ return status;
}
public String fetch(final String url, final String data, final String method) throws IOException {
@@ -228,14 +216,15 @@ public class Fetcher {
public void createStringBuilderFromResponse (final StringBuilder sb, final HttpURLConnection connection) throws IOException {
if (GZIP_ENCODING_STRING.equals(connection.getContentEncoding())) {
- final GZIPInputStream zippedInputStream = new GZIPInputStream(connection.getInputStream());
- final BufferedReader r = new BufferedReader(new InputStreamReader(zippedInputStream));
- String input;
- while((input = r.readLine()) != null) {
- sb.append(input);
+ try (GZIPInputStream zippedInputStream = new GZIPInputStream(connection.getInputStream());
+ BufferedReader r = new BufferedReader(new InputStreamReader(zippedInputStream))) {
+ String input;
+ while ((input = r.readLine()) != null) {
+ sb.append(input);
+ }
}
} else {
- try (final BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
+ try (BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
String input;
while ((input = in.readLine()) != null) {
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/JsonUtilsException.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/JsonUtilsException.java
index 903ceea..31f56ad 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/JsonUtilsException.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/JsonUtilsException.java
@@ -16,6 +16,7 @@
package org.apache.traffic_control.traffic_router.core.util;
public class JsonUtilsException extends Exception {
+ private static final long serialVersionUID = 1L;
public JsonUtilsException(final String reason) {
super(reason);
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/PeriodicResourceUpdater.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/PeriodicResourceUpdater.java
index 0b490c9..db89bf3 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/PeriodicResourceUpdater.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/PeriodicResourceUpdater.java
@@ -237,9 +237,9 @@ public class PeriodicResourceUpdater {
}
protected synchronized void copyDatabase(final File existingDB, final String newDB) throws IOException {
- try (final StringReader in = new StringReader(newDB);
- final FileOutputStream out = new FileOutputStream(existingDB);
- final FileLock lock = out.getChannel().tryLock()) {
+ try (StringReader in = new StringReader(newDB);
+ FileOutputStream out = new FileOutputStream(existingDB);
+ FileLock lock = out.getChannel().tryLock()) {
if (lock == null) {
LOGGER.error("Database " + existingDB.getAbsolutePath() + " locked by another process.");
@@ -281,11 +281,12 @@ public class PeriodicResourceUpdater {
final String responseBody;
if (GZIP_ENCODING_STRING.equals(response.getHeader("Content-Encoding"))) {
final StringBuilder stringBuilder = new StringBuilder();
- final GZIPInputStream zippedInputStream = new GZIPInputStream(response.getResponseBodyAsStream());
- final BufferedReader r = new BufferedReader(new InputStreamReader(zippedInputStream));
- String line;
- while((line = r.readLine()) != null) {
- stringBuilder.append(line);
+ try (GZIPInputStream zippedInputStream = new GZIPInputStream(response.getResponseBodyAsStream());
+ BufferedReader r = new BufferedReader(new InputStreamReader(zippedInputStream))) {
+ String line;
+ while ((line = r.readLine()) != null) {
+ stringBuilder.append(line);
+ }
}
responseBody = stringBuilder.toString();
} else {
diff --git a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/ResourceUrl.java b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/ResourceUrl.java
index dd88b4d..5315d29 100644
--- a/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/ResourceUrl.java
+++ b/traffic_router/core/src/main/java/org/apache/traffic_control/traffic_router/core/util/ResourceUrl.java
@@ -16,5 +16,5 @@
package org.apache.traffic_control.traffic_router.core.util;
public interface ResourceUrl {
- public String nextUrl();
+ String nextUrl();
}
diff --git a/traffic_router/core/src/main/lib/systemd/system/traffic_router.service b/traffic_router/core/src/main/lib/systemd/system/traffic_router.service
index 2b26ca4..de5ebf1 100644
--- a/traffic_router/core/src/main/lib/systemd/system/traffic_router.service
+++ b/traffic_router/core/src/main/lib/systemd/system/traffic_router.service
@@ -19,7 +19,7 @@ After=syslog.target network.target
[Service]
Type=forking
-Environment=JAVA_HOME=/usr/lib/jvm/jre
+Environment=JAVA_HOME=/usr/lib/jvm/jre-11-openjdk
Environment=CATALINA_PID=/opt/traffic_router/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/traffic_router
diff --git a/traffic_router/neustar/pom.xml b/traffic_router/neustar/pom.xml
index 9465dd2..52d8a71 100644
--- a/traffic_router/neustar/pom.xml
+++ b/traffic_router/neustar/pom.xml
@@ -90,9 +90,6 @@ under the License.
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
- <configuration>
- <argLine>-XX:-UseSplitVerifier</argLine>
- </configuration>
</plugin>
</plugins>
</build>
diff --git a/traffic_router/pom.xml b/traffic_router/pom.xml
index 8c2eb72..476e4c9c 100644
--- a/traffic_router/pom.xml
+++ b/traffic_router/pom.xml
@@ -40,7 +40,7 @@
<commons-lang3.version>3.3.2</commons-lang3.version>
<commons-compress.version>1.9</commons-compress.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <java.version>1.8</java.version>
+ <java.version>11</java.version>
</properties>
<scm>
diff --git a/traffic_router/shared/build/pmd/ruleset.xml b/traffic_router/shared/build/pmd/ruleset.xml
index 807dc0f..48b269f 100644
--- a/traffic_router/shared/build/pmd/ruleset.xml
+++ b/traffic_router/shared/build/pmd/ruleset.xml
@@ -13,195 +13,170 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<ruleset name="Overpass PMD Ruleset" xmlns="http://pmd.sf.net/ruleset/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+<ruleset name="Overpass PMD Ruleset" xmlns="http://pmd.sf.net/ruleset/2.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>Overpass PMD Ruleset</description>
<exclude-pattern>.*/src/test/.*</exclude-pattern>
- <rule ref="rulesets/java/empty.xml/EmptyCatchBlock" />
- <rule ref="rulesets/java/empty.xml/EmptyIfStmt" />
- <rule ref="rulesets/java/empty.xml/EmptyWhileStmt" />
- <rule ref="rulesets/java/empty.xml/EmptyTryBlock" />
- <rule ref="rulesets/java/empty.xml/EmptyFinallyBlock" />
- <rule ref="rulesets/java/empty.xml/EmptySwitchStatements" />
- <rule ref="rulesets/java/basic.xml/JumbledIncrementer" />
- <rule ref="rulesets/java/basic.xml/ForLoopShouldBeWhileLoop" />
- <rule ref="rulesets/java/unnecessary.xml/UnnecessaryConversionTemporary" />
- <rule ref="rulesets/java/basic.xml/OverrideBothEqualsAndHashcode" />
- <rule ref="rulesets/java/basic.xml/DoubleCheckedLocking"
+ <rule ref="category/java/errorprone.xml/EmptyCatchBlock" />
+ <rule ref="category/java/errorprone.xml/EmptyIfStmt" />
+ <rule ref="category/java/errorprone.xml/EmptyWhileStmt" />
+ <rule ref="category/java/errorprone.xml/EmptyTryBlock" />
+ <rule ref="category/java/errorprone.xml/EmptyFinallyBlock" />
+ <rule ref="category/java/errorprone.xml/EmptySwitchStatements" />
+ <rule ref="category/java/errorprone.xml/JumbledIncrementer" />
+ <rule ref="category/java/codestyle.xml/ForLoopShouldBeWhileLoop" />
+ <rule ref="category/java/errorprone.xml/UnnecessaryConversionTemporary" />
+ <rule ref="category/java/errorprone.xml/OverrideBothEqualsAndHashcode" />
+ <rule ref="category/java/multithreading.xml/DoubleCheckedLocking"
message="Verify that the double-checked variable is declared as volatile.">
<priority>3</priority>
</rule>
- <rule ref="rulesets/java/basic.xml/ReturnFromFinallyBlock" />
- <rule ref="rulesets/java/empty.xml/EmptySynchronizedBlock" />
- <rule ref="rulesets/java/unnecessary.xml/UnnecessaryReturn" />
- <rule ref="rulesets/java/empty.xml/EmptyStaticInitializer" />
- <rule ref="rulesets/java/basic.xml/UnconditionalIfStatement" />
- <rule ref="rulesets/java/empty.xml/EmptyStatementNotInLoop" />
- <rule ref="rulesets/java/basic.xml/BooleanInstantiation" />
- <rule ref="rulesets/java/unnecessary.xml/UnnecessaryFinalModifier" />
- <rule ref="rulesets/java/basic.xml/CollapsibleIfStatements" />
- <rule ref="rulesets/java/unnecessary.xml/UselessOverridingMethod" />
- <rule ref="rulesets/java/basic.xml/ClassCastExceptionWithToArray" />
- <rule ref="rulesets/java/basic.xml/AvoidDecimalLiteralsInBigDecimalConstructor" />
- <rule ref="rulesets/java/unnecessary.xml/UselessOperationOnImmutable" />
- <rule ref="rulesets/java/basic.xml/MisplacedNullCheck" />
- <rule ref="rulesets/java/unnecessary.xml/UnusedNullCheckInEquals" />
- <rule ref="rulesets/java/basic.xml/AvoidThreadGroup" />
- <rule ref="rulesets/java/basic.xml/BrokenNullCheck" />
- <rule ref="rulesets/java/basic.xml/BigIntegerInstantiation" />
- <rule ref="rulesets/java/basic.xml/AvoidUsingOctalValues" />
- <rule ref="rulesets/java/basic.xml/AvoidUsingHardCodedIP" />
- <rule ref="rulesets/java/basic.xml/CheckResultSet" />
- <rule ref="rulesets/java/basic.xml/AvoidMultipleUnaryOperators" />
- <rule ref="rulesets/java/empty.xml/EmptyInitializer" />
-
- <rule ref="rulesets/java/braces.xml/IfStmtsMustUseBraces" />
- <rule ref="rulesets/java/braces.xml/WhileLoopsMustUseBraces" />
- <rule ref="rulesets/java/braces.xml/IfElseStmtsMustUseBraces" />
- <rule ref="rulesets/java/braces.xml/ForLoopsMustUseBraces" />
-
- <rule ref="rulesets/java/clone.xml/ProperCloneImplementation" />
- <rule ref="rulesets/java/clone.xml/CloneThrowsCloneNotSupportedException" />
- <rule ref="rulesets/java/clone.xml/CloneMethodMustImplementCloneable" />
-
- <rule ref="rulesets/java/codesize.xml/NPathComplexity" />
- <rule ref="rulesets/java/codesize.xml/ExcessiveParameterList" />
- <rule ref="rulesets/java/codesize.xml/CyclomaticComplexity" >
- <properties>
- <property name="showClassesComplexity" value="false" />
- </properties>
- </rule>
- <rule ref="rulesets/java/codesize.xml/ExcessivePublicCount" />
- <rule ref="rulesets/java/codesize.xml/TooManyFields" />
- <rule ref="rulesets/java/codesize.xml/NcssMethodCount" />
- <rule ref="rulesets/java/codesize.xml/NcssTypeCount" />
- <rule ref="rulesets/java/codesize.xml/NcssConstructorCount" />
-
- <rule ref="rulesets/java/controversial.xml/SuspiciousOctalEscape" />
- <rule ref="rulesets/java/controversial.xml/AvoidUsingNativeCode" />
- <rule ref="rulesets/java/controversial.xml/AvoidAccessibilityAlteration" />
- <rule ref="rulesets/java/controversial.xml/DoNotCallGarbageCollectionExplicitly" />
-
- <rule ref="rulesets/java/coupling.xml/LooseCoupling" />
-
- <rule ref="rulesets/java/design.xml/AvoidDeeplyNestedIfStmts" />
- <rule ref="rulesets/java/design.xml/AvoidReassigningParameters" >
+ <rule ref="category/java/errorprone.xml/ReturnFromFinallyBlock" />
+ <rule ref="category/java/errorprone.xml/EmptySynchronizedBlock" />
+ <rule ref="category/java/codestyle.xml/UnnecessaryReturn" />
+ <rule ref="category/java/errorprone.xml/UnconditionalIfStatement" />
+ <rule ref="category/java/errorprone.xml/EmptyStatementNotInLoop" />
+ <rule ref="category/java/codestyle.xml/UnnecessaryModifier" />
+ <rule ref="category/java/design.xml/CollapsibleIfStatements" />
+ <rule ref="category/java/design.xml/UselessOverridingMethod" />
+ <rule ref="category/java/errorprone.xml/ClassCastExceptionWithToArray" />
+ <rule ref="category/java/errorprone.xml/AvoidDecimalLiteralsInBigDecimalConstructor" />
+ <rule ref="category/java/errorprone.xml/UselessOperationOnImmutable" />
+ <rule ref="category/java/errorprone.xml/MisplacedNullCheck" />
+ <rule ref="category/java/errorprone.xml/UnusedNullCheckInEquals" />
+ <rule ref="category/java/multithreading.xml/AvoidThreadGroup" />
+ <rule ref="category/java/errorprone.xml/BrokenNullCheck" />
+ <rule ref="category/java/performance.xml/BigIntegerInstantiation" />
+ <rule ref="category/java/errorprone.xml/AvoidUsingOctalValues" />
+ <rule ref="category/java/bestpractices.xml/AvoidUsingHardCodedIP" />
+ <rule ref="category/java/bestpractices.xml/CheckResultSet" />
+ <rule ref="category/java/errorprone.xml/AvoidMultipleUnaryOperators" />
+ <rule ref="category/java/errorprone.xml/EmptyInitializer" />
+
+
+ <rule ref="category/java/errorprone.xml/ProperCloneImplementation" />
+ <rule ref="category/java/errorprone.xml/CloneMethodMustImplementCloneable" />
+
+ <rule ref="category/java/design.xml/NPathComplexity" />
+ <rule ref="category/java/design.xml/ExcessiveParameterList" />
+ <rule ref="category/java/design.xml/CyclomaticComplexity" />
+ <rule ref="category/java/design.xml/ExcessivePublicCount" />
+ <rule ref="category/java/design.xml/TooManyFields" />
+
+ <rule ref="category/java/errorprone.xml/SuspiciousOctalEscape" />
+ <rule ref="category/java/codestyle.xml/AvoidUsingNativeCode" />
+ <rule ref="category/java/errorprone.xml/AvoidAccessibilityAlteration" />
+ <rule ref="category/java/errorprone.xml/DoNotCallGarbageCollectionExplicitly" />
+
+ <rule ref="category/java/bestpractices.xml/LooseCoupling" />
+
+ <rule ref="category/java/design.xml/AvoidDeeplyNestedIfStmts" />
+ <rule ref="category/java/bestpractices.xml/AvoidReassigningParameters" >
<priority>3</priority>
</rule>
- <rule ref="rulesets/java/design.xml/SwitchDensity" />
- <rule ref="rulesets/java/design.xml/ConstructorCallsOverridableMethod" />
- <rule ref="rulesets/java/design.xml/AccessorClassGeneration" />
- <rule ref="rulesets/java/design.xml/FinalFieldCouldBeStatic" />
- <rule ref="rulesets/java/design.xml/CloseResource" />
- <rule ref="rulesets/java/design.xml/DefaultLabelNotLastInSwitchStmt" />
- <rule ref="rulesets/java/design.xml/NonCaseLabelInSwitchStatement" />
- <rule ref="rulesets/java/design.xml/OptimizableToArrayCall" />
- <rule ref="rulesets/java/design.xml/BadComparison" />
- <rule ref="rulesets/java/design.xml/EqualsNull" />
- <rule ref="rulesets/java/design.xml/InstantiationToGetClass" />
- <rule ref="rulesets/java/design.xml/IdempotentOperations" />
- <rule ref="rulesets/java/design.xml/ImmutableField" />
- <rule ref="rulesets/java/design.xml/AvoidProtectedFieldInFinalClass" />
- <rule ref="rulesets/java/design.xml/AssignmentToNonFinalStatic" />
- <rule ref="rulesets/java/design.xml/MissingStaticMethodInNonInstantiatableClass" />
- <rule ref="rulesets/java/design.xml/MissingBreakInSwitch" />
- <rule ref="rulesets/java/design.xml/UseNotifyAllInsteadOfNotify" />
- <rule ref="rulesets/java/design.xml/AvoidInstanceofChecksInCatchClause" />
- <rule ref="rulesets/java/design.xml/AbstractClassWithoutAbstractMethod" />
- <rule ref="rulesets/java/design.xml/SimplifyConditional" />
- <rule ref="rulesets/java/design.xml/PositionLiteralsFirstInComparisons" />
- <rule ref="rulesets/java/design.xml/NonThreadSafeSingleton" />
- <rule ref="rulesets/java/design.xml/UnsynchronizedStaticDateFormatter" />
- <rule ref="rulesets/java/design.xml/PreserveStackTrace" />
- <rule ref="rulesets/java/design.xml/UseCollectionIsEmpty" />
- <rule ref="rulesets/java/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal" />
- <rule ref="rulesets/java/design.xml/SingularField" />
- <rule ref="rulesets/java/design.xml/AbstractClassWithoutAnyMethod" />
-
- <rule ref="rulesets/java/finalizers.xml/EmptyFinalizer" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeOnlyCallsSuperFinalize" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeOverloaded" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeDoesNotCallSuperFinalize" />
- <rule ref="rulesets/java/finalizers.xml/FinalizeShouldBeProtected" />
- <rule ref="rulesets/java/finalizers.xml/AvoidCallingFinalize" />
-
- <rule ref="rulesets/java/imports.xml/DuplicateImports" />
- <rule ref="rulesets/java/imports.xml/DontImportJavaLang" />
- <rule ref="rulesets/java/imports.xml/UnusedImports" />
- <rule ref="rulesets/java/imports.xml/ImportFromSamePackage" />
- <rule ref="rulesets/java/imports.xml/TooManyStaticImports" />
-
- <rule ref="rulesets/java/javabeans.xml/MissingSerialVersionUID" />
-
- <rule ref="rulesets/java/logging-java.xml/MoreThanOneLogger" />
- <rule ref="rulesets/java/logging-java.xml/LoggerIsNotStaticFinal" />
- <rule ref="rulesets/java/logging-java.xml/SystemPrintln" />
- <rule ref="rulesets/java/logging-java.xml/AvoidPrintStackTrace" />
-
- <rule ref="rulesets/java/naming.xml/LongVariable">
+ <rule ref="category/java/design.xml/SwitchDensity" />
+ <rule ref="category/java/errorprone.xml/ConstructorCallsOverridableMethod" />
+ <rule ref="category/java/bestpractices.xml/AccessorClassGeneration" />
+ <rule ref="category/java/design.xml/FinalFieldCouldBeStatic" />
+ <rule ref="category/java/errorprone.xml/CloseResource" />
+ <rule ref="category/java/bestpractices.xml/DefaultLabelNotLastInSwitchStmt" />
+ <rule ref="category/java/errorprone.xml/NonCaseLabelInSwitchStatement" />
+ <rule ref="category/java/performance.xml/OptimizableToArrayCall" />
+ <rule ref="category/java/errorprone.xml/BadComparison" />
+ <rule ref="category/java/errorprone.xml/EqualsNull" />
+ <rule ref="category/java/errorprone.xml/InstantiationToGetClass" />
+ <rule ref="category/java/errorprone.xml/IdempotentOperations" />
+ <rule ref="category/java/design.xml/ImmutableField" />
+ <rule ref="category/java/codestyle.xml/AvoidProtectedFieldInFinalClass" />
+ <rule ref="category/java/errorprone.xml/AssignmentToNonFinalStatic" />
+ <rule ref="category/java/errorprone.xml/MissingStaticMethodInNonInstantiatableClass" />
+ <rule ref="category/java/errorprone.xml/MissingBreakInSwitch" />
+ <rule ref="category/java/multithreading.xml/UseNotifyAllInsteadOfNotify" />
+ <rule ref="category/java/errorprone.xml/AvoidInstanceofChecksInCatchClause" />
+ <rule ref="category/java/bestpractices.xml/AbstractClassWithoutAbstractMethod" />
+ <rule ref="category/java/design.xml/SimplifyConditional" />
+ <rule ref="category/java/multithreading.xml/NonThreadSafeSingleton" />
+ <rule ref="category/java/bestpractices.xml/PreserveStackTrace" />
+ <rule ref="category/java/bestpractices.xml/UseCollectionIsEmpty" />
+ <rule ref="category/java/design.xml/ClassWithOnlyPrivateConstructorsShouldBeFinal" />
+ <rule ref="category/java/design.xml/SingularField" />
+ <rule ref="category/java/design.xml/AbstractClassWithoutAnyMethod" />
+
+ <rule ref="category/java/errorprone.xml/EmptyFinalizer" />
+ <rule ref="category/java/errorprone.xml/FinalizeOnlyCallsSuperFinalize" />
+ <rule ref="category/java/errorprone.xml/FinalizeOverloaded" />
+ <rule ref="category/java/errorprone.xml/FinalizeDoesNotCallSuperFinalize" />
+ <rule ref="category/java/errorprone.xml/FinalizeShouldBeProtected" />
+ <rule ref="category/java/errorprone.xml/AvoidCallingFinalize" />
+
+ <rule ref="category/java/codestyle.xml/TooManyStaticImports" />
+
+ <rule ref="category/java/errorprone.xml/MissingSerialVersionUID" />
+
+ <rule ref="category/java/errorprone.xml/MoreThanOneLogger" />
+ <rule ref="category/java/bestpractices.xml/SystemPrintln" />
+ <rule ref="category/java/bestpractices.xml/AvoidPrintStackTrace" />
+
+ <rule ref="category/java/codestyle.xml/LongVariable">
<properties>
<property name="minimum" value="30" />
</properties>
</rule>
- <rule ref="rulesets/java/naming.xml/ShortMethodName" />
- <rule ref="rulesets/java/naming.xml/MethodNamingConventions" />
- <rule ref="rulesets/java/naming.xml/ClassNamingConventions" />
- <rule ref="rulesets/java/naming.xml/AbstractNaming" />
- <rule ref="rulesets/java/naming.xml/AvoidDollarSigns" />
- <rule ref="rulesets/java/naming.xml/MethodWithSameNameAsEnclosingClass" />
- <rule ref="rulesets/java/naming.xml/SuspiciousHashcodeMethodName" />
- <rule ref="rulesets/java/naming.xml/SuspiciousConstantFieldName" />
- <rule ref="rulesets/java/naming.xml/SuspiciousEqualsMethodName" />
- <rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingTypeName" />
+ <rule ref="category/java/codestyle.xml/ShortMethodName" />
+ <rule ref="category/java/codestyle.xml/MethodNamingConventions" />
+ <rule ref="category/java/codestyle.xml/ClassNamingConventions" />
+ <rule ref="category/java/codestyle.xml/AvoidDollarSigns" />
+ <rule ref="category/java/errorprone.xml/MethodWithSameNameAsEnclosingClass" />
+ <rule ref="category/java/errorprone.xml/SuspiciousHashcodeMethodName" />
+ <rule ref="category/java/errorprone.xml/SuspiciousEqualsMethodName" />
+ <rule ref="category/java/errorprone.xml/AvoidFieldNameMatchingTypeName" />
<!--<rule ref="rulesets/java/naming.xml/AvoidFieldNameMatchingMethodName" />-->
- <rule ref="rulesets/java/naming.xml/NoPackage" />
- <rule ref="rulesets/java/naming.xml/PackageCase" />
- <rule ref="rulesets/java/naming.xml/MisleadingVariableName" />
- <rule ref="rulesets/java/naming.xml/BooleanGetMethodName" />
-
- <rule ref="rulesets/java/optimizations.xml/LocalVariableCouldBeFinal" />
- <rule ref="rulesets/java/optimizations.xml/MethodArgumentCouldBeFinal" />
- <rule ref="rulesets/java/optimizations.xml/UseArrayListInsteadOfVector" />
- <rule ref="rulesets/java/optimizations.xml/UseStringBufferForStringAppends" />
- <rule ref="rulesets/java/optimizations.xml/UseArraysAsList" />
- <rule ref="rulesets/java/optimizations.xml/AvoidArrayLoops" />
- <rule ref="rulesets/java/optimizations.xml/UnnecessaryWrapperObjectCreation" />
- <rule ref="rulesets/java/optimizations.xml/AddEmptyString" />
-
- <rule ref="rulesets/java/strictexception.xml/AvoidCatchingThrowable" />
- <rule ref="rulesets/java/strictexception.xml/SignatureDeclareThrowsException" />
- <rule ref="rulesets/java/strictexception.xml/ExceptionAsFlowControl" />
- <rule ref="rulesets/java/strictexception.xml/AvoidCatchingNPE" />
- <rule ref="rulesets/java/strictexception.xml/AvoidThrowingRawExceptionTypes" />
- <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNullPointerException" />
- <rule ref="rulesets/java/strictexception.xml/AvoidRethrowingException" />
- <rule ref="rulesets/java/strictexception.xml/DoNotExtendJavaLangError" />
- <rule ref="rulesets/java/strictexception.xml/DoNotThrowExceptionInFinally" />
- <rule ref="rulesets/java/strictexception.xml/AvoidThrowingNewInstanceOfSameException" />
-
- <rule ref="rulesets/java/strings.xml/AvoidDuplicateLiterals" >
+ <rule ref="category/java/codestyle.xml/NoPackage" />
+ <rule ref="category/java/codestyle.xml/PackageCase" />
+ <rule ref="category/java/codestyle.xml/BooleanGetMethodName" />
+
+ <rule ref="category/java/codestyle.xml/LocalVariableCouldBeFinal" />
+ <rule ref="category/java/codestyle.xml/MethodArgumentCouldBeFinal" />
+ <rule ref="category/java/performance.xml/UseArrayListInsteadOfVector" />
+ <rule ref="category/java/performance.xml/UseStringBufferForStringAppends" />
+ <rule ref="category/java/performance.xml/UseArraysAsList" />
+ <rule ref="category/java/performance.xml/AvoidArrayLoops" />
+ <rule ref="category/java/performance.xml/AddEmptyString" />
+
+ <rule ref="category/java/errorprone.xml/AvoidCatchingThrowable" />
+ <rule ref="category/java/design.xml/SignatureDeclareThrowsException" />
+ <rule ref="category/java/design.xml/ExceptionAsFlowControl" />
+ <rule ref="category/java/errorprone.xml/AvoidCatchingNPE" />
+ <rule ref="category/java/design.xml/AvoidThrowingRawExceptionTypes" />
+ <rule ref="category/java/design.xml/AvoidThrowingNullPointerException" />
+ <rule ref="category/java/design.xml/AvoidRethrowingException" />
+ <rule ref="category/java/design.xml/DoNotExtendJavaLangError" />
+ <rule ref="category/java/errorprone.xml/DoNotThrowExceptionInFinally" />
+ <rule ref="category/java/design.xml/AvoidThrowingNewInstanceOfSameException" />
+
+ <rule ref="category/java/errorprone.xml/AvoidDuplicateLiterals" >
<properties>
<property name="skipAnnotations" value="true" />
</properties>
</rule>
- <rule ref="rulesets/java/strings.xml/StringInstantiation" />
- <rule ref="rulesets/java/strings.xml/StringToString" />
- <rule ref="rulesets/java/strings.xml/InefficientStringBuffering" />
- <rule ref="rulesets/java/strings.xml/UnnecessaryCaseChange" />
- <rule ref="rulesets/java/strings.xml/UseStringBufferLength" />
- <rule ref="rulesets/java/strings.xml/AppendCharacterWithChar" />
- <rule ref="rulesets/java/strings.xml/ConsecutiveLiteralAppends" />
- <rule ref="rulesets/java/strings.xml/UseIndexOfChar" />
- <rule ref="rulesets/java/strings.xml/UselessStringValueOf" />
- <rule ref="rulesets/java/strings.xml/StringBufferInstantiationWithChar" />
- <rule ref="rulesets/java/strings.xml/UseEqualsToCompareStrings" />
-
- <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateField" />
- <rule ref="rulesets/java/unusedcode.xml/UnusedLocalVariable" />
- <rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod" />
- <rule ref="rulesets/java/unusedcode.xml/UnusedFormalParameter" />
+ <rule ref="category/java/performance.xml/StringInstantiation" />
+ <rule ref="category/java/performance.xml/StringToString" />
+ <rule ref="category/java/performance.xml/InefficientStringBuffering" />
+ <rule ref="category/java/errorprone.xml/UnnecessaryCaseChange" />
+ <rule ref="category/java/performance.xml/UseStringBufferLength" />
+ <rule ref="category/java/performance.xml/AppendCharacterWithChar" />
+ <rule ref="category/java/performance.xml/ConsecutiveLiteralAppends" />
+ <rule ref="category/java/performance.xml/UseIndexOfChar" />
+ <rule ref="category/java/performance.xml/UselessStringValueOf" />
+ <rule ref="category/java/errorprone.xml/StringBufferInstantiationWithChar" />
+ <rule ref="category/java/errorprone.xml/UseEqualsToCompareStrings" />
+
+ <rule ref="category/java/bestpractices.xml/UnusedPrivateField" />
+ <rule ref="category/java/bestpractices.xml/UnusedLocalVariable" />
+ <rule ref="category/java/bestpractices.xml/UnusedPrivateMethod" />
+ <rule ref="category/java/bestpractices.xml/UnusedFormalParameter" />
</ruleset>
diff --git a/traffic_router/shared/pom.xml b/traffic_router/shared/pom.xml
index d13bcbe..f2ec586 100644
--- a/traffic_router/shared/pom.xml
+++ b/traffic_router/shared/pom.xml
@@ -35,7 +35,7 @@ under the License.
<plugins>
<plugin>
<artifactId>maven-pmd-plugin</artifactId>
- <version>3.6</version>
+ <version>3.14.0</version>
<executions>
<execution>
<id>PMD</id>
diff --git a/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/Certificate.java b/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/Certificate.java
index 96313c9..ed5102a 100644
--- a/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/Certificate.java
+++ b/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/Certificate.java
@@ -43,7 +43,6 @@ public class Certificate {
}
@Override
- @SuppressWarnings("PMD")
public boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
diff --git a/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/IsEqualCollection.java b/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/IsEqualCollection.java
index e9945cc..76c5553 100644
--- a/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/IsEqualCollection.java
+++ b/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/IsEqualCollection.java
@@ -22,21 +22,20 @@ import org.hamcrest.core.IsEqual;
import java.util.Collection;
-@SuppressWarnings("PMD")
-public class IsEqualCollection<T> extends IsEqual<T> {
+final public class IsEqualCollection<T> extends IsEqual<T> {
private final Object expectedValue;
- private IsEqualCollection(T equalArg) {
+ private IsEqualCollection(final T equalArg) {
super(equalArg);
expectedValue = equalArg;
}
- private void describeItems(Description description, Object value) {
+ private void describeItems(final Description description, final Object value) {
if (value instanceof Collection) {
- Object[] items = ((Collection) value).toArray();
+ final Object[] items = ((Collection) value).toArray();
description.appendText("\n{");
- for (Object item : items) {
+ for (final Object item : items) {
description.appendText("\n\t");
description.appendText(item.toString());
}
@@ -45,7 +44,7 @@ public class IsEqualCollection<T> extends IsEqual<T> {
}
@Override
- public void describeTo(Description description) {
+ public void describeTo(final Description description) {
if (expectedValue instanceof Collection) {
description.appendText("all of the following in order\n");
describeItems(description,expectedValue);
@@ -56,7 +55,7 @@ public class IsEqualCollection<T> extends IsEqual<T> {
}
@Override
- public void describeMismatch(Object actualValue, Description mismatchDescription) {
+ public void describeMismatch(final Object actualValue, final Description mismatchDescription) {
if (actualValue instanceof Collection) {
mismatchDescription.appendText("had the items\n");
describeItems(mismatchDescription, actualValue);
@@ -67,7 +66,7 @@ public class IsEqualCollection<T> extends IsEqual<T> {
}
@Factory
- public static <T> Matcher<T> equalTo(T operand) {
+ public static <T> Matcher<T> equalTo(final T operand) {
return new IsEqualCollection<>(operand);
}
}
diff --git a/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/SigningData.java b/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/SigningData.java
index f02ef0d..949b884 100644
--- a/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/SigningData.java
+++ b/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/SigningData.java
@@ -15,6 +15,7 @@
package org.apache.traffic_control.traffic_router.shared;
+import org.apache.log4j.Logger;
import org.xbill.DNS.Record;
import org.xbill.DNS.Section;
@@ -25,7 +26,7 @@ import java.util.List;
import static java.util.stream.Collectors.toList;
-@SuppressWarnings("PMD")
+@SuppressWarnings("PMD.ClassNamingConventions")
public class SigningData {
// If you want to update this data, change the contents of SigningTestDataGenerator.java,
// run its only test and then replace everything between here and the declaration of signedList
@@ -34,9 +35,9 @@ public class SigningData {
"MIIBCgKCAQEAly/1SbKJpzYwOJF2Xie7W6eLyQ/W1Ar8hKss7ZbIkcg23bt8QQOFVLPlYG9luYzAULZgTWa4gFlrBkEzO410oy8V" +
"FZgB5x11/LioWGJmy9h+H6R1Fy0QFP3eFGKb9tLuAJGMaSRTcbRADJQYiDJ6uuWobTg2fNxlb7B1lz7wOVk/yTV795k+vb+lJx8x" +
"Zu9vNyIkUy2/LF4J0oXKCPUEee0hpBglEeFcnMSHjO+LtY5Y6E8+fp3d38+Tikmy/2Xu0R35MmCWXuwqYMO+1p7spNzsuUFkhTWt" +
- "0yJKc8pC91V6e3gsD6iwMy3Q0EEEQ7q1z+M9vLIYtmC27mHmdDh1DQIDAQAB";
+ "0yJKc8pC91V6e3gsD6iwMy3Q0EEEQ7q1z+M9vLIYtmC27mHmdDh1DQIDAQAB",
- public static String ksk1Private =
+ ksk1Private =
"UHJpdmF0ZS1rZXktZm9ybWF0OiB2MS4yCkFsZ29yaXRobTogNSAoUlNBU0hBMSkKTW9kdWx1czog\nQUpjdjlVbXlpYWMyTURpUm" +
"RsNG51MXVuaThrUDF0UUsvSVNyTE8yV3lKSElOdDI3ZkVFRGhWU3o1\nV0J2WmJtTXdGQzJZRTFtdUlCWmF3WkJNenVOZEtNdkZS" +
"V1lBZWNkZGZ5NHFGaGlac3ZZZmgra2RS\nY3RFQlQ5M2hSaW0vYlM3Z0NSakdra1UzRzBRQXlVR0lneWVycmxxRzA0Tm56Y1pXK3" +
@@ -60,16 +61,16 @@ public class SigningData {
"ZidnpWRWtKZUFISjgrd3cyRk9H\nNm91blk2RjZnRUR2WityTFpGVTl0eDh2eDdjWnUvYz0KQ29lZmZpY2llbnQ6IEFMd1hKOGZk" +
"QWtY\nLzZMeVFvdENIdHZDVWszbEtWbEdlZXAwQlhsYWZyL3FTU2RrTEt2ZHVRSVJCczY0bDBnZW9ndW1H\nRVd5dFViaG9Vak44" +
"NFNwOG5ldktyS3hqaTlxeG9xUytyQjJ2aElvc0pVdnVoSEJENWMyeHZJVG1R\naXYrazUrT1FDaGdqeGFONnJ5b1NoRDhlYnlsUk" +
- "RzQ1VNL1FFQk82QWZyS0NQZHkK";
+ "RzQ1VNL1FFQk82QWZyS0NQZHkK",
- public static String ksk2Public =
+ ksk2Public =
"MIIBCgKCAQEAqZz9euL/dovYWIF87eUDWObp9YodiCp88k/PhDCyIbpn7a/QZZYZgYJTjQH0wrMweHj6M74fn8zAFz4fCUq6XSdF" +
"UR0X/7MXzBYfuKYdYbYrF68C57ryEl3sW9rSMgxWtajvKFzyB67sYT2GcL3vjZPaYb2ZT2jgjEqeKAk7fzcibfR4UrTj3LI19U8W" +
"reZ29JZAmV2sknYA3ImM33CLYseRCw79r0Jws9RLmJixzDeavWYBls1KUqeXYqV++Hb+mQcR/C0/ch63msPWwgcOEfGFmagcYFvC" +
- "6gOLYXH5WgC2UJlpAMQBZC+3UKwmHaomXeHh92zkQ/nV4bcEOzjZlQIDAQAB";
+ "6gOLYXH5WgC2UJlpAMQBZC+3UKwmHaomXeHh92zkQ/nV4bcEOzjZlQIDAQAB",
- public static String ksk2Private =
+ ksk2Private =
"UHJpdmF0ZS1rZXktZm9ybWF0OiB2MS4yCkFsZ29yaXRobTogNSAoUlNBU0hBMSkKTW9kdWx1czog\nQUttYy9YcmkvM2FMMkZpQm" +
"ZPM2xBMWptNmZXS0hZZ3FmUEpQejRRd3NpRzZaKzJ2MEdXV0dZR0NV\nNDBCOU1Lek1IaDQrak8rSDUvTXdCYytId2xLdWwwblJW" +
"RWRGLyt6Rjh3V0g3aW1IV0cyS3hldkF1\nZTY4aEpkN0Z2YTBqSU1WcldvN3loYzhnZXU3R0U5aG5DOTc0MlQybUc5bVU5bzRJeE" +
@@ -93,16 +94,16 @@ public class SigningData {
"haNWZ1VWtlaFVaRHdYUUZxZDNZ\nRzhNL0l1QXVGdjJ3MGdBazhkYVgxSnZNbWFWMXdyaz0KQ29lZmZpY2llbnQ6IEN4TFJPOUgr" +
"UUwv\nWHk5cmNYYUZmVnhZUkpsV0RYMW0vdVJ2QWZ0MVZnaFFRTzNFWnZzYnRlS3hrTEFNWXJta2c1ZFJy\nTkJ6T0NhVVM0VjlL" +
"NmFxaHczVEZacEhkUDhNUHdLMG5zSTZaQnc4UGFmZ1ZIajk0MzhtRUt0NVBO\nSks1ZUh4dEg1aGtNNkVlbjhuZXpvcVg4WmEveV" +
- "BSd0J0U1ZvSW9pTXpJbVZIMD0K";
+ "BSd0J0U1ZvSW9pTXpJbVZIMD0K",
- public static String zsk1Public =
+ zsk1Public =
"MIIBCgKCAQEAymLTAjeDfcIYUKyGqKhUrl/khgBJA9TNqrzZOfMmNFarbONxDnsd6WoHnqi5xGrNBV6ZGIGwc4tebG/XWBOVvI7P" +
"b10ZHjm4muKnzA9Qt+TOwpukN/phOzDwFZx+QHHu18jePgmFstoSUJzb4baPSoLorCYbRKdIAHhSEALfL5LE8ByP/MwWCO6jD0wE" +
"ZlzGsnow5wxnuVWhBt8FMpRN9FgrJ3YkfTxKz8IZpSx2yjf9IIa/lGvKxcUoAyrdWam14l3fBTI6tfx2nWv56L846wXjqtcZvQeO" +
- "0ewFdwNw2kWTT01kWeG6lXa1yo6CARkvVaF9zcrVNxWUm7CIvKibwQIDAQAB";
+ "0ewFdwNw2kWTT01kWeG6lXa1yo6CARkvVaF9zcrVNxWUm7CIvKibwQIDAQAB",
- public static String zsk1Private =
+ zsk1Private =
"UHJpdmF0ZS1rZXktZm9ybWF0OiB2MS4yCkFsZ29yaXRobTogNSAoUlNBU0hBMSkKTW9kdWx1czog\nQU1waTB3STNnMzNDR0ZDc2" +
"hxaW9WSzVmNUlZQVNRUFV6YXE4MlRuekpqUldxMnpqY1E1N0hlbHFC\nNTZvdWNScXpRVmVtUmlCc0hPTFhteHYxMWdUbGJ5T3oy" +
"OWRHUjQ1dUpyaXA4d1BVTGZrenNLYnBE\nZjZZVHN3OEJXY2ZrQng3dGZJM2o0SmhiTGFFbENjMitHMmowcUM2S3dtRzBTblNBQj" +
@@ -126,16 +127,16 @@ public class SigningData {
"VKeFcrWk9VRUo0VUhFc2l1bVZp\nVVFzK2l4dnpqN1QvTXFOSkpxTmQ1eTNpaVlVZW82OD0KQ29lZmZpY2llbnQ6IGZFVzd1SzlD" +
"aUM2\nVHJDUmttS2R0T3d4dnM1SDQ5MWdJRkQ3ckxIQ010T1d5enJxNXhGd0F1cmJFSktVdGlKQVVVNThE\nVUErcWZYTk5lODR4" +
"RDZuWHNXRU9zckVENXFPWnBFT1BnczdxcHdaTHJXQ3BBcTRhQ2dtdGVKTk5K\nb0k5Rm41OFV0aCtXSUpBb2dnS0ZPSWd5WmsxUz" +
- "ZTRzFFZFBwWmd0dTQ5YnVpUT0K";
+ "ZTRzFFZFBwWmd0dTQ5YnVpUT0K",
- public static String zsk2Public =
+ zsk2Public =
"MIIBCgKCAQEAuCnKCdaJnVwi3Iu0zUYrciw05zZ3jXkZAKE+TOCT5/DlpGRNwzU8x0qc2niyt9Q+awSBpizFWAeAfgpoZXEjbIvw" +
"hhDYC/Ze12jvDh/c/xyzaScnt6C6rlM2y1q7j7q9uI/64l7lQITOno4pvPZP3txXqll5VNfUjMbE3HNXL4O+qGLAij1/2clnS8wG" +
"vokEITcYwOL6I0vBADqgu4pmu5sstMN+72Tz8FQ+ZAMQ8B7G2IlnPdTBypL0r0LjoFJ2SWZGnj/IRM7Am4iMiwlCSbbDzPibsMwl" +
- "MAquEBA1UVoN4PC1Ah+Hb6tP2h92Nl1JVSu0478uItF90dGl0gDQuwIDAQAB";
+ "MAquEBA1UVoN4PC1Ah+Hb6tP2h92Nl1JVSu0478uItF90dGl0gDQuwIDAQAB",
- public static String zsk2Private =
+ zsk2Private =
"UHJpdmF0ZS1rZXktZm9ybWF0OiB2MS4yCkFsZ29yaXRobTogNSAoUlNBU0hBMSkKTW9kdWx1czog\nQUxncHlnbldpWjFjSXR5TH" +
"RNMUdLM0lzTk9jMmQ0MTVHUUNoUGt6Z2srZnc1YVJrVGNNMVBNZEtu\nTnA0c3JmVVBtc0VnYVlzeFZnSGdINEthR1Z4STJ5TDhJ" +
"WVEyQXYyWHRkbzd3NGYzUDhjczJrbko3\nZWd1cTVUTnN0YXU0KzZ2YmlQK3VKZTVVQ0V6cDZPS2J6MlQ5N2NWNnBaZVZUWDFJek" +
@@ -159,408 +160,408 @@ public class SigningData {
"Y0NVc4M0VUQk9MMzFUSy9Ec0hU\nMjF4KzVXeFJTQ21YNzdraFFLY3M5eGZJNlQyZEM1MD0KQ29lZmZpY2llbnQ6IEFOSm8rWXNX" +
"S01E\nM2JJWUI2NnhSUXBrRW90OUJqRmdhS0FuWmhJUVFlV1dSMlZZUFNscU9xbzRHWXArUmRZOFpyVStW\nME8wWE82MjNkWG03" +
"Rk0ybllPNUJSUnBJSTNDUHM3bjk4N2czMmJCUTZqdHVRV2xsV0s0L3VQUEtK\nMjFtRVpka2l1RHoxVzFWRkNoVzhsaUNFWDNQZl" +
- "ZtK01qblJxQk1UMDUreUNUWlkK";
+ "ZtK01qblJxQk1UMDUreUNUWlkK",
// example.com. 315360000 IN SOA ns1.example.com. admin.example.com. 2016091400 86400 3600 1814400 259200
- static String postZoneRecord0 =
+ postZoneRecord0 =
"B2V4YW1wbGUDY29tAAAGAAESzAMAADgDbnMxB2V4YW1wbGUDY29tAAVhZG1pbgdleGFtcGxlA2NvbQB4Kx0IAAFRgAAADhAAG6+A" +
- "AAP0gA==";
+ "AAP0gA==",
// example.com. 315360000 IN NS ns1.example.com.
- static String postZoneRecord3 =
- "B2V4YW1wbGUDY29tAAACAAESzAMAABEDbnMxB2V4YW1wbGUDY29tAA==";
+ postZoneRecord3 =
+ "B2V4YW1wbGUDY29tAAACAAESzAMAABEDbnMxB2V4YW1wbGUDY29tAA==",
// example.com. 315360000 IN NS ns2.example.com.
- static String postZoneRecord4 =
- "B2V4YW1wbGUDY29tAAACAAESzAMAABEDbnMyB2V4YW1wbGUDY29tAA==";
+ postZoneRecord4 =
+ "B2V4YW1wbGUDY29tAAACAAESzAMAABEDbnMyB2V4YW1wbGUDY29tAA==",
// example.com. 259200 IN NSEC ftp.example.com. NS SOA RRSIG NSEC
- static String postZoneRecord7 =
- "B2V4YW1wbGUDY29tAAAvAAEAA/SAABkDZnRwB2V4YW1wbGUDY29tAAAGIgAAAAAD";
+ postZoneRecord7 =
+ "B2V4YW1wbGUDY29tAAAvAAEAA/SAABkDZnRwB2V4YW1wbGUDY29tAAAGIgAAAAAD",
// ftp.example.com. 1814400 IN A 12.34.56.78
- static String postZoneRecord10 =
- "A2Z0cAdleGFtcGxlA2NvbQAAAQABABuvgAAEDCI4Tg==";
+ postZoneRecord10 =
+ "A2Z0cAdleGFtcGxlA2NvbQAAAQABABuvgAAEDCI4Tg==",
// ftp.example.com. 1814400 IN A 21.43.65.87
- static String postZoneRecord11 =
- "A2Z0cAdleGFtcGxlA2NvbQAAAQABABuvgAAEFStBVw==";
+ postZoneRecord11 =
+ "A2Z0cAdleGFtcGxlA2NvbQAAAQABABuvgAAEFStBVw==",
// ftp.example.com. 259200 IN AAAA 2001:db8:0:0:12:34:56:78
- static String postZoneRecord14 =
- "A2Z0cAdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAAEgA0AFYAeA==";
+ postZoneRecord14 =
+ "A2Z0cAdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAAEgA0AFYAeA==",
// ftp.example.com. 259200 IN AAAA 2001:db8:0:0:21:43:65:87
- static String postZoneRecord15 =
- "A2Z0cAdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAAIQBDAGUAhw==";
+ postZoneRecord15 =
+ "A2Z0cAdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAAIQBDAGUAhw==",
// ftp.example.com. 259200 IN NSEC mirror.ftp.example.com. A AAAA RRSIG NSEC
- static String postZoneRecord18 =
- "A2Z0cAdleGFtcGxlA2NvbQAALwABAAP0gAAgBm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAAZAAAAIAAM=";
+ postZoneRecord18 =
+ "A2Z0cAdleGFtcGxlA2NvbQAALwABAAP0gAAgBm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAAZAAAAIAAM=",
// mirror.ftp.example.com. 315360000 IN CNAME ftp.example.com.
- static String postZoneRecord21 =
- "Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAAUAARLMAwAAEQNmdHAHZXhhbXBsZQNjb20A";
+ postZoneRecord21 =
+ "Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAAUAARLMAwAAEQNmdHAHZXhhbXBsZQNjb20A",
// mirror.ftp.example.com. 259200 IN NSEC www.example.com. CNAME RRSIG NSEC
- static String postZoneRecord24 =
- "Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAC8AAQAD9IAAGQN3d3cHZXhhbXBsZQNjb20AAAYEAAAAAAM=";
+ postZoneRecord24 =
+ "Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAC8AAQAD9IAAGQN3d3cHZXhhbXBsZQNjb20AAAYEAAAAAAM=",
// www.example.com. 1814400 IN A 11.22.33.44
- static String postZoneRecord27 =
- "A3d3dwdleGFtcGxlA2NvbQAAAQABABuvgAAECxYhLA==";
+ postZoneRecord27 =
+ "A3d3dwdleGFtcGxlA2NvbQAAAQABABuvgAAECxYhLA==",
// www.example.com. 1814400 IN A 55.66.77.88
- static String postZoneRecord28 =
- "A3d3dwdleGFtcGxlA2NvbQAAAQABABuvgAAEN0JNWA==";
+ postZoneRecord28 =
+ "A3d3dwdleGFtcGxlA2NvbQAAAQABABuvgAAEN0JNWA==",
// www.example.com. 315360000 IN TXT "dead0123456789"
- static String postZoneRecord31 =
- "A3d3dwdleGFtcGxlA2NvbQAAEAABEswDAAAPDmRlYWQwMTIzNDU2Nzg5";
+ postZoneRecord31 =
+ "A3d3dwdleGFtcGxlA2NvbQAAEAABEswDAAAPDmRlYWQwMTIzNDU2Nzg5",
// www.example.com. 259200 IN AAAA 2001:db8:0:0:4:3:2:1
- static String postZoneRecord34 =
- "A3d3dwdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAABAADAAIAAQ==";
+ postZoneRecord34 =
+ "A3d3dwdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAABAADAAIAAQ==",
// www.example.com. 259200 IN AAAA 2001:db8:0:0:5:6:7:8
- static String postZoneRecord35 =
- "A3d3dwdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAABQAGAAcACA==";
+ postZoneRecord35 =
+ "A3d3dwdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAABQAGAAcACA==",
// www.example.com. 259200 IN NSEC mirror.www.example.com. A TXT AAAA RRSIG NSEC
- static String postZoneRecord38 =
- "A3d3dwdleGFtcGxlA2NvbQAALwABAAP0gAAgBm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAAZAAIAIAAM=";
+ postZoneRecord38 =
+ "A3d3dwdleGFtcGxlA2NvbQAALwABAAP0gAAgBm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAAZAAIAIAAM=",
// mirror.www.example.com. 315360000 IN CNAME www.example.com.
- static String postZoneRecord41 =
- "Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAAUAARLMAwAAEQN3d3cHZXhhbXBsZQNjb20A";
+ postZoneRecord41 =
+ "Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAAUAARLMAwAAEQN3d3cHZXhhbXBsZQNjb20A",
// mirror.www.example.com. 259200 IN NSEC example.com. CNAME RRSIG NSEC
- static String postZoneRecord44 =
- "Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAC8AAQAD9IAAFQdleGFtcGxlA2NvbQAABgQAAAAAAw==";
+ postZoneRecord44 =
+ "Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAC8AAQAD9IAAFQdleGFtcGxlA2NvbQAABgQAAAAAAw==",
// example.com. 315360000 IN SOA ns1.example.com. admin.example.com. 2016091400 86400 3600 1814400 259200
- static String signedRecord0 =
+ signedRecord0 =
"B2V4YW1wbGUDY29tAAAGAAESzAMAADgDbnMxB2V4YW1wbGUDY29tAAVhZG1pbgdleGFtcGxlA2NvbQB4Kx0IAAFRgAAADhAAG6+A" +
- "AAP0gA==";
+ "AAP0gA==",
// example.com. 315360000 IN RRSIG SOA 5 2 315360000 20260901000000 20160901000000 62715 example.com. C0hpMqwBTBad15gPKdGAnz1xY/yoKVQMwZJPPZAUUV6finNeX8aS9wtml83eWslfuP+ipw2Xf1/EV2umUEHbtptJR0SReeR6NeUtHM2QAYoUG1+OmqQqebM5cD8pgyry1BAP+9wm9IKmyS3dSKDrj9M3Gd7TlUZrux96N/29KOPrLgb7Chbr0wqrTOJIQgV0DSecYoayM/iuQXO6qDAPc64W3jiBBPkLVub7NK1O9VIHHLPw1ElZVuK/8muxrsxp7eDzsjkNnVrxlat+1QQECk+uvARHxrY7eTGW+srZGyrkwDm2EvBAbmx3U0SaUPQDGzySeOZE9qdu7yYi0PcRsw==
- static String signedRecord1 =
+ signedRecord1 =
"B2V4YW1wbGUDY29tAAAuAAESzAMAAR8ABgUCEswDAGqWFYBXx2+A9PsHZXhhbXBsZQNjb20AC0hpMqwBTBad15gPKdGAnz1xY/yo" +
"KVQMwZJPPZAUUV6finNeX8aS9wtml83eWslfuP+ipw2Xf1/EV2umUEHbtptJR0SReeR6NeUtHM2QAYoUG1+OmqQqebM5cD8pgyry" +
"1BAP+9wm9IKmyS3dSKDrj9M3Gd7TlUZrux96N/29KOPrLgb7Chbr0wqrTOJIQgV0DSecYoayM/iuQXO6qDAPc64W3jiBBPkLVub7" +
"NK1O9VIHHLPw1ElZVuK/8muxrsxp7eDzsjkNnVrxlat+1QQECk+uvARHxrY7eTGW+srZGyrkwDm2EvBAbmx3U0SaUPQDGzySeOZE" +
- "9qdu7yYi0PcRsw==";
+ "9qdu7yYi0PcRsw==",
// example.com. 315360000 IN RRSIG SOA 5 2 315360000 20260901000000 20160901000000 62715 example.com. oblQvApzPjS/Frig1WwkS8XAVR4s8Yve+/DC8UV6JysMPW0PrwMEDrwjSPoxwGkAySYXuRLSJdW1H6HPXTWjJBontjCnCpiFEu2gnqacZi0HgVPEFGwWEH1lTVdglBrz5Px7CBnqzvVopzn9am72jVzmYh4JKgcEqCQnz4mA8f35DW6gkq52ECB1mR5nyckf6swZ8V63Ypu/aNcFrPnqQWWyfNS3dEormvNiahXtqEv0Keg5GeaYS3e9bu8DQofPojZbyZlk+GsNTfJJGLOkcG7SZliGSfAQRUMUb3D9NIPgfOWCAdAR286TAOm16ZoS/d06VoTNeUg3+n8D/YqzgA==
- static String signedRecord2 =
+ signedRecord2 =
"B2V4YW1wbGUDY29tAAAuAAESzAMAAR8ABgUCEswDAGqWFYBXx2+A9PsHZXhhbXBsZQNjb20AoblQvApzPjS/Frig1WwkS8XAVR4s" +
"8Yve+/DC8UV6JysMPW0PrwMEDrwjSPoxwGkAySYXuRLSJdW1H6HPXTWjJBontjCnCpiFEu2gnqacZi0HgVPEFGwWEH1lTVdglBrz" +
"5Px7CBnqzvVopzn9am72jVzmYh4JKgcEqCQnz4mA8f35DW6gkq52ECB1mR5nyckf6swZ8V63Ypu/aNcFrPnqQWWyfNS3dEormvNi" +
"ahXtqEv0Keg5GeaYS3e9bu8DQofPojZbyZlk+GsNTfJJGLOkcG7SZliGSfAQRUMUb3D9NIPgfOWCAdAR286TAOm16ZoS/d06VoTN" +
- "eUg3+n8D/YqzgA==";
+ "eUg3+n8D/YqzgA==",
// example.com. 315360000 IN NS ns1.example.com.
- static String signedRecord3 =
- "B2V4YW1wbGUDY29tAAACAAESzAMAABEDbnMxB2V4YW1wbGUDY29tAA==";
+ signedRecord3 =
+ "B2V4YW1wbGUDY29tAAACAAESzAMAABEDbnMxB2V4YW1wbGUDY29tAA==",
// example.com. 315360000 IN NS ns2.example.com.
- static String signedRecord4 =
- "B2V4YW1wbGUDY29tAAACAAESzAMAABEDbnMyB2V4YW1wbGUDY29tAA==";
+ signedRecord4 =
+ "B2V4YW1wbGUDY29tAAACAAESzAMAABEDbnMyB2V4YW1wbGUDY29tAA==",
// example.com. 315360000 IN RRSIG NS 5 2 315360000 20260901000000 20160901000000 62715 example.com. VXb0w+5JGUpmuLhH9IQwiF/TwlDIrCwovLV4/gIhXd7CmwkbqUkSwjPtuHvs7LmqlzzCfmAvqJxRb4aKgVFaA+ltlmdoQPR3fRTJM5Vt8bfA7o9/e8Epxu7U6q3uulgPY+PfmrgS6zclCTcb4Llxzmmi6COvN8xVBe4z9oe2+vDp+o14VpmvkLQNhlIIrcDUyPwYqBuYTT77lTm/DeXs47Afzp8r9JPgoTfu+NgvkSCK2RXgubIh73kdPaX222Hon7XEutA+nMi//1J3Tq+96dqZ9l4sawd3EzBL7fM+ANPHEZd4ducRRnzAXOCI//2sa4XWKZubVtuZCYZoyj12sw==
- static String signedRecord5 =
+ signedRecord5 =
"B2V4YW1wbGUDY29tAAAuAAESzAMAAR8AAgUCEswDAGqWFYBXx2+A9PsHZXhhbXBsZQNjb20AVXb0w+5JGUpmuLhH9IQwiF/TwlDI" +
"rCwovLV4/gIhXd7CmwkbqUkSwjPtuHvs7LmqlzzCfmAvqJxRb4aKgVFaA+ltlmdoQPR3fRTJM5Vt8bfA7o9/e8Epxu7U6q3uulgP" +
"Y+PfmrgS6zclCTcb4Llxzmmi6COvN8xVBe4z9oe2+vDp+o14VpmvkLQNhlIIrcDUyPwYqBuYTT77lTm/DeXs47Afzp8r9JPgoTfu" +
"+NgvkSCK2RXgubIh73kdPaX222Hon7XEutA+nMi//1J3Tq+96dqZ9l4sawd3EzBL7fM+ANPHEZd4ducRRnzAXOCI//2sa4XWKZub" +
- "VtuZCYZoyj12sw==";
+ "VtuZCYZoyj12sw==",
// example.com. 315360000 IN RRSIG NS 5 2 315360000 20260901000000 20160901000000 62715 example.com. pHMxn1FV1Vb4/Y0nO4sjBSolQIFBUpgUodq9q2MHlpqA9cY4kQAvF0oDONfvqdT8a7BCwrzDtSbLAi0QJuU0wao6JKM3Kr4CuVWPAaPCX4gdKi5Gye1F2A+O5NKC8aBweYxxEg6AP5ADyjkWYX0k7XW4c4kVkBmToYroO0kgaPQyj7AW4iznmRcXjnM4nufRjSwEfIYzIlQZ2Pf4ftaKH58DoAeouTDr0xYVM9F9q+78E3ZSgBJNprnOi5zo7qQcifIgshuD06cUjQ7e2Sgi1wEBUG3nyTa4qu8D7fK9oRJHIqAGeUKCAsWlC675HTdrGKBwbrjM41WoQkmCcclZNg==
- static String signedRecord6 =
+ signedRecord6 =
"B2V4YW1wbGUDY29tAAAuAAESzAMAAR8AAgUCEswDAGqWFYBXx2+A9PsHZXhhbXBsZQNjb20ApHMxn1FV1Vb4/Y0nO4sjBSolQIFB" +
"UpgUodq9q2MHlpqA9cY4kQAvF0oDONfvqdT8a7BCwrzDtSbLAi0QJuU0wao6JKM3Kr4CuVWPAaPCX4gdKi5Gye1F2A+O5NKC8aBw" +
"eYxxEg6AP5ADyjkWYX0k7XW4c4kVkBmToYroO0kgaPQyj7AW4iznmRcXjnM4nufRjSwEfIYzIlQZ2Pf4ftaKH58DoAeouTDr0xYV" +
"M9F9q+78E3ZSgBJNprnOi5zo7qQcifIgshuD06cUjQ7e2Sgi1wEBUG3nyTa4qu8D7fK9oRJHIqAGeUKCAsWlC675HTdrGKBwbrjM" +
- "41WoQkmCcclZNg==";
+ "41WoQkmCcclZNg==",
// example.com. 259200 IN NSEC ftp.example.com. NS SOA RRSIG NSEC
- static String signedRecord7 =
- "B2V4YW1wbGUDY29tAAAvAAEAA/SAABkDZnRwB2V4YW1wbGUDY29tAAAGIgAAAAAD";
+ signedRecord7 =
+ "B2V4YW1wbGUDY29tAAAvAAEAA/SAABkDZnRwB2V4YW1wbGUDY29tAAAGIgAAAAAD",
// example.com. 259200 IN RRSIG NSEC 5 2 259200 20260901000000 20160901000000 62715 example.com. s7BUvoJ21W5HV9Pqg0kUpMa2FmgZrCgwYBThxIbH1ZtiXRR1Q4BzxMdxypi8WetbDITNL4gnWI4BBnww2WduwO94tsTErNMrMShopZKaPn17LB2sMF4QatkfEO85OUYSUWAhtWFzRnTpdJT0UADlAmS+iE/QVGYCTJtZh15cMhPDQM8vMcXfYWrBWTe7iLHjJYMgqsXUI2RnF0qA6dx7/55rUGqC8sEk9mc8NP8bz0cuDLAplkCbG02slurXya5KnOq9LT4Gmt7ovQ6yCDs/h6S3Hbuo5mbDhK6vUPY7Ef2BSRylJlUOJZmr+p7zK9pPn2/0GBVu8rryyM7pWlheGw==
- static String signedRecord8 =
+ signedRecord8 =
"B2V4YW1wbGUDY29tAAAuAAEAA/SAAR8ALwUCAAP0gGqWFYBXx2+A9PsHZXhhbXBsZQNjb20As7BUvoJ21W5HV9Pqg0kUpMa2FmgZ" +
"rCgwYBThxIbH1ZtiXRR1Q4BzxMdxypi8WetbDITNL4gnWI4BBnww2WduwO94tsTErNMrMShopZKaPn17LB2sMF4QatkfEO85OUYS" +
"UWAhtWFzRnTpdJT0UADlAmS+iE/QVGYCTJtZh15cMhPDQM8vMcXfYWrBWTe7iLHjJYMgqsXUI2RnF0qA6dx7/55rUGqC8sEk9mc8" +
"NP8bz0cuDLAplkCbG02slurXya5KnOq9LT4Gmt7ovQ6yCDs/h6S3Hbuo5mbDhK6vUPY7Ef2BSRylJlUOJZmr+p7zK9pPn2/0GBVu" +
- "8rryyM7pWlheGw==";
+ "8rryyM7pWlheGw==",
// example.com. 259200 IN RRSIG NSEC 5 2 259200 20260901000000 20160901000000 62715 example.com. o7X99MS6Px64FfsDU+r/oC2dyq2g78RBVQA+xbbXk4NFwdoch4/eyTur3VqCGn8umriHTPIN0URY5U0nzod0SAQyT7daRlC7qnwJPpmBP5MYuOI19DoFJuqJ6Wvwu1r4xcv886tEYh68H4YRmNB2Pso34pC8An9WmUW/sKiQwb0tC4Xmcj9AMfKDgLeiWBTJEBHWqrtagywS1gvvq5VRQaz5k0K9Vb0aIimPOce/twVNpbrysNsZoR1a243msF9bUUtg5It9ZDYeCleQgtzJyBpxWcEfhWd28PSDu280ymGmyeICznrJuwg8KNB2Byh9pxNGsaw1gBxu/2hj88OT+g==
- static String signedRecord9 =
+ signedRecord9 =
"B2V4YW1wbGUDY29tAAAuAAEAA/SAAR8ALwUCAAP0gGqWFYBXx2+A9PsHZXhhbXBsZQNjb20Ao7X99MS6Px64FfsDU+r/oC2dyq2g" +
"78RBVQA+xbbXk4NFwdoch4/eyTur3VqCGn8umriHTPIN0URY5U0nzod0SAQyT7daRlC7qnwJPpmBP5MYuOI19DoFJuqJ6Wvwu1r4" +
"xcv886tEYh68H4YRmNB2Pso34pC8An9WmUW/sKiQwb0tC4Xmcj9AMfKDgLeiWBTJEBHWqrtagywS1gvvq5VRQaz5k0K9Vb0aIimP" +
"Oce/twVNpbrysNsZoR1a243msF9bUUtg5It9ZDYeCleQgtzJyBpxWcEfhWd28PSDu280ymGmyeICznrJuwg8KNB2Byh9pxNGsaw1" +
- "gBxu/2hj88OT+g==";
+ "gBxu/2hj88OT+g==",
// ftp.example.com. 1814400 IN A 12.34.56.78
- static String signedRecord10 =
- "A2Z0cAdleGFtcGxlA2NvbQAAAQABABuvgAAEDCI4Tg==";
+ signedRecord10 =
+ "A2Z0cAdleGFtcGxlA2NvbQAAAQABABuvgAAEDCI4Tg==",
// ftp.example.com. 1814400 IN A 21.43.65.87
- static String signedRecord11 =
- "A2Z0cAdleGFtcGxlA2NvbQAAAQABABuvgAAEFStBVw==";
+ signedRecord11 =
+ "A2Z0cAdleGFtcGxlA2NvbQAAAQABABuvgAAEFStBVw==",
// ftp.example.com. 1814400 IN RRSIG A 5 3 1814400 20260901000000 20160901000000 62715 example.com. E4nQ6QA1Q0knYeCevRX3nxWWOUkfZ2ZiVzxkFBplIZpegVqLBNsIbeh/2kjuFHm7TX9fENiTC/uRfcVOq9sEb3gaBaD88gqqzKZ4qhWOPU0gnIQARa45K0GatP3WPgL8eeHhnZF9diIdK5M/sX6XxRte0bJry5hi4HFkDbXmlsWjvNMyrlrCmw/AWYYGI4kqR8jUKf4BJIdT7DQ+3Ch4MDcEU2PfO1R6iHwfWUVeGRRg+aw8Uqht1S/Cx+fo44kowicV4o3+RwTWRW6UbWvF5b5vjLjByIzg8MvzCcGPnUdwKKfZBLT1WC02LXVRa/19C3RKgHzK5AGFeRWiKs9PNA==
- static String signedRecord12 =
+ signedRecord12 =
"A2Z0cAdleGFtcGxlA2NvbQAALgABABuvgAEfAAEFAwAbr4BqlhWAV8dvgPT7B2V4YW1wbGUDY29tABOJ0OkANUNJJ2Hgnr0V958V" +
"ljlJH2dmYlc8ZBQaZSGaXoFaiwTbCG3of9pI7hR5u01/XxDYkwv7kX3FTqvbBG94GgWg/PIKqsymeKoVjj1NIJyEAEWuOStBmrT9" +
"1j4C/Hnh4Z2RfXYiHSuTP7F+l8UbXtGya8uYYuBxZA215pbFo7zTMq5awpsPwFmGBiOJKkfI1Cn+ASSHU+w0PtwoeDA3BFNj3ztU" +
"eoh8H1lFXhkUYPmsPFKobdUvwsfn6OOJKMInFeKN/kcE1kVulG1rxeW+b4y4wciM4PDL8wnBj51HcCin2QS09VgtNi11UWv9fQt0" +
- "SoB8yuQBhXkVoirPTzQ=";
+ "SoB8yuQBhXkVoirPTzQ=",
// ftp.example.com. 1814400 IN RRSIG A 5 3 1814400 20260901000000 20160901000000 62715 example.com. nZusmWoKUBqvWAbKIqU6rvZgWQt3Sdzy7Xi9NMpJKfhfZdyE87cfsxPDf6/PHOy2+bPxHri2dE5OsPkWsdLbtRNvpne+Gh8L4cO8VdgbfhnAlI/9VGn3r8cwNHyuiYjH02Rqpm2HZHCi7rnUHJmwxvQNfUyIXETOpyR4lDLGEG6FeDuojNm9fw68cosROASn0Zlzk0991MbqMhi7TUsIfgJAWZQc9Ttzr5CORtSyA19gZMCJMiEJuU5jJXJpizC13DiUEKpWDTfYB8PnDd+lh0oTKAWc1dmFl3pNRuU9CUIABQRHidoDVCjr+6N5j4BkPWQnG/CrVhKerRbUtU3uWQ==
- static String signedRecord13 =
+ signedRecord13 =
"A2Z0cAdleGFtcGxlA2NvbQAALgABABuvgAEfAAEFAwAbr4BqlhWAV8dvgPT7B2V4YW1wbGUDY29tAJ2brJlqClAar1gGyiKlOq72" +
"YFkLd0nc8u14vTTKSSn4X2XchPO3H7MTw3+vzxzstvmz8R64tnROTrD5FrHS27UTb6Z3vhofC+HDvFXYG34ZwJSP/VRp96/HMDR8" +
"romIx9NkaqZth2Rwou651ByZsMb0DX1MiFxEzqckeJQyxhBuhXg7qIzZvX8OvHKLETgEp9GZc5NPfdTG6jIYu01LCH4CQFmUHPU7" +
"c6+QjkbUsgNfYGTAiTIhCblOYyVyaYswtdw4lBCqVg032AfD5w3fpYdKEygFnNXZhZd6TUblPQlCAAUER4naA1Qo6/ujeY+AZD1k" +
- "Jxvwq1YSnq0W1LVN7lk=";
+ "Jxvwq1YSnq0W1LVN7lk=",
// ftp.example.com. 259200 IN AAAA 2001:db8:0:0:12:34:56:78
- static String signedRecord14 =
- "A2Z0cAdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAAEgA0AFYAeA==";
+ signedRecord14 =
+ "A2Z0cAdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAAEgA0AFYAeA==",
// ftp.example.com. 259200 IN AAAA 2001:db8:0:0:21:43:65:87
- static String signedRecord15 =
- "A2Z0cAdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAAIQBDAGUAhw==";
+ signedRecord15 =
+ "A2Z0cAdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAAIQBDAGUAhw==",
// ftp.example.com. 259200 IN RRSIG AAAA 5 3 259200 20260901000000 20160901000000 62715 example.com. dZlga09LK/1VFHmE1RSU6JgOk5z6Aa8lrT9gT7/1srtXFauFvhe2dEtaIC8wWuv05ee1Hv+f5xd4YrQyXSUj3Fb+sGRWG6Uo9qAH8BJ4J8ckxWztL61pxlQGDKEblA8nq8/mRKXLmgpkcag8SIFr1BlgPaEP0eRjxdyBlBHb5R9KCEkw9ypzaF8AKrLWmbJFNIAqCryiihFNg0hdft/dGKwr6rKj5T2p1Cs8k5eLT2AtW2w2BsoTGr4ndYdZv7Qok94MQZ21GnOhSrLxf8mwz0uWhUEZPvR1Ef4WOeAsF+NrEuMhkAxIEv/tze4YKbnigCeolMB9oryO11aFu4UJKA==
- static String signedRecord16 =
+ signedRecord16 =
"A2Z0cAdleGFtcGxlA2NvbQAALgABAAP0gAEfABwFAwAD9IBqlhWAV8dvgPT7B2V4YW1wbGUDY29tAHWZYGtPSyv9VRR5hNUUlOiY" +
"DpOc+gGvJa0/YE+/9bK7VxWrhb4XtnRLWiAvMFrr9OXntR7/n+cXeGK0Ml0lI9xW/rBkVhulKPagB/ASeCfHJMVs7S+tacZUBgyh" +
"G5QPJ6vP5kSly5oKZHGoPEiBa9QZYD2hD9HkY8XcgZQR2+UfSghJMPcqc2hfACqy1pmyRTSAKgq8oooRTYNIXX7f3RisK+qyo+U9" +
"qdQrPJOXi09gLVtsNgbKExq+J3WHWb+0KJPeDEGdtRpzoUqy8X/JsM9LloVBGT70dRH+FjngLBfjaxLjIZAMSBL/7c3uGCm54oAn" +
- "qJTAfaK8jtdWhbuFCSg=";
+ "qJTAfaK8jtdWhbuFCSg=",
// ftp.example.com. 259200 IN RRSIG AAAA 5 3 259200 20260901000000 20160901000000 62715 example.com. tLOODQVeROFNZQeaptvs+i+8lRyx2GCx4aAXIHf5LfeIwubuJxe+nwbSjYWmO5vDLmt1Eyl4ovcnTTyQig5ZUlFjaCiS/LxhGAHAQ0azBPaBCtOJi8i6ptTq0yz/9Bksq23UxWvM7VmAsj/1rTWy+ohUcqHEzDdc4HDeaChGRAOuw9OqeUNpS6uLLtfBVWe3XdoHPPVQz6y4AFHpyzfTts3cHl+97BLDAzDsVdiQiJwMVzh/3xinGqeu/Z2NRkqarRb0vqPB+nPgRAGBXPVT3nzAjaQ8Tuo4VWCqXTwtncoveXAZ4ejmMG9yubWeKy4LCDQ/Drd/TppBYYo/BcbvMg==
- static String signedRecord17 =
+ signedRecord17 =
"A2Z0cAdleGFtcGxlA2NvbQAALgABAAP0gAEfABwFAwAD9IBqlhWAV8dvgPT7B2V4YW1wbGUDY29tALSzjg0FXkThTWUHmqbb7Pov" +
"vJUcsdhgseGgFyB3+S33iMLm7icXvp8G0o2Fpjubwy5rdRMpeKL3J008kIoOWVJRY2gokvy8YRgBwENGswT2gQrTiYvIuqbU6tMs" +
"//QZLKtt1MVrzO1ZgLI/9a01svqIVHKhxMw3XOBw3mgoRkQDrsPTqnlDaUuriy7XwVVnt13aBzz1UM+suABR6cs307bN3B5fvewS" +
"wwMw7FXYkIicDFc4f98Ypxqnrv2djUZKmq0W9L6jwfpz4EQBgVz1U958wI2kPE7qOFVgql08LZ3KL3lwGeHo5jBvcrm1nisuCwg0" +
- "Pw63f06aQWGKPwXG7zI=";
+ "Pw63f06aQWGKPwXG7zI=",
// ftp.example.com. 259200 IN NSEC mirror.ftp.example.com. A AAAA RRSIG NSEC
- static String signedRecord18 =
- "A2Z0cAdleGFtcGxlA2NvbQAALwABAAP0gAAgBm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAAZAAAAIAAM=";
+ signedRecord18 =
+ "A2Z0cAdleGFtcGxlA2NvbQAALwABAAP0gAAgBm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAAZAAAAIAAM=",
// ftp.example.com. 259200 IN RRSIG NSEC 5 3 259200 20260901000000 20160901000000 62715 example.com. JAqwuvRx7rYuMiAJZ7IeOiFi3wg5QxSY0/CV4J3dR8TiTkeSNvbSs6iHV3ysyIXIHlAn9elUyfpree6wCrNTgCFCpuZ4XX9nJaBf9Y5mTo0rOStOWB+/xuQfdt71LN4Z1OpTwjptjDlU3+k/h4aQUPJGpfUf6qtvuvDuF+a6/0P0dY03XCWrc2oGme8uHHKXp5M5c3UzMCD4FEx3E5aBk9ZHYx4lSY/TAUeTGfCMCPMUjfDxZbXfKL6NX7RZDZomFXHTFsEL37lAgDIL834MKPhkhGbJcefL8kuT4gAhXhQsZSQy/VL61arYWFQ55i7a8hz97opFyHjNKaezN0C/7A==
- static String signedRecord19 =
+ signedRecord19 =
"A2Z0cAdleGFtcGxlA2NvbQAALgABAAP0gAEfAC8FAwAD9IBqlhWAV8dvgPT7B2V4YW1wbGUDY29tACQKsLr0ce62LjIgCWeyHjoh" +
"Yt8IOUMUmNPwleCd3UfE4k5Hkjb20rOoh1d8rMiFyB5QJ/XpVMn6a3nusAqzU4AhQqbmeF1/ZyWgX/WOZk6NKzkrTlgfv8bkH3be" +
"9SzeGdTqU8I6bYw5VN/pP4eGkFDyRqX1H+qrb7rw7hfmuv9D9HWNN1wlq3NqBpnvLhxyl6eTOXN1MzAg+BRMdxOWgZPWR2MeJUmP" +
"0wFHkxnwjAjzFI3w8WW13yi+jV+0WQ2aJhVx0xbBC9+5QIAyC/N+DCj4ZIRmyXHny/JLk+IAIV4ULGUkMv1S+tWq2FhUOeYu2vIc" +
- "/e6KRch4zSmnszdAv+w=";
+ "/e6KRch4zSmnszdAv+w=",
// ftp.example.com. 259200 IN RRSIG NSEC 5 3 259200 20260901000000 20160901000000 62715 example.com. kyMPSnQ/SpCrep6Vm3/CODGqQs2LCHEMu+He3pXxn5HnNriI8U8S4va77epIozhZN016EIkXxe1XTJLezzxQy2G9RPP5rf2I3/nPdFV0GiV/e/ah00xuWw57ZQb1Qf9MO5+Qbe09J4P39Afxx8jbRaLQ/QJmcJOxr0CF3zJyBoHYco62bro9kKSOxECuQ92J9rI6EVGlAVPF5prOVhXcWPP78p6Xk80qN6gFNnaIkLs9KvLQ+arF5G3N5I5LNRHnck22fR14gJGf127bmjAp5m3oFLET1FH0Gl5m+r+zp49UUZGPfLXkhPvkMjBbraFGTUGujryroCrKw2OYlNMY8A==
- static String signedRecord20 =
+ signedRecord20 =
"A2Z0cAdleGFtcGxlA2NvbQAALgABAAP0gAEfAC8FAwAD9IBqlhWAV8dvgPT7B2V4YW1wbGUDY29tAJMjD0p0P0qQq3qelZt/wjgx" +
"qkLNiwhxDLvh3t6V8Z+R5za4iPFPEuL2u+3qSKM4WTdNehCJF8XtV0yS3s88UMthvUTz+a39iN/5z3RVdBolf3v2odNMblsOe2UG" +
"9UH/TDufkG3tPSeD9/QH8cfI20Wi0P0CZnCTsa9Ahd8ycgaB2HKOtm66PZCkjsRArkPdifayOhFRpQFTxeaazlYV3Fjz+/Kel5PN" +
"KjeoBTZ2iJC7PSry0PmqxeRtzeSOSzUR53JNtn0deICRn9du25owKeZt6BSxE9RR9BpeZvq/s6ePVFGRj3y15IT75DIwW62hRk1B" +
- "ro68q6AqysNjmJTTGPA=";
+ "ro68q6AqysNjmJTTGPA=",
// mirror.ftp.example.com. 315360000 IN CNAME ftp.example.com.
- static String signedRecord21 =
- "Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAAUAARLMAwAAEQNmdHAHZXhhbXBsZQNjb20A";
+ signedRecord21 =
+ "Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAAUAARLMAwAAEQNmdHAHZXhhbXBsZQNjb20A",
// mirror.ftp.example.com. 315360000 IN RRSIG CNAME 5 4 315360000 20260901000000 20160901000000 62715 example.com. l4MKlMYFR997yhH5ltWPzTUjxjZbQnCE1/cH7pBBi0Ha4zuvfbHiDXc4b1KwgYUXfn7ONUvF9OJtAC6f45jHUVeN+GxdoDs0JOKkXpE8g8z41HcXCDvThhLg2omtWS9QJRUs23B2NnfYRCGzpwCmeWQX1jcOfUncOLDTqlfuKf6b6KQUiHQA/2bff4iwuN+UXlKqGi2kVRTEd94K/AoM1C7z13KzPuFMO8HUhjUjVZu+cJ8o8sqe3LgBCmxWdzh7BB/rZNC9wMi3ZsLfoStWjHFWrrJdQntB1dEX9fLoegVFbljNAR639dkSONA4AeKoS5LdqDQwANb1TbHueUYLDQ==
- static String signedRecord22 =
+ signedRecord22 =
"Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAC4AARLMAwABHwAFBQQSzAMAapYVgFfHb4D0+wdleGFtcGxlA2NvbQCXgwqUxgVH33vK" +
"EfmW1Y/NNSPGNltCcITX9wfukEGLQdrjO699seINdzhvUrCBhRd+fs41S8X04m0ALp/jmMdRV434bF2gOzQk4qRekTyDzPjUdxcI" +
"O9OGEuDaia1ZL1AlFSzbcHY2d9hEIbOnAKZ5ZBfWNw59Sdw4sNOqV+4p/pvopBSIdAD/Zt9/iLC435ReUqoaLaRVFMR33gr8CgzU" +
"LvPXcrM+4Uw7wdSGNSNVm75wnyjyyp7cuAEKbFZ3OHsEH+tk0L3AyLdmwt+hK1aMcVausl1Ce0HV0Rf18uh6BUVuWM0BHrf12RI4" +
- "0DgB4qhLkt2oNDAA1vVNse55RgsN";
+ "0DgB4qhLkt2oNDAA1vVNse55RgsN",
// mirror.ftp.example.com. 315360000 IN RRSIG CNAME 5 4 315360000 20260901000000 20160901000000 62715 example.com. EjC9SWMbebxzWw67O/dcXuzz8xnDe6JWwH0mthKAG6y4ZIkj877AYqDs8sSFFLrhJRz1TVabn7dm+tESfCqcRoeqiAPGBfMyQIqZjwqzxnIISgBRNP3xcKjCPoEYiDX9bbAiIvzBYDW4qTdpR1HzYFkmNPYJUzW09g86y8q377GvoTXOGuTgr7Rda8e/ol4dxAh609rmq7XESVeatuhoTPt+MoKjmNKfky2W/eqabdHj18AF/aUzD15b+2ZVdrxsCi+WE7O14oHJDsVES1fIgxLZmP+P217P5WHAMWyLmHprCcm6evWZ5hPrLf12YYSQZioYRbN0idePORF7/DkrGg==
- static String signedRecord23 =
+ signedRecord23 =
"Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAC4AARLMAwABHwAFBQQSzAMAapYVgFfHb4D0+wdleGFtcGxlA2NvbQASML1JYxt5vHNb" +
"Drs791xe7PPzGcN7olbAfSa2EoAbrLhkiSPzvsBioOzyxIUUuuElHPVNVpuft2b60RJ8KpxGh6qIA8YF8zJAipmPCrPGcghKAFE0" +
"/fFwqMI+gRiINf1tsCIi/MFgNbipN2lHUfNgWSY09glTNbT2DzrLyrfvsa+hNc4a5OCvtF1rx7+iXh3ECHrT2uartcRJV5q26GhM" +
"+34ygqOY0p+TLZb96ppt0ePXwAX9pTMPXlv7ZlV2vGwKL5YTs7XigckOxURLV8iDEtmY/4/bXs/lYcAxbIuYemsJybp69ZnmE+st" +
- "/XZhhJBmKhhFs3SJ1485EXv8OSsa";
+ "/XZhhJBmKhhFs3SJ1485EXv8OSsa",
// mirror.ftp.example.com. 259200 IN NSEC www.example.com. CNAME RRSIG NSEC
- static String signedRecord24 =
- "Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAC8AAQAD9IAAGQN3d3cHZXhhbXBsZQNjb20AAAYEAAAAAAM=";
+ signedRecord24 =
+ "Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAC8AAQAD9IAAGQN3d3cHZXhhbXBsZQNjb20AAAYEAAAAAAM=",
// mirror.ftp.example.com. 259200 IN RRSIG NSEC 5 4 259200 20260901000000 20160901000000 62715 example.com. p1/1knEZm6vWTIxb4IwZO77r2UXXTuyWWnRxECWCqsVxscBmIa24SwB0wsA6+VWdmjqahNdfATrQ5a22i6Bwv5O17x10dLEIFbSjCFIn91OlfYrys4xoqGW/yYsPWr1WIcq7A5HprxU9Wy5yiztNg2DPz7v8boN6hHUop3td8kj/6Myh4I5KBAwPCRNaJ02bX+Dm/SsexmWg3bPb7PUEPiXBCrqnVv4NXuzuu++7j9TV8nJ9LDjuVqTKxR5G5isXS/4od+G8QXkmWM3HaDO4zYLnMm2I47V6gGS/EUoPim/2y1e5aBKF0f3JVL7xMQgBQkLZBo5OjH8GFAgSlSP9kg==
- static String signedRecord25 =
+ signedRecord25 =
"Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAC4AAQAD9IABHwAvBQQAA/SAapYVgFfHb4D0+wdleGFtcGxlA2NvbQCnX/WScRmbq9ZM" +
"jFvgjBk7vuvZRddO7JZadHEQJYKqxXGxwGYhrbhLAHTCwDr5VZ2aOpqE118BOtDlrbaLoHC/k7XvHXR0sQgVtKMIUif3U6V9ivKz" +
"jGioZb/Jiw9avVYhyrsDkemvFT1bLnKLO02DYM/Pu/xug3qEdSine13ySP/ozKHgjkoEDA8JE1onTZtf4Ob9Kx7GZaDds9vs9QQ+" +
"JcEKuqdW/g1e7O6777uP1NXycn0sOO5WpMrFHkbmKxdL/ih34bxBeSZYzcdoM7jNgucybYjjtXqAZL8RSg+Kb/bLV7loEoXR/clU" +
- "vvExCAFCQtkGjk6MfwYUCBKVI/2S";
+ "vvExCAFCQtkGjk6MfwYUCBKVI/2S",
// mirror.ftp.example.com. 259200 IN RRSIG NSEC 5 4 259200 20260901000000 20160901000000 62715 example.com. bVTQLgj1q1iKDHYO5XJt3IsyDhWefFv5qyX9d11DUPk4m81KAf7ObF2auo+QKKbjHs6PV0Yj9i1djqSpfh2FrYoCPdLH3jKHMJsjKihKwBGpWv5otm1nb/r1jFTYgfDKu4Ru0JRykhNiKWcMaVo3QM14NdOI1l/96zp4KTO/b5qjePoj8KKYceYPXHV2oaqXIZrjptPcjyR1RPg2ahZ1MihG7kXC4k4L+BKuj+7V2EKoLf9eOyE3JqP29FxKNbQC+FDNkd5mZT4lAiGYwz08DGXNSo65G0/FrXr6EQQx0yghnWJRw+UeCu3sAbhq9ErjhvhbFsf5q0+Jm+KTioE/0w==
- static String signedRecord26 =
+ signedRecord26 =
"Bm1pcnJvcgNmdHAHZXhhbXBsZQNjb20AAC4AAQAD9IABHwAvBQQAA/SAapYVgFfHb4D0+wdleGFtcGxlA2NvbQBtVNAuCPWrWIoM" +
"dg7lcm3cizIOFZ58W/mrJf13XUNQ+TibzUoB/s5sXZq6j5AopuMezo9XRiP2LV2OpKl+HYWtigI90sfeMocwmyMqKErAEala/mi2" +
"bWdv+vWMVNiB8Mq7hG7QlHKSE2IpZwxpWjdAzXg104jWX/3rOngpM79vmqN4+iPwophx5g9cdXahqpchmuOm09yPJHVE+DZqFnUy" +
"KEbuRcLiTgv4Eq6P7tXYQqgt/147ITcmo/b0XEo1tAL4UM2R3mZlPiUCIZjDPTwMZc1KjrkbT8WtevoRBDHTKCGdYlHD5R4K7ewB" +
- "uGr0SuOG+FsWx/mrT4mb4pOKgT/T";
+ "uGr0SuOG+FsWx/mrT4mb4pOKgT/T",
// www.example.com. 1814400 IN A 11.22.33.44
- static String signedRecord27 =
- "A3d3dwdleGFtcGxlA2NvbQAAAQABABuvgAAECxYhLA==";
+ signedRecord27 =
+ "A3d3dwdleGFtcGxlA2NvbQAAAQABABuvgAAECxYhLA==",
// www.example.com. 1814400 IN A 55.66.77.88
- static String signedRecord28 =
- "A3d3dwdleGFtcGxlA2NvbQAAAQABABuvgAAEN0JNWA==";
+ signedRecord28 =
+ "A3d3dwdleGFtcGxlA2NvbQAAAQABABuvgAAEN0JNWA==",
// www.example.com. 1814400 IN RRSIG A 5 3 1814400 20260901000000 20160901000000 62715 example.com. re97TYjxeOeiamfnIbIbws6X5sTwCFgmoCP7H7Hs09fRMYzh7seW/yzYvgdFVKLFBNRT3edKS01bJrAc5qSqM74BNPhY9ieQOIAd9kv+zCLv4tI+w9ax0AZ9ThJ841ldzhjLwtsH1J8MDkFBRxwkrnQ0T7VlnJ+dSNrv/0G1ju6i8PV3JtTm293XTgS3Ys9pPd8ntbC4YdbeZuqFgVTmnZudFzM/aNCgnSbXEEC48s2Ad8t5kM30q5NNOi901byhv3PVq8YvumJtxui9PamxjLJ4oc/YSBAnd/6rzWSXs6wtG9A6IAWAFGiLPUxl1r7mgzslFkpq/Ve+Ranaht1agA==
- static String signedRecord29 =
+ signedRecord29 =
"A3d3dwdleGFtcGxlA2NvbQAALgABABuvgAEfAAEFAwAbr4BqlhWAV8dvgPT7B2V4YW1wbGUDY29tAK3ve02I8Xjnompn5yGyG8LO" +
"l+bE8AhYJqAj+x+x7NPX0TGM4e7Hlv8s2L4HRVSixQTUU93nSktNWyawHOakqjO+ATT4WPYnkDiAHfZL/swi7+LSPsPWsdAGfU4S" +
"fONZXc4Yy8LbB9SfDA5BQUccJK50NE+1ZZyfnUja7/9BtY7uovD1dybU5tvd104Et2LPaT3fJ7WwuGHW3mbqhYFU5p2bnRczP2jQ" +
"oJ0m1xBAuPLNgHfLeZDN9KuTTTovdNW8ob9z1avGL7pibcbovT2psYyyeKHP2EgQJ3f+q81kl7OsLRvQOiAFgBRoiz1MZda+5oM7" +
- "JRZKav1XvkWp2obdWoA=";
+ "JRZKav1XvkWp2obdWoA=",
// www.example.com. 1814400 IN RRSIG A 5 3 1814400 20260901000000 20160901000000 62715 example.com. sCA0eCHilmA+T1myVClApGUI3j6tOJ5LfL6jOHGJC2QDwAs1WZ6NH+Rnxah9am1REqs2R0wkzcogTwpB8jTEPgud3k6r/UxqrjqVkO3Bn2OzkxOj5O+8n6IKP+Ihb2d3TgGoI/XJyp0hDCDwn4tOmEMm8vJJkRvqRVpIhep3K93mLGrUUTeqLn1zrihE6FJW8F8cK0XhXSgsHtpaP6Z0Di4M9pvSzf7C8dficMR9j2cB0eOofR5dh1ZNO+QLRMcjZzCBFpjd8WdTKPeMwMqyS0JsFb4a2pDuMdwB6gKntpZag28i9+IpIpfxd38nwg3j0DmqiSz1Ae4o65Cn27K5qA==
- static String signedRecord30 =
+ signedRecord30 =
"A3d3dwdleGFtcGxlA2NvbQAALgABABuvgAEfAAEFAwAbr4BqlhWAV8dvgPT7B2V4YW1wbGUDY29tALAgNHgh4pZgPk9ZslQpQKRl" +
"CN4+rTieS3y+ozhxiQtkA8ALNVmejR/kZ8WofWptURKrNkdMJM3KIE8KQfI0xD4Lnd5Oq/1Maq46lZDtwZ9js5MTo+TvvJ+iCj/i" +
"IW9nd04BqCP1ycqdIQwg8J+LTphDJvLySZEb6kVaSIXqdyvd5ixq1FE3qi59c64oROhSVvBfHCtF4V0oLB7aWj+mdA4uDPab0s3+" +
"wvHX4nDEfY9nAdHjqH0eXYdWTTvkC0THI2cwgRaY3fFnUyj3jMDKsktCbBW+GtqQ7jHcAeoCp7aWWoNvIvfiKSKX8Xd/J8IN49A5" +
- "qoks9QHuKOuQp9uyuag=";
+ "qoks9QHuKOuQp9uyuag=",
// www.example.com. 315360000 IN TXT "dead0123456789"
- static String signedRecord31 =
- "A3d3dwdleGFtcGxlA2NvbQAAEAABEswDAAAPDmRlYWQwMTIzNDU2Nzg5";
+ signedRecord31 =
+ "A3d3dwdleGFtcGxlA2NvbQAAEAABEswDAAAPDmRlYWQwMTIzNDU2Nzg5",
// www.example.com. 315360000 IN RRSIG TXT 5 3 315360000 20260901000000 20160901000000 62715 example.com. jRqGBr6fQ91Z5ND1IbWRthEmQ9uxOMkjqpketlUjU6Nztu+Xi3Nz7OYCqAqAyuDXFLiGu9DffDa9kEh3lI9VPvWvNpaOv7mQ/hiHUzdJtBJJw4uXeC9lnKgpaWDghZQN4QyVD4nj7Vtq2AUF9WD7Pi7dVBLBNhzps9/VL8rAkNP2b57U3nFT1kwHmmtKXlKeurOvJNR9Qr1pGoIkrVj6qvUrEhS3iIXrU4e+WkeJ43spdeYMA/Gn/+zsvX68BCytjnwIPlUubgY8ew06eidd99OFqg8oLSSqzmuNB8M5Augkow0ZRCMDrGWeugvcRQqI6dtBeR5vG4lYAROfaprd/w==
- static String signedRecord32 =
+ signedRecord32 =
"A3d3dwdleGFtcGxlA2NvbQAALgABEswDAAEfABAFAxLMAwBqlhWAV8dvgPT7B2V4YW1wbGUDY29tAI0ahga+n0PdWeTQ9SG1kbYR" +
"JkPbsTjJI6qZHrZVI1Ojc7bvl4tzc+zmAqgKgMrg1xS4hrvQ33w2vZBId5SPVT71rzaWjr+5kP4Yh1M3SbQSScOLl3gvZZyoKWlg" +
"4IWUDeEMlQ+J4+1batgFBfVg+z4u3VQSwTYc6bPf1S/KwJDT9m+e1N5xU9ZMB5prSl5SnrqzryTUfUK9aRqCJK1Y+qr1KxIUt4iF" +
"61OHvlpHieN7KXXmDAPxp//s7L1+vAQsrY58CD5VLm4GPHsNOnonXffThaoPKC0kqs5rjQfDOQLoJKMNGUQjA6xlnroL3EUKiOnb" +
- "QXkebxuJWAETn2qa3f8=";
+ "QXkebxuJWAETn2qa3f8=",
// www.example.com. 315360000 IN RRSIG TXT 5 3 315360000 20260901000000 20160901000000 62715 example.com. D1bnE1hTUSfI5jJyqiDWanvrqGzKiGF5QSXXIhu1dorNuZmy3Q2wO3SQWO20jYpsfOx08Nw159VsEofLgXUGKtAnfoEMBhCnQ+RHnDhqnFkPz+8k4pIRVq4hCiyN5pTiJQVu25ou3YnHsK3e3aWkpuOiByRChp6ix6VFMoYWe7I4wvzi+XMWbfPHpgKLdBgE7DkpM7l+oIRKX/K0tbKZcdY2yUit1hil38JSftAqZRibLuu3EBl3Aw5ChTPc2czVmZiRyI1pCQMOgw0dDK+jgBCfRTaZeaZTJRq0F8Ja14LKLAletdHMVFMcdNGWp2QdACGp/stHnhX2qKOb/Lwq9A==
- static String signedRecord33 =
+ signedRecord33 =
"A3d3dwdleGFtcGxlA2NvbQAALgABEswDAAEfABAFAxLMAwBqlhWAV8dvgPT7B2V4YW1wbGUDY29tAA9W5xNYU1EnyOYycqog1mp7" +
"66hsyohheUEl1yIbtXaKzbmZst0NsDt0kFjttI2KbHzsdPDcNefVbBKHy4F1BirQJ36BDAYQp0PkR5w4apxZD8/vJOKSEVauIQos" +
"jeaU4iUFbtuaLt2Jx7Ct3t2lpKbjogckQoaeoselRTKGFnuyOML84vlzFm3zx6YCi3QYBOw5KTO5fqCESl/ytLWymXHWNslIrdYY" +
"pd/CUn7QKmUYmy7rtxAZdwMOQoUz3NnM1ZmYkciNaQkDDoMNHQyvo4AQn0U2mXmmUyUatBfCWteCyiwJXrXRzFRTHHTRlqdkHQAh" +
- "qf7LR54V9qijm/y8KvQ=";
+ "qf7LR54V9qijm/y8KvQ=",
// www.example.com. 259200 IN AAAA 2001:db8:0:0:4:3:2:1
- static String signedRecord34 =
- "A3d3dwdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAABAADAAIAAQ==";
+ signedRecord34 =
+ "A3d3dwdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAABAADAAIAAQ==",
// www.example.com. 259200 IN AAAA 2001:db8:0:0:5:6:7:8
- static String signedRecord35 =
- "A3d3dwdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAABQAGAAcACA==";
+ signedRecord35 =
+ "A3d3dwdleGFtcGxlA2NvbQAAHAABAAP0gAAQIAENuAAAAAAABQAGAAcACA==",
// www.example.com. 259200 IN RRSIG AAAA 5 3 259200 20260901000000 20160901000000 62715 example.com. EprMPo8kME1AluL5zllJ4i42wsDOtqM3JzN9HfHlOgFNaFyIoAVQGc/GK2mtm/Zsh1+zPYHHp1rG7roy4+OWFeWZ6ygX7TclxcA9r9TZc4XztDvyGkTC9vzLFjDEnZbe9HQM2y3NCkGWupT57Eqmj5HlNKAtt6cpUgwTR4S7/8rRO6SfTO2xQEIMqElOzFWKqcIA2WN0qGrKA2uOoQJqh1XwKHNcBM3N0ZlvIE8xPZWG16RoqApqeIG4rjJV7hyYgPkB2HTSxInoMIQoVQjFt3JNj0GM2q0BswL6UB3NKw5lwMhMiIib3rbOycL1KxA6uXzL38RvkPo1u6hJUzf+eQ==
- static String signedRecord36 =
+ signedRecord36 =
"A3d3dwdleGFtcGxlA2NvbQAALgABAAP0gAEfABwFAwAD9IBqlhWAV8dvgPT7B2V4YW1wbGUDY29tABKazD6PJDBNQJbi+c5ZSeIu" +
"NsLAzrajNyczfR3x5ToBTWhciKAFUBnPxitprZv2bIdfsz2Bx6daxu66MuPjlhXlmesoF+03JcXAPa/U2XOF87Q78hpEwvb8yxYw" +
"xJ2W3vR0DNstzQpBlrqU+exKpo+R5TSgLbenKVIME0eEu//K0Tukn0ztsUBCDKhJTsxViqnCANljdKhqygNrjqECaodV8ChzXATN" +
"zdGZbyBPMT2VhtekaKgKaniBuK4yVe4cmID5Adh00sSJ6DCEKFUIxbdyTY9BjNqtAbMC+lAdzSsOZcDITIiIm962zsnC9SsQOrl8" +
- "y9/Eb5D6NbuoSVM3/nk=";
+ "y9/Eb5D6NbuoSVM3/nk=",
// www.example.com. 259200 IN RRSIG AAAA 5 3 259200 20260901000000 20160901000000 62715 example.com. TkofVFFmlNkSNDrKqZCRcBoSKNVb+CwOzPjR+i+OU+aEgTd9cddTOezzG5knGlfT9kwv2C2T10QYnsMfLsqRuZCEpT9FMA0PF80RTiTMDHxiccufIjgThF02Hn6s6/YllwGoY3Zf5XEYu8JmlZ2IEd3eUh6beZTLpVbjnvYZHkg5/x/sf6BJ2Llpfp8KMct+2K21ct7H+IEBXa13PHVUeW6xS2bT+SbFv4OH9xdLh2P1hpQ8xNRWo4mejQ8BO5DVt2BBcr1Arw2hOIK9bA87Tb+16xfpcjEidu3Ugbcn6t4vId6oSwTXfnI42rUwzbtLskvwmdzXc+sAFK//EB9EgA==
- static String signedRecord37 =
+ signedRecord37 =
"A3d3dwdleGFtcGxlA2NvbQAALgABAAP0gAEfABwFAwAD9IBqlhWAV8dvgPT7B2V4YW1wbGUDY29tAE5KH1RRZpTZEjQ6yqmQkXAa" +
"EijVW/gsDsz40fovjlPmhIE3fXHXUzns8xuZJxpX0/ZML9gtk9dEGJ7DHy7KkbmQhKU/RTANDxfNEU4kzAx8YnHLnyI4E4RdNh5+" +
"rOv2JZcBqGN2X+VxGLvCZpWdiBHd3lIem3mUy6VW4572GR5IOf8f7H+gSdi5aX6fCjHLftittXLex/iBAV2tdzx1VHlusUtm0/km" +
"xb+Dh/cXS4dj9YaUPMTUVqOJno0PATuQ1bdgQXK9QK8NoTiCvWwPO02/tesX6XIxInbt1IG3J+reLyHeqEsE135yONq1MM27S7JL" +
- "8Jnc13PrABSv/xAfRIA=";
+ "8Jnc13PrABSv/xAfRIA=",
// www.example.com. 259200 IN NSEC mirror.www.example.com. A TXT AAAA RRSIG NSEC
- static String signedRecord38 =
- "A3d3dwdleGFtcGxlA2NvbQAALwABAAP0gAAgBm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAAZAAIAIAAM=";
+ signedRecord38 =
+ "A3d3dwdleGFtcGxlA2NvbQAALwABAAP0gAAgBm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAAZAAIAIAAM=",
// www.example.com. 259200 IN RRSIG NSEC 5 3 259200 20260901000000 20160901000000 62715 example.com. C2DCU+CiEGatnEM2dsHF0FJdr3aoHnWP1VsfEnqaNDAynnFWRS9b5rRna8qFwMxh7qDvMy+mbNBI4QgCTlPwisExvb2G1Pbz/zKbw62VaxYs6qhwzCQRsUsWiRxXMj6WeX8UozQ93opfGUpiPExZpHFJ7afQqF5E4CUeLPxxAG/HMW3ngm9QjABobTbAq5RAYtZ6mMT28jQl/PgcMuM6fpfQBxi4xpCQPucJGk9rdedTmMe3UyeMxXjoEn3dJadSszvDgillzsm3r92MdpvbCygjbrp4ki3AEGfg14dPQy7xLUV1HmN3/WMppr7YxCubOqe4PEum3z/au53k4XWJHg==
- static String signedRecord39 =
+ signedRecord39 =
"A3d3dwdleGFtcGxlA2NvbQAALgABAAP0gAEfAC8FAwAD9IBqlhWAV8dvgPT7B2V4YW1wbGUDY29tAAtgwlPgohBmrZxDNnbBxdBS" +
"Xa92qB51j9VbHxJ6mjQwMp5xVkUvW+a0Z2vKhcDMYe6g7zMvpmzQSOEIAk5T8IrBMb29htT28/8ym8OtlWsWLOqocMwkEbFLFokc" +
"VzI+lnl/FKM0Pd6KXxlKYjxMWaRxSe2n0KheROAlHiz8cQBvxzFt54JvUIwAaG02wKuUQGLWepjE9vI0Jfz4HDLjOn6X0AcYuMaQ" +
"kD7nCRpPa3XnU5jHt1MnjMV46BJ93SWnUrM7w4IpZc7Jt6/djHab2wsoI266eJItwBBn4NeHT0Mu8S1FdR5jd/1jKaa+2MQrmzqn" +
- "uDxLpt8/2rud5OF1iR4=";
+ "uDxLpt8/2rud5OF1iR4=",
// www.example.com. 259200 IN RRSIG NSEC 5 3 259200 20260901000000 20160901000000 62715 example.com. mZA6rFOmeT+kIG9QFV5uxFItow488us72IJKEPAvdAfkP55Aa6AsM3VuHJuz+PAEnXHGa8BapLcmp6DVy/CT2F/Cse7TecdPDYBFN/JJptF0iY5awvIidOMcU+K81jcrNJ8ODZIXpCnnG2b1VYnF5BjitCbGLIddhpjI3htMRQDNARRiKEyi83kBR5Z41fjh4/rmXllxj1xhm76g38KFdnEFpTaGCXX8ygjGtNcZGm1GbHVm7t6mNgqztR+JBy+KqrtxPw2GakrTEpiohb+QtDHcv0WsfhFeWA0mqvQXZ+fmsPBezRmd+SLE7CpMb3/l3L/dIOzftCmLFANgqwmcZQ==
- static String signedRecord40 =
+ signedRecord40 =
"A3d3dwdleGFtcGxlA2NvbQAALgABAAP0gAEfAC8FAwAD9IBqlhWAV8dvgPT7B2V4YW1wbGUDY29tAJmQOqxTpnk/pCBvUBVebsRS" +
"LaMOPPLrO9iCShDwL3QH5D+eQGugLDN1bhybs/jwBJ1xxmvAWqS3Jqeg1cvwk9hfwrHu03nHTw2ARTfySabRdImOWsLyInTjHFPi" +
"vNY3KzSfDg2SF6Qp5xtm9VWJxeQY4rQmxiyHXYaYyN4bTEUAzQEUYihMovN5AUeWeNX44eP65l5ZcY9cYZu+oN/ChXZxBaU2hgl1" +
"/MoIxrTXGRptRmx1Zu7epjYKs7UfiQcviqq7cT8NhmpK0xKYqIW/kLQx3L9FrH4RXlgNJqr0F2fn5rDwXs0ZnfkixOwqTG9/5dy/" +
- "3SDs37QpixQDYKsJnGU=";
+ "3SDs37QpixQDYKsJnGU=",
// mirror.www.example.com. 315360000 IN CNAME www.example.com.
- static String signedRecord41 =
- "Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAAUAARLMAwAAEQN3d3cHZXhhbXBsZQNjb20A";
+ signedRecord41 =
+ "Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAAUAARLMAwAAEQN3d3cHZXhhbXBsZQNjb20A",
// mirror.www.example.com. 315360000 IN RRSIG CNAME 5 4 315360000 20260901000000 20160901000000 62715 example.com. DwcFq7JYXV4MMD4Uz+r88qQ30BrsAhR4iOGIGEOi9KjxU3X387u+SEdb8o4bHL9iRQCTuD+Fv5UoB89yksfWbLL9Q+c9ykoL982uDfsf976I9w7oX+GBd/ow4G4oyBWBmoSrIFe/Q1o4+3Ah07qkFbxuE1r26dwt+85vAQaTnOr95nSNVTiUAtfL4gOmFr+A4qf2RU24yE7xdRrByMlW5jcyf34n7qg/yQpt6fvL4Azn+fLTj1lJVwu1FRutcut54aKrLnehhpw+2HsaguRrxig6FhjnHPEgznDgsnjPFdAatLr77sIOnobCJU1agfDzs9qPD0tFA4XxYDTP9qm7vw==
- static String signedRecord42 =
+ signedRecord42 =
"Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAC4AARLMAwABHwAFBQQSzAMAapYVgFfHb4D0+wdleGFtcGxlA2NvbQAPBwWrslhdXgww" +
"PhTP6vzypDfQGuwCFHiI4YgYQ6L0qPFTdffzu75IR1vyjhscv2JFAJO4P4W/lSgHz3KSx9Zssv1D5z3KSgv3za4N+x/3voj3Duhf" +
"4YF3+jDgbijIFYGahKsgV79DWjj7cCHTuqQVvG4TWvbp3C37zm8BBpOc6v3mdI1VOJQC18viA6YWv4Dip/ZFTbjITvF1GsHIyVbm" +
"NzJ/fifuqD/JCm3p+8vgDOf58tOPWUlXC7UVG61y63nhoqsud6GGnD7YexqC5GvGKDoWGOcc8SDOcOCyeM8V0Bq0uvvuwg6ehsIl" +
- "TVqB8POz2o8PS0UDhfFgNM/2qbu/";
+ "TVqB8POz2o8PS0UDhfFgNM/2qbu/",
// mirror.www.example.com. 315360000 IN RRSIG CNAME 5 4 315360000 20260901000000 20160901000000 62715 example.com. ScGf3cmXQ/rR8MG1UHuB66bi+IOxvMbRo5f9Q9J9pqtALqnomqj8LyfH6C99QqN+59paJ56yDGA0cd/JQVnRiwHgZawqZMwXXYuOPZY71TqiR4pIWGF3+u5t9wPtfNLw4uv4lOixC0tSBgze1yuFABX+s9o4IKsZvW4HXOUz6e9cLmcTaeqKiA39/SCBqPjyMLqrnxsPiCLOHK3PoryPS48aPE22K8KkAUluZ2pHOp0dnJGJlNXfQF4M4/ogjoW3c6gYpGaNeH0H/dZepXFTkgCyuKH/WB/Ql342jH6iWZRB9w2b+oSuU/ELuhLZa0Um3n4IEqaLO8ooD9X71m4kSg==
- static String signedRecord43 =
+ signedRecord43 =
"Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAC4AARLMAwABHwAFBQQSzAMAapYVgFfHb4D0+wdleGFtcGxlA2NvbQBJwZ/dyZdD+tHw" +
"wbVQe4HrpuL4g7G8xtGjl/1D0n2mq0AuqeiaqPwvJ8foL31Co37n2lonnrIMYDRx38lBWdGLAeBlrCpkzBddi449ljvVOqJHikhY" +
"YXf67m33A+180vDi6/iU6LELS1IGDN7XK4UAFf6z2jggqxm9bgdc5TPp71wuZxNp6oqIDf39IIGo+PIwuqufGw+IIs4crc+ivI9L" +
"jxo8TbYrwqQBSW5nakc6nR2ckYmU1d9AXgzj+iCOhbdzqBikZo14fQf91l6lcVOSALK4of9YH9CXfjaMfqJZlEH3DZv6hK5T8Qu6" +
- "EtlrRSbefggSpos7yigP1fvWbiRK";
+ "EtlrRSbefggSpos7yigP1fvWbiRK",
// mirror.www.example.com. 259200 IN NSEC example.com. CNAME RRSIG NSEC
- static String signedRecord44 =
- "Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAC8AAQAD9IAAFQdleGFtcGxlA2NvbQAABgQAAAAAAw==";
+ signedRecord44 =
+ "Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAC8AAQAD9IAAFQdleGFtcGxlA2NvbQAABgQAAAAAAw==",
// mirror.www.example.com. 259200 IN RRSIG NSEC 5 4 259200 20260901000000 20160901000000 62715 example.com. laV5u8JvO3Q8TXq3lUm+Knr4Kzk4Jj9/+BOL8vuUZhoj8WIvtFRhB7kp+uFfITxBg2lgQFQk31D3GbsNkuVMqC5v91CRMWdS26/+DIIY14yzGurmUoGRTtwcifz9hQPqUArCKt3D4KN+47PLBarMxphIBB/AgDL2d8Ut25zpVX544GINCbZf1aWulNzL0P1J1tO78IDKCYzifKUn79CwlinCPW7vLnbDglc5flUeeTW6JDF9tZwE4CeBj9UFFt9O7LzsQRTB0YNHBDJFmd9gF7fpzKU+Kk3iiOh4q5SBKkOIUXbkjDGy25pn1JGA2SpcUNjwDltpMeg/hPg6W6h7qg==
- static String signedRecord45 =
+ signedRecord45 =
"Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAC4AAQAD9IABHwAvBQQAA/SAapYVgFfHb4D0+wdleGFtcGxlA2NvbQCVpXm7wm87dDxN" +
"ereVSb4qevgrOTgmP3/4E4vy+5RmGiPxYi+0VGEHuSn64V8hPEGDaWBAVCTfUPcZuw2S5UyoLm/3UJExZ1Lbr/4MghjXjLMa6uZS" +
"gZFO3ByJ/P2FA+pQCsIq3cPgo37js8sFqszGmEgEH8CAMvZ3xS3bnOlVfnjgYg0Jtl/Vpa6U3MvQ/UnW07vwgMoJjOJ8pSfv0LCW" +
"KcI9bu8udsOCVzl+VR55NbokMX21nATgJ4GP1QUW307svOxBFMHRg0cEMkWZ32AXt+nMpT4qTeKI6HirlIEqQ4hRduSMMbLbmmfU" +
- "kYDZKlxQ2PAOW2kx6D+E+DpbqHuq";
+ "kYDZKlxQ2PAOW2kx6D+E+DpbqHuq",
// mirror.www.example.com. 259200 IN RRSIG NSEC 5 4 259200 20260901000000 20160901000000 62715 example.com. mx4aBYNkoizyDXpkAZ9QsOmKkAz0VDgXXP8MHosC3JeMENZrcE9CuEC1CxT7EOnkZTwxTQgBw1rmNzNZSKj8SqlaFUThyVyM8c0H43X3Yi+EuOwFGYMD8RDy9okA/WFmf+9sNfY1XeEHlJZVQ7irBV1zr3Cl3Hc7WzLmPCFgkAR5D147Z+77B0dnBT+HK39sWAifEYILYM5zsoNMZojjHCfwR4/IFxlZQEGw+e8XuxDT+ugVln40prwMNiQl4ivNT5MlR8vXBCU7frEqDN6+EfbuZlM84aFrRF3hrixUUtLM52Q6kg2oPybNYSLmdFZpv39XEQcnZmRZfXrMNSmh9Q==
- static String signedRecord46 =
+ signedRecord46 =
"Bm1pcnJvcgN3d3cHZXhhbXBsZQNjb20AAC4AAQAD9IABHwAvBQQAA/SAapYVgFfHb4D0+wdleGFtcGxlA2NvbQCbHhoFg2SiLPIN" +
"emQBn1Cw6YqQDPRUOBdc/wweiwLcl4wQ1mtwT0K4QLULFPsQ6eRlPDFNCAHDWuY3M1lIqPxKqVoVROHJXIzxzQfjdfdiL4S47AUZ" +
"gwPxEPL2iQD9YWZ/72w19jVd4QeUllVDuKsFXXOvcKXcdztbMuY8IWCQBHkPXjtn7vsHR2cFP4crf2xYCJ8RggtgznOyg0xmiOMc" +
"J/BHj8gXGVlAQbD57xe7ENP66BWWfjSmvAw2JCXiK81PkyVHy9cEJTt+sSoM3r4R9u5mUzzhoWtEXeGuLFRS0sznZDqSDag/Js1h" +
- "IuZ0Vmm/f1cRBydmZFl9esw1KaH1";
+ "IuZ0Vmm/f1cRBydmZFl9esw1KaH1",
// example.com. 1234000 IN DS 17515 5 2 26EA264309D0568C5E7EC7DF412A5CB03CE2EACAAEE366B2F66D23611C0D7BF5
- static String dsRecord0 =
- "B2V4YW1wbGUDY29tAAArAAEAEtRQACREawUCJuomQwnQVoxefsffQSpcsDzi6squ42ay9m0jYRwNe/U=";
+ dsRecord0 =
+ "B2V4YW1wbGUDY29tAAArAAEAEtRQACREawUCJuomQwnQVoxefsffQSpcsDzi6squ42ay9m0jYRwNe/U=",
// example.com. 1234000 IN DS 17515 5 2 26EA264309D0568C5E7EC7DF412A5CB03CE2EACAAEE366B2F66D23611C0D7BF5
- static String dsRecord1 =
- "B2V4YW1wbGUDY29tAAArAAEAEtRQACREawUCJuomQwnQVoxefsffQSpcsDzi6squ42ay9m0jYRwNe/U=";
+ dsRecord1 =
+ "B2V4YW1wbGUDY29tAAArAAEAEtRQACREawUCJuomQwnQVoxefsffQSpcsDzi6squ42ay9m0jYRwNe/U=",
// example.com. 31556952 IN DNSKEY 256 3 5 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAymLTAjeDfcIYUKyGqKhUrl/khgBJA9TNqrzZOfMmNFarbONxDnsd6WoHnqi5xGrNBV6ZGIGwc4tebG/XWBOVvI7Pb10ZHjm4muKnzA9Qt+TOwpukN/phOzDwFZx+QHHu18jePgmFstoSUJzb4baPSoLorCYbRKdIAHhSEALfL5LE8ByP/MwWCO6jD0wEZlzGsnow5wxnuVWhBt8FMpRN9FgrJ3YkfTxKz8IZpSx2yjf9IIa/lGvKxcUoAyrdWam14l3fBTI6tfx2nWv56L846wXjqtcZvQeO0ewFdwNw2kWTT01kWeG6lXa1yo6CARkvVaF9zcrVNxWUm7CIvKibwQIDAQAB
// keytag 62715
- public static String zoneDnsKeyRecord =
+ zoneDnsKeyRecord =
"ZXhhbXBsZS5jb20uCQkzMTU1Njk1MglJTglETlNLRVkJMjU2IDMgNSBNSUlCSWpBTkJna3Foa2lH\nOXcwQkFRRUZBQU9DQVE4QU" +
"1JSUJDZ0tDQVFFQXltTFRBamVEZmNJWVVLeUdxS2hVcmwva2hnQkpB\nOVROcXJ6Wk9mTW1ORmFyYk9OeERuc2Q2V29IbnFpNXhH" +
"ck5CVjZaR0lHd2M0dGViRy9YV0JPVnZJ\nN1BiMTBaSGptNG11S256QTlRdCtUT3dwdWtOL3BoT3pEd0ZaeCtRSEh1MThqZVBnbU" +
"ZzdG9TVUp6\nYjRiYVBTb0xvckNZYlJLZElBSGhTRUFMZkw1TEU4QnlQL013V0NPNmpEMHdFWmx6R3Nub3c1d3hu\ndVZXaEJ0OE" +
"ZNcFJOOUZnckozWWtmVHhLejhJWnBTeDJ5amY5SUlhL2xHdkt4Y1VvQXlyZFdhbTE0\nbDNmQlRJNnRmeDJuV3Y1Nkw4NDZ3WGpx" +
- "dGNadlFlTzBld0Zkd053MmtXVFQwMWtXZUc2bFhhMXlv\nNkNBUmt2VmFGOXpjclZOeFdVbTdDSXZLaWJ3UUlEQVFBQg==";
+ "dGNadlFlTzBld0Zkd053MmtXVFQwMWtXZUc2bFhhMXlv\nNkNBUmt2VmFGOXpjclZOeFdVbTdDSXZLaWJ3UUlEQVFBQg==",
// example.com. 315569520 IN DNSKEY 257 3 5 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAly/1SbKJpzYwOJF2Xie7W6eLyQ/W1Ar8hKss7ZbIkcg23bt8QQOFVLPlYG9luYzAULZgTWa4gFlrBkEzO410oy8VFZgB5x11/LioWGJmy9h+H6R1Fy0QFP3eFGKb9tLuAJGMaSRTcbRADJQYiDJ6uuWobTg2fNxlb7B1lz7wOVk/yTV795k+vb+lJx8xZu9vNyIkUy2/LF4J0oXKCPUEee0hpBglEeFcnMSHjO+LtY5Y6E8+fp3d38+Tikmy/2Xu0R35MmCWXuwqYMO+1p7spNzsuUFkhTWt0yJKc8pC91V6e3gsD6iwMy3Q0EEEQ7q1z+M9vLIYtmC27mHmdDh1DQIDAQAB
// keytag 62715
- public static String keyDnsKeyRecord =
+ keyDnsKeyRecord =
"ZXhhbXBsZS5jb20uCQkzMTU1Njk1MjAJSU4JRE5TS0VZCTI1NyAzIDUgTUlJQklqQU5CZ2txaGtp\nRzl3MEJBUUVGQUFPQ0FROE" +
"FNSUlCQ2dLQ0FRRUFseS8xU2JLSnB6WXdPSkYyWGllN1c2ZUx5US9X\nMUFyOGhLc3M3WmJJa2NnMjNidDhRUU9GVkxQbFlHOWx1" +
"WXpBVUxaZ1RXYTRnRmxyQmtFek80MTBv\neThWRlpnQjV4MTEvTGlvV0dKbXk5aCtINlIxRnkwUUZQM2VGR0tiOXRMdUFKR01hU1" +
@@ -568,35 +569,34 @@ public class SigningData {
"hLQ1BVRWVlMGhwQmdsRWVGY25NU0hqTytMdFk1WTZFOCtmcDNkMzgrVGlrbXkvMlh1\nMFIzNU1tQ1dYdXdxWU1PKzFwN3NwTnpz" +
"dVVGa2hUV3QweUpLYzhwQzkxVjZlM2dzRDZpd015M1Ew\nRUVFUTdxMXorTTl2TElZdG1DMjdtSG1kRGgxRFFJREFRQUI=";
- public static List<Record> signedList;
- public static List<Record> postZoneList;
- public static List<Record> dsRecordList = new ArrayList<>();
+ public static List<Record> signedList, postZoneList, dsRecordList = new ArrayList<>();
- public static List<String> getStringsNamedLike(String name, Class clazz) {
+ private static final Logger LOGGER = Logger.getLogger(SigningData.class);
+
+ public static List<String> getStringsNamedLike(final String name, final Class clazz) {
return Arrays.asList(clazz.getDeclaredFields()).stream()
.filter(field -> field.getName().contains(name))
.map(field -> {
try {
return field.get(null).toString();
} catch (Exception e) {
- System.out.println("Failed getting static field " + name + " for class " + clazz);
- e.printStackTrace();
+ LOGGER.error("Failed getting static field " + name + " for class " + clazz + ": " + e.getMessage(), e);
}
return null;
})
.collect(toList());
}
- static Record toRecord(String record) {
+ static Record toRecord(final String record) {
try {
return Record.fromWire(Base64.getDecoder().decode(record.getBytes()), Section.ANSWER);
} catch (Exception e) {
- e.printStackTrace();
+ LOGGER.error(e.getMessage(), e);
}
return null;
}
- public static void recreateData() throws Exception {
+ public static void recreateData() {
List<String> encodedRecords = getStringsNamedLike("signedRecord", SigningData.class);
signedList = encodedRecords.stream().map(SigningData::toRecord).collect(toList());
diff --git a/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/ZoneTestRecords.java b/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/ZoneTestRecords.java
index e9563cf..211aa8d 100644
--- a/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/ZoneTestRecords.java
+++ b/traffic_router/shared/src/main/java/org/apache/traffic_control/traffic_router/shared/ZoneTestRecords.java
@@ -19,11 +19,16 @@ import org.apache.traffic_control.traffic_router.secure.BindPrivateKey;
import org.apache.traffic_control.traffic_router.secure.Pkcs1KeySpecDecoder;
import org.xbill.DNS.*;
+import java.io.IOException;
import java.net.Inet6Address;
import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.security.GeneralSecurityException;
import java.security.KeyFactory;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.security.SecureRandom;
@@ -35,7 +40,7 @@ import java.util.List;
import static java.util.Base64.getMimeDecoder;
-@SuppressWarnings("PMD")
+@SuppressWarnings("PMD.ClassNamingConventions")
public class ZoneTestRecords {
public static List<Record> records;
@@ -52,10 +57,10 @@ public class ZoneTestRecords {
public static KeyPair ksk2;
public static KeyPair zsk2;
- static List<KeyPair> generateKeyPairs() throws Exception {
- KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
+ static List<KeyPair> generateKeyPairs() throws NoSuchAlgorithmException, NoSuchProviderException {
+ final KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(2048, SecureRandom.getInstance("SHA1PRNG","SUN"));
- List<KeyPair> keyPairs = new ArrayList<>();
+ final List<KeyPair> keyPairs = new ArrayList<>();
keyPairs.add(keyPairGenerator.generateKeyPair());
keyPairs.add(keyPairGenerator.generateKeyPair());
keyPairs.add(keyPairGenerator.generateKeyPair());
@@ -63,57 +68,57 @@ public class ZoneTestRecords {
return keyPairs;
}
- private static KeyPair recreateKeyPair(String publicKey, String privateKey) throws Exception {
- PrivateKey privateKeyCopy = new BindPrivateKey().decode(new String(getMimeDecoder().decode(privateKey)));
- PublicKey publicKeyCopy = KeyFactory.getInstance("RSA").generatePublic(new Pkcs1KeySpecDecoder().decode(publicKey));
+ private static KeyPair recreateKeyPair(final String publicKey, final String privateKey) throws GeneralSecurityException, IOException {
+ final PrivateKey privateKeyCopy = new BindPrivateKey().decode(new String(getMimeDecoder().decode(privateKey)));
+ final PublicKey publicKeyCopy = KeyFactory.getInstance("RSA").generatePublic(new Pkcs1KeySpecDecoder().decode(publicKey));
return new KeyPair(publicKeyCopy, privateKeyCopy);
}
- public static List<Record> generateZoneRecords(boolean makeNewKeyPairs) throws Exception {
+ public static List<Record> generateZoneRecords(final boolean makeNewKeyPairs) throws IOException, GeneralSecurityException {
start = new Date(System.currentTimeMillis() - (24 * 3600 * 1000));
expiration = new Date(System.currentTimeMillis() + (7 * 24 * 3600 * 1000));
origin = new Name("example.com.");
- Duration tenYears = Duration.ofDays(3650);
- Duration oneDay = Duration.ofDays(1);
- Duration threeDays = Duration.ofDays(3);
- Duration threeWeeks = Duration.ofDays(21);
+ final Duration tenYears = Duration.ofDays(3650);
+ final Duration oneDay = Duration.ofDays(1);
+ final Duration threeDays = Duration.ofDays(3);
+ final Duration threeWeeks = Duration.ofDays(21);
- long oneHour = 3600;
- Name nameServer1 = new Name("ns1.example.com.");
- Name nameServer2 = new Name("ns2.example.com.");
+ final long oneHour = 3600;
+ final Name nameServer1 = new Name("ns1.example.com.");
+ final Name nameServer2 = new Name("ns2.example.com.");
- Name adminEmail = new Name("admin.example.com.");
+ final Name adminEmail = new Name("admin.example.com.");
- Name webServer = new Name("www.example.com.");
- Name ftpServer = new Name("ftp.example.com.");
+ final Name webServer = new Name("www.example.com.");
+ final Name ftpServer = new Name("ftp.example.com.");
- Name webMirror = new Name("mirror.www.example.com.");
- Name ftpMirror = new Name("mirror.ftp.example.com.");
+ final Name webMirror = new Name("mirror.www.example.com.");
+ final Name ftpMirror = new Name("mirror.ftp.example.com.");
- String txtRecord = new String("dead0123456789");
+ final String txtRecord = "dead0123456789";
records = new ArrayList<>(Arrays.asList(
- new AAAARecord(webServer, DClass.IN, threeDays.getSeconds(), Inet6Address.getByName("2001:db8::5:6:7:8")),
- new AAAARecord(ftpServer, DClass.IN, threeDays.getSeconds(), Inet6Address.getByName("2001:db8::12:34:56:78")),
+ new AAAARecord(webServer, DClass.IN, threeDays.getSeconds(), Inet6Address.getByAddress(new byte[]{32, 1, 13, -72, 0, 0, 0, 0, 0, 5, 0, 6, 0, 7, 0, 8})), // 2001:db8::5:6:7:8
+ new AAAARecord(ftpServer, DClass.IN, threeDays.getSeconds(), Inet6Address.getByAddress(new byte[]{32, 1, 13, -72, 0, 0, 0, 0, 0, 18, 0, 52, 0, 86, 0, 120})), // 2001:db8::12:34:56:78
new NSRecord(origin, DClass.IN, tenYears.getSeconds(), nameServer1),
new NSRecord(origin, DClass.IN, tenYears.getSeconds(), nameServer2),
new ARecord(webServer, DClass.IN, threeWeeks.getSeconds(), InetAddress.getByAddress(new byte[] {11, 22, 33, 44})),
new ARecord(webServer, DClass.IN, threeWeeks.getSeconds(), InetAddress.getByAddress(new byte[] {55, 66, 77, 88})),
new ARecord(ftpServer, DClass.IN, threeWeeks.getSeconds(), InetAddress.getByAddress(new byte[] {12, 34, 56, 78})),
new ARecord(ftpServer, DClass.IN, threeWeeks.getSeconds(), InetAddress.getByAddress(new byte[] {21, 43, 65, 87})),
- new AAAARecord(webServer, DClass.IN, threeDays.getSeconds(), Inet6Address.getByName("2001:db8::4:3:2:1")),
+ new AAAARecord(webServer, DClass.IN, threeDays.getSeconds(), Inet6Address.getByAddress(new byte[]{32, 1, 13, -72, 0, 0, 0, 0, 0, 4, 0, 3, 0, 2, 0, 1})), // 2001:db8::4:3:2:1
new SOARecord(origin, DClass.IN, tenYears.getSeconds(), nameServer1,
adminEmail, 2016091400L, oneDay.getSeconds(), oneHour, threeWeeks.getSeconds(), threeDays.getSeconds()),
- new AAAARecord(ftpServer, DClass.IN, threeDays.getSeconds(), Inet6Address.getByName("2001:db8::21:43:65:87")),
+ new AAAARecord(ftpServer, DClass.IN, threeDays.getSeconds(), Inet6Address.getByAddress(new byte[]{32, 1, 13, -72, 0, 0, 0, 0, 0, 33, 0, 67, 0, 101, 0, -121})), // 2001:db8::21:43:65:87
new CNAMERecord(webMirror, DClass.IN, tenYears.getSeconds(), webServer),
new CNAMERecord(ftpMirror, DClass.IN, tenYears.getSeconds(), ftpServer),
new TXTRecord(webServer, DClass.IN, tenYears.getSeconds(), txtRecord)
));
if (makeNewKeyPairs) {
- List<KeyPair> keyPairs = generateKeyPairs();
+ final List<KeyPair> keyPairs = generateKeyPairs();
ksk1 = keyPairs.get(0);
zsk1 = keyPairs.get(1);
ksk2 = keyPairs.get(2);
diff --git a/traffic_router/shared/src/test/java/secure/BindPrivateKeyTest.java b/traffic_router/shared/src/test/java/secure/BindPrivateKeyTest.java
index 83b93d5..c7ea572 100644
--- a/traffic_router/shared/src/test/java/secure/BindPrivateKeyTest.java
+++ b/traffic_router/shared/src/test/java/secure/BindPrivateKeyTest.java
@@ -23,7 +23,6 @@ import org.mockito.Mockito;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
-import sun.security.rsa.RSAPrivateCrtKeyImpl;
import java.math.BigInteger;
import java.security.KeyFactory;
@@ -31,6 +30,7 @@ import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.SecureRandom;
+import java.security.interfaces.RSAPrivateCrtKey;
import java.security.spec.RSAPrivateCrtKeySpec;
import static java.util.Base64.getEncoder;
@@ -57,7 +57,7 @@ public class BindPrivateKeyTest {
keyPairGenerator.initialize(2048, SecureRandom.getInstance("SHA1PRNG","SUN"));
KeyPair keyPair = keyPairGenerator.generateKeyPair();
- RSAPrivateCrtKeyImpl privateCrtKey = (RSAPrivateCrtKeyImpl) keyPair.getPrivate();
+ RSAPrivateCrtKey privateCrtKey = (RSAPrivateCrtKey) keyPair.getPrivate();
privateKeyString = "Private-key-format: v1.2\n" +
"Algorithm: 5 (RSASHA1)\n" +
diff --git a/traffic_router/tests/Dockerfile-test-alpine b/traffic_router/tests/Dockerfile-test-alpine
index 445121f..50dcaeb 100644
--- a/traffic_router/tests/Dockerfile-test-alpine
+++ b/traffic_router/tests/Dockerfile-test-alpine
@@ -19,7 +19,7 @@ VOLUME ["/junit"]
WORKDIR /go/src/$DIR/traffic_router
RUN apk add --no-cache \
- openjdk8 \
+ openjdk11 \
maven \
tomcat-native \
bash
@@ -27,7 +27,8 @@ RUN apk add --no-cache \
ADD traffic_router /go/src/$DIR/traffic_router
ENTRYPOINT /bin/bash "$@"
-CMD set -o xtrace && \
+CMD set -o xtrace -o nounset && \
+ export JAVA_HOME="$(command -v java | xargs realpath | xargs dirname)/.." && \
mvn_command=(mvn) && \
if [[ "$DEBUG_ENABLE" == true ]]; then\
set -o nounset && \
diff --git a/traffic_router/tests/Dockerfile-test-centos b/traffic_router/tests/Dockerfile-test-centos
index 82dbcc4..384352c 100644
--- a/traffic_router/tests/Dockerfile-test-centos
+++ b/traffic_router/tests/Dockerfile-test-centos
@@ -22,7 +22,7 @@ RUN set -o errexit; \
yum -y update; \
yum -y install \
maven \
- java-1.8.0-openjdk \
+ java-11-openjdk \
epel-release; \
yum -y install tomcat-native; \
yum -y clean all
@@ -30,6 +30,7 @@ RUN set -o errexit; \
ADD traffic_router /go/src/$DIR/traffic_router
CMD set -o xtrace && \
+ export JAVA_HOME="$(command -v java | xargs realpath | xargs dirname)/.." && \
mvn_command=(mvn) && \
if [[ "$DEBUG_ENABLE" == true ]]; then\
set -o nounset && \
diff --git a/traffic_router/tomcat-rpm/tomcat.service b/traffic_router/tomcat-rpm/tomcat.service
index 1487fc5..f72af4a 100644
--- a/traffic_router/tomcat-rpm/tomcat.service
+++ b/traffic_router/tomcat-rpm/tomcat.service
@@ -22,7 +22,7 @@ After=syslog.target network.target
[Service]
Type=forking
-Environment=JAVA_HOME=/usr/lib/jvm/jre
+Environment=JAVA_HOME=/usr/lib/jvm/jre-11-openjdk
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
diff --git a/traffic_router/tomcat-rpm/tomcat.spec b/traffic_router/tomcat-rpm/tomcat.spec
index 7ab0911..35eaf5d 100644
--- a/traffic_router/tomcat-rpm/tomcat.spec
+++ b/traffic_router/tomcat-rpm/tomcat.spec
@@ -20,7 +20,7 @@ Summary: Apache Tomcat Servlet/JSP Engine 9.0+, RI for Servlet 3.1/JSP 2.3 AP
License: Apache Software License
URL: https://github.com/apache/trafficcontrol/
Source: %{_sourcedir}/apache-tomcat-%{version}.tar.gz
-Requires: java >= 1.8
+Requires: java-11
%define tomcat_home /opt/tomcat