JDT UI Breaking API changes

java development tooling ui

This document lists the breaking API changes that occurred between R3.3 and R3.4 and how to migrate from the R3.3 API to the R3.4 API.

jdt ui - Breaking API changes from R3.3 to R3.4
None

jdt ui - Non-breaking API changes from R3.3 to R3.4
Added API `org.eclipse.jdt.ui.actions.OpenNewPackageWizardAction.setConfiguredWizardPage(NewPackageWizardPage)`.

Added constants for new refactorings:
Added to `org.eclipse.jdt.ui.actions.IJavaEditorActionDefinitionIds`:

- INTRODUCE_PARAMETER_OBJECT
- EXTRACT_CLASS

Added to `org.eclipse.jdt.ui.actions.JdtActionConstants`:

- INTRODUCE_PARAMETER_OBJECT
- EXTRACT_CLASS

Constants to `org.eclipse.jdt.ui.PreferenceConstants`:

- SPELLING_IGNORE_JAVA_STRINGS
- SPELLING_PROBLEMS_THRESHOLD

Added API to `org.eclipse.jdt.ui.PreferenceConstants`:

- getExcludedCompletionProposalCategories()
- setExcludedCompletionProposalCategories(..)

Added API `org.eclipse.jdt.ui.JavaUI.getEditorInputTypeRoot(IEditorInput)`

`org.eclipse.jdt.ui.SharedASTProvider` gives access to the AST used by the active Java editor

- SharedASTProvider.getAST(ITypeRoot, SharedASTProvider.WAIT_FLAG, IProgressMonitor)

New extension point `javadocExportWizardPage` allows to add pages to the Javadoc export wizard

- JavadocExportWizardPage is to be extended by contributors

Both new Java project wizard pages are now API. Clients can reuse or modify the pages for their own New Java project wizards.

- NewJavaProjectWizardPageOne (`org.eclipse.jdt.ui.wizards`)
- NewJavaProjectWizardPageTwo (`org.eclipse.jdt.ui.wizards`)
- OpenNewJavaProjectWizardAction.setConfiguredWizardPages(NewJavaProjectWizardPageOne, NewJavaProjectWizardPageTwo) (`org.eclipse.jdt.ui.actions`)

New extension point `classpathFixProcessors` allows to add functionality to fix a project class path when a type can not be resolved. For example PDE can add a plug-in dependency.

- ClasspathFixProcessor is to be extended by contributors

Added API for the JAR packager:

- Added `org.eclipse.jdt.ui.jarpackager.IJarBuilder`
- Added methods to set and get jar builder in `org.eclipse.jdt.ui.jarpackager.JarPackageData`
- Added factories to create jar builders in `org.eclipse.jdt.ui.jarpackager.JarPackageData`
- Added methods to set and get launch configuration name in `org.eclipse.jdt.ui.jarpackager.JarPackageData`
- Added method `org.eclipse.jdt.ui.jarpackager.JarWriter3.addEntry(JarEntry, InputStream)`

All occurrence actions available in for find occurrence. New actions and constants.

- FindBreakContinueTargetOccurrencesAction
- FindMethodExitOccurrencesAction
- IJavaEditorActionDefinitionIds: SEARCH_METHOD_EXIT_OCCURRENCES, SEARCH_BREAK_CONTINUE_TARGET_OCCURRENCES
- JdtActionConstants: FIND_METHOD_EXIT_OCCURRENCES, FIND_BREAK_CONTINUE_TARGET_OCCURRENCES

Support for external class folder selection:

- BuildPathDialogAccess.chooseExternalJAREntries(Shell)
- BuildPathDialogAccess.configureExternalClassFolderEntries(Shell, IPath)

Support for styled text labels in `JavaElementLabels`:

- `COLORIZE`: Constant to signal that colors should be applied to labels
- `getStyledTextLabel(element, flags)`: Construct a styled text label for the given element
- `getStyledElementLabel(..)`: Construct a styled text label for the given Java element
- `getXYLabel(..)`: Construct a styled text label for the given tytpe, method, field ...

Support for styled text labels in `JavaElementLabelProvider`:

- `JavaElementLabelProvider`now implements IStyledLabelProvider

Support for styled text labels in `org.eclipse.jdt.ui.text.java.CompletionProposalLabelProvider`:

- `createStyledLabel(CompletionProposal)`

Made preference page ID for build path preferences pages API:

- `org.eclipse.jdt.ui.JavaUI#ID_USER_LIBRARY_PREFERENCE_PAGE`
- `org.eclipse.jdt.ui.JavaUI#ID_CLASSPATH_VARIABLES_PREFERENCE_PAGE`

Constants added for 'Show Breadcrumbs' action:

- `org.eclipse.jdt.ui.actions.IJavaEditorActionDefinitionIds#TOGGLE_BREADCRUMB`
- `org.eclipse.jdt.ui.actions.IJavaEditorActionDefinitionIds#SHOW_IN_BREADCRUMB`

All action groups now also accept a special selection provider on construction which is used instead of the page selection provider.

- `BuildActionGroup`
- `CCPActionGroup`
- `DeclarationsSearchGroup`
- `GenerateActionGroup`
- `ImplementorsSearchGroup`
- `JavaSearchActionGroup`
- `NavigateActionGroup`
- `OccurrencesSearchGroup`
- `OpenEditorActionGroup`
- `ProjectActionGroup`
- `ReadReferencesSearchGroup`
- `RefactorActionGroup`
- `ReferencesSearchGroup`
- `WriteReferencesSearchGroup`

API changes from 3.2 to 3.3 can be found here.