Extensible data integration Java framework for building XML and non-XML fragment-based applications
org.smooks.Smooks#addConfigurations
method to org.smooks.Smooks#addResourceConfigs
smooks-1.2
and smooks-core-1.5
XSDsnew TypedKey(String)
becomes TypedKey#of(String)
and new TypedKey()
becomes TypedKey#of()
org.smooks.tck
relocated to org.smooks.testkit
; Maven artifact smooks-tck
relocated to smooks-test-kit
ApplicationContext#getContentDeliveryConfigBuilderFactory
to ApplicationContext#getContentDeliveryRuntimeFactory
org.smooks.api.lifecycle.ExecutionLifecycleCleanable#executeExecutionLifecycleCleanup
to org.smooks.api.lifecycle.PostExecutionLifecycle#onPostExecution
org.smooks.api.lifecycle.VisitLifecycleCleanable#executeVisitLifecycleCleanup
to org.smooks.api.lifecycle.PostFragmentLifecycle#onPostFragment
org.smooks.api.lifecycle.ExecutionLifecycleInitializable#executeExecutionLifecycleInitialize
to org.smooks.api.lifecycle.PreExecutionLifecycle#onPreExecution
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
org.smooks.api.delivery.ConfigurationExpander
to org.smooks.api.delivery.ResourceConfigExpander
org.smooks.api.delivery.event.ResourceBasedEvent
to org.smooks.api.delivery.event.ResourceAwareEvent
org.smooks.api.resource.config.ResourceConfig#getTargetProfile
method to getProfile
org.smooks.api.resource.config.ResourceConfig#setTargetProfile
method to setProfile
org.smooks.api.lifecycle.FilterLifecycle#onStarted
method to onPreFilter
org.smooks.api.lifecycle.FilterLifecycle#onFinished
method to onPostFilter
org.smooks.api.resource.config.ParameterDecoderException
from org.smooks.api.SmooksException
instead from java.lang.RuntimeException
delegate-reader
throws "com.fasterxml.aalto.WFCException: Invalid UTF-8" when writing multi-byte characters (#755)<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>
Implemented java.io.Closeable
interface in org.smooks.Smooks
Updated dependencies:
org.smooks.support.CollectionsUtil
class since it can be easily replaced with Java 8 alternativessetResourceLocator
method from ApplicationContext
interface: resource locator can now be set from DefaultApplicationContextBuilder
DomModelCreator
to be visible from nested Smooks visitor in order get the jms-router
example working with pipeline<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>
jakarta.annotation.PostContruct
and jakarta.annotation.PreDestroy
instead of javax.annotation.PostContruct
and javax.annotation.PreDestroy
when constructing and destroying Smooks resourcesYou can follow the examples for reference to migrate your application.
<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>
not()
are now supported.<core:echo/>
resource to support no-op operations in pipelines.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:
You can follow the examples for reference to migrate your application.
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.0.0-RC1</version>
</dependency>
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
Updated dependencies
Default SAX parser implementation changed from Apache Xerces to FasterXML's Woodstox
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:
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
You can follow the examples for reference to migrate your application.
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.0.0-M3</version>
</dependency>
SAX NG filter (experimental):
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"
):
default-selector-namespace
and selector-namespace
XML attributes in favour of declaring namespaces within the standard xmlns
attribute from the smooks-resource-list
elementdefault-selector
attribute from smooks-resource-list
element: selectors need to be set explicitlyorg.smooks.container.ExecutionContext#getWriter()
: a new method for writing to an output stream in an abstract way regardless of which filter is active.
Dropped Smooks-specific annotations in favour of JSR annotations:
@ConfigParam
, @Config
, @AppContext
, and @StreamResultWriter
. Welcome @Inject
@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
getSelectorSteps()
to getSelectorPath()
: a org.smooks.cdr.xpath.SelectorPath
is returned instead of a String arraygetSelector()
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.
<dependency>
<groupId>org.smooks</groupId>
<artifactId>smooks-core</artifactId>
<version>2.0.0-M2</version>
</dependency>
You can follow the examples for reference to migrate your application.
DataDecoder.Factory
in a multi-threaded environmentNullPointerException
in ConfigGenerator
on Microsoft Windows when output file path is implicit as the current directorymvn clean install
UNEdifactInterchangeParser
to be extended with other syntax identifier codesUNEdifact41ControlBlockHandlerFactory
NullPointerException
when using UNEdifactInterchangeParser
with an XSLT transformer handlerSmooksRoutingException
when creating the same directory in multiple concurrent threads