vampir Posted May 20, 2015 Posted May 20, 2015 There is a very cool software that i use, it is called JRebel(http://zeroturnaround.com/software/jrebel/). What can it do?You can reload any piece of code, without need to restart the server.Let's say you created quite a large code, but simple error doesnt allow you to test it. Normally you would need to:1. Fix the error2. Compile fixes(3 seconds. If you are wondering how i compile my whole source code in 3 seconds, look below)3. Close the Server(Lets say 2 seconds)4. Create the Jars and paste them(3 seconds)5. Start the server again(33 seconds)6. Login(10 seconds)7. TestSo totally it takes 51 seconds from fixing to next testing With JRebel you need to:1. Fix the error2. Compile fixes(3 seconds)3. Create the Jars and paste them(3 seconds)4. TestWith JRebel it takes 6 seconds. How long it takes to start the server with JRebel?JRebel: 83 secondsNO JRebel: 33 secondsSo that's big disadventage. If you are working on the code that runs at start of the server, its worth to disable the JRebel(it's very easy to disable it). How applying the changes looks like?1. Fix the error/make the improvement/add something new: 2. Compile changed classes3. Build the Jars and paste them(I have got build file which automatically pastes my jars) When class is used by JVM, you will see the message that it was updated 4. Test How to install JRebel?1. Get Trial(Don't worry about 2 weeks, it's very easy to crack or you can just buy it)- https://zeroturnaround.com/software/jrebel/download/ 2. Activate it on your pc- Intellij IDEA - https://zeroturnaround.com/software/jrebel/quickstart/intellij/#!/activation- Eclipse - https://zeroturnaround.com/software/jrebel/quickstart/eclipse/#!/activation 3. Download JRebel.jar- https://zeroturnaround.com/software/jrebel/download/thank-you/?file=jrebel-6.1.3-nosetup.zip 4. Paste JRebel.jar near StartGameServer.bat 5. Put -javaagent:jrebel.jar just after java in StartGameServer.bat 6. You need to create jrebel folder near StartGameServer.bat and- Add there jars that you want to be reloadable. I am adding just gameserver + scripts + commons- So you will need to have those 3 jars in 2 locations: your libs + jrebel folder- While launching the gameserver, remember that jars in jrebel must be exactly the same as your jars in libs, or JRebel will not work fine 7. You need to create jrebel.xml, add it into your configs file- Thats how my jrebel.xml looks like: http://pastebin.com/hNzjDE6R- You should edit jarset dir, to link to your jrebel folder 8. Launch the gameserver. You should see something like this How to compile my changes so fast?- I am compiling just classes that were modified lately, not the whole source- I have got Build file which copies created jar to my libs + jrebel folder So for the first time i click Build > Rebuild Project in Intellij IDEA(i don't know about eclipse). It takes a while but after that i can use Compile 'Player.java' or Make Project which compiles just changes filesThe Compile files are put to "C:\Users\Michal\IdeaProjects\L2Tales\out\production\L2Tales"My Build file: http://pastebin.com/MbkCBBVh Quote
Tryskell Posted May 20, 2015 Posted May 20, 2015 It's obviously a tool to develop, not a thing to keep on a live installation (just saying about your loading statement). Quote
vampir Posted May 20, 2015 Author Posted May 20, 2015 It's obviously a tool to develop, not a thing to keep on a live installation (just saying about your loading statement). I didn't test it on live server, but i think it wouldn't work well because: 1. Longer start up time as you said 2. Most likely lower performance would cause lags 3. Reloading larger classes would be felt by players in game For development, its great :) Quote
xxdem Posted May 20, 2015 Posted May 20, 2015 I didn't test it on live server, but i think it wouldn't work well because: 1. Longer start up time as you said 2. Most likely lower performance would cause lags 3. Reloading larger classes would be felt by players in game For development, its great :) why dont u run ur server from the Eclipse then? I can't get it. I develop my servers from eclipse while its online, I edit code on the fly and the changes happen runtime.. Quote
Kelrzher Posted May 20, 2015 Posted May 20, 2015 why dont u run ur server from the Eclipse then? I can't get it. I develop my servers from eclipse while its online, I edit code on the fly and the changes happen runtime.. i play on your server and when you fix something you make a restart , but well its a nice tool for the outdoors Quote
vampir Posted May 20, 2015 Author Posted May 20, 2015 why dont u run ur server from the Eclipse then? I can't get it. I develop my servers from eclipse while its online, I edit code on the fly and the changes happen runtime.. I think you might be talking about HotSwap. You can see the differences in here: http://zeroturnaround.com/software/jrebel/features/ Quote
xxdem Posted May 20, 2015 Posted May 20, 2015 (edited) i play on your server and when you fix something you make a restart , but well its a nice tool for the outdoors I said I develop, thats how I coded L2AEPvP back when I was developing it. Now its live and obviusly its not running in Eclipse.. I think you might be talking about HotSwap. You can see the differences in here: http://zeroturnaround.com/software/jrebel/features/ Im talking about Eclipse Debug that works like all Debug tools, you can even edit native C++ during runtime with good debugers.. Edited May 20, 2015 by xxdem Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.