Skip to content

Latest commit

 

History

History
466 lines (318 loc) · 21.6 KB

CHANGELOG.md

File metadata and controls

466 lines (318 loc) · 21.6 KB

Validation Framework Version History

Version 4.0

  • Updated the minimum Java language from Java 8 to Java 11.
  • Updated Groovy library from version 4.0.23 to version 4.0.24.
  • Updated XStream library from version 1.4.20 to version 1.4.21.

Version 3.3

  • Fixed a few fields recently added to the Rule class that were not handled by the EditableRule class.
  • Updated Groovy library from version 4.0.15 to version 4.0.23.
  • Updated staging client from version 11.0.0 to version 11.3.1.

Version 3.2

  • Updated Groovy library from version 4.0.8 to version 4.0.15.
  • Updated staging client from version 10.1.0 to version 11.0.0.

Version 3.1

  • Updated Groovy library from version 4.0.8 to version 4.0.13.
  • Updated staging client from version 6.3.0 to version 10.1.0.

Version 3.0

  • Increased the engine version to 6.8.
  • Added a new dataLevel field on the Rule class (not used by this library, it was added to support projects using the library).
  • Updated Groovy library from version 3.0.10 (indy) to version 4.0.8.
  • Updated XStream library from version 1.4.19 to version 1.4.20.

Version 2.28

  • Increased the engine version to 6.7.
  • Fixed behavior of TRIM Genedits context function when used a value that only contains spaces.

Version 2.27

  • Updated staging client from version 6.2.0 to version 6.3.0.

Version 2.26

  • Updated Groovy library from version 3.0.8 (indy) to version 3.0.10 (indy).
  • Updated XStream library from version 1.4.18 to version 1.4.19.
  • Updated staging client from version 6.1.0 to version 6.2.0.

Version 2.25

  • Changed new isImportEdit on Rule class from Boolean to Byte.

Version 2.24

  • Updated XStream library from version 1.4.17 to version 1.4.18.
  • Updated Apache commons-lang library from version 3.11 to version 3.12.0.

Version 2.23

  • Fixed name of metafile context functions YEARINTERVAL_IOP, MONTHINTERVAL_IOP and DAYINTERVAL_IOP.

Version 2.22

  • Updated staging client from version 6.0.0 to version 6.1.0.
  • Updated XStream library from version 1.4.16 to version 1.4.17.
  • Added new isImportEdit on Rule class, will be used by SEER*DMS and won't affect other software.

Version 2.21

  • Updated staging client from version 5.0.6 to version 6.0.0.

Version 2.20

  • Updated Groovy library from version 2.5.14 (indy) to version 3.0.8 (indy).
  • Updated staging client from version 5.0.1 to version 5.0.6.

Version 2.19

  • Changed allowOverride from Boolean to Byte on Rule entity.

Version 2.18

  • Increased the engine version to 6.6.
  • Fixed behavior of SQLRANGELOOKUP Genedits context function when used with an index that contains non-unique values.
  • Updated staging client from version 5.0 to version 5.0.1.
  • Updated XStream library from version 1.4.15 to version 1.4.16.
  • Updated commons-codec library from version 1.14 to version 1.15.

Version 2.17

  • Increased the engine version to 6.5.
  • Fixed behavior of SAVE_TEXT Genedits context function so it causes edits to properly fail.

Version 2.16

  • Increased the engine version to 6.4.
  • Updated Groovy library from version 2.5.12 (indy) to version 2.5.14 (indy).
  • Updated staging client from version 4.7 to version 5.0.
  • Updated XStream library from version 1.4.12 to version 1.4.15.
  • Updated Apache commons-lang library from version 3.10 to version 3.11.

Version 2.15

  • Added support for using split classes for runtime edits.

Version 2.14

  • Downgraded Groovy library from version 3.0.4 (indy) to version 2.5.12 (indy) after finding performance issues with 3.x.

Version 2.13

  • Added missing setters in Rule and Condition, renamed a few variables in those classes.
  • Updated Groovy library from version 2.5.8 (indy) to version 3.0.4 (indy).
  • Updated XStream library from version 1.4.11.1 to version 1.4.12.
  • Updated Apache commons-lang library from version 3.9 to version 3.10.

Version 2.12

  • Now allowing edits statistics to be dynamically turned ON/OFF via the engine.

Version 2.11

  • Increased the engine version to 6.3.
  • Changed hard-coded field names in StagingContextFunctions to align with NAACCR XML IDs.

