이번에 WLS 10.3이 나왔다.
새 버전 빨리도 나오네 그랴.
그동안 콘솔이 느렸던 문제도 해결되고..
고객들과 개발자들의 소원인 신속한 redeploy가 가능하게 되었다.
예전에는 ClassLoader를 통째로 replace하는 구조라서 제약 사항이나 속도 문제도 있었는데 JDK 5.0의 Class Redefinition이라는 새로운 기능을 써서 변경된 클래스만 Swap 시킨다나?
개발 절차에도 많은 영향을 줄것 같고 안정화만 된다면 좋은 기술이 될것 같다.
Getting to Know FastSwap™
One of the complaints I hear about developing JEE applications is that when you are at a phase of development where you need to make a lot of small changes, and then see those changes in action, it is difficult to actually do this because the cycle of Edit > Save > Compile > Redeploy is time consuming, depending on how complicated your application and environment are. The redeployment phase is typically the long leg, and then you have to get back to where ever you were in the application flow or page flow to see your change.
So what if you could skip that last leg? What if you could just save your changes and then refresh your browser to see your latest changes? Class Redefinition in JDK 1.5 was promising for such a scenario, but it is limited to changes that don't cause a method shape change.
That's where FastSwap comes in.
In WebLogic 10.3 (Tech Preview available now), we implemented a Class Redefinition technology called FastSwap that dramatically expands on the Class Redefinition technology in the JDK. It enables you to make changes like add a method, change a method signature, delete a method, and then redefine the class in the running classloader, all without losing state. Let me say that again: all without losing state!
So what that means is, instead of making a change, saving your changes, redeploying, going for coffee, stopping at the snack machine, and then re-navigating to where you were before you made the change, you can simply save, auto-recompile, and refresh. Voila!
Some other interesting details on FastSwap:
- Enabled per application in a deployment descriptor
- Only applicable in Development Mode (We ignore the descriptor setting when running the server in Production mode, so there is no need to crack the ear or change the descriptor when moving to staging or production.)
- Built in to WLS - works out of the box; no extra product to buy
- Currently supported for WebApps only, but at GA the plan is to support enterprise apps/EJBs
To get more details on FastSwap, take a look at http://e-docs.bea.com/wls/essex/TechPreview/pdf/FastSwap.pdf. To download WebLogic Server 10.3 Tech Preview, go to http://commerce.bea.com/products/weblogicplatform/weblogic_prod_fam.jsp.
I'd be very interested to hear your feedback on this feature. I think it's going to save you a lot of time.
'til next time,