mirror of
https://github.com/itplr-kosit/validator.git
synced 2026-05-25 16:55:39 +00:00
1 line
No EOL
16 KiB
JavaScript
1 line
No EOL
16 KiB
JavaScript
"use strict";(self.webpackChunkvalidator_frontend=self.webpackChunkvalidator_frontend||[]).push([[80],{1016:function(e,t,a){a.r(t),a.d(t,{assets:function(){return d},contentTitle:function(){return r},default:function(){return p},frontMatter:function(){return n},metadata:function(){return o},toc:function(){return s}});var i=a(7462),l=(a(7294),a(3905));const n={},r="Changelog",o={unversionedId:"changelog",id:"changelog",title:"Changelog",description:"All notable changes to this project will be documented in this file.",source:"@site/docs/changelog.md",sourceDirName:".",slug:"/changelog",permalink:"/docs/changelog",draft:!1,editUrl:"https://github.com/itplr-kosit/validator/server/ui/docs/changelog.md",tags:[],version:"current",frontMatter:{},sidebar:"tutorialSidebar",previous:{title:"API Usage",permalink:"/docs/api"}},d={},s=[{value:"Fixed",id:"fixed",level:3},{value:"Added",id:"added",level:3},{value:"Changed",id:"changed",level:3},{value:"1.4.2",id:"142",level:2},{value:"Fixed",id:"fixed-1",level:3},{value:"1.4.1",id:"141",level:2},{value:"Fixed",id:"fixed-2",level:3},{value:"1.4.0",id:"140",level:2},{value:"Fixed",id:"fixed-3",level:3},{value:"Added",id:"added-1",level:3},{value:"Changed",id:"changed-1",level:3},{value:"1.3.1",id:"131",level:2},{value:"Fixed",id:"fixed-4",level:3},{value:"Added",id:"added-2",level:3},{value:"Changed",id:"changed-2",level:3},{value:"1.3.0",id:"130",level:2},{value:"Added",id:"added-3",level:3},{value:"Changed",id:"changed-3",level:3},{value:"Deprecations",id:"deprecations",level:3},{value:"1.2.1",id:"121",level:2},{value:"Fixed",id:"fixed-5",level:3},{value:"1.2.0",id:"120",level:2},{value:"Added",id:"added-4",level:3},{value:"Changed",id:"changed-4",level:3},{value:"1.1.3",id:"113",level:2},{value:"Fixed",id:"fixed-6",level:3},{value:"1.1.2",id:"112",level:2},{value:"Fixed",id:"fixed-7",level:3},{value:"1.1.1",id:"111",level:2},{value:"Added",id:"added-5",level:3},{value:"Fixed",id:"fixed-8",level:3},{value:"1.1.0",id:"110",level:2},{value:"Added",id:"added-6",level:3},{value:"Changed",id:"changed-5",level:3},{value:"1.0.2",id:"102",level:2},{value:"Fixed",id:"fixed-9",level:3},{value:"1.0.1",id:"101",level:2},{value:"Changed",id:"changed-6",level:3},{value:"1.0.0",id:"100",level:2}],u={toc:s};function p(e){let{components:t,...a}=e;return(0,l.kt)("wrapper",(0,i.Z)({},u,a,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("h1",{id:"changelog"},"Changelog"),(0,l.kt)("p",null,"All notable changes to this project will be documented in this file."),(0,l.kt)("p",null,"The format is based on ",(0,l.kt)("a",{parentName:"p",href:"https://keepachangelog.com/en/1.0.0/"},"Keep a Changelog"),"\nand this project adheres to ",(0,l.kt)("a",{parentName:"p",href:"https://semver.org/spec/v2.0.0.html"},"Semantic Versioning"),"."),(0,l.kt)("h1",{id:"150"},"1.5.0"),(0,l.kt)("h3",{id:"fixed"},"Fixed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"(CLI) ",(0,l.kt)("a",{parentName:"li",href:"https://projekte.kosit.org/kosit/validator/-/issues/93"},"#93")," Remove usage information, when validation failed"),(0,l.kt)("li",{parentName:"ul"},"(CLI) ",(0,l.kt)("a",{parentName:"li",href:"https://projekte.kosit.org/kosit/validator/-/issues/95"},"#95"),' NPE when using empty repository definition (-r "")')),(0,l.kt)("h3",{id:"added"},"Added"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"(CLI) Support for multiple configurations and multiple repositories. See ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/blob/master/docs/cli.md"},"cli documentation")," for details"),(0,l.kt)("li",{parentName:"ul"},"(API) Possibility to use preconfigured Saxon ",(0,l.kt)("inlineCode",{parentName:"li"},"Processor")," instance for validation")),(0,l.kt)("h3",{id:"changed"},"Changed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"(DAEMON) UI rewrite based on ",(0,l.kt)("a",{parentName:"p",href:"https://docusaurus.io"},"Docusaurs"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"(\nAPI) ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/itplr-kosit/validator/blob/master/src/main/java/de/kosit/validationtool/api/ResolvingConfigurationStrategy"},"ResolvingConfigurationStrategy.java#getProcessor()"),"\nis removed.")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"(CORE) Bump ",(0,l.kt)("a",{parentName:"p",href:"https://www.saxonica.com/documentation11/documentation.xml"},"Saxon HE")," to 11.4")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"(CORE) Bump ",(0,l.kt)("a",{parentName:"p",href:"https://github.com/eclipse-ee4j/jaxb-ri"},"jaxb-ri")," to 2.3.7")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("p",{parentName:"li"},"(CORE) CLI parsing based on pico-cli, commons-cli is removed"))),(0,l.kt)("h2",{id:"142"},"1.4.2"),(0,l.kt)("h3",{id:"fixed-1"},"Fixed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"(CLI) ",(0,l.kt)("a",{parentName:"li",href:"https://projekte.kosit.org/kosit/validator/-/issues/74"},"#74")," fix ansi output of the cli version"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/issues/80"},"#80")," using classloader to initialize jaxb context (to support\nusage in OSGi\nenvironments)"),(0,l.kt)("li",{parentName:"ul"},"[#75]"," (",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/issues/75"},"https://github.com/itplr-kosit/validator/issues/75"),") Improve logging on invalid documents")),(0,l.kt)("h2",{id:"141"},"1.4.1"),(0,l.kt)("h3",{id:"fixed-2"},"Fixed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Allow more than 3 customLevel elements in scenarios (see xrechnung\nconfiguration ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator-configuration-xrechnung/issues/49"}," issue 49"),")"),(0,l.kt)("li",{parentName:"ul"},"Remove saxon signature from java8 uber-jar (see ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/issues/67"},"67"),")")),(0,l.kt)("h2",{id:"140"},"1.4.0"),(0,l.kt)("h3",{id:"fixed-3"},"Fixed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"date conversion when\nusing ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/blob/d7beb1040418ae5cbeb9427532fd87482f55756c/src/main/java/de/kosit/validationtool/config/ConfigurationBuilder.java#L109"},"ConfigurationBuilder#date(Date)")),(0,l.kt)("li",{parentName:"ul"},"(CLI) ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/issues/51"},"#51")," Suffix of report xml is missing"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/issues/53"},"#53")," Fix copyright and licensing information"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/issues/56"},"#56")," ",(0,l.kt)("inlineCode",{parentName:"li"},"namespace")," element content needs trimming"),(0,l.kt)("li",{parentName:"ul"},"[DAEMON][#57]","(",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/issues/57"},"https://github.com/itplr-kosit/validator/issues/57"),") Reading large inputs correctly")),(0,l.kt)("h3",{id:"added-1"},"Added"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"read saxon XdmNode with InputFactory"),(0,l.kt)("li",{parentName:"ul"},"(CLI) custom output without the various log messages"),(0,l.kt)("li",{parentName:"ul"},"(CLI) options to set the log level (",(0,l.kt)("inlineCode",{parentName:"li"},"-X")," = full debug output, ",(0,l.kt)("inlineCode",{parentName:"li"},"-l <level>")," set a specific level)"),(0,l.kt)("li",{parentName:"ul"},"(CLI) return code is not 0 on rejected results"),(0,l.kt)("li",{parentName:"ul"},"(CLI) read (single) test target from stdin"),(0,l.kt)("li",{parentName:"ul"},"[DAEMON]"," name inputs via request URI")),(0,l.kt)("h3",{id:"changed-1"},"Changed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"InputFactory has methods to read any java.xml.transform.Source as Input not only StreamSources"),(0,l.kt)("li",{parentName:"ul"},'InputFactory uses a generated UUID as name for SourceInput, if no "real" name can be derived'),(0,l.kt)("li",{parentName:"ul"},"saxon dependency update (minor, 9.9.1-7)"),(0,l.kt)("li",{parentName:"ul"},"[DAEMON]"," proper status codes when returning results (see ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/blob/master/docs/daemon.md#status-codes"},"daemon documentation"),")")),(0,l.kt)("h2",{id:"131"},"1.3.1"),(0,l.kt)("h3",{id:"fixed-4"},"Fixed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("inlineCode",{parentName:"li"},"getFailedAsserts()")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"isSchematronValid()"),"\nin ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/blob/master/src/main/java/de/kosit/validationtool/impl/DefaultResult.java"},"DefaultResult.java"),"\ndo not reflect actual schematron validation result"),(0,l.kt)("li",{parentName:"ul"},"processing aborts on schematron execution errors (e.g. errors within schematron logic). The validator now generates a\nreport in such cases."),(0,l.kt)("li",{parentName:"ul"},"exception while resolving when using XSLT's ",(0,l.kt)("inlineCode",{parentName:"li"},"unparsed-text()")," function within report generation")),(0,l.kt)("h3",{id:"added-2"},"Added"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"(CLI) summary report")),(0,l.kt)("h3",{id:"changed-2"},"Changed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"engine info contains version number of the validator (configurations can output this in the report for maintainance\npuposes)"),(0,l.kt)("li",{parentName:"ul"},"options to customize serialized report file names (cmdline only) via ",(0,l.kt)("inlineCode",{parentName:"li"},"--report-prefix")," and ",(0,l.kt)("inlineCode",{parentName:"li"},"--report-postfix")),(0,l.kt)("li",{parentName:"ul"},"remove unused dependency Apache Commons HTTP")),(0,l.kt)("h2",{id:"130"},"1.3.0"),(0,l.kt)("h3",{id:"added-3"},"Added"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Added a builder style configuration API to configure scenarios"),(0,l.kt)("li",{parentName:"ul"},"Added an option to configure xml security e.g. to load from http sources or not from a specific repository\n(so loading is configurable less restrictive, default strategy is to only load from a local repository)"),(0,l.kt)("li",{parentName:"ul"},"Support java.xml.transform.Source as Input")),(0,l.kt)("h3",{id:"changed-3"},"Changed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Inputs are NOT read into memory (e.g. Byte-Array) prior processing within the validator. This reduces memory\nconsumption."),(0,l.kt)("li",{parentName:"ul"},"Overall processing of xml files is based on Saxon s9api. No JAXP or SAX classes are used by\nthe validator (this further improves performance and memory consumption)")),(0,l.kt)("h3",{id:"deprecations"},"Deprecations"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"CheckConfiguration is deprecated now. Use Configuration.load(...) or Configuration.build(...)")),(0,l.kt)("h2",{id:"121"},"1.2.1"),(0,l.kt)("h3",{id:"fixed-5"},"Fixed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Validator is creating invalid createReportInput xml in case of no scenario match")),(0,l.kt)("h2",{id:"120"},"1.2.0"),(0,l.kt)("h3",{id:"added-4"},"Added"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Provide access to schematron result\nthrough ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/blob/master/src/main/java/de/kosit/validationtool/api/Result.java"},"Result.java"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("em",{parentName:"li"},"Result#getFailedAsserts()")," returns a list of failed asserts found by schematron"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("em",{parentName:"li"},"Result#isSchematronValid()")," convinience access to evaluate whether schematron was processed without any ",(0,l.kt)("em",{parentName:"li"},"\nFailedAsserts"))))),(0,l.kt)("h3",{id:"changed-4"},"Changed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("em",{parentName:"li"},"Result#getAcceptRecommendation()")," does not ",(0,l.kt)("em",{parentName:"li"},"only")," work when ",(0,l.kt)("em",{parentName:"li"},"acceptMatch")," is configured in the scenario",(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},"schema correctness is a precondition, if the checked instance is not valid, this evaluates to ",(0,l.kt)("em",{parentName:"li"},"REJECTED")),(0,l.kt)("li",{parentName:"ul"},"if ",(0,l.kt)("em",{parentName:"li"},"acceptMatch")," is configured, the result is based on the boolean result of the xpath expression evaluated against\nthe generated report"),(0,l.kt)("li",{parentName:"ul"},"if ",(0,l.kt)("em",{parentName:"li"},"no")," ",(0,l.kt)("em",{parentName:"li"},"acceptMatch")," is configured, the result is based on evaluation of schema and schematron correctness"),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("em",{parentName:"li"},"UNDEFINED")," is only returned, when processing is stopped somehow"))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("em",{parentName:"li"},"Result#isAcceptable()")," can now evaluate to true, when no ",(0,l.kt)("em",{parentName:"li"},"acceptMatch")," is configured (see above)")),(0,l.kt)("h2",{id:"113"},"1.1.3"),(0,l.kt)("h3",{id:"fixed-6"},"Fixed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"XXE vulnerability when reading xml documents with Saxon ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/issues/44"},"#44")),(0,l.kt)("li",{parentName:"ul"},"validator unintentionally stopped when schematron processing has errors.\nSee ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator/issues/41"},"#41"),".")),(0,l.kt)("h2",{id:"112"},"1.1.2"),(0,l.kt)("h3",{id:"fixed-7"},"Fixed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"NPE in Result.getReportDocument for malformed xml input")),(0,l.kt)("h2",{id:"111"},"1.1.1"),(0,l.kt)("h3",{id:"added-5"},"Added"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Convenience method for accessing information about well-formedness in Result"),(0,l.kt)("li",{parentName:"ul"},"Convenience method for accessing information about schema validation result in Result")),(0,l.kt)("h3",{id:"fixed-8"},"Fixed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"NPE when validating non-XML files")),(0,l.kt)("h2",{id:"110"},"1.1.0"),(0,l.kt)("h3",{id:"added-6"},"Added"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Enhanced API-Usage e.g. return ",(0,l.kt)("em",{parentName:"li"},"Result")," object with processing information"),(0,l.kt)("li",{parentName:"ul"},"Support loading scenarios and content from a JAR-File"),(0,l.kt)("li",{parentName:"ul"},"Simple Daemon-Mode exposing validation functionality via http"),(0,l.kt)("li",{parentName:"ul"},"cli option to serialize the 'report input' xml document to ",(0,l.kt)("em",{parentName:"li"},"cwd")," (current working directory)"),(0,l.kt)("li",{parentName:"ul"},"Documentation in ",(0,l.kt)("inlineCode",{parentName:"li"},"docs")," folder")),(0,l.kt)("h3",{id:"changed-5"},"Changed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Use s9api (e.g. XdmNode) internally for loading and holding xml objects (further memory optimization)"),(0,l.kt)("li",{parentName:"ul"},"Builds with java 8 and >= 11"),(0,l.kt)("li",{parentName:"ul"},"Packages for java8 and java >= 11 (with jaxb included)"),(0,l.kt)("li",{parentName:"ul"},"Translated README.md")),(0,l.kt)("h2",{id:"102"},"1.0.2"),(0,l.kt)("h3",{id:"fixed-9"},"Fixed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Memory issues when validating multiple targets")),(0,l.kt)("h2",{id:"101"},"1.0.1"),(0,l.kt)("h3",{id:"changed-6"},"Changed"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Removed XRechnung configuration from release artifacts and source (moved\nto ",(0,l.kt)("a",{parentName:"li",href:"https://github.com/itplr-kosit/validator-configuration-xrechnung"},"own repository")," )")),(0,l.kt)("h2",{id:"100"},"1.0.0"),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},"Initial Release")))}p.isMDXComponent=!0}}]); |