Release Notes

EMF & SDO Release Notes 

  • 2.0.0 Release (171 Bugs)
  • 2.0.0 Release
  • 2.0.0 I200406250129
  • 2.0.0 I200406241017
    • emf
      68465 Schema errors not linked to offending file
  • 2.0.0 I200406231126 (4 Bugs)
    • emf
      68310 ChangeRecorder doesn't pick up new contents
    • emf
      68256 NPE in XMLHelperImpl
    • emf
      68200 IndexOutOfBoundsException in ChangeRecorder
    • emf
      68198 Dirty flag does not work when undo-redo
  • 2.0.0 I200406221136 (2 Bugs)
    • emf
      68099 ClassCastException occurs when calling applyAndRerverse()
    • emf
      68068 JET Compiler not handling files from Linux correctly
  • 2.0.0 I200406211000 (8 Bugs)
    • emf
      67992 Provide more flexibility in the package registry implementation
    • EMF SDO
      67934 BasicEObjectImpl.eDerivedStructuralFeatureID(EStructuralFeature) gives bad result for open content features
    • emf
      67863 EcoreUtil.UsageCrossReferencer ignores derived features
    • emf
      67860 ItemPropertyDescriptor#getPropertyValue(Object) should not call eIsSet() for attributes
    • EMF SDO
      67826 SDO Editor broken for several reasons
    • emf
      67783 Support caching of extended metadata
    • emf
      67748 (STATIC)ChangeSummary.setting.getValue() returns null for date
    • emf
      67720 Jar-like archive URI behaviour for zip and other schemes
  • 2.0.0 I200406171028 (6 Bugs)
    • emf
      67635 Add utility methods to create QName objects
    • emf
      67493 bad trailing null character at the end in base64 type
    • emf
      67445 GenClassImpl#getSharedClassCreateChildFeatures() is non-deterministic
    • emf
      67162 RCP Application
    • emf
      66944 Incorrect order of parameters in call to this in ItemPropertyDescriptor causes null Category and broken static image
    • EMF SDO
      66860 Fix EMF editors to avoid new null selection assertion in SelectionChangedEvent in RC2
  • 2.0.0 I200406100948 (16 Bugs)
    • EMF SDO
      66367 DataObject.createDataObject for open content feature in repeating wildcard breaks
    • emf
      66365 Accessibility: FeatureEditorDialog not Accessible compliant: Text widget focus not readable
    • emf
      66361 Accessibility: LoadResourceDialog not Accessible compliant: Text overwrites button
    • EMF SDO
      66185 Avoid the use of CCombo in the generated wizards.
    • emf
      66154 Support ecore:ignore for facets, XSDAnnotation, <documentation>, and <appinfo>.
    • emf
      66118 Platform.resolve() does not produce a hierarchical URI
    • emf
      66102 Complete the support for validating according to XML Schema simple facets
    • emf
      66038 hrefs missing after saving recorded unknown features
    • emf
      66037 schemaLocation bypassed when using extended metadata
    • EMF SDO
      66032 Add activities to EMF and XSD
    • emf
      65730 ArrayIndexOutOfBoundsException in BasicCommandStack
    • emf
      65725 ClassCastException in ChangeRecorder
    • emf
      65700 Exception calling hasPrevious in ListIterator
    • EMF SDO
      65605 Problem with SDOUtil.setInt()
    • emf
      65159 JMerge: pull of exception, superclass don't work if getter returns null
    • emf
      56076 Generate deployable plug-ins
  • 2.0.0 I200406030436 (18 Bugs)
    • emf
      65159 JMerge: pull of exception, superclass don't work if getter returns null
    • emf
      65082 nsPrefix ignored in EMOF file
    • emf
      65064 NPE in EMFPlugin#getString(String)
    • emf
      64734 EEnumLiterals (and Booleans) not localized
    • emf
      64535 ItemProvider.factorAddCommand should correct the index
    • emf
      64374 JMerge: JPatternDictionary NullPointerException
    • emf
      64309 generated model editor fails to create model and crashes
    • emf
      64217 MappingRootImpl's createNotification() needs extra arg
    • emf
      63821 IllegalArgumentException when opening properties view
    • emf
      63497 Add XML Schema datatype validation for XMLTypeFactory
    • EMF SDO
      63117 Proper static code generation for Store scenario
    • emf
      62314 Enhancement to enable dynamic and generated EPackage usage across JVMs
    • emf
      61210 Drag and Drop with non-containment references not working
    • emf
      57593 64k method limit
    • emf
      56076 Generate deployable plug-ins
    • emf
      47327 source editor not dirty on D?D move
    • emf
      47201 Generated editor permits save on readonly files
    • emf
      39618 Improve label feature search algorithm
  • 2.0.0 I200405200923 (11 Bugs)
    • emf
      63079 ClassCastException when generating model code
    • emf
      62988 Attribute wildcards do not work correctly.
    • emf
      62898 JavaEcoreBuilder: mark "dummy" EClasses as interfaces
    • emf
      62471 FeatureMap.toArray() not implemented correctly
    • emf
      62452 ...provider.<model>EditPlugin class generated in wrong place
    • EMF SDO
      62422 Support generator control over runtime compatibility and Rich Client Platform
    • emf
      62275 CopyCommand should not copy unchangeable or derived features
    • sdo
      62181 EDataObject.getProperties() for static/dynamic properties
    • EMF SDO
      61601 getOldContainer and getOldContainingProperty on EChangeSummary
    • EMF SDO
      61595 Mark StructuralFeature as "read-only"
    • emf
      57865 The ok button can not be seen on the default size of "Import Primitive Type" window.
  • 2.0.0 I200405131028 (18 Bugs)
    • emf
      62030 Add support for XML Schema QName datatype
    • emf
      62026 NullPointerException in LoadResourceAction
    • sdo
      62025 SDO Data Conversion
    • emf
      61929 Inadequate error message from SDO
    • emf
      61816 Empty exceptions when trying import model from annoted Java file
    • emf
      61711 Make "built in" Ecore types always available in Ecore sample editor
    • emf
      61640 ItemPropertyDescriptor should get the editing domain from the item's adapter factory before its root adapter factory.
    • emf
      61503 Logic for proxy validation is incorrect
    • emf
      61502 No busy/progess indicator for long validation operations
    • emf
      61501 Validate action not available from the Editor menu
    • emf
      61500 Validate action creates markers of incorrect severity
    • emf
      61495 NullPointerException if diagnostic data is empty
    • emf
      61493 Diagnostician does not correctly validate contents
    • emf
      61465 Handle feature name collisions with root implements interface operations
    • EMF SDO
      61302 Support ESequence.add(String text) and (int index, String text)
    • emf
      60854 BIDI: Hebrew text is corrupted in the GenModel name.
    • emf
      58972 Provide better default substitution group/abstract element support and provide ecore:featureMap and ecore:mixed for more flexible control
    • emf
      58244 DBCS: The <NLlibrary>.library model project can not be create in Runtime-workbench.
  • 2.0.0 I200405060858 (6 Bugs)
    • emf
      61111 Add the first version of a constraint validation framework
    • emf
      60731 Removing handle from empty BasicEMap throws /zero exception
    • emf
      60603 References property descriptor missing for EAnnotations
    • emf
      60602 Initialization of generated packages doesn't set EStructuralFeature::ordered attribute
    • emf
      60535 BasicEMap iterator provides a null value after removing one or more entries
    • emf
      60224 Separate EditingDomain per Resource
  • 2.0.0 I200404291310 (3 Bugs)
    • emf
      60535 BasicEMap iterator provides a null value after removing one or more entries
    • emf
      60224 Separate EditingDomain per Resource
    • emf
      59463 createFromString doesn't trigger an error on unknown Enum values
  • 2.0.0 I200404281648 (17 Bugs)
    • emf
      60151 instances; an editor is also provided in org.eclipse.emf.mapping.ecore2ecore.editor.org.eclipse.emf.mapping.ecore2ecore, provides a model for mapping between EcoreEcore to Ecore mapping model. A new plug-in,
    • emf
      59688 ECoreutil.remove(object, feature, value) should do unset
    • emf
      59637 An element of type anyURI mapped to an EReference is improperly handled
    • emf
      59582 DBCS: Garbage code be showed of library child's name in runtime workbench.
    • emf
      59536 XMLSaveImpl.saveHRefMany resolves references
    • emf
      59465 ActionBarContributor template problems when generating without creation commands
    • emf
      59463 createFromString does'n trigger an error on unknown Enum values
    • emf
      59240 BasicCommandStack.flush() method doesn't reset mostRecentCommand
    • emf
      58472 NPE reading annotated Java class
    • emf
      58208 Problem in FeatureChangeImpl.applyAndReverse() method
    • emf
      58132 DBCS: generated extra text field on UTF-8 template with BOM
    • emf
      57654 implement caching mechanism in URI to reduce repetative String parse costs
    • emf
      57653 Don't revalidate new URIs created from existing validated URIs.
    • emf
      57474 Specifying an Exception in method causes a problem
    • emf
      51917 Add command line option(s) to control generator parameters
    • emf
      47432 emf.edit support for referencing a different resource
    • emf
      40505 org.eclipse.emf.ecore.xmi throws exception for xmi:Extension and elements from other namespaces
  • 2.0.0 I200404080727 (17 Bugs)
    • emf
      57707 DBCS:Import *.xsd xml schema file failed
    • sdo
      57669 Simplify and improve default factory registration
    • emf
      57616 No way to set ItemPropertyDescriptor.filterFlags
    • sdo
      57444 Null pointer exception saving DataGraph will null root object
    • emf
      57315 Add Diagnostic support, which will be used in the validation framework
    • emf
      57038 NullPointerException when inserting an attribute into a SDO
    • emf
      56919 GenClassImpl.getInterfaceExtends() produces duplicates for rootExtendsInterface other than EObject
    • EMF SDO
      56912 Provide general support for feature map entries in EMF.Edit.
    • emf
      56647 XMLHandler/XMIHandlers support for proper xmlns scoping
    • emf
      56190 CopyCommand on objects that reference themselves
    • emf
      56137 Parsing invalid boolean value should throw an exception
    • emf
      55829 Problems with new Data Types
    • EMF SDO
      55577 Casting DataObject to AnyType object throws ClassCastException
    • emf
      54112 A new option for XMLLoadImpl not to load external DTD in ecore.xmi
    • emf
      53806 Perf: Parser pool needed to greatly improve performance
    • emf
      53453 Feature request - write out xml DOCTYPE declaration
    • emf
      41704 Value automatically selected in combo box
  • 2.0.0 I200403250631 (17 Bugs)
    • EMF SDO
      55955 Dirty Conflict in Generated Editor
    • sdo
      55587 Serialize DataGraph as spelled out in the SDO spec
    • EMF SDO
      55463 Performance improvements can help speed up SDO data accessors
    • sdo
      55462 EDataGraphImpl needs to implement writeReplace for when it is serialized directly
    • sdo
      55379 Ant targets dialog rendering error
    • emf
      55276 Provide support for blocking properties from being merged in
    • emf
      55263 ClassCastException during init() of user-defined Registry class
    • emf
      55152 java name problems
    • emf
      54706 EMF Editor Crashes
    • emf
      54702 Provide a way to block unused imports from being merged in
    • sdo
      54367 NPE when accessing bogus feature name in SDO
    • emf
      54271 JavaEcoreBuilder should ignore interface in @extends
    • EMF SDO
      54201 Change EMF templates to be able to use JETNature for build
    • emf
      54080 Update of not unsettable to unsettable in rose not copied to ecore
    • emf
      54079 Use new code formatter constants in GenModelEditor.
    • EMF SDO
      54077 Handle CTabFolder changes for new UI look
    • emf
      47434 refresh capability for model editors
  • 2.0.0 I200403081633 (5 Bugs)
    • emf
      54080 Update of not unsettable to unsettable in rose not copied.
    • emf
      54079 Use new code formatter constants in GenModelEditor.
    • emf
      54077 Handle CTabFolder changes for new UI look.
    • emf
      53772 ListChange should handle index == -1.
    • emf
      53180 Problem with name collision in XML-schema generated model.
  • 2.0.0 I200402251234SL (7 Bugs) There are bug fixes and improvements included with this build, some of which are described below. Where the description applies to a bug reported through Bugzilla, the Bugzilla number is included after the description.
    • EMF Change Model. A new plugin, org.eclipse.emf.ecore.change, provides a model for representing changes (i.e., deltas) to an arbitrary collection of EMF objects. The change model can apply its change (and optionally reverse the delta so that the change can later be undone). A change recorder (adapter), which builds a change model for a set of monitored objects, is also provided. This model is used by the implementation of SDO, see below.
    • SDO (Service Data Objects) reference implementation. SDO is a proposed standard (JSR 235) that provides a uniform access and manipulation interface for data from heterogeneous data sources, including relational databases, XML data sources, Web services, and enterprise information systems. The SDO interfaces are contained in plugin org.eclipse.emf.commonj.sdo and implemented, using EMF, in plugin org.eclipse.emf.ecore.sdo.
    • Changed XMLResource to support producing and using IDs that are universally unique. The method EcoreUtil.generateUUID() is provided and XMLResource.useUUIDs() and XMLResource.useIDAttributes() can be overridden to enable the capability. There is no support for lookup based on UUID; this is simply using the existing ID support but is ensuring that the IDs are universally unique.
    • Special cased xsi:schemaLocation to omit #/ from the end of reference. This lets clients write out schema locations that can be used directly either by EMF or by Xerces.
    • Fixed DelegatingFeatureMap/BasicFeatureMap.isMany to properly return value from affiliated feature.
    • Support elements of type ID and appinfo in XSD2Ecore. For appinfo, the source attribute in the appinfo becomes the source attribute of the annotation.
    • Fixed EcoreUtil.Copier to ensure that an unsettable reference that is set to null is copied.
    • Ensures that a wildcard-based feature delegating to a feature map will be properly treated as a many feature.
    • Added eStore() and eSetStore() methods to EStoreEObjectImpl.
    • Refactored EFactoryImpl.create(EClass) for easier reuse. The implementation of instance creation has been moved to a separate method, basicCreate(), making it easier to create something other than EObjectImpl.
    • emf
      52312 Changed EMF editors (.ecore, .genmodel, etc.) and Editor.javajet template to accommodate new UI in Eclipse 3.0 M7.
    • emf
      52174 Fixed bug in ReplaceCommand constructor. Wrong object was being used for the replacement.
    • emf
      51204 Fixed empty StringSegment.Element bug that caused NPE when saving an XMLResource.
    • emf
      50782 Fixed AdapterFactoryLabelProvider and AdapterFactoryContentProvider setAdapterFactory() methods which were not clearing the listener.
    • emf
      50176 Changed Rose importer to omit derived attributes with stereotype <<reference>>.
    • emf
      49269 Changed CopyCommand to properly preserve order of copied bi-directional references.
    • emf
      43957 Removed recursive build from JET, which caused NPEs in GlobalBuildAction, BuildManager.
  • 2.0.0 I200401271738SL
  • 2.0.0 I200312190637VL (2 Bugs) There are bug fixes and improvements included with this build, some of which are described below. Where the description applies to a bug reported through Bugzilla, the Bugzilla number is included after the description.
    • Added a command-line utility, XSD2GenModel (analogous to Rose2GenModel), for importing models from XML Schema.
    • Renamed some of the new GenModel attributes (defaultRootExtendsInterface->rootExtendsInterface, defaultRootExtendsClass->rootExtendsClass, defaultRootImplementsInterface->rootImplementsInterface, suppressECollections->suppressEMFTypes), and added more informative, non-default, descriptions to property descriptors for all the new 2.0 GenModel attributes.
    • Fixed problem in JMerge where the leading brace of a method body was not being handled correctly.
    • Mangle the feature names of an XSD-based model's DocumentRoot class if they are invalid Java identifiers.
    • An XSD-based model's generated resource factory now sets the OPTION_USE_ENCODED_ATTRIBUTE_STYLE option to true.
    • emf
      48838 Problem occurred when importing a namespace where the only reference to that namespace was in an ecore:reference.Handle imports resolving during XSD model import.
    • emf
      48721 Register the package instance against the null target namespace in an XSD model's generated resource factory.
  • 2.0.0 I200312101532XL (13 Bugs) Initial EMF 2.0 driver. Eclipse 3.0 (M5) based Eclipse M5 includes breaking API changes which will require regeneration or equivalent hand modification of generated EMF editors. Since JDK 1.4 dictates the JAXP default implementation, all dependencies on the Xerces plugin have now been removed from the EMF (and XSD) plugins. Use -Djava.endorsed.dirs to choose a JAXP implementation. E.g., this command will run Eclipse with the implementation used historically:
    eclipse.exe -vmargs -Djava.endorsed.dirs=plugins/org.apache.xerces_4.0.13
    Migration from 1.1
    Code regeneration of 1.1 projects is required. There are some breaking changes in this version, specifically in the handling of XML Schema based models. Details are provided below. Improved XML Schema Support
    The support for XML Schema has been significantly enhanced in EMF 2.0. Much more of the complexity of XML Schema is now supported, including mixed and open content. In addition, special Ecore annotations are now supported that allow one to specify the Ecore model properties that XML Schema cannot otherwise represent. The most significant changes are as follows:
    • Added interface FeatureMap to represent an arbitrary feature/value pairs which are used to represent mixed or open content (wildcards). The XSDEcoreBuilder will produce features of this type for complex types with mixed content, for element and attribute wildcards, and for complex (repeating) model groups. The eGet(), eSet(), etc., methods can be called directly for open content features, which will then delegate to the appropriate feature map.
    • Added support for document roots. In EMF 1.1, a global element declaration was mapped to an EClass. In 2.0, every namespace will have a single special EClass, by default named DocumentRoot, which contains a feature for every global element or attribute declaration in the namespace. These represent open content features which may be used in feature maps corresponding to wildcards. An instance document based on an XML Schema will now contain a single instance of the document root, exactly one feature of which will be set to contain the actual root element.
    • Two new packages, XMLTypePackage and XMLNamespacePackage, have been added to the ecore plugin. XSDEcoreBuilder by default maps all XSD built in data types to a corresponding EDataType in the XMLTypePackage. It maps "xml" namespace components to a corresponding XMLNamespacePackage model element in the XMLNamespace package.
    • A text element from a complex type with mixed content is represented in a feature map by an entry whose feature is one of the attributes from the XMLTypePackage's DocumentRoot class (i.e., text, CDATA, or comment), and whose value is the text (String). Note that comments and CDATA are only created if you specify the XMLResource.OPTION_USE_LEXICAL_HANDLER load option. A DocumentRoot also has mixed content and therefore can capture the comments at the beginning of a document.
    • Added EObject.eContainingFeature(), which in the simple case returns the same as eContainmentFeature(). However, in the case of open content, containmentFeature() will return one of the features in a FeatureMap (a document root of some package) while eContainingFeature() will return the feature for the feature map itself.
    • A new FeatureMapUtil class holds various static utility methods and implementation classes.
    • A new interface ExtendedMetaData (and default implementation class BasicExtendedMetaData) encapsulates all the meta data in an Ecore model and any XSD2Ecore EAnnotations it may have. The default XMLResource now uses this interface to access the data it needs to customize a schema-based model's serialization/deserialization, instead of using the XMLMap/XMLInfo mechanism. It is enabled using a new save/load option: XMLResource.OPTION_EXTENDED_META_DATA.
    • A set of Ecore namespace (http://www.eclipse.org/emf/2002/Ecore) annotation attributes are now supported in an XSD definition of an Ecore model:
      • ecore:instanceClass may appear in a simple type to specify the Ecore instanceClassName of the corresponding EDataType.
      • ecore:name is support on any named Component to override the name of the corresponding ENamedElement.
      • ecore:documentRoot can be used on a schema component to specify the name of the document root EClass (which is "DocumentRoot" by default).
      • ecore:package can be used on a schema component to specify the fully qualified Java package name.
      • ecore:nsPrefix on a schema component specifies the nsPrefix attribute the corresponding EPackage.
      • ecore:reference can be specified on either an attribute or element declaration to specify the target of the corresponding EReference. The value must be a QName that resolves to a complex type within the schema.
    • In EMF 1.x, anyURI, IDREF, and IDREFS mapped to a reference to EObject. Now, instead, by default they map to the corresponding EDataType in XMLTypePackage instead. This can be tailored using ecore:reference. This is illustrated by the library.xsd example which has been changed to use ecore:reference annotation for the books and author references.
    • Preliminary support for feature maps has been added to ItemProviderAdapter. This will be changed in the near future with a more general wrapping mechanism, that will support any feature as a child.
    • Added int UNSPECIFIED_MULTIPLICITY = -2 to ETypedElement. This is used to specify the upper bound of any feature in a document root.
    • Support easier tailoring for handling of xsi:schemaLocation. These changes are to handle more of the testsuite cases at http://www.xml.com/lpt/a/2003/09/03/binding.html
    OMG MOF 2 Support
    Several changes have been made in EMF 2.0 to align Ecore better with the EMOF (Essential MOF) subset of the MOF 2 Specification. The following changes are related to this feature:
    • Ecore model changes
      • Moved the unique, lowerBound, upperBound, many, and required attributes from EStructuralFeature to ETypedElement.
      • Added new ordered attribute to ETypedElement.
      • Added new derived attribute to EStructuralFeature.
      • Added new eStructuralFeatures reference to EClass. This change involves replacing the two black diamond containment references, eAttributes and eReferences, with a single containment reference eStructuralFeatures. eAttributes and eReferences are now readonly derived non-containment references; although the add() and addUnique() methods are still supported for them, so that the parser can read old files. This method will be removed eventually; a warning message is printed to stderr when add() is called. The Ecore XMI Resource will always serialize Ecore models using the new reference.
    • EMOF Resource
      • An EMOF Resource is now provided and can be used to read or write a serialized Ecore/EMOF model. The EMOF Resource is registered for the .emof URI suffix.
      • The Sample Ecore Model Editor can now edit .ecore or .emof files and supports Save As to convert between Ecore and EMOF serializations of a model.
      • The EMF Model Wizard now also supports import from either .ecore or .emof files.
      • Ecore features not included in EMOF are nested in xmi:Extension elements with extender equal to the Ecore namespace (http://www.eclipse.org/emf/2002/Ecore).
    Model Import Enhancements
    • XSD diagnostics are displayed in EMF Model Wizard if errors are encountered while loading a model from XML Schema.
    • The import from XML Schema now supports schemas embedded within a WSDL (.wsdl) file.
    • Import from XML Schema now supports specifying/importing multiple URIs at once.
    • The EMF Model Wizard now provides Select All and Deselect All buttons for selecting packages to import.
    • Support for specifying XML Serialization eAnnotations/ExtendedMetaData in Rose.
    • Support for specifying arbitrary Ecore eAnnotations in Rose.
    • Rose comments and XML Schema documentation annotations are now converted to documentation eAnnotations in Ecore, and subsequently emitted into the generated JavaDoc.
    • Support for operation method bodies (EOperation eAnnotations, see below) in the Semantic pane for a Rose operation.
    • Improved RoseEcoreBuilder handling of EObject-typed attributes in a Rose model. Previously if you had an attribute of type EObject but the Ecore package was not available, it produced an EAttribute with an EClass as its type, resulting in class cast exceptions.
    • Fixed JavaEcoreBuilder to handle closed/missing projects. Previously exceptions were thrown and quiet failure resulted.
    • JavaEcoreBuilder now computes usage closure. This fixes a problem with missing used GenPackages. The problem stems from missing indirect dependencies and is fixed by computing the closure when a new package dependency is added. Packages used by the package being used also need to be used.
    New Generator options and function
    This new function is preliminary and still subject to change. New features include:
    • You can now specify in the GenModel a different root base interface and impl class, instead of EObject and EObjectImpl.
    • You can suppress EMF ("E") APIs in the generated interfaces (i.e., generate List instead of EList, Map instead of EMap, etc.).
    • Generator now emits throws clause for EOperations that declare eExceptions.
    • eAnnotations can now be set on an EOperation to specify the method body to generate (instead of default "throw new UnsupportedOperationException();").
    • eAnnotations can now be set to specify documentation to be emitted into the generated JavaDoc.
    Miscellaneous Bug fixes and Improvements
    • The bulk of the function in EObjectImpl and NotifierImpl has been moved to base classes BasicEObjectImpl and BasicNotifierImpl, which declare no storage. EObjectImpl and NotifierImpl are simple subclasses that implement the default current behavior. Clients that have their own implementations of EObject/InternalEObject are encouraged to extend from these Basic implementations so that future method additions won't break them.
    • Added interface InternalEObject.EStore. A "store" can be provided to an InternalEObject, in which case the implementation of dynamic features will be delegated to the store, instead of the default dynamic (EPropertiesHolder) implementation.
    • Added wasSet() method to Notification for determining the old isSet state.
    • EcoreUtil.Copier refactored to support easier specialization in subclasses.
    • Changed EAnnotationItemProvider to include contents as children for EAnnotation.
    • Added the option XMLResource.OPTION_FORMATTED. When set to Boolean.FALSE, this will cause linebreak and indentation to be omitted. The default is Boolean.TRUE, so it must be explicitly set to Boolean.FALSE to have an effect.
    • Generated editors no longer reload model for resource marker changes.
    • Improved error handling in EMFPlugin. Will now throw MissingResourceException instead of NullPointerException when properties are missing.
    • Generated editors now flush the command stack when discarding changes (unloading the resource).
    • Fixed LocalTransfer.nativeToJava to handle bad data. It now catches NumberFormatException and returns null in this case.
    • XMLResource's save (XMLSaveImpl) fixed to check for null namespace when saving prefixes.
    • Added new method XMLHelper.getPrefix(EPackage, boolean) that is shared by getQName(EPackage, String, boolean) and getPrefix(EPackage), to ensure that the package is added to the helper's packages list when getPrefix is called directly first.
    • XMLSaveImpl changed update of prefix to namespace map to avoid getting notification of an entry being set to the value it already has.
    • XMLHandler support to resolve forward references early. If an Ecore model and an instance of that model need to be processed when they are both in the same document, it's necessary to be able to resolve all the forward references in the Ecore model before it can be used to instantiate instances. Hence it should be possible to do some of the processing currently in endDocument early. The new method handleForwardReferences() can be called to do this. It delegates to a handleForwardReferences() overload which takes an isEndDocument argument, so the code for processing during endDocument() can now be shared for use earlier.
    • Fixed improper handling of primitives in EcoreFactoryImpl.createEJavaClassFromString.
    • Support EMap.putAll(EMap). By supporting EMap.putAll() from another EMap we can preserve the overall order.
    • Fixed dynamic setting for container to check feature. The getter for a container dynamic setting was not checking that the feature is the correct one and returned the container regardless of whether it was for the feature or not.
    • Fixed generator to not set ECLIPSE_SWT classpath variable to incorrect value when org.eclipse.swt and its platform-specific fragment have different version numbers.
    • Tuned method BasicEObjectImpl.eDerivedStructuralFeatureID(EStructuralFeature). Simple dynamic eGet() will be twice as fast now.
Search CVS

Releases