Bug 494475 - JRebel breaking changes for JRebel integration in CFT 1.0
Summary: JRebel breaking changes for JRebel integration in CFT 1.0
Status: RESOLVED FIXED
Alias: None
Product: CFT
Classification: ECD
Component: General (show other bugs)
Version: unspecified   Edit
Hardware: PC Mac OS X
: P3 normal
Target Milestone: Future   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords: plan
Depends on:
Blocks:
 
Reported: 2016-05-24 14:29 EDT by Nieraj Singh CLA
Modified: 2016-06-22 14:08 EDT (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 Nieraj Singh CLA 2016-05-24 14:29:36 EDT
New JRebel plugin will feature breaking changes, and it will be released in June.

With the new JRebel, CFT JRebel support will no longer be possible


According to JRebel team:

"The changes you should make include org.eclipse.cft.server.core.internal.jrebel.CloudRebelAppHandler class on line 468. https://github.com/eclipse/cft/blob/d89c0976cb983d3aa2bd22487120bbff1a375312/org.eclipse.cft.server.core/src/org/eclipse/cft/server/core/internal/jrebel/CloudRebelAppHandler.java#L468

Platform.getBundle("org.zeroturnaround.eclipse.remoting") should be replaced with Platform.getBundle("org.zeroturnaround.eclipse")


If there are more occurrences of above mentioned string constants, then please replace these with the "org.zeroturnaround.eclipse" as well."

It seems non-intrusive changes (just changing IDs), so we may consider this for CFT 1.0.RC3
Comment 1 Elson Yuen CLA 2016-05-24 16:06:15 EDT
The JRebel plugins are being installed separately. Do we have to consider to support both the old and new versions at the same time to ensure maximum compatibility?  Is there any changes other the bundle discovery that we have to do?

If the only thing that needs to be changed is the plugin id during the looking, maybe the new code should try to accommodate both the new and old version by doing Platform.getBundle("org.zeroturnaround.eclipse") first, if it returns null, then try the old one by doing Platform.getBundle("org.zeroturnaround.eclipse.remoting").  If we do that, it will work with both old and new version of the JRebel plugin provided that there is no other changes needed.
Comment 2 Nieraj Singh CLA 2016-05-24 17:38:24 EDT
I was thinking the same, it seems we can accommodate both old and new JRebel plugin with the current code with minimal changes to the class:

CloudRebelAppHandler

following Elson's suggestion. I can even try to fit this into RC2 if we get PMC approval by tomorrow (Wednesday, May 25). Otherwise, we can do it for RC3.

This change seems very localised just to the CloudRebelAppHandler, and very short work, so it seems safe to do even for RC2 with some smoke-testing around JRebel.
Comment 3 Martin Lippert CLA 2016-05-25 04:39:38 EDT
+1 from my end.
Please try to commit to RC2.
Comment 4 Nieraj Singh CLA 2016-05-25 16:59:22 EDT
Changes pushed to 1.0.RC2. We still have to do a bit more testing, especially on the JRebel side, but junits and smoketesting using Pivotal Web Services and STS all passed.

This change is also now in Neon Simultaneous Release RC2.
Comment 5 Nieraj Singh CLA 2016-05-31 20:49:30 EDT
Unfortunately there are further issues with the JRebel integration aside from adopting new JRebel plugin with refactored IDs. Some deprecated API to set application URL in JRebel do not work anymore.

As Neon development has stopped, and there is a manual workaround for JRebel usage (users can always set application URL manually via JRebel UI), we will postpone fixing this issue until after Neon, or make it available in a separate snapshot that is not part of Neon SimRel and Neon JEE package.
Comment 6 Nieraj Singh CLA 2016-06-17 21:45:14 EDT
Resolving this as new JRebel support was already added to CFT 1.0.