]> source.dussan.org Git - poi.git/commitdiff
Add some more forbidden-apis to prefer core JDK classes over Guava and commons-codec
authorDominik Stadler <centic@apache.org>
Sun, 7 Nov 2021 14:59:40 +0000 (14:59 +0000)
committerDominik Stadler <centic@apache.org>
Sun, 7 Nov 2021 14:59:40 +0000 (14:59 +0000)
Also prevent java logging from being used inadvertently

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1894810 13f79535-47bb-0310-9956-ffa450edef68

poi-ooxml/src/test/java/org/apache/poi/ooxml/TestTriggerCoverage.java
poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/tests/TestDecryptor.java
poi-ooxml/src/test/java/org/apache/poi/ss/tests/usermodel/TestEmbedOLEPackage.java
poi-ooxml/src/test/java/org/apache/poi/xssf/eventusermodel/TestXSSFReader.java
poi-scratchpad/src/test/java/org/apache/poi/hslf/extractor/TestExtractor.java
poi-scratchpad/src/test/java/org/apache/poi/hslf/record/TestDocumentEncryption.java
poi/src/main/java/org/apache/poi/poifs/crypt/agile/EncryptionDocument.java
poi/src/main/java/org/apache/poi/ss/format/CellFormat.java
poi/src/main/java/org/apache/poi/ss/format/CellFormatPart.java
src/resources/devtools/forbidden-signatures.txt

index 8b894f358e3e5f8811d1e86363e0fb6555466f6a..c2bf7aa2f08ec1c92bee0b6761d9beb3a967bc0d 100644 (file)
@@ -56,7 +56,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 /**
  * Test to trigger code-execution of various parts so
- * that all required elements are inclueded in the ooxml-schema-lite package
+ * that all required elements are included in the ooxml-schema-lite package
  */
 class TestTriggerCoverage {
     private static final Set<String> FAILING = new HashSet<>();
index 4be8a9b674f75b21c9de76a988eb5512402f549c..94392f00c4e5ead78babe057aaee6724c769a8b0 100644 (file)
@@ -27,10 +27,10 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.security.GeneralSecurityException;
 import java.security.MessageDigest;
+import java.util.Base64;
 
 import javax.crypto.Cipher;
 
-import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
 import org.apache.commons.compress.archivers.zip.ZipArchiveInputStream;
 import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
@@ -166,7 +166,7 @@ class TestDecryptor {
             try (InputStream is2 = dec.getDataStream(pfs)) {
                 md.update(IOUtils.toByteArray(is2));
             }
-            assertEquals("L1vDQq2EuMSfU/FBfVQfM2zfOY5Jx9ZyVgIQhXPPVgs=", Base64.encodeBase64String(md.digest()));
+            assertEquals("L1vDQq2EuMSfU/FBfVQfM2zfOY5Jx9ZyVgIQhXPPVgs=", Base64.getEncoder().encodeToString(md.digest()));
         }
     }
 
index 183bab321f780b56e9df42bcff15cb350b25aa3f..ca832891517cb4e87b886f35efd883339977bd0d 100644 (file)
@@ -29,11 +29,11 @@ import java.io.InputStream;
 import java.security.MessageDigest;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Base64;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 
-import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hpsf.ClassIDPredefined;
@@ -144,7 +144,7 @@ class TestEmbedOLEPackage {
     private static String digest(Ole10Native ole10) {
         MessageDigest sha = CryptoFunctions.getMessageDigest(HashAlgorithm.sha256);
         byte[] digest = sha.digest(ole10.getDataBuffer());
-        return Base64.encodeBase64String(digest);
+        return Base64.getEncoder().encodeToString(digest);
     }
 
     @Test
index 463656d4dba2b7ae0d3935200201cc0af15ebebe..3b45b7c60cf00abdc4860b0bddbe050e0b429b41 100644 (file)
@@ -29,12 +29,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import java.io.IOException;
 import java.io.InputStream;
 import java.security.MessageDigest;
+import java.util.Base64;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
 
-import org.apache.commons.codec.binary.Base64;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.ooxml.POIXMLException;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@@ -370,6 +370,6 @@ public final class TestXSSFReader {
             md.update(IOUtils.toByteArray(is));
         }
 
-        return Base64.encodeBase64String(md.digest());
+        return Base64.getEncoder().encodeToString(md.digest());
     }
 }
