sonatype-nexus-community / nexus-repository-composer

Composer support for the Nexus Repository Manager (work in progress!)
Eclipse Public License 1.0
215 stars 82 forks source link

migration to Nexus 3.71 API #158

Closed stklcode closed 2 days ago

stklcode commented 1 month ago

Update the plugin structures and formats to latest Nexus 3.71 changes, i.e. drop OrientDB support, migrate to fluent API.

TODO:

Run-tested all 3 repository types in a local Nexus 3.71.0-06 container (Java 17, H2)


This is based on #154. Resolves #157

cattong commented 1 month ago

good job!

stklcode commented 3 weeks ago

ping @bhamail

Could you have a look at this (or name someone who can)? CI requirements are misconfigured (underscores vs. hyphens in job name) and he CLA bot is not running :shrug: But the (modified) tests succeed.

I know this is quite a breaking change, but I guess NXRM 3.71 is breaking for almost any plugin. We might want to add a migration utility :thinking: Few people have already given feedback to snapshot builds and there is also little discussion about further changes. But first place we'd like to see the plugin working agein (discussion in #157)

stklcode commented 3 weeks ago

I am NOT a Nexus Repository expert, so please test these changes thoroughly to make sure they work well for you.

Anyway thanks very much for your review. I’m testing this on my backup instance and few people here also tested my snapshot builds (feedback already included in the code).

Another thought: It might be worth adding some documentation that states the current version of the Composer plugin ONLY works with NXRM v3.71+ or whatever. [...]

Updated the README, including a notice on NXRM compatibility, added Java 17 and updated some broken links.

3v01ut10n commented 3 weeks ago

Thanks for the new version, it allowed me to update my Nexus

stklcode commented 2 weeks ago

Hmm, I thought I fixed the integration tests. Unfortunately the tests are passing locally, but not in CI.

[ERROR] Errors: 
[ERROR]   ComposerProxyIT.providersURLChangedToNXRM » ClassNotFound org.sonatype.nexus.testsuite.testsupport.RepositoryITSupport not found by PAXEXAM-PROBE-283c035a-7258-4d01-a77b-293598258c42 [108]
...

Update:

Got it! Had to add the -features.xml explicitly to Maven dependencies, s.t. it gets resolved during build and Pax Exam can pick it up.

    <dependency>
      <groupId>org.sonatype.nexus.testsuite</groupId>
      <artifactId>nexus-repository-testsupport</artifactId>
      <version>${nxrm-version}</version>
      <classifier>features</classifier>
      <type>xml</type>
      <scope>test</scope>
    </dependency>

The hint was

*SYSTEM org.sonatype.nexus.extender.NexusContextListener - Missing: nexus-repository-testsupport/3.71.0-06

in nexus-repository-composer-it/target/it-data/1/nexus3/log/nexus.log and corresponding some artifact resolving errors.