Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
OTDT/NonAPI
For the sake of a smooth and deep integration into the JDT the OTDT connects to other plugins using these non-API mechanisms:
- Adaptation using OT/Equinox with Team and Role classes.
- Accessing internal classes
The extent and rationale is documented on this page.
Contents
- 1 Affected plugins
- 1.1 org.eclipse.jdt.core
- 1.2 org.eclipse.jdt.core.apt
- 1.3 org.eclipse.jdt.ui
- 1.4 org.eclipse.jdt.debug
- 1.5 org.eclipse.jdt.debug.ui
- 1.6 org.eclipse.jdt.launching
- 1.7 org.eclipse.jdt.junit
- 1.8 org.eclipse.jdt.junit.core
- 1.9 org.eclipse.debug.core
- 1.10 org.eclipse.debug.ui
- 1.11 org.eclipse.pde.core
- 1.12 org.eclipse.pde.ui
- 1.13 org.eclipse.pde.launching
- 1.14 org.eclipse.core.resources
Affected plugins
org.eclipse.jdt.core
The OTDT contains a variant of the jdt.core plugin as described here.
Additionally, the following OT plugins access internals of the JDT/Core:
- org.eclipse.objectteams.otdt
- OTTypeHierarchies -- This team adapts the TypeHierarchy mechanism to account for implicit inheritance
- org.eclipse.objectteams.otdt.apt
- VisitorsAdaptor -- This team accesses internal classes for adapting annotation processing (APT)
- org.eclipse.objectteams.otdt.compiler.adaptor
- Multiple Team classes -- adaptations for the following purposes
- ensure the incremental builder respects implicit role inheritance as a trigger for rebuilding affected classes
- make information from aspectBindings available for checking imports and specifically base imports during compilation
- Multiple Team classes -- adaptations for the following purposes
org.eclipse.jdt.core.apt
Accessed by:
- org.eclipse.objectteams.otdt.apt
- VisitorsAdaptor -- This team adapts the AnnotationDiscoveryVisitor so that it will finds annotations of method bindings (callin/callout) and their arguments, too.
org.eclipse.jdt.ui
Accessed by:
- org.eclipse.objectteams.otdt.debug.adaptor
- PresentationAdaptor -- access JavaEditor for computing the start line of an element
- Also: instantiate internal class AppearanceAwareLabelProvider.
org.eclipse.jdt.debug
Accessed by:
- org.eclipse.objectteams.otdt.debug.adaptor
- PresentationAdaptor -- beautify stackframes relating to generated code
- SourceLookupAdaptor -- adapt source lookup for "Open Actual Type" action to reflect implicit role inheritance
org.eclipse.jdt.debug.ui
Accessed by:
- org.eclipse.objectteams.otdt.debug.adaptor
- PresentationAdaptorActivator -- beautify stackframes relating to generated code (manages activation of PresentationAdaptor)
- DebugUIDialogAdaptor2 -- add new "Team Activation" tab to LocalJavaApplicationTabGroup
- JDTDebugUILaunchingAdaptor -- add OT/J checkbox to JavaJRETab and JavaConnectTab
- OTToggleBreakpointAdapter -- replace ToggleBreakPointAdapter with a variant that handles implicit role inheritance and non-Java elements (callout/callin method binding)
- also: extend ToggleBooleanPreferenceAction to implement a new option in the Variables view
- also: access to two internal constants from DebugUIMessages
- for a variant of BreakpointLocationVerifierJob
- copy&adjust some source files
- access internal classes ActionDelegateHelper, ActionMessages, BreakpointUtils, DebugWorkingCopyManager, JavaDebugUtils, JDIDebugUIPlugin, ValidBreakpointLocationLocator
org.eclipse.jdt.launching
Accessed by:
- org.eclipse.objectteams.otdt.debug.adaptor
- JDTLaunchingAdaptor -- conditionally activate OT/J runtime for normal Java launches
org.eclipse.jdt.junit
Accessed by:
- org.eclipse.objectteams.otdt.debug.adaptor
- DebugUIDialogAdaptor3 -- add new "Team Activation" tab to JUnitTabGroup
org.eclipse.jdt.junit.core
Accessed by:
- org.eclipse.objectteams.otdt.debug.adaptor
- JUnitLaunchingAdaptor -- conditionally activate OT/J runtime for JUnit launches
org.eclipse.debug.core
Accessed by:
- org.eclipse.objectteams.otdt.debug.adaptor
- LaunchConfigurationInitializer -- initialize an additional launch configuration attribute depending on the project nature.
org.eclipse.debug.ui
Accessed by:
- org.eclipse.objectteams.otdt.debug.adaptor
- DebugUIDialogAdaptor -- facility for adding a new "Team Activation" tab to various launch configuration dialogs
- PresentationAdaptorActivator -- conditionally enable beautification of stack frames for generated code (only for OT launches)
- VariablesViewAdaptor -- filter synthetic variables from the view (configurable via a preference)
- org.eclipse.objectteams.otdt.debug.ui
- for implementing a view similar to the Variables view:
- subclass internal classes AbstractModelProxy, VariableLabelProvider
- access internal classes ModelDelta, VariableColumnPresentation, IPresentationContext
- also: instantiate internal class BooleanFieldEditor2 which works around a method protection
- access internal class ColorManager
- for implementing a view similar to the Variables view:
org.eclipse.pde.core
Accessed by:
- org.eclipse.objectteams.otdt.compiler.adaptor
- PDEAdaptor -- feed information about aspectBindings into the compiler for access checking
org.eclipse.pde.ui
Accessed by:
- org.eclipse.objectteams.otdt.debug.adaptor
- PDELaunchingAdaptor -- add OT/Equinox checkbox to all OSGi related launch configuration dialogs (JREBlock)
- also: access to an internal constant from IPDEUIConstants
- org.eclipse.objectteams.otdt.samples
- SamplesAdapter -- small bugfixes and adjustments for re-using "orphaned" classes
org.eclipse.pde.launching
Accessed by:
- org.eclipse.objectteams.otdt.debug.adaptor
- PDELaunchingAdaptor -- conditionally enable OT/Equinox runtime for all OSGi related launches
org.eclipse.core.resources
Accessed by:
- org.eclipse.objectteams.otdt.compiler.adaptor
- ResourceProjectAdaptor -- decorate objects of type Project to store two more fields if the project is an OT/Equinox project.
Status: List of OT-plugins processed:
- org.eclipse.objectteams.otdt
- org.eclipse.objectteams.otdt.apt
- org.eclipse.objectteams.otdt.compiler.adaptor
- org.eclipse.objectteams.otdt.debug
- org.eclipse.objectteams.otdt.debug.ui
- org.eclipse.objectteams.otdt.debug.adaptor
- org.eclipse.objectteams.otdt.samples