Release History
Version |
Date |
Description |
3.7.0 |
2019-06-24 |
First release using open source repo. |
3.6.0 |
2017-09-27 |
This is a maintenance release of the Product Tools Library addressing parsed statement ordering. |
3.5.0 |
2015-09-23 |
This is a maintenance release of the Product Tools Library that fixes an issue that would occur in large validation runs on a Linux environment. |
3.4.1 |
2014-05-19 |
This is a maintenance release of the Product Tools Library mainly addressing support for Java 7. |
3.4.0 |
2014-03-11 |
This is a maintenance release of the Product Tools Library software including a number of modifications. |
3.3.0 |
2013-07-25 |
This maintenance release of the Product Tools Library software includes a modification to support up to 9 digits for fractional seconds in a date/time value. |
3.2.0 |
2011-08-24 |
This maintenance release of the Product Tools Library software includes fixes dealing with validation of Group objects. |
3.1.0 |
2011-02-08 |
This maintenance release of the Product Tools Library software includes a number of corrections and modifications. |
3.0.2 |
2010-03-23 |
This release of the Product Tools software includes corrections and modifications resulting from the beta test results of the Validation Tool integration. |
3.0.1 |
2010-02-05 |
This release of the Product Tools software supports the beta release of the Validation Tool and includes a number of updates and corrections. |
3.0.0 |
2009-10-12 |
This release of the Product Tools software represents the reconciliation of the Ames and JPL versions of the library. |
2.0.2 |
2009-10-11 |
This release of the Product Tools software supports the beta releases of the Catalog Ingest Tool. |
2.0.1 |
2009-02-06 |
The operational release of the Product Tools software incorporating the Phase II capability supporting validation of catalog files. |
2.0.0 |
2009-01-09 |
This release of the Product Tools software incorporates the Phase II capability supporting validation of catalog files. |
1.2.1 |
2008-09-09 |
This is a maintenance release of the Product Tools software to support release 2.0.0 of the Label Template Design Tool. |
1.2.0 |
2008-07-24 |
This is a maintenance release of the Product Tools software to support release 2.0.0 of the Label Template Design Tool and release 1.2.0 of the Validation Tool. |
1.1.2 |
2008-02-21 |
This is a maintenance release of the Product Tools software to support release 0.4.0 of the Label Template Design Tool. |
1.1.1 |
2007-11-08 |
This is a maintenance release of the Product Tools software to support release 0.3.0 of the Label Template Design Tool. |
1.1.0 |
2007-09-28 |
This is a maintenance release of the Product Tools software including fixes and changes requested by the early adopters of the software. |
1.0.0 |
2007-05-04 |
This release of the Product Tools software, including the Validation Tool, represents the operational release for the Phase I targeted capabilities. |
0.4.0 |
2007-02-01 |
Binary release for the beta test phase. |
0.3.0 |
2006-09-12 |
Binary release for the second phase of alpha testing. |
0.2.0 |
2006-08-01 |
Binary release for the first phase of alpha testing. |
0.1.0 |
2006-06-16 |
Source release for the Code Walk-through. |
Release 3.1.0 – 2011-02-08
Type |
Changes |
By |
|
Fix for valid value match with "_" replaced by " ". Will still issue a warning letting one know the value has been manipulated. Fixes PDSEN-277. |
pramirez |
|
Fixed truncation of file names in some of the log messages. Fixes PDSEN-316. |
pramirez |
|
Changed the way date/times were parsed to be simpler and cleaner. Also addressed a bug found in old parsing code. For the time being the invalid date messages may be less specific than in the past. Fixes PDSEN-329. |
merose, pramirez |
|
Added back the capability to add outside implementations of the LabelValidator class. Fixes PDSEN-330. |
mcayanan |
|
Added back the equals implementation for the Statement class. Fixes PDSEN-331. |
mcayanan |
|
Added the equals implementation for the Value class. Fixes PDSEN-332. |
mcayanan |
|
Updated messaging for min and max value checking to display the number as a string to stop rounding from occurring. Some extreme cases still round in messaging but min/max checks remain working as published. Fixes PDSEN-335. |
pramirez |
|
Make sure that loading statements from include pointers only happens when the option is set. |
pramirez |
|
Changing circular pointer tests to only check if a pointed to file is in your ancestor list. Old logic failed when you used a format file in multiple table definitions in the same label. |
jagander |
|
Defaulting numeric position of a FileReference to the beginning of a file. This was causing issues in file maps where null positions resulted in record overwriting. |
jagander |
|
Setting dictionary source string at instantiation so that the string can be serialized. Required for working with dictionary changes in the volume validator. |
jagander |
|
Making sure key is never null for LabelParserException, defaulting to exception message as is done elsewhere. |
jagander |
|
Making parsing of a label fragment as robust as parsing a label when a FileNotFoundException is thrown. Also differentiated between missing file and insufficient permissions. Did not add a test on permissions due issues of correctly storing file permissions in Subversion. |
jagander |
|
Made Dictionary transient in SimpleDictionaryChange and Definition as unnecessary when serializing. Added source string property to SimpleDictionaryChange as simple alternative to getting path to file (used to be from Dictionary instance). |
jagander |
|
Made Alias and Identifier serializable so that they can be used in dictionary change results for the volume validator. |
jagander |
Release 3.0.2 – 2010-03-23
Type |
Changes |
By |
|
Wrapping BufferedInputStream in a custom stream that returns EOF after the first non-whitespace character is found following the END statement. This was done in an effort to prevent memory overflow issues with large attached labels. Fixes PDSEN-259. |
jagander |
|
Fixed dictionary parser to support reading a default dictionary located inside the product tools jar file. Fixes PDSEN-297. |
mcayanan |
|
Fixed dictionary parser to support dictionary definitions where the MAXIMUM attribute is set to UNK. Fixes PDSEN-298. |
mcayanan |
|
Fixed dictionary parser to support SPECIFIC_GROUP definitions. Fixes PDSEN-300. |
mcayanan |
|
Fixed parser to correctly throw the referenced file name when it cannot be found. This bug only occurred in pointer statements that contained multiple referenced files (Example: ^DATA_SET_CATALOG = {"L0_DS.CAT", "L1B_DS.CAT"}). Fixes PDSEN-303. |
mcayanan |
|
Fixed to support proper checking of required/optional nested objects with descriptor names. Fixes PDSEN-304. |
mcayanan |
|
Getting attached data start byte from custom input stream instead of lexer due to tokenization and error recovery issues skipping until start of next line when encountering non-parseable binary data. Fixes PDSEN-306. |
jagander |
|
Update to truncate long values when error messages get thrown for exceeding the acceptable maximum length of an element definition. Fixes PDSEN-307. |
mcayanan |
|
Fixed to capture problems if errors occurred in a nested fragment file. Fixes PDSEN-310. |
mcayanan |
|
Fixed issue where lines containing only a CRLF preceded by a line ending with only an LF falsely reported a bad line ending. Fixes PDSEN-314. |
jagander |
|
Correcting a typo in wrong line length message (RECORD_LENGTH vs RECORD_BYTES) and expanding the message to indicate that CRLF chars are not counted. |
jagander |
|
Updating included dictionary to current release. |
jagander |
|
Updating a message for start byte mismatch to be more clear |
jagander |
|
Updating version display to be in X.XX format rather than XrXX format to match standard and published materials. |
jagander |
Release 3.0.1 – 2010-02-05
Type |
Changes |
By |
|
Updates the ManualPathResolver to add problems to the pointers label instead of logging them. Fixes PDSEN-255. |
pramirez |
|
Fixed group definition lookups. Used DictIdentifiers instead of strings. Fixes PDSEN-260. |
pramirez |
|
Fixing issue where "+" sign on integer caused an error. Issue was the conversion to a Long value rather than the integer test itself. Resolution was to strip "+" before parsing into a Long value. Fixes PDSEN-263. |
jagander |
|
Consume newline after SFDU header so that new line read reads next line rather than reading an empty line. This solves the erroneous error about pds version being mislocated when SFDU. Removed no longer necessary skip based on presence of SFDU header. Note that this represents an improvement since skip always assumed 2 newline chars which was not always true. Fixes PDSEN-266. |
jagander |
|
Sets the dev mode to off for LocaleUtils. This will prevent RuntimeExceptions from being thrown. Fixes PDSEN-269. |
pramirez |
|
Problem was with Windows pathing and the way it converted from URIs to Files (i.e. change in slashing). Simplified method of getting parent path by avoiding substring. This was only related to the ManaulPathResolver. Fixes PDSEN-270. |
pramirez |
|
Converted some System.out.println over to logging. Using System.out conflicts with command-line interfaces. Fixes PDSEN-271. |
pramirez |
|
Implemented a flag to allow child label problems to be captured by a label. Allowing external problems to be logged to a label could mean duplication of problems and thus usage of this flag should be used with caution. Fixes PDSEN-276. |
pramirez |
|
Updated error name and message to be more explicit about start byte mismatch being about attached data rather than column def issues. Fixes PDSEN-279. |
jagander |
|
Updating message to indicate that time might be out of range, not just date. Fixes PDSEN-280. |
jagander |
|
Pointers don't have to share paths and therefore may not have the same relative path. The call to get relative path was wrapped to ignore this and return label path. This was encapsulated in a new function as to not conflict with the existing one. Fixes PDSEN-285. |
pramirez |
|
Null protecting parsing of pointers when assignment statement parsing fails. Fixes PDSEN-288. |
jagander |
|
Pointer Statements were sharing identifiers with attributes statements. This caused them to be grouped together. When accessed through ObjectStatement.hasAttribute() this caused a ClassCastException. The PointerStatementFactory was updated to use the appropriate type of dictionary identifier. In addition, the ObjectValidator was update to allow pointers to satisfy the required element part of a definition. Fixes PDSEN-289. |
pramirez |
|
Error only appeared when alias shared same identifier with an existing definition. When a dictionary identifier is created from the toString method which contains the object context instead of just the identifier. Fixes PDSEN-292. |
pramirez |
|
Modifying displayRecognitionError to handle two more explicit cases per the examples in the issue's attached labels. Also modified the fall through case to pass the exception message through but warn the user that it is an unhandled message and they should report it. Fixes PDSEN-293. |
jagander |
|
Allows required element checks in objects to pass if a description pointer with the required identifier exists. This is a restriction of older behavior in original product tools library but was something not present in the merged product tools. This was done with consultation with the standards team and is common practice in labels. Fixes PDSEN-294. |
pramirez |
|
Added the capability to report line lengths greater than 80 characters (78 + CR/LF). |
pramirez |
|
Added the capability to report lines that don’t end in CR/LF. |
pramirez |
|
Added the capability to combine attribute value lists of two identical dictionary definitions together instead of one overwriting the other when two dictionaries are merged (i.e. STANDARD_VALUE_SET, REQUIRED_ELEMENT_SET, OPTIONAL_ELEMENT_SET, etc.). |
pramirez |
|
Related to PDSEN-269 - Set the overriding locale utils when an override is passed in. Previously, the method was just dropping the override on the floor. |
pramirez |
|
Related to PDSEN-276 - Update to fix a bug with allowing external problems to be reported such that the source URI would match the place where the error in which the file occurred. The source was erroneously being overwritten by the parent's label URI. This was only occurred with the addition of the allow external problems flag. The issue is now resolved. |
pramirez |
Release 3.0.0 – 2009-10-12
Type |
Changes |
By |
|
Improve VTool's Reporting on Malformed Numbers in Exponential Notation. This was addressed as a result of message infrastructure modification. Fixes PDSEN-133. |
pramirez, jagander |
|
VTool validation does not examine END statement. Fixes PDSEN-158. |
pramirez, jagander |
|
Truncate reporting of values that span multiple lines. Fixes PDSEN-246. |
pramirez, jagander |
|
Product Tools library does not properly handle objects and elements of the same name in the data dictionary. Fixes PDSEN-249. |
pramirez, jagander |
|
Added numerous unit tests to support the evolution of the code base. |
pramirez, jagander |
|
The grammar has been retooled to recover from errors which previously caused issues (e.g. Missing end quote). The messages generated from these type of errors is now easier to understand. |
jagander, pramirez |
|
Enhanced messaging due to messages are now externalized from the library in a resources file. In addition, the messages generated are now easier to sort through as they contain keys. This will help those that need to programmatically interface with the library. |
jagander, pramirez |
|
Much of the code was overhauled and simplified. For instance, parsing of labels is no longer mixed with dictionary validation. |
pramirez, jagander |
|
Updated code to use Java 1.5 generics constructs pervasively to support stronger type checking. |
pramirez, jagander |
Release 1.2.0 – 2008-07-24
Type |
Changes |
By |
|
Reporting needs to be revisited as using XSLT becomes too time consuming on large files. Fixes PDSEN-100. |
pramirez |
|
There is an issue validating date/time strings that contain a DOY with leading 0's. Fixes PDSEN-101. |
pramirez |
|
Error message not descriptive for numeric elements that contain string values. Fixes PDSEN-102. |
pramirez |
|
There is an issue regarding validation of date/time strings for elements that have a general data type of CHARACTER. Fixes PDSEN-109. |
pramirez |
|
An error occurs when encountering files without full names (e.g., .lbl) in the target directory. Fixes PDSEN-114. |
pramirez |
|
Lines in generated report files appear to not be terminated with CR/LF. Fixes PDSEN-115. |
mcayanan |
|
Need a way to distinguish specific vs. generic object type. Fixes PDSEN-124. |
pramirez |
|
VTool does not check keywords in undefined GROUPs/OBJECTs. Fixes PDSEN-134. |
pramirez |
|
VTool should improve its reporting of values of incorrect data type. Fixes PDSEN-135. |
pramirez |
|
Improve messaging when a bad character is found in a label. Fixes PDSEN-136. |
mcayanan |
|
VTool needs to support microsecond precision in date/time values according to SCR 3-1104. Fixes PDSEN-146. |
pramirez |
|
VTool does not support leap year dates properly. Fixes PDSEN-151. |
pramirez |
|
VTool does not throw errors for certain values that don't match the element's data type. Fixes PDSEN-154. |
pramirez |
|
Add support to allow required groups to be defined as required objects (via the REQUIRED_OBJECT_SET attribute) within an object definition in the data dictionary. This is a result of the implementation of SCR 3-1037 in the PSDD. Fixes PDSEN-155. |
pramirez |
Release 1.1.0 – 2007-09-28
Type |
Changes |
By |
|
The Validation Tool application has been split out from the product-tools project in order to provide more specific documentation and to turn the product-tools project into a library of classes that can be included by other projects. The following files or directories were moved: src/java/gov/nasa/pds/tools/VTool.java, src/java/gov/nasa/pds/tools/flags/VToolFlags.java, src/java/gov/nasa/pds/tools/config/, src/java/gov/nasa/pds/tools/status/, src/resources/scripts/, xdocs/install/ and xdocs/user/. |
shardman |
|
Added support for aliases in the dictionary. They are now handled more uniformly and there is an explicit class for dealing with them. |
pramirez |
|
Capability to write a dictionary to a file is now supported using the DictionaryWriter class. |
pramirez |
|
Label class now persists numbers of errors and warnings found during validation. This was added to support some of the return value information that will now be provided. |
pramirez |
|
Added README files to be included with the binary and source distribution packages. The binary version points the user to the documentation provided with the package. The source version informs the user that they are on their own with regard to building the source in their own environment. |
shardman |
|
Added the somewhat human-readable representation of the grammer utilized to parse PDS labels to the Development section of the documentation. This is currently a manual process that is documented in the DEPLOY.txt file, which can be found in the root directory of this project. |
shardman |
|
Added support for namespaces in identifiers. There is now a class that handles parsing out of the namespace in an identifier. This was being done in multiple places in the code before so was a way to clean things up. |
pramirez |
|
Updated fields in definitions to support all that was found in the dictionary. There were some missing fields before now everything read in is preserved. |
pramirez |
|
Times can no longer reside on the right hand side of an attribute statement without being proceeded by a date. This was being allowed by the grammar but is not part of the standard. |
pramirez |
|
The map of definitions returned from the dictionary class contained redundant definitions and used a naming convention that was not explicitly called out. This was cleaned up and now the map returns only a single copy of the definitions. In addition, the weird naming convention has been tossed. |
pramirez |
|
Aliases in the dictionary were not be correctly read in or handled all the time. There was some errant information found in the dictionary. This has been removed and fixed. |
pramirez |
|
Validation layer now ensures that there is not duplicate attribute identifiers within the same block. For instance, will report an error when multiple "TARGET_NAME"s are found. |
pramirez |
|
GROUP definitions in the data dictionary can now be specified as a SPECIFIC_OBJECT_DEFINITION as well as a GENERIC_OBJECT_DEFINITION. |
pramirez |
|
Messages regarding unknown unit values will now have a severity of WARNING instead of ERROR. |
pramirez |
Release 1.0.0 – 2007-05-04
Type |
Changes |
By |
|
Added support for validation of label fragments. |
pramirez |
|
Added the capability to return an appropriate exit status value based on validation results or tool application failure. |
mcayanan |
|
Created batch and shell scripts for simpler execution of VTool. |
mcayanan |
|
Added the capability for targets to be specified implicitly. |
mcayanan |
|
Added -f or --force flag option to perform standalone label fragment validation. |
mcayanan |
|
Validation of units is now performed against the master list of unit values. This comparison is case sensitive. |
pramirez |
|
File names referenced by pointers may be in any case and still be discoverable by the tool. File names in mixed case will generate a warning message. |
pramirez |
|
Cleaned up reporting including replacing SEVERE with ERROR in all instances and properly representing fragment messages when they are included in a label validation. |
pramirez |
|
Implemented new log file behavior to allow logs to be written to memory. This allows generation of reports without the need of explicitly specifying the log file flag option. |
mcayanan |
|
Changed the log file flag (-l or --log) option to optionally allow a file specification. See Use and Operation guide for log generation details. |
mcayanan |
|
Added time and date of tool execution in final reports. |
mcayanan |
|
Enhanced user guide with more details regarding command-line flag options, report examples, etc. |
mcayanan |
|
Fixed support for UNC pathnames. |
mcayanan |
|
Fixed the minimal report stylesheet to work correctly on the Linux platform. |
mcayanan |
Release 0.4.0 – 2007-02-01
Type |
Changes |
By |
|
Added the following capabilities related to semantic validation: white space stripping for element value comparison, support for element and object aliases and verifying the existence of referenced data objects and files. |
pramirez |
|
Implemented reporting including generation of an XML formatted log file which can then be transformed via XSLT stylesheeets into the specified human-readable report formats. |
pramirez |
|
Implemented progress reporting, which prints to standard error. This feature will report the directory being validated and then represent each file being validated with an asterisk instead of the actual file name. |
mcayanan |
|
Added documentation for Installation and a template for Development along with the capability to generate a PDF of the newly named Product Tools Guide. |
shardman |
|
Added and/or modified the following command-line options: (-a, Enable aliasing), (-I, Specify paths to look for files referenced by pointer statements in a label), (-l, Specify a file name for the machine-readable log), (-p, Enable progress reporting), (-r, Specify a file name for the human-readable report), (-s, Specify a format for the human-readable report), (-v, Specify the severity level and above to include in the human-reable report). |
mcayanan |
|
Changed the "p" (patterns) flag to an "e" (regexp) flag. Also changed the "l" (local) flag to an "L" flag. |
mcayanan |
|
Updated VTool to validate files in a directory first before moving on to its sub-directories. Before, validation of files in a directory were interleaved with validation of files in its sub-directories. |
mcayanan |
|
Added a Common Errors section to the User Guide as well as clarifying some aspects of setting the CLASSPATH environment variable in the Setup section. |
shardman |
|
Corrected a problem where the tool was not completing syntactic validation on a label. |
pramirez |
|
Fixed to properly handle URLs (for targets, dictionaries, Includes). |
mcayanan |
Release 0.3.0 – 2006-09-12
Type |
Changes |
By |
|
Added a user guide for VTool. |
mcayanan |
|
Added the following command-line options: (-o, Write the validation results to a file), (-p, Specify files/file patterns to include in validation), (-X, Specify files/file patterns to exclude in validation), (-c, Specify a configuration file to set default behaviors), (-F, Do not follow STRUCTURE pointers). |
mcayanan |
|
Pointers are now followed. This feature can be turned on and off. This will allow arbitrary length nesting of pointers. Object and group statements should not begin and end in different files. Their contents may be in separate files but the open and close should be contained within the same file. This will allow the label to be valid even when semantic validation is done. |
pramirez |
|
Added support for PDS_VERSION_ID. Now files that don't have this in the first line will be skipped and logged as a warning if passed to the parser. |
pramirez |
|
Added support for SFDUs. Now the SFDUs will be logged and then skipped. This has not added validation of SFDUs. |
pramirez |
|
Changed the "f" (file) flag to a "t" (target) flag. |
mcayanan |
|
Dates are now checked to ensure that they are not only properly formed but are actual valid dates. One can now get a Date object through the API for convenience. |
pramirez |
|
More logging information about file being parsed and dictionaries being used. |
pramirez |
|
Fixed multiple dictionary support. |
mcayanan |
|
Properly handle the "Z" at the end of the date when attempting to create an actual Date object. |
pramirez |
|
Allow group statements to be within object statements. |
pramirez |
|
Allow for objects and groups with the same name to appear at the same level within a label or fragment. This required changes to method signatures on the Label class. |
pramirez |
|
Fixed convenience methods on Label class. This would have only caused a problem if people called the tool directly. |
pramirez |
|
PSDD will now be adhered to properly as an optional element. This essentially allows any element definition to appear within an object or group statement without generating an error. |
pramirez |