jrebel
DESCRIPTION
TRANSCRIPT
Как забыть про редеплой
Поганшев Сергей
ПланРедеплоймент - проблема?Каким образом JRebel решает
проблему редеплоймента?Стоимость и альтернативыПрактика использования JRebelLiveRebel
Редеплоймент - проблема?Каким образом JRebel решает
проблему редеплоймента?Стоимость и альтернативыПрактика использования JRebelLiveRebel
java.lang.OutOfMemoryError: PermGen space
java.util.zip.ZipException: error in opening zip file
DEPLOYMENTS IN ERROR: Deployment "vfszip:/D:/jboss-5.1.0.GA/server/default/deploy/Enhanced-QC-ejb.jar/" is in error due to the following reason(s): java.lang.IllegalStateException…
Редеплоймент - проблема?Каким образом JRebel решает
проблему редеплоймента?Стоимость и альтернативыПрактика использования JRebelLiveRebel
Настройка (Eclipse)Установить плагинАктивировать лицензиюАктивировать серверОтметить проекты Запустить серверProfit!
За кулисамиrebel.xml:
Опции сервера:
<application><classpath>
<dir name="C:/project/workspace/TestRebel/bin"/>
</classpath><web>
<link target="/"><dir
name="C:/project/workspace/TestRebel/webapp"/></link>
</web></application>
-javaagent:c:\jrebel\jrebel.jar
Примерpublic class TestClient {public TestClient() {
System.out.println("Constructor");}
public static void main(String... args) {
TestClient client = new TestClient();
while (true) {client.sayHello();Thread.sleep(1000);
}}
private void sayHello() {System.out.println("Hello");
}
}
Примерpublic class TestClient {public TestClient() {
System.out.println("Constructor");}
public static void main(String... args) {
TestClient client = new TestClient();
while (true) {client.sayHello();Thread.sleep(1000);
}}
private void sayHello() {System.out.println("Hello2");
}
}
ConstructorHelloHelloJRebel: Reloading class 'TestClient'.Hello2Hello2
Пример Hello2Hello2Hello2JRebel: Reloading class 'TestClient'.field valuefield value
public class TestClient {private String field = “field
value”;
public TestClient() {
System.out.println("Constructor");}public static void main(String...
args) {TestClient client = new
TestClient();while (true) {
client.sayHello();
Thread.sleep(1000);}
}private void sayHello() {newMethod();
}private void newMethod() {
System.out.println(field);}
}
JRebel RemoteНа сервере
rebel-remote.xml:
set JAVA_OPTS=-javaagent:/path/to/jrebel.jar -Drebel.remoting_plugin=true
<rebel-remote><id>MyFancyApplication</id><url>http://servername:8080/MyFancyApplication/
</url></rebel-remote>
Редеплоймент - проблема?Каким образом JRebel решает
проблему редеплоймента?Стоимость и альтернативыПрактика использования JRebelLiveRebel
АльтернативыHotSwapDynamic Code Evolution VMJavaleonfakereplaceGlass GhostPlay! Framework
АльтернативыHotSwapDynamic Code Evolution VMJavaleonfakereplaceGlass GhostPlay! Framework
Редеплоймент - проблема?Каким образом JRebel решает
проблему редеплоймента?Стоимость и альтернативыПрактика использования JRebelLiveRebel
Практика использованияНужно знать ограничения и
особенностиUnlocker@TransactionalСлужба продажи«Все таки редеплой»
Пример Hello2Hello2Hello2JRebel: Reloading class 'TestClient'.field valuefield value
public class TestClient {private String field = “field
value”;
public TestClient() {
System.out.println("Constructor");}public static void main(String...
args) {TestClient client = new
TestClient();while (true) {
client.sayHello();
Thread.sleep(1000);}
}private void sayHello() {newMethod();
}private void newMethod() {
System.out.println(field);}
}
Пример Hello2Hello2Hello2JRebel: Reloading class 'TestClient'.nullnull
public class TestClient {private String field = “field
value”;
public TestClient() {
System.out.println("Constructor");}public static void main(String...
args) {TestClient client = new
TestClient();while (true) {
client.sayHello();
Thread.sleep(1000);}
}private void sayHello() {newMethod();
}private void newMethod() {
System.out.println(field);}
}
Пример Hello2Hello2Hello2JRebel: Reloading class 'TestClient'.field valuefield value
public class TestClient {private String field;
public TestClient() {
System.out.println("Constructor");}public static void main(String...
args) {TestClient client = new
TestClient();while (true) {
client.sayHello();
Thread.sleep(1000);}
}private void sayHello() {newMethod();
}private void newMethod() {
field = "field value";System.out.println(field);
}}
Практика использованияНужно знать ограничения и
особенностиUnlocker@TransactionalСлужба продажи«Все таки редеплой»
Редеплоймент - проблема?Каким образом JRebel решает
проблему редеплоймента?Стоимость и альтернативыПрактика использования JRebelLiveRebel
Как забыть про редеплой
Поганшев Сергей
Вопросы?