<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: ClassLoaders in JEE 5 Specifications</title>
	<atom:link href="http://www.bearaway.org/wp/2005/11/25/classloaders-in-jee-5-specifications/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bearaway.org/wp/2005/11/25/classloaders-in-jee-5-specifications/</link>
	<description>Just another rant</description>
	<lastBuildDate>Sat, 22 May 2010 15:41:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: stephane</title>
		<link>http://www.bearaway.org/wp/2005/11/25/classloaders-in-jee-5-specifications/comment-page-1/#comment-297</link>
		<dc:creator>stephane</dc:creator>
		<pubDate>Tue, 29 Nov 2005 20:05:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.bearaway.org/wp/?p=21#comment-297</guid>
		<description>Thanks for your feedback Scott. I agree that scope wise this is a non trivial problem. But one should also not forget that there is at least the need for a minimal standard on which people can rely to deploy confidentely on any application server. As of today, there is none and it is a big issue. An application can be deployed and &#039;work&#039; accidentally.

I also don&#039;t think that it is tied to JSR-277 which is a bit of another issue. In the Java EE case we must simply be strict about a the existence of (at least) a default behavior which is as of now NO such big deal to implement..as it already exists. Every application server available on the market is certainly is able to do it now. Some will break their default behavior, but it&#039;s up to them to provide a painless migration step.

