Org.jsoup.jsoup 1.23.1 missing from jfrog

org.jsoup.jsoup 1.23.1 is needed in the latest snapshot

but missing from jfrog.

pinging @kai

From time to time, I’ve come across this situation. We might need some sort of automated check.

Note: as a workaround, I added maven to the list of repositories in my userdata/etc/org.ops4j.pax.url.mvn.cfg

org.ops4j.pax.url.mvn.repositories= \
        https://openhab.jfrog.io/openhab/libs-snapshot@id=openhab@snapshots, \
        https://repo1.maven.org/maven2/@id=central

It would be great if the Karaf feature check in the add-on build could be limited to only use our JFrog and not access Maven Central. This way every missing artefact would be immediately noticed.

I’ve just uploaded it to JFrog.

I can understand hosting osgiified bundles on jfrog.

I don’t understand the policy of mirroring everything else, manually into jfrog instead of adding maven central as a second repository source like what I did.

There are two reasons for doing this:

  • An openHAB server should not depend on any external service (i.e. not controlled by the openHAB project).
  • Maven Central isn’t meant as a place where you host artefacts that your deployed software downloads. Sonatype has quite a few blog posts explaining that rogue CI pipelines without caching already hammer centralā€˜s servers with requests, having every single openHAB instance fetch artefacts from central would be very unfriendly against central. Note that openHABā€˜s bundle cache is cleared on every upgrade.

Would it make sense to add Maven Central as a remote repository in JFrog and only give CI ā€œDeploy/Cacheā€ permission on it?
Then CI could automatically fetch and cache new dependencies when they are introduced, while normal openHAB users would only have ā€œReadā€ access and could only download artifacts that are already cached. That would avoid the recurring manual uploads without exposing JFrog as a general Maven Central proxy.

It could even be only enabled for main/patch branches so PRs cannot be abused to fill it. When it’s not in the cache the builds would fail instead of users having to find out about it months later in ā€œproductionā€.

Maybe only give this right to our Jenkins builds and keep it completely out of GitHub.

I’ve updated the issue for this: