Release Changes

Release History

Version Date Description
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.0.1 - 2010-02-05

Type Changes By
add Added the capability to report line lengths greater than 80 characters (78 + CR/LF). pramirez
add Added the capability to report lines that don?t end in CR/LF. pramirez
add 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
add PDSEN-276 - 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. pramirez
update PDSEN-255 - Updates the ManualPathResolver to add problems to the pointers label instead of logging them. pramirez
update PDSEN-271 - Converted some System.out.println over to logging. Using System.out conflicts with command-line interfaces pramirez
update PDSEN-293 - 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. jagander
update PDSEN-294 - 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. pramirez
fix PDSEN-260 - Fixed group definition lookups. Used DictIdentifiers instead of strings. pramirez
fix PDSEN-263 - 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. jagander
fix PDSEN-266 - 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. jagander
fix PDSEN-269 - Sets the dev mode to off for LocaleUtils. This will prevent RuntimeExceptions from being thrown. pramirez
fix 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
fix PDSEN-270 - 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. pramirez
fix 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
fix PDSEN-279 - Updated error name and message to be more explicit about start byte mismatch being about attached data rather than column def issues. jagander
fix PDSEN-280 - Updating message to indicate that time might be out of range, not just date. jagander
fix PDSEN-285 - 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. pramirez
fix PDSEN-288 - Null protecting parsing of pointers when assignment statement parsing fails. jagander
fix PDSEN-289 - 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. pramirez
fix PDSEN-292 - 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. pramirez

Release 3.0.0 - 2009-10-12

Type Changes By
add Added numerous unit tests to support the evolution of the code base. pramirez, jagander
update 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
update 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
update Much of the code was overhauled and simplified. For instance, parsing of labels is no longer mixed with dictionary validation. pramirez, jagander
update Updated code to use Java 1.5 generics constructs pervasively to support stronger type checking. pramirez, jagander
update PDSEN-133 - Improve VTool's Reporting on Malformed Numbers in Exponential Notation. This was addressed as a result of message infrastructure modification. pramirez, jagander
update PDSEN-246 - Truncate reporting of values that span multiple lines. pramirez, jagander
fix PDSEN-158 - VTool validation does not examine END statement. pramirez, jagander
fix PDSEN-249 - Product Tools library does not properly handle objects and elements of the same name in the data dictionary. pramirez, jagander

Release 2.0.2 - 2009-10-11

Type Changes By
add Added the capability to configure the label parser to do file-specific checks based on the specified file to be parsed. mcayanan
add Implemented the equals method to compare two Statement objects. mcayanan

Release 2.0.1 - 2009-02-06

Type Changes By
update Modified how catalog pointers are handled to not include referenced content but to validate the existence of the referenced file. Added check for valid catalog pointer names. pramirez

Release 2.0.0 - 2009-01-09

Type Changes By
add PDSEN-116 - Support validation of catalog files. pramariez
fix PDSEN-107 - Inconsistent validation of values with quotation marks based on the associated element's general data type. The issue related to quoted date/time strings has been resolved. The issue related to quoted variables was determined to be a LTDTool issue and a new issue was created and assigned to that component. pramirez
fix PDSEN-147 - VTool exits ungracefully when validating a catalog directory in a GCJ environment. This is believed to be associated with the limitation in catalog file support (PDSEN-116) as opposed to the GCJ environment so it should also be resolved in this release. pramirez

Release 1.2.1 - 2008-09-09

Type Changes By
add PDSEN-119 - Add another constructor to GroupStatement class to initialize the Map used to store the statements. pramirez
fix PDSEN-104 - The AttributeStatement.hasNamespace() method returns an incorrect value. pramirez
fix PDSEN-121 - Quotes missing for keywords with colon ":" when writing to DD. pramirez
fix PDSEN-124 - Need a way to distinguish specific vs. generic object type. pramirez
fix When parsing a label fragment passing the follow pointer property was not being propagated. pramirez
fix Fix spacing issue of the validation report. Seen on the Mac platform. mcayanan

Release 1.2.0 - 2008-07-24

