An extensible Java framework for building XML and non-XML streaming applications

Overview

Smooks Framework

This is the Git source code repository for the Smooks Project.

Build Status

Build Status

Building

Pre-requisites

  1. JDK 8
  2. Apache Maven 3.2.x

Maven

  1. git clone git://github.com/smooks/smooks.git
  2. cd smooks
  3. mvn clean install

Note you will need both maven (version 3+) and git installed on your local machine.

Docker Build

You can also build from the docker image:

  1. Install docker.
  2. Run sudo docker build -t smooks github.com/smooks/smooks. This will create a docker image named "smooks" that contains the correct build environment and a cloned copy of this git repo.
  3. Run sudo docker run -i smooks mvn clean install to build the source code.

Community

You can join these groups and chats to discuss and ask Smooks related questions:

  • Mailing list: google groups: smooks-user
  • Mailing list: google groups: smooks-user
  • Chat room about using Smooks: gitter: smooks/smooks
  • Issue tracker: github: smooks/smooks

Contributing

If you'd like to contribute some code/fixes to Smooks, please see the following guidelines.

License

Smooks is open source and licensed under the terms of the Apache License Version 2.0, or the GNU Lesser General Public License version 3.0 or later. You may use Smooks according to either of these licenses as is most appropriate for your project.

SPDX-License-Identifier: Apache-2.0 OR LGPL-3.0-or-later

