<property name="jdk.version.class" value="1.5" description="JDK version of generated class files"/>
<property name="compile.debug" value="true"/>
+ <!--
+ 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="ASCII"/>
<propertyset id="junit.properties">
<propertyref name="POI.testdata.path"/>
<propertyref name="java.awt.headless"/>
+ <propertyref name="org.apache.poi.util.POILogger"/>
</propertyset>
<path id="main.classpath">
import org.apache.poi.hssf.record.cont.ContinuableRecordInput;
import org.apache.poi.hssf.record.RecordInputStream;
import org.apache.poi.hssf.record.cont.ContinuableRecordOutput;
-import org.apache.poi.util.BitField;
-import org.apache.poi.util.BitFieldFactory;
-import org.apache.poi.util.LittleEndianInput;
-import org.apache.poi.util.LittleEndianOutput;
-import org.apache.poi.util.StringUtil;
+import org.apache.poi.poifs.dev.POIFSLister;
+import org.apache.poi.util.*;
/**
* Title: Unicode String<p/>
* REFERENCE: PG 951 Excel Binary File Format (.xls) Structure Specification v20091214
*/
public class UnicodeString implements Comparable<UnicodeString> { // TODO - make this final when the compatibility version is removed
+ private static POILogger _logger = POILogFactory.getLogger(UnicodeString.class);
+
private short field_1_charCount;
private byte field_2_optionflags;
private String field_3_string;
// Spot corrupt records
if(reserved != 1) {
- System.err.println("Warning - ExtRst was has wrong magic marker, expecting 1 but found " + reserved + " - ignoring");
+ _logger.log(POILogger.WARN, "Warning - ExtRst has wrong magic marker, expecting 1 but found " + reserved + " - ignoring");
// Grab all the remaining data, and ignore it
for(int i=0; i<expectedLength-2; i++) {
in.readByte();
if (isExtendedText() && (extensionLength > 0)) {
field_5_ext_rst = new ExtRst(new ContinuableRecordInput(in), extensionLength);
if(field_5_ext_rst.getDataSize()+4 != extensionLength) {
- System.err.println("ExtRst was supposed to be " + extensionLength + " bytes long, but seems to actually be " + (field_5_ext_rst.getDataSize()+4));
+ _logger.log(POILogger.WARN, "ExtRst was supposed to be " + extensionLength + " bytes long, but seems to actually be " + (field_5_ext_rst.getDataSize() + 4));
}
}
}
*
* <p>
* Character width is defined as the maximum digit width
- * of the numbers <code>0, 1, 2, … 9</code> as rendered
+ * of the numbers <code>0, 1, 2, ... 9</code> as rendered
* using the default font (first font in the workbook).
* <br/>
* Unless you are using a very special font, the default character is '0' (zero),
import org.apache.poi.poifs.common.POIFSBigBlockSize;
import org.apache.poi.poifs.common.POIFSConstants;
-import org.apache.poi.util.IntList;
-import org.apache.poi.util.LittleEndian;
-import org.apache.poi.util.LittleEndianConsts;
+import org.apache.poi.util.*;
/**
* This class manages and creates the Block Allocation Table, which is
* @author Marc Johnson (mjohnson at apache dot org)
*/
public final class BlockAllocationTableReader {
-
+ private static final POILogger _logger = POILogFactory.getLogger(BlockAllocationTableReader.class);
+
/**
* Maximum number size (in blocks) of the allocation table as supported by
* POI.<br/>
} catch(IOException e) {
if(currentBlock == headerPropertiesStartBlock) {
// Special case where things are in the wrong order
- System.err.println("Warning, header block comes after data blocks in POIFS block listing");
+ _logger.log(POILogger.WARN, "Warning, header block comes after data blocks in POIFS block listing");
currentBlock = POIFSConstants.END_OF_CHAIN;
} else if(currentBlock == 0 && firstPass) {
// Special case where the termination isn't done right
// on an empty set
- System.err.println("Warning, incorrectly terminated empty data blocks in POIFS block listing (should end at -2, ended at 0)");
+ _logger.log(POILogger.WARN, "Warning, incorrectly terminated empty data blocks in POIFS block listing (should end at -2, ended at 0)");
currentBlock = POIFSConstants.END_OF_CHAIN;
} else {
// Ripple up
*
* <p>
* Character width is defined as the maximum digit width
- * of the numbers <code>0, 1, 2, … 9</code> as rendered
+ * of the numbers <code>0, 1, 2, ... 9</code> as rendered
* using the default font (first font in the workbook).
* <br/>
* Unless you are using a very special font, the default character is '0' (zero),
*
* <p>
* Character width is defined as the maximum digit width
- * of the numbers <code>0, 1, 2, … 9</code> as rendered
+ * of the numbers <code>0, 1, 2, ... 9</code> as rendered
* using the default font (first font in the workbook)
* </p>
*
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.exceptions.InvalidOperationException;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
/**
* Helper for part and pack URI.
* @version 0.1
*/
public final class PackagingURIHelper {
+ private final static POILogger _logger = POILogFactory.getLogger(PackagingURIHelper.class);
/**
* Package root URI.
try {
targetURI = new URI(path.substring(1));
} catch (Exception e) {
- System.err.println(e);
+ _logger.log(POILogger.WARN, e);
return null;
}
}
try {
return new URI(retVal.toString());
} catch (Exception e) {
- System.err.println(e);
+ _logger.log(POILogger.WARN, e);
return null;
}
}
try {
return new URI(retVal.toString());
} catch (Exception e) {
- System.err.println(e);
+ _logger.log(POILogger.WARN, e);
return null;
}
}
public SheetDataWriter() throws IOException
{
- _fd = File.createTempFile("sheet", ".xml");
+ _fd = File.createTempFile("poi-sxxsf-sheet", ".xml");
_fd.deleteOnExit();
_out = new BufferedWriter(new FileWriter(_fd));
_out.write("<sheetData>\n");
public void write(OutputStream stream) throws IOException
{
//Save the template
- File tmplFile = File.createTempFile("template", ".xlsx");
+ File tmplFile = File.createTempFile("poi-sxxsf-template", ".xlsx");
+ tmplFile.deleteOnExit();
FileOutputStream os = new FileOutputStream(tmplFile);
_wb.write(os);
os.close();
*
* <p>
* Character width is defined as the maximum digit width
- * of the numbers <code>0, 1, 2, … 9</code> as rendered
+ * of the numbers <code>0, 1, 2, ... 9</code> as rendered
* using the default font (first font in the workbook).
* <br/>
* Unless you are using a very special font, the default character is '0' (zero),
doc.parse(new TestFactory());
for(POIXMLDocumentPart rel : doc.getRelations()){
- System.out.println(rel);
+ //TODO finish me
}
}
import org.apache.poi.hwpf.model.io.HWPFFileSystem;
import org.apache.poi.hwpf.model.io.HWPFOutputStream;
import org.apache.poi.util.LittleEndian;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
/**
* FontTable or in MS terminology sttbfffn is a common data structure written in all
*/
public final class FontTable
{
+ private final static POILogger _logger = POILogFactory.getLogger(FontTable.class);
private short _stringCount;// how many strings are included in the string table
private short _extraDataSz;// size in bytes of the extra data
{
if(chpFtc >= _stringCount)
{
- System.out.println("Mismatch in chpFtc with stringCount");
+ _logger.log(POILogger.INFO, "Mismatch in chpFtc with stringCount");
return null;
}
{
if(chpFtc >= _stringCount)
{
- System.out.println("Mismatch in chpFtc with stringCount");
+ _logger.log(POILogger.INFO, "Mismatch in chpFtc with stringCount");
return null;
}
package org.apache.poi.hwpf.model;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
+
import java.util.Arrays;
/**
*/
public abstract class PropertyNode implements Comparable, Cloneable
{
+ private final static POILogger _logger = POILogFactory.getLogger(PropertyNode.class);
protected Object _buf;
/** The start, in characters */
private int _cpStart;
_buf = buf;
if(_cpStart < 0) {
- System.err.println("A property claimed to start before zero, at " + _cpStart + "! Resetting it to zero, and hoping for the best");
+ _logger.log(POILogger.WARN, "A property claimed to start before zero, at " + _cpStart + "! Resetting it to zero, and hoping for the best");
_cpStart = 0;
}
}
import org.apache.poi.util.LittleEndian;
import org.apache.poi.hwpf.model.io.*;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
/**
* @author Ryan Ackley
*/
public class SectionTable
{
+ private final static POILogger _logger = POILogFactory.getLogger(SectionTable.class);
private static final int SED_SIZE = 12;
protected ArrayList<SEPX> _sections = new ArrayList<SEPX>();
}
}
if(! matchAt && matchHalf) {
- System.err.println("Your document seemed to be mostly unicode, but the section definition was in bytes! Trying anyway, but things may well go wrong!");
+ _logger.log(POILogger.WARN, "Your document seemed to be mostly unicode, but the section definition was in bytes! Trying anyway, but things may well go wrong!");
for(int i=0; i<_sections.size(); i++) {
SEPX s = _sections.get(i);
GenericPropertyNode node = sedPlex.getProperty(i);
// Check
capture.flush();
String text = baos.toString();
- assertEquals(
+ // YK: stdout can contain lots of other stuff if logging is sent to console
+ // ( -Dorg.apache.poi.util.POILogger=org.apache.poi.util.SystemOutLogger)
+ assertTrue( text.contains(
"text\nView\n" +
"Test View\nI am a test view\n" +
- "Some random text, on a page\n",
- text);
+ "Some random text, on a page\n"
+ ));
}
}
import org.apache.poi.hssf.HSSFTestDataSamples;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellReference;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
/**
* Tests for {@link HSSFDataFormat}
*/
public final class TestHSSFDataFormat extends BaseTestDataFormat {
+ private static POILogger _logger = POILogFactory.getLogger(TestHSSFDataFormat.class);
public TestHSSFDataFormat() {
super(HSSFITestDataProvider.instance);
CellStyle style = cell.getCellStyle();
String fmt = style.getDataFormatString();
- if(fmt == null)
- System.out.println(cell + ": " + fmt);
+ if(fmt == null) {
+ _logger.log(POILogger.WARN, cell + ": " + fmt);
+ }
}
}
}
import org.apache.poi.poifs.filesystem.POIFSWriterEvent;
import org.apache.poi.poifs.filesystem.POIFSWriterListener;
import org.apache.poi.poifs.filesystem.DirectoryEntry;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
public final class TestEmptyDocument extends TestCase {
+ private static POILogger _logger = POILogFactory.getLogger(TestEmptyDocument.class);
public void testSingleEmptyDocument() throws IOException {
POIFSFileSystem fs = new POIFSFileSystem();
DirectoryEntry dir = fs.getRoot();
dir.createDocument("Foo", 0, new POIFSWriterListener() {
public void processPOIFSWriterEvent(POIFSWriterEvent event) {
- System.out.println("written");
+ _logger.log(POILogger.WARN, "written");
}
});