You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ma...@apache.org on 2021/02/21 20:57:27 UTC

svn commit: r1886770 [1/10] - in /poi/trunk: ./ legal/ maven/ osgi/ sonar/ sonar/excelant/ sonar/integration-test/ sonar/main/ sonar/ooxml/ sonar/scratchpad/ src/examples/src/org/apache/poi/examples/hssf/usermodel/ src/integrationtest/ src/integrationt...

Author: mariusvolkhart
Date: Sun Feb 21 20:57:25 2021
New Revision: 1886770

URL: http://svn.apache.org/viewvc?rev=1886770&view=rev
Log:
[bug-63046] Use Log4j 2 for logging

This removes the POILogger and POILogFactory mechanism for logging. This mechanism was created at a time when the Java landscape looked very different than it does today.

Log4j 2 is an Apache Foundation project that is well maintained and is widely regarded as having good performance and capabilities. We use only the Log4j API artifact. This lets application developers choose how they want to capture logging events if at all. Integrations with Log4j 2 Core and Logback are available from the Log4j project.

Closes #224

Added:
    poi/trunk/src/resources/integrationtest/
    poi/trunk/src/resources/integrationtest/log4j2-test.xml
    poi/trunk/src/resources/test/
    poi/trunk/src/resources/test/log4j2-test.xml
Removed:
    poi/trunk/src/integrationtest/commons-logging.properties
    poi/trunk/src/integrationtest/log4j.properties
    poi/trunk/src/java/org/apache/poi/util/CommonsLogger.java
    poi/trunk/src/java/org/apache/poi/util/NullLogger.java
    poi/trunk/src/java/org/apache/poi/util/POILogFactory.java
    poi/trunk/src/java/org/apache/poi/util/POILogger.java
    poi/trunk/src/java/org/apache/poi/util/SLF4JLogger.java
    poi/trunk/src/java/org/apache/poi/util/SystemOutLogger.java
    poi/trunk/src/scratchpad/testcases/commons-logging.properties
    poi/trunk/src/scratchpad/testcases/log4j.properties
    poi/trunk/src/testcases/org/apache/poi/util/DummyPOILogger.java
    poi/trunk/src/testcases/org/apache/poi/util/TestPOILogger.java
Modified:
    poi/trunk/.classpath
    poi/trunk/.gitignore
    poi/trunk/build.gradle
    poi/trunk/build.xml
    poi/trunk/legal/LICENSE
    poi/trunk/maven/poi.pom
    poi/trunk/osgi/README.md
    poi/trunk/osgi/pom.xml
    poi/trunk/sonar/excelant/pom.xml
    poi/trunk/sonar/integration-test/pom.xml
    poi/trunk/sonar/main/pom.xml
    poi/trunk/sonar/ooxml/pom.xml
    poi/trunk/sonar/pom.xml
    poi/trunk/sonar/scratchpad/pom.xml
    poi/trunk/src/examples/src/org/apache/poi/examples/hssf/usermodel/Outlines.java
    poi/trunk/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java
    poi/trunk/src/java/org/apache/poi/POIDocument.java
    poi/trunk/src/java/org/apache/poi/common/usermodel/fonts/FontCharset.java
    poi/trunk/src/java/org/apache/poi/ddf/EscherContainerRecord.java
    poi/trunk/src/java/org/apache/poi/ddf/EscherMetafileBlip.java
    poi/trunk/src/java/org/apache/poi/extractor/ExtractorFactory.java
    poi/trunk/src/java/org/apache/poi/hpsf/ClipboardData.java
    poi/trunk/src/java/org/apache/poi/hpsf/CodePageString.java
    poi/trunk/src/java/org/apache/poi/hpsf/CustomProperties.java
    poi/trunk/src/java/org/apache/poi/hpsf/Property.java
    poi/trunk/src/java/org/apache/poi/hpsf/Section.java
    poi/trunk/src/java/org/apache/poi/hpsf/TypedPropertyValue.java
    poi/trunk/src/java/org/apache/poi/hpsf/UnicodeString.java
    poi/trunk/src/java/org/apache/poi/hpsf/VariantBool.java
    poi/trunk/src/java/org/apache/poi/hpsf/VariantSupport.java
    poi/trunk/src/java/org/apache/poi/hssf/dev/BiffViewer.java
    poi/trunk/src/java/org/apache/poi/hssf/eventusermodel/FormatTrackingHSSFListener.java
    poi/trunk/src/java/org/apache/poi/hssf/model/InternalSheet.java
    poi/trunk/src/java/org/apache/poi/hssf/model/InternalWorkbook.java
    poi/trunk/src/java/org/apache/poi/hssf/record/CFRule12Record.java
    poi/trunk/src/java/org/apache/poi/hssf/record/CFRuleBase.java
    poi/trunk/src/java/org/apache/poi/hssf/record/DimensionsRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/record/EmbeddedObjectRefSubRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/record/FeatRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/record/FormatRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/record/HyperlinkRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/record/LabelRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/record/OldLabelRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/record/SSTDeserializer.java
    poi/trunk/src/java/org/apache/poi/hssf/record/SupBookRecord.java
    poi/trunk/src/java/org/apache/poi/hssf/record/aggregates/CFRecordsAggregate.java
    poi/trunk/src/java/org/apache/poi/hssf/record/cf/ColorGradientFormatting.java
    poi/trunk/src/java/org/apache/poi/hssf/record/cf/DataBarFormatting.java
    poi/trunk/src/java/org/apache/poi/hssf/record/cf/IconMultiStateFormatting.java
    poi/trunk/src/java/org/apache/poi/hssf/record/common/ExtRst.java
    poi/trunk/src/java/org/apache/poi/hssf/record/common/UnicodeString.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/EscherGraphics.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/EscherGraphics2d.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPolygon.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFShape.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/StaticFontMetrics.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/helpers/HSSFColumnShifter.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/helpers/HSSFRowShifter.java
    poi/trunk/src/java/org/apache/poi/poifs/crypt/ChunkedCipherOutputStream.java
    poi/trunk/src/java/org/apache/poi/poifs/crypt/standard/StandardEncryptor.java
    poi/trunk/src/java/org/apache/poi/poifs/filesystem/POIFSDocumentPath.java
    poi/trunk/src/java/org/apache/poi/poifs/filesystem/POIFSFileSystem.java
    poi/trunk/src/java/org/apache/poi/poifs/macros/VBAMacroReader.java
    poi/trunk/src/java/org/apache/poi/poifs/nio/FileBackedDataSource.java
    poi/trunk/src/java/org/apache/poi/poifs/property/PropertyTable.java
    poi/trunk/src/java/org/apache/poi/sl/draw/BitmapImageRenderer.java
    poi/trunk/src/java/org/apache/poi/sl/draw/DrawPaint.java
    poi/trunk/src/java/org/apache/poi/sl/draw/DrawPictureShape.java
    poi/trunk/src/java/org/apache/poi/sl/draw/DrawTextParagraph.java
    poi/trunk/src/java/org/apache/poi/sl/draw/SLGraphics.java
    poi/trunk/src/java/org/apache/poi/sl/draw/geom/PresetGeometries.java
    poi/trunk/src/java/org/apache/poi/sl/draw/geom/PresetParser.java
    poi/trunk/src/java/org/apache/poi/sl/extractor/SlideShowExtractor.java
    poi/trunk/src/java/org/apache/poi/sl/image/ImageHeaderBitmap.java
    poi/trunk/src/java/org/apache/poi/sl/image/ImageHeaderEMF.java
    poi/trunk/src/java/org/apache/poi/sl/image/ImageHeaderWMF.java
    poi/trunk/src/java/org/apache/poi/sl/usermodel/ObjectData.java
    poi/trunk/src/java/org/apache/poi/ss/extractor/EmbeddedExtractor.java
    poi/trunk/src/java/org/apache/poi/ss/format/CellNumberFormatter.java
    poi/trunk/src/java/org/apache/poi/ss/formula/FormulaParser.java
    poi/trunk/src/java/org/apache/poi/ss/formula/WorkbookEvaluator.java
    poi/trunk/src/java/org/apache/poi/ss/formula/constant/ErrorConstant.java
    poi/trunk/src/java/org/apache/poi/ss/formula/functions/Rate.java
    poi/trunk/src/java/org/apache/poi/ss/usermodel/DataFormatter.java
    poi/trunk/src/java/org/apache/poi/ss/usermodel/FractionFormat.java
    poi/trunk/src/java/org/apache/poi/ss/util/CellUtil.java
    poi/trunk/src/java/org/apache/poi/ss/util/DateFormatConverter.java
    poi/trunk/src/java/org/apache/poi/ss/util/ImageUtils.java
    poi/trunk/src/java/org/apache/poi/util/Configurator.java
    poi/trunk/src/java/org/apache/poi/util/IOUtils.java
    poi/trunk/src/java/org/apache/poi/util/XMLHelper.java
    poi/trunk/src/multimodule/integration/java9/module-info.java
    poi/trunk/src/multimodule/ooxml-lite/java9/module-info.class
    poi/trunk/src/multimodule/ooxml/java9/module-info.class
    poi/trunk/src/multimodule/ooxml/java9/module-info.java
    poi/trunk/src/multimodule/ooxml/test9/module-info.class
    poi/trunk/src/multimodule/ooxml/test9/module-info.java
    poi/trunk/src/multimodule/poi/java9/module-info.java
    poi/trunk/src/multimodule/poi/test9/module-info.class
    poi/trunk/src/multimodule/poi/test9/module-info.java
    poi/trunk/src/multimodule/scratchpad/java9/module-info.class
    poi/trunk/src/multimodule/scratchpad/java9/module-info.java
    poi/trunk/src/multimodule/scratchpad/test9/module-info.class
    poi/trunk/src/multimodule/scratchpad/test9/module-info.java
    poi/trunk/src/ooxml/java/org/apache/poi/ooxml/POIXMLDocumentPart.java
    poi/trunk/src/ooxml/java/org/apache/poi/ooxml/POIXMLFactory.java
    poi/trunk/src/ooxml/java/org/apache/poi/ooxml/POIXMLRelation.java
    poi/trunk/src/ooxml/java/org/apache/poi/ooxml/util/XPathHelper.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/OPCPackage.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/PackagePart.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/PackageRelationshipCollection.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/PackagingURIHelper.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/ZipPackage.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ZipContentTypeManager.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/marshallers/DefaultMarshaller.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/marshallers/ZipPartMarshaller.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/KeyInfoKeySelector.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/OOXMLURIDereferencer.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureConfig.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignatureInfo.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/SignaturePart.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/KeyInfoSignatureFacet.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/OOXMLSignatureFacet.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESSignatureFacet.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/facets/XAdESXLSignatureFacet.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/RelationshipTransformService.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/dsig/services/TSPTimeStampService.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/temp/AesZipFileZipEntrySource.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/temp/EncryptedTempData.java
    poi/trunk/src/ooxml/java/org/apache/poi/poifs/crypt/temp/SXSSFWorkbookWithCustomZipEntrySource.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFFreeformShape.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGroupShape.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPictureShape.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFPropertiesDelegate.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSheet.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java
    poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/binary/XSSFBRelation.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFBReader.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFReader.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFBEventBasedExcelExtractor.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFEventBasedExcelExtractor.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFExportToXml.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/extractor/XSSFImportFromXML.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/DeferredSXSSFWorkbook.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFCreationHelper.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFFormulaEvaluator.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFPicture.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SXSSFWorkbook.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/SheetDataWriter.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/streaming/StreamingSheetWriter.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFDrawing.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFObjectData.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFPicture.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTableStyle.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFColumnShifter.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowColShifter.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/helpers/XSSFRowShifter.java
    poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestListParts.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestRelationships.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/ss/tests/TestWorkbookFactory.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestFormulaEvaluatorOnXSSF.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestMatrixFormulasFromXMLSpreadsheet.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestMultiSheetFormulaEvaluatorOnXSSF.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFBugs.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFColGrouping.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetMergeRegions.java
    poi/trunk/src/scratchpad/src/org/apache/poi/extractor/ole2/OLE2ScratchpadExtractorFactory.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/Chunk.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/chunks/ChunkFactory.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hdgf/streams/ChunkStream.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIDateAttribute.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/MAPIStringAttribute.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/TNEFDateAttribute.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hmef/attribute/TNEFStringAttribute.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hpbf/model/QuillContents.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/blip/PICT.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/HSLFMetroShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/BitMaskTextProp.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/model/textproperties/TextPropCollection.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/AnimationInfo.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Document.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExEmbed.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExHyperlink.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExMCIMovie.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExVideoContainer.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/FontCollection.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/HeadersFootersContainer.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/InteractiveInfo.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/MasterTextPropAtom.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PPDrawing.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/PersistPtrHolder.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Record.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Sound.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/StyleTextPropAtom.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextRulerAtom.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TxMasterStyleAtom.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFAutoShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFFill.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFFreeformShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFGroupShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFNotes.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFObjectData.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFObjectShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFPictureShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFShapeFactory.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSimpleShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextRun.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/MAPIMessage.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/AttachmentChunks.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/Chunks.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/MessageSubmissionChunk.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/PropertiesChunk.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/datatypes/RecipientChunks.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hsmf/parsers/POIFSChunkParser.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToFoConverter.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hssf/converter/ExcelToHtmlConverter.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfBitmapDib.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfText.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/usermodel/HwmfPicture.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/HWPFOldDocument.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordConverter.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/AbstractWordUtils.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToFoConverter.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToHtmlConverter.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/converter/WordToTextConverter.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/BookmarksTables.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/CHPBinTable.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/FIBFieldHandler.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/FileInformationBlock.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/FontTable.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ListLevel.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/ListTables.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/NilPICFAndBinData.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/OldFfn.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/OldFontTable.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PAPBinTable.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PicturesTable.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/PropertyNode.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/SectionTable.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/Sttb.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/StyleDescription.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/TextPieceTable.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/model/Xstz.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/sprm/CharacterSprmUncompressor.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/sprm/ParagraphSprmUncompressor.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/sprm/SectionSprmUncompressor.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/sprm/TableSprmUncompressor.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Paragraph.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Picture.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/Range.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/usermodel/TableRow.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwpf/util/LittleEndianCP950Reader.java
    poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/HWPFTestDataSamples.java
    poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBugs.java
    poi/trunk/src/testcases/org/apache/poi/hpsf/basic/TestWrite.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFDataFormat.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestMatrixFormulasFromBinarySpreadsheet.java
    poi/trunk/src/testcases/org/apache/poi/poifs/filesystem/TestEmptyDocument.java
    poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestBugzillaIssues.java