Version 2.10

  • Updated Groovy library from version 2.5.6 (indy) to version 2.5.8 (indy).
  • Updated commons-codec library from version 1.11 to version 1.14.
  • Updated Apache commons-lang library from version 3.7 to version 3.9.

Version 2.9

  • Updated EOD version to 1.7 and fixed the EOD field mapping for an SSDI key that was changed.

Version 2.8

  • Fixed bad property parsing behavior for edits using casts.
  • Fixed another threading issue related to edits stats.
  • Added more information to the exception thrown when an edit cannot be properly loaded.

Version 2.7

  • Fixed a problem in edits stats that got introduced in the previous release.

Version 2.6

  • Fixed edits stats slowing down multi-threaded executions.

Version 2.5

  • Increased the engine version to 6.2.
  • Fixed behavior of AT metafile context function when used on blank values.

Version 2.4

  • Remove extra synchronization that slowed down executing edits in a heavily threaded environment.
  • Removed "isInitialized" method from ValidationContextFunctions and ValidationServices since they build an default instance right away now.
  • Moved ValidatingContext class out of internal package.
  • Updated Groovy library from version 2.5.4 (indy) to version 2.5.6 (indy).

Version 2.3

  • Fixed a bug in execution of pre-compiled edits on complex data structures.

Version 2.2

  • Improved initialization feedback for pre-compiled edits.
  • Removed deprecated mechanism to load pre-compiled edits by searching for them on the classpath.

Version 2.1

  • Increased the engine version to 6.1.
  • Changed implementation of MATCH and INLIST metafile context functions.
  • Fixed behavior of AT metafile context function.
  • Updated Groovy library from version 2.5.3 (indy) to version 2.5.4 (indy).
  • Re-added a way to disable pre-compiled edits lookup, it was removed by mistake in the previous release.
  • Removed option to check for def keyword in edits code visitor.

Version 2.0

  • Increased the engine version to 6.0.
  • Engine is not a static singleton class anymore and can now be created via a public constructor.
  • Added support for initialization options.
  • Renamed some classes, restructure a few packages; this work is done in preparation of the library being fully modularized.
  • Pre-compiled/pre-parsed edits can now be provided explicitly to the engine; classpath lookup is still happening for now but has been deprecated.
  • Removed edit timeout feature which has never worked properly.
  • Changed realignment option in XML utility to false instead of true.
  • Removed support for accessing context entries without the Context prefix.
  • Added optional parameter to getSupportedJavaPathRoots to exclude path roots that don't have any edit register under them.
  • Updated XStream library from version 1.4.10 to version 1.4.11.1.
  • Fixed warnings in the console about unsafe access to private fields.

Version 1.25

  • Updated Groovy library from version 2.5.2 (indy) to version 2.5.3 (indy).

Version 1.24

  • Updated Groovy library from version 2.5.1 (indy) to version 2.5.2 (indy).
  • Updated CS algorithm library from version 02.05.50 to version 02.05.50.1.
  • Added two new fields to the RuleHistory class to keep track of the before/after changes; those fields are not used directly by the framework.
  • Now catching Error in addition to Exception when executing edits.

Version 1.23

  • Fixed dynamic error messages reported by translated edits.

Version 1.22

  • Increased the engine version to 5.11.
  • Added 'lvi' to the list of EOD fields in StagingContextFunctions.
  • Added support for a special 'No default error message defined' error message.

Version 1.21

  • Increased the engine version to 5.10.
  • String terminator is not required anymore in Genedits context functions dealing with arrays of characters.
  • Fixed an issue in MATCH Genedits context function.
  • Fixed logic that combines translated error messages on RuleFailure when there are several messages.

Version 1.20

  • Updated Groovy library from version 2.4.12 (indy) to version 2.5.1 (indy).
  • Updated Apache commons-lang library from version 3.6 to version 3.7.

Version 1.19

  • Changed context function getEodSchemaId() to use 'behavior' as an input.
  • Updated staging client from version 4.0 to version 4.1.

Version 1.18

  • Updated staging client from version 3.1 to version 4.0; that version split the algorithms out of the client, the engine only needs the client at compile time but it still needs the algorithms at runtime.

Version 1.17

  • Fixed a bug in re-alignment logic of XmlValidatorFactory; added an option to turn off re-alignment in that class (alignment is still ON by default).

Version 1.16

  • Fixed equality of Rule class; it was unintentionally modified in previous version.