Comments
  • MILYN-585

    MILYN-585

    Added XML Schema Generation to the ECT artifacts. I didn't squashed the commits because I would like to track history on my branch. When merged commits can be squashed.

    opened by zubairov 24
  • Project cleaning and re-organizing

    Project cleaning and re-organizing

    • separated main pom into smooks-parent pom and aggregator
    • parent pom maintains most/all of dependency information - using dependency management all-round
    • instroduced aggregator pom for cartridges, scribe and examples sub-modules
    • using maven bundle plugin 2.4.0 to produce OSGi bundles
    • bump commons-logging to 1.1.3
    • bump junit version to 4.11
    • disabled failing EDI modules (commented out + TODO)
    opened by ieugen 20
  • Integrate with a Travis CI server

    Integrate with a Travis CI server

    Some public CI services offer free project builds for OpenSource projects.

    We can integrate Smooks with such a service and display a build status icon on the project page, in the README

    Only the owner of the project can do that, and it should take somewhere around 10-30 min.

    • http://about.travis-ci.org/docs/user/status-images/
    • http://stackoverflow.com/questions/19810386/showing-travis-build-status-in-github-repo
    • https://travis-ci.org/
    opened by ieugen 15
  • Jxls integration - to enable smooks to generate MS Excel as target file

    Jxls integration - to enable smooks to generate MS Excel as target file

    Hi, This is a rough version, to put jxls as another kind of templating in smooks. The unit test codes have not been pushed, and xsd haven't been reviewed carefully.

    Sent this pull request, only ask for help, if I'm walking on the right way.

    opened by zpshen 9
  •  org.smooks.cdr.SmooksConfigurationException: Unable to locate Smooks digest configuration '/META-INF/xsd/smooks/edi-2.0.xsd-smooks.xml' for extended resource configuration namespace 'https://www.smooks.org/xsd/smooks/edi-2.0.xsd'.  This resource must be available on the classpath. 	at org.smooks.cdr.XMLConfigDigester.assertExtendedConfigOK(XMLConfigDigester.java:554)

    org.smooks.cdr.SmooksConfigurationException: Unable to locate Smooks digest configuration '/META-INF/xsd/smooks/edi-2.0.xsd-smooks.xml' for extended resource configuration namespace 'https://www.smooks.org/xsd/smooks/edi-2.0.xsd'. This resource must be available on the classpath. at org.smooks.cdr.XMLConfigDigester.assertExtendedConfigOK(XMLConfigDigester.java:554)

    Hello!

    When trying to perform edi to xml transformation I am getting below error. (TRACE below) Unable to locate Smooks digest configuration '/META-INF/xsd/smooks/edi-2.0.xsd-smooks.xml'

    • It works fine if I am making one call at a time to initiate Smooks. i.e. // Instantiate Smooks with the config... Smooks smooks = new Smooks(smookConfigPath);

    • It throws the below error when I am trying to concurrently perform the transformation by using ExecutorService

    Using JAVA 8. Please let me know if more details are required.

    org.smooks.cdr.SmooksConfigurationException: Unable to locate Smooks digest configuration '/META-INF/xsd/smooks/edi-2.0.xsd-smooks.xml' for extended resource configuration namespace 'https://www.smooks.org/xsd/smooks/edi-2.0.xsd'. This resource must be available on the classpath. at org.smooks.cdr.XMLConfigDigester.assertExtendedConfigOK(XMLConfigDigester.java:554) at org.smooks.cdr.XMLConfigDigester.getExtenededConfigDigester(XMLConfigDigester.java:519) at org.smooks.cdr.XMLConfigDigester.digestExtendedResourceConfig(XMLConfigDigester.java:477) at org.smooks.cdr.XMLConfigDigester.digestV12XSDValidatedConfig(XMLConfigDigester.java:276) at org.smooks.cdr.XMLConfigDigester.digestConfigRecursively(XMLConfigDigester.java:231) at org.smooks.cdr.XMLConfigDigester.digestConfig(XMLConfigDigester.java:201) at org.smooks.cdr.SmooksResourceConfigurationStore.registerResources(SmooksResourceConfigurationStore.java:246) at org.smooks.Smooks.addConfigurations(Smooks.java:364) at org.smooks.Smooks.addConfigurations(Smooks.java:336) at org.smooks.Smooks.(Smooks.java:177)

    type: bug 
    opened by agnissh 8
  • MILYN-658 - Groovy upgrade

    MILYN-658 - Groovy upgrade

    Pull request for groovy upgrade - still the issue with not passing test is not resolved #57

    Root cause of the issue is the size of the ml tag value - if the value is to long end of the value is added twice - probably wrongly parsed by the xerces ( https://gist.github.com/hicolour/801ecc7f14f124c2e7f6#file-smooks-xerces )

    junit.framework.ComparisonFailure: expected:<...em>Luxury Helicopter[] <ite...> but was:<...em>Luxury Helicopter[ter]

    Definitely issue is not caused by groovy upgrade - output of the groovy script is correct.

    To show nutshell of the issue test was split into failing and not failing case.

    opened by hicolour 6
  • Build is environment dependent - take 2 - failing tests

    Build is environment dependent - take 2 - failing tests

    Some tests (EDItoJavaTest.java) test is failing on travis - but passes on my machine. See https://api.travis-ci.org/jobs/16306571/log.txt?deansi=true for details.

    Example:

    Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 2.583 sec <<< FAILURE! - in example.EDItoJavaTest
    test(example.EDItoJavaTest)  Time elapsed: 2.508 sec  <<< FAILURE!
    org.junit.ComparisonFailure: Actual does not match expected. expected:<...mple.model.Order>
      [  <header>
            <orderId>1</orderId>
            <orderStatus>0</orderStatus>
            <netAmount>59.97</netAmount>
            <totalAmount>64.92</totalAmount>
            <tax>4.95</tax>
            <customer>
                <userName>user1</userName>
                <firstName>Harry</firstName>
                <lastName>Fletcher</lastName>
                <state>SD</state>
            </customer>
        </header>
        <orderItems>
            <example.model.OrderItem>
                <quantity>1</quantity>
                <productId>364</productId>
                <price>29.98</price>
                <title>The 40-Year-Old Virgin</title>
            </example.model.OrderItem>
            <example.model.OrderItem>
                <quantity>1</quantity>
                <productId>299</productId>
                <price>29.99</price>
                <title>Pulp Fiction</title>
            </example.model.OrderItem>
      ]  </orderItems>
    </ex...> but was:<...mple.model.Order>
      [<header>
        <orderId>1</orderId>
        <orderStatus>0</orderStatus>
        <netAmount>59.97</netAmount>
        <totalAmount>64.92</totalAmount>
        <tax>4.95</tax>
        <date>2006-11-15 18:45:28.0 UTC</date>
        <customer>
          <userName>user1</userName>
          <firstName>Harry</firstName>
          <lastName>Fletcher</lastName>
          <state>SD</state>
        </customer>
      </header>
      <orderItems>
        <example.model.OrderItem>
          <quantity>1</quantity>
          <productId>364</productId>
          <price>29.98</price>
          <title>The 40-Year-Old Virgin</title>
        </example.model.OrderItem>
        <example.model.OrderItem>
          <quantity>1</quantity>
          <productId>299</productId>
          <price>29.99</price>
          <title>Pulp Fiction</title>
        </example.model.OrderItem>
    ]  </orderItems>
    </ex...>
        at org.junit.Assert.assertEquals(Assert.java:115)
        at example.EDItoJavaTest.test(EDItoJavaTest.java:48)
    
    opened by ieugen 6
  • MILYN-588

    MILYN-588

    Implemented validation of XML going from EDIParser with the XML Schemas generated inside the UN/EDIFACT mapping JARs. Fixed a severe bug in EcoreGenerator which affect generated XML Schemas too.

    opened by zubairov 6
  • build(deps): bump woodstox-core from 6.2.3 to 6.2.4

    build(deps): bump woodstox-core from 6.2.3 to 6.2.4

    Bumps woodstox-core from 6.2.3 to 6.2.4.

    Commits
    • 0cdbf0d [maven-release-plugin] prepare release woodstox-core-6.2.4
    • 6d25170 Fix #122
    • 913c115 More warnings cleanup
    • 90b048a Some more #121 fixes
    • 0f57cd2 Change never-reachable code from assignmen to return (one more fix for #121)
    • bfd149a Remove unnecessary checks wrt #121
    • b8eba25 First minor fix wrt #121; only affects case of (not) detecting invalid ctrl c...
    • 46ea1b4 Additional clean up to remove redundant code
    • ac6758f Merge branch 'master' of github.com:FasterXML/woodstox
    • b1ae20e Minor warnings removal
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 5
  • Bump hibernate-core.version from 5.4.17.Final to 5.4.21.Final

    Bump hibernate-core.version from 5.4.17.Final to 5.4.21.Final

    Bumps hibernate-core.version from 5.4.17.Final to 5.4.21.Final. Updates hibernate-core from 5.4.17.Final to 5.4.21.Final

    Changelog

    Sourced from hibernate-core's changelog.

    Changes in 5.4.21.Final (August 27, 2020)

    https://hibernate.atlassian.net/projects/HHH/versions/31844

    ** Bug * [HHH-14193] - MultipleLinesSqlCommandExtractor should tolerate empty input scripts * [HHH-14187] - Lazy loading fails if an entity appears twice in the object graph when enhancement as proxy is enabled * [HHH-14183] - LocalTimeJavaDescriptor attempts casting to LocalDate * [HHH-14179] - MultiLineImportExtractorTest fails on Windows * [HHH-14175] - StatefulPersistenceContext#getLoadedCollectionOwnerOrNull could NPE on missing CollectionEntry * [HHH-14159] - StandardQueryCacheFactory mentioned in the docs but does not exist * [HHH-14156] - IN subquery predicate with entity aliases produces wrong SQL "too few columns in subquery" * [HHH-14154] - Incorrect SQL generated from Criteria API when concat() and function() methods are used together * [HHH-14153] - HQL update query on abstract entity generates temporary table * [HHH-14152] - Query fails after upgrading to 5.4.20.Final * [HHH-14149] - Improve efficiency of LazyAttributesMetadata#getLazyAttributeNames * [HHH-13380] - Bytecode enhanced entities might throw LazyInitializationException from custom equals/hashcode implementations

    ** Improvement * [HHH-14190] - Rename isEmptyOrWhitespace() to isBlank() and improve its efficiency * [HHH-14160] - Use a runtime used class for testing Bean Validation presence

    ** Patch * [HHH-14181] - HQL update/delete query resulted in same table being updated twice * [HHH-3326] - Temporary tables created in SQLServer use the collation for tempdb, not the application database

    ** Task * [HHH-14150] - Upgrade to Byteman 4.0.13

    Changes in 5.4.20.Final (August 10, 2020)

    https://hibernate.atlassian.net/projects/HHH/versions/31844

    ** Bug * [HHH-14129] - Bidirectional relationship with @NotNull fails to save * [HHH-14124] - Entity graph (fetch graph) is incorrectly applied to query results beyond the first one * [HHH-14109] - IN Clause Parameter Padding not working if parameter count is between last valid power of 2 number and 'in expression limit' * [HHH-13974] - FlushMode set through SessionBuilder#flushMode() is ignored

    ** Improvement * [HHH-14142] - Make constructor of StatelessSessionImpl public * [HHH-14137] - Empty String Check Performance Improvement * [HHH-14133] - Fix mistake in example code for 'second level cache' in user guide

    ** Task * [HHH-14144] - Explicitly set localization assumptions for the build and testsuite * [HHH-14143] - Detect illegal concurrent usage of LogicalConnectionManagedImpl

    Commits
    • 31f8d9e 5.4.21.Final
    • 55b46f1 HHH-14153 refactoring after HHH-14153
    • a497955 HHH-14153 Make buildAppropriateStatementExecutor() protected
    • 6e9b488 HHH-14153 add test
    • 9dd2d94 HHH-14153 further optimization for single-table HQL update
    • f182b3b HHH-14153 clean up BasicExecutor and friends
    • 564c05a HHH-14153 optimize away temp table for single-table HQL update
    • b1dea1b HHH-14193 MultipleLinesSqlCommandExtractor should tolerate empty input scripts
    • b4afea7 HHH-14152 sql-script.g fix for antlr non deterministic warning
    • 8beb1a2 HHH-14152 sql-script.g fix for antlr non deterministic warning
    • Additional commits viewable in compare view

    Updates hibernate-entitymanager from 5.4.17.Final to 5.4.21.Final

    Changelog

    Sourced from hibernate-entitymanager's changelog.

    Changes in 5.4.21.Final (August 27, 2020)

    https://hibernate.atlassian.net/projects/HHH/versions/31844

    ** Bug * [HHH-14193] - MultipleLinesSqlCommandExtractor should tolerate empty input scripts * [HHH-14187] - Lazy loading fails if an entity appears twice in the object graph when enhancement as proxy is enabled * [HHH-14183] - LocalTimeJavaDescriptor attempts casting to LocalDate * [HHH-14179] - MultiLineImportExtractorTest fails on Windows * [HHH-14175] - StatefulPersistenceContext#getLoadedCollectionOwnerOrNull could NPE on missing CollectionEntry * [HHH-14159] - StandardQueryCacheFactory mentioned in the docs but does not exist * [HHH-14156] - IN subquery predicate with entity aliases produces wrong SQL "too few columns in subquery" * [HHH-14154] - Incorrect SQL generated from Criteria API when concat() and function() methods are used together * [HHH-14153] - HQL update query on abstract entity generates temporary table * [HHH-14152] - Query fails after upgrading to 5.4.20.Final * [HHH-14149] - Improve efficiency of LazyAttributesMetadata#getLazyAttributeNames * [HHH-13380] - Bytecode enhanced entities might throw LazyInitializationException from custom equals/hashcode implementations

    ** Improvement * [HHH-14190] - Rename isEmptyOrWhitespace() to isBlank() and improve its efficiency * [HHH-14160] - Use a runtime used class for testing Bean Validation presence

    ** Patch * [HHH-14181] - HQL update/delete query resulted in same table being updated twice * [HHH-3326] - Temporary tables created in SQLServer use the collation for tempdb, not the application database

    ** Task * [HHH-14150] - Upgrade to Byteman 4.0.13

    Changes in 5.4.20.Final (August 10, 2020)

    https://hibernate.atlassian.net/projects/HHH/versions/31844

    ** Bug * [HHH-14129] - Bidirectional relationship with @NotNull fails to save * [HHH-14124] - Entity graph (fetch graph) is incorrectly applied to query results beyond the first one * [HHH-14109] - IN Clause Parameter Padding not working if parameter count is between last valid power of 2 number and 'in expression limit' * [HHH-13974] - FlushMode set through SessionBuilder#flushMode() is ignored

    ** Improvement * [HHH-14142] - Make constructor of StatelessSessionImpl public * [HHH-14137] - Empty String Check Performance Improvement * [HHH-14133] - Fix mistake in example code for 'second level cache' in user guide

    ** Task * [HHH-14144] - Explicitly set localization assumptions for the build and testsuite * [HHH-14143] - Detect illegal concurrent usage of LogicalConnectionManagedImpl

    Commits
    • 31f8d9e 5.4.21.Final
    • 55b46f1 HHH-14153 refactoring after HHH-14153
    • a497955 HHH-14153 Make buildAppropriateStatementExecutor() protected
    • 6e9b488 HHH-14153 add test
    • 9dd2d94 HHH-14153 further optimization for single-table HQL update
    • f182b3b HHH-14153 clean up BasicExecutor and friends
    • 564c05a HHH-14153 optimize away temp table for single-table HQL update
    • b1dea1b HHH-14193 MultipleLinesSqlCommandExtractor should tolerate empty input scripts
    • b4afea7 HHH-14152 sql-script.g fix for antlr non deterministic warning
    • 8beb1a2 HHH-14152 sql-script.g fix for antlr non deterministic warning
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 5
  • edifact-schemas:d93a -> Cannot resolve the name 'D93A:SPS-SamplingParametersForSummaryStatiC1DTMDateTimePeriod'

    edifact-schemas:d93a -> Cannot resolve the name 'D93A:SPS-SamplingParametersForSummaryStatiC1DTMDateTimePeriod'

    Hi team,

    I wanted to parse an edifact file using smooks on d93a directory and had the following issue:

    Caused by: org.smooks.cdr.SmooksConfigurationException: org.smooks.cdr.SmooksConfigurationException: java.lang.RuntimeException: Schema Definition Error: Error loading schema due to org.xml.sax.SAXParseException; systemId: jar:file:/Users/user/.m2/repository/org/smooks/cartridges/edi/edifact-schemas/2.0.0-SNAPSHOT/edifact-schemas-2.0.0-20200503.064839-16-d93a.jar!/d93a/EDIFACT-Messages.dfdl.xsd; lineNumber: 5045; columnNumber: 211; src-resolve: Cannot resolve the name 'D93A:SPS-SamplingParametersForSummaryStatiC1DTMDateTimePeriod' to a(n) 'type definition' component.
    Schema context: file:/var/folders/dt/kh2b6dzs0kn01ytwdr9ml9n80000gn/T/EDIFACT-Interchange13258740284105143729.dfdl.xsd Location in file:/var/folders/dt/kh2b6dzs0kn01ytwdr9ml9n80000gn/T/EDIFACT-Interchange13258740284105143729.dfdl.xsd
    

    It seems that the EDIFACT-Messages.dfdl.xsd contains an unkown type here

                <xsd:element maxOccurs="200" minOccurs="0" name="SegGrp-5">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:sequence dfdl:initiatedContent="yes">
                                <xsd:element dfdl:initiator="LIN" dfdl:ref="ibmEdiFmt:EDISegmentFormat" maxOccurs="1" minOccurs="1" name="LIN" type="D93A:LIN-LineItem"/>
                                <xsd:element dfdl:initiator="PIA" dfdl:ref="ibmEdiFmt:EDISegmentFormat" maxOccurs="10" minOccurs="0" name="PIA" type="D93A:PIA-AdditionalProductId"/>
                                <xsd:element dfdl:initiator="IMD" dfdl:ref="ibmEdiFmt:EDISegmentFormat" maxOccurs="10" minOccurs="0" name="IMD" type="D93A:IMD-ItemDescription"/>
                                <xsd:element dfdl:initiator="MEA" dfdl:ref="ibmEdiFmt:EDISegmentFormat" maxOccurs="10" minOccurs="0" name="MEA" type="D93A:MEA-Measurements"/>
                                <xsd:element dfdl:initiator="PSD" dfdl:ref="ibmEdiFmt:EDISegmentFormat" maxOccurs="1" minOccurs="0" name="PSD" type="D93A:PSD-PhysicalSampleDescription"/>
                                <xsd:element dfdl:initiator="SPS" dfdl:ref="ibmEdiFmt:EDISegmentFormat" maxOccurs="10" minOccurs="0" name="SPS" type="D93A:SPS-SamplingParametersForSummaryStatiC1DTMDateTimePeriod"/>
                                <xsd:element dfdl:initiator="QTY" dfdl:ref="ibmEdiFmt:EDISegmentFormat" maxOccurs="10" minOccurs="0" name="QTY" type="D93A:QTY-Quantity"/>
                                <xsd:element dfdl:initiator="FTX" dfdl:ref="ibmEdiFmt:EDISegmentFormat" maxOccurs="5" minOccurs="0" name="FTX" type="D93A:FTX-FreeText"/>
                            </xsd:sequence>
    

    The type D93A:SPS-SamplingParametersForSummaryStatiC1DTMDateTimePeriod is missing.

    I am using the latest 2.0.0-SNAPSHOT builds in Mac with Java 11.

    Thanks and cheers!

    status: wont do/fix 
    opened by deradam 5
  • build(deps-dev): bump mockito-core from 1.10.19 to 4.11.0

    build(deps-dev): bump mockito-core from 1.10.19 to 4.11.0

    Bumps mockito-core from 1.10.19 to 4.11.0.

    Release notes

    Sourced from mockito-core's releases.

    v4.11.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.11.0

    v4.10.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.10.0

    v4.9.0

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.9.0

    v4.8.1

    Changelog generated by Shipkit Changelog Gradle Plugin

    4.8.1

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • build(deps): bump jaxen from 1.2.0 to 2.0.0

    build(deps): bump jaxen from 1.2.0 to 2.0.0

    Bumps jaxen from 1.2.0 to 2.0.0.

    Release notes

    Sourced from jaxen's releases.

    2.0.0

    Despite the major version bump, this should be a drop in replacement for almost every project, The two major possible incompatibilities are:

    • The minimum supported Java version is now 1.5, up from 1.4 in 1.2.0 and 1.3 in 1.1.6.
    • dom4j, XOM, and JDOM are now optional dependencies so if a project was depending on them to be loaded transitively it will need to add explicit dependencies to build.

    On the plus side, this makes classpaths much smaller and less complex, and will shut up a lot of noise from static analysis tools.

    In addition the Jaxen core code is also a little smaller and has fixed a few minor bugs in XPath evaluation, mostly weird cases found by fuzzing that are unlikely to arise in practice.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Upgrade to atleast java 9 to use Jakarta EE 9 namespace

    Upgrade to atleast java 9 to use Jakarta EE 9 namespace

    Upgrading to atleast java 9 to use Jakarta EE 9 namespace will become increasingly necessary to play nice with other frameworks. Spring framework 6 and spring boot 3 have this minimum requirement

    Changes needed include references to javax -> jakarta packages

    opened by hdip 1
  • Smooks-all for 2.0

    Smooks-all for 2.0

    Currenlty I am using the stable version 1.7.1

    There I am using the smooks-all version. For Smooks 2.0 this is only available until milestone 2. Will this be updated to the latest version (RC and later):

    https://mvnrepository.com/artifact/org.smooks/smooks-all/2.0.0-M2

    opened by skin27 0
  • build(deps-dev): bump log4j2.version from 2.17.1 to 2.19.0

    build(deps-dev): bump log4j2.version from 2.17.1 to 2.19.0

    Bumps log4j2.version from 2.17.1 to 2.19.0. Updates log4j-api from 2.17.1 to 2.19.0

    Updates log4j-slf4j-impl from 2.17.1 to 2.19.0

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • error in opening zip file in Initialisation

    error in opening zip file in Initialisation

    In this code: Smooks smooks = new Smooks("conf/smooks-config.xml"); I get the error "error in opening zip file"

    This comes from org.smooks.classpath.Scanner.scanClasspath.

    The debug log shows that the Scanner want to unzip an *.pom textfile: DEBUG org.smooks.classpath.Scanner:57:handleArchive:118 ~ Scanning archive: C:\Users\User\.m2\repository\com\sun\xml\ws\jaxws-ri\2.3.0\jaxws-ri-2.3.0.pom

    This comes from my Maven projects dependencies:

    <dependency>
    	<groupId>com.sun.xml.ws</groupId>
    	<artifactId>jaxws-ri</artifactId>
    	<version>2.3.0</version>
    	<type>pom</type>
    </dependency>
    

    Please filter pom-Files or ignoring this kind of error. I think it is better to ignore, because it is not relevant to start Smooks. Error happens in M2 and M3. A M3-Maven Repository for smooks-all doesn't exists.

    priority: low 
    opened by paulsen-it 2
Releases(v2.0.0-RC1)
  • v2.0.0-RC1(Feb 23, 2022)

    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>
    
    Source code(tar.gz)
    Source code(zip)
    recording.zip(5.78 MB)
  • v2.0.0-M3(Mar 27, 2021)

    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>
    
    Source code(tar.gz)
    Source code(zip)
    recording.zip(4.14 MB)
  • v2.0.0-M2(Nov 25, 2020)

    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 (https://github.com/smooks/smooks/issues/158)

    Binaries

    Apache Maven

    <dependency>
      <groupId>org.smooks</groupId>
      <artifactId>smooks-core</artifactId>
      <version>2.0.0-M2</version>
    </dependency>
    
    Source code(tar.gz)
    Source code(zip)
  • v2.0.0-M1(Aug 12, 2020)

    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.

    Source code(tar.gz)
    Source code(zip)
  • v1.7.1(Oct 29, 2018)

    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
    Source code(tar.gz)
    Source code(zip)
Owner
Smooks Framework
An extensible Java framework for building XML and non-XML (CSV, EDI, Java, etc...) streaming applications
Smooks Framework
An MIT AI2 extension to allows developers to show media style notifications for their applications.

Media Notifications An MIT AI2 extension to allows developers to show media style notifications for their applications.

Shreyash Saitwal 5 Jan 7, 2023
fastutil extends the Java Collections Framework by providing type-specific maps, sets, lists and queues.

fastutil is a collection of type-specific Java classes that extend the Java Collections Framework by providing several containers, such as maps, sets, lists and prority queues, implementing the interfaces of the java.util package; it also provides big (64-bit) arrays, sets, lists, and fast, practical I/O classes for binary and text files.

Sebastiano Vigna 1.5k Jan 7, 2023
Auto Code Audit Framework for Java

前言 笔者最近在研究java自动化代码审计这方面的内容,也看了一些相关的文章,其中主要是跟着4ra1n师傅的文章进行学习的。目前学到的有两种自动化审计思路,一是AST,二是ASM。前者基于java源代码,后者基于字节码。

r2 61 Nov 30, 2022
Core part of pipes framework plus some commonly used extensions

Pipes Pipes is a simple, lightweight data processing framework for Java. This repo comes with the core part plus three extensions (For Google Big Quer

null 7 Oct 4, 2022
Sauron, the all seeing eye! It is a service to generate automated reports and track migrations, changes and dependency versions for backend services also report on known CVE and security issues.

SAURON - VERSION AND DEPLOYMENT TRACKER DESCRIPTION Sauron, the all seeing eye! It is a service to generate automated reports and track migrations, ch

FREENOWTech 20 Oct 31, 2022
A Local implementation of a java library functions to create a serverside and clientside application which will communicate over TCP using given port and ip address.

A Local implementation of java library functions to create a serverside and clientside application which will communicate over TCP using given port and ip address.

Isaac Barry 1 Feb 12, 2022
Java Notes & Codes for better understanding and it contains all the funtions with examples and also added Cheat Sheet for Revision

Java Notes & Codes for better understanding and it contains all the funtions with examples and also added Cheat Sheet for Revision...

Ujjawal Singh 1 Nov 30, 2022
A calculator that performs various operations such as addition, subtraction, multiplication and division of positive and negative values

A calculator that performs various operations such as addition, subtraction, multiplication and division of positive and negative values The calculator also does percentages, square roots and squares

Andrey Fabricio 1 Jan 31, 2022
Tripoli imports raw mass spectrometer data files and supports interactive review and archiving of isotopic data.

Tripoli imports raw mass spectrometer data files and supports interactive review and archiving of isotopic data. Tripoli facilitates visualization of temporal trends and scatter during measurement, statistically rigorous filtering of data, and calculation of statistical parameters.

CIRDLES 7 Dec 15, 2022
Automatically discover and tag PII data across BigQuery tables and apply column-level access controls based on confidentiality level.

Automatically discover and tag PII data across BigQuery tables and apply column-level access controls based on confidentiality level.

Google Cloud Platform 18 Dec 29, 2022
A Java to iOS Objective-C translation tool and runtime.

J2ObjC: Java to Objective-C Translator and Runtime Project site: https://j2objc.org J2ObjC blog: https://j2objc.blogspot.com Questions and discussion:

Google 5.9k Dec 29, 2022
Make Slack and Facebook Bots in Java.

JBot Make bots in Java. JBot is a java framework (inspired by Howdyai's Botkit) to make Slack and Facebook bots in minutes. It provides all the boiler

Ram 1.2k Dec 18, 2022
API gateway for REST and SOAP written in Java.

Membrane Service Proxy Reverse HTTP proxy (framework) written in Java, that can be used as an API gateway as a security proxy for HTTP based integrati

predic8 GmbH 389 Dec 31, 2022
The open-source Java obfuscation tool working with Ant and Gradle by yWorks - the diagramming experts

yGuard yGuard is an open-source Java obfuscation tool. With yGuard it is easy as pie ( ?? ) to configure obfuscation through an extensive ant task. yG

yWorks GmbH 265 Jan 2, 2023
An example mod that uses Vigilance and Essential with Java

Vigilance Example Mod (Java) I haven't really seen any mods that use Vigilance and Essential with Java, so here's a quick example mod I made. It's bas

null 6 Dec 25, 2022
A harness to build the source code from openjdk.java.net using Free Software tools and dependencies

A harness to build the source code from openjdk.java.net using Free Software tools and dependencies

IcedTea 2 Mar 5, 2022
Implementation of various design patterns in C++, Java and Python

DesignPatterns Implementation of various design patterns in C++, Java and Python. Strategy Pattern Description: Strategy Pattern in implemented in a p

Lakshmanan Meiyappan 12 Jul 20, 2022
Select USACO solutions in Java and C++

Select USACO solutions in Java and C++

Akshar Barot 2 Sep 14, 2022
Modern Java - A Guide to Java 8

Modern Java - A Guide to Java 8 This article was originally posted on my blog. You should also read my Java 11 Tutorial (including new language and AP

Benjamin Winterberg 16.1k Jan 5, 2023