Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [modeling-pmc] UML2 and Photon

Ed,

Comments below.


On 26.09.2017 10:13, Ed Willink wrote:

Hi

Today, I think the EMF GenModel changes should just be an opportunity. The new EAnnotation support should allow UML's

  <genAnnotations source="http://www.eclipse.org/emf/2002/GenModel/importer/org.eclipse.uml2.uml.ecore.importer">
    <details key="DUPLICATE_FEATURES" value="PROCESS"/>
    <details key="DUPLICATE_FEATURE_INHERITANCE" value="PROCESS"/>
...

to be visible and editable in the EMF editors.

Yes, although we digress, EMF 2.14 has added annotation validators well as a bunch of other cool generic features as described in https://bugs.eclipse.org/bugs/show_bug.cgi?id=418619#c2 so you can easily see which extended metadata annotations are possible:
You can also easily set any GenModel properties as annotations directly in the Ecore model, and yes, that's a real checkbox cell editor in the properties view:

However again today, with 2 bug fixes on the new support not yet available in an N-build, it is not possible to rebuild the OCLUML.uml models; the genmodel takes a long time as usual but many of the generated files terminate after the imports, which is often an indication of bad templates.

There is an N-build:
I can't comment on UML2's support, but I did fix https://bugs.eclipse.org/bugs/show_bug.cgi?id=521871 so that UML2's templates can actually be compiled.

I suspect that the EMF template evolution to support @deprecated/@since tags is breaking for UML2. There is new GenModelUtil API used by the templates and since this is build time API there is no need to provide runtime-level conditionalization.

Yes, the use of GenModelUtil in the templates required UML2 to change it's templates, though I offered to use it in fully qualified form rather than importing it...

Again, I digress, but documentation annotations are now processed to handle @since and @deprecated in a special way, e.g., for the features I added to the GenModel I used @since 2.14:
 
It now generates the @since tag on each generated artifact derived from the Ecore artifact so documented, e.g., not just the expect thing on the primary artifact where model documentation is normally generated:

  /**
   * Returns the value of the '<em><b>Documentation</b></em>' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * <!-- begin-model-doc -->
   * @since 2.14
   * <!-- end-model-doc -->
   * @return the value of the '<em>Documentation</em>' attribute.
   * @see #setDocumentation(String)
   * @see org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage#getGenTypedElement_Documentation()
   * @model unsettable="true" suppressedIsSetVisibility="true" suppressedUnsetVisibility="true"
   * @generated
   */
  String getDocumentation();

But also every other generated artifact such as this

  /**
   * Sets the value of the '{@link org.eclipse.emf.codegen.ecore.genmodel.GenTypedElement#getDocumentation <em>Documentation</em>}' attribute.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @param value the new value of the '<em>Documentation</em>' attribute.
   * @see #getDocumentation()
   * @since 2.14
   * @generated
   */
  void setDocumentation(String value)

andthis

  /**
   * This adds a property descriptor for the Documentation feature.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @since 2.14
   * @generated
   */
  protected void addDocumentationPropertyDescriptor(Object object)

Anything that uses EMF 2.14 code generation must support EMF 2.14. For OCL and QVTd, I just had to add an extra import of GenModelUtil and merge my variant Class.javajet with the evolved EMF Class.javajet. For QVTd where code generation can be a user-compile time activity, I considered adding conditionalisation on all the new API so that QVTd would be Oxygen installable, I'm still considering but since QVTd graduates this year I might decide that it graduates on current code unless UML has died....

An important thing to note is that EMF still installs in Kepler (and compiles against Kepler), so I see no need to do anything obtuse to make any EMF dependencies not exploit EMF 2.14.

    Regards

        Ed Willink


On 26/09/2017 08:21, Ed Merks wrote:

Sebastien

I think you are misinterpreting  "require UML2's extended GenModel to take action" as synonymous with "the changes are bad."

Any change (good or bad) to the GenModel.ecore affects (at least potentially) UML's extended GenModel implementation.

  http://git.eclipse.org/c/emf/org.eclipse.emf.git/log/plugins/org.eclipse.emf.codegen.ecore/model/GenModel.ecore

Also any change to templates (good or bad) affects (at least potentially) UML's specialized templates:

  http://git.eclipse.org/c/emf/org.eclipse.emf.git/log/plugins/org.eclipse.emf.codegen.ecore/templates/model/Class.javajet

We can all be thankful (and I certainly am!)  that Itemis consistently sponsors my contributions and that Dennis Hübner of TypeFox does the Releng work on my behalf.

Note that lack of signing support for Buckminster builds will become a significant problem for someone, or perhaps everyone, when the foundation disables that service.

Regards,
Ed


On 26.09.2017 08:03, GERARD Sebastien wrote:
Hi Ed,

Can you tell me what are the changes that have been made and will be bad for photon w.r.t. EMF generator part?

Thanks.
Best.
Seb.




Envoyé depuis mon smartphone Samsung Galaxy.


-------- Message d'origine --------
De : Ed Merks <ed.merks@xxxxxxxxx>
Date : 25/09/2017 18:11 (GMT+01:00)
Objet : Re: [modeling-pmc] UML2 and Photon

Kenn,

That's pretty bad for Papyrus, parts of OCL, and parts of EMF Compare.  :-(  And I'm not sure which other release-train parts are downstream of those parts...

Downstream consumers should note that parts of UML2 (i.e., the generator parts) don't work with the latest EMF (i.e., the generator parts of it) because any changes I make to the GenModel  (and I made many changes recently) require UML2's extended GenModel to take action.  So we can't just feed the Oxygen version of UML2 into the Photon train (at least not all of UML2's parts).

Regards,
Ed


On 25.09.2017 16:54, Kenn Hussey wrote:
PMC,

I just wanted to give you a heads up that there are currently no plans for UML2 to participate in the upcoming Photon simultaneous release, due to lack of funding. Unfortunately, this means that dependencies will break when the aggregation file is disabled by the EMO immediately following M4.

If anyone is interested (or knows someone who might be interested) in helping ensure that UML2 is kept up to date and that it can participate in the Photon release, please reach out to me directly.

Thanks,

Kenn



_______________________________________________
modeling-pmc mailing list
modeling-pmc@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/modeling-pmc



_______________________________________________
modeling-pmc mailing list
modeling-pmc@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/modeling-pmc



_______________________________________________
modeling-pmc mailing list
modeling-pmc@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/modeling-pmc


Virus-free. www.avast.com


_______________________________________________
modeling-pmc mailing list
modeling-pmc@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/modeling-pmc


Back to the top