Version 1.15

  • Fixed equality of RuleHistory class; reviewed equality/hash of all the other entities.
  • Changed log methods in ValidatorServices so they accept an Object instead of a String.

Version 1.14

  • Increased the engine version to 5.9.
  • Added support for the EOD staging algorithm.
  • Updated staging client from version 2.12 to version 3.1.
  • Improved parsing logic to better handle null-safe notation.
  • Added new "needsReview" field to the Rule Java entity; this field is not used by this library but will be useful in other projects.

Version 1.13

  • Updated staging client from version 2.10 to version 2.12.

Version 1.12

  • Fixed a bug affecting pre-compiled edits being dynamically updated in the engine.

Version 1.11

  • Fixed bug where values in Genedits messages would not be properly replaced.

Version 1.10

  • Added new "allowOverride" field to the Rule Java entity; this field is not used by this library but will be useful in other projects.

Version 1.9

  • Updated staging client from version 2.9 to version 2.10.

Version 1.8

  • Increased the engine version to 5.8
  • Added support for caching regular expression in context functions.
  • Added support for pre-parsed and pre-compiled edits (optimization).
  • Added support for new context types 'table' and 'table-index-def' that will be used for Genedits translation framework.
  • Remove logic that was overriding SSF25 based on TNM Schema ID and Sex in SimpleNaaccrLinesValidatable.
  • Added a proper security environment to XStream by limiting the classes that it can create when loading XML files.
  • Updated staging client from version 2.5 to version 2.9 (TNM 1.5).
  • Updated Groovy library from version 2.4.7 (indy) to version 2.4.12 (indy).
  • Updated XStream library from version 1.4.9 to 1.4.10.
  • Updated Apache commons-lang library from version 3.4 to version 3.6.
  • Updated commons-codec library from version 1.10 to version 1.11.

Version 1.7

  • Increased the engine version to 5.7
  • Added support for new SQLLOOKUP and SQLRANGELOOKUP Genedits functions.
  • Added new log methods in context functions, a framework can provide a log implementation in the services.
  • Added support for edit/set tags (used in the Genedits framework).
  • Added support for timing out execution of edits (disabled by default).

Version 1.6.3

  • Updated staging client from version 2.4 to version 2.5; this contains the new TNM 1.4 algorithm.
  • SimpleNaaccrLinesValidatable will convert the sex value to SSF25 when the SSF25 discriminator is missing for Peritoneum and Peritoneum Female Gen so that the CS schema will be found.

Version 1.6.2

  • Updated staging client from version 2.3 to version 2.4; this contains the new TNM 1.3 algorithm.

Version 1.6.1

  • Fixed a bug that prevented the root attributes to be found if the file contained large text before the root tag.

Version 1.6

  • Added new method in XmlValidatorFactory to extract all attributes from main Validator tag.
  • Removed Joda library dependency, replaced by new Java 8 date framework.
  • Removed BeanUtils library dependency.
  • Updated staging client from version 2.1.1 to version 2.3.
  • Updated Groovy library from version 2.4.6 (indy) to version 2.4.7 (indy).
  • This library now requires Java 8 at minimum.

Version 1.5.9

  • The used properties won't be recalculated if the assigned expression is the same as the previous value.
  • The returned sequences from the validator services are now Long instead of native long.

Version 1.5.8

  • Increased the engine version to 5.6 (version 5.6 is needed for ensuring correct results when running translated metafile edits).
  • Fixed another bug in the GenEDITS INLIST function implementation resulting in some edits failing when they should pass.

Version 1.5.7

  • Added staging context methods getCsSchemaId() and getTnmSchemaId() that return a schema ID given a map of inputs.

Version 1.5.6

  • Increased the engine version to 5.5 (version 5.5 is needed for ensuring correct results when running translated metafile edits).
  • Fixed a bug in the GenEDITS INLIST function implementation resulting in some edits failing when they should pass.

Version 1.5.5

  • Fixed a bug in the GenEDITS INLIST function implementation resulting in a out-of-bound exception.
  • Removed the deprecated staging schema name constants from the Validatable class.

Version 1.5.4

  • Increased the engine version to 5.4 (version 5.4 is needed for edits using staging schema ID instead of name).
  • Deprecated the constants related to staging schema name in Validatable; those have been replaced by staging ID constants.

