Bug 470056 - Comp-System inheritance mechanism does not necessarily behave as expected
Summary: Comp-System inheritance mechanism does not necessarily behave as expected
Status: CLOSED INVALID
Alias: None
Product: Jubula (Archived)
Classification: Technology
Component: Core (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Oliver Goetz CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 470025
  Show dependency tree
 
Reported: 2015-06-12 07:56 EDT by Marcel Hein CLA
Modified: 2016-11-24 04:10 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Marcel Hein CLA 2015-06-12 07:56:19 EDT
The mechanism which we provide to extend our comp-system, realize and extends, don't provide the functionality a java developer would expect. The functionality of extends is error prone and could be replaced with the functionality of realize if Bug 464289 is fixed. In this case realize should be named extends and it should fulfill the functionality a Java developer reads extends (https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html) summary:
   -Inheritance of actions
      -Overriding of actions
   -Type hierarchy
   

Removing extends and changing realize is a big incompatible change.
Comment 1 Markus Tiede CLA 2015-07-21 03:58:32 EDT
I agree: I'd recommend renaming "realizes --> extends" and remove the capabilities the current "extends" mechanism provides: therefore it'd be very useful to know if anyone is using this way of defining toolkit extensions.

The current "extends" mechanism provides similar functionality as e.g. "Categories to add methods to Existing Classes" in Objective-C - see [1].

The current "realizes" mechanism is supposed to behave like a plain Java-"extends".

Please feel free to vote / give feedback whether you'd be affected of such (incompatible) toolkit extension mechanism changes!

[1] https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/CustomizingExistingClasses/CustomizingExistingClasses.html
Comment 2 Marvin Mueller CLA 2016-11-24 04:10:43 EST
I am against removing one of them and also since the words they use are explaining what they are doing on CompSystem level(and also for compatibility reasons i do not want to change it). I have found out that both of them have their rights to exists.
The extends is important if someone wants an action to be in our current list of actions for a component. This is very important if the application they want to test is using standard components, or just anonymous classes.

The realizes is important if you want to write actions for a component we are not supporting, or you are needing the specific component because you have specific actions only for this component.

Therefore i will close this as invalid.