Modified: poi/trunk/.classpath
URL: http://svn.apache.org/viewvc/poi/trunk/.classpath?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/.classpath (original)
+++ poi/trunk/.classpath Sun Feb 21 20:57:25 2021
@@ -25,7 +25,7 @@
 	<classpathentry kind="lib" path="lib/main-tests/jmh-core-1.26.jar"/>
 	<classpathentry kind="lib" path="lib/main-tests/jmh-generator-annprocess-1.26.jar"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
-	<classpathentry exported="true" kind="lib" path="compile-lib/slf4j-api-1.7.30.jar"/>
+	<classpathentry exported="true" kind="lib" path="compile-lib/log4j-api-2.14.0.jar"/>
 	<classpathentry kind="lib" path="lib/ooxml-provided/bcpkix-jdk15on-1.67.jar"/>
 	<classpathentry kind="lib" path="lib/ooxml-provided/bcprov-jdk15on-1.67.jar"/>
 	<classpathentry kind="lib" path="lib/ooxml-tests/reflections-0.9.12.jar"/>
@@ -34,7 +34,6 @@
 	<classpathentry kind="lib" path="lib/ooxml-tests/log4j-1.2.17.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/ooxml-provided/xmlsec-2.2.0.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/commons-codec-1.15.jar"/>
-	<classpathentry exported="true" kind="lib" path="lib/commons-logging-1.2.jar"/>
 	<classpathentry exported="true" kind="lib" path="lib/commons-collections4-4.4.jar"/>
 	<classpathentry kind="lib" path="lib/commons-math3-3.6.1.jar"/>
 	<classpathentry kind="lib" path="lib/main-tests/xmlunit-core-2.8.0.jar"/>

Modified: poi/trunk/.gitignore
URL: http://svn.apache.org/viewvc/poi/trunk/.gitignore?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/.gitignore (original)
+++ poi/trunk/.gitignore Sun Feb 21 20:57:25 2021
@@ -5,7 +5,6 @@ build.number
 *.el
 scripts
 untitled1.jpx
-log*.*
 *.log
 
 forrest.properties

Modified: poi/trunk/build.gradle
URL: http://svn.apache.org/viewvc/poi/trunk/build.gradle?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/build.gradle (original)
+++ poi/trunk/build.gradle Sun Feb 21 20:57:25 2021
@@ -116,9 +116,9 @@ subprojects {
         commonsMathVersion = '3.6.1'
         japicmpversion = '5.0.0'
         junitVersion = '5.7.0'
+        log4jVersion = '2.14.0'
         mockitoVersion = '3.6.0'
         hamcrestVersion = '2.2'
-        slf4jVersion = '1.7.30'
         xmlbeansVersion = '4.0.0'
     }
 