Version 1.5.3

  • Increased the engine version to 5.3 (version 5.3 is needed for edits using new TNM context methods).
  • Added support for treating a WARNING in a translated edits as a failing state instead of just ignoring it.
  • Updated staging client from version 2.1 to version 2.1.1.
  • Updated Groovy library from version 2.4.4 (indy) to version 2.4.6 (indy).
  • Updated Joda library (for date utilities) from version 2.8.1 to version 2.9.3.
  • Updated XStreams library (for XML utilities) from version 1.4.7 to version 1.4.9.
  • Updated Apache commons-lang library from version 3.3.2 to version 3.4.

Version 1.5.2

  • Changed staging context method isAcceptableTnmCode() to not always return false for a null value.

Version 1.5.1

  • Added support for TNM staging in the context methods and the simple NAACCR line validatable; using TNM 1.1 algorithm.

Version 1.5

  • Increased the engine version to 5.2.
  • The context functions and validator services are now lazily initialized with default implementation.
  • Added support for multi-threading rule parsing/compilation; see XmlValidatorFactory.enableMultiThreadedParsing() and ValidationEngine.enableMultiThreadedCompilation().
  • Improved multi-threading support; the validate methods will now block if the state of the engine is being changed, instead of returning no failures.
  • Removed deprecated CStage context methods from the ValidatorContextFunctions class.
  • Split context functions, this change requires doing the initialization a bit differently: to run translated and/or SEER edits, use the MetafileContextFunctions; to use only SEER edits, use the StagingContextFunctions.
  • Replaced JAXB by XStream for all XML operations.
  • Updated Groovy library from version 2.4.3 to version 2.4.4; now using "indy" version of the library.
  • Updated Staging client library from version 1.4.2 to version 1.4.6.
  • This library now requires Java 7 at minimum.

Version 1.4.1

  • Fixed a bug with assigning CStage schema in SimpleNaaccrValidatable.
  • Increased the engine version to 5.1 (this should have been done it in the previous release).

Version 1.4

  • Updated Groovy library from 2.2.2 to 2.4.3.
  • Updated Staging client library from 1.2 to 1.4.2.
  • Updated Commons Lang library from 3.3.2 to 3.4.
  • Updated Joda Time library from 2.6 to 2.8.1.

Version 1.3

  • Updated Staging client to version 1.2, which included minor bug fixes.

Version 1.2

  • Now using a pure java-based CStage implementation.

Version 1.1

  • Now using normal distribution of Groovy instead of the "groovy-all" one.
  • Updated commons-lang library from 2.x to 3.x.

Version 1.0

  • Validation framework split from SEER*Utils into its own project.

