Skip to content

Releases: smooks/smooks

v2.2.1

03 Feb 10:03
a2a370c

Choose a tag to compare

Release Notes

Fixed Issues

  • Solved issue where Smooks doesn't write the closing tags of empty elements when closeEmptyElements filter 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

04 Jan 08:53
8c99910

Choose a tag to compare

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 from org.smooks.engine.DefaultApplicationContextBuilder#withFilterSettings
  • Updated dependencies:
    • org.freemarker:freemarker to 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 terminateOnException filter setting is false (#908)
  • Solved issue where PostFragmentLifecycle#onPostFragment is 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.Ref instances 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

11 Nov 20:24
024ca88

Choose a tag to compare

Release Notes

Miscellaneous Changes

  • Created org.smooks.api.NotAppContextScoped to 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-core to version 7.1.0
    • com.thoughtworks.xstream:xstream to 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

17 Oct 20:43
119afe1

Choose a tag to compare

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-reader to {https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd}rewrite
  • Rename XML attribute closeResult in {https://www.smooks.org/xsd/smooks/smooks-core-1.6.xsd}filterSettings to closeSink
  • Replace javax.xml.transform.Source parameter in Smooks#filterSource(...) method calls with:
    • org.smooks.io.source.JavaSource instead of org.smooks.io.payload.JavaSource
    • org.smooks.io.source.StringSource instead of org.smooks.io.payload.StringSource
    • org.smooks.io.source.ByteSource instead of org.smooks.io.payload.ByteSource
    • org.smooks.io.source.DOMSource instead of org.smooks.io.payload.DOMSource
    • org.smooks.io.source.JavaSourceWithoutEventStream instead of org.smooks.io.payload.JavaSourceWithoutEventStream
    • org.smooks.io.source.ReaderSource instead of javax.xml.transform.stream.StreamSource when the latter is constructed from java.io.Reader
    • org.smooks.io.source.StreamSource instead of javax.xml.transform.stream.StreamSource when the latter is constructed from java.io.InputStream
    • org.smooks.io.source.URLSource instead of javax.xml.transform.stream.StreamSource when the latter is constructed from a system ID
  • Replace javax.xml.transform.Result parameter in Smooks#filterSource(...) method calls with:
    • org.smooks.io.sink.StringSink instead of org.smooks.io.payload.StringResult
    • org.smooks.io.sink.JavaSink instead of org.smooks.io.payload.JavaResult
    • org.smooks.io.sink.ByteSink instead of org.smooks.io.payload.ByteResult
    • org.smooks.io.sink.DOMSink instead of javax.xml.transform.dom.DOMResult
    • org.smooks.io.sink.StreamSink instead of javax.xml.transform.stream.StreamResult when the latter is constructed from java.io.OutputStream
    • org.smooks.io.sink.WriterSink instead of javax.xml.transform.stream.StreamResult when the latter is constructed from java.io.Writer

Fixed Issues

  • core:delegate-reader doesn'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

17 Apr 15:40
a4d73b1

Choose a tag to compare

v2.0.0-RC4 Pre-release
Pre-release

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#addConfigurations method to org.smooks.Smooks#addResourceConfigs
  • Removed obsolete smooks-1.2 and smooks-core-1.5 XSDs
  • new TypedKey(String) becomes TypedKey#of(String) and new TypedKey() becomes TypedKey#of()
  • Classes in org.smooks.tck relocated to org.smooks.testkit; Maven artifact smooks-tck relocated to smooks-test-kit
  • Renamed ApplicationContext#getContentDeliveryConfigBuilderFactory to ApplicationContext#getContentDeliveryRuntimeFactory
  • Renamed org.smooks.api.lifecycle.ExecutionLifecycleCleanable#executeExecutionLifecycleCleanup to org.smooks.api.lifecycle.PostExecutionLifecycle#onPostExecution
  • Renamed org.smooks.api.lifecycle.VisitLifecycleCleanable#executeVisitLifecycleCleanup to org.smooks.api.lifecycle.PostFragmentLifecycle#onPostFragment
  • Renamed org.smooks.api.lifecycle.ExecutionLifecycleInitializable#executeExecutionLifecycleInitialize to org.smooks.api.lifecycle.PreExecutionLifecycle#onPreExecution
  • Renamed org.smooks.api.resource.config.ResourceConfigListFactory to org.smooks.api.resource.config.ResourceConfigSeqFactory
  • ResourceConfig#setDefaultResource renamed to ResourceConfig#setSystem; ResourceConfig#isDefaultResource renamed to ResourceConfig#isSystem
  • Renamed org.smooks.api.delivery.ConfigurationExpander to org.smooks.api.delivery.ResourceConfigExpander
  • Renamed org.smooks.api.delivery.event.ResourceBasedEvent to org.smooks.api.delivery.event.ResourceAwareEvent
  • Rename org.smooks.api.resource.config.ResourceConfig#getTargetProfile method to getProfile
  • Rename org.smooks.api.resource.config.ResourceConfig#setTargetProfile method to setProfile
  • Rename org.smooks.api.lifecycle.FilterLifecycle#onStarted method to onPreFilter
  • Rename org.smooks.api.lifecycle.FilterLifecycle#onFinished method to onPostFilter
  • Inherited org.smooks.api.resource.config.ParameterDecoderException from org.smooks.api.SmooksException instead from java.lang.RuntimeException

Fixed Issues

  • Regression in v2 when the last step in the selector has a predicate index (#769)
  • delegate-reader throws "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

27 Dec 17:02
5b27517

Choose a tag to compare

v2.0.0-RC3 Pre-release
Pre-release

Release Notes

Miscellaneous Changes

  • Implemented java.io.Closeable interface in org.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 setResourceLocator method from ApplicationContext interface: resource locator can now be set from DefaultApplicationContextBuilder
  • 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 DomModelCreator to be visible from nested Smooks visitor in order get the jms-router example 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

19 Jun 07:47
1160271

Choose a tag to compare

v2.0.0-RC2 Pre-release
Pre-release

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.PostContruct and jakarta.annotation.PreDestroy instead of javax.annotation.PostContruct and javax.annotation.PreDestroy when 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

23 Feb 01:30
65bb4fd

Choose a tag to compare

v2.0.0-RC1 Pre-release
Pre-release

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

27 Mar 11:34
83333dc

Choose a tag to compare

v2.0.0-M3 Pre-release
Pre-release

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

25 Nov 15:30
fd902a6

Choose a tag to compare

v2.0.0-M2 Pre-release
Pre-release

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-namespace and selector-namespace XML attributes in favour of declaring namespaces within the standard xmlns attribute from the smooks-resource-list element
    • Removed default-selector attribute from smooks-resource-list element: 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 @Initialize and @Uninitialize. Welcome @PostConstruct and @PreDestroy
  • Dropped org.smooks.container.ExecutionContext#isDefaultSerializationOn() method: replace with org.smooks.delivery.ContentDeliveryConfig#isDefaultSerializationOn().

  • Renamed org.smooks.container.ExecutionContext#getContext() to org.smooks.container.ExecutionContext#getApplicationContext().

  • Renamed classes:

    • org.smooks.cdr.SmooksResourceConfiguration to org.smooks.cdr.ResourceConfig
      • Renamed getSelectorSteps() to getSelectorPath(): a org.smooks.cdr.xpath.SelectorPath is returned instead of a String array
      • Moved getSelector() to org.smooks.cdr.xpath.SelectorPath
    • org.smooks.cdr.SmooksResourceConfigurationList to org.smooks.cdr.ResourceConfigList
    • org.smooks.delivery.dom.serialize.SerializationUnit to org.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>