Type Changes By
add PDSEN-146 - VTool needs to support microsecond precision in date/time values according to SCR 3-1104. pramariez
add PDSEN-155 - 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. pramariez
update PDSEN-100 - Reporting needs to be revisited as using XSLT becomes too time consuming on large files. pramariez
update PDSEN-102 - Error message not descriptive for numeric elements that contain string values. pramariez
update PDSEN-135 - VTool should improve its reporting of values of incorrect data type. pramariez
fix PDSEN-101 - There is an issue validating date/time strings that contain a DOY with leading 0's. pramirez
fix PDSEN-109 - There is an issue regarding validation of date/time strings for elements that have a general data type of CHARACTER. pramirez
fix PDSEN-114 - An error occurs when encountering files without full names (e.g., .lbl) in the target directory. pramirez
fix PDSEN-115 - Lines in generated report files appear to not be terminated with CR/LF. mcayanan
fix PDSEN-124 - Need a way to distinguish specific vs. generic object type. pramirez
fix PDSEN-134 - VTool does not check keywords in undefined GROUPs/OBJECTs. pramirez
fix PDSEN-136 - Improve messaging when a bad character is found in a label. mcayanan
fix PDSEN-151 - VTool does not support leap year dates properly. pramirez
fix PDSEN-154 - VTool does not throw errors for certain values that don't match the element's data type. pramirez

Release 1.1.2 - 2008-02-21

Type Changes By
add Added a stylesheet for reporting validation results of a template in the Label Template Design Tool. mcayanan
update Updated the command-line default value separator to be a comma instead of a space in the ToolsOption class. mcayanan
fix When writing data dictionaries out to file, made sure that objects, groups and elements with namespaces are quoted. pramirez

Release 1.1.1 - 2007-11-08

Type Changes By
add Added handler classes for the tools logging capability. mcayanan

Release 1.1.0 - 2007-09-28

Type Changes By
remove 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
add Added support for aliases in the dictionary. They are now handled more uniformly and there is an explicit class for dealing with them. pramirez
add Capability to write a dictionary to a file is now supported using the DictionaryWriter class. pramirez
add 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
add 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
add 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
update 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
update 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
fix 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
fix 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
fix 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
fix 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
fix GROUP definitions in the data dictionary can now be specified as a SPECIFIC_OBJECT_DEFINITION as well as a GENERIC_OBJECT_DEFINITION. pramirez
fix 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
add Added support for validation of label fragments. pramirez
add Added the capability to return an appropriate exit status value based on validation results or tool application failure. mcayanan
add Created batch and shell scripts for simpler execution of VTool. mcayanan
add Added the capability for targets to be specified implicitly. mcayanan
add Added -f or --force flag option to perform standalone label fragment validation. mcayanan
update Validation of units is now performed against the master list of unit values. This comparison is case sensitive. pramirez
update 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
update 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
update 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
update 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
update Added time and date of tool execution in final reports. mcayanan
update Enhanced user guide with more details regarding command-line flag options, report examples, etc. mcayanan
fix Fixed support for UNC pathnames. mcayanan
fix Fixed the minimal report stylesheet to work correctly on the Linux platform. mcayanan

Release 0.4.0 - 2007-02-01

Type Changes By
add 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
add 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
add 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
add 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
update 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
update Changed the "p" (patterns) flag to an "e" (regexp) flag. Also changed the "l" (local) flag to an "L" flag. mcayanan
update 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
update 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
fix Corrected a problem where the tool was not completing syntactic validation on a label. pramirez
fix Fixed to properly handle URLs (for targets, dictionaries, Includes). mcayanan

Release 0.3.0 - 2006-09-12

Type Changes By
add Added a user guide for VTool. mcayanan
add 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
add 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
add 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
add Added support for SFDUs. Now the SFDUs will be logged and then skipped. This has not added validation of SFDUs. pramirez
update Changed the "f" (file) flag to a "t" (target) flag. mcayanan
update 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
update More logging information about file being parsed and dictionaries being used. pramirez
fix Fixed multiple dictionary support. mcayanan
fix Properly handle the "Z" at the end of the date when attempting to create an actual Date object. pramirez
fix Allow group statements to be within object statements. pramirez
fix 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
fix Fixed convenience methods on Label class. This would have only caused a problem if people called the tool directly. pramirez
fix 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

Release 0.2.0 - 2006-08-01

Type Changes By
update A major overhaul to how the grammar was implemented using Antlr was performed as a result of comments from the Code Walk-through. Thanks to Mark Rose. pramirez
add This release supports validation against the PDS Data Dictionary. pramirez

Release 0.1.0 - 2006-06-16

Type Changes By
add This release supports syntactic and semantic validation of a single PDS label. pramirez