Various code tweaks, action updates, dep updates
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 6e0c44c..5c93208 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -19,8 +19,8 @@
### Bug Reports
-Bug reports must have enough detail to understand and reproduce the problem.
-Bug reports without an associated pull request will generally be closed.
+Bug reports must have enough detail to understand and reproduce the problem.
+Bug reports without an associated pull request will generally be closed.
However, bug reports with a pull request are likely to be merged promptly.
## FAQ
@@ -28,14 +28,14 @@
Please search previous issues for an answer before opening a pull request. A few common ones
are listed here.
-### I get a compilation error.
+### I get a compilation error
-While you can check the build status on Github to confirm,
-the project correctly builds and passes tests at all times.
-90% of the time it's due to using an old version of Java. Version 3.4+ require Java 8.
+While you can check the build status on Github to confirm,
+the project correctly builds and passes tests at all times.
+90% of the time it's due to using an old version of Java. Version 3.4+ require Java 8.
Use earlier versions with Java 7 and earlier.
-### This barcode doesn't decode.
+### This barcode doesn't decode
Not all images will decode. All else equal, more is better, but this is not accepted as a bug
report. A pull request that makes changes to make the barcode decode without decreasing the net
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
index d3f4e25..19cec63 100644
--- a/.github/workflows/codeql-analysis.yml
+++ b/.github/workflows/codeql-analysis.yml
@@ -36,11 +36,11 @@
steps:
- name: Checkout repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
- uses: github/codeql-action/init@v1
+ uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
@@ -51,7 +51,7 @@
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
- uses: github/codeql-action/autobuild@v1
+ uses: github/codeql-action/autobuild@v2
# âšī¸ Command-line programs to run using the OS shell.
# đ https://git.io/JvXDl
@@ -65,4 +65,4 @@
# make release
- name: Perform CodeQL Analysis
- uses: github/codeql-action/analyze@v1
+ uses: github/codeql-action/analyze@v2
diff --git a/.github/workflows/test_java_17.yml b/.github/workflows/test_java_17.yml
index eb7841d..aef0305 100644
--- a/.github/workflows/test_java_17.yml
+++ b/.github/workflows/test_java_17.yml
@@ -12,7 +12,7 @@
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
diff --git a/.github/workflows/test_java_8_android.yml b/.github/workflows/test_java_8_android.yml
index 677093c..16cfd07 100644
--- a/.github/workflows/test_java_8_android.yml
+++ b/.github/workflows/test_java_8_android.yml
@@ -15,7 +15,7 @@
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
- name: Set up Android SDK
run: if [ ! -d /tmp/android-sdk-linux/platforms ]; then curl -s https://storage.googleapis.com/zxing-build/android-sdk-linux.tar.bz2 | bunzip2 | tar xf - -C /tmp; else ls -l /tmp/android-sdk-linux; fi
- name: Set up JDK 8
diff --git a/README.md b/README.md
index aac37f8..cacfbfe 100644
--- a/README.md
+++ b/README.md
@@ -70,7 +70,6 @@
| [pyzxing](https://github.com/ChenjieXu/pyzxing) | Python wrapper to ZXing library
| [zxing-dart](https://github.com/shirne/zxing-dart) | Port to dart
-
### Other related third-party open source projects
| Module | Description
@@ -82,10 +81,10 @@
## Links
-* [Online Decoder](https://zxing.org/w/decode.jspx)
-* [QR Code Generator](https://zxing.appspot.com/generator)
-* [Javadoc](https://zxing.github.io/zxing/apidocs/)
-* [Documentation Site](https://zxing.github.io/zxing/)
+ * [Online Decoder](https://zxing.org/w/decode.jspx)
+ * [QR Code Generator](https://zxing.appspot.com/generator)
+ * [Javadoc](https://zxing.github.io/zxing/apidocs/)
+ * [Documentation Site](https://zxing.github.io/zxing/)
## Contacting
@@ -94,9 +93,8 @@
## Etcetera
-[![Coverity Status](https://scan.coverity.com/projects/1924/badge.svg)](https://scan.coverity.com/projects/1924)
-[![codecov.io](https://codecov.io/github/zxing/zxing/coverage.svg?branch=master)](https://codecov.io/github/zxing/zxing?branch=master)
-[![Codacy Badge](https://api.codacy.com/project/badge/Grade/7270e4b57c50483699448bf32721ab10)](https://www.codacy.com/app/srowen/zxing?utm_source=github.com&utm_medium=referral&utm_content=zxing/zxing&utm_campaign=Badge_Grade)
+[![codecov](https://codecov.io/gh/zxing/zxing/branch/master/graph/badge.svg?token=6RrJHvUMDl)](https://codecov.io/gh/zxing/zxing)
+[![Codacy](https://app.codacy.com/project/badge/Grade/5d1186edeb714f0187e3eb18cc6aeef1)](https://www.codacy.com/gh/zxing/zxing/dashboard?utm_source=github.com&utm_medium=referral&utm_content=zxing/zxing&utm_campaign=Badge_Grade)
QR code is trademarked by Denso Wave, inc. Thanks to Haase & Martin OHG for contributing the logo.
diff --git a/core/src/main/java/com/google/zxing/common/MinimalECIInput.java b/core/src/main/java/com/google/zxing/common/MinimalECIInput.java
index 5955c0b..0f287b6 100755
--- a/core/src/main/java/com/google/zxing/common/MinimalECIInput.java
+++ b/core/src/main/java/com/google/zxing/common/MinimalECIInput.java
@@ -188,7 +188,7 @@
*
* @param index the index of the {@code int} value to be returned
*
- * @return the specified {@code int} ECI value.
+ * @return the specified {@code int} ECI value.
* The ECI specified the encoding of all bytes with a higher index until the
* next ECI or until the end of the input if no other ECI follows.
*
@@ -236,11 +236,11 @@
}
}
- static void addEdges(String stringToEncode,
- ECIEncoderSet encoderSet,
- InputEdge[][] edges,
- int from,
- InputEdge previous,
+ static void addEdges(String stringToEncode,
+ ECIEncoderSet encoderSet,
+ InputEdge[][] edges,
+ int from,
+ InputEdge previous,
int fnc1) {
char ch = stringToEncode.charAt(from);
@@ -290,7 +290,7 @@
}
}
if (minimalJ < 0) {
- throw new RuntimeException("Internal error: failed to encode \"" + stringToEncode + "\"");
+ throw new IllegalStateException("Failed to encode \"" + stringToEncode + "\"");
}
List<Integer> intsAL = new ArrayList<>();
InputEdge current = edges[inputLength][minimalJ];
diff --git a/core/src/main/java/com/google/zxing/common/StringUtils.java b/core/src/main/java/com/google/zxing/common/StringUtils.java
index c1c04d8..b749d83 100644
--- a/core/src/main/java/com/google/zxing/common/StringUtils.java
+++ b/core/src/main/java/com/google/zxing/common/StringUtils.java
@@ -64,11 +64,13 @@
*/
public static String guessEncoding(byte[] bytes, Map<DecodeHintType,?> hints) {
Charset c = guessCharset(bytes, hints);
- if (c == SHIFT_JIS_CHARSET) {
+ if (c.equals(SHIFT_JIS_CHARSET)) {
return "SJIS";
- } else if (c == StandardCharsets.UTF_8) {
+ }
+ if (c.equals(StandardCharsets.UTF_8)) {
return "UTF8";
- } else if (c == StandardCharsets.ISO_8859_1) {
+ }
+ if (c.equals(StandardCharsets.ISO_8859_1)) {
return "ISO8859_1";
}
return c.name();
diff --git a/core/src/main/java/com/google/zxing/datamatrix/encoder/MinimalEncoder.java b/core/src/main/java/com/google/zxing/datamatrix/encoder/MinimalEncoder.java
index 4d3dd8d..edac497 100755
--- a/core/src/main/java/com/google/zxing/datamatrix/encoder/MinimalEncoder.java
+++ b/core/src/main/java/com/google/zxing/datamatrix/encoder/MinimalEncoder.java
@@ -30,7 +30,7 @@
*
* Uses Dijkstra to produce mathematically minimal encodings that are in some cases smaller than the results produced
* by the algorithm described in annex S in the specification ISO/IEC 16022:200(E). The biggest improvment of this
- * algorithm over that one is the case when the algorithm enters the most inefficient mode, the B256 mode. The
+ * algorithm over that one is the case when the algorithm enters the most inefficient mode, the B256 mode. The
* algorithm from the specification algorithm will exit this mode only if it encounters digits so that arbitrarily
* inefficient results can be produced if the postfix contains no digits.
*
@@ -45,7 +45,7 @@
* contains many * characters from ISO-8859-2 (Latin 2) and few from ISO-8859-3 (Latin 3)).
* In a second stage this stream of ECIs and bytes is minimally encoded using the various Data Matrix encoding modes.
* While both stages encode mathematically minimally it is not ensured that the result is mathematically minimal since
- * the size growth for inserting an ECI in the first stage can only be approximated as the first stage does not know
+ * the size growth for inserting an ECI in the first stage can only be approximated as the first stage does not know
* in which mode the ECI will occur in the second stage (may, or may not require an extra latch to ASCII depending on
* the current mode). The reason for this shortcoming are difficulties in implementing it in a straightforward and
* readable manner.
@@ -165,7 +165,7 @@
* The number of characters encoded is returned in characterLength.
* The number of characters encoded is also minimal in the sense that the algorithm stops as soon
* as a character encoding fills a C40 word competely (three C40 values). An exception is at the
- * end of the string where two C40 values are allowed (according to the spec the third c40 value
+ * end of the string where two C40 values are allowed (according to the spec the third c40 value
* is filled with 0 (Shift 1) in this case).
*/
static int getNumberOfC40Words(Input input, int from, boolean c40,int[] characterLength) {
@@ -217,7 +217,7 @@
// one ASCII encoded character or an extended character via Upper Shift
addEdge(edges, new Edge(input, Mode.ASCII, from, 1, previous));
}
-
+
Mode[] modes = {Mode.C40, Mode.TEXT};
for (Mode mode : modes) {
int[] characterLength = new int[1];
@@ -225,7 +225,7 @@
addEdge(edges, new Edge(input, mode, from, characterLength[0], previous));
}
}
-
+
if (input.haveNCharacters(from,3) &&
HighLevelEncoder.isNativeX12(input.charAt(from)) &&
HighLevelEncoder.isNativeX12(input.charAt(from + 1)) &&
@@ -260,16 +260,16 @@
* Likewise the end vertices are located after the last character at position input.length().
* For any position there might be up to six vertices, one for each of the encoding types ASCII, C40, TEXT, X12,
* EDF and B256.
- *
+ *
* As an example consider the input string "ABC123" then at position 0 there is only one vertex with the default
* ASCII encodation. At position 3 there might be vertices for the types ASCII, C40, X12, EDF and B256.
*
* An edge leading to such a vertex encodes one or more of the characters left of the position that the vertex
* represents. It encodes the characters in the encoding mode of the vertex that it ends on. In other words,
- * all edges leading to a particular vertex encode the same characters (the length of the suffix can vary) using the same
+ * all edges leading to a particular vertex encode the same characters (the length of the suffix can vary) using the same
* encoding mode.
* As an example consider the input string "ABC123" and the vertex (4,EDF). Possible edges leading to this vertex
- * are:
+ * are:
* (0,ASCII) --EDF(ABC1)--> (4,EDF)
* (1,ASCII) --EDF(BC1)--> (4,EDF)
* (1,B256) --EDF(BC1)--> (4,EDF)
@@ -389,11 +389,11 @@
* (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) EDF(CDE) (6) --> (5,EDF)
* (0,ASCII) B256(A) (3) --> (1,B256) B256(B) (3) --> (2,B256) EDF(CDEF) (6) --> (6,EDF)
*
- * Edge "(2,ASCII) ASCII(C) (3) --> (3,ASCII)" is minimal for the vertex (3,ASCII) so that edges "(2,EDF) ASCII(C) (5) --> (3,ASCII)"
+ * Edge "(2,ASCII) ASCII(C) (3) --> (3,ASCII)" is minimal for the vertex (3,ASCII) so that edges "(2,EDF) ASCII(C) (5) --> (3,ASCII)"
* and "(2,B256) ASCII(C) (4) --> (3,ASCII)" can be removed.
- * Edge "(0,ASCII) EDF(ABC) (4) --> (3,EDF)" is minimal for the vertex (3,EDF) so that edges "(1,ASCII) EDF(BC) (5) --> (3,EDF)"
+ * Edge "(0,ASCII) EDF(ABC) (4) --> (3,EDF)" is minimal for the vertex (3,EDF) so that edges "(1,ASCII) EDF(BC) (5) --> (3,EDF)"
* and "(1,B256) EDF(BC) (6) --> (3,EDF)" can be removed.
- * Edge "(2,B256) B256(C) (4) --> (3,B256)" is minimal for the vertex (3,B256) so that edges "(2,ASCII) B256(C) (5) --> (3,B256)"
+ * Edge "(2,B256) B256(C) (4) --> (3,B256)" is minimal for the vertex (3,B256) so that edges "(2,ASCII) B256(C) (5) --> (3,B256)"
* and "(2,EDF) B256(C) (6) --> (3,B256)" can be removed.
*
* This continues for vertices 3 thru 7
@@ -472,7 +472,7 @@
}
if (minimalJ < 0) {
- throw new RuntimeException("Internal error: failed to encode \"" + input + "\"");
+ throw new IllegalStateException("Failed to encode \"" + input + "\"");
}
return new Result(edges[inputLength][minimalJ]);
}
@@ -512,7 +512,7 @@
* C40 -> ASCII: word(c1,c2,c3), 254
* TEXT -> ASCII: word(c1,c2,c3), 254
* X12 -> ASCII: word(c1,c2,c3), 254
- * EDIFACT -> ASCII: Unlatch character,0,0,0 or c1,Unlatch character,0,0 or c1,c2,Unlatch character,0 or
+ * EDIFACT -> ASCII: Unlatch character,0,0,0 or c1,Unlatch character,0,0 or c1,c2,Unlatch character,0 or
* c1,c2,c3,Unlatch character
* B256 -> ASCII: without latch after n bytes
*/
@@ -616,7 +616,7 @@
// see 5.2.5.2 C40 encodation rules and 5.2.7.2 ANSI X12 encodation rules
if (fromPosition + characterLength >= input.length() && getCodewordsRemaining(cachedTotalSize) == 0) {
- return Mode.ASCII;
+ return Mode.ASCII;
}
int lastASCII = getLastASCII();
if (lastASCII == 1 && getCodewordsRemaining(cachedTotalSize + 1) == 0) {
@@ -631,7 +631,7 @@
}
/** Peeks ahead and returns 1 if the postfix consists of exactly two digits, 2 if the postfix consists of exactly
- * two consecutive digits and a non extended character or of 4 digits.
+ * two consecutive digits and a non extended character or of 4 digits.
* Returns 0 in any other case
**/
int getLastASCII() {
@@ -970,7 +970,7 @@
} else if (input.getMacroId() == 6) {
size += prepend(MinimalEncoder.Edge.getBytes(237), bytesAL);
}
-
+
if (input.getFNC1Character() > 0) {
size += prepend(MinimalEncoder.Edge.getBytes(232), bytesAL);
}
diff --git a/core/src/main/java/com/google/zxing/oned/Code128Writer.java b/core/src/main/java/com/google/zxing/oned/Code128Writer.java
index 27628ed..fe13696 100644
--- a/core/src/main/java/com/google/zxing/oned/Code128Writer.java
+++ b/core/src/main/java/com/google/zxing/oned/Code128Writer.java
@@ -362,7 +362,7 @@
return CODE_CODE_B;
}
- /**
+ /**
* Encodes minimally using Divide-And-Conquer with Memoization
**/
private static final class MinimalEncoder {
@@ -435,8 +435,8 @@
patternIndex = CODE_FNC_3;
break;
case ESCAPE_FNC_4:
- if ((charset == Charset.A && latch != Latch.SHIFT) ||
- (charset == Charset.B && latch == Latch.SHIFT)) {
+ if (charset == Charset.A && latch != Latch.SHIFT ||
+ charset == Charset.B && latch == Latch.SHIFT) {
patternIndex = CODE_FNC_4_A;
} else {
patternIndex = CODE_FNC_4_B;
@@ -445,11 +445,10 @@
default:
patternIndex = contents.charAt(i) - ' ';
}
- if ((charset == Charset.A && latch != Latch.SHIFT) ||
- (charset == Charset.B && latch == Latch.SHIFT)) {
- if (patternIndex < 0) {
- patternIndex += '`';
- }
+ if ((charset == Charset.A && latch != Latch.SHIFT ||
+ charset == Charset.B && latch == Latch.SHIFT) &&
+ patternIndex < 0) {
+ patternIndex += '`';
}
addPattern(patterns, patternIndex, checkSum, checkWeight, i);
}
@@ -505,11 +504,11 @@
if (mCost > 0) {
return mCost;
}
-
+
int minCost = Integer.MAX_VALUE;
Latch minLatch = Latch.NONE;
boolean atEnd = position + 1 >= contents.length();
-
+
Charset[] sets = new Charset[] { Charset.A, Charset.B };
for (int i = 0; i <= 1; i++) {
if (canEncode(contents, sets[i], position)) {
diff --git a/core/src/main/java/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java b/core/src/main/java/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java
index 9248193..50ad6b4 100644
--- a/core/src/main/java/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java
+++ b/core/src/main/java/com/google/zxing/pdf417/decoder/PDF417ScanningDecoder.java
@@ -244,11 +244,11 @@
throw NotFoundException.getNotFoundInstance();
}
barcodeMatrix01.setValue(calculatedNumberOfCodewords);
- } else if (numberOfCodewords[0] != calculatedNumberOfCodewords) {
- if (calculatedNumberOfCodewords >= 1 && calculatedNumberOfCodewords <= PDF417Common.MAX_CODEWORDS_IN_BARCODE) {
- // The calculated one is more reliable as it is derived from the row indicator columns
- barcodeMatrix01.setValue(calculatedNumberOfCodewords);
- }
+ } else if (numberOfCodewords[0] != calculatedNumberOfCodewords &&
+ calculatedNumberOfCodewords >= 1 &&
+ calculatedNumberOfCodewords <= PDF417Common.MAX_CODEWORDS_IN_BARCODE) {
+ // The calculated one is more reliable as it is derived from the row indicator columns
+ barcodeMatrix01.setValue(calculatedNumberOfCodewords);
}
}
diff --git a/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java b/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java
index 282cc73..564d7c9 100644
--- a/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java
+++ b/core/src/main/java/com/google/zxing/pdf417/encoder/PDF417HighLevelEncoder.java
@@ -168,7 +168,7 @@
* then charsets will be chosen so that the byte representation is minimal.
* @return the encoded message (the char values range from 0 to 928)
*/
- static String encodeHighLevel(String msg, Compaction compaction, Charset encoding, boolean autoECI)
+ static String encodeHighLevel(String msg, Compaction compaction, Charset encoding, boolean autoECI)
throws WriterException {
if (msg.isEmpty()) {
@@ -370,12 +370,12 @@
tmp.append((char) 27); //ll
continue;
} else {
- if (startpos + idx + 1 < count) {
- if (!input.isECI(startpos + idx + 1) && isPunctuation(input.charAt(startpos + idx + 1))) {
- submode = SUBMODE_PUNCTUATION;
- tmp.append((char) 25); //pl
- continue;
- }
+ if (startpos + idx + 1 < count &&
+ !input.isECI(startpos + idx + 1) &&
+ isPunctuation(input.charAt(startpos + idx + 1))) {
+ submode = SUBMODE_PUNCTUATION;
+ tmp.append((char) 25); //pl
+ continue;
}
tmp.append((char) 29); //ps
tmp.append((char) PUNCTUATION[ch]);
@@ -441,7 +441,7 @@
while (localEnd < end && !input.isECI(localEnd)) {
localEnd++;
}
-
+
final int localCount = localEnd - localStart;
if (localCount <= 0) {
//done
diff --git a/core/src/test/java/com/google/zxing/common/BitMatrixTestCase.java b/core/src/test/java/com/google/zxing/common/BitMatrixTestCase.java
index b92705e..49cd48e 100644
--- a/core/src/test/java/com/google/zxing/common/BitMatrixTestCase.java
+++ b/core/src/test/java/com/google/zxing/common/BitMatrixTestCase.java
@@ -235,7 +235,6 @@
fullMatrix.setRegion(0, 0, 3, 3);
BitMatrix centerMatrix = new BitMatrix(3, 3);
centerMatrix.setRegion(1, 1, 1, 1);
- BitMatrix emptyMatrix24 = new BitMatrix(2, 4);
boolean[][] matrix = new boolean[3][3];
assertEquals(emptyMatrix, BitMatrix.parse(matrix));
diff --git a/pom.xml b/pom.xml
index d0a933e..3b7ccf6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -165,7 +165,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
- <version>3.4.0</version>
+ <version>3.4.1</version>
<configuration>
<source>${java.version}</source>
<quiet>true</quiet>
@@ -204,22 +204,22 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
- <version>3.0.0-M1</version>
+ <version>3.0.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
- <version>3.2.0</version>
+ <version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
- <version>3.2.2</version>
+ <version>3.3.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
- <version>3.4.0</version>
+ <version>3.4.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -262,12 +262,12 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
- <version>2.0.0-M1</version>
+ <version>2.0.0-M2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
- <version>3.0.0-M2</version>
+ <version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -277,7 +277,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
- <version>3.3.0</version>
+ <version>3.4.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -385,7 +385,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
- <version>4.0.0-M2</version>
+ <version>4.0.0-M3</version>
<inherited>false</inherited>
</plugin>
<plugin>
@@ -396,7 +396,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
- <version>3.1.2</version>
+ <version>3.2.0</version>
<configuration>
<configLocation>src/checkstyle/checkstyle.xml</configLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
@@ -421,7 +421,7 @@
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
- <version>0.14</version>
+ <version>0.15</version>
<configuration>
<consoleOutput>true</consoleOutput>
<ignoreErrors>true</ignoreErrors>
diff --git a/zxingorg/pom.xml b/zxingorg/pom.xml
index 72cdf45..18a117d 100644
--- a/zxingorg/pom.xml
+++ b/zxingorg/pom.xml
@@ -73,7 +73,7 @@
</parent>
<properties>
- <spring.version>5.3.21</spring.version>
+ <spring.version>5.3.23</spring.version>
</properties>
<build>