<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.0.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: HotSwap Is A Dead End Road</title>
	<link>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/</link>
	<description>Down To The Bone</description>
	<pubDate>Sat, 22 Nov 2008 04:12:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.2</generator>

	<item>
		<title>by: Richard</title>
		<link>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3528</link>
		<pubDate>Mon, 02 Jan 2006 00:24:38 +0000</pubDate>
		<guid>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3528</guid>
					<description>&lt;p&gt;I come from the telecom business and our switching equipment had the possiblity to apply changes of the code at run-time. Kind of run-time patch. Acutally the patching was only done on a procedural level, but this was heavily required as the we have five 9th in this business. Cluster solutions when they are big have mainly the problem that the switch over time is still considerable. Therefor for maintenance it would be great to patch the code of the running node instead of patching the passive node and then forcing a failover.&lt;/p&gt;

&lt;p&gt;With AOP I did not see this problem solved. I guess this was also not the intention of the inventer. But with HotSwap I would like to have this problem solved. So coming to the topic. I dont think AOP and hotswap should be intermingeled. Hotswapping functionality is required for JAVA in the business environment. If AOP utilizes this hotswapping functionaly it is welcome.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I come from the telecom business and our switching equipment had the possiblity to apply changes of the code at run-time. Kind of run-time patch. Acutally the patching was only done on a procedural level, but this was heavily required as the we have five 9th in this business. Cluster solutions when they are big have mainly the problem that the switch over time is still considerable. Therefor for maintenance it would be great to patch the code of the running node instead of patching the passive node and then forcing a failover.</p>

<p>With AOP I did not see this problem solved. I guess this was also not the intention of the inventer. But with HotSwap I would like to have this problem solved. So coming to the topic. I dont think AOP and hotswap should be intermingeled. Hotswapping functionality is required for JAVA in the business environment. If AOP utilizes this hotswapping functionaly it is welcome.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Jonas</title>
		<link>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3465</link>
		<pubDate>Tue, 22 Nov 2005 17:11:15 +0000</pubDate>
		<guid>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3465</guid>
					<description>&lt;p&gt;Jon, 
you are adressing the important questions. These questions are all very relevant and important, but has nothing to do with HotSwap. &lt;/p&gt;

&lt;p&gt;I simply think that HotSwap and JVMTI is a spec that should be deprecated and that we should focus on:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What do we want to do, the problem that has to be adressed?&lt;/li&gt;
&lt;li&gt;What is the High-Level (not bytecode level) API can help us getting there (could be something similar to or an extention to the one we have in JRockit).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I would die to get inter-type declarations (also called introductions, e.g. redefinition of the class) &lt;em&gt;with&lt;/em&gt; support for Schema Change into Mustang.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Jon, 
you are adressing the important questions. These questions are all very relevant and important, but has nothing to do with HotSwap. </p>

<p>I simply think that HotSwap and JVMTI is a spec that should be deprecated and that we should focus on:</p>

<ol>
<li>What do we want to do, the problem that has to be adressed?</li>
<li>What is the High-Level (not bytecode level) API can help us getting there (could be something similar to or an extention to the one we have in JRockit).</li>
</ol>

<p>I would die to get inter-type declarations (also called introductions, e.g. redefinition of the class) <em>with</em> support for Schema Change into Mustang.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Jon Mountjoy</title>
		<link>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3464</link>
		<pubDate>Tue, 22 Nov 2005 16:25:45 +0000</pubDate>
		<guid>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3464</guid>
					<description>&lt;p&gt;I suspect that most of the folk that are voting for better HotSwap simply want better, more dynamic and seamless development-mode new class introduction and modification.  From the end-user perspective, it's not so much about the byte-code instrumentation, but about getting this functionality.&lt;/p&gt;

&lt;p&gt;We want to build a web app, incrementally, while it runs, Ruby on Rails style.  What do we need to achieve this, and how will a high-level VM API help?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I suspect that most of the folk that are voting for better HotSwap simply want better, more dynamic and seamless development-mode new class introduction and modification.  From the end-user perspective, it&#8217;s not so much about the byte-code instrumentation, but about getting this functionality.</p>

<p>We want to build a web app, incrementally, while it runs, Ruby on Rails style.  What do we need to achieve this, and how will a high-level VM API help?</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: eu</title>
		<link>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3456</link>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3456</guid>
					<description>&lt;p&gt;I agree that it does not make any sence to use HotSwap for dynamic bytecode instrumentation. However it still would come handy for changing code when debugging. Current HotSwap implementation can survive very limited subset of changes that one could introduce into the class.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I agree that it does not make any sence to use HotSwap for dynamic bytecode instrumentation. However it still would come handy for changing code when debugging. Current HotSwap implementation can survive very limited subset of changes that one could introduce into the class.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Bob Lee</title>
		<link>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3457</link>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3457</guid>
					<description>&lt;p&gt;The requests for Hotswap improvements are about speeding up development, not about bytecode instrumentation. For example, when I'm debugging a web application in my IDE, I want to be able to change a class and have all of it's instances updated, too, without my having to restart the server (which can take minutes in some applications). If I make an incompatible change, I want the JVM to do it's best to update existing instances. It doesn't have to be perfect as it's development time-only.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>The requests for Hotswap improvements are about speeding up development, not about bytecode instrumentation. For example, when I&#8217;m debugging a web application in my IDE, I want to be able to change a class and have all of it&#8217;s instances updated, too, without my having to restart the server (which can take minutes in some applications). If I make an incompatible change, I want the JVM to do it&#8217;s best to update existing instances. It doesn&#8217;t have to be perfect as it&#8217;s development time-only.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Jonas</title>
		<link>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3458</link>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3458</guid>
					<description>&lt;p&gt;Debugging is not only (potential) use-case for HotSwap since it is now part of JVMTI (redefineClass(..) does not require -Xdebug). When Java 5 is becoming more and more popular I think that the usage of Java Agents will raise and some agents (vendors) will for sure use redefineClass().&lt;/p&gt;

