블로그 이미지
올해목표 // 10월 어학연수 떠나자~ 자수씨

카테고리

전체글 (1457)
Brand New! (28)
주절주절 (213)
MOT (11)
해외쇼핑 (49)
쇼핑노트 (150)
취미생활 (94)
iPhone (4)
Eclipse (121)
Google (83)
Spring (31)
JAVA (176)
JavaScript (59)
WEB (49)
Database (20)
OS (26)
Tools (8)
Tips (26)
IT정보 (1)
Book (21)
Programming (37)
외부행사 (43)
주변인들 (17)
여행노트 (60)
학교생활 (30)
회사생활 (52)
사회생활 (5)
외국어공부 (12)
잡동사니 (30)
Total
Today
Yesterday
 
12-31 00:00
 

달력

« » 2024.12
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
 

최근에 올라온 글

최근에 달린 댓글


JRebel 을 쓰면서 좀 불편했던 점이 rebel.xml 파일에 로컬 환경에 따라 경로가 다르게 되는데, 이 파일까지 버전관리를 하다보니 최초에 도입하신 분 외에는 커밋하기 어려운 점이 있었습니다.

구글링 몇 번으로 해결책을 찾았습니다.




위와 같은 설정이 있을 경우 "c:\myWorkspace" 의 경로는 로컬 환경의 경로입니다. JRebel 에서 제공해주는 변수를 통해 설정이 가능합니다.

아래와 같이 VM 파라미터를 추가하고
-Dmyproject.root=c:\myWorkspace

아래와 같이 rebel.xml 을 설정하면, 로컬 환경에 구애받지 않고 버전관리가 가능합니다.



참고사이트: http://www.zeroturnaround.com/reference-manual/app.html

Posted by 자수씨
, |

갑자기 궁금해진 것이... JRebel 은 어떻게 웹 애플리케이션 서버를 리스타트 시키지 않고 클래스 변경을 인식할 수 있느냐 였습니다. 구글에서 뒤져보다 찾은 키워드를 찾아냈습니다. 

"HotSwap"...

자바 1.4 에서 부터 지원되는 JDPA 라는 기능을 이용하여 JVM 에 변경된 클래스의 바이트 코드를 주입하는 방식이였습니다.

이클립스에서 디버깅을 할 때, 소스를 변경하면 바로 인식되는 것도 위의 기능을 이용한 것으로 조사결과 확인되었습니다.

어떤 방식인지 조금 더 살펴 본 후 응용할 수 있는 부분을 찾아볼 계획입니다.


관련 사이트
JDPA 관련: http://download.oracle.com/javase/1.4.2/docs/guide/jpda/enhancements.html#hotswap
hotswap 홈: https://hotswap.dev.java.net/


Posted by 자수씨
, |

글 보관함

최근에 받은 트랙백