Legacy

  • [SEER*Utils v4.9 ] Moved all validation classes from "com.imsweb.seerutils.validator" to "com.imsweb.validation".
  • [SEER*Utils v4.8.3] Fixed the demo programs that can be run on the command line.
  • [SEER*Utils v4.8.2] Fixed a bug in the testing framework making the validation of a single edit very slow.
  • [SEER*Utils v4.8.1] Fixed an issue where "forced rules" (see ValidationEngine.validate(validatable, rule)) were sometimes not correctly executed and returned no results.
  • [SEER*Utils v4.8.1] Added support of an undocumented Genedits method "SET_ERROR"; seems like NCDB-00326 was the only edit to use that method.
  • [SEER*Utils v4.8.1] Fixed a bug in the parsing of the edits code that would result in some properties not being correctly reported when an edit fails.
  • [SEER*Utils v4.8 ] Replaced rulesets by conditions and categories; applied other minor changes to the framework.
  • [SEER*Utils v4.6 ] The ValidatorContextFunctions constructor now takes an optional CStage version; if not provided, the latest available CStage version will be used.
  • [SEER*Utils v4.6 ] Fixed a bug in INLIST related to ranges containing non-numeric characters.
  • [SEER*Utils v4.6 ] Added support for reporting deleted edits in the edits XML file; this change doesn't break any API.
  • [SEER*Utils v4.5.6] Fixed a bug in VAL context method for the translated edits where a result of-1 would be returned instead of 0 for a bad incoming value.
  • [SEER*Utils v4.5.6] Added a new field "originalResult" on RuleFailure to handle case when translated edits fail because of a flag.
  • [SEER*Utils v4.5.6] Fixed date values not properly formatted in error messages.
  • [SEER*Utils v4.5.6] Fixed a problem in GEN_MATCH related to blank values.
  • [SEER*Utils v4.5.6] Now using instead of when replacing a blank value in a message.
  • [SEER*Utils v4.5.6] Optimized calls to LOOKUP and ILOOKUP.
  • [SEER*Utils v4.5.5] Fixed a bug in the GEN_VALID_DATE_IOP method related to valid days.
  • [SEER*Utils 4.5.5 ] Tweaked GEN_LOOKUP and GEN_RLOOKUP to accept a null table, allowing more optimization in the translated edits XML files.
  • [SEER*Utils v4.5.5] Added support for extra error messages and information messages; mainly used for translated edits.
  • [SEER*Utils v4.5.4] Fixed an exception in GEN_LOOKUP for table using integers instead of strings.
  • [SEER*Utils v4.5.3] Added an optional list of edit IDs to execute, instead of allowing only a list of IDs to ignore for main validate method.
  • [SEER*Utils v4.5.3] Now displaying a warning instead of throwing an exception if an edit history date can't be read successfully from an XML file.
  • [SEER*Utils v4.5.3] Added support for defining a minimum validation engine version in the XML files.
  • [SEER*Utils v4.5.3] Properties used inside an inner-method of an edit were not properly parsed.
  • [SEER*Utils v4.5.3] Fixed a trimming issue in GEN_LOOKUP and GEN_ILOOKUP; this affected only translated edits.
  • [SEER*Utils v4.5.2] Changed the XML validator factory to sort the rule histories when creating an XML file.
  • [SEER*Utils v4.4.2] Added support in Genedits context methods for DT_TODAY constant (implemented as a method call).
  • [SEER*Utils v4.4.1] Fixed SAVE_TEXT and SAVE_ERROR_TEXT Genedits context methods that were not properly setting the failing flag.
  • [SEER*Utils v4.4 ] Optimized the Genedits context functions.
  • [SEER*Utils v4.3.2] Fixed the XML validator factory to use the OS line separator.
  • [SEER*Utils v4.3.1] Added support for loading gzipped URL/Files.
  • [SEER*Utils v4.3.1] Removed default severity on the rules.
  • [SEER*Utils v4.3 ] Context entries should now be referenced using the "Context." prefix; for now the old way (no prefix) is still supported.
  • [SEER*Utils v4.2.8] Renamed some fields in the LayoutInfo object.
  • [SEER*Utils v4.2.8] Improved documentation of the fetchLookup method in the validation engine.
  • [SEER*Utils v4.2.7] Changed method addContext() so it requires the context key to be unique within the validator, not within the entire engine.
  • [SEER*Utils v4.2.6] Added new method on EditsSet class to get all the referenced validator IDs.
  • [SEER*Utils v4.2.6] Failing properties are now returned even if the edit failed because of an exception.
  • [SEER*Utils v4.2.6] Fixed a bug in GEN_INLIST context function related to blank values.
  • [SEER*Utils v4.1 ] Fixed and improved Validator Context methods documentation.
  • [SEER*Utils v4.0.1] Fixed a bug with CStage variables in SimpleNaaccrValidatable.
  • [SEER*Utils v4.0 ] Allowed extra suffix for validator versions.
  • [SEER*Utils v4.0 ] Added support for closures in edits tests.
  • [SEERUtils v3.1 ] Map values for failing edits wasn't not correctly cloned for SEERDMS edits.
  • [SEER*Utils v3.0 ] Now sorting edits test before creating XML file.
  • [SEER*Utils v2.1 ] Added ValidatorContextFunctions to testing framework.
  • [SEER*Utils v2.1 ] Added new OBSOLETE codes to ValidatorContextFunctions.
  • [SEERUtils v2.1 ] Improved testing framework for SEERDMS.
  • [SEER*Utils v2.1 ] Redirected output from running tests on an edit and made it available in a variable.
  • [SEER*Utils v2.1 ] Edits translation- various issues.
  • [SEER*Utils v2.1 ] Implemented our own parsing of the java contexts.
  • [SEER*Utils v2.0 ] Edits translation- bugs in regex translations.
  • [SEER*Utils v1.3 ] History and Dependencies are now being sroted before being written to the XML file.
  • [SEER*Utils v1.0 ] Improved validation engine memory usage.
  • [SEER*Utils v1.0 ] Added a method to return all aliases.
  • [SEER*Utils v1.0 ] Added a method in the Validation Engine to return a specific rule.
  • [SEERUtils v1.0 ] Moved validation engine out of SEERDMS, into a new shared library.