&lt;p&gt;I understand that people want this badly, I am just worried that it will generate more problems than it solves and I think that we are heading down the wrong direction in JVMTI (in which there are parts that I think should be deprecated).&lt;/p&gt;

&lt;p&gt;As soon as there are more than one single active agent then correctness and behavior of the application can not be garantueed. You might have more than one agent in development situations as well...&lt;/p&gt;

&lt;p&gt;Besides, I do not see why patching code at runtime could not be done at a higher level than in the bytecode layer...(even when doing debugging). It has to de defined though.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Debugging is not only (potential) use-case for HotSwap since it is now part of JVMTI (redefineClass(..) does not require -Xdebug). When Java 5 is becoming more and more popular I think that the usage of Java Agents will raise and some agents (vendors) will for sure use redefineClass().</p>

<p>I understand that people want this badly, I am just worried that it will generate more problems than it solves and I think that we are heading down the wrong direction in JVMTI (in which there are parts that I think should be deprecated).</p>

<p>As soon as there are more than one single active agent then correctness and behavior of the application can not be garantueed. You might have more than one agent in development situations as well&#8230;</p>

<p>Besides, I do not see why patching code at runtime could not be done at a higher level than in the bytecode layer&#8230;(even when doing debugging). It has to de defined though.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Geert Bevin</title>
		<link>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3459</link>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3459</guid>
					<description>&lt;p&gt;Hi Jonas,&lt;/p&gt;

&lt;p&gt;you make a valid point about the multiple agents, but I don't see how JRockit's native AOP support would make Java development more interactive during development. I rarely use AOP, I just want the running JVM to use newly compiled classes without having to restart it. I also don't want to setup anything for this, I just want to press  a 'hotswap' button and check the new version. Do you have a solution that would allow this without JVMTI redefineClass()?&lt;/p&gt;

&lt;p&gt;Maybe a solution for the multiple agents problem can be found, without throwing away hotswap?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Hi Jonas,</p>

<p>you make a valid point about the multiple agents, but I don&#8217;t see how JRockit&#8217;s native AOP support would make Java development more interactive during development. I rarely use AOP, I just want the running JVM to use newly compiled classes without having to restart it. I also don&#8217;t want to setup anything for this, I just want to press  a &#8216;hotswap&#8217; button and check the new version. Do you have a solution that would allow this without JVMTI redefineClass()?</p>

<p>Maybe a solution for the multiple agents problem can be found, without throwing away hotswap?</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: Jonas Bonér</title>
		<link>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3460</link>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3460</guid>
					<description>&lt;p&gt;I am not saying that the end user should have to care at all which impl technique is used. You should just have to press 'debug' and then change the classes as you want. (And don't get me wrong, I want the same feature myself).&lt;/p&gt;

&lt;p&gt;I just want drive the discussions away from bytecode munging (and that is what the debug agents are doing) to a more high-level, predictable, well-defined and performant API.&lt;/p&gt;

&lt;p&gt;The work we have done in JRockit tries to have a wider scope than just AOP. We basically want to define an API rich enough for the user to not have to do bytecode manipulation (at least cover in 95% of the use-cases).&lt;/p&gt;

&lt;p&gt;There has been a lot of discussions on the JVMTI expert group on how to take the spec further, and it seems that it in some ways is heading down a dead end road.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I am not saying that the end user should have to care at all which impl technique is used. You should just have to press &#8216;debug&#8217; and then change the classes as you want. (And don&#8217;t get me wrong, I want the same feature myself).</p>

<p>I just want drive the discussions away from bytecode munging (and that is what the debug agents are doing) to a more high-level, predictable, well-defined and performant API.</p>

<p>The work we have done in JRockit tries to have a wider scope than just AOP. We basically want to define an API rich enough for the user to not have to do bytecode manipulation (at least cover in 95% of the use-cases).</p>

<p>There has been a lot of discussions on the JVMTI expert group on how to take the spec further, and it seems that it in some ways is heading down a dead end road.</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: dennis bekkering</title>
		<link>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3461</link>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +0000</pubDate>
		<guid>http://jonasboner.com/2005/11/01/improving-hotswap-is-a-dead-end-road/#comment-3461</guid>
					<description>&lt;p&gt;Jonas,&lt;/p&gt;

&lt;p&gt;I look at it from a development point of view. I am totally with Geert, no setups of anything. Why is the JVMTI road a dead end? And why isn't yours? &lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Jonas,</p>

<p>I look at it from a development point of view. I am totally with Geert, no setups of anything. Why is the JVMTI road a dead end? And why isn&#8217;t yours? </p>
]]></content:encoded>
				</item>
</channel>
</rss>