index f13991370c9030581a8d15bd11e4fcbe9ae514c0..303ca4293f853e78da9ed979f2570333a44ed1ad 100644 (file)
@@ -29,11 +29,12 @@ import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
 import java.security.MessageDigest;
+import java.util.Base64;
 import java.util.BitSet;
 import java.util.List;
 
 import com.zaxxer.sparsebits.SparseBitSet;
-import org.apache.commons.codec.binary.Base64;
+
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hslf.usermodel.HSLFObjectShape;
 import org.apache.poi.hslf.usermodel.HSLFSlideShow;
@@ -241,7 +242,7 @@ public final class TestExtractor {
                 sha2.update(IOUtils.toByteArray(is));
             }
             String exp = "lIRRfGMin6B4++WR4XvA82usdQ3ijeHBHU85j523sKY=";
-            String act = Base64.encodeBase64String(sha2.digest());
+            String act = Base64.getEncoder().encodeToString(sha2.digest());
             assertEquals(exp, act);
         }
     }
index 34945764f2fab37bc9ad41455c918d47b680a6fc..26c00b64a17b27fb38e11b8535197d69a1c4603c 100644 (file)
@@ -25,9 +25,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.InputStream;
 import java.security.MessageDigest;
+import java.util.Base64;
 import java.util.List;
 
