Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Sisu/LegacyMigration"
Line 70: | Line 70: | ||
<h1>Check bindings</h1> | <h1>Check bindings</h1> | ||
− | After upgrading and changing imports the final step is to see if your | + | After upgrading and changing imports the final step is to see if your app works as expected when you swap in Eclipse/Sisu: |
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> |
Revision as of 13:04, 14 November 2013
Upgrade
The latest releases of Sonatype/Sisu are actually runtime wrappers that translate and delegate calls to their Eclipse/Sisu dependencies:
<dependency> <groupId>org.sonatype.sisu</groupId> <artifactId>sisu-inject-bean</artifactId> <version>2.5.0</version> </dependency>
<dependency> <groupId>org.sonatype.sisu</groupId> <artifactId>sisu-inject-plexus</artifactId> <version>2.5.0</version> </dependency>
This enables you to migrate gradually to the new API by mixing new components and libraries with those written against the old API.
Change imports
Once you have upgraded to Sonatype/Sisu 2.5.0 you can start migrating to the new API. In most cases this just involves changing imports:
Old package | New package |
---|---|
org.sonatype.inject | org.eclipse.sisu |
org.sonatype.guice.bean.binders | org.eclipse.sisu.wire org.eclipse.sisu.space |
org.sonatype.guice.bean.containers | org.eclipse.sisu.launch |
org.sonatype.guice.bean.converters | org.eclipse.sisu.wire |
org.sonatype.guice.bean.inject | org.eclipse.sisu.bean |
org.sonatype.guice.bean.locators | org.eclipse.sisu.inject |
org.sonatype.guice.bean.locators.spi | org.eclipse.sisu.inject |
org.sonatype.guice.bean.reflect | org.eclipse.sisu.inject org.eclipse.sisu.bean org.eclipse.sisu.space |
org.sonatype.guice.bean.scanners.index | org.eclipse.sisu.space |
org.sonatype.guice.bean.scanners | org.eclipse.sisu.space |
org.sonatype.guice.plexus.annotations | org.eclipse.sisu.plexus |
org.sonatype.guice.plexus.binders | org.eclipse.sisu.plexus |
org.sonatype.guice.plexus.config | org.eclipse.sisu.plexus |
org.sonatype.guice.plexus.converters | org.eclipse.sisu.plexus |
org.sonatype.guice.plexus.lifecycles | org.eclipse.sisu.plexus |
org.sonatype.guice.plexus.locators | org.eclipse.sisu.plexus |
org.sonatype.guice.plexus.scanners | org.eclipse.sisu.plexus |
org.sonatype.guice.plexus.shim | org.eclipse.sisu.plexus |
All the old types have been marked as deprecated to help identify which components you need to upgrade.
Check bindings
After upgrading and changing imports the final step is to see if your app works as expected when you swap in Eclipse/Sisu:
<dependency> <groupId>org.eclipse.sisu</groupId> <artifactId>org.eclipse.sisu.inject</artifactId> <version>0.1.0</version> </dependency>
<dependency> <groupId>org.eclipse.sisu</groupId> <artifactId>org.eclipse.sisu.plexus</artifactId> <version>0.1.0</version> </dependency>
If you find that some components are missing at runtime, it could be that you are relying on a library that still requires the old Sonatype/Sisu API. To confirm this turn on trace logging for Sisu; you can either use the sisu.debug
system property to send Sisu trace logging to the console, or alternatively set the logging level for the 'Sisu' logger to trace. Any components that couldn't be loaded at runtime because of missing types will be logged under "Problem scanning...".