@@ -140,6 +140,7 @@ subprojects {
         testCompile "org.junit.jupiter:junit-jupiter:${junitVersion}"
         testCompile "org.mockito:mockito-core:${mockitoVersion}"
         testCompile "org.hamcrest:hamcrest:${hamcrestVersion}"
+        testCompile "org.apache.logging.log4j:log4j-core:${log4jVersion}"
     }
 
     jar {
@@ -232,18 +233,17 @@ project('main') {
     sourceSets.main.java.srcDirs = ['../../src/java']
     sourceSets.main.resources.srcDirs = ['../../src/resources/main']
     sourceSets.test.java.srcDirs = ['../../src/testcases']
+    sourceSets.test.resources.srcDirs = ['../../src/resources/test']
 
     dependencies {
         compile "commons-codec:commons-codec:${commonsCodecVersion}"
-        compile 'commons-logging:commons-logging:1.2'
         compile 'org.apache.commons:commons-collections4:4.4'
         compile "org.apache.commons:commons-math3:${commonsMathVersion}"
-        compile "org.slf4j:slf4j-api:${slf4jVersion}"
+        compile "org.apache.logging.log4j:log4j-api:${log4jVersion}"
         compile 'javax.activation:activation:1.1.1'
         compile 'com.zaxxer:SparseBitSet:1.2'
 
         testCompile 'org.reflections:reflections:0.9.12'
-        testRuntime "org.slf4j:slf4j-simple:${slf4jVersion}"
     }
 
     jar {
@@ -275,6 +275,7 @@ project('ooxml') {
     sourceSets.main.java.srcDirs = ['../../src/ooxml/java']
     sourceSets.main.resources.srcDirs = ['../../src/ooxml/resources', '../../src/resources/ooxml']
     sourceSets.test.java.srcDirs = ['../../src/ooxml/testcases']
+    sourceSets.test.resources.srcDirs = ['../../src/resources/test']
 
     configurations {
         antdep
@@ -309,6 +310,7 @@ project('ooxml') {
         compile "org.bouncycastle:bcpkix-jdk15on:${bouncyCastleVersion}"
         compile 'com.github.virtuald:curvesapi:1.06'
         compile 'com.zaxxer:SparseBitSet:1.2'
+        compile "org.apache.logging.log4j:log4j-api:${log4jVersion}"
 
         // compile only, don't add it to our dist as it blows up the size
         compile 'org.apache.xmlgraphics:batik-all:1.14'
@@ -357,6 +359,7 @@ project('examples') {
         compile project(':scratchpad')
 
         compile "org.apache.xmlbeans:xmlbeans:${xmlbeansVersion}"
+        compile "org.apache.logging.log4j:log4j-core:${log4jVersion}"
 
         compile files("../../build/dist/maven/poi-ooxml-full/poi-ooxml-full-${version}.jar")
         compile "org.apache.commons:commons-compress:${commonsCompressVersion}"
@@ -370,6 +373,7 @@ project('excelant') {
     sourceSets.main.java.srcDirs = ['../../src/excelant/java']
     sourceSets.main.resources.srcDirs = ['../../src/excelant/resources']
     sourceSets.test.java.srcDirs = ['../../src/excelant/testcases']
+    sourceSets.test.resources.srcDirs = ['../../src/resources/test']
 
     dependencies {
         compile 'org.apache.ant:ant:1.10.9'
@@ -391,6 +395,7 @@ project('excelant') {
 
 project('integrationtest') {
     sourceSets.test.java.srcDirs = ['../../src/integrationtest']
+    sourceSets.test.resources.srcDirs = ['../../src/resources/integrationtest']
 
     dependencies {
         compile 'org.apache.ant:ant:1.10.9'
@@ -432,11 +437,13 @@ project('scratchpad') {
     sourceSets.main.java.srcDirs = ['../../src/scratchpad/src']
     sourceSets.main.resources.srcDirs = ['../../src/resources/scratchpad']
     sourceSets.test.java.srcDirs = ['../../src/scratchpad/testcases']
+    sourceSets.test.resources.srcDirs = ['../../src/resources/test']
 
     dependencies {
         compile project(':main')
         compile "commons-codec:commons-codec:${commonsCodecVersion}"
         compile "org.apache.commons:commons-math3:${commonsMathVersion}"
+        compile "org.apache.logging.log4j:log4j-api:${log4jVersion}"
 
         // cyclic-dependency here: compile project(':ooxml')
 

Modified: poi/trunk/build.xml
URL: http://svn.apache.org/viewvc/poi/trunk/build.xml?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/build.xml (original)
+++ poi/trunk/build.xml Sun Feb 21 20:57:25 2021
@@ -81,13 +81,6 @@ under the License.
         <matches pattern="^10\..*" string="${java.version}"/>
     </condition>
 
-
-    <!--
-        Logging is suppressed by default.
-        To redirect log output to console, run ant with -Dorg.apache.poi.util.POILogger=org.apache.poi.util.SystemOutLogger
-    -->
-    <property name="org.apache.poi.util.POILogger" value="org.apache.poi.util.NullLogger"/>
-
     <!-- issue warnings if source code contains unmappable characters for encoding ASCII  -->
     <property name="java.source.encoding" value="UTF-8"/>
 
@@ -124,6 +117,7 @@ under the License.
     <property name="main.resource1.dir" value="src/resources/main"/>
     <property name="main.src" location="src/java"/>
     <property name="main.src.test" location="src/testcases"/>
+    <property name="main.resources.test" location="src/resources/test"/>
     <property name="main.documentation" value="src/documentation"/>
     <property name="main.output.dir" location="build/classes"/>
     <property name="main.output.test.dir" location="build/test-classes"/>
@@ -134,6 +128,7 @@ under the License.
     <property name="scratchpad.resource1.dir" value="src/resources/scratchpad"/>
     <property name="scratchpad.src" location="src/scratchpad/src"/>
     <property name="scratchpad.src.test" location="src/scratchpad/testcases"/>
+    <property name="scratchpad.resources.test" location="src/resources/test"/>
     <property name="scratchpad.reports.test" location="build/scratchpad-test-results"/>
     <property name="scratchpad.output.dir" location="build/scratchpad-classes"/>
     <property name="scratchpad.output.test.dir" location="build/scratchpad-test-classes"/>
@@ -151,6 +146,7 @@ under the License.
     <property name="ooxml.src" location="src/ooxml/java"/>
     <property name="ooxml.resource1.dir" value="src/resources/ooxml"/>
     <property name="ooxml.src.test" location="src/ooxml/testcases"/>
+    <property name="ooxml.resources.test" location="src/resources/test"/>
     <property name="ooxml.reports.test" location="build/ooxml-test-results"/>
     <property name="ooxml.output.dir" location="build/ooxml-classes"/>
     <property name="ooxml.output.test.dir" location="build/ooxml-test-classes"/>
@@ -164,6 +160,7 @@ under the License.
 
     <!-- Integration testing: -->
     <property name="integration.src.test" location="src/integrationtest"/>
+    <property name="integration.resources.test" location="src/resources/integrationtest"/>
     <property name="integration.reports.test" location="build/integration-test-results"/>
     <property name="integration.output.test.dir" location="build/integration-test-classes"/>
     <property name="integration.testokfile" location="build/integration-testokfile.txt"/>
@@ -172,6 +169,7 @@ under the License.
     <property name="excelant.resource.dir" value="src/excelant/resources"/>
     <property name="excelant.src" location="src/excelant/java"/>
     <property name="excelant.src.test" location="src/excelant/testcases"/>
+    <property name="excelant.resources.test" location="src/resources/test"/>
     <property name="excelant.reports.test" location="build/excelant-test-results"/>
     <property name="excelant.output.dir" location="build/excelant-classes"/>
     <property name="excelant.output.test.dir" location="build/excelant-test-classes"/>
@@ -264,12 +262,11 @@ under the License.
 
 
     <!-- jars in the /lib directory, see the fetch-jars target-->
-    <dependency prefix="main.commons-logging" artifact="org.slf4j:jcl-over-slf4j:1.7.30" usage="main"/>
     <dependency prefix="main.commons-codec" artifact="commons-codec:commons-codec:1.15" usage="main"/>
     <dependency prefix="main.commons-collections4" artifact="org.apache.commons:commons-collections4:4.4" usage="main"/>
     <dependency prefix="main.commons-math3" artifact="org.apache.commons:commons-math3:3.6.1" usage="main"/>
     <dependency prefix="main.com.zaxxer" artifact="com.zaxxer:SparseBitSet:1.2" usage="main"/>
-    <dependency prefix="main.slf4j-api" artifact="org.slf4j:slf4j-api:1.7.30" usage="main"/>
+    <dependency prefix="main.log4j-api" artifact="org.apache.logging.log4j:log4j-api:2.14.0" usage="main"/>
 
     <dependency prefix="main.junit-api" artifact="org.junit.jupiter:junit-jupiter-api:5.7.0" usage="main-tests"/>
     <dependency prefix="main.junit-jengine" artifact="org.junit.jupiter:junit-jupiter-engine:5.7.0" usage="main-tests"/>
@@ -289,7 +286,9 @@ under the License.
     <dependency prefix="main.byte-buddy" artifact="net.bytebuddy:byte-buddy:1.10.19" usage="main-tests"/>
     <dependency prefix="main.byte-buddy-agent" artifact="net.bytebuddy:byte-buddy-agent:1.10.19" usage="main-tests"/>
     <dependency prefix="main.objenesis" artifact="org.objenesis:objenesis:3.1" usage="main-tests"/>
-    <dependency prefix="main.slf4j-simple" artifact="org.slf4j:slf4j-simple:1.7.30" usage="main-tests"/>
+    <dependency prefix="main.log4j-core" artifact="org.apache.logging.log4j:log4j-core:2.14.0" usage="main-tests"/>
+    <dependency prefix="main.commons-logging" artifact="commons-logging:commons-logging:1.2" usage="main-tests"/>
+    <dependency prefix="main.slf4j-api" artifact="org.slf4j:slf4j-api:1.7.30" usage="main-tests"/>
 
     <dependency prefix="main.ant" artifact="org.apache.ant:ant:1.10.9" usage="excelant"/>
     <dependency prefix="main.antlauncher" artifact="org.apache.ant:ant-launcher:1.10.9" usage="excelant"/>
@@ -347,7 +346,7 @@ under the License.
     <!-- Coverage -->
     <property name="coverage.dir" value="build/coverage"/>
     <!-- Exclude some uninteresting classes from coverage-instrumentation as we do not want to measure coverage in those packages anyway -->
-    <property name="coverage.excludes" value="org.openxmlformats.*:com.*:org.junit.*:junit.*:org.etsi.*:org.w3.*:org.slf4j.*:org.hamcrest.*:org.bouncycastle.*:org.apache.xmlbeans.*:org.apache.tools.*:org.apache.commons.*:org.apache.jcp.*:sun.*:schemaorg_apache_xmlbeans.*"/>
+    <property name="coverage.excludes" value="org.openxmlformats.*:com.*:org.junit.*:junit.*:org.etsi.*:org.w3.*:org.slf4j.*:org.apache.logging.log4j.*:org.hamcrest.*:org.bouncycastle.*:org.apache.xmlbeans.*:org.apache.tools.*:org.apache.commons.*:org.apache.jcp.*:sun.*:schemaorg_apache_xmlbeans.*"/>
 
     <property name="file.leak.detector" value="-Dthis.is.a.dummy=true"/>
 
@@ -394,13 +393,11 @@ under the License.
     <propertyset id="junit.properties">
         <propertyref name="POI.testdata.path"/>
         <propertyref name="java.awt.headless"/>
-        <propertyref name="org.apache.poi.util.POILogger"/>
         <propertyref name="http_proxy"/>
         <propertyref name="additionaljar"/>
         <propertyref name="user.language"/>
         <propertyref name="user.country"/>
         <propertyref name="javax.xml.stream.XMLInputFactory"/>
-        <propertyref name="org.apache.commons.logging.Log"/>
         <!-- required for Java 9 compilation -->
         <propertyref name="java.locale.providers"/>
         <!-- to detect if we are running on slow Gump VM -->
@@ -409,11 +406,11 @@ under the License.
     </propertyset>
 
     <path id="main.classpath">
-        <pathelement location="${main.commons-logging.jar}"/>
         <pathelement location="${main.commons-codec.jar}"/>
         <pathelement location="${main.commons-collections4.jar}"/>
         <pathelement location="${main.commons-math3.jar}"/>
         <pathelement location="${main.com.zaxxer.jar}"/>
+        <pathelement location="${main.log4j-api.jar}"/>
     </path>
 
     <!-- some libraries should only be required for compiling/running tests -->
@@ -434,7 +431,9 @@ under the License.
         <pathelement location="${main.byte-buddy.jar}"/>
         <pathelement location="${main.byte-buddy-agent.jar}"/>
         <pathelement location="${main.objenesis.jar}"/>
-        <pathelement location="${main.slf4j-simple.jar}"/>
+        <pathelement location="${main.log4j-core.jar}"/>
+        <pathelement location="${main.commons-logging.jar}"/>
+        <pathelement location="${main.slf4j-api.jar}"/>
     </path>
 
     <path id="scratchpad.classpath">
@@ -519,7 +518,7 @@ under the License.
         <path refid="ooxml.classpath"/>
         <path refid="ooxml.xmlsec.classpath"/>
         <path refid="test.jar.classpath"/>
-        <pathelement location="${main.slf4j-api.jar}"/>
+        <pathelement location="${main.log4j-api.jar}"/>
         <path path="${env.CLASSPATH}"/>
     </path>
 
@@ -657,7 +656,6 @@ under the License.
         <condition property="jars.present">
             <or>
                 <and>
-                    <available file="${main.commons-logging.jar}"/>
                     <available file="${main.commons-codec.jar}"/>
                     <available file="${main.junit-api.jar}"/>
                     <available file="${main.junit-jengine.jar}"/>
@@ -678,7 +676,8 @@ under the License.
                     <available file="${main.ant.jar}"/>
                     <available file="${main.antlauncher.jar}"/>
                     <available file="${main.slf4j-api.jar}"/>
-                    <available file="${main.slf4j-simple.jar}"/>
+                    <available file="${main.log4j-api.jar}"/>
+                    <available file="${main.log4j-core.jar}"/>
                     <available file="${asm.jar}"/>
                     <available file="${asm-commons.jar}"/>
                     <available file="${asm-tree.jar}"/>
@@ -724,7 +723,8 @@ under the License.
         <downloadfile src="${main.ant.url}" dest="${main.ant.jar}"/>
         <downloadfile src="${main.antlauncher.url}" dest="${main.antlauncher.jar}"/>
         <downloadfile src="${main.slf4j-api.url}" dest="${main.slf4j-api.jar}"/>
-        <downloadfile src="${main.slf4j-simple.url}" dest="${main.slf4j-simple.jar}"/>
+        <downloadfile src="${main.log4j-api.url}" dest="${main.log4j-api.jar}"/>
+        <downloadfile src="${main.log4j-core.url}" dest="${main.log4j-core.jar}"/>
         <downloadfile src="${asm.url}" dest="${asm.jar}"/>
         <downloadfile src="${asm-commons.url}" dest="${asm-commons.jar}"/>
         <downloadfile src="${asm-tree.url}" dest="${asm-tree.jar}"/>
@@ -1104,6 +1104,9 @@ under the License.
             <resources>
                 <fileset dir="${main.resource1.dir}"/>
             </resources>
+            <test-resources>
+                <fileset dir="${main.resources.test}" />
+            </test-resources>
         </compile-jar>
     </target>
 
@@ -1119,6 +1122,9 @@ under the License.
             <resources>
                 <fileset dir="${scratchpad.resource1.dir}"/>
             </resources>
+            <test-resources>
+                <fileset dir="${scratchpad.resources.test}" />
+            </test-resources>
         </compile-jar>
     </target>
 
@@ -1153,6 +1159,9 @@ under the License.
             <resources>
                 <fileset dir="${ooxml.resource1.dir}"/>
             </resources>
+            <test-resources>
+                <fileset dir="${ooxml.resources.test}" />
+            </test-resources>
         </compile-jar>
 
         <!-- create ooxml-lite-agent jar -->
@@ -1284,10 +1293,6 @@ under the License.
                         <jvmarg line="--add-modules org.junit.jupiter.params" unless:true="${isJava8}"/>
                         <jvmarg line="--add-modules org.apache.poi.@{module1}" if:set="use_module1"/>
                         <jvmarg line="--add-modules org.apache.poi.@{module2}" if:set="use_module2"/>
-
-                        <!-- mute some notorious talkative classes -->
-                        <jvmarg line="-Dorg.slf4j.simpleLogger.log.org.apache.poi.hdgf.chunks.Chunk=off"/>
-                        <jvmarg line="-Dorg.slf4j.simpleLogger.log.org.apache.poi=error"/>
                     </fork>
 
                     <listener classname="Junit5Progress" />
@@ -1364,6 +1369,7 @@ under the License.
                 <pathelement location="${examples.output.dir}"/>
                 <pathelement location="${main.ant.jar}"/>
                 <pathelement location="${scratchpad.output.dir}"/>
+                <pathelement location="${integration.resources.test}"/>
             </classpath>
             <exclude name="**/HeapDump**" if:true="${isIBMVM}"/>
         </javac>
@@ -1682,7 +1688,6 @@ under the License.
 
     <target name="test-integration" depends="compile-integration,-test-integration-check,jacocotask"
             unless="integration.test.notRequired">
-        <propertyreset name="org.apache.poi.util.POILogger" value="org.apache.poi.util.SLF4JLogger"/>
         <delete dir="build" includes="test-integration.log*"/>
 
         <path id="test-integration.modules">
@@ -2209,9 +2214,9 @@ under the License.
             <mappedresources cache="true">
                 <fileset dir="${main.lib}">
                     <include name="commons-codec-*.jar"/>
-                    <include name="commons-logging-*.jar"/>
                     <include name="commons-collections4-*.jar"/>
                     <include name="commons-math3-*.jar"/>
+                    <include name="log4j-api-*.jar"/>
                     <include name="SparseBitSet-*.jar"/>
                 </fileset>
                 <globmapper from="*" to="${zipdir}/lib/*"/>
@@ -2560,8 +2565,8 @@ under the License.
             <auxClasspath path="${main.commons-math3.jar}" />
             <auxClasspath path="${main.commons-codec.jar}" />
             <auxClasspath path="${main.commons-logging.jar}" />
-            <auxClasspath path="${main.slf4j-api.jar}" />
-            <auxClasspath path="${main.slf4j-simple.jar}" />
+            <auxClasspath path="${main.log4j-api.jar}" />
+            <auxClasspath path="${main.log4j-core.jar}" />
             <auxClasspath path="${main.junit-api.jar}" />
             <auxClasspath path="${main.junit-jengine.jar}" />
             <auxClasspath path="${main.junit-params.jar}" />

Modified: poi/trunk/legal/LICENSE
URL: http://svn.apache.org/viewvc/poi/trunk/legal/LICENSE?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/legal/LICENSE (original)
+++ poi/trunk/legal/LICENSE Sun Feb 21 20:57:25 2021
@@ -285,29 +285,9 @@ CurvesAPI / Curve API
     NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
     SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-SLF4J library (slf4j-api-*.jar)
+Log4j 2 library (log4j-api-*.jar)
 
-    Copyright (c) 2004-2017 QOS.ch
-    All rights reserved.
-
-    Permission is hereby granted, free  of charge, to any person obtaining
-    a  copy  of this  software  and  associated  documentation files  (the
-    "Software"), to  deal in  the Software without  restriction, including
-    without limitation  the rights to  use, copy, modify,  merge, publish,
-    distribute,  sublicense, and/or sell  copies of  the Software,  and to
-    permit persons to whom the Software  is furnished to do so, subject to
-    the following conditions:
-
-    The  above  copyright  notice  and  this permission  notice  shall  be
-    included in all copies or substantial portions of the Software.
-
-    THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
-    EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
-    MERCHANTABILITY,    FITNESS    FOR    A   PARTICULAR    PURPOSE    AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-    LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-    OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+    Apache License Version 2.0
 
 
 inbot-utils (https://github.com/Inbot/inbot-utils)

Modified: poi/trunk/maven/poi.pom
URL: http://svn.apache.org/viewvc/poi/trunk/maven/poi.pom?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/maven/poi.pom (original)
+++ poi/trunk/maven/poi.pom Sun Feb 21 20:57:25 2021
@@ -57,14 +57,9 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <version>1.7.30</version>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>jcl-over-slf4j</artifactId>
-            <version>1.7.30</version>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-api</artifactId>
+            <version>2.14.0</version>
         </dependency>
         <dependency>
             <groupId>commons-codec</groupId>

Modified: poi/trunk/osgi/README.md
URL: http://svn.apache.org/viewvc/poi/trunk/osgi/README.md?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/osgi/README.md (original)
+++ poi/trunk/osgi/README.md Sun Feb 21 20:57:25 2021
@@ -12,6 +12,7 @@ The bundle embeds all the jars from lib/
 - commons-compress
 - commons-collections4
 - commons-codec
+- Log4j 2 API
 
 ## Optional Dependencies
 

Modified: poi/trunk/osgi/pom.xml
URL: http://svn.apache.org/viewvc/poi/trunk/osgi/pom.xml?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/osgi/pom.xml (original)
+++ poi/trunk/osgi/pom.xml Sun Feb 21 20:57:25 2021
@@ -74,6 +74,7 @@
                             !org.apache.commons.compress.*,
                             !com.zaxxer.sparsebits.*,
                             !com.graphbuilder.*,
+                            !org.apache.logging.log4j.*,
                             org.apache.batik.*;resolution:=optional,
                             org.apache.pdfbox.*;resolution:=optional,
                             org.apache.fontbox.*;resolution:=optional,
@@ -86,8 +87,6 @@
                             org.apache.xml.resolver.*;resolution:=optional,
                             org.apache.xml.security.*;resolution:=optional,
                             org.bouncycastle.*;resolution:=optional,
-                            org.apache.commons.logging.*;resolution:=optional,
-                            org.slf4j.*;resolution:=optional,
                             !com.github.luben.zstd.*,
                             !org.tukaani.xz.*,
                             !org.brotli.dec.*,
@@ -104,7 +103,8 @@
                             commons-math3,
                             commons-compress,
                             commons-collections4,
-                            commons-codec
+                            commons-codec,
+                            log4j-api
                         </Embed-Dependency>
                         <Embed-Directory>lib</Embed-Directory>
                         <Embed-Transitive>true</Embed-Transitive>
@@ -228,9 +228,9 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-simple</artifactId>
-            <version>1.7.30</version>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-core</artifactId>
+            <version>2.14.0</version>
             <scope>test</scope>
         </dependency>
     </dependencies>

Modified: poi/trunk/sonar/excelant/pom.xml
URL: http://svn.apache.org/viewvc/poi/trunk/sonar/excelant/pom.xml?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/sonar/excelant/pom.xml (original)
+++ poi/trunk/sonar/excelant/pom.xml Sun Feb 21 20:57:25 2021
@@ -49,6 +49,9 @@
                                 <resource>
                                     <directory>../../src/excelant/resources</directory>
                                 </resource>
+                                <resource>
+                                    <directory>../../src/resources/test</directory>
+                                </resource>
                             </resources>
                         </configuration>
                     </execution>

Modified: poi/trunk/sonar/integration-test/pom.xml
URL: http://svn.apache.org/viewvc/poi/trunk/sonar/integration-test/pom.xml?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/sonar/integration-test/pom.xml (original)
+++ poi/trunk/sonar/integration-test/pom.xml Sun Feb 21 20:57:25 2021
@@ -41,6 +41,9 @@
                                         <include>org/apache/poi/hssf/HSSFTestDataSamples.java</include>
                                     </includes>
                                 </resource>
+                                <resource>
+                                    <directory>../../src/resources/integrationtest</directory>
+                                </resource>
                             </resources>
                         </configuration>
                     </execution>

Modified: poi/trunk/sonar/main/pom.xml
URL: http://svn.apache.org/viewvc/poi/trunk/sonar/main/pom.xml?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/sonar/main/pom.xml (original)
+++ poi/trunk/sonar/main/pom.xml Sun Feb 21 20:57:25 2021
@@ -63,6 +63,9 @@
                                 <resource>
                                     <directory>../../src/testcases</directory>
                                 </resource>
+                                <resource>
+                                    <directory>../../src/resources/test</directory>
+                                </resource>
                             </resources>
                         </configuration>
                     </execution>
@@ -101,14 +104,9 @@
 
     <dependencies>
         <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-api</artifactId>
-            <version>1.7.30</version>
-        </dependency>
-        <dependency>
-            <groupId>org.slf4j</groupId>
-            <artifactId>jcl-over-slf4j</artifactId>
-            <version>1.7.30</version>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-api</artifactId>
+            <version>2.14.0</version>
         </dependency>
         <dependency>
             <groupId>commons-codec</groupId>

Modified: poi/trunk/sonar/ooxml/pom.xml
URL: http://svn.apache.org/viewvc/poi/trunk/sonar/ooxml/pom.xml?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/sonar/ooxml/pom.xml (original)
+++ poi/trunk/sonar/ooxml/pom.xml Sun Feb 21 20:57:25 2021
@@ -60,6 +60,9 @@
                                 <resource>
                                     <directory>../../src/ooxml/testcases</directory>
                                 </resource>
+                                <resource>
+                                    <directory>../../src/resources/test</directory>
+                                </resource>
                             </resources>
                         </configuration>
                     </execution>
@@ -152,23 +155,11 @@
             <groupId>org.apache.xmlgraphics</groupId>
             <artifactId>batik-all</artifactId>
             <version>1.14</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>commons-logging</groupId>
-                    <artifactId>commons-logging</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
         <dependency>
             <groupId>de.rototor.pdfbox</groupId>
             <artifactId>graphics2d</artifactId>
             <version>0.30</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>commons-logging</groupId>
-                    <artifactId>commons-logging</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
 
         <dependency>

Modified: poi/trunk/sonar/pom.xml
URL: http://svn.apache.org/viewvc/poi/trunk/sonar/pom.xml?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/sonar/pom.xml (original)
+++ poi/trunk/sonar/pom.xml Sun Feb 21 20:57:25 2021
@@ -115,7 +115,6 @@
                     <systemPropertyVariables>
                         <POI.testdata.path>../../test-data</POI.testdata.path>
                         <java.awt.headless>true</java.awt.headless>
-                        <org.apache.poi.util.POILogger>org.apache.poi.util.NullLogger</org.apache.poi.util.POILogger>
                     </systemPropertyVariables>
                     <!-- use to following to analyze OOM issues:	-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -->
                     <argLine>@{argLine} -Duser.language=en -Duser.country=US -Xmx1024m -Djava.io.tmpdir=${basedir}/target/tmp -XX:-OmitStackTraceInFastThrow</argLine>
@@ -180,6 +179,12 @@
             <version>2.2</version>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-core</artifactId>
+            <version>2.14.0</version>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <profiles>

Modified: poi/trunk/sonar/scratchpad/pom.xml
URL: http://svn.apache.org/viewvc/poi/trunk/sonar/scratchpad/pom.xml?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/sonar/scratchpad/pom.xml (original)
+++ poi/trunk/sonar/scratchpad/pom.xml Sun Feb 21 20:57:25 2021
@@ -71,6 +71,9 @@
                                 <resource>
                                     <directory>../../src/scratchpad/testcases</directory>
                                 </resource>
+                                <resource>
+                                    <directory>../../src/resources/test</directory>
+                                </resource>
                             </resources>
                         </configuration>
                     </execution>

Modified: poi/trunk/src/examples/src/org/apache/poi/examples/hssf/usermodel/Outlines.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/examples/src/org/apache/poi/examples/hssf/usermodel/Outlines.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/examples/src/org/apache/poi/examples/hssf/usermodel/Outlines.java (original)
+++ poi/trunk/src/examples/src/org/apache/poi/examples/hssf/usermodel/Outlines.java Sun Feb 21 20:57:25 2021
@@ -22,12 +22,12 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hssf.usermodel.HSSFCell;
 import org.apache.poi.hssf.usermodel.HSSFRow;
 import org.apache.poi.hssf.usermodel.HSSFSheet;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 
 /**
  * Creates outlines.
@@ -35,13 +35,13 @@ import org.apache.poi.util.POILogger;
 public class Outlines implements Closeable {
     public static void main(String[] args)
     throws IOException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
-        POILogger LOGGER = POILogFactory.getLogger(Outlines.class);
+        Logger LOGGER = LogManager.getLogger(Outlines.class);
         for (int i=1; i<=13; i++) {
             try (Outlines o = new Outlines()) {
                 String log = (String) Outlines.class.getDeclaredMethod("test" + i).invoke(o);
                 String filename = "outline" + i + ".xls";
                 o.writeOut(filename);
-                LOGGER.log(POILogger.INFO, filename, " written. ", log);
+                LOGGER.atInfo().log("{} written. {}", filename, log);
             }
         }
     }

Modified: poi/trunk/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java (original)
+++ poi/trunk/src/integrationtest/org/apache/poi/stress/HSLFFileHandler.java Sun Feb 21 20:57:25 2021
@@ -23,13 +23,16 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hslf.usermodel.HSLFSlideShow;
 import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
-import org.apache.poi.util.POILogger;
-import org.apache.poi.util.SystemOutLogger;
 import org.junit.jupiter.api.Test;
 
 class HSLFFileHandler extends SlideShowHandler {
+
+    private static final Logger LOGGER = LogManager.getLogger(HSLFFileHandler.class);
+
     @Override
     public void handleFile(InputStream stream, String path) throws Exception {
         HSLFSlideShowImpl slide = new HSLFSlideShowImpl(stream);
@@ -64,12 +67,11 @@ class HSLFFileHandler extends SlideShowH
 
         System.out.println("Testing " + files.length + " files");
 
-        POILogger logger = new SystemOutLogger();
         for(File file : files) {
             try {
                 testOneFile(file);
             } catch (Throwable e) {
-                logger.log(POILogger.WARN, "Failed to handle file ", file, e);
+                LOGGER.atWarn().withThrowable(e).log("Failed to handle file {}", file);
             }
         }
     }
@@ -77,7 +79,6 @@ class HSLFFileHandler extends SlideShowH
     private void testOneFile(File file) throws Exception {
         System.out.println(file);
 
-        //System.setProperty("org.apache.poi.util.POILogger", "org.apache.poi.util.SystemOutLogger");
         try (InputStream stream = new FileInputStream(file)) {
             handleFile(stream, file.getPath());
         }
@@ -86,7 +87,6 @@ class HSLFFileHandler extends SlideShowH
     }
 
     public static void main(String[] args) throws Exception {
-        System.setProperty("org.apache.poi.util.POILogger", "org.apache.poi.util.SystemOutLogger");
         try (InputStream stream = new FileInputStream(args[0])) {
             new HSLFFileHandler().handleFile(stream, args[0]);
         }

Modified: poi/trunk/src/java/org/apache/poi/POIDocument.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/POIDocument.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/POIDocument.java (original)
+++ poi/trunk/src/java/org/apache/poi/POIDocument.java Sun Feb 21 20:57:25 2021
@@ -17,18 +17,23 @@
 
 package org.apache.poi;
 
+import static org.apache.logging.log4j.util.Unbox.box;
 import static org.apache.poi.hpsf.PropertySetFactory.newDocumentSummaryInformation;
 
+import java.io.BufferedOutputStream;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.Closeable;
 import java.io.File;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.security.GeneralSecurityException;
 import java.util.List;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hpsf.DocumentSummaryInformation;
 import org.apache.poi.hpsf.PropertySet;
 import org.apache.poi.hpsf.PropertySetFactory;
@@ -43,8 +48,6 @@ import org.apache.poi.poifs.filesystem.D
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.Internal;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 
 /**
  * This holds the common functionality for all POI
@@ -60,7 +63,7 @@ public abstract class POIDocument implem
     private DirectoryNode directory;
 
     /** For our own logging use */
-    private static final POILogger LOG = POILogFactory.getLogger(POIDocument.class);
+    private static final Logger LOG = LogManager.getLogger(POIDocument.class);
 
     /* Have the property streams been read yet? (Only done on-demand) */
     private boolean initialized;
@@ -162,12 +165,12 @@ public abstract class POIDocument implem
             if (clazz.isInstance(ps)) {
                 return (T)ps;
             } else if (ps != null) {
-                LOG.log(POILogger.WARN, localName+" property set came back with wrong class - "+ps.getClass().getName());
+                LOG.atWarn().log("{} property set came back with wrong class - {}", localName, ps.getClass().getName());
             } else {
-                LOG.log(POILogger.WARN, localName+" property set came back as null");
+                LOG.atWarn().log("{} property set came back as null {}", localName, box(5));
             }
         } catch (IOException e) {
-            LOG.log(POILogger.ERROR, "can't retrieve property set", e);
+            LOG.atError().withThrowable(e).log("can't retrieve property set");
         }
         return null;
     }
@@ -333,9 +336,9 @@ public abstract class POIDocument implem
             // Create or Update the Property Set stream in the POIFS
             outFS.createOrUpdateDocument(bIn, name);
 
-            LOG.log(POILogger.INFO, "Wrote property set ", name, " of size ", data.length);
+            LOG.atInfo().log("Wrote property set {} of size {}", name, box(data.length));
         } catch(WritingNotSupportedException ignored) {
-            LOG.log( POILogger.ERROR, "Couldn't write property set with name ", name, " as not supported by HPSF yet");
+            LOG.atError().log("Couldn't write property set with name {} as not supported by HPSF yet", name);
         }
     }
 
@@ -397,9 +400,9 @@ public abstract class POIDocument implem
      *  {@link #write()} or to a different File. Overwriting the currently
      *  open file via an OutputStream isn't possible.
      *
-     * If {@code stream} is a {@link java.io.FileOutputStream} on a networked drive
+     * If {@code stream} is a {@link FileOutputStream} on a networked drive
      * or has a high cost/latency associated with each written byte,
-     * consider wrapping the OutputStream in a {@link java.io.BufferedOutputStream}
+     * consider wrapping the OutputStream in a {@link BufferedOutputStream}
      * to improve write performance, or use {@link #write()} / {@link #write(File)}
      * if possible.
      *

Modified: poi/trunk/src/java/org/apache/poi/common/usermodel/fonts/FontCharset.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/common/usermodel/fonts/FontCharset.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/common/usermodel/fonts/FontCharset.java (original)
+++ poi/trunk/src/java/org/apache/poi/common/usermodel/fonts/FontCharset.java Sun Feb 21 20:57:25 2021
@@ -20,8 +20,8 @@ package org.apache.poi.common.usermodel.
 import java.nio.charset.Charset;
 import java.nio.charset.UnsupportedCharsetException;
 
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 
 /**
  * Charset represents the basic set of characters associated with a font (that it can display), and
@@ -99,8 +99,8 @@ public enum FontCharset {
                 charset = Charset.forName(javaCharsetName);
                 return;
             } catch (UnsupportedCharsetException e) {
-                POILogger logger = POILogFactory.getLogger(FontCharset.class);
-                logger.log(POILogger.WARN, "Unsupported charset: "+javaCharsetName);
+                Logger logger = LogManager.getLogger(FontCharset.class);
+                logger.atWarn().log("Unsupported charset: {}", javaCharsetName);
             }
         }
         charset = null;

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherContainerRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherContainerRecord.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherContainerRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherContainerRecord.java Sun Feb 21 20:57:25 2021
@@ -25,11 +25,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.function.Supplier;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.util.GenericRecordUtil;
 import org.apache.poi.util.HexDump;
 import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 /**
  * Escher container records store other escher records as children.
@@ -45,7 +47,7 @@ public final class EscherContainerRecord
     public static final short SP_CONTAINER     = EscherRecordTypes.SP_CONTAINER.typeID;
     public static final short SOLVER_CONTAINER = EscherRecordTypes.SOLVER_CONTAINER.typeID;
 
-    private static final POILogger log = POILogFactory.getLogger(EscherContainerRecord.class);
+    private static final Logger LOGGER = LogManager.getLogger(EscherContainerRecord.class);
 
     /**
      * in case if document contains any charts we have such document structure:
@@ -95,9 +97,7 @@ public final class EscherContainerRecord
             addChildRecord(child);
             if (offset >= data.length && bytesRemaining > 0) {
                 _remainingLength = bytesRemaining;
-                if (log.check(POILogger.WARN)) {
-                    log.log(POILogger.WARN, "Not enough Escher data: " + bytesRemaining + " bytes remaining but no space left");
-                }
+                LOGGER.atWarn().log("Not enough Escher data: {} bytes remaining but no space left", box(bytesRemaining));
             }
         }
         return bytesWritten;

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherMetafileBlip.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherMetafileBlip.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherMetafileBlip.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherMetafileBlip.java Sun Feb 21 20:57:25 2021
@@ -29,14 +29,16 @@ import java.util.function.Supplier;
 import java.util.zip.DeflaterOutputStream;
 import java.util.zip.InflaterInputStream;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hssf.usermodel.HSSFPictureData;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 public final class EscherMetafileBlip extends EscherBlipRecord {
-    private static final POILogger log = POILogFactory.getLogger(EscherMetafileBlip.class);
+    private static final Logger LOGGER = LogManager.getLogger(EscherMetafileBlip.class);
     //arbitrarily selected; may need to increase
     private static final int MAX_RECORD_LENGTH = 100_000_000;
 
@@ -175,7 +177,7 @@ public final class EscherMetafileBlip ex
             }
             return out.toByteArray();
         } catch (IOException e) {
-            log.log(POILogger.WARN, "Possibly corrupt compression or non-compressed data", e);
+            LOGGER.atWarn().withThrowable(e).log("Possibly corrupt compression or non-compressed data");
             return data;
         }
     }
@@ -375,9 +377,7 @@ public final class EscherMetafileBlip ex
             case BLIP_WMF:  return HSSFPictureData.MSOBI_WMF;
             case BLIP_PICT: return HSSFPictureData.MSOBI_PICT;
         }
-        if (log.check(POILogger.WARN)) {
-            log.log(POILogger.WARN, "Unknown metafile: " + getRecordId());
-        }
+        LOGGER.atWarn().log("Unknown metafile: {}", box(getRecordId()));
         return 0;
     }
 

Modified: poi/trunk/src/java/org/apache/poi/extractor/ExtractorFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/extractor/ExtractorFactory.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/extractor/ExtractorFactory.java (original)
+++ poi/trunk/src/java/org/apache/poi/extractor/ExtractorFactory.java Sun Feb 21 20:57:25 2021
@@ -27,6 +27,8 @@ import java.util.List;
 import java.util.ServiceLoader;
 import java.util.stream.StreamSupport;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.EmptyFileException;
 import org.apache.poi.hssf.extractor.ExcelExtractor;
 import org.apache.poi.poifs.crypt.Decryptor;
@@ -36,8 +38,6 @@ import org.apache.poi.poifs.filesystem.E
 import org.apache.poi.poifs.filesystem.FileMagic;
 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
 import org.apache.poi.util.IOUtils;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 
 /**
  * Figures out the correct POIOLE2TextExtractor for your supplied
@@ -60,7 +60,7 @@ public final class ExtractorFactory {
      */
     public static final String OOXML_PACKAGE = "Package";
 
-    private static final POILogger LOGGER = POILogFactory.getLogger(ExtractorFactory.class);
+    private static final Logger LOGGER = LogManager.getLogger(ExtractorFactory.class);
 
     /** Should this thread prefer event based over usermodel based extractors? */
     private static final ThreadLocal<Boolean> threadPreferEventExtractors = ThreadLocal.withInitial(() -> Boolean.FALSE);
@@ -293,7 +293,7 @@ public final class ExtractorFactory {
                 textExtractors.add(createExtractor(stream));
             } catch (IOException e) {
                 // Ignore, just means it didn't contain a format we support as yet
-                LOGGER.log(POILogger.INFO, "Format not supported yet", e.getLocalizedMessage());
+                LOGGER.atInfo().log("Format not supported yet ({})", e.getLocalizedMessage());
             }
         }
         return textExtractors.toArray(new POITextExtractor[0]);

Modified: poi/trunk/src/java/org/apache/poi/hpsf/ClipboardData.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/ClipboardData.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/ClipboardData.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/ClipboardData.java Sun Feb 21 20:57:25 2021
@@ -16,20 +16,22 @@
 ==================================================================== */
 package org.apache.poi.hpsf;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LittleEndianByteArrayInputStream;
 import org.apache.poi.util.LittleEndianConsts;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 @Internal
 public class ClipboardData {
     //arbitrarily selected; may need to increase
     private static final int MAX_RECORD_LENGTH = 100_000_000;
 
-    private static final POILogger LOG = POILogFactory.getLogger( ClipboardData.class );
+    private static final Logger LOG = LogManager.getLogger(ClipboardData.class);
 
     private int _format;
     private byte[] _value;
@@ -39,10 +41,8 @@ public class ClipboardData {
         long size = lei.readInt();
 
         if ( size < 4 ) {
-            String msg =
-                "ClipboardData at offset "+offset+" size less than 4 bytes "+
-                "(doesn't even have format field!). Setting to format == 0 and hope for the best";
-            LOG.log( POILogger.WARN, msg);
+            LOG.atWarn().log("ClipboardData at offset {} size less than 4 bytes (doesn't even have format " +
+                    "field!). Setting to format == 0 and hope for the best", box(offset));
             _format = 0;
             _value = new byte[0];
             return;

Modified: poi/trunk/src/java/org/apache/poi/hpsf/CodePageString.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/CodePageString.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/CodePageString.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/CodePageString.java Sun Feb 21 20:57:25 2021
@@ -20,21 +20,23 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.util.CodePageUtil;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LittleEndianByteArrayInputStream;
 import org.apache.poi.util.LittleEndianConsts;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 @Internal
 public class CodePageString {
     //arbitrarily selected; may need to increase
     private static final int MAX_RECORD_LENGTH = 100_000;
 
-    private static final POILogger LOG = POILogFactory.getLogger( CodePageString.class );
+    private static final Logger LOG = LogManager.getLogger(CodePageString.class);
 
     private byte[] _value;
 
@@ -61,8 +63,7 @@ public class CodePageString {
             // TODO Some files, such as TestVisioWithCodepage.vsd, are currently
             // triggering this for values that don't look like codepages
             // See Bug #52258 for details
-            String msg = "CodePageString started at offset #" + offset + " is not NULL-terminated";
-            LOG.log(POILogger.WARN, msg);
+            LOG.atWarn().log("CodePageString started at offset #{} is not NULL-terminated", box(offset));
         }
 
         TypedPropertyValue.skipPadding(lei);
@@ -75,17 +76,13 @@ public class CodePageString {
 
         final int terminator = result.indexOf( '\0' );
         if ( terminator == -1 ) {
-            String msg =
-                "String terminator (\\0) for CodePageString property value not found. " +
-                "Continue without trimming and hope for the best.";
-            LOG.log(POILogger.WARN, msg);
+            LOG.atWarn().log("String terminator (\\0) for CodePageString property value not found. " +
+            "Continue without trimming and hope for the best.");
             return result;
         }
         if ( terminator != result.length() - 1 ) {
-            String msg =
-                "String terminator (\\0) for CodePageString property value occured before the end of string. "+
-                "Trimming and hope for the best.";
-            LOG.log(POILogger.WARN, msg );
+            LOG.atWarn().log("String terminator (\\0) for CodePageString property value occurred before the end of " +
+                    "string. Trimming and hope for the best.");
         }
         return result.substring( 0, terminator );
     }

Modified: poi/trunk/src/java/org/apache/poi/hpsf/CustomProperties.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/CustomProperties.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/CustomProperties.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/CustomProperties.java Sun Feb 21 20:57:25 2021
@@ -31,10 +31,12 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.collections4.bidimap.TreeBidiMap;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hpsf.wellknown.PropertyIDMap;
 import org.apache.poi.util.CodePageUtil;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 /**
  * Maintains the instances of {@link CustomProperty} that belong to a
@@ -65,8 +67,8 @@ import org.apache.poi.util.POILogger;
  * HashMap&lt;String,Object&gt; mapping between Names and Custom Property Values.
  */
 public class CustomProperties implements Map<String,Object> {
-    private static final POILogger LOG = POILogFactory.getLogger(CustomProperties.class);
-    
+    private static final Logger LOG = LogManager.getLogger(CustomProperties.class);
+
     /**
      * The custom properties
      */
@@ -207,7 +209,7 @@ public class CustomProperties implements
 
     @Override
     public void putAll(Map<? extends String, ?> m) {
-        for (Map.Entry<? extends String, ?> me : m.entrySet()) {
+        for (Entry<? extends String, ?> me : m.entrySet()) {
             put(me.getKey(), me.getValue());
         }
     }
@@ -393,12 +395,12 @@ public class CustomProperties implements
         try {
             cps = CodePageUtil.codepageToEncoding(cp, false);
         } catch (UnsupportedEncodingException e) {
-            LOG.log(POILogger.ERROR, "Codepage '", cp, "' can't be found.");
+            LOG.atError().log("Codepage '{}' can't be found.", box(cp));
         }
         if (!cps.isEmpty() && Charset.forName(cps).newEncoder().canEncode(value)) {
             return;
         }
-        LOG.log(POILogger.DEBUG, "Charset '"+cps+"' can't encode '"+value+"' - switching to unicode.");
+        LOG.atDebug().log("Charset '{}' can't encode '{}' - switching to unicode.", cps, value);
         setCodepage(CodePageUtil.CP_UNICODE);
     }
 }

Modified: poi/trunk/src/java/org/apache/poi/hpsf/Property.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/Property.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/Property.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/Property.java Sun Feb 21 20:57:25 2021
@@ -24,10 +24,13 @@ import java.io.UnsupportedEncodingExcept
 import java.nio.charset.Charset;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.Locale;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hpsf.wellknown.PropertyIDMap;
 import org.apache.poi.util.CodePageUtil;
 import org.apache.poi.util.HexDump;
@@ -35,8 +38,8 @@ import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LittleEndianByteArrayInputStream;
 import org.apache.poi.util.LittleEndianConsts;
 import org.apache.poi.util.LocaleUtil;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 /**
  * A property in a {@link Section} of a {@link PropertySet}.<p>
@@ -70,7 +73,7 @@ public class Property {
      */
     public static final int DEFAULT_CODEPAGE = CodePageUtil.CP_WINDOWS_1252;
 
-    private static final POILogger LOG = POILogFactory.getLogger(Property.class);
+    private static final Logger LOG = LogManager.getLogger(Property.class);
 
     /** The property's ID. */
     private long id;
@@ -293,7 +296,7 @@ public class Property {
      * section's dictionary. Another special case are strings: Two properties
      * may have the different types Variant.VT_LPSTR and Variant.VT_LPWSTR;
      *
-     * @see Object#equals(java.lang.Object)
+     * @see Object#equals(Object)
      */
     @Override
     public boolean equals(final Object o) {
@@ -412,7 +415,7 @@ public class Property {
             try {
                 write(bos, codepage);
             } catch (Exception e) {
-                LOG.log(POILogger.WARN, "can't serialize string", e);
+                LOG.atWarn().withThrowable(e).log("can't serialize string");
             }
 
             // skip length field
@@ -427,8 +430,8 @@ public class Property {
                 String hex = HexDump.dump(bytes, 0L, 0);
                 b.append(hex);
             }
-        } else if (value instanceof java.util.Date) {
-            java.util.Date d = (java.util.Date)value;
+        } else if (value instanceof Date) {
+            Date d = (Date)value;
             long filetime = Filetime.dateToFileTime(d);
             if (Filetime.isUndefined(d)) {
                 b.append("<undefined>");
@@ -484,7 +487,7 @@ public class Property {
                     return LocaleUtil.getLocaleFromLCID(((Number)value).intValue());
             }
         } catch (Exception e) {
-            LOG.log(POILogger.WARN, "Can't decode id "+getID());
+            LOG.atWarn().log("Can't decode id {}", box(getID()));
         }
         return null;
     }

Modified: poi/trunk/src/java/org/apache/poi/hpsf/Section.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/Section.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/Section.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/Section.java Sun Feb 21 20:57:25 2021
@@ -31,6 +31,8 @@ import java.util.Set;
 import java.util.TreeMap;
 
 import org.apache.commons.collections4.bidimap.TreeBidiMap;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.hpsf.wellknown.PropertyIDMap;
 import org.apache.poi.util.CodePageUtil;
 import org.apache.poi.util.IOUtils;
@@ -38,8 +40,6 @@ import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.LittleEndianByteArrayInputStream;
 import org.apache.poi.util.LittleEndianConsts;
 import org.apache.poi.util.LittleEndianOutputStream;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
 
 /**
  * Represents a section in a {@link PropertySet}.
@@ -48,7 +48,7 @@ public class Section {
     //arbitrarily selected; may need to increase
     private static final int MAX_RECORD_LENGTH = 100_000;
 
-    private static final POILogger LOG = POILogFactory.getLogger(Section.class);
+    private static final Logger LOG = LogManager.getLogger(Section.class);
 
     /**
      * Maps property IDs to section-private PID strings. These
@@ -235,7 +235,7 @@ public class Section {
                         id = Math.max(PropertyIDMap.PID_MAX, offset2Id.inverseBidiMap().lastKey())+1;
                         setProperty(new Property(id, leis, pLen, codepage));
                     } catch (RuntimeException e) {
-                        LOG.log(POILogger.INFO, "Dictionary fallback failed - ignoring property");
+                        LOG.atInfo().log("Dictionary fallback failed - ignoring property");
                     }
                 }
             } else {
@@ -730,10 +730,8 @@ public class Section {
          * (property 0) the codepage property (property 1) must be set, too. */
         int codepage = getCodepage();
         if (codepage == -1) {
-            String msg =
-                "The codepage property is not set although a dictionary is present. "+
-                "Defaulting to ISO-8859-1.";
-            LOG.log(POILogger.WARN, msg);
+            LOG.atWarn().log("The codepage property is not set although a dictionary is present. " +
+                    "Defaulting to ISO-8859-1.");
             codepage = Property.DEFAULT_CODEPAGE;
         }
 
@@ -826,7 +824,7 @@ public class Section {
             int cp = (codepage == -1) ? Property.DEFAULT_CODEPAGE : codepage;
             int nrBytes = Math.toIntExact(((sLength-1) * (cp == CodePageUtil.CP_UNICODE ? 2 : 1)));
             if (nrBytes > 0xFFFFFF) {
-                LOG.log(POILogger.WARN, errMsg);
+                LOG.atWarn().log(errMsg);
                 isCorrupted = true;
                 break;
             }
@@ -844,7 +842,7 @@ public class Section {
 
                 dic.put(id, str);
             } catch (RuntimeException|IOException ex) {
-                LOG.log(POILogger.WARN, errMsg, ex);
+                LOG.atWarn().withThrowable(ex).log(errMsg);
                 isCorrupted = true;
                 break;
             }
@@ -894,8 +892,8 @@ public class Section {
 
     /**
      * Sets the section's dictionary. All keys in the dictionary must be
-     * {@link java.lang.Long} instances, all values must be
-     * {@link java.lang.String}s. This method overwrites the properties with IDs
+     * {@link Long} instances, all values must be
+     * {@link String}s. This method overwrites the properties with IDs
      * 0 and 1 since they are reserved for the dictionary and the dictionary's
      * codepage. Setting these properties explicitly might have surprising
      * effects. An application should never do this but always use this

Modified: poi/trunk/src/java/org/apache/poi/hpsf/TypedPropertyValue.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/TypedPropertyValue.java?rev=1886770&r1=1886769&r2=1886770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/TypedPropertyValue.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/TypedPropertyValue.java Sun Feb 21 20:57:25 2021
@@ -20,15 +20,17 @@ package org.apache.poi.hpsf;
 
 import java.math.BigInteger;
 
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
 import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndianByteArrayInputStream;
 import org.apache.poi.util.LittleEndianConsts;
-import org.apache.poi.util.POILogFactory;
-import org.apache.poi.util.POILogger;
+
+import static org.apache.logging.log4j.util.Unbox.box;
 
 @Internal
 public class TypedPropertyValue {
-    private static final POILogger LOG = POILogFactory.getLogger( TypedPropertyValue.class );
+    private static final Logger LOG = LogManager.getLogger(TypedPropertyValue.class);
 
     private int _type;
     private Object _value;
@@ -46,8 +48,7 @@ public class TypedPropertyValue {
         _type = lei.readShort();
         short padding = lei.readShort();
         if ( padding != 0 ) {
-            LOG.log( POILogger.WARN, "TypedPropertyValue padding at offset "
-                    + lei.getReadIndex() + " MUST be 0, but it's value is " + padding );
+            LOG.atWarn().log("TypedPropertyValue padding at offset {} MUST be 0, but it's value is {}", box(lei.getReadIndex()),box(padding));
         }
         readValue( lei );
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org