This Bugzilla instance is deprecated, and most Eclipse projects now use GitHub or Eclipse GitLab. Please see the deprecation plan for details.
Bug 225704 - Include generic properties
Summary: Include generic properties
Status: RESOLVED DUPLICATE of bug 241567
Alias: None
Product: JWT (Archived)
Classification: SOA
Component: WE (show other bugs)
Version: 0.6.0   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Annette Heym CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-04-04 03:10 EDT by Florian Lautenbacher CLA
Modified: 2008-11-17 05:12 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Florian Lautenbacher CLA 2008-04-04 03:10:17 EDT
Feature request: A new element in the metamodel shall be included. This is called "Property" and extends a ModelElement. It includes three attributes: "Name" (EString), "Type" (EString) and "Value" (EString). A NamedElement includes * Properties whereas a Property might belong to 1..* NamedElements.
The purpose of this Property is that other users/vendors as well as other plugins are able to extend the WE with their specific data: somebody accessing a JEE engine needs probably other properties than somebody with a BPEL or XPDL engine.
These properties shall be visible (once created) in the properties dialog of Eclipse. This is currently generated by EMF. Hence, a MultiTabProperty-dialog should be created which allows to switch between the EMF-generated properties and the new "JWT-Properties".
If a Property is for a specific NamedElement (e.g. an Action) is created, the user shall be asked whether this property shall be created for all Actions (or maybe it is automatically done for all actions?).

After that, the Properties as well as the MultiPageEditor shall be available as ExtensionPoint and one sample plugin shall show how to make use of this ExtensionPoint.
Comment 1 Marc Dutoo CLA 2008-07-03 09:53:32 EDT
(see also http://wiki.eclipse.org/JWT_Metamodel )

Here is a model that unifies the simple, static EMF DynamicProperties and the powerful, EMF-extensible Aspects solutions.

It relies on two concepts :
   * aspect (or dynamicproperty) : a single typed extension of a model element
   * profile (or DynamicPropertyContainer, or ModelExtension) : a model extension made of a consistent collection of aspects


Metamodel specification :

ProfileDefModel metamodel
   * done in static EMF
   * contained in Model or / and independent XMI file, which could be the same as the new Views one

ProfileDefModel :
profiledefs : ProfileDef *

ProfileDef :
name
description
author
version
JWT version (modelversion ?)
aspectdefs : AspectDefs *

AspectDef :
id (jwt type) (string, reference ??)
etype (those extending Aspect are aspects, the others e.g. primitives or EObject are supported using Property) : EString
singleton : EBoolean
assignedto (? EClass but requires to refer to the ecore, or EString)
visibleAsChild : EBoolean


JWT metamodel
   * depends on the static ProfileDefs metamodel

Model
profiledefs : ProfileDefs

ModelElement :
aspects : Aspect *

Aspect :
id (jwt type)

Property extends Aspect :
value : EObject


Now an example of properties (csaad's) :
   * an instance of ProfileDef (name="Example1")
   * containing an AspectDef (name=id="internal_id1", etype="EString", assignedto="Action", singleton="true")
   * and another AspectDef (name=id="internal_id2", etype="EInteger", assignedto="ActivityNode", singleton="true")

Which automatically creates property instances under said model elements, for example :
   * an instance of JoinNode (name="node1") containing an instance of Property (name=id="internal_id2", value="intvalue1")
   * an instance of ActionNode (name="node1") containing an instance of Property (name=id="internal_id2", value="intvalue2") and another instance of Property (name=id="internal_id1", value="stringvalue1")

Now an example of an extended model :
   * an instance of ProfileDef (name="BonitaProfile")
   * containing an AspectDef (name=id="BonitaTaskAspectDef", etype="BonitaTaskAspect", assignedto="Action", singleton="false")
   * which makes BonitaTaskAspect available to be created under Action,
   * BonitaTaskAspect being defined as such :

BonitaTaskAspect :
bonitahooks *

BonitaHook
event : EString (listbox)
javaClass :
jar :


Note : the DynamicProperty proposition of csaad was :

ModelElement :
properties *

DynamicPropertyContainer :
name
description
author
version
JWT version
dynamicproperties *

DynamicProperty :
id
type (of value ?)
assignedto
visibleOnChildren (?)
Comment 2 Marc Dutoo CLA 2008-07-22 07:59:37 EDT
This feature has been generalized in feature described in bug 241567 "Typed metamodel extensions (Aspects)" (see https://bugs.eclipse.org/bugs/show_bug.cgi?id=241567 ).
Comment 3 Florian Lautenbacher CLA 2008-11-17 05:12:14 EST
This bug can be seen as obsolete since the problem description as well as the solution based on bugs is much better described in bug 241567.

*** This bug has been marked as a duplicate of bug 241567 ***