For Java EE and JSR-277, there is something that is an interesting use case. I have seen several times at customers the WEB-INF/lib of WARs serving as a dumping ground for every jar. You could then find in it 3 different versions of a the same jar. The jar picked up, thus mostly depends on the app. server, JDK and filesystem.</description>
		<content:encoded><![CDATA[<p>Thanks for your feedback Scott. I agree that scope wise this is a non trivial problem. But one should also not forget that there is at least the need for a minimal standard on which people can rely to deploy confidentely on any application server. As of today, there is none and it is a big issue. An application can be deployed and &#8216;work&#8217; accidentally.</p>
<p>I also don&#8217;t think that it is tied to JSR-277 which is a bit of another issue. In the Java EE case we must simply be strict about a the existence of (at least) a default behavior which is as of now NO such big deal to implement..as it already exists. Every application server available on the market is certainly is able to do it now. Some will break their default behavior, but it&#8217;s up to them to provide a painless migration step.</p>
<p>For Java EE and JSR-277, there is something that is an interesting use case. I have seen several times at customers the WEB-INF/lib of WARs serving as a dumping ground for every jar. You could then find in it 3 different versions of a the same jar. The jar picked up, thus mostly depends on the app. server, JDK and filesystem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott M Stark</title>
		<link>http://www.bearaway.org/wp/2005/11/25/classloaders-in-jee-5-specifications/comment-page-1/#comment-296</link>
		<dc:creator>Scott M Stark</dc:creator>
		<pubDate>Tue, 29 Nov 2005 19:19:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.bearaway.org/wp/?p=21#comment-296</guid>
		<description>I agree that the class loading model in Java EE 5 is problematic, but this is because there has been no consideration for how class loading should work in a multi-user/multi-application server environment. With components that allow call by reference semantics and containers that allow for customization of container component call level pathways(interceptors, valves, aspects), its a non-trivial problem. This is an issue that should be raised in the context of the JSR-277 (a jdk7 timeframe spec) as well as Java EE 6.</description>
		<content:encoded><![CDATA[<p>I agree that the class loading model in Java EE 5 is problematic, but this is because there has been no consideration for how class loading should work in a multi-user/multi-application server environment. With components that allow call by reference semantics and containers that allow for customization of container component call level pathways(interceptors, valves, aspects), its a non-trivial problem. This is an issue that should be raised in the context of the JSR-277 (a jdk7 timeframe spec) as well as Java EE 6.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rajesh Patel</title>
		<link>http://www.bearaway.org/wp/2005/11/25/classloaders-in-jee-5-specifications/comment-page-1/#comment-295</link>
		<dc:creator>Rajesh Patel</dc:creator>
		<pubDate>Tue, 29 Nov 2005 15:48:11 +0000</pubDate>
		<guid isPermaLink="false">http://www.bearaway.org/wp/?p=21#comment-295</guid>
		<description>Did more reading, JBoss is not using the FLAT model anymore:
http://jira.jboss.com/jira/browse/JBAS-1691</description>
		<content:encoded><![CDATA[<p>Did more reading, JBoss is not using the FLAT model anymore:<br />
<a href="http://jira.jboss.com/jira/browse/JBAS-1691" rel="nofollow">http://jira.jboss.com/jira/browse/JBAS-1691</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rajesh Patel</title>
		<link>http://www.bearaway.org/wp/2005/11/25/classloaders-in-jee-5-specifications/comment-page-1/#comment-294</link>
		<dc:creator>Rajesh Patel</dc:creator>
		<pubDate>Tue, 29 Nov 2005 15:38:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.bearaway.org/wp/?p=21#comment-294</guid>
		<description>BTW, Websphere defaults to parent first classloading, which is just
as bad as the unified classloader.</description>
		<content:encoded><![CDATA[<p>BTW, Websphere defaults to parent first classloading, which is just<br />
as bad as the unified classloader.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rajesh Patel</title>
		<link>http://www.bearaway.org/wp/2005/11/25/classloaders-in-jee-5-specifications/comment-page-1/#comment-293</link>
		<dc:creator>Rajesh Patel</dc:creator>
		<pubDate>Tue, 29 Nov 2005 15:37:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.bearaway.org/wp/?p=21#comment-293</guid>
		<description>Amen brother, 
I too tire of the different default implementations of classloaders.
I find that the concept of classloader hiearchies is enough to
blow most developers minds.  Then you throw in the differing
default implementations and you have mass confusion.  I can&#039;t
just say &quot;put all your jars in the WEB-INF/lib directory for you application&quot;.</description>
		<content:encoded><![CDATA[<p>Amen brother,<br />
I too tire of the different default implementations of classloaders.<br />
I find that the concept of classloader hiearchies is enough to<br />
blow most developers minds.  Then you throw in the differing<br />
default implementations and you have mass confusion.  I can&#8217;t<br />
just say &#8220;put all your jars in the WEB-INF/lib directory for you application&#8221;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: stephane</title>
		<link>http://www.bearaway.org/wp/2005/11/25/classloaders-in-jee-5-specifications/comment-page-1/#comment-20</link>
		<dc:creator>stephane</dc:creator>
		<pubDate>Fri, 25 Nov 2005 13:06:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.bearaway.org/wp/?p=21#comment-20</guid>
		<description>Steve, any app server is free to offer added value stuff, but what is important is that the specification can at least specify a standard expected behavior in this area to avoid all sort of custom interpretation. I think JEE developers/administrator pay a hard price in production otherwise. If it&#039;s not standard, behavior is also bound to change any time (like JBoss does with the isolation mechanism) and creates more havoc when upgrading.

I&#039;m also afraid to not to really get the JMX mechanism you are thinking about.</description>
		<content:encoded><![CDATA[<p>Steve, any app server is free to offer added value stuff, but what is important is that the specification can at least specify a standard expected behavior in this area to avoid all sort of custom interpretation. I think JEE developers/administrator pay a hard price in production otherwise. If it&#8217;s not standard, behavior is also bound to change any time (like JBoss does with the isolation mechanism) and creates more havoc when upgrading.</p>
<p>I&#8217;m also afraid to not to really get the JMX mechanism you are thinking about.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve Loughran</title>
		<link>http://www.bearaway.org/wp/2005/11/25/classloaders-in-jee-5-specifications/comment-page-1/#comment-19</link>
		<dc:creator>Steve Loughran</dc:creator>
		<pubDate>Fri, 25 Nov 2005 12:30:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.bearaway.org/wp/?p=21#comment-19</guid>
		<description>You have to remember that those appserver people want to offer added value stuff, because that is how they differentiate their server/lock in users. 

Maybe the provisioning of those features should be different, for example you could ask a JMX manager for an MBean of a specific interface, and you&#039;d get back that particular (remote?) interface. No classpath injection, just interfaces at build time and proxies you get at runtime by asking for specific versions.

-steve</description>
		<content:encoded><![CDATA[<p>You have to remember that those appserver people want to offer added value stuff, because that is how they differentiate their server/lock in users. </p>
<p>Maybe the provisioning of those features should be different, for example you could ask a JMX manager for an MBean of a specific interface, and you&#8217;d get back that particular (remote?) interface. No classpath injection, just interfaces at build time and proxies you get at runtime by asking for specific versions.</p>
<p>-steve</p>
]]></content:encoded>
	</item>
</channel>
</rss>
