<?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: Jigsaw and CDI: A Perfect Fit</title>
	<atom:link href="http://blog.caucho.com/2010/03/05/jigsaw-and-cdi-a-perfect-fit/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.caucho.com/2010/03/05/jigsaw-and-cdi-a-perfect-fit/</link>
	<description>Inside info, thoughts, and opinions from Caucho engineers</description>
	<pubDate>Tue, 21 May 2013 12:02:56 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: njbartlett</title>
		<link>http://blog.caucho.com/2010/03/05/jigsaw-and-cdi-a-perfect-fit/comment-page-1/#comment-588</link>
		<dc:creator>njbartlett</dc:creator>
		<pubDate>Tue, 09 Mar 2010 20:24:10 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caucho.com/?p=403#comment-588</guid>
		<description>@ferg

No, JSR 294 does NOT define the module system. In the words of Alex Buckley, the specification lead for JSR 294, it "provides language and VM features for the benefit of module systems such as OSGi and Jigsaw". (http://blogs.sun.com/abuckley/en_US/entry/jsr_294_and_module_systems)

Maven is a modular build system, not a runtime module system. OSGi certainly IS a module system, as is Jigsaw (once released).</description>
		<content:encoded><![CDATA[<p>@ferg</p>
<p>No, JSR 294 does NOT define the module system. In the words of Alex Buckley, the specification lead for JSR 294, it &#8220;provides language and VM features for the benefit of module systems such as OSGi and Jigsaw&#8221;. (http://blogs.sun.com/abuckley/en_US/entry/jsr_294_and_module_systems)</p>
<p>Maven is a modular build system, not a runtime module system. OSGi certainly IS a module system, as is Jigsaw (once released).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ferg</title>
		<link>http://blog.caucho.com/2010/03/05/jigsaw-and-cdi-a-perfect-fit/comment-page-1/#comment-585</link>
		<dc:creator>ferg</dc:creator>
		<pubDate>Mon, 08 Mar 2010 17:08:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caucho.com/?p=403#comment-585</guid>
		<description>Hmm. I think it would be more accurate to say that JSR-294 defines the module system, but leaves open the management of module repositories and their associated classloaders, like the current JDK leaves open management of the classloaders, jars and the classpath.

Maven and OSGi are both jar management systems (OSGi is also a classloader manager), but neither is really a module system.</description>
		<content:encoded><![CDATA[<p>Hmm. I think it would be more accurate to say that JSR-294 defines the module system, but leaves open the management of module repositories and their associated classloaders, like the current JDK leaves open management of the classloaders, jars and the classpath.</p>
<p>Maven and OSGi are both jar management systems (OSGi is also a classloader manager), but neither is really a module system.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: njbartlett</title>
		<link>http://blog.caucho.com/2010/03/05/jigsaw-and-cdi-a-perfect-fit/comment-page-1/#comment-581</link>
		<dc:creator>njbartlett</dc:creator>
		<pubDate>Sat, 06 Mar 2010 01:34:31 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caucho.com/?p=403#comment-581</guid>
		<description>Sorry my last comment was facetious. The point I really wish to make is that the new "module" access level keyword is being specified in JSR 294, which is separate from Jigsaw.

294 is the specification for module system support in the Java language, and is not tied to any specific module system. If the 294 Expert Group does its job properly then the "module" keyword will be understood by the javac compiler and usable in OSGi as well as within Jigsaw.</description>
		<content:encoded><![CDATA[<p>Sorry my last comment was facetious. The point I really wish to make is that the new &#8220;module&#8221; access level keyword is being specified in JSR 294, which is separate from Jigsaw.</p>
<p>294 is the specification for module system support in the Java language, and is not tied to any specific module system. If the 294 Expert Group does its job properly then the &#8220;module&#8221; keyword will be understood by the javac compiler and usable in OSGi as well as within Jigsaw.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: emil</title>
		<link>http://blog.caucho.com/2010/03/05/jigsaw-and-cdi-a-perfect-fit/comment-page-1/#comment-580</link>
		<dc:creator>emil</dc:creator>
		<pubDate>Sat, 06 Mar 2010 01:29:15 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caucho.com/?p=403#comment-580</guid>
		<description>Hi Neil,

Thanks for the correction about the injected services. Actually, now that I think about it, it might be possible to do some interesting work with CDI scopes to solve the dynamic injection issue you mentioned.

I agree, CDI + OSGi would certainly work and I imagine there will be a melding at some point.  In fact, I believe there was also some work to integrate Jigsaw (or at least JSR-294) and OSGi.  I haven't kept up with the current state of that.

The method-level hiding at the module level is completely new. Private, package, and protected access don't really allow the kind of cross-package access that a module keyword can. 

Thanks for the response,
Emil</description>
		<content:encoded><![CDATA[<p>Hi Neil,</p>
<p>Thanks for the correction about the injected services. Actually, now that I think about it, it might be possible to do some interesting work with CDI scopes to solve the dynamic injection issue you mentioned.</p>
<p>I agree, CDI + OSGi would certainly work and I imagine there will be a melding at some point.  In fact, I believe there was also some work to integrate Jigsaw (or at least JSR-294) and OSGi.  I haven&#8217;t kept up with the current state of that.</p>
<p>The method-level hiding at the module level is completely new. Private, package, and protected access don&#8217;t really allow the kind of cross-package access that a module keyword can. </p>
<p>Thanks for the response,<br />
Emil</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: njbartlett</title>
		<link>http://blog.caucho.com/2010/03/05/jigsaw-and-cdi-a-perfect-fit/comment-page-1/#comment-579</link>
		<dc:creator>njbartlett</dc:creator>
		<pubDate>Sat, 06 Mar 2010 01:17:53 +0000</pubDate>
		<guid isPermaLink="false">http://blog.caucho.com/?p=403#comment-579</guid>
		<description>OSGi services do not need to be manually registered and looked up; they can certainly be injected. The injection can be driven by source code annotations, and I think it should even be possible to adapt CDI's annotations to inject OSGi services. The key challenge is that most existing DI frameworks (including e.g. Spring, Guice etc) do not support the dynamic re-wiring that is possible with OSGi services; there is no concept of having a dependency "uninjected" and then "reinjected" at runtime. 

Nevertheless both Spring and Guice have been very successfully adapted to OSGi so I see no reason that CDI couldn't be also.

Incidentally, method-level hiding is of course possible in OSGi. Java has supported the private and protected modifiers on methods since... well, forever :-)</description>
		<content:encoded><![CDATA[<p>OSGi services do not need to be manually registered and looked up; they can certainly be injected. The injection can be driven by source code annotations, and I think it should even be possible to adapt CDI&#8217;s annotations to inject OSGi services. The key challenge is that most existing DI frameworks (including e.g. Spring, Guice etc) do not support the dynamic re-wiring that is possible with OSGi services; there is no concept of having a dependency &#8220;uninjected&#8221; and then &#8220;reinjected&#8221; at runtime. </p>
<p>Nevertheless both Spring and Guice have been very successfully adapted to OSGi so I see no reason that CDI couldn&#8217;t be also.</p>
<p>Incidentally, method-level hiding is of course possible in OSGi. Java has supported the private and protected modifiers on methods since&#8230; well, forever <img src='http://blog.caucho.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
