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.
Difference between revisions of "New Help for Old Friends VIII"
(→JPA UI (Provisional API)) |
(→JPA UI (Provisional API)) |
||
Line 515: | Line 515: | ||
*moved <code>JpaPageComposite</code> from <code>org.eclipse.jpt.jpa.ui.details</code> to <code>org.eclipse.jpa.ui.editors</code> and renamed it to <code>JpaEditorPageDefinition</code> | *moved <code>JpaPageComposite</code> from <code>org.eclipse.jpt.jpa.ui.details</code> to <code>org.eclipse.jpa.ui.editors</code> and renamed it to <code>JpaEditorPageDefinition</code> | ||
− | ** no longer extends JpaComposite | + | ** no longer extends <code>JpaComposite</code> |
** added <code>buildEditorPageContent(...)</code> | ** added <code>buildEditorPageContent(...)</code> | ||
Revision as of 14:21, 2 November 2012
Contents
- 1 Overview
- 2 WTP Git migration
- 3 Dali
- 3.1 General
- 3.2 Common Utility (Provisional API)
- 3.3 Common Core (Provisional API)
- 3.4 JPA Database (Provisional API)
- 3.5 JPA Core (Provisional API)
- 3.6 JAXB Core (Provisional API)
- 3.7 EclipseLink JPA Core (Provisional API)
- 3.8 Common UI (Provisional API)
- 3.9 JPA UI (Provisional API)
- 3.10 JPQL Query (content assist and validation) (Provisional API)
- 3.11 JAXB UI (Provisional API)
- 4 Reference
Overview
This page collects notes and pointers to changes coming up in the WTP 3.5 (Kepler) release.
This page acts as a central "jumping off" point for those adopters of WTP that are moving up from a previous version of WTP. Most of this information may be already contained in various mailing lists and Bugzilla reports, but it is believed best to have a central place to get people started. Adopters: if you run into trouble or notice things that are not covered here, please update this page and/or let us know (such as by opening a bug, or sending a note to wtp-dev). Web Tools is a Platform and we strive to provide compatible API evolution with clear migration paths, instructions, etc.
One thing we have learned in the past is that some adopters do not move with us to every new release. Some early adopters went from 0.7 directly to 1.5, for example. Unfortunately, it is difficult to present the information in that way, covering multiple changes across multiple version ranges, so those types of migrations have to read about migrating to each version.
Note: as these notes develop and grow in number, they may occasionally be re-organized into categories, etc.
WTP Git migration
WTP has moved its source code repository from CVS to Git. A detailed list of what moved where can be found here
Dali
General
- All the
BundleActivator
implementations (i.e. "plug-in" classes; e.g.JptJpaCorePlugin
) were moved from public packages to private packages and all public members moved to the appropriate public interfaces etc.
Common Utility (Provisional API)
- added interfaces:
-
Association
-
Bag
-
Queue
-
Stack
-
ListIterable
-
MultiThreadedExceptionHandler
-
Node
-
Problem
-
IntReference
-
ModifiableIntReference
-
ModifiableBooleanReference
-
Transformer
-
- moved interfaces:
-
ObjectReference
-
ModifiableObjectReference
-
BooleanReference
-
Filter
-
IndentingPrintWriter
-
Synchronizer
(moved to JAXB core plug-in) -
CallbackSynchronizer
(moved to JAXB core plug-in)
-
- removed all "tree"-related events and listeners
Common Core (Provisional API)
- added interfaces:
-
JptWorkspace
-
LibraryValidatorManager
-
ResourceLocatorManager
-
-
JptCommonCorePlugin
- moved to private package and moved its members to the appropriate public interfaces etc.
Old | New |
---|---|
JAVA_SOURCE_CONTENT_TYPE | JavaResourceCompilationUnit.CONTENT_TYPE |
JAVA_SOURCE_RESOURCE_TYPE | JavaResourceCompilationUnit.RESOURCE_TYPE |
JAVA_SOURCE_PACKAGE_INFO_CONTENT_TYPE | JavaResourceCompilationUnit.PACKAGE_INFO_CONTENT_TYPE |
JAVA_SOURCE_PACKAGE_INFO_RESOURCE_TYPE | JavaResourceCompilationUnit.PACKAGE_INFO_RESOURCE_TYPE |
JAR_CONTENT_TYPE | JavaResourcePackageFragmentRoot.JAR_CONTENT_TYPE |
JAR_SOURCE_RESOURCE_TYPE | JavaResourcePackageFragmentRoot.JAR_RESOURCE_TYPE |
getLibraryValidators(...) | LibraryValidatorManager.getLibraryValidators(...) |
- reworked resource types
- added
resourcTypes
extension point to specify resource types and their relationships - converted
JptResourceType
to an interface with instances defined by theresourcTypes
extension point - extensions are managed by theJptResourceTypeManager
- defined basic resource types
- added
JptResourceTypeReference
- added
ContentTypeReference
- added
- added
TypeBinding
to encapsulate type information (e.g. simple/qualified name, is interface/enum) spread elsewhere in resource model
-
JavaResourceAbstractType
- Removed
-
getQualifiedName()
- getPackageName()
- isMemberType() (and associated property strings).
-
- Added
getTypeBinding()
(and associated property string) whose API now takes their place (and adds related API).
- Removed
-
JavaResourceAttribute
- Removed
-
getTypeArrayComponentTypeName()
- getTypeArrayDimensionality()
- getTypeInterfaceNames()
- getTypeName()
- getTypeSuperclassNames()
- getTypeTypeArgumentName(int)
- getTypeTypeArgumentNames()
- getTypeTypeArgumentNamesSize()
- typeIsArray()
- typeIsEnum()
- typeIsInterface()
- typeIsSubTypeOf(String)
- typeIsVariablePrimitive() (and associated property strings).
-
- Added
getTypeBinding()
(and associated property string) whose API now takes their place (and adds related API).
- Removed
-
JavaResourceField
- addedsynchronizeWith(FieldDeclaration, VariableDeclarationFragment)
to replacesynchronizeWith(CompilationUnit)
-
JavaResourceMethod
- removedinitialize(MethodDeclaration)
as it was unnecessary.
-
JavaResourceType
- Added
-
getAttributeTypeBinding(JavaResourceAttribute)
-
getField(String name)
-
- Added
-
Annotation
- initialize/synchronizeWith(Annotation) are preferred where possible over initialize/syncrhonizeWith(CompilationUnit). It is probably more performant to use the Annotation that has already been discovered than to search through the CompilationUnit again. If reusing any of the generic JPA annotation implementations, clients will now need to call initialize(Annotation)- added
-
initialize(Annotation)
. -
synchronizeWith(Annotation)
.
-
- added
-
JavaResourceAnnotatedElement
- added
-
getContainerAnnotation(String) : Annotation
. - You can no longer use getAnnotation(String) to return container annotations. This was changed to improve performance. see bug 376787
-
- changed
-
getNameTextRange(CompilationUnit)
togetNameTextRange()
. Caching the nameTextRange
during sync
-
- added
-
AnnotationAdapter
- changed method signature of
newMarkerAnnotation()
to returnMarkerAnnotation
- changed method signature of
newSingleMemberAnnotation()
to returnSingleMemberAnnotation
- changed method signature of
newNormalAnnotation()
to returnNormalAnnotation
- changed method signature of
-
AnnotationElementAdapter
- added methods for performance improvements
-
getValue(Annotation)
-
getExpression(Annotation)
-
- added methods for performance improvements
-
DeclarationAnnotationElementAdapter
- added methods for performance improvements
-
getValue(Annotation)
-
getExpression(Annotation)
-
- added methods for performance improvements
-
NotifyingRepeatingJobCommand.Listener
- changed signature of method
executionQuiesced(JobCommand, IProgressMonitor) : IStatus
toexecutionQuiesced(JobCommand) : void
- all listeners are notified; there is no way to cancel this notification
- changed signature of method
JPA Database (Provisional API)
-
JptJpaDbPlugin
- moved to private package and moved its members to the appropriate public interfaces etc.
Old | New |
---|---|
getConnectionProfileFactory() | IWorkspace.getAdapter(ConnectionProfileFactory.class) |
buildDriverClasspathContainerFor(...) | ConnectionProfileFactory.buildDriverClasspathContainer(...) |
- promoted the method
refresh()
fromSchema
toDatabaseObject
- added
ConnectionProfileFactory.getWorkspace()
JPA Core (Provisional API)
-
JptJpaCorePlugin
- moved to private package and moved its members to the appropriate public interfaces etc.
Old | New |
---|---|
DEFAULT_PERSISTENCE_XML_RUNTIME_PATH | XmlPersistence.DEFAULT_RUNTIME_PATH |
PERSISTENCE_XML_CONTENT_TYPE | XmlPersistence.CONTENT_TYPE |
PERSISTENCE_XML_1_0_CONTENT_TYPE | XmlPersistence.CONTENT_TYPE |
PERSISTENCE_XML_2_0_CONTENT_TYPE | XmlPersistence.CONTENT_TYPE |
MAPPING_FILE_CONTENT_TYPE | ResourceMappingFile.Root.CONTENT_TYPE |
DEFAULT_ORM_XML_RUNTIME_PATH | XmlEntityMappings.DEFAULT_RUNTIME_PATH |
ORM_XML_CONTENT_TYPE | XmlEntityMappings.CONTENT_TYPE |
ORM_XML_RESOURCE_TYPE | XmlEntityMappings.RESOURCE_TYPE |
ORM_XML_1_0_RESOURCE_TYPE | XmlEntityMappings.RESOURCE_TYPE_1_0 |
ORM_XML_2_0_RESOURCE_TYPE | XmlEntityMappings.RESOURCE_TYPE_2_0 |
VALIDATION_MARKER_ID | JpaValidator.MARKER_ID |
VALIDATOR_ID | removed |
WEB_FACET | ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE) |
USER_OVERRIDE_DEFAULT_CATALOG | JpaProject.USER_OVERRIDE_DEFAULT_CATALOG_PERSISTENT_PROPERTY_KEY |
USER_OVERRIDE_DEFAULT_SCHEMA | JpaProject.USER_OVERRIDE_DEFAULT_SCHEMA_PERSISTENT_PROPERTY_KEY |
DATA_SOURCE_CONNECTION_PROFILE_NAME | JpaDataSource.CONNECTION_PROFILE_NAME_PERSISTENT_PROPERTY_KEY |
getConnectionProfileName(...) | removed |
setConnectionProfileName(...) | removed |
getUserOverrideDefaultCatalog(...) | removed |
setUserOverrideDefaultCatalog(...) | removed |
getUserOverrideDefaultSchema(...) | removed |
setUserOverrideDefaultSchema(...) | removed |
clearProjectPersistentProperties(...) | removed |
getJarRuntimeRootPath(...) | ProjectTools.getJarRuntimeRootPath(...) |
nodeIsJpa2_0Compatible(...) | JptResourceType.isCompatibleWith(...) |
nodeIsXml2_0Compatible(...) | JptResourceType.isCompatibleWith(...) |
resourceTypeIsCompatible(...) | JptResourceType.isCompatibleWith(...) |
projectHasWebFacet(...) | ProjectTools.hasWebFacet(...) |
- moved preference code to new facade
JpaPreferences
-
JpaStructureNode
now extendsJpaContextNode
- renamed
AbstractXmlResourceProvider
toAbstractJpaXmlResourceProvider
and moved to internal package
- moved
JpaXmlResourceProvider
to appropriate package and added methodcreateFileAndResource(...)
- cleaned up support for non-XML mapping files:
- changed the resource passed to the method
JpaFactory.buildMappingFile(...)
fromJpaXmlResource
toObject
- moved
MappingFileRoot
to be a member type:MappingFile.Root
- added change support for
MappingFile.ROOT_PROPERTY
- added methods to
MappingFile
:-
getResourceMappingFile()
-
validate(...)
-
getValidationTextRange()
-
-
MappingFilePersistenceUnitMetadata
now extendsJpaContextNode
, notXmlContextNode
and declares the methodgetValidationTextRange()
-
MappingFilePersistenceUnitDefaults
now extendsJpaContextNode
, notXmlContextNode
- added support for a root to
XmlFile
-
OrmXml
now extendsXmlFile
-
EntityMappings
now extends bothMappingFile.Root
andXmlFile.Root
-
Persistence
now extendsXmlFile.Root
- replaced
PersistenceXml.getPersistence()
withgetRoot()
- added method
MappingFile.getDefinition()
- changed the resource passed to the method
- added method
EntityMappings.getOrmXml()
- removed
JpaXmlStructureNode
and moved methodgetXmlCompletionProposals(...)
toXmlContextNode
- removed unneeded method
MappingFileRef.isFor(...)
- renamed
MappingFileRef.isImplied()
toMappingFileRef.isDefault()
- renamed
PersistenceXmlContextNodeFactory.buildImpliedMappingFileRef(...)
toPersistenceXmlContextNodeFactory.buildVirtualMappingFileRef(...)
- added method
JpaNode.getJpaPlatform()
- deleted class
JpaFacet
- moved
ID
toJpaProject.FACET_ID
- moved
FACET
toJpaProject.FACET
- moved
VERSION_1_0
toJpaProject.FACET_VERSION_STRING
andJpaProject.FACET_VERSION
- moved
VERSION_2_0
toJpaProject2_0.FACET_VERSION_STRING
andJpaProject2_0.FACET_VERSION
- moved
- reworked
JpaPlatformManager
- no longer a singleton - access it via
JpaWorkspace
- renamed various methods to more accurately reflect model (e.g.
getPlatform(String)
now returns aJpaPlatform
, whilegetJpaPlatformDescription(String)
returns theJpaPlatformDescription
)
- no longer a singleton - access it via
-
ConnectionProfileFactory
is no longer a singleton - access it viaJpaWorkspace
-
PersistenceUnit
added methodremoveSpecifiedClassRefs(Iterable<ClassRef>)
-
JpaProjectManager
- renamed
-
addAsyncEventListenerFlag(BooleanReference)
toaddJavaEventListenerFlag(BooleanReference)
-
removeAsyncEventListenerFlag(BooleanReference)
toremoveJavaEventListenerFlag(BooleanReference)
-
- renamed
-
JpaPlatformProvider
- removed
getMostRecentSupportedResourceType(IContentType)
- added
getMostRecentSupportedResourceTypes()
- removed
-
PersistentType
- added getAttributeTypeBinding(ReadOnlyPersistentAttribute)
-
ReadOnlyPersistentAttribute
- added getTypeName(PersistentType)
-
Generator
- refactored all DB specific methods to a new interfaceDbGenerator
bug 380150
- added interface
JavaElementReference
- implemented by:-
JavaPersistentType
-
JavaPersistentAttribute
-
Accessor
-
- cleaned up how
JpaFile
root structure nodes are registered Bug 231872:- added
JpaFile.updateRootStructureNodes()
- removed
JpaFile.addRootStructureNode(Object, JpaStructureNode)
- removed
JpaFile.removeRootStructureNode(Object, JpaStructureNode)
- added
JpaStructureNode.gatherRootStructureNodes(JpaFile, Collection<JpaStructureNode>)
- added
- renamed
JpaPlatformDescription
toJpaPlatformConfig
- renamed
JpaPlatformGroupDescription
toJpaPlatformGroupConfig
-
JpaProject2_0
no longer extendsMetamodelSynchronizer
- that behavior should be internal to theJpaProject
JAXB Core (Provisional API)
-
JptJaxbCorePlugin
- moved to private package and moved its members to the appropriate public interfaces etc.
Old | New |
---|---|
JAXB_INDEX_CONTENT_TYPE | JaxbIndexResource.CONTENT_TYPE |
JAXB_INDEX_RESOURCE_TYPE | JaxbIndexResource.RESOURCE_TYPE |
JAXB_PROPERTIES_CONTENT_TYPE | JaxbPropertiesResource.CONTENT_TYPE |
JAXB_PROPERTIES_RESOURCE_TYPE | JaxbPropertiesResource.RESOURCE_TYPE |
VALIDATION_MARKER_ID | JaxbValidator.MARKER_ID |
- added
JaxbWorkspace
- added
JaxbPreferences
- renamed
JaxbPlatformDescription
toJaxbPlatformConfig
- renamed
JaxbPlatformGroupDescription
toJaxbPlatformGroupConfig
EclipseLink JPA Core (Provisional API)
-
JptJpaEclipseLinkCorePlugin
- moved to private package and moved its members to the appropriate public interfaces etc.
Old | New |
---|---|
DEFAULT_ECLIPSELINK_ORM_XML_RUNTIME_PATH | XmlEntityMappings.DEFAULT_RUNTIME_PATH |
ECLIPSELINK_ORM_XML_CONTENT_TYPE | XmlEntityMappings.CONTENT_TYPE |
ECLIPSELINK_ORM_XML_1_0_RESOURCE_TYPE | XmlEntityMappings.RESOURCE_TYPE_1_0 |
ECLIPSELINK_ORM_XML_1_1_RESOURCE_TYPE | XmlEntityMappings.RESOURCE_TYPE_1_1 |
ECLIPSELINK_ORM_XML_1_2_RESOURCE_TYPE | XmlEntityMappings.RESOURCE_TYPE_1_2 |
ECLIPSELINK_ORM_XML_2_0_RESOURCE_TYPE | XmlEntityMappings.RESOURCE_TYPE_2_0 |
ECLIPSELINK_ORM_XML_2_1_RESOURCE_TYPE | XmlEntityMappings.RESOURCE_TYPE_2_1 |
ECLIPSELINK_ORM_XML_2_2_RESOURCE_TYPE | XmlEntityMappings.RESOURCE_TYPE_2_2 |
ECLIPSELINK_ORM_XML_2_3_RESOURCE_TYPE | XmlEntityMappings.RESOURCE_TYPE_2_3 |
ECLIPSELINK_ORM_XML_2_4_RESOURCE_TYPE | XmlEntityMappings.RESOURCE_TYPE_2_4 |
ECLIPSELINK_PLATFORM_VERSION_1_0 | EclipseLinkJpaPlatformFactory.VERSION |
ECLIPSELINK_PLATFORM_VERSION_1_1 | EclipseLink1_1JpaPlatformFactory.VERSION |
ECLIPSELINK_PLATFORM_VERSION_1_2 | EclipseLink1_2JpaPlatformFactory.VERSION |
ECLIPSELINK_PLATFORM_VERSION_2_0 | EclipseLink2_0JpaPlatformFactory.VERSION |
ECLIPSELINK_PLATFORM_VERSION_2_1 | EclipseLink2_1JpaPlatformFactory.VERSION |
ECLIPSELINK_PLATFORM_VERSION_2_2 | EclipseLink2_2JpaPlatformFactory.VERSION |
ECLIPSELINK_PLATFORM_VERSION_2_3 | EclipseLink2_3JpaPlatformFactory.VERSION |
ECLIPSELINK_PLATFORM_VERSION_2_4 | EclipseLink2_4JpaPlatformFactory.VERSION |
nodeIsEclipseLink2_3Compatible(...) | removed |
nodeIsEclipseLink2_4Compatible(...) | removed |
nodeIsEclipseLinkVersionCompatible(...) | removed |
- moved preference code to new facade
EclipseLinkJpaPreferences
Common UI (Provisional API)
-
WidgetFactory
:- removed deprecated
createCCombo(...)
- removed deprecated
createEditableCCombo(...)
- removed
createMultiLineLabel(...)
- added
dispose()
- must be called when finished with the widget factory
- removed deprecated
JPA UI (Provisional API)
- enhanced
JpaPlatformUi
:- added
getTypeMappingUiDefinition(...)
- added
getAttributeMappingUiDefinition(...)
- added parameter
PropertyValueModel<Boolean> enabledModel
tobuildAttributeMappingComposite
- added
- converted
Iterator
s toIterable
s:-
JpaPlatformUi.getTypeMappingUiDefinitions(...)
-
JpaPlatformUi.getAttributeMappingUiDefinitions(...)
-
JpaPlatformUiProvider.getDetailProviders()
-
JpaPlatformUiProvider.getResourceUiDefinitions()
-
MappingResourceUiDefinition.getTypeMappingUiDefinitions()
-
MappingResourceUiDefinition.getAttributeMappingUiDefinitions()
-
- enhanced
ResourceUiDefinition
:- added
getEditorPageDefinitions()
- added
- enhanced
MappingResourceUiDefinition
:- added
getTypeMappingUiDefinition(...)
- added
getAttributeMappingUiDefinition(...)
- added parameter
PropertyValueModel<Boolean> enabledModel
tobuildAttributeMappingComposite
- added
- enhanced
MappingUiDefinition
:- added
getGhostImage()
- added
- enhanced
JavaAttributeMappingUiDefinition
:- added parameter
PropertyValueModel<Boolean> enabledModel
tobuildAttributeMappingComposite
- added parameter
- enhanced
JavaUiFactory
andJavaUiFactory2_0
:- added parameter
PropertyValueModel<Boolean> enabledModel
to all attribute mapping methods
- added parameter
- enhanced
OrmAttributeMappingUiDefinition
:- added parameter
PropertyValueModel<Boolean> enabledModel
tobuildAttributeMappingComposite
- added parameter
- enhanced
OrmXmlUiFactory
andOrmXmlUiFactory2_0
:- added parameter
PropertyValueModel<Boolean> enabledModel
to all attribute mapping methods
- added parameter
- enhanced
JpaComposite
- removed
enableWidgets(boolean)
- a Pane now takes a PropertyValueModel<Boolean> used for enabling widgets.
- removed
- moved
JpaPageComposite
fromorg.eclipse.jpt.jpa.ui.details
toorg.eclipse.jpa.ui.editors
and renamed it toJpaEditorPageDefinition
- no longer extends
JpaComposite
- added
buildEditorPageContent(...)
- no longer extends
- added
JpaWorkbench
- added
JpaPlatformUiManager
JPQL Query (content assist and validation) (Provisional API)
-
SourceAnnotation
,ASTTools
- Added support for retrieving a list of text ranges when the value is split.
-
Query
,QueryAnnotation
,XmlQuery
- Changed "
TextRange getTextRange()
" to "List<TextRange> getTextRanges()
" to support a JPQL query split into multiple sections (see bug 386414).
- Changed "
-
XmlQuery
- Added 3 methods (
getActualQuery()
,getQueryOffset()
,isQueryInsideCDATASection()
) to help fix alignment issue of content assist and validation text range (also see bug 360713).
- Added 3 methods (
-
JpaJpqlQueryHelper
, changed the signature of validate() to better support content assist and validation due to:- Split strings in a Java annotation;
- Inside a CDATA section in XML;
- Contains leading whitespace between
<query>
element and the query itself in XML.
JAXB UI (Provisional API)
-
JptJaxbUiPlugin
- moved to private package and moved its members to the appropriate public interfaces etc.
Old | New |
---|---|
getJaxbPlatformUiManager() | TO DO |
- added
JaxbWorkbench
Reference
This document covers ONLY changes between WTP 3.5 and WTP 3.4. See also: