Jump to content

Recommended Posts

Posted

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 error
2. 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. Test
So totally it takes 51 seconds from fixing to next testing
 
With JRebel you need to:
1. Fix the error
2. Compile fixes(3 seconds)
3. Create the Jars and paste them(3 seconds)
4. Test
With JRebel it takes 6 seconds.
 
How long it takes to start the server with JRebel?
JRebel: 83 seconds
NO JRebel: 33 seconds
So 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:
z8NW7AW.png
 
2. Compile changed classes
HCKW9lH.png

3. Build the Jars and paste them(I have got build file which automatically pastes my jars)
QmheC8p.png
 
When class is used by JVM, you will see the message that it was updated
rhGhrxl.png
 
4. Test
rlsSujE.png
 
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
5cxXKEO.png
 
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
zcscr1I.png
 
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
I2Dj2sz.png
 
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 files
The Compile files are put to "C:\Users\Michal\IdeaProjects\L2Tales\out\production\L2Tales"
My Build file: http://pastebin.com/MbkCBBVh

Posted

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 :)

Posted

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..

Posted

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

Posted

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/

Posted (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 by xxdem

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • just with this extender that I have shared it is not possible to start with c4 client, you have to make some changes to the extender and it works with c4 client perfectly. regarding the updates in this last revision   🔹dll is not packaged with vmprotect   New custom zone types have been added: 🔹 NO_NOBLESS begin MinX=84638 MaxX=92616 MinY=-87170 MaxY=-82018 MinZ=-6000 MaxZ=0 Type=NO_NOBLESS KickOutPos=83007/148057/-3464 end   ▶️ This zone checks if the character is noble. If it does not meet the condition, it will be automatically kicked to the indicated position (KickOutPos). 🔹 CUSTOM_SPAWN_ZONE begin MinX=77275 MaxX=85704 MinY=10122 MaxY=18066 MinZ=-8000 MaxZ=5000 Type=CUSTOM_SPAWN_ZONE OutPos=83007/148057/-3464 Spawns={{82984/18066/-5256}};{{79275/15147/-5248}};{{82922/14263/-5256}};{{83704/10122/-5288}} end ▶️ This zone allows characters, upon death, to respawn with full buff, CP, HP and MP if they press “Fixed”. They will only be able to revive in one of the positions defined in Spawns. 🔧 Both zones are fully configurable from territorydata.txt
    • Could you tell me what changed in this update?   more one question: Is it possible to log in through the c4 client instead of interlude? That would be great  
    • ➡ Discount for your purchase: JULY2025 (11% discount) ➡ Our Online Shop: https://socnet.store  ➡ Our SMM-Boosting Panel: https://socnet.pro  ➡ Telegram Shop Bot: https://socnet.shop  ➡ Telegram Support: https://t.me/solomon_bog  ➡ Telegram Channel: https://t.me/accsforyou_shop  ➡ Discord Support: @AllSocialNetworksShop  ➡ Discord Server: https://discord.gg/y9AStFFsrh  ➡ WhatsApp Support: https://wa.me/79051904467 ➡ WhatsApp Channel: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n  ➡ Email Support: solomonbog@socnet.store 
    • ➡ Discount for your purchase: JULY2025 (11% discount) ➡ Our Online Shop: https://socnet.store  ➡ Our SMM-Boosting Panel: https://socnet.pro  ➡ Telegram Shop Bot: https://socnet.shop  ➡ Telegram Support: https://t.me/solomon_bog  ➡ Telegram Channel: https://t.me/accsforyou_shop  ➡ Discord Support: @AllSocialNetworksShop  ➡ Discord Server: https://discord.gg/y9AStFFsrh  ➡ WhatsApp Support: https://wa.me/79051904467 ➡ WhatsApp Channel: https://whatsapp.com/channel/0029Vau0CMX002TGkD4uHa2n  ➡ Email Support: solomonbog@socnet.store 
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock