Bug 250145

Summary: Non-breaking API change required to support Tag Drop
Product: [WebTools] Java Server Faces Reporter: Cameron Bateman <cameron.bateman>
Component: CoreAssignee: Cameron Bateman <cameron.bateman>
Status: RESOLVED FIXED QA Contact:
Severity: blocker    
Priority: P1 CC: david_williams, greg, neil.hauge, raghunathan.srinivasan
Version: 3.0.1Flags: 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+
Target Milestone: 3.0.4   
Hardware: PC   
OS: Windows XP   
URL: ORACLE_P1
Whiteboard: PMC_approved
Bug Depends on:    
Bug Blocks: 251794    
Attachments:
Description Flags
Shows the API change and compatibility preserving behaviour. none

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.