- This topic has 7 replies, 3 voices, and was last updated 14 years, 6 months ago by support-shalini.
-
AuthorPosts
-
Nikolaos GiannopoulosMemberWe just purchased a PRO license yesterday to MyEclipse 8.5.
We are trying to integrate JRebel which is essentially a drop in replacement for the limited capability Hot Swap JVM technology built-in to Java.
We are using GF v3 Final. How do we disable hot / auto deployment? I don’t see any switches anywhere. If we can’t get this to work we will need to switch back to Eclipse!
I sincerely hope there is a configuration setting somewhere.
support-shaliniMembernikolaos2012,
How are you deploying your application? If you deploy your application in “packaged” mode, hot deploy will be disabled.
From the servers view(Window > Show View > Servers), right click on your server and from the context menu select “Add Deployment”. In the new wizard that opens, you can select “Packaged” mode.
Let me know if that helps.
Nikolaos GiannopoulosMemberWe are deploying in exploded mode.
There are 2 things that need to be disabled here and I am not sure that they are separate but I’ll mention them:
1) Any sort of MyEclipse Hot Deploy
2) Any sort of JVM Hot Swap
Either one will interfere with JRebel. I tried WAR deployment before hand and it didn’t help as JVM Hot Swap kicked in.
In Eclipse in the Servers tab there apparently was (I don’t have a working copy with me now) a setting that allowed for:
http://www.zeroturnaround.com/reference-manual/server.html#server-3.2
“Automatic publishing should be disabled in the server configuration. Double click on your server name and a configuration page opens. Under the Publish section you should have the Never publish automatically…”I need this capability in MyEclipse or some equivalent…
Brian FernandesModeratornikolaos,
From what I understand of Java Rebel, it would only affect replacement of Java classes when changed.
When you run your server in debug mode, the replacement of changed Java classes is handled by Eclipse itself, not MyEclipse. So if your Rebel plugin is correctly installed, I believe it would already be replacing the default Eclipse hot deployment mechanism.
You could also try launching your server in run mode – not sure if Java Rebel works under such conditions. As Shalini mentioned, deploying in packaged mode should prevent any hot synch from taking effect, again – not sure JR will work in this situation.
Hope this helps.
Nikolaos GiannopoulosMemberFrom what I understand of Java Rebel, it would only affect replacement of Java classes when changed.
As well… it also reloads property files, configuration files of many frameworks, etc… JRebel is designed to work with any IDE or any type of app. You can think of it as a much smarter Hot Swap.
When you run your server in debug mode, the replacement of changed Java classes is handled by Eclipse itself, not MyEclipse.
Great. So in Eclipse you can turn off this Publishing on the servers tabe. Where can I do that in MyEclipse (I don’t see that with the server connectors)?
So if your Rebel plugin is correctly installed, I believe it would already be replacing the default Eclipse hot deployment mechanism.
It doesn’t work that way.
1) Yes… it is installed as a plugin in MyEclipse but the actual work is handled by an Agent outside the IDE. There is a rebel.xml file that is configured to point to what needs to be reloaded by JRebel.
2) Automatic publishing by the IDE needs to be disabled.
3) The app server’s JVM options are configured to load the Agent via:
-noverify
-javaagent:/Users/nikolaos2/home/dv/jrebel/jrebel.jar
-Drebel.log=trueBut if the resources are automatically getting re-deployed by the IDE and Hot Swap is reloading them then it will never work.
You could also try launching your server in run mode – not sure if Java Rebel works under such conditions.
It doesn’t make a difference.
As Shalini mentioned, deploying in packaged mode should prevent any hot synch from taking effect, again – not sure JR will work in this situation.
Should – but it doesn’t because if I add a method to a class automatically I get the Hot Swap error telling me that Hot Swap can’t handle adding methods… yet JRebel is clearly not running. So who could be re-deploying besides MyEclipse (OR underlying Eclipse)?
Bottom line: ALL I need to know is how to disable automatic republishing to the server! Deploying in WAR vs. Exploded OR Run vs. Debug doesn’t help.
Thanks.
Nikolaos GiannopoulosMemberOK. This was solved by performing the following:
on the servers tab right clik on glassfish -> Configure server connector -> from the tree under GlassFish v3 Final open Launch -> Create launch configuration -> open Arguments tab -> Add jrebel arguments before any other arguments in the VM argumens box -> run
Now JRebel works during both run() and debug()…
Nikolaos GiannopoulosMemberBTW the above solution was provided by the support team at JRebel.
support-shaliniMembernikolaos2012,
Thank you for posting your resolution. -
AuthorPosts