Releases: smooks/smooks
v2.2.1
Release Notes
Fixed Issues
- Solved issue where Smooks doesn't write the closing tags of empty elements when
closeEmptyElementsfilter setting is false (#914)
Binaries
Apache Maven
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.2.1</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-management</artifactId>
<version>2.2.1</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-api</artifactId>
<version>2.2.1</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-commons</artifactId>
<version>2.2.1</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-test-kit</artifactId>
<version>2.2.1</version>
</dependency>v2.2.0
Release Notes
Miscellaneous Changes
- Improved reporting of visitor exceptions: event path, selector, and visitor from where the exception was thrown are now included in the exception message
- Deprecated
org.smooks.Smooks#setFilterSettings: programmatically tuning the filter settings should now be accomplished fromorg.smooks.engine.DefaultApplicationContextBuilder#withFilterSettings - Updated dependencies:
org.freemarker:freemarkerto version 2.3.34
Fixed Issues
- Solved issue where the pipeline execution event listener is not cleaned up following an exception which could lead to another exception when the
terminateOnExceptionfilter setting is false (#908) - Solved issue where
PostFragmentLifecycle#onPostFragmentis not invoked in pipeline visitor (#899) - Solved issue where pipeline visitors are ordered incorrectly among the content handlers when directing the output to a stream (#898)
- Unwrap
org.smooks.api.NotAppContextScoped.Refinstances before injecting (#897)
Binaries
Apache Maven
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.2.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-management</artifactId>
<version>2.2.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-api</artifactId>
<version>2.2.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-commons</artifactId>
<version>2.2.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-test-kit</artifactId>
<version>2.2.0</version>
</dependency>v2.1.0
Release Notes
Miscellaneous Changes
-
Created
org.smooks.api.NotAppContextScopedto indicate that the class annotated with this annotation can have its instances safely referenced from different Smooks application contexts. A class should have this annotation when you want to allow the pipeline to inherit instances of the class from the registry of the parent application context. -
Updated dependencies:
com.fasterxml.woodstox:woodstox-coreto version 7.1.0com.thoughtworks.xstream:xstreamto version 1.4.21
Fixed Issues
- Log less cryptic messages when logging exception (#853)
- Inherit registry and beanIdStore in pipeline (#854)
- Intercept exceptions in pipeline (#854)
Binaries
Apache Maven
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.1.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-management</artifactId>
<version>2.1.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-api</artifactId>
<version>2.1.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-commons</artifactId>
<version>2.1.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-test-kit</artifactId>
<version>2.1.0</version>
</dependency>v2.0.0
Release Notes
Miscellaneous Changes
- Updated dependencies:
- commons-net:commons-net to version 3.11.0
- org.slf4j:slf4j-api to version 2.0.16.Final
- com.fasterxml:aalto-xml to version 1.3.3
Breaking Changes
- Rename XML element
{https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd}delegate-readerto{https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd}rewrite - Rename XML attribute
closeResultin{https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd}filterSettingstocloseSink - Replace
javax.xml.transform.Sourceparameter inSmooks#filterSource(...)method calls with:org.smooks.io.source.JavaSourceinstead oforg.smooks.io.payload.JavaSourceorg.smooks.io.source.StringSourceinstead oforg.smooks.io.payload.StringSourceorg.smooks.io.source.ByteSourceinstead oforg.smooks.io.payload.ByteSourceorg.smooks.io.source.DOMSourceinstead oforg.smooks.io.payload.DOMSourceorg.smooks.io.source.JavaSourceWithoutEventStreaminstead oforg.smooks.io.payload.JavaSourceWithoutEventStreamorg.smooks.io.source.ReaderSourceinstead ofjavax.xml.transform.stream.StreamSourcewhen the latter is constructed fromjava.io.Readerorg.smooks.io.source.StreamSourceinstead ofjavax.xml.transform.stream.StreamSourcewhen the latter is constructed fromjava.io.InputStreamorg.smooks.io.source.URLSourceinstead ofjavax.xml.transform.stream.StreamSourcewhen the latter is constructed from a system ID
- Replace
javax.xml.transform.Resultparameter inSmooks#filterSource(...)method calls with:org.smooks.io.sink.StringSinkinstead oforg.smooks.io.payload.StringResultorg.smooks.io.sink.JavaSinkinstead oforg.smooks.io.payload.JavaResultorg.smooks.io.sink.ByteSinkinstead oforg.smooks.io.payload.ByteResultorg.smooks.io.sink.DOMSinkinstead ofjavax.xml.transform.dom.DOMResultorg.smooks.io.sink.StreamSinkinstead ofjavax.xml.transform.stream.StreamResultwhen the latter is constructed fromjava.io.OutputStreamorg.smooks.io.sink.WriterSinkinstead ofjavax.xml.transform.stream.StreamResultwhen the latter is constructed fromjava.io.Writer
Fixed Issues
core:delegate-readerdoesn't properly rewrite the attribute xmlns="" (#778)- Inherit bean context in rewrite (#800)
Binaries
Apache Maven
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.0.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-management</artifactId>
<version>2.0.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-api</artifactId>
<version>2.0.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-commons</artifactId>
<version>2.0.0</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-test-kit</artifactId>
<version>2.0.0</version>
</dependency>v2.0.0-RC4
Release Notes
New Features
Miscellaneous Changes
- Updated dependencies:
- org.mvel:mvel2 to version 2.5.2.Final
- org.slf4j:slf4j-api to version 2.0.9.Final
- com.fasterxml:classmate to version 1.7.0
- com.fasterxml.woodstox:woodstox-core to version 6.6.2
Breaking Changes
- Renamed
org.smooks.Smooks#addConfigurationsmethod toorg.smooks.Smooks#addResourceConfigs - Removed obsolete
smooks-1.2andsmooks-core-1.5XSDs new TypedKey(String)becomesTypedKey#of(String)andnew TypedKey()becomesTypedKey#of()- Classes in
org.smooks.tckrelocated toorg.smooks.testkit; Maven artifactsmooks-tckrelocated tosmooks-test-kit - Renamed
ApplicationContext#getContentDeliveryConfigBuilderFactorytoApplicationContext#getContentDeliveryRuntimeFactory - Renamed
org.smooks.api.lifecycle.ExecutionLifecycleCleanable#executeExecutionLifecycleCleanuptoorg.smooks.api.lifecycle.PostExecutionLifecycle#onPostExecution - Renamed
org.smooks.api.lifecycle.VisitLifecycleCleanable#executeVisitLifecycleCleanuptoorg.smooks.api.lifecycle.PostFragmentLifecycle#onPostFragment - Renamed
org.smooks.api.lifecycle.ExecutionLifecycleInitializable#executeExecutionLifecycleInitializetoorg.smooks.api.lifecycle.PreExecutionLifecycle#onPreExecution - Renamed
org.smooks.api.resource.config.ResourceConfigListFactorytoorg.smooks.api.resource.config.ResourceConfigSeqFactory ResourceConfig#setDefaultResourcerenamed toResourceConfig#setSystem;ResourceConfig#isDefaultResourcerenamed toResourceConfig#isSystem- Renamed
org.smooks.api.delivery.ConfigurationExpandertoorg.smooks.api.delivery.ResourceConfigExpander - Renamed
org.smooks.api.delivery.event.ResourceBasedEventtoorg.smooks.api.delivery.event.ResourceAwareEvent - Rename
org.smooks.api.resource.config.ResourceConfig#getTargetProfilemethod togetProfile - Rename
org.smooks.api.resource.config.ResourceConfig#setTargetProfilemethod tosetProfile - Rename
org.smooks.api.lifecycle.FilterLifecycle#onStartedmethod toonPreFilter - Rename
org.smooks.api.lifecycle.FilterLifecycle#onFinishedmethod toonPostFilter - Inherited
org.smooks.api.resource.config.ParameterDecoderExceptionfromorg.smooks.api.SmooksExceptioninstead fromjava.lang.RuntimeException
Fixed Issues
- Regression in v2 when the last step in the selector has a predicate index (#769)
delegate-readerthrows "com.fasterxml.aalto.WFCException: Invalid UTF-8" when writing multi-byte characters (#755)- Bind namespace prefixes in comma-delimited selectors
- Selector matches the node despite the namespace URIs being different (#710)
- NoSuchFileException when instantiating Smooks (#768)
Binaries
Apache Maven
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.0.0-RC4</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-management</artifactId>
<version>2.0.0-RC4</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-api</artifactId>
<version>2.0.0-RC4</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-commons</artifactId>
<version>2.0.0-RC4</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-test-kit</artifactId>
<version>2.0.0-RC4</version>
</dependency>v2.0.0-RC3
Release Notes
Miscellaneous Changes
-
Implemented
java.io.Closeableinterface inorg.smooks.Smooks -
Updated dependencies:
- org.mvel:mvel2 to version 2.5.1.Final
- org.slf4j:slf4j-api to version 2.0.6.Final
- commons-net:commons-net to version 3.10.0
- com.fasterxml:classmate to version 1.6.0
Breaking Changes
- Removed
org.smooks.support.CollectionsUtilclass since it can be easily replaced with Java 8 alternatives - Removed
setResourceLocatormethod fromApplicationContextinterface: resource locator can now be set fromDefaultApplicationContextBuilder - Removed obsolete Dockerfile and docs about Docker: will consider adding this again once we have the proper security infrastructure set up (e.g., Docker image security scans)
Fixed Issues
- Error in opening zip file in Initialisation (#480)
- Allow DOM models created from
DomModelCreatorto be visible from nested Smooks visitor in order get thejms-routerexample working with pipeline
Binaries
Apache Maven
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.0.0-RC3</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-api</artifactId>
<version>2.0.0-RC3</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-commons</artifactId>
<version>2.0.0-RC3</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-tck</artifactId>
<version>2.0.0-RC3</version>
</dependency>v2.0.0-RC2
Release Notes
New Features
- Support Java 11 (#581)
Miscellaneous Changes
- Updated dependencies:
- com.fasterxml:aalto-xml to version 1.3.2
- commons-net:commons-net to version 3.9.0
- com.thoughtworks.xstream:xstream to version 1.4.20
- com.fasterxml.woodstox:woodstox-core to version 6.5.1
- jaxen to version 2.0.0
- org.freemarker to version 2.3.32
- org.mvel:mvel2 to version 2.5.0.Final
Breaking Changes
- Scanning for
jakarta.annotation.PostContructandjakarta.annotation.PreDestroyinstead ofjavax.annotation.PostContructandjavax.annotation.PreDestroywhen constructing and destroying Smooks resources
You can follow the examples for reference to migrate your application.
Fixed Issues
- Class loader used for loading ContentHandlerFactory is not the same as the one set in ApplicationContext (#546)
Binaries
Apache Maven
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.0.0-RC2</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-api</artifactId>
<version>2.0.0-RC2</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-commons</artifactId>
<version>2.0.0-RC2</version>
</dependency><dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-tck</artifactId>
<version>2.0.0-RC2</version>
</dependency>v2.0.0-RC1
Release Notes
New Features
- Improved XPath support for resource selectors: functions like
not()are now supported. - Introduced
<core:echo/>resource to support no-op operations in pipelines.
Miscellaneous Changes
- Updated dependencies:
- com.fasterxml:aalto-xml to version 1.3.1
- com.fasterxml.woodstox:woodstox-core to version 6.2.8
- com.thoughtworks.xstream:xstream to version 1.4.19
- org.apache.logging.log4j:log4j-api to version 2.17.1
- org.mvel:mvel2 to version 2.4.14.Final
Breaking Changes
-
Dropped deprecated SAX filter type.
-
Removed org.smooks.api.resource.visitor.sax.SAXVisitor interface.
-
Removed org.smooks.api.delivery.sax.SAXText interface.
-
Removed org.smooks.api.delivery.sax.SAXElement interface.
-
Removed org.smooks.support.SAXElementWriterUtil class.
-
Removed org.smooks.support.SAXUtil class.
-
Renamed org.smooks.io.DomToXmlWriter to org.smooks.io.DomSerializer.
-
Dropped dependencies:
- javax.transaction:jta
- org.apache.ibatis:ibatis-sqlmap
- org.hibernate:hibernate-core
- javax.persistence:persistence-api
- commons-lang:commons-lang
You can follow the examples for reference to migrate your application.
Fixed Issues
- Pipeline doesn't inherit the content encoding of the Smooks execution context.
- Security vulnerabilities where the input XML might lead to XML External Entity or XInclude attacks.
- Incorrect registry keys returned in org.smooks.engine.lookup.InstanceLookup#apply.
Binaries
Apache Maven
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.0.0-RC1</version>
</dependency>v2.0.0-M3
Release Notes
New Features
-
Pipeline support to enrich data, rename/remove elements or attributes, and much more
<core:smooks>...</core:smooks>
-
Delegate reader: delegates events to nested visitors, to go on and create a new event stream from the visitor's output, useful for pipeline preprocessing
<core:delegate-reader>...</core:delegate-reader>
-
Type safe execution context
- Execution context attributes are now set and retrieved with org.smooks.api.TypedKey<T> references
Miscellaneous Changes
-
Updated dependencies
- commons-net:commons-net to version 3.8.0
- org.mvel:mvel2 to version 2.4.12.Final
- com.thoughtworks.xstream:xstream to version 1.4.16
-
Default SAX parser implementation changed from Apache Xerces to FasterXML's Woodstox
- Benchmarks consistently showed Woodstox outperforming Xerces
Breaking Changes
-
Java packages were re-organised to provide a cleaner and more intuitive package structure
-
org.smooks.api: represents the Java contract between the developer and Smooks. Developers can safely assume that referencing interfaces within this package will not lead to breakage in their applications when upgrading to minor or patch versions of Smooks.
-
org.smooks.engine: represents Smooks’s internals. Whenever possible, developers should avoid referencing this package's classes since no guarantee is given about their backwards compatibility between Smooks releases.
-
org.smooks.support: holds utility classes
-
org.smooks.io: contains helper classes for I/O
-
-
SAX NG ChildrenVisitor#visitChildText(Element, ExecutionContext) method signature changed to ChildrenVisitor#visitChildText(CharacterData, ExecutionContext)
-
Renamed UserDefinedResourceConfigList class to UserDefinedResourceConfigListLookup
-
Replaced ExecutionContext methods:
- setAttribute(Object, Object) with ExecutionContext#put(TypedKey<T>, T)
- getAttribute(Object) with ExecutionContext#get(TypedKey<T>)
- removeAttribute(Object) with ExecutionContext#remove(TypedKey<T>)
- getAttributes() with ExecutionContext#getAll()
- getWriter() with org.smooks.io.Stream#out(ExecutionContext)
-
Removed ExecutionContext#setWriter(Writer) method
-
close.empty.elements parameter defaults to false instead of true since self-closing tags are discouraged in many applications
-
Dropped dependencies
- xerces:xercesImpl
- javassist:javassist
- javax.servlet:servlet-api
- hsqldb:hsqldb
You can follow the examples for reference to migrate your application.
Binaries
Apache Maven
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.0.0-M3</version>
</dependency>v2.0.0-M2
Release Notes
New Features
-
SAX NG filter (experimental):
- Supersedes the SAX and DOM filters
- Brings with it a new visitor API which unifies the SAX and DOM visitor APIs
- Cartridges migrated to SAX NG
- Supports XSLT and StringTemplate resources unlike the legacy SAX filter
- Easily extensible with interceptors
-
Visitor mementos: a convenient way for stashing and un-stashing a visitor's state during its execution lifecycle.
-
New Smooks XSD schema (
xmlns="https://www.smooks.org/xsd/smooks-2.0.xsd"):- Uniform XML namespace declarations
- Dropped
default-selector-namespaceandselector-namespaceXML attributes in favour of declaring namespaces within the standardxmlnsattribute from thesmooks-resource-listelement - Removed
default-selectorattribute fromsmooks-resource-listelement: selectors need to be set explicitly
-
org.smooks.container.ExecutionContext#getWriter(): a new method for writing to an output stream in an abstract way regardless of which filter is active.
Miscellaneous Changes
- Updated dependencies:
- commons-net:commons-net to version 3.7.2
- org.mvel:mvel2 to version 2.4.10.Final
- com.thoughtworks.xstream:xstream to version 1.4.14
Breaking Changes
-
Dropped Smooks-specific annotations in favour of JSR annotations:
- Farewell
@ConfigParam,@Config,@AppContext, and@StreamResultWriter. Welcome@Inject - Farewell
@Initializeand@Uninitialize. Welcome@PostConstructand@PreDestroy
- Farewell
-
Dropped
org.smooks.container.ExecutionContext#isDefaultSerializationOn()method: replace withorg.smooks.delivery.ContentDeliveryConfig#isDefaultSerializationOn(). -
Renamed
org.smooks.container.ExecutionContext#getContext()toorg.smooks.container.ExecutionContext#getApplicationContext(). -
Renamed classes:
org.smooks.cdr.SmooksResourceConfigurationtoorg.smooks.cdr.ResourceConfig- Renamed
getSelectorSteps()togetSelectorPath(): aorg.smooks.cdr.xpath.SelectorPathis returned instead of a String array - Moved
getSelector()toorg.smooks.cdr.xpath.SelectorPath
- Renamed
org.smooks.cdr.SmooksResourceConfigurationListtoorg.smooks.cdr.ResourceConfigListorg.smooks.delivery.dom.serialize.SerializationUnittoorg.smooks.delivery.dom.serialize.DOMSerializerVisitor
You can follow the examples for reference to migrate your application.
Fixed Issues
- SmooksUtil: Exception created but not thrown (#158)
Binaries
Apache Maven
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.0.0-M2</version>
</dependency>