Is the johnzon 2.x implementation better than the parsson library that we
are already including in the starter?

I've just been switching the geronimo-json_1.0_spec and johnzon-core
dependencies to these:

        <!-- for the jakarta.json APIs -->
        <dependency>
            <groupId>jakarta.json</groupId>
            <artifactId>jakarta.json-api</artifactId>
            <version>2.1.1</version>
            <scope>provided</scope>
        </dependency>

        <!-- for the jakarta.json implementation used by tests -->
        <dependency>
            <groupId>org.eclipse.parsson</groupId>
            <artifactId>parsson</artifactId>
            <version>1.1.1</version>
            <scope>test</scope>
        </dependency>

Regards,
-Eric

On Fri, Nov 17, 2023 at 3:03 AM Stefan Seifert
<stefan.seif...@diva-e.com.invalid> wrote:

> in context of SLING-12058 we are migrating lots of modules from javax.json
> to jakarta.json. this works fine for modules using javax.json directly.
>
> however, we have a few modules which are using johnzon, which uses
> javax.json internally. since version johnzon 1.2.5 (we are using johnzon
> 1.2.21 in latest wrapper bundle) johnzon ships an additional artifact with
> classifier "jakarta", which uses jakarta.json internally. both artifacts
> with and without "jakarta" are identical, except the internal usage of the
> package name. our wrapper bundle contains the version using javax.json.
>
> for non-bundles like maven plugins we can just switch to the artifact with
> "jakarta". but this will not work for our bundles. we cannot ship both
> artifacts with and without "jakarta" classifier as wrapper bundles and
> export them both in OSGi with the same version number. i've found at least
> one bundle where this is already used (but not released) [1]. it stumbled
> about this in PR [2]. the bundles might work anyway as the bundle compiled
> against the johnzon "jakarta" affect should also work with the javax.json
> version at runtime, but this feels like a slippery slope.
>
> according to [3] johnzon is using a different way starting from version
> 2.0 (which seems to be released a few days ago, although the homepage is
> not updated yet): in version 2.0 johnzon uses only jakarta.json.
>
> so it think the correct way is to create and deploy an additional wrapper
> bundle for johnzon 2.0, which we can deploy side-by-side with the old
> wrapper bundle with 1.x. i assume we have to support both of them for quite
> a time, as there is a lot of code out there using johnzon 1.x.
>
> WDYT?
>
> stefan
>
> [1]
> https://github.com/apache/sling-org-apache-sling-installer-factory-feature/blob/867bd44f0991cedd130314d833c9aac29ae3f36c/pom.xml#L134-L140
> [2] https://github.com/apache/sling-org-apache-sling-fsresource/pull/2
> [3] https://johnzon.apache.org/download.html
>

Reply via email to