0.9.9 breaking changes

Skip to end of metadata
Go to start of metadata

Handling of MavenProjectChangedEvent

In 0.9.7, use of MavenProjectChangedEvent is limited to dealing with project dependency changes.

In 0.9.9, it will be possible to detect and automatically process all configuration changes, i.e. compiler level, changed packing type, lifecycle mapping, etc. This will require changes in AbstractProjectConfigurator API to be able to accommodate that.

Affected existing methods

  • AbstractProjectConfigurator#mavenProjectChanged

Proposed new API

  • TBD

Changes related to new maven version

  • New IMaven facade to access all maven functionality. To access use MavenPlugin.lookup(IMaven.class)
  • MavenEmbedder is not used any more. This affects the following classes, interfaces and methods
    • EmbedderFactory, MavenEmbedderManager were removed. Use MavenPlugin.lookup(IMaven.class) instead
    • IMavenRunnable. Use methods provided by IMaven interface instead
    • MavenProjectFacade#execute is removed.
    • ArchetypeCatalogFactory/ArchetypeCatalog do not use MavenEmbedderManager
    • MavenProjectManager#execute and #createWorkspaceEmbedder were removed
    • AbstractProjectConfigurator#configure and #unconfigure do not have MavenEmbedder parameter. Use MavenPlugin.lookup(IMaven.class) instead
  • Configuration-related methods of MavenRuntimeManager were moved to IMavenConfiguration. Use MavenPlugin.lookup(IMavenConfiguration.class) to access.
  • New IMavenConfigurationChangeListener/MavenConfigurationChangeEvent API
  • New MavenProjectManager#createExecutionRequest provisional API
  • MavenModelManager#readMavenModel accepts InputStream instead of Reader
  • Workspace resolution of maven plugins and their dependencies is disabled until MNG-4194 is implemented
  • REGRESSION: same marker text both for direct and transitive missing dependencies.
  • REGRESSION: MavenGoalSelectionDialog.GoalsContentProvider does not provide empty list of goals
  • REGRESSION: reindex local repository button on maven installations preferences page does nothing
  • REGRESSION: disabled MavenSettingsTest
  • REGRESSION: maven messages are logged to Eclipse log, not to Maven Console

Changes related to customizable build lifecycle mapping

  • Project with packaging=pom do not have java nature and always use noop lifecycle mapping.
  • (tentative) Workspace projects with multiple modules always use the same lifecycle mapping. Will choose from either generic or jdt-only.
  • Removed classpathConfiguratorFactories extension point and corresponding AbstractClasspathConfigurator, AbstractClasspathConfiguratorFactory API classes. Use projectConfigurator that implements IJavaProjectConfigurator instead.

Changes related to synchronous project refresh

  • Removed IDownloadSourceListener/DownloadSourceEvent
  • Removed MavenProjectManager #downloadSources, #addDownloadSourceListener, #removeDownloadSourceListener, #getSourcePath and #getJavaDocUrl methods
  • Introduced new BuildPathManager#downloadSources(IProject, ArtifactKey, boolean, boolean)
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.