Smooks Versions Save

Extensible data integration Java framework for building XML and non-XML fragment-based applications

v2.0.0-RC4

1 month ago

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

4 months ago

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

11 months ago

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

2 years ago

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

3 years ago

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

3 years ago

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

Binaries

Apache Maven

<dependency>
  <groupId>org.smooks</groupId>
  <artifactId>smooks-core</artifactId>
  <version>2.0.0-M2</version>
</dependency>

v2.0.0-M1

3 years ago

Release Notes

New Features

  • Independent release cycles for all cartridges and one Maven BOM (bill of materials) to track them all
  • After reaching consensus among our code contributors, we've dual-licensed Smooks under LGPL v3.0 and Apache License 2.0. This license change keeps Smooks open source while adopting a permissive stance to modifications.
  • Numerous dependency updates

Fixed Issues

  • #87: Documentation - URL's pointing wrong
  • #98: What happened to segref?
  • #108: Is there repetition separator support
  • #123: FreeMarker dependency outdated
  • #126: EDI parsing does not handle segment groups with an optional first segments
  • #127: EDI parser does not support fields with cardinality larger than 1
  • #128: milyn.org is dead
  • #135: SAX content handler that generates edifact messages
  • #148: xml version removed from edimappingconfig.xml when using maven java plugin
  • #162 EJC generates v1.5 edimap file from v1.6
  • #255: the attr of minOccurs became "realOccurs" in the EDI mapping

Breaking Changes

  • Support for Java 7 was dropped. Your application now needs to be compiled to at least Java 8.
  • The Java classes in the packages "org.milyn" and "org.milyn.smooks" were relocated to the package "org.smooks"
  • The legacy document root fragment selector "$document" is no longer supported. References to it need to be replaced with "#document".
  • Relocated Maven artifacts: we are now publishing Smooks artifacts under Maven group IDs prefixed with "org.smooks". Cartridges are published under new artifact IDs.
  • XSDs now reside in "https://www.smooks.org" instead of "http://www.milyn.org"

You can follow the examples for reference to migrate your application.

v1.7.1

5 years ago

Issued fixed

  • #76: Issue with DataDecoder.Factory in a multi-threaded environment
  • #86: NullPointerException in ConfigGenerator on Microsoft Windows when output file path is implicit as the current directory
  • #122: Unable to run mvn clean install
  • #129: Allow UNEdifactInterchangeParser to be extended with other syntax identifier codes
  • #131: Add IATA Syntax identifiers to UNEdifact41ControlBlockHandlerFactory
  • #137: NullPointerException when using UNEdifactInterchangeParser with an XSLT transformer handler
  • #146: SmooksRoutingException when creating the same directory in multiple concurrent threads
  • #155: Unable to build with JDK 1.6 and Maven 3.2
  • #156: Integration test failure in EDI-to-DB ETL module
  • #157: Unable to build EDIFACT bindings with Smooks version 1.7.0