Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [emf-dev] EMF API changes in Indigo

Hi Eric,

Comments below...


Am 06.01.2012 15:48, schrieb Eric Moffatt:

Ed, thanks a bunch....

Just to make sure I understand...

If there are issues they'll appear as compile errors against the offending source once it's compiled with the latest EMF
correct ?

Yes. For example CDO offers two different integrations with EMF. One that requires regeneration of a model to insert an abstract base class below BasicEObjectImpl, so that the new interface methods don't harm. Another one is based on wrapper objects that implement InternalEObject directly. There we have these three methods:

  /**
   * @since 3.0
   */
  public int eDerivedOperationID(int baseOperationID, Class<?> baseClass)
  {
    // Note: This causes a compiler error with EMF < 2.6M4!!! Ignore it or update your target platform.
    return instance.eDerivedOperationID(baseOperationID, baseClass);
  }

  /**
   * @since 3.0
   */
  public Object eInvoke(EOperation operation, EList<?> arguments) throws InvocationTargetException
  {
    // Note: This causes a compiler error with EMF < 2.6M4!!! Ignore it or update your target platform.
    return instance.eInvoke(operation, arguments);
  }

  /**
   * @since 3.0
   */
  public Object eInvoke(int operationID, EList<?> arguments) throws InvocationTargetException
  {
    // Note: This causes a compiler error with EMF < 2.6M4!!! Ignore it or update your target platform.
    return instance.eInvoke(operationID, arguments);
  }


Would the proposed fix be to ensure that any EObject implementations follow the rules you outlined below (i.e. extend an
existing EMF-supplied base class) ?

Yes.

Cheers
/Eike

----
http://www.esc-net.de
http://thegordian.blogspot.com
http://twitter.com/eikestepper



Thanks again (and even more for using a larger font for my fogie eyes...;-)
Eric


From: 	Ed Merks <ed.merks@xxxxxxxxx>
To: 	Eclipse Modelling Framework <emf-dev@xxxxxxxxxxx>
Date: 	01/06/2012 02:28 AM
Subject: 	Re: [emf-dev] EMF API changes in Indigo
Sent by: 	emf-dev-bounces@xxxxxxxxxxx


------------------------------------------------------------------------------------------------------------------------



Eric,

The only thing that jumps to mind is the addition of EObject.eInvoke, but that's wasn't a breaking API change, except
for those who ignored the following documented constraint:

Implementations of EObject should extend _BasicEObjectImpl_
<eclipse-javadoc:%E2%98%82=org.eclipse.emf.ecore/src%3Corg.eclipse.emf.ecore%7BEObject.java%E2%98%83EObject%E2%98%82org.eclipse.emf.ecore.impl.BasicEObjectImpl>or
one of its derived classes because methods can and will be added to this API.

Even in cases where this constraint is violated, it's really more of a source incompatibility than a binary
incompatibility, because nothing else in the framework itself relies on calling this new method. As such, I imagine you
can use the latest EMF even with binaries compiled against EMF 1.0.

Cheers,
Ed


On 05/01/2012 10:19 PM, Eric Moffatt wrote:

Last year we were looking into running an existing product on top of Eclipse 4 and ran into a 'breaking API change'. As
I remember it the change was known and intentional (introduced in mid-Indigo) but I can't seem to track down what it
actually was and what its implications would be...could someone point me towards whatever information is available ?

Thanks in advance,
Eric



_______________________________________________
emf-dev mailing list
_emf-dev@eclipse.org_ <mailto:emf-dev@xxxxxxxxxxx>
_https://dev.eclipse.org/mailman/listinfo/emf-dev_
_______________________________________________
emf-dev mailing list
emf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/emf-dev




_______________________________________________
emf-dev mailing list
emf-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/emf-dev



Back to the top