-import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.io.output.UnsynchronizedByteArrayOutputStream;
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.hpsf.DocumentSummaryInformation;
@@ -167,7 +167,7 @@ public class TestDocumentEncryption {
             for (HSLFPictureData p : pd) {
                 byte[] hash = md.digest(p.getData());
                 assertEquals(Integer.parseInt(picCmp[i][0]), p.getOffset());
-                assertEquals(picCmp[i][1], Base64.encodeBase64String(hash));
+                assertEquals(picCmp[i][1], Base64.getEncoder().encodeToString(hash));
                 i++;
             }
 
index 07004d05a596ef47f0255711cbc1dc27c55d9d73..fd5e53a2b9b321f47d2ce74bb007ade055db6db3 100644 (file)
 package org.apache.poi.poifs.crypt.agile;
 
 import java.util.ArrayList;
+import java.util.Base64;
 import java.util.List;
 
 import javax.xml.XMLConstants;
 
-import org.apache.commons.codec.binary.Base64;
 import org.apache.poi.EncryptedDocumentException;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -129,7 +129,7 @@ public class EncryptionDocument {
 
     static byte[] getBinAttr(Element el, String name) {
         String at = el.getAttribute(name);
-        return (at.isEmpty()) ? null : Base64.decodeBase64(at);
+        return (at.isEmpty()) ? null : Base64.getDecoder().decode(at);
     }
 
     static void setIntAttr(Element el, String name, Integer val) {
@@ -144,7 +144,7 @@ public class EncryptionDocument {
 
     static void setBinAttr(Element el, String name, byte[] val) {
         if (val != null) {
-            setAttr(el, name, Base64.encodeBase64String(val));
+            setAttr(el, name, Base64.getEncoder().encodeToString(val));
         }
     }
 }
index 66a8ea5c496342fab99e750e8c9c813c3a1e803d..174ccf67b79a67a125fd733f7bfe4e9039fba73b 100644 (file)
@@ -23,13 +23,14 @@ import java.util.List;
 import java.util.Locale;
 import java.util.Map;
 import java.util.WeakHashMap;
-import java.util.logging.Level;
-import java.util.logging.Logger;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import javax.swing.JLabel;
 
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.CellType;
 import org.apache.poi.ss.usermodel.ConditionalFormatting;
@@ -93,7 +94,7 @@ import org.apache.poi.util.LocaleUtil;
  */
 public class CellFormat {
     /** The logger to use in the formatting code. */
-    private static final Logger LOG = Logger.getLogger(CellFormat.class.getName());
+       private static final Logger LOG = LogManager.getLogger(CellFormat.class);
 
     private static final Pattern ONE_PART = Pattern.compile(
             CellFormatPart.FORMAT_PAT.pattern() + "(;|$)",
@@ -191,7 +192,7 @@ public class CellFormat {
 
                 parts.add(new CellFormatPart(locale, valueDesc));
             } catch (RuntimeException e) {
-                LOG.log(Level.WARNING, "Invalid format: " + CellFormatter.quote(m.group()), e);
+                LOG.log(Level.WARN, "Invalid format: " + CellFormatter.quote(m.group()), e);
                 parts.add(null);
             }
         }
index 141c98e735b1d074725fa8143029ceb65322a9fc..7cfe6cc17c287a17af0e30ca24585c2167d8f27c 100644 (file)
@@ -50,9 +50,8 @@ public class CellFormatPart {
 
     static final Map<String, Color> NAMED_COLORS;
 
-
     private final Color color;
-    private CellFormatCondition condition;
+    private final CellFormatCondition condition;
     private final CellFormatter format;
     private final CellFormatType type;
 
@@ -410,17 +409,17 @@ public class CellFormatPart {
         while (codePoints.hasNext()) {
             String ch = codePoints.next();
             if ("\'".equals(ch) && type.isSpecial('\'')) {
-                sb.append('\u0000');
-                continue;
-            }
-
-            boolean special = type.isSpecial(ch.charAt(0));
-            if (special)
-                sb.append("\'");
-            sb.append(ch);
-            if (special)
-                sb.append("\'");
-        }
+                               sb.append('\u0000');
+                               continue;
+                       }
+
+                       boolean special = type.isSpecial(ch.charAt(0));
+                       if (special)
+                               sb.append("'");
+                       sb.append(ch);
+                       if (special)
+                               sb.append("'");
+               }
         return sb.toString();
     }
 
index 0ed4e2521b157eede1375e45107ba664ab4262a9..ce9c56749fc80a6c8579779abd284036cb8e46ff 100644 (file)
@@ -141,5 +141,34 @@ javax.xml.bind.DatatypeConverter
 @defaultMessage don't rely on the threads ContextClassLoader - provide the classloader via load(Class, Classloader)\r
 java.util.ServiceLoader#load(java.lang.Class)\r
 \r
-@defaultMessage use java.nio.charset.StandardCharsets instead\r
-org.apache.commons.codec.Charsets
\ No newline at end of file
+@defaultMessage Use Log4J classes instead\r
+java.util.logging.**\r
+\r
+# taken from https://github.com/apache/solr/blob/main/gradle/validation/forbidden-apis/com.google.guava.guava.all.txt\r
+@defaultMessage Use corresponding Java 8 functional/streaming interfaces\r
+com.google.common.base.Function\r
+com.google.common.base.Joiner\r
+com.google.common.base.Predicate\r
+com.google.common.base.Supplier\r
+\r
+@defaultMessage Use java.nio.charset.StandardCharsets instead\r
+com.google.common.base.Charsets\r
+\r
+@defaultMessage Use methods in java.util.Objects instead\r
+com.google.common.base.Objects#equal(java.lang.Object,java.lang.Object)\r
+com.google.common.base.Objects#hashCode(java.lang.Object[])\r
+com.google.common.base.Preconditions#checkNotNull(java.lang.Object)\r
+com.google.common.base.Preconditions#checkNotNull(java.lang.Object,java.lang.Object)\r
+\r
+@defaultMessage Use methods in java.util.Comparator instead\r
+com.google.common.collect.Ordering\r
+\r
+\r
+# taken from https://github.com/apache/solr/blob/main/gradle/validation/forbidden-apis/commons-codec.commons-codec.all.txt\r
+@defaultMessage Use java.nio.charset.StandardCharsets instead\r
+org.apache.commons.codec.Charsets\r
+\r
+@defaultMessage Use java.util.Base64 instead\r
+org.apache.commons.codec.binary.Base64\r
+\r
+\r