Jump to: navigation, search

Difference between revisions of "New Help for Old Friends IX"

(Overview)
(IdTypeMapping refactor)
(16 intermediate revisions by 2 users not shown)
Line 14: Line 14:
 
Following are some of the noteworthy 'minor' field changes.  
 
Following are some of the noteworthy 'minor' field changes.  
 
-->
 
-->
 
== WTP Git migration ==
 
 
WTP has moved its source code repository from CVS to Git.  A detailed list of what moved where can be found  [http://wiki.eclipse.org/WTP_Git_Migration_Checklist here]
 
  
 
== [[Dali]] ==
 
== [[Dali]] ==
  
=== General ===
+
=== Common UI (Provisional API) ===
* All the <code>BundleActivator</code> implementations (i.e. "plug-in" classes; e.g. <code>JptJpaCorePlugin</code>) were moved from public packages to private packages and all public members moved to the appropriate public interfaces etc.
+
* reworked item provider interfaces:
 +
** new interface <code>ItemContentProvider</code>
 +
** <code>ItemTreeContentProvider</code>
 +
*** now extends <code>ItemContentProvider</code>
 +
*** <code>Manager</code> now extends <code>ItemContentProvider.Manager</code>
 +
**** method <code>updateChildren(Object)</code> changed to <code>childrenChanged(Object, Iterable, Iterable)</code>
 +
*** <code>Factory</code> now extends <code>ItemStructuredContentProvider.Factory</code>
 +
**** method <code>buildProvider(Object, Manager)</code> changed to <code>buildProvider(Object, Object, Manager)</code>
 +
** <code>ItemStructuredContentProvider</code>
 +
*** now extends <code>ItemContentProvider</code>
 +
*** <code>Manager</code> now extends <code>ItemContentProvider.Manager</code>
 +
**** method <code>updateElements(Object)</code> changed to <code>elementsChanged(Object, Iterable, Iterable)</code>
 +
** <code>ItemLabelProvider</code>
 +
*** added <code>isLabelProperty(String)</code>
 +
*** <code>Manager</code>
 +
**** method <code>updateLabel(Object)</code> changed to <code>labelChanged(Object)</code>
 +
**** new method <code>getViewer()</code>
 +
** <code>ItemExtendedLabelProvider</code>
 +
*** <code>Manager</code>
 +
**** method <code>updateDescription(Object)</code> changed to <code>descriptionChanged(Object)</code>
  
* Various convenience <code>Transformer</code>s have been added to many public interfaces.
+
=== JPA Core (Provisional API) ===
 +
* Renamed <code>JpaContextModelRoot</code> to <code>JpaContextRoot</code> and related changes:
 +
** renamed <code>JpaContextModelRoot2_0</code> to <code>JpaContextRoot2_0</code>
 +
** <code>JpaFactory</code>
 +
*** renamed <code>buildContextModelRoot(JpaProject)</code> to <code>buildContextRoot(JpaProject)</code>
 +
** <code>JpaProject</code>
 +
*** renamed <code>getContextModelRoot()</code> to <code>getContextRoot()</code>
 +
*** renamed <code>CONTEXT_MODEL_ROOT_TRANSFORMER</code> to <code>CONTEXT_ROOT_TRANSFORMER</code>
 +
*** renamed <code>ContextModelRootTransformer</code> to <code>ContextRootTransformer</code>
  
=== Common Utility (Provisional API) ===
+
* Refactored <code>JpaStructureNode</code>
* added interfaces:
+
** renamed <code>getType()</code> to <code>getStructureType()</code> and declared explicit return values
** <code>Association</code>
+
** renamed <code>getChildren()</code> to <code>getStructureChildren()</code>
** <code>Bag</code>
+
** renamed <code>getChildrenSize()</code> to <code>getStructureChildrenSize()</code>
** <code>Queue</code>
+
** renamed <code>CHILDREN_COLLECTION</code> to <code>STRUCTURE_CHILDREN_COLLECTION</code>
** <code>Stack</code>
+
** <code>JpaDetailsProvider</code>
** <code>ListIterable</code>
+
*** renamed <code>getType()</code> to <code>getStructureType()</code>
** <code>MultiThreadedExceptionHandler</code>
+
** <code>Node</code>
+
** <code>Problem</code>
+
** <code>IntReference</code>
+
** <code>ModifiableIntReference</code>
+
** <code>ModifiableBooleanReference</code>
+
** <code>Transformer</code>
+
  
* moved interfaces:
+
* Refactored <code>JpaNamedContextModel</code>
** <code>ObjectReference</code>
+
** pushed <code>getType()</code> down to sub-interfaces and declared explicit return types
** <code>ModifiableObjectReference</code>
+
*** added <code>Generator.getGeneratorType()</code>
** <code>BooleanReference</code>
+
*** added <code>Query.getQueryType()</code>
** <code>IndentingPrintWriter</code>
+
*** added <code>EclipseLinkConverter.getConverterType()</code>
** <code>Synchronizer</code> (moved to JAXB core plug-in)
+
** pushed <code>isEquivalentTo(JpaNamedContextModel)</code> down to sub-interfaces
** <code>CallbackSynchronizer</code> (moved to JAXB core plug-in)
+
*** added <code>Generator.isEquivalentTo(Generator)</code>
 +
*** added <code>Query.isEquivalentTo(Query)</code>
 +
*** added <code>EclipseLinkConverter.isEquivalentTo(EclipseLinkConverter)</code>
  
* removed all "tree"-related events and listeners
+
* Renamed <code>Converter.getType()</code> to <code>getConverterType()</code> and declared explicit return values
  
* removed the <code>Filter</code> interface and converted all <code>Filter</code>s to <code>Predicate</code>s
+
* Renamed various intermediate Generator interfaces
 +
** renamed <code>DbGeneratorAnnotation</code> to <code>DatabaseGeneratorAnnotation</code>
 +
** renamed <code>DbGenerator</code> to <code>DatabaseGenerator</code>
 +
** renamed <code>JavaDbGenerator</code> to <code>JavaDatabaseGenerator</code>
  
* renamed <code>MultiThreadedExceptionHandler</code> to <code>MultiThreadExceptionHandler</code>
+
* Refactored managed type classes
 +
** <code>ManagedType</code>
 +
*** renamed <code>getType()</code> to <code>getManagedTypeType()</code>
 +
** <code>XmlManagedType</code>
 +
*** renamed <code>getType()</code> to <code>getManagedTypeType()</code>
 +
** <code>JavaManagedTypeDefinition</code>
 +
*** renamed <code>getType()</code> to <code>getManagedTypeType()</code>
 +
** <code>OrmManagedTypeDefinition</code>
 +
*** renamed <code>getContextType()</code> to <code>getContextManagedTypeType()</code>
 +
*** renamed <code>getResourceType()</code> to <code>getResourceManagedTypeType()</code>
 +
** <code>JavaManagedTypeUiDefinition</code>
 +
*** renamed <code>getType()</code> to <code>getManagedTypeType()</code>
  
* renamed various <code>CommandExecutor</code> classes:
+
* <code>XmlPersistenceUnit</code>
<code>
+
** added method <code>sortClasses()</code>
{|  border="1" cellpadding="5" cellspacing="0"
+
|-
+
! Old
+
! New
+
|-
+
| CommandExecutor
+
| CommandContext
+
|-
+
| ExtendedCommandExecutor
+
| ExtendedCommandContext
+
|-
+
| InterruptibleCommandExecutor
+
| InterruptibleCommandContext
+
|-
+
| StatefulCommandExecutor
+
| StatefulCommandContext
+
|-
+
| StatefulExtendedCommandExecutor
+
| StatefulExtendedCommandContext
+
|}
+
</code>
+
  
=== Common Core (Provisional API) ===
+
* Reworked the API for converting mapping relationship settings so it is more clear what types of objects are converted to and from. Specifically:
* added interfaces:
+
** Only ''ORM'' specified mapping relationship settings are copied over, when an an ORM attribute mapping is converted to another mapping (In Java, the annotations are simply left in place and rediscovered when the new mapping annotation is added to the source file.):
** <code>JptWorkspace</code>
+
*** <code>SpecifiedAssociationOverride</code>
** <code>LibraryValidatorManager</code>
+
**** removed method <code>initializeFrom(AssociationOverride)</code>
** <code>ResourceLocatorManager</code>
+
**** removed method <code>initializeFromVirtual(AssociationOverride)</code>
 
+
*** <code>SpecifiedAttributeOverride</code>
* <code>JptCommonCorePlugin</code> - moved to private package and moved its members to the appropriate public interfaces etc.
+
**** removed method <code>initializeFrom(AttributeOverride)</code>
<code>
+
**** removed method <code>initializeFromVirtual(AttributeOverride)</code>
{|  border="1" cellpadding="5" cellspacing="0"
+
*** <code>OrmSpecifiedAttributeOverride</code>
|-
+
**** added method <code>initializeFrom(OrmSpecifiedAttributeOverride)</code>
! Old
+
*** <code>Relationship</code>
! New
+
**** removed method <code>initializeOn(SpecifiedRelationship)</code>
|-
+
*** <code>OrmMappingRelationship</code>
| JAVA_SOURCE_CONTENT_TYPE
+
**** added method <code>initializeFrom(OrmMappingRelationship)</code>
| JavaResourceCompilationUnit.CONTENT_TYPE
+
**** added method <code>initializeOn(OrmMappingRelationship)</code>
|-
+
**** added method <code>initializeFromJoinColumnRelationship(OrmJoinColumnRelationship)</code>
| JAVA_SOURCE_RESOURCE_TYPE
+
**** added method <code>initializeFromJoinTableRelationship(OrmJoinTableRelationship)</code>
| JavaResourceCompilationUnit.RESOURCE_TYPE
+
**** added method <code>initializeFromMappedByRelationship(OrmMappedByRelationship)</code>
|-
+
**** added method <code>initializeFromPrimaryKeyJoinColumnRelationship(OrmPrimaryKeyJoinColumnRelationship)</code>
| JAVA_SOURCE_PACKAGE_INFO_CONTENT_TYPE
+
*** <code>OverrideRelationship</code>
| JavaResourceCompilationUnit.PACKAGE_INFO_CONTENT_TYPE
+
**** removed method <code>initializeOnSpecified(SpecifiedOverrideRelationship)</code>
|-
+
*** <code>OrmMappedByRelationship</code>
| JAVA_SOURCE_PACKAGE_INFO_RESOURCE_TYPE
+
**** added method <code>getMappedByStrategy()</code>
| JavaResourceCompilationUnit.PACKAGE_INFO_RESOURCE_TYPE
+
*** <code>SpecifiedJoinColumnRelationshipStrategy</code>
|-
+
**** removed method <code>initializeFrom(JoinColumnRelationshipStrategy)</code>
| JAR_CONTENT_TYPE
+
*** <code>OrmSpecifiedJoinColumnRelationshipStrategy</code>
| JavaResourcePackageFragmentRoot.JAR_CONTENT_TYPE
+
**** added method <code>initializeFrom(OrmSpecifiedJoinColumnRelationshipStrategy)</code>
|-
+
*** <code>SpecifiedJoinTableRelationshipStrategy</code>
| JAR_SOURCE_RESOURCE_TYPE
+
**** removed method <code>initializeFrom(JoinTableRelationshipStrategy)</code>
| JavaResourcePackageFragmentRoot.JAR_RESOURCE_TYPE
+
*** <code>OrmSpecifiedJoinTableRelationshipStrategy</code>
|-
+
**** added method <code>initializeFrom(OrmSpecifiedJoinTableRelationshipStrategy)</code>
|
+
*** <code>SpecifiedMappedByRelationshipStrategy</code>
| JavaResourceClassFile.CONTENT_TYPE
+
**** removed method <code>initializeFrom(SpecifiedMappedByRelationshipStrategy)</code>
|-
+
*** <code>OrmSpecifiedMappedByRelationshipStrategy</code>
|
+
**** added method <code>initializeFrom(OrmSpecifiedMappedByRelationshipStrategy)</code>
| JavaResourceClassFile.CONTENT_TYPE_ID
+
*** <code>OrmSpecifiedPrimaryKeyJoinColumnRelationshipStrategy</code>
|-
+
**** added method <code>initializeFrom(OrmSpecifiedPrimaryKeyJoinColumnRelationshipStrategy)</code>
| getLibraryValidators(...)
+
*** <code>SpecifiedJoinTable</code>
| LibraryValidatorManager.getLibraryValidators(...)
+
**** removed method <code>initializeFrom(JoinTable)</code>
|}
+
*** <code>OrmSpecifiedJoinTable</code>
</code>
+
**** added method <code>initializeFrom(OrmSpecifiedJoinTable)</code>
 
+
*** <code>OrmSpecifiedColumn</code>
* reworked resource types
+
**** added method <code>initializeFrom(OrmSpecifiedColumn)</code>
** added <code>resourcTypes</code> extension point to specify resource types and their relationships
+
*** <code>SpecifiedJoinColumn</code>
** converted <code>JptResourceType</code> to an interface with instances defined by the <code>resourcTypes</code> extension point - extensions are managed by the <code>JptResourceTypeManager</code>
+
**** removed method <code>initializeFrom(JoinColumn)</code>
** defined basic resource types
+
*** <code>OrmSpecifiedJoinColumn</code>
** added <code>JptResourceTypeReference</code>
+
**** added method <code>initializeFrom(OrmSpecifiedJoinColumn)</code>
** added <code>ContentTypeReference</code>
+
*** <code>OrmSpecifiedPrimaryKeyJoinColumn</code>
 
+
**** removed method <code>initializeFrom(PrimaryKeyJoinColumn)</code>
* added <code>TypeBinding</code> to encapsulate type information (e.g. simple/qualified name, is interface/enum) spread elsewhere in resource model
+
**** added method <code>initializeFrom(OrmSpecifiedPrimaryKeyJoinColumn)</code>
 
+
*** <code>OrmSpecifiedSecondaryTable</code>
* <code>JavaResourceAbstractType</code>
+
**** removed method <code>initializeFrom(SecondaryTable)</code>
** Removed
+
*** <code>OrmCollectionTable2_0</code>
*** <code>getQualifiedName()
+
**** removed method <code>initializeFrom(CollectionTable2_0)</code>
*** getPackageName()
+
**** added method <code>initializeFrom(OrmCollectionTable2_0)</code>
*** isMemberType()</code> (and associated property strings). 
+
** Virtual Java override relationship settings are copied only to a specified ''Java'' overrides (likewise with ORM settings):
** Added <code>getTypeBinding()</code> (and associated property string) whose API now takes their place (and adds related API).
+
*** <code>JavaSpecifiedAssociationOverride</code>
 
+
**** added method <code>initializeFrom(JavaVirtualAssociationOverride)</code>
* <code>JavaResourceAttribute</code>
+
*** <code>JavaSpecifiedAttributeOverride</code>
** Removed
+
**** added method <code>initializeFrom(JavaVirtualAttributeOverride)</code>
*** <code>getTypeArrayComponentTypeName()
+
*** <code>OrmSpecifiedAssociationOverride</code>
*** getTypeArrayDimensionality()
+
**** added method <code>initializeFrom(OrmVirtualAssociationOverride)</code>
*** getTypeInterfaceNames()
+
*** <code>OrmSpecifiedAttributeOverride</code>
*** getTypeName()
+
**** added method <code>initializeFrom(OrmVirtualAttributeOverride)</code>
*** getTypeSuperclassNames()
+
*** <code>SpecifiedOverrideRelationship</code>
*** getTypeTypeArgumentName(int)
+
**** renamed method <code>initializeFromVirtual(OverrideRelationship)</code> to <code>initializeFrom(VirtualOverrideRelationship)</code>
*** getTypeTypeArgumentNames()
+
**** removed method <code>initializeFromVirtualJoinColumnRelationship(JoinColumnRelationship)</code>
*** getTypeTypeArgumentNamesSize()
+
**** removed method <code>initializeFromVirtualJoinTableRelationship(JoinTableRelationship)</code>
*** typeIsArray()
+
*** <code>SpecifiedJoinColumnRelationshipStrategy</code>
*** typeIsEnum()
+
**** renamed method <code>initializeFromVirtual(JoinColumnRelationshipStrategy)</code> to <code>initializeFrom(VirtualJoinColumnRelationshipStrategy)</code>
*** typeIsInterface()
+
*** <code>SpecifiedJoinTableRelationshipStrategy</code>
*** typeIsSubTypeOf(String)
+
**** renamed method <code>initializeFromVirtual(JoinTableRelationshipStrategy)</code> to <code>initializeFrom(VirtualJoinTableRelationshipStrategy)</code>
*** typeIsVariablePrimitive()</code> (and associated property strings).
+
*** <code>SpecifiedJoinTable</code>
** Added <code>getTypeBinding()</code> (and associated property string) whose API now takes their place (and adds related API). 
+
**** renamed method <code>initializeFromVirtual(JoinTable)</code> to <code>initializeFrom(VirtualJoinTable)</code>
 
+
*** <code>SpecifiedColumn</code>
* <code>JavaResourceField</code> - added <code>synchronizeWith(FieldDeclaration, VariableDeclarationFragment)</code> to replace <code>synchronizeWith(CompilationUnit)</code>
+
**** added method <code>initializeFrom(VirtualColumn)</code>
 
+
*** <code>SpecifiedJoinColumn</code>
* <code>JavaResourceMethod</code> - removed <code>initialize(MethodDeclaration)</code> as it was unnecessary.
+
**** renamed method <code>initializeFromVirtual(JoinColumn)</code> to <code>initializeFrom(VirtualJoinColumn)</code>
 
+
*** <code>OrmSpecifiedSecondaryTable</code>
* <code>JavaResourceType</code>
+
**** added method <code>initializeFrom(OrmVirtualSecondaryTable)</code>
** Added
+
*** <code>OrmSpecifiedPrimaryKeyJoinColumn</code>
*** <code>getAttributeTypeBinding(JavaResourceAttribute)</code>
+
**** added method <code>initializeFrom(OrmVirtualPrimaryKeyJoinColumn)</code>
*** <code>getField(String name)</code>
+
* Refactored the API surrounding ordering:
 
+
** <code>XmlOrderable</code>
* <code>Annotation</code> - 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)
+
*** changed get/setOrderBy(..) from String to XmlOrderBy (and added XmlOrderBy)
** added
+
** <code>Orderable</code>
*** <code>initialize(Annotation)</code>.
+
*** removed custom ordering as an option.  Custom ordering is now represented as a specified key on <code>OrderBy</code>, which is (primary key) by default.
*** <code>synchronizeWith(Annotation)</code>.
+
*** changed set<Foo>Ordering(boolean) to set<Foo>Ordering() (no boolean).  There is no way to "unset" ordering other than setting "no" ordering.
 
