/
changes.xml
704 lines (696 loc) · 35.8 KB
/
changes.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
<?xml version="1.0"?>
<!-- -->
<document>
<properties>
<title>Changes</title>
</properties>
<body>
<release version="4.0.16" date="2021-11-01" description="Maintenance">
<action dev="benoitx" type="fix" due-to="srikanthprathi">Fixed Security issue for XXE.</action>
</release>
<release version="4.0.15" date="2021-09-17" description="Maintenance">
<action dev="benoitx" type="fix">Fixed when new line of a multi line starts with "".</action>
</release>
<release version="4.0.14" date="2021-09-16" description="Maintenance">
<action dev="benoitx" type="fix">Fixed esoteric Delimiter multi-line issue if the CR is just at the end of the String and the next line is the qualifier.</action>
</release>
<release version="4.0.13" date="2021-09-16" description="Small Improvement">
<action dev="benoitx" type="add">WriterOptions provides option to replace newLine/CarriageReturn in a string.</action>
</release>
<release version="4.0.12" date="2021-09-09" description="Maintenance">
<action dev="benoitx" type="add">DataError may contain last Column Name and Value for better investigation.</action>
</release>
<release version="4.0.11" date="2021-09-09" description="Maintenance">
<action dev="benoitx" type="add">Improve error message for the too few columns error.</action>
</release>
<release version="4.0.10" date="2021-09-09" description="Maintenance">
<action dev="benoitx" type="add">Improve error message for the too few columns error.</action>
</release>
<release version="4.0.9" date="2021-09-09" description="Maintenance">
<action dev="benoitx" type="add">Error for 'too few columns' will attempt to show the last column parsed (most likely with issue).</action>
</release>
<release version="4.0.8" date="2021-09-08" description="Maintenance">
<action dev="benoitx" type="fix">Fix issue if multi-line starts with first or last character..</action>
</release>
<release version="4.0.7" date="2021-09-08" description="Maintenance">
<action dev="benoitx" type="fix">Multi line did not cope with a true empty line part of a group.</action>
</release>
<release version="4.0.6" date="2021-09-08" description="Maintenance">
<action dev="mvlakh" type="fix" issue="63" due-to="mvlakh">Issues with multi-lines.</action>
</release>
<release version="4.0.5" date="2021-05-30" description="Maintenance">
<action dev="benoitx" type="fix">Fixing default LocalDate Parsing to be ISO 8601 and add the ability to give a DateTimeFormatter to the
parser.</action>
<action dev="omarsmak" type="update">Update libraries to work under Java 16/17.</action>
<action dev="mvlakh" type="fix" issue="60" due-to="mvlakh">Issues when parsing CSV files that extensively use text qualifiers.</action>
</release>
<release version="4.0.4" date="2019-01-06" description="Maintenance">
<action dev="benoitx" type="fix">Fixing issue with comma inside double quote (delimiter inside qualifier).</action>
<action dev="benoitx" type="update">Fixing ability to handle '\uFEFF' dodgy character.</action>
</release>
<release version="4.0.3" date="2018-08-04" description="Maintenance">
<action dev="benoitx" type="update">Fixing SonaCloud.io issues</action>
<action dev="benoitx" type="add" issue="44">Create an Excel module and remove dependency on JExcelAPI for the main Flatpack, see
ExcelTransformer.
</action>
<action dev="benoitx" type="add">Create CsvParserFactory as an easy way to get one of the most common CSV Parser.</action>
<action dev="benoitx" type="remove">Removed Version class.</action>
</release>
<release version="4.0.2" date="2018-07-21" description="Maintenance">
<action dev="benoitx" type="add">
new option to automatically "de-duplicate" column names by appending a number at the end of it if it
already exist. This is off by default but can be
set via call to parser.setAddSuffixToDuplicateColumnNames(true).
</action>
<action dev="benoitx" type="fix">
RowRecord.getBigDecimal should trim the string to avoid potential parsing issues.
</action>
<action dev="benoitx" type="fix" issue="27" due-to="benoitx">Delimiter Writer does not handle field ending with new line.</action>
<action dev="benoitx" type="fix" issue="33" due-to="benoitx">CSV Writer not compliant with RFC4180, Thanks to Martin Diphoorn for the patch.
Also fixed some
reader issues for double qualifiers.
</action>
<action dev="benoitx" type="update" issue="11" due-to="benoitx">Remove JDOM's depencency.</action>
<action dev="martindiphoorn" type="update" issue="36" due-to="martindiphoorn">Adding tests for strict RFC4180 (CSV) compliance.</action>
<action dev="benoitx" type="update" issue="28">It transpired that String.replace is very inefficient and we replaced it with the Apache
Commons equivalent. 50% speed improvement.</action>
</release>
<release version="4.0.1" date="2014-12-10" description="Maintenance">
<action dev="ks-appendium" type="fix" issue="10">When parsing a header column, trim the leading and trailing spaces.</action>
<action dev="benoitx" type="fix" issue="16" due-to="dkulp">Mark jxl imports optional in OSGi.</action>
<action dev="ks-appendium" type="fix" issue="15" due-to="ks-appendium">Need to handle multi-line.</action>
<action dev="benoitx" type="fix" issue="14" due-to="moffatn">Fix for java.lang.NullPointerException
at
net.sf.flatpack.DefaultDataSet.getString.
</action>
<action dev="ks-appendium" type="fix" issue="13" due-to="antubis23">Fix DelimiterWriter not consistent with ParserUtils</action>
</release>
<release version="4.0.0" date="2014-10-01" description="Move to JDK8">
<action dev="benoitx" type="add" issue="8">dataSet.getRecord should never return null, use java.util.Optional.</action>
<action dev="benoitx" type="add" issue="4">Writer interface is now more 'fluent'.</action>
<action dev="benoitx" type="add" issue="1">Writer is now Autocloseable.</action>
<action dev="benoitx" type="add" issue="2">StreamingDataSet has stream() method for JDK8 manipulation.</action>
<action dev="benoitx" type="add" issue="3">Records interface defines getXXX methods with a Supplier interface.</action>
<action dev="benoitx" due-to="ovstetun" type="add" issue="6">Preserve leading/trailing whitespace, Thanks to Trond Ovstetun.
</action>
<action dev="benoitx" due-to="SvenNold" type="add" issue="9">isRecordID NPE if using absolute.</action>
</release>
<release version="3.4.2" date="2014-09-02" description="Maintenance">
<action dev="benoitx" type="fix" issue="9" due-to="SvenNold">Fix for NPE in isRecordID if using absolute.</action>
</release>
<release version="3.4.0" date="2014-05-23" description="Maintenance, JDK1.5 and fluent">
<action dev="benoitx" type="add">Add convenience method
DefaultParserFactory.newCsvParser.
</action>
<action dev="benoitx" type="add">Make interface more 'fluent'.
</action>
<action dev="benoitx" type="fix">Use JDK 1.5.</action>
<action dev="zepernick" type="add">Ability to over ride the table names for DATAFILE and
DATASTRUCTURE when using the DB for the MetaData.
</action>
<action dev="zepernick" type="fix">DBDelimitedParser was trying to
build column names from the first record when ignore first was set to
false.
Column mappings should always come from the DB for this class.
</action>
<action dev="zepernick" type="add">BuffReader Parser now support
Database Column Mappings
</action>
<action dev="zepernick" type="fix">DelimiterWriter now also quotes
elements that contain a
qualifier. It was previously only checking to
see if the
data contained a
delmiter.
</action>
<action dev="zepernick" type="add">Added a
setNumericColumns(String[]) to the ExcelTransformer.
Any columns contained in the array will be
written
to Excel as a
Numeric instead of a Text field.
</action>
<action dev="zepernick" type="add">Added the ability to use the
DelimiterWriter with no column
mappings. Added new class
DelimiterWriterOptions to
achieve this.
</action>
<action dev="zepernick" type="add">Fixed and Delimiter writers now
support multiple record
types in the same file.
</action>
</release>
<release version="3.2.0" date="2010-03-03" description="New parse options">
<action dev="benoitx" type="add">Added a getBigDecimal method on
DataSet.
</action>
<action dev="zepernick" type="fix">Fixed SF Bug 1869636. The
parameters for the XML Map and
data file were reversed in the
BuffReaderDelimParser.
</action>
<action dev="zepernick" type="update">Added optional 3rd parameter to
the OrderColumn constructor which
allows the specification of the type
of column
being sorted:
OrderColumn.COLTYPE_STRING, OrderColumn.COLTYPE_DATE,
OrderColumn.COLTYPE_NUMERIC
</action>
<action dev="zepernick" type="update">New Parser option to log the raw
line data of the record in the
DataSet object.
Parser.setStoreRawDataToDataSet()
</action>
<action dev="zepernick" type="fix">Stopped the fixed width parser
from removing leading spaces in a data element.
Added the
ParserUtils.rTrim()
method.
</action>
<action dev="zepernick" type="update">Added getLong() to DataSet
interface
</action>
<action dev="zepernick" type="fix">Added check for duplicate column
names when using file
header for column names.
</action>
<action dev="zepernick" type="fix">Applied patch from Dirk Olmes to
prevent duplicate
column names in the XML mapping.
IllegalArgumentException is
now thrown if
a duplicate
column name exists in the map. Thanks Dirk...
</action>
<action dev="zepernick" type="fix">doParse() on DBFixedLengthParser
was returning a null
and was never getting a DataSet returned
</action>
<action dev="zepernick" type="update">Added an option on the Paser
setFlagEmptyRows().
This will make the DataSet.isRowEmpty() method
available. This
method
will return
true when there is no data on any columns in the row.
</action>
<action dev="zepernick" type="update">New Parser option to log the raw
line data in the
DataError object for parse errors.
Parser.setStoreRawDataToDataError()
</action>
</release>
<release version="3.1.1" date="2007-10-01" description="Fix">
<action dev="zepernick" type="fix">[1818818] ClassCastException when
accessing header or trailer records
</action>
<action dev="zepernick" type="fix">Fixed bug in delimited parse when
using Reader for data and map. Parameters
were being reversed in the
code.
</action>
<action dev="zepernick" type="fix">[1811210] When parsing multi-line
delimited files, blank lines inside the
elements were being removed
from the
result of the parse. Blank lines inside
a delimited element
were also causing a StringIndexOutOfBoundsException.
</action>
</release>
<release version="3.1.0" date="2007-09-10" description="Name and structure change and new writers">
<action dev="benoitx" type="add">Paul and I would like to thank Dirk
Holmes and Holger Hoffstatte from MuleSource for the initial
contribution to
the writer package.
The writer package will let you EXPORT a DataSet in a fixed length or
Delimited (csv, etc) format.
Thanks guys!
</action>
<action dev="zepernick" type="update">added contains() method to
DataSet to check for the existance of
a column name on the current row.
DataSet must
be on a valid row.
</action>
<action dev="zepernick" type="update">Added clearRows(), clearErrors(),
and clearAll() methods to DataSet
</action>
<action dev="benoitx" type="update">Goodbye PZFileReader, Hello
FlatPack!!!
</action>
<action dev="zepernick" type="update">Moved package strcuture from
net.sf.pzfilereader to net.sf.flatpack
</action>
<action dev="zepernick" type="update">XML mapping dtd renamed from
pzfilereader.dtd to flatpack.dtd
</action>
<action dev="zepernick" type="update">pzconvert.properties renamed to
fpconvert.properties
</action>
<action dev="zepernick" type="update">The following classes had the
"PZ" removed from their name;
PZMapParser, PZMetaData,
BuffReaderDelimPZParser,
BuffReaderFixedPZParser,
BuffReaderPZDataSet,
BuffReaderPZParseFactory, AbstractDelimiterPZParser,
AbstractFixedLengthPZParser,
AbstractPZParser,
DBDelimiterPZParser, DBFixedLengthPZParser, DefaultPZParserFactory, DelimiterPZParser,
FixedLengthPZParser, PZParser, PZParserFactory, PZConverter
</action>
<action dev="zepernick" type="update">The following classes had the
"PZ" changed to "FP" in their name;
PZConstants, PZStringUtils,
PZConvertException
</action>
<action dev="benoitx" type="update">Created a PZMetaData class for
internal use, it contains the list of column names and index for
fast
access.
</action>
<action dev="zepernick" type="update">Feature Request 1596087. Added
attribute "elementCount" on record
element mapping, which can determine a
header,
trailer, or detail record by
the number of elements contained
on the record. This only applies to delimited files.
</action>
<action dev="zepernick" type="update">Feature Request 1569891. Added
setNullEmptyStrings to the
PZParser. This will make the
DataSet.getString() return
null if the column is
empty.
</action>
<action dev="zepernick" type="update">Added option to the PZParser
setIgnoreParseWarnings(boolean).
When true, the parser will not log warning
into the
error collection in
the DataSet. The
default is false.
</action>
<action dev="zepernick" type="update">Removing deprecated methods in
ParserUtils;
isMultiLine(), splitLine(), getCMDKeyForFixedLengthFile()
</action>
<action dev="zepernick" type="update">Added option to PZParser
setColumnNamesCaseSensitive().
This will force the user to lookup the column
value in
the exact same
case as the column was specified
in the mapping or file. Deprecated the current method signatures
for;ParserUtils.buidColumnIndexMap,
ParserUtils.getColumnIndex,ParserUtils.getColumnMDFromFile. Added
PZParser parameter to new
signatures,
however, this parameter CAN BE null.
Registered PZParser with the
DefaultDataSet. This will provide
the ability to see what
options were set pertaining to data retrieval.
</action>
<action dev="zepernick" type="update">Changing the PZParseFactory to
use java.io.Reader instead of File
or InputStream. The File and
InputStream
methods are still available,
but are now deprecated.
</action>
<action dev="zepernick" type="update">Removed deprecated
PZMapParser.parse(File).
Added PZMapParser.parse(Reader). Deprecated
PZMapParser.parse(InputStream).
</action>
<action dev="zepernick" type="fix">Stopped column lookup from being
case sensitive
</action>
<action dev="zepernick" type="update">Feature Request 1566626. Added
setIgnoreExtraColumns() method to the PZParser.
Added the ability to
ignore extra
columns/bytes from delimited &
fixed width files. Data is truncated when it goes
outside of the column definition.
</action>
</release>
<release version="3.0.0" date="2007-02-11" description="Move to Maven and Subversion">
<action dev="zepernick" type="update">Added new dependency, SLF4j. This
is used to log parsing issues. SLF4j is a facade
to the following
loggers;
log4j, jcl, nop, and jdk 1.4. See 3.0 User
Doc for further instruction.
</action>
<action dev="zepernick" type="update">DataSet.getDate() will now return
a null on empty Strings
</action>
<action dev="zepernick" type="update">Removed
ParserUtils.getColumnMDFromFile(InputStream, String, String) this
method
was deprecated in 2.2
</action>
<action dev="zepernick" type="update">Removed setters and default
constructor from DataError. Error properties
are set through the new
constructor.
</action>
<action dev="zepernick" type="add">added the ability to limit the
column which are exported to Excel in the ExcelTransformer class
</action>
<action dev="zepernick" type="add">added getObject(String column,
Class toConvert) method. PZFileReader will ship with
default classes to
handle
conversions. Custom conversions can be easily
added by adding to the pzconvert.properties
</action>
<action dev="zepernick" type="add">Unqualified elements have leading
and trailing whitespace removed in a delimited parse
</action>
<action dev="zepernick" type="add">Ability to issue an OrderBy On
DataSet's containing record mapping elements
</action>
<action dev="benoitx" type="add">Move build to Maven 1.1.x and
generate the entire website from the build.
</action>
<action dev="benoitx" type="fix">Modify code following warning by
Findbugs, checkstyle and PMD.
</action>
<action dev="marchy" type="add">Move to Subversion.</action>
</release>
<release version="2.2.2" date="2006-08-18" description="Fix">
<action dev="zepernick" type="fix">Fixed bug in LargeDataSet.
Multiline delimited records were not being parsed correctly. They
were
showing
up as
errors when being parsed.
</action>
</release>
<release version="2.2.1" date="2006-08-12" description="Fix">
<action dev="zepernick" type="fix">Fixed a bug in the delimited
parser. Errors were caused by multiple column multi-line records.
Special
thanks
to
Malcolm Dobson for bringing the bug to attention and providing the
fix.
</action>
</release>
<release version="2.2.0" date="2006-06-11" description="Fix">
<action dev="zepernick" type="fix">When using column names out of
the CSV file 2 input streams were being created. One to read the
file and
the other
to get the column names. This has been reduced to one.
</action>
<action dev="zepernick" type="add">Added a new constructor to have
the ability to provide an InputStream when reading columns from the
file.
</action>
<action dev="zepernick" type="add">Added a LargeDataSet class. This
should be used to read large files. It provides the ability to read
large
files
without reading them into memory. The following methods are not
applicable for this class;
previous(), writeToExcel,
orderRows(), absolute(),
remove(), getIndex(),
goBottom(), goTop(),
setValue(). An exception will be thrown if these are called.
</action>
<action dev="zepernick" type="add">Added the ability to specify
Header, Trailer, or other records which can be uniquly identified by
a
piece
of data
on the record. These get mapped to their own set of column
names seperate from the detail records.
See the documentation
included in the download
for details on the new
options in the mapping file.
</action>
<action dev="zepernick" type="add">Added setDebug(boolean) to
PZMapParser class. When flagged true, the Parser will spit the
results of the
XML
parse to the console
</action>
<action dev="zepernick" type="add">Added 2 new samples;
CSVHeaderAndTrailer, FixedLengthHeaderAndTrailer.
</action>
</release>
<release version="2.1.0" date="2006-02-26" description="Maintenance">
<action dev="zepernick" type="fix">A VERY Special Thanks to Roland
Klein for contributing the following enchancements:
- Ability to read a
file from
an InputStream, File object support
still exists. This enhancement makes pzfilereader Java Web Start
friendly :)
- Added a
method in ParserUtils to
create an InputStream from a File
object.
- Changed all ArrayLists and Vectors to List objects. This affects
the
getErrors() method which was
returning
a Vector. This may potentially cause compilation errors if migrating
from a previous version..
</action>
<action dev="zepernick" type="add">Implemented Roland's changed in
cvs HEAD
</action>
<action dev="zepernick" type="fix">Removed constructors deprecated
in 2.0.0
</action>
<action dev="zepernick" type="add">Added ability to parse delimited
file which have records spanning multiple lines in the file. The
element
which is
breaking to the next line must be qualified. The data can be
qualified with any char, a double quote
is used in the
example.
ie. element, element,
"element with line break
more element data
more element data
more element data"
start next rec here
</action>
<action dev="zepernick" type="add">Begining to write some simple
Junit tests under com.test.* These will be excluded from the
production
jar.
</action>
<action dev="zepernick" type="add">Added getRowCount() method. This
returns the total amount of rows parsed from the file. Rows which
had
errors
during the parse are excluded from this count and are added to the error
collection.
</action>
<action dev="zepernick" type="add">Added getReaderVersion() method.
This will return a String representation for the pzFileReader
version
being
used.
</action>
<action dev="zepernick" type="add">Added ability to transform a
DataSet into excel. This utilizes JExcelApi which can be found here:
http://sourceforge.net/projects/jexcelapi. The jxl.jar has been
included in the download for your convience and must be on the
classpath if using
this
new method --> writeToExcel(File) in the DataSet class
</action>
<action dev="zepernick" type="add">Changed examples to work with
2.1.0. Some examples still refered to deprecated constructors from
2.0.0
which have
been removed in this version.
</action>
<action dev="zepernick" type="add">Added 2 new examples to
demonstrate the export to Excel and the parsing of multiline
records.
</action>
<action dev="zepernick" type="add">Updated Java Docs.
</action>
</release>
<release version="2.0.0" date="2005-11-27" description="Maintenance">
<action dev="zepernick" type="add">Re-coded the way the MetaData was
being stored. It was being duplicated for every row in the file. It
is now only
being stored
once for the entire file. This will drastically reduce memory usage.
</action>
<action dev="zepernick" type="add">Created a ParserUtils class. This
class can be used to perform low level reads if needed (no mapping
file
required).
For now, this change only applies to delimited files.
</action>
<action dev="zepernick" type="add">Changed the delimited file parser
to use a StringBuffer. It was performing a lot of String
concatinations which
could have been
bogging down performance, and creating un-necessary overhead.
</action>
<action dev="zepernick" type="add">created ANT build build file, and
published to CVS
</action>
<action dev="zepernick" type="add">Removed the use of the Column
object. This was able to cut down on the parse time.
</action>
<action dev="zepernick" type="add">Add patch provided by Luke
Driscoll [1371162]. This provides 2 new constructors for fixed
length files.
There is
a boolean
that can now be passed which will tell the parser to allow lines which
are shorter then the allowed line length for a
record.
Missing
columns will be filled in with empties.
</action>
<action dev="zepernick" type="add">The following objects in the
DataSet are now public; rows, errors, columnMD, empty constructor.
This
allows for
the DataSet class to be extended if needed to
provide custom functionality.
</action>
<action dev="zepernick" type="add">Took patch [1371162] a step
further and also implemented for delimited files. If the row is
missing any
columns,
the parser
will automatically add the columns in as empty's. This functionality
happens only when the handleShortLines parameter
is set
to true.
</action>
<action dev="zepernick" type="add">Revamped user documenation. The
user documenation is now much more detailed. User documentation and
Java Docs are
now
included with the distribution instead of having them in seperate downloads.
</action>
</release>
<release version="1.0.5" date="2005-10-01" description="Maintenance">
<action dev="zepernick" type="fix">Fixed bug in delimited parse. If
the last column of the last column of the file was empty, the row
was
being
logged to the
"errors" collection. Thank you very much to Luke Driscoll who found this bug
and submitted the patch. See bug
[
1275910 ] CSV File with
blank last column, for more information.
</action>
<action dev="zepernick" type="fix">While fixing bug 1275910, a
couple of other bugs were brought to light. Spaces before or after
the
delimiter with
a text qualifier
was breaking the parse. Example...assuming comma as delimter and double
quote as the text qualifier.
"value1" , "value2" ,"value"
</action>
<action dev="zepernick" type="add">Added new method, freeMemory(),
when called, the DataSet is cleared.
</action>
<action dev="zepernick" type="add">Updated examples and JavaDocs.
</action>
</release>
<release version="1.0.4" date="2005-07-20" description="Maintenance">
<action dev="zepernick" type="fix">Fixed bug in delimited parse. If
parsing a delimited file with text qualifiers, and the last column
of a
line had
hard spaces at the end, a string out of bounds exception was
being thrown.
</action>
<action dev="zepernick" type="fix">Added
setStrictNumericParse(boolean) method. This is defaulted to false.
When calling getDouble or
getInt
on a
column, all non numeric chars will be striped before performing
the parse. If the column is empty after the strip, it will be
returned as 0. Setting
this to true will parse all numeric values as
is.
</action>
</release>
<release version="1.0.3" date="2005-05-02" description="Maintenance">
<action dev="zepernick" type="add">added methods to set data in
DataSet to all lower or all upper case setLowerCase(),
setUpperCase()
</action>
<action dev="zepernick" type="add">Changed the OrderBy class to make
sure the elements being compared were the same case, so as not to
make
case a
factor when comparing. If they are not the same case elements are
converted to lower before comparing.
</action>
<action dev="zepernick" type="add">Added setLowerCase() and
setUpperCase() to Java Docs
</action>
<action dev="zepernick" type="add">Added JSP example to samples
</action>
</release>
<release version="1.0.2" date="2005-01-27" description="Maintenance">
<action dev="zepernick" type="add">Changed parsing logic for
delimited files with text qualifiers. The parser will now parse
lines that are
qualified
and not qualified. For example:
"here",1234,"test",50,test
This will now parse into 5 seperate columns. However if the text
contains a
delimiter or seperator inside the text, it must be
qualified to work correctly.
</action>
</release>
<release version="1.0.1" date="2005-01-23" description="Maintenance">
<action dev="zepernick" type="fix">Fixed bug in delimted parse. If
no elements were found in a line, a string index out of bounds
exception was
thrown.
</action>
<action dev="zepernick" type="fix">Added
getDate(String,SimpleDateFormat). By default, the current
getDate(String) method
was expecting the
date in
yyyyMMdd format. This method allows for
another date format to be
specified. This format should match the format in the text
file. If you would
like
to change the
formating of the date after it is returned from the DataSet, you can use
SimpleDateFormat.format(Date)
</action>
<action dev="zepernick" type="fix">Corrected javadocs for the
getDate methods. Had return type of double, changed to Date.
</action>
<action dev="zepernick" type="fix">Added samples
</action>
</release>
</body>
</document>