Bug 250145 - Non-breaking API change required to support Tag Drop
Summary: Non-breaking API change required to support Tag Drop
Status: RESOLVED FIXED
Alias: None
Product: Java Server Faces
Classification: WebTools
Component: Core (show other bugs)
Version: 3.0.1   Edit
Hardware: PC Windows XP
: P1 blocker (vote)
Target Milestone: 3.0.4   Edit
Assignee: Cameron Bateman CLA
QA Contact:
URL: ORACLE_P1
Whiteboard: PMC_approved
Keywords:
Depends on:
Blocks: 251794
  Show dependency tree
 
Reported: 2008-10-08 13:52 EDT by Cameron Bateman CLA
Modified: 2009-02-11 12:29 EST (History)
4 users (show)

See Also:
david_williams: pmc_approved+
raghunathan.srinivasan: pmc_approved? (naci.dai)
raghunathan.srinivasan: pmc_approved? (deboer)
neil.hauge: pmc_approved+
raghunathan.srinivasan: pmc_approved? (kaloyan)
raghunathan.srinivasan: review+


Attachments
Shows the API change and compatibility preserving behaviour. (4.29 KB, patch)
2008-10-08 13:53 EDT, Cameron Bateman CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Cameron Bateman CLA 2008-10-08 13:52:12 EDT
In implementing a proof of concept tag drop implementation, I discovered that we are not passing enough context information for the tag drop to cover all use cases.  The change adds a new runCustomizer to IDropCustomizer that passes File and DOMPosition information about the intended drop and deprecates the existing no argument version.  The AbstractDropCustomizer will call runCustomizer() from the new method by default, ensuring backward compatibility of both interface and behaviour.  No-arg runCustomizer is now deprecated, however.
Comment 1 Cameron Bateman CLA 2008-10-08 13:53:48 EDT
Created attachment 114578 [details]
Shows the API change and compatibility preserving behaviour.
Comment 2 Cameron Bateman CLA 2008-11-03 20:21:01 EST
Change committed to HEAD (3.1 stream).
Comment 3 Cameron Bateman CLA 2009-01-28 01:37:41 EST
Oracle would like to have this fix in Ganymede for its adopter product.  This fix requires a non-breaking API change that adds a new method to an existing class. The default is for the new method to call the old one, so behavior is also preserved.

The change qualifies as non-breaking under:

http://wiki.eclipse.org/index.php/Evolving_Java-based_APIs#Example_4_-_Adding_an_API_method
Comment 4 Raghunathan Srinivasan CLA 2009-02-03 19:12:23 EST
* Explain why you believe this is a stop-ship defect. Or, if it is a "hotbug" (requested by an adopter) please document it as such. 

This is a "hotbug" request from Oracle. This fix is required to enable support for a feature in the adopter product.

* Is there a work-around? If so, why do you believe the work-around is insufficient? 
There is no workaround.

* How has the fix been tested? Is there a test case attached to the bugzilla record? Has a JUnit Test been added? 

Existing junits cover the default scenario of tag drop with no customization. The extensibility scenario has been tested in the adopter product.

* Give a brief technical overview. Who has reviewed this fix? 
See description, comment 0 and comment 5 . I have reviewed the fix.

* What is the risk associated with this fix? 
Minimal since the goal is to preserve the current behavior in the WTP codeline. 
Comment 5 Neil Hauge CLA 2009-02-04 09:41:18 EST
This change appears to meet the API change requirements.  Approved. 
Comment 6 Raghunathan Srinivasan CLA 2009-02-04 19:03:51 EST
Marking it as PMC approved
Comment 7 Cameron Bateman CLA 2009-02-04 19:57:13 EST
Patch applied to 3.0.4.  Will mark fixed once 3.1 is synced.
Comment 8 Cameron Bateman CLA 2009-02-11 12:29:26 EST
Verified that HEAD (3.1) is still consistent with the backport.