+
* Refactored Entities/MappedSuperclasses to have common IdTypMapping functionality
* <code>JavaResourceAnnotatedElement</code>
+
** XML resource model
** added  
+
*** Added <code>XmlIdTypeMapping</code>
*** <code>getContainerAnnotation(String) : Annotation</code>. - You can no longer use getAnnotation(String) to return container annotations. This was changed to improve performance. see [https://bugs.eclipse.org/376787 bug 376787]
+
** Context model
** changed
+
*** <code>BaseEmbeddedMapping</code>
*** <code>getNameTextRange(CompilationUnit)</code> to <code>getNameTextRange()</code>. Caching the name <code>TextRange</code> during sync
+
**** added <code>getTargetEmbeddableName()</code>
*** <code>getKind()</code> to <code>getAstNodeType()</code>
+
*** <code>IdClassReference</code>
***<code>JavaResourceAnnotatedElement.Kind</code> renamed to <code>JavaResourceAnnotatedElement.AstNodeType</code>. Replaced <code>Kind.getAstNodeType()</code> with <code>AstNodeType.matches(int)</code>
+
**** added <code>ID_CLASS_NAME_PROPERTY</code> and property change notification for id class name
 
+
*** <code>IdTypeMapping</code>
* <code>AnnotationAdapter</code>
+
**** added <code>getPrimaryKeyClassName()</code>
** changed method signature of <code>newMarkerAnnotation()</code> to return <code>MarkerAnnotation</code>
+
**** moved from <code>TypeMapping</code>:
** changed method signature of <code>newSingleMemberAnnotation()</code> to return <code>SingleMemberAnnotation</code>
+
***** <code>Iterable<IdTypeMapping> getInheritanceHierarchy()</code> (and changed return type)
** changed method signature of <code>newNormalAnnotation()</code> to return <code>NormalAnnotation</code>
+
***** <code>isRootEntity()</code>
 
+
***** <code>getRootEntity()</code>
* <code>AnnotationElementAdapter</code>
+
***** <code>getInheritanceStrategy()</code>
** added methods for performance improvements
+
*** <code>getValue(Annotation)</code>
+
*** <code>getExpression(Annotation)</code>
+
 
+
* <code>DeclarationAnnotationElementAdapter</code>
+
** added methods for performance improvements
+
*** <code>getValue(Annotation)</code>
+
*** <code>getExpression(Annotation)</code>
+
 
+
* <code>NotifyingRepeatingJobCommand.Listener</code>
+
** changed signature of method <code>executionQuiesced(JobCommand, IProgressMonitor) : IStatus</code> to <code>executionQuiesced(JobCommand) : void</code> - all listeners are notified; there is no way to cancel this notification
+
 
+
* <code>*.common.core.resource.xml.JptXmlResource</code> - moved/renamed from *.jpa.core.JpaXmlResource
+
 
+
* <code>ResourceLocator</code> renamed methods:
+
** <code>resourceLocationIsValid(...)</code> renamed to <code>locationIsValid(...)</code>
+
** <code>getDefaultResourceLocation(...)</code> renamed to <code>getDefaultLocation(...)</code>
+
** <code>getResourcePath(...)</code> renamed to <code>getWorkspacePath(...)</code>
+
 
+
* <code>ProjectResourceLocator</code> renamed methods:
+
** <code>resourceLocationIsValid(...)</code> renamed to <code>locationIsValid(...)</code>
+
** <code>getDefaultResourceLocation(...)</code> renamed to <code>getDefaultLocation(...)</code>
+
** <code>getResourcePath(...)</code> renamed to <code>getWorkspacePath(...)</code>
+
 
+
* <code>EBaseObject</code>
+
** added method <code>getFullTextRange()</code>
+
 
+
* renamed <code>ContentTypeReference.CONTENT_TYPE_TRANSFORMER</code> to <code>TRANSFORMER</code>
+
 
+
* moved <code>GenericAnnotationProvider</code> to an internal package
+
 
+
* renamed <code>JptResourceTypeReference.RESOURCE_TYPE_TRANSFORMER</code> to <code>TRANSFORMER</code>
+
 
+
* renamed <code>JavaResourceCompilationUnit.getModifySharedDocumentCommandExecutor()</code> to <code>getModifySharedDocumentCommandContext()</code>
+
 
+
* renamed <code>JavaResourceNode</code> to <code>JavaResourceModel</code>
+
 
+
* moved <code>EmfTools</code> to an internal package
+
 
+
* renamed <code>JpaXmlResourceProvider</code> to <code>JptXmlResourceProvider</code>
+
 
+
* moved <code>AbstractTextRange</code> to an internal package
+
 
+
* renamed various <code>CommandExecutor</code> classes:
+
<code>
+
{|  border="1" cellpadding="5" cellspacing="0"
+
|-
+
! Old
+
! New
+
|-
+
| CombinedCommandExecutor
+
| CombinedCommandContext
+
|-
+
| CombinedExtendedCommandExecutor
+
| CombinedExtendedCommandContext
+
|-
+
| ExtendedCommandExecutor
+
| ExtendedCommandContext
+
|-
+
| JobCommandExecutor
+
| JobCommandContext
+
|}
+
</code>
+
 
+
=== JPA Database (Provisional API) ===
+
 
+
* <code>JptJpaDbPlugin</code> - moved to private package and moved its members to the appropriate public interfaces etc.
+
<code>
+
{| border="1" cellpadding="5" cellspacing="0"
+
|-
+
! Old
+
! New
+
|-
+
| getConnectionProfileFactory()
+
| IWorkspace.getAdapter(ConnectionProfileFactory.class)
+
|-
+
| buildDriverClasspathContainerFor(...)
+
| ConnectionProfileFactory.buildDriverClasspathContainer(...)
+
|}
+
</code>
+
 
+
* promoted the method <code>refresh()</code> from <code>Schema</code> to <code>DatabaseObject</code>
+
* added <code>ConnectionProfileFactory.getWorkspace()</code>
+
 
+
=== JPA Core (Provisional API)  ===
+
* <code>JptJpaCorePlugin</code> - moved to private package and moved its members to the appropriate public interfaces etc.
+
<code>
+
{| border="1" cellpadding="5" cellspacing="0"
+
|-
+
! 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(...)
+
|}
+
</code>
+
 
+
* moved preference code to new facade <code>JpaPreferences</code>
+
 
+
* <code>JpaStructureNode</code> now extends <code>JpaContextNode</code>
+
 
+
* renamed <code>AbstractXmlResourceProvider</code> to <code>Abstract'''Jpa'''XmlResourceProvider</code> and moved to internal package
+
 
+
* moved <code>JpaXmlResourceProvider</code> to appropriate package and added method <code>createFileAndResource(...)</code>
+
 
+
* cleaned up support for non-XML mapping files:
+
** changed the resource passed to the method <code>JpaFactory.buildMappingFile(...)</code>  from <code>JpaXmlResource</code> to <code>Object</code>
+
** moved <code>MappingFileRoot</code> to be a member type: <code>MappingFile.Root</code>
+
** added change support for <code>MappingFile.ROOT_PROPERTY</code>
+
** added methods to <code>MappingFile</code>:
+
*** <code>getResourceMappingFile()</code>
+
** <code>MappingFilePersistenceUnitMetadata</code> now extends <code>JpaContextNode</code>, not <code>XmlContextNode</code>
+
** <code>MappingFilePersistenceUnitDefaults</code> now extends <code>JpaContextNode</code>, not <code>XmlContextNode</code>
+
** added support for a root to <code>XmlFile</code>
+
** <code>OrmXml</code> now extends <code>XmlFile</code>
+
** <code>EntityMappings</code> now extends both <code>MappingFile.Root</code> and <code>XmlFile.Root</code>
+
** <code>Persistence</code> now extends <code>XmlFile.Root</code>
+
** replaced <code>PersistenceXml.getPersistence()</code> with <code>getRoot()</code>
+
** added method <code>MappingFile.getDefinition()</code>
+
 
+
* added method <code>EntityMappings.getOrmXml()</code>
+
 
+
* removed <code>JpaXmlStructureNode</code> and moved method <code>getXmlCompletionProposals(...)</code> to <code>XmlContextNode</code>
+
 
+
* removed unneeded method <code>MappingFileRef.isFor(...)</code>
+
 
+
* renamed <code>MappingFileRef.isImplied()</code> to <code>MappingFileRef.isDefault()</code>
+
 
+
* renamed <code>PersistenceXmlContextNodeFactory.buildImpliedMappingFileRef(...)</code> to <code>PersistenceXmlContextNodeFactory.buildVirtualMappingFileRef(...)</code>
+
 
+
* added method <code>JpaNode.getJpaPlatform()</code>
+
 
+
* deleted class <code>JpaFacet</code>
+
** moved <code>ID</code> to <code>JpaProject.FACET_ID</code>
+
** moved <code>FACET</code> to <code>JpaProject.FACET</code>
+
** moved <code>VERSION_1_0</code> to <code>JpaProject.FACET_VERSION_STRING</code> and <code>JpaProject.FACET_VERSION</code>
+
** moved <code>VERSION_2_0</code> to <code>JpaProject2_0.FACET_VERSION_STRING</code> and <code>JpaProject2_0.FACET_VERSION</code>
+
 
+
* changed <code>JpaPlatformFactory.buildJpaPlatform(String)</code> to <code>JpaPlatformFactory.buildJpaPlatform(JpaPlatform.Config)</code>
+
 
+
* reworked <code>JpaPlatformManager</code>
+
** no longer a singleton - access it via <code>JpaWorkspace</code>
+
** renamed various methods to more accurately reflect model (e.g. <code>getPlatform(String)</code> now returns a <code>JpaPlatform</code>, while <code>getJpaPlatformDescription(String)</code> returns the <code>JpaPlatformDescription</code>)
+
 
+
* added method <code>JpaPlatform.getContentType(IFile)</code>
+
 
+
* <code>ConnectionProfileFactory</code> is no longer a singleton - access it via <code>JpaWorkspace</code>
+
 
+
* <code>PersistenceUnit</code> added method <code>removeSpecifiedClassRefs(Iterable<ClassRef>)</code>
+
 
+
* <code>JpaProject</code>
+
** changed <code>getMappedJavaSourceClassNames(): Iterable<String></code>  to <code>getPotentialJavaSourceTypes() : Iterable<JavaResourceAbstractType> </code>  
+
** changed <code>getAnnotatedJavaSourceClassNames(): Iterable<String></code> to <code>getAnnotatedJavaSourceTypes() : Iterable<JavaResourceAbstractType> </code>  
+
 
+
* reworked <code>JpaProject.Manager</code>
+
** added <code>getJpaWorkspace()</code>
+
** removed <code>log(String)</code>
+
** removed <code>log(Throwable)</code>
+
** removed <code>log(String, Throwable)</code>
+
** removed <code>getExceptionHandler()</code>
+
 
+
* <code>JpaProjectManager</code>  
+
** renamed
+
*** <code>addAsyncEventListenerFlag(BooleanReference)</code> to <code>addJavaEventListenerFlag(BooleanReference)</code>
+
*** <code>removeAsyncEventListenerFlag(BooleanReference)</code> to <code>removeJavaEventListenerFlag(BooleanReference)</code>
+
 
+
* <code>JpaPlatformProvider</code>
+
** removed <code>getMostRecentSupportedResourceType(IContentType)</code>
+
** added <code>getMostRecentSupportedResourceTypes()</code>
+
 
+
* <code>PersistentType</code>
+
** added <code>getAttributeTypeBinding(ReadOnlyPersistentAttribute)</code>
+
 
+
* <code>ReadOnlyPersistentAttribute</code>
+
** added <code>getTypeName(PersistentType)</code>
+
 
+
* <code>Generator</code> - refactored all DB specific methods to a new interface <code>DbGenerator</code> [https://bugs.eclipse.org/bugs/show_bug.cgi?id=380150 bug 380150]
+
 
+
* added interface <code>JavaElementReference</code> - implemented by:
+
** <code>JavaPersistentType</code>
+
** <code>JavaPersistentAttribute</code>
+
** <code>Accessor</code>
+
 
+
* cleaned up how <code>JpaFile</code> root structure nodes are registered [https://bugs.eclipse.org/bugs/show_bug.cgi?id=231872 Bug 231872]:
+
** added <code>JpaFile.updateRootStructureNodes()</code>
+
** removed <code>JpaFile.addRootStructureNode(Object, JpaStructureNode)</code>
+
** removed <code>JpaFile.removeRootStructureNode(Object, JpaStructureNode)</code>
+
** added <code>JpaStructureNode.gatherRootStructureNodes(JpaFile, Collection<JpaStructureNode>)</code>
+
 
+
* fixed Structure View when static member types present [https://bugs.eclipse.org/bugs/show_bug.cgi?id=390616 Bug 390616]:
+
** added <code>JpaStructureNodes.getFullTextRange()</code>
+
** renamed <code>EntityMappings.getFullyQualifiedName(...)</code> to <code>qualify(...)</code>
+
 
+
* reworked <code>JpaPlatform</code>-related classes:
+
** renamed <code>JpaPlatformDescription</code> to <code>JpaPlatform.Config</code>
+
** renamed <code>JpaPlatformGroupDescription</code> to <code>JpaPlatform.GroupConfig</code>
+
** added method <code>JpaPlatform.Config.getJpaPlatform()</code>
+
 
+
* <code>JpaProject2_0</code> no longer extends <code>MetamodelSynchronizer</code> - that behavior should be internal to the <code>JpaProject</code>
+
 
+
* <code>JpaXmlResource</code> - moved/renamed to *.common.core.JptXmlResource.
+
 
+
* added method <code>ClassRef.getJavaResourceType()</code>
+
 
+
* added method <code>Entity.supportsValidationMessages()</code> and <code>Entity.getNameTextRange()</code>
+
* added method <code>Generator.supportsValidationMessages()</code>
+
* added method <code>Query.supportsValidationMessages()</code>
+
 
+
* Refactored validation methods to not include a CompilationUnit for Java([https://bugs.eclipse.org/bugs/show_bug.cgi?id=376595 bug 376595]). Now the API is the same for Java and Orm.
+
** added <code>JpaContextNode.getValidationTextRange()</code>
+
** added <code>JpaContextNode.validate(...)</code>
+
**Refactored completion proposal methods to be identical in xml and java and moved up the hierarchy, removed Filter and CompilationUnit parameters in both JPA and JAXB
+
*** added <code>JpaContextNode.getCompletionProposals(...)</code>
+
** Deleted <code>JavaJpaContextNode</code> and <code>XmlContextNode</code> as they were no longer needed after the validation and context assist refactorings.
+
** Deleted many other Java and Xml specific interfaces. For example, JavaMultiRelationshipMapping and XmlMultiRelationshipMapping were deleted, use MultiRelationshipMapping now.
+
 
+
* The refactoring participant methods have been refactored
+
** The common methods have been consolidated into the following interfaces:
+
*** <code>DeleteTypeRefactoringParticipant</code>
+
*** <code>MappingFileRefactoringParticipant</code>
+
*** <code>TypeRefactoringParticipant</code>
+
** The following interfaces now extend one or more of the above-listed interfaces:
+
*** <code>EntityMappings</code>
+
*** <code>OrmAttributeMapping</code>
+
*** <code>OrmIdClassReference</code>
+
*** <code>OrmPersistentAttribute</code>
+
*** <code>OrmPersistentType</code>
+
*** <code>OrmTypeMapping</code>
+
*** <code>ClassRef</code>
+
*** <code>MappingFileRef</code>
+
 
*** <code>PersistenceUnit</code>
 
*** <code>PersistenceUnit</code>
*** <code>PersistenceUnitProperties</code>
+
**** added <code>getIdTypeMapping(String)</code>
 
+
*** <code>PersistentType</code>
* <code>PersistentType2_0</code>
+
**** removed <code>SUPER_PERSISTENT_TYPE_PROPERTY</code> and property change notification for super persistent type (now delegates to type mapping)
** added method <code>getMetamodelType()</code>
+
**** removed <code>getIdClass()</code> (instead use <code>IdTypeMapping#getIdClassReference()#getIdClass()</code>
 
+
**** added <code>SUPER_TYPE_MAPPING_PROPERTY</code> and super type mapping property change notification
* <code>JarFile</code>
+
**** added <code>Iterable<IdTypeMapping> getAncestors()</code>
** removed method <code>dispose()</code>
+
**** moved to <code>IdTypeMapping</code>:
 
+
***** <code>getRootEntity()</code>, <code>isRootEntity()</code>, <code>getInheritanceStrategy()</code>
* removed <code>JpaStructureNode.dispose()</code>. Now only <code>EntityMappings, OrmPersistentType, OrmReadOnlyPersistentAttribute, MappingFileRef, Persistence, PersistenceUnit</code> have the <code>dispose()</code> method.
+
**** added: <code>getIdAttributeMapping()</code>
* <code>MappingFile</code>, <code>XmlFile</code>,<code>JarFile</code> now extend <code>JpaContextNode</code> not <code>JpaStructureNode</code>
+
*added <code>JpaStructureNode.getChildren(), getChildrenSize()</code> which is used for displaying nodes in the <code>JpaStructureView</code>
+
 
+
* <code>JavaPersistentAttribute.contains(int)</code>, <code>OrmAttributeMapping.contains(int), <code>OrmPersistentType.contains(int)</code>, <code>OrmReadOnlyPersistentAttribute.contains(int) replaced with <code>JpaStructureNode.containsOffset(int)</code>
+
 
+
* Support JPA 2.1 Converter types ([https://bugs.eclipse.org/392702 bug 392702]):
+
** added <code>ManagedType</code>, <code>JavaManagedType</code>, <code>OrmManagedType</code>
+
** <code>PersistentType</code> now extends <code>ManagedType</code>, moved some type/name related methods to it
+
** added <code>JavaManagedTypeDefinition</code>
+
** added <code>OrmManagedTypeDefinition</code>
+
** added method <code>JpaPlatform.getJavaManagedTypeDefinitions()</code>
+
** added method <code>JpaPlatformProvider.getJavaManagedTypeDefinitions()</code>
+
** added method <code>JpaProject.getManagedTypeAnnotationNames()</code>
+
** <code>JarFile</code>
+
*** renamed <code>getJavaPersistentTypes()</code> to <code>getJavaManagedTypes()</code>
+
*** renamed <code>getJavaPersistentTypesSize()</code> to <code>getJavaManagedTypesSize()</code>
+
** <code>EntityMappings</code>
+
*** replaced <code>removePersistentType(...)</code> with <code>removeManagedType(...)</code>
+
*** replaced <code>containsPersistentType(...)</code> with <code>containsManagedType(...)</code>
+
*** replaced <code>PERSISTENT_TYPES_LIST</code> with <code>MANAGED_TYPES_LIST(...)</code>
+
*** replaced <code>getPersistentTypesSize()</code> with <code>getManagedTypesSize()</code>
+
** replaced <code>OrmPersistentType.JAVA_PERSISTENT_TYPE_PROPERTY</code> with <code>OrmManagedType.JAVA_MANAGED_TYPE_PROPERTY</code>
+
** possibly want to use <code>OrmManagedType.getJavaManagedType()</code> instead of <code>OrmPersistent.getJavaPersistentType()</code> that is now just a helper method for returning the <code>JavaManagedType</code> of it is of type <code>JavaPersistentType</code>
+
** <code>OrmTypeMapping</code>
+
*** <code>getClass_()</code> and <code>setClass(...)</code> and <code>getClassTextRange()</code>moved to <code>OrmManagedType</code>
+
*** remove <code>createDeleteEdit()</code> - OrmManagedType.createDeleteTypeEdits(...) used instead
+
**added method <code>OrmXmlDefinition.getManagedTypeDefinition(...)</code>
+
** changed <code>ClassRef</code>
+
*** added method <code>getJavaManagedType()</code>
+
*** renamed <code>JAVA_PERSISTENT_TYPE_PROPERTY</code> to <code>JAVA_MANAGED_TYPE_PROPERTY</code>
+
** added interface <code>ManagedTypeContainer</code> and <code>PersistentTypeContainer</code> now extends this.
+
** renamed method <code>PersistenceUnit.specifiesPersistentType(String)</code> to <code>specifiesManagedType()</code>
+
** created new interfaces:
+
*** <code>ConverterType2_1</code>
+
*** <code>EntityMappings2_1</code>
+
*** <code>ConverterType2_1</code>
+
*** <code>OrmXml2_1ContextNodeFactory2_1</code>
+
*** <code>JpaFactory2_1</code>
+
 
+
* renamed <code>AccessHolder</code> to <code>AccessReference</code>
+
 
+
* renamed <code>[Java/Orm]CacheableHolder2_0</code> to <code>[Java/Orm]CacheableReference2_0</code>
+
 
+
* renamed <code>[Java/Orm]CacheableHolder2_0</code> to <code>[Java/Orm]CacheableReference2_0</code>
+
 
+
* renamed <code>OrphanRemovalHolder2_0</code> to <code>[Java/Orm]OrphanRemovalMapping2_0</code>
+
 
+
* renamed <code>Connection2_0</code> to <code>JpaConnection2_0</code>
+
 
+
* renamed <code>JpaOptions2_0</code> to <code>Options2_0</code>
+
 
+
* renamed <code>SharedCacheMode</code> to <code>SharedCacheMode2_0</code>
+
 
+
* renamed <code>ValidationMode</code> to <code>ValidationMode2_0</code>
+
 
+
* renamed <code>MetamodelSynchronizer</code> to <code>JpaMetamodelSynchronizer2_0</code>
+
 
+
* renamed <code>ResourceDefinition</code> to <code>JpaResourceDefinition</code>
+
 
+
* renamed <code>JpaNode</code> to <code>JpaModel</code>
+
 
+
* renamed <code>JpaContextNode</code> to <code>JpaContextModel</code>
+
 
+
* renamed <code>JpaRootContextNode</code> to <code>JpaContextModelRoot</code>
+
 
+
* renamed <code>JpaNamedContextNode</code> to <code>JpaNamedContextModel</code>
+
 
+
* moved JPA 2.0- and 2.1-specific methods from <code>PersistenceXmlContextModelFactory</code> to appropriate sub-interfaces: <code>PersistenceXmlContextModelFactory2_0</code> and <code>PersistenceXmlContextModelFactory2_1</code>
+
 
+
* added method <code>PersistenceUnit.addPersistentTypes(...)</code> to support adding persistent types from a wizard
+
 
+
* renamed <code>PersistenceXmlContextNodeFactory</code> to <code>PersistenceXmlContextModelFactory</code> and corresponding methods <code>PersistenceXmlDefinition.getResourceNodeFactory()</code> to <code>getResourceModelFactory()</code> and <code>PersistenceXmlDefinition.getContextNodeFactory()</code> to <code>getContextModelFactory()</code>
+
 
+
* renamed <code>OrmXmlContextNodeFactory</code> to <code>OrmXmlContextModelFactory</code> and corresponding methods <code>OrmXmlDefinition.getResourceNodeFactory()</code> to <code>getResourceModelFactory()</code> and <code>OrmXmlDefinition.getContextNodeFactory()</code> to <code>getContextModelFactory()</code>
+
 
+
* renamed <code>[Java/Orm]GeneratedValueHolder</code> to <code>[Java/Orm]GeneratedValueMapping</code>
+
 
+
* In a particularly painful (for adopters) change, the various pairs and triplets of interfaces named after the pattern:
+
:: <code>ReadOnlyFoo</code>
+
:: <code>Foo</code>
+
:: <code>VirtualFoo</code>
+
: where <code>Foo</code> and <code>VirtualFoo</code> were subclasses of <code>ReadOnlyFoo</code>, the interfaces were renamed after the pattern:
+
:: <code>Foo</code>
+
:: <code>SpecifiedFoo</code>
+
:: <code>VirtualFoo</code>
+
: where <code>SpecifiedFoo</code> and <code>VirtualFoo</code> are subclasses of <code>Foo</code>:
+
<code>
+
{| border="1" cellpadding="5" cellspacing="0"
+
|-
+
! Old
+
! New
+
|-
+
| [Orm]ReadOnlyPersistentAttribute[2_0] <br> [Java/Orm]PersistentAttribute[2_0]
+
| [Orm]PersistentAttribute[2_0] <br> [Java/Orm]SpecifiedPersistentAttribute[2_0]
+
|-
+
| ReadOnlyAccessHolder <br> AccessHolder
+
| AccessReference <br> SpecifiedAccessReference
+
|-
+
| ReadOnlyNamedColumn <br> [Java/Orm]NamedColumn <br> VirtualNamedColumn
+
| NamedColumn <br> [Java/Orm]SpecifiedNamedColumn <br> VirtualNamedColumn
+
|-
+
| ReadOnlyBaseJoinColumn <br> [Java/Orm]BaseJoinColumn <br> VirtualBaseJoinColumn
+
| BaseJoinColumn <br> [Java/Orm]SpecifiedBaseJoinColumn <br> VirtualBaseJoinColumn
+
|-
+
| ReadOnlyJoinColumn <br> [Java/Orm]JoinColumn <br> VirtualJoinColumn
+
| JoinColumn <br> [Java/Orm]SpecifiedJoinColumn <br> VirtualJoinColumn
+
|-
+
| ReadOnlyPrimaryKeyJoinColumn <br> [Java/Orm]PrimaryKeyJoinColumn <br> [Orm]VirtualPrimaryKeyJoinColumn
+
| PrimaryKeyJoinColumn <br> [Java/Orm]SpecifiedPrimaryKeyJoinColumn <br> [Orm]VirtualPrimaryKeyJoinColumn
+
|-
+
| ReadOnlyNamedDiscriminatorColumn <br> NamedDiscriminatorColumn <br> VirtualNamedDiscriminatorColumn
+
| NamedDiscriminatorColumn <br> SpecifiedNamedDiscriminatorColumn <br> VirtualNamedDiscriminatorColumn
+
|-
+
| [Java/Orm]ReadOnlyDiscriminatorColumn <br> [Java/Orm]DiscriminatorColumn
+
| [Java/Orm]DiscriminatorColumn <br> [Java/Orm]SpecifiedDiscriminatorColumn
+
|-
+
| [Java/Orm]OrderColumn2_0
+
| [Java/Orm]SpecifiedOrderColumn2_0
+
|-
+
| ReadOnlyTableColumn <br> TableColumn <br> VirtualTableColumn
+
| TableColumn <br> SpecifiedTableColumn <br> VirtualTableColumn
+
|-
+
| ReadOnlyBaseColumn <br> [Java/Orm]BaseColumn <br> VirtualBaseColumn
+
| BaseColumn <br> [Java/Orm]SpecifiedBaseColumn <br> VirtualBaseColumn
+
|-
+
| ReadOnlyColumn <br> [Java/Orm]Column <br> VirtualColumn
+
| Column <br> [Java/Orm]SpecifiedColumn <br> VirtualColumn
+
|-
+
| ReadOnlyOverride <br> [Java/Orm]Override_ <br> VirtualOverride
+
| Override_ <br> [Java/Orm]SpecifiedOverride <br> VirtualOverride
+
|-
+
| ReadOnlyAssociationOverride[2_0] <br> [Java/Orm]AssociationOverride[2_0] <br> [Java/Orm]VirtualAssociationOverride
+
| AssociationOverride[2_0] <br> [Java/Orm]SpecifiedAssociationOverride[2_0] <br> [Java/Orm]VirtualAssociationOverride
+
|-
+
| ReadOnlyAttributeOverride <br> [Java/Orm]AttributeOverride <br> [Java/Orm]VirtualAttributeOverride
+
| AttributeOverride <br> [Java/Orm]SpecifiedAttributeOverride <br> [Java/Orm]VirtualAttributeOverride
+
|-
+
| ReadOnlyRelationship <br> Relationship <br> VirtualRelationship
+
| Relationship <br> SpecifiedRelationship <br> VirtualRelationship
+
|-
+
| ReadOnlyJoinColumnRelationship <br> JoinColumnRelationship <br> VirtualJoinColumnRelationship
+
| JoinColumnRelationship <br> SpecifiedJoinColumnRelationship <br> VirtualJoinColumnRelationship
+
|-
+
| ReadOnlyJoinTableRelationship <br> JoinTableRelationship <br> VirtualJoinTableRelationship
+
| JoinTableRelationship <br> SpecifiedJoinTableRelationship <br> VirtualJoinTableRelationship
+
|-
+
| [Java/Orm]ReadOnlyOverrideRelationship[2_0] <br> [Java/Orm]OverrideRelationship[2_0] <br> [Java/Orm]VirtualOverrideRelationship[2_0]
+
| [Java/Orm]OverrideRelationship[2_0] <br> [Java/Orm]SpecifiedOverrideRelationship[2_0] <br> [Java/Orm]VirtualOverrideRelationship[2_0]
+
|-
+
| ReadOnlyRelationshipStrategy <br> RelationshipStrategy <br> VirtualRelationshipStrategy
+
| RelationshipStrategy <br> SpecifiedRelationshipStrategy <br> VirtualRelationshipStrategy
+
|-
+
| ReadOnlyJoinColumnRelationshipStrategy <br> [Java/Orm]JoinColumnRelationshipStrategy <br> VirtualJoinColumnRelationshipStrategy
+
| JoinColumnRelationshipStrategy <br> [Java/Orm]SpecifiedJoinColumnRelationshipStrategy <br> VirtualJoinColumnRelationshipStrategy
+
|-
+
| ReadOnlyJoinTableRelationshipStrategy <br> [Java/Orm]JoinTableRelationshipStrategy <br> VirtualJoinTableRelationshipStrategy
+
| JoinTableRelationshipStrategy <br> [Java/Orm]SpecifiedJoinTableRelationshipStrategy <br> VirtualJoinTableRelationshipStrategy
+
|-
+
| MappedByRelationshipStrategy
+
| SpecifiedMappedByRelationshipStrategy
+
|-
+
| ReadOnlyTable <br> Table <br> VirtualTable
+
| Table <br> SpecifiedTable <br> VirtualTable
+
|-
+
| ReadOnlyReferenceTable <br> [Java/Orm]ReferenceTable <br> VirtualReferenceTable
+
| ReferenceTable <br> [Java/Orm]SpecifiedReferenceTable <br> VirtualReferenceTable
+
|-
+
| ReadOnlyJoinTable <br> [Java/Orm]JoinTable <br> VirtualJoinTable
+
| JoinTable <br> [Java/Orm]SpecifiedJoinTable <br> VirtualJoinTable
+
|-
+
| ReadOnlySecondaryTable <br> [Java/Orm]SecondaryTable <br> VirtualSecondaryTable
+
| SecondaryTable <br> [Java/Orm]SpecifiedSecondaryTable <br> VirtualSecondaryTable
+
|-
+
| ReadOnlyUniqueConstraint <br> [Java/Orm]UniqueConstraint <br> VirtualUniqueConstraint
+
| UniqueConstraint <br> [Java/Orm]SpecifiedUniqueConstraint <br> VirtualUniqueConstraint
+
|}
+
</code>
+
 
+
* Various <code>Owner</code> interfaces were renamed to the corresponding interface <code>ParentAdapter</code> and refactored to return the client's parent; so, instead of constructing a client with both a parent and an owner, the client is constructed with only a parent adapter. The appropriate factory methods were changed accordingly:
+
<code>
+
{| border="1" cellpadding="5" cellspacing="0"
+
|-
+
! Old
+
! New
+
|-
+
| [Java/Orm]OverrideContainer.Owner
+
| [Java/Orm]OverrideContainer.ParentAdapter
+
|-
+
| [Java/Orm]AssociationOverrideContainer.Owner
+
| [Java/Orm]AssociationOverrideContainer.ParentAdapter
+
|-
+
| [Java/Orm]AttributeOverrideContainer.Owner
+
| [Java/Orm]AttributeOverrideContainer.ParentAdapter
+
|-
+
| [Java/Orm]Converter.Owner
+
| [Java/Orm]Converter.ParentAdapter
+
|-
+
| OrmBaseEnumeratedConverter.Owner
+
| OrmBaseEnumeratedConverter.ParentAdapter
+
|-
+
| OrmBaseTemporalConverter.Owner
+
| OrmBaseTemporalConverter.ParentAdapter
+
|-
+
| JavaQueryContainer.Owner
+
| JavaQueryContainer.ParentAdapter
+
|-
+
| [Java/Orm]ReadOnlyTable.Owner
+
| [Java/Orm]Table.ParentAdapter
+
|-
+
| [Java/Orm]ReadOnlyCollectionTable2_0.Owner
+
| [Java/Orm]CollectionTable2_0.ParentAdapter
+
|-
+
| [Java/Orm]JoinTable.Owner
+
| [Java/Orm]SpecifiedJoinTable.ParentAdapter
+
|-
+
| [Java/Orm]SecondaryTable.Owner
+
| [Java/Orm]SpecifiedSecondaryTable.ParentAdapter
+
|-
+
| OrmVirtualSecondaryTable.Owner
+
| OrmVirtualSecondaryTable.ParentAdapter
+
|-
+
| VirtualJoinTable.Owner
+
| VirtualJoinTable.ParentAdapter
+
|-
+
| ReadOnlyNamedColumn.Owner
+
| NamedColumn.ParentAdapter
+
|-
+
| ReadOnlyTableColumn.Owner
+
| TableColumn.ParentAdapter
+
|-
+
| ReadOnlyBaseJoinColumn.Owner
+
| BaseJoinColumn.ParentAdapter
+
|-
+
| ReadOnlyJoinColumn.Owner
+
| JoinColumn.ParentAdapter
+
|-
+
| [Java/Orm]Column.Owner
+
| [Java/Orm]SpecifiedColumn.ParentAdapter
+
|-
+
| [Jave/Orm]OrderColumn2_0.Owner
+
| [Jave/Orm]SpecifiedOrderColumn2_0.ParentAdapter
+
|-
+
| ReadOnlyNamedDiscriminatorColumn.Owner
+
| NamedDiscriminatorColumn.ParentAdapter
+
|-
+
| [Jave/Orm]DiscriminatorColumn.Owner
+
| [Jave/Orm]SpecifiedDiscriminatorColumn.ParentAdapter
+
|-
+
| VirtualColumn.Owner
+
| VirtualColumn.ParentAdapter
+
|-
+
| [Jave/Orm]Orderable2_0.Owner
+
| [Jave/Orm]Orderable2_0.ParentAdapter
+
|}
+
</code>
+
 
+
* Remove the functionality that creates an orm.xml file during project creation ([https://bugs.eclipse.org/403131 bug 403131]):
+
** Removed <code> JpaFacetInstallDataModelProperties.CREATE_ORM_XML </code>
+
** Removed <code> JpaFacetInstallDelegate.createOrmXml(...) </code>
+
** Changed <code> JpaFacetInstallDelegate.createProjectXml(...) </code> to only create persistence.xml
+
 
+
=== JAXB Core (Provisional API)  ===
+
 
+
* <code>JptJaxbCorePlugin</code> - moved to private package and moved its members to the appropriate public interfaces etc.
+
<code>
+
{| border="1" cellpadding="5" cellspacing="0"
+
|-
+
! 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
+
|}
+
</code>
+
 
+
* added <code>JaxbWorkspace</code>
+
 
+
* added <code>JaxbPreferences</code>
+
 
+
* renamed <code>JaxbPlatformDescription</code> to <code>JaxbPlatformConfig</code>
+
 
+
* renamed <code>JaxbPlatformGroupDescription</code> to <code>JaxbPlatformGroupConfig</code>
+
 
+
* removed <code>GenericJaxbPlatform</code> and scattered its constants to various <code>JaxbPlatformDefinition</code> implementations
+
 
+
* removed <code>JaxbFacet</code> and moved its constants to <code>JaxbProject</code>
+
 
+
=== EclipseLink JPA Core (Provisional API)  ===
+
 
+
* <code>JptJpaEclipseLinkCorePlugin</code> - moved to private package and moved its members to the appropriate public interfaces etc.
+
<code>
+
{| border="1" cellpadding="5" cellspacing="0"
+
|-
+
! 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
+
|}
+
</code>
+
 
+
* moved preference code to new facade <code>EclipseLinkJpaPreferences</code>
+
 
+
* removed <code>EclipseLinkPlatform</code> and scattered its constants to various <code>JpaPlatformFactory</code> implementations
+
 
+
 
+
=== EclipseLink JAXB Core (Provisional API)  ===
+
 
+
* removed <code>ELJaxbPlatform</code> and scattered its constants to various <code>JaxbPlatformDefinition</code> implementations
+
 
+
 
+
=== Common UI (Provisional API) ===
+
* <code>WidgetFactory</code>:
+
** removed deprecated <code>createCCombo(...)</code>
+
** removed deprecated <code>createEditableCCombo(...)</code>
+
** removed <code>createMultiLineLabel(...)</code>
+
** added <code>dispose()</code> - must be called when finished with the widget factory
+
 
+
* <code>ItemLabelProvider.Manager</code>:
+
** added <code>getResourceManager()</code>
+
 
+
* added <code>JptCommonUiImages</code>
+
 
+
* Various <code>ProviderFactory</code> top-level interfaces were converted to member interfaces:
+
<code>
+
{| border="1" cellpadding="5" cellspacing="0"
+
|-
+
! Old
+
! New
+
|-
+
| ItemExtendedLabelProviderFactory
+
| ItemExtendedLabelProvider.Factory
+
|-
+
| ItemLabelProviderFactory
+
| ItemLabelProvider.Factory
+
|-
+
| ItemStructuredContentProviderFactory
+
| ItemStructuredContentProvider.Factory
+
|-
+
| ItemTreeContentProviderFactory
+
| ItemTreeContentProvider.Factory
+
|}
+
</code>
+
 
+
=== JPA UI (Provisional API) ===
+
 
+
* enhanced <code>JpaPlatformUi</code>:
+
** added <code>getTypeMappingUiDefinition(...)</code>
+
** added <code>getAttributeMappingUiDefinition(...)</code>
+
** added parameters <code>PropertyValueModel<Boolean> enabledModel</code> and <code>ResourceManager resourceManager</code> to <code>buildTypeMappingComposite(...)</code>
+
** added parameters <code>PropertyValueModel<Boolean> enabledModel</code> and <code>ResourceManager resourceManager</code> to <code>buildAttributeMappingComposite(...)</code>
+
** changed <code>buildJpaDetailsManager(...)</code> to <code>getDetailsProvider(JpaStructureNode)</code>
+
 
+
* converted <code>Iterator</code>s to <code>Iterable</code>s:
+
** <code>JpaPlatformUi.getTypeMappingUiDefinitions(...)</code>
+
** <code>JpaPlatformUi.getAttributeMappingUiDefinitions(...)</code>
+
** <code>JpaPlatformUiProvider.getDetailsProviders()</code>
+
** <code>JpaPlatformUiProvider.getResourceUiDefinitions()</code>
+
** <code>MappingResourceUiDefinition.getTypeMappingUiDefinitions()</code>
+
** <code>MappingResourceUiDefinition.getAttributeMappingUiDefinitions()</code>
+
 
+
* enhanced <code>JpaPlatformUiProvider</code>:
+
** moved <code>getDetailsProviders()</code> to <code>ResourceUiDefinition</code>
+
 
+
* enhanced <code>ResourceUiDefinition</code>:
+
** added <code>getEditorPageDefinitions()</code>
+
** moved <code>getDetailsProviders()</code> from <code>JpaPlatformUiProvider</code>
+
 
+
* enhanced <code>MappingResourceUiDefinition</code>:
+
** added <code>getTypeMappingUiDefinition(...)</code>
+
** added <code>getTypeMappingUiDeginitions(PersistentType)</code>
+
** added <code>getAttributeMappingUiDefinition(...)</code>
+
** added <code>getAttributeMappingUiDefinitions(ReadOnlyPersistentAttribute)</code>
+
** added parameters <code>PropertyValueModel<Boolean> enabledModel</code> and <code>ResourceManager resourceManager</code> to <code>buildAttributeMappingComposite(...)</code>
+
** added parameter <code>ResourceManager resourceManager</code> to <code>buildTypeMappingComposite(...)</code>
+
 
+
* enhanced <code>MappingUiDefinition</code>:
+
** ungenericized this interface
+
** changed <code>getImage()</code> to <code>getImageDescriptor()</code>
+
** added method <code>buildMappingComposite()</code>, this replaced similar methods in <code>JavaTypeMappingUiDefinition</code> and <code>JavaAttributeMappingUiDefinition</code>. added parameters <code>PropertyValueModel<Boolean> enabledModel</code> and <code>ResourceManager resourceManager</code>
+
 
+
* deleted <code>JavaTypeMappingUiDefinition</code> - see <code>MappingUiDefinition</code>
+
* deleted <code>JavaAttributeMappingUiDefinition</code> - see <code>MappingUiDefinition</code>
+
* deleted <code>DefaultJavaTypeMappingUiDefinition</code> - see <code>MappingUiDefinition</code>
+
* deleted <code>DefaultJavaAttributeMappingUiDefinition</code> - see <code>MappingUiDefinition</code>
+
* deleted <code>OrmTypeMappingUiDefinition</code> - see <code>MappingUiDefinition</code>
+
* deleted <code>OrmAttributeMappingUiDefinition</code> - see <code>MappingUiDefinition</code>
+
* deleted <code>JavaUiFactory</code> - see <code>JpaUiFactory</code>
+
* deleted <code>OrmXmlUiFactory</code> - see <code>JpaUiFactory</code>
+
* deleted <code>JavaUiFactory2_0</code> - see <code>JpaUiFactory2_0</code>
+
* deleted <code>OrmXmlUiFactory2_0</code> - see <code>JpaUiFactory2_0</code>
+
 
+
* added <code>JpaUiFactory</code> and <code>JpaUiFactory2_0</code>
+
** methods from deleted classes <code>JavaUiFactory</code> <code>OrmXmlUiFactory</code> were renamed to be not specific to orm/java, ie  <code>createEntityComposite(...)</code> replaced <code>createJavaEntityComposite(...)</code>
+
** added parameters <code>PropertyValueModel<Boolean> enabledModel</code> and <code>ResourceManager resourceManager</code> to all attribute and type mapping methods
+
** removed vestigial ORM type mapping methods:
+
*** <code>createOrmMappedSuperclassComposite(...)</code>
+
*** <code>createOrmEntityComposite(...)</code>
+
*** <code>createOrmEmbeddableComposite(...)</code>
+
 
+
* enhanced <code>JpaComposite</code>
+
** removed <code>enableWidgets(boolean)</code> - a <code>Pane</code> now takes a <code>PropertyValueModel<Boolean></code> used for enabling widgets
+
 
+
* 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 <code>JpaComposite</code>
+
** renamed <code>getPageImageDescriptor()</code> to <code>getTitleImageDescriptor()</code>
+
** renamed <code>getPageText()</code> to <code>getTitleText()</code>
+
** added <code>buildContent(...)</code>
+
 
+
* enhanced <code>JpaDetailsPageManager</code>:
+
** ungenericized this interface.
+
** <code>getSubject()</code> now returns <code>JpaStructureNode</code>
+
** <code>setSubject(...)</code> now takes a <code>JpaStructureNode</code> parameter
+
 
+
* enhanced <code>JpaDetailsPageManager.Factory</code>:
+
** added parameter <code>ResourceManager resourceManager</code> to <code>buildPageManager(...)</code>
+
 
+
* enhanced <code>JpaDetailsProvider</code>:
+
** added parameter <code>ResourceManager resourceManager</code> to <code>buildDetailsPageManager(...)</code>
+
** replaced method <code>providesDetails(JpaStructureNode>)</code> with <code>getType()</code>
+
 
+
* added <code>JpaWorkbench</code>
+
 
+
* added <code>JpaPlatformUiManager</code>
+
 
+
* added <code>JptJpaUiImages</code>
+
 
+
* added <code>PersistenceResourceUiDefinition</code> that any ResourceUiDefinition for a persistence.xml file needs to implement
+
 
+
* removed the functionality that creates an orm.xml file during project creation ([https://bugs.eclipse.org/392222 bug 392222]):
+
** removed <code> JpaFacetInstallPage.OrmXmlGroup </code>
+
 
+
=== JPQL Query (content assist and validation) (Provisional API)  ===
+
 
+
* <code>SourceAnnotation</code>, <code>ASTTools</code>
+
** Added support for retrieving a list of text ranges when the value is split.
+
 
+
* <code>Query</code>, <code>QueryAnnotation</code>, <code>XmlQuery</code>
+
** Changed "<code>TextRange getTextRange()</code>" to "<code>List<TextRange> getTextRanges()</code>" to support a JPQL query split into multiple sections (see [https://bugs.eclipse.org/386414 bug 386414]).
+
 
+
* <code>XmlQuery</code>
+
** Added 3 methods (<code>getActualQuery()</code>, <code>getQueryOffset()</code>, <code>isQueryInsideCDATASection()</code>) to help fix alignment issue of content assist and validation text range (also see [https://bugs.eclipse.org/360713 bug 360713]).
+
* <code>JpaJpqlQueryHelper</code>, 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 <code>&lt;query&gt;</code> element and the query itself in XML.
+
 
+
=== JAXB UI (Provisional API)  ===
+
 
+
* <code>JptJaxbUiPlugin</code> - moved to private package and moved its members to the appropriate public interfaces etc.
+
<code>
+
{| border="1" cellpadding="5" cellspacing="0"
+
|-
+
! Old
+
! New
+
|-
+
| getJaxbPlatformUiManager()
+
| TO DO
+
|}
+
</code>
+
  
* added <code>JaxbWorkbench</code>
+
=== JAXB Core (Provisional API) ===
 +
* <code>JaxbProjectManager</code>
 +
** added method <code>getJaxbWorkspace()</code>
  
* added <code>JptJaxbUiImages</code>
+
=== JAXB UI (Provisional API) ===
 +
* New interfaces
 +
** <code>JaxbProjectsModel</code>
 +
** <code>JaxbProjectModel</code>
  
 
== Reference ==
 
== Reference ==
  
This document covers ONLY changes between WTP 3.5 and WTP 3.4.
+
This document covers ONLY changes between WTP 3.6 and WTP 3.5.
 
See also:
 
See also:
* [[New_Help_for_Old_Friends_VII|New Help for Old Friends VII (3.4)]]
+
* [[New_Help_for_Old_Friends_VIII|New Help for Old Friends VIII (3.5 Kepler)]]
* [[New_Help_for_Old_Friends_VI|New Help for Old Friends VI (3.3)]]
+
* [[New_Help_for_Old_Friends_VII|New Help for Old Friends VII (3.4 Juno)]]
* [[New_Help_for_Old_Friends_V|New Help for Old Friends V (3.2)]]
+
* [[New_Help_for_Old_Friends_VI|New Help for Old Friends VI (3.3 Indigo)]]
* [[New_Help_for_Old_Friends_IV|New Help for Old Friends IV (3.1)]]
+
* [[New_Help_for_Old_Friends_V|New Help for Old Friends V (3.2 Helios)]]
* [[New_Help_for_Old_Friends_III|New Help for Old Friends III (3.0)]]
+
* [[New_Help_for_Old_Friends_IV|New Help for Old Friends IV (3.1 Galileo)]]
* [[New_Help_for_Old_Friends_II|New Help for Old Friends II (2.0)]]
+
* [[New_Help_for_Old_Friends_III|New Help for Old Friends III (3.0 Ganymede)]]
* [[New_Help_for_Old_Friends|New Help for Old Friends (1.5)]]
+
* [[New_Help_for_Old_Friends_II|New Help for Old Friends II (2.0 Europa)]]
 +
* [[New_Help_for_Old_Friends|New Help for Old Friends (1.5 Callisto)]]
  
  
 
[[Category:Eclipse Web Tools Platform Project]]
 
[[Category:Eclipse Web Tools Platform Project]]

Revision as of 12:57, 11 July 2013

Overview

This page collects notes and pointers to changes coming up in the WTP 3.6 (Luna) 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.

Dali

Common UI (Provisional API)

  • reworked item provider interfaces:
    • new interface ItemContentProvider
    • ItemTreeContentProvider
      • now extends ItemContentProvider
      • Manager now extends ItemContentProvider.Manager
        • method updateChildren(Object) changed to childrenChanged(Object, Iterable, Iterable)
      • Factory now extends ItemStructuredContentProvider.Factory
        • method buildProvider(Object, Manager) changed to buildProvider(Object, Object, Manager)
    • ItemStructuredContentProvider
      • now extends ItemContentProvider
      • Manager now extends ItemContentProvider.Manager
        • method updateElements(Object) changed to elementsChanged(Object, Iterable, Iterable)
    • ItemLabelProvider
      • added isLabelProperty(String)
      • Manager
        • method updateLabel(Object) changed to labelChanged(Object)
        • new method getViewer()
    • ItemExtendedLabelProvider
      • Manager
        • method updateDescription(Object) changed to descriptionChanged(Object)

JPA Core (Provisional API)

  • Renamed JpaContextModelRoot to JpaContextRoot and related changes:
    • renamed JpaContextModelRoot2_0 to JpaContextRoot2_0
    • JpaFactory
      • renamed buildContextModelRoot(JpaProject) to buildContextRoot(JpaProject)
    • JpaProject
      • renamed getContextModelRoot() to getContextRoot()
      • renamed CONTEXT_MODEL_ROOT_TRANSFORMER to CONTEXT_ROOT_TRANSFORMER
      • renamed ContextModelRootTransformer to ContextRootTransformer
  • Refactored JpaStructureNode
    • renamed getType() to getStructureType() and declared explicit return values
    • renamed getChildren() to getStructureChildren()
    • renamed getChildrenSize() to getStructureChildrenSize()
    • renamed CHILDREN_COLLECTION to STRUCTURE_CHILDREN_COLLECTION
    • JpaDetailsProvider
      • renamed getType() to getStructureType()
  • Refactored JpaNamedContextModel
    • pushed getType() down to sub-interfaces and declared explicit return types
      • added Generator.getGeneratorType()
      • added Query.getQueryType()
      • added EclipseLinkConverter.getConverterType()
    • pushed isEquivalentTo(JpaNamedContextModel) down to sub-interfaces
      • added Generator.isEquivalentTo(Generator)
      • added Query.isEquivalentTo(Query)
      • added EclipseLinkConverter.isEquivalentTo(EclipseLinkConverter)
  • Renamed Converter.getType() to getConverterType() and declared explicit return values
  • Renamed various intermediate Generator interfaces
    • renamed DbGeneratorAnnotation to DatabaseGeneratorAnnotation
    • renamed DbGenerator to DatabaseGenerator
    • renamed JavaDbGenerator to JavaDatabaseGenerator
  • Refactored managed type classes
    • ManagedType
      • renamed getType() to getManagedTypeType()
    • XmlManagedType
      • renamed getType() to getManagedTypeType()
    • JavaManagedTypeDefinition
      • renamed getType() to getManagedTypeType()
    • OrmManagedTypeDefinition
      • renamed getContextType() to getContextManagedTypeType()
      • renamed getResourceType() to getResourceManagedTypeType()
    • JavaManagedTypeUiDefinition
      • renamed getType() to getManagedTypeType()
  • XmlPersistenceUnit
    • added method sortClasses()
  • Reworked the API for converting mapping relationship settings so it is more clear what types of objects are converted to and from. Specifically:
    • Only ORM specified mapping relationship settings are copied over, when an an ORM attribute mapping is converted to another mapping (In Java, the annotations are simply left in place and rediscovered when the new mapping annotation is added to the source file.):
      • SpecifiedAssociationOverride
        • removed method initializeFrom(AssociationOverride)
        • removed method initializeFromVirtual(AssociationOverride)
      • SpecifiedAttributeOverride
        • removed method initializeFrom(AttributeOverride)
        • removed method initializeFromVirtual(AttributeOverride)
      • OrmSpecifiedAttributeOverride
        • added method initializeFrom(OrmSpecifiedAttributeOverride)
      • Relationship
        • removed method initializeOn(SpecifiedRelationship)
      • OrmMappingRelationship
        • added method initializeFrom(OrmMappingRelationship)
        • added method initializeOn(OrmMappingRelationship)
        • added method initializeFromJoinColumnRelationship(OrmJoinColumnRelationship)
        • added method initializeFromJoinTableRelationship(OrmJoinTableRelationship)
        • added method initializeFromMappedByRelationship(OrmMappedByRelationship)
        • added method initializeFromPrimaryKeyJoinColumnRelationship(OrmPrimaryKeyJoinColumnRelationship)
      • OverrideRelationship
        • removed method initializeOnSpecified(SpecifiedOverrideRelationship)
      • OrmMappedByRelationship
        • added method getMappedByStrategy()
      • SpecifiedJoinColumnRelationshipStrategy
        • removed method initializeFrom(JoinColumnRelationshipStrategy)
      • OrmSpecifiedJoinColumnRelationshipStrategy
        • added method initializeFrom(OrmSpecifiedJoinColumnRelationshipStrategy)
      • SpecifiedJoinTableRelationshipStrategy
        • removed method initializeFrom(JoinTableRelationshipStrategy)
      • OrmSpecifiedJoinTableRelationshipStrategy
        • added method initializeFrom(OrmSpecifiedJoinTableRelationshipStrategy)
      • SpecifiedMappedByRelationshipStrategy
        • removed method initializeFrom(SpecifiedMappedByRelationshipStrategy)
      • OrmSpecifiedMappedByRelationshipStrategy
        • added method initializeFrom(OrmSpecifiedMappedByRelationshipStrategy)
      • OrmSpecifiedPrimaryKeyJoinColumnRelationshipStrategy
        • added method initializeFrom(OrmSpecifiedPrimaryKeyJoinColumnRelationshipStrategy)
      • SpecifiedJoinTable
        • removed method initializeFrom(JoinTable)
      • OrmSpecifiedJoinTable
        • added method initializeFrom(OrmSpecifiedJoinTable)
      • OrmSpecifiedColumn
        • added method initializeFrom(OrmSpecifiedColumn)
      • SpecifiedJoinColumn
        • removed method initializeFrom(JoinColumn)
      • OrmSpecifiedJoinColumn
        • added method initializeFrom(OrmSpecifiedJoinColumn)
      • OrmSpecifiedPrimaryKeyJoinColumn
        • removed method initializeFrom(PrimaryKeyJoinColumn)
        • added method initializeFrom(OrmSpecifiedPrimaryKeyJoinColumn)
      • OrmSpecifiedSecondaryTable
        • removed method initializeFrom(SecondaryTable)
      • OrmCollectionTable2_0
        • removed method initializeFrom(CollectionTable2_0)
        • added method initializeFrom(OrmCollectionTable2_0)
    • Virtual Java override relationship settings are copied only to a specified Java overrides (likewise with ORM settings):
      • JavaSpecifiedAssociationOverride
        • added method initializeFrom(JavaVirtualAssociationOverride)
      • JavaSpecifiedAttributeOverride
        • added method initializeFrom(JavaVirtualAttributeOverride)
      • OrmSpecifiedAssociationOverride
        • added method initializeFrom(OrmVirtualAssociationOverride)
      • OrmSpecifiedAttributeOverride
        • added method initializeFrom(OrmVirtualAttributeOverride)
      • SpecifiedOverrideRelationship
        • renamed method initializeFromVirtual(OverrideRelationship) to initializeFrom(VirtualOverrideRelationship)
        • removed method initializeFromVirtualJoinColumnRelationship(JoinColumnRelationship)
        • removed method initializeFromVirtualJoinTableRelationship(JoinTableRelationship)
      • SpecifiedJoinColumnRelationshipStrategy
        • renamed method initializeFromVirtual(JoinColumnRelationshipStrategy) to initializeFrom(VirtualJoinColumnRelationshipStrategy)
      • SpecifiedJoinTableRelationshipStrategy
        • renamed method initializeFromVirtual(JoinTableRelationshipStrategy) to initializeFrom(VirtualJoinTableRelationshipStrategy)
      • SpecifiedJoinTable
        • renamed method initializeFromVirtual(JoinTable) to initializeFrom(VirtualJoinTable)
      • SpecifiedColumn
        • added method initializeFrom(VirtualColumn)
      • SpecifiedJoinColumn
        • renamed method initializeFromVirtual(JoinColumn) to initializeFrom(VirtualJoinColumn)
      • OrmSpecifiedSecondaryTable
        • added method initializeFrom(OrmVirtualSecondaryTable)
      • OrmSpecifiedPrimaryKeyJoinColumn
        • added method initializeFrom(OrmVirtualPrimaryKeyJoinColumn)
  • Refactored the API surrounding ordering:
    • XmlOrderable
      • changed get/setOrderBy(..) from String to XmlOrderBy (and added XmlOrderBy)
    • Orderable
      • removed custom ordering as an option. Custom ordering is now represented as a specified key on OrderBy, which is (primary key) by default.
      • changed set<Foo>Ordering(boolean) to set<Foo>Ordering() (no boolean). There is no way to "unset" ordering other than setting "no" ordering.
  • Refactored Entities/MappedSuperclasses to have common IdTypMapping functionality
    • XML resource model
      • Added XmlIdTypeMapping
    • Context model
      • BaseEmbeddedMapping
        • added getTargetEmbeddableName()
      • IdClassReference
        • added ID_CLASS_NAME_PROPERTY and property change notification for id class name
      • IdTypeMapping
        • added getPrimaryKeyClassName()
        • moved from TypeMapping:
          • Iterable<IdTypeMapping> getInheritanceHierarchy() (and changed return type)
          • isRootEntity()
          • getRootEntity()
          • getInheritanceStrategy()
      • PersistenceUnit
        • added getIdTypeMapping(String)
      • PersistentType
        • removed SUPER_PERSISTENT_TYPE_PROPERTY and property change notification for super persistent type (now delegates to type mapping)
        • removed getIdClass() (instead use IdTypeMapping#getIdClassReference()#getIdClass()
        • added SUPER_TYPE_MAPPING_PROPERTY and super type mapping property change notification
        • added Iterable<IdTypeMapping> getAncestors()
        • moved to IdTypeMapping:
          • getRootEntity(), isRootEntity(), getInheritanceStrategy()
        • added: getIdAttributeMapping()

JAXB Core (Provisional API)

  • JaxbProjectManager
    • added method getJaxbWorkspace()

JAXB UI (Provisional API)

  • New interfaces
    • JaxbProjectsModel
    • JaxbProjectModel

Reference

This document covers ONLY changes between WTP 3.6 and WTP 3.5. See also: