<?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: OSGi on AppEngine?</title>
	<atom:link href="http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/feed/" rel="self" type="application/rss+xml" />
	<link>http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/</link>
	<description>Eclipse Equinox OSGi</description>
	<lastBuildDate>Mon, 08 Mar 2010 17:41:03 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: satya</title>
		<link>http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/comment-page-1/#comment-1598</link>
		<dc:creator>satya</dc:creator>
		<pubDate>Thu, 21 May 2009 14:13:29 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1248#comment-1598</guid>
		<description>I am also trying to run my osgi web app on google appengine but with no success yet. But after seeing your blog I am now hopeful about it.</description>
		<content:encoded><![CDATA[<p>I am also trying to run my osgi web app on google appengine but with no success yet. But after seeing your blog I am now hopeful about it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Thilo</title>
		<link>http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/comment-page-1/#comment-1531</link>
		<dc:creator>Thilo</dc:creator>
		<pubDate>Sat, 09 May 2009 06:55:43 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1248#comment-1531</guid>
		<description>Hi Chris,

I have also started my experiments with getting OSGi to run on AppEngine.

http://drop.io/appengine/

Because of the restrictions imposed there, I do not think it is possible
to get a complete OSGi-R4-compliant framework, but we might want to settle
for a reasonably useful subset thereof. Useful as in: Can run (many) OSGi bundles
without the need to modify them.

Three big roadblocks so far:

1) no threads: This means that we cannot start bundles or propagate events
asynchronously. Everything has to happen on the main thread. I can live with that.

2) no files: This means no bundle cache, and no persistent bundle state.
I think we have to give up on bundle state (persistent or not) anyway, because
in App Engine, we are spread over multiple JVM. So our whole application 
(including the framework) has to be mostly stateless. Dynamically starting bundles
for example is not useful unless it happens across all servers.

3) SecurityManager does not like bundle classloaders.
You can construct OSGi classloaders on AppEngine (I have that part of Felix working),
but code running on them is much more severly restricted than code
running on the &quot;main&quot; classloader. Reflection for example does not work at all.

http://code.google.com/p/googleappengine/issues/detail?id=1503

1)+2) can be dealt with in the framework, but 3) seems to be a problem.
Neither the Pax Web Extender Whiteboard (needs reflection) or the Equinox HttpService Servlet
(needs Thread.currentThread().getContextClassLoader) bundles can be
used (unmodified) because of that.</description>
		<content:encoded><![CDATA[<p>Hi Chris,</p>
<p>I have also started my experiments with getting OSGi to run on AppEngine.</p>
<p><a href="http://drop.io/appengine/" rel="nofollow">http://drop.io/appengine/</a></p>
<p>Because of the restrictions imposed there, I do not think it is possible<br />
to get a complete OSGi-R4-compliant framework, but we might want to settle<br />
for a reasonably useful subset thereof. Useful as in: Can run (many) OSGi bundles<br />
without the need to modify them.</p>
<p>Three big roadblocks so far:</p>
<p>1) no threads: This means that we cannot start bundles or propagate events<br />
asynchronously. Everything has to happen on the main thread. I can live with that.</p>
<p>2) no files: This means no bundle cache, and no persistent bundle state.<br />
I think we have to give up on bundle state (persistent or not) anyway, because<br />
in App Engine, we are spread over multiple JVM. So our whole application<br />
(including the framework) has to be mostly stateless. Dynamically starting bundles<br />
for example is not useful unless it happens across all servers.</p>
<p>3) SecurityManager does not like bundle classloaders.<br />
You can construct OSGi classloaders on AppEngine (I have that part of Felix working),<br />
but code running on them is much more severly restricted than code<br />
running on the &#8220;main&#8221; classloader. Reflection for example does not work at all.</p>
<p><a href="http://code.google.com/p/googleappengine/issues/detail?id=1503" rel="nofollow">http://code.google.com/p/googleappengine/issues/detail?id=1503</a></p>
<p>1)+2) can be dealt with in the framework, but 3) seems to be a problem.<br />
Neither the Pax Web Extender Whiteboard (needs reflection) or the Equinox HttpService Servlet<br />
(needs Thread.currentThread().getContextClassLoader) bundles can be<br />
used (unmodified) because of that.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Neil Laurance</title>
		<link>http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/comment-page-1/#comment-1345</link>
		<dc:creator>Neil Laurance</dc:creator>
		<pubDate>Wed, 15 Apr 2009 04:49:16 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1248#comment-1345</guid>
		<description>Nice one. Look forward to the next installment. Will have to download your sample project and have a tinker.</description>
		<content:encoded><![CDATA[<p>Nice one. Look forward to the next installment. Will have to download your sample project and have a tinker.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Brandon</title>
		<link>http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/comment-page-1/#comment-1322</link>
		<dc:creator>Brandon</dc:creator>
		<pubDate>Mon, 13 Apr 2009 15:42:23 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1248#comment-1322</guid>
		<description>Have you tried the Prosyst Android OSGi platform on Android yet?  Works pretty well though still in development it seems.</description>
		<content:encoded><![CDATA[<p>Have you tried the Prosyst Android OSGi platform on Android yet?  Works pretty well though still in development it seems.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jochen Hiller</title>
		<link>http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/comment-page-1/#comment-1313</link>
		<dc:creator>Jochen Hiller</dc:creator>
		<pubDate>Sun, 12 Apr 2009 09:12:16 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1248#comment-1313</guid>
		<description>Hi Chris,

cool. I will support you making OSGi running on Google AppEngine, if its really possible !?
I think the threading limitations will be the most difficult part to address when bringing an OSGi implementation on GAE.

Jochen</description>
		<content:encoded><![CDATA[<p>Hi Chris,</p>
<p>cool. I will support you making OSGi running on Google AppEngine, if its really possible !?<br />
I think the threading limitations will be the most difficult part to address when bringing an OSGi implementation on GAE.</p>
<p>Jochen</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jochen Krause</title>
		<link>http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/comment-page-1/#comment-1303</link>
		<dc:creator>Jochen Krause</dc:creator>
		<pubDate>Fri, 10 Apr 2009 21:34:15 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1248#comment-1303</guid>
		<description>Chris, 

This looks really interesting. I would love to see Equinox / OSGi running on the app engine - obviously RAP too ;-)

Jochen</description>
		<content:encoded><![CDATA[<p>Chris, </p>
<p>This looks really interesting. I would love to see Equinox / OSGi running on the app engine &#8211; obviously RAP too <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Jochen</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Newcomer</title>
		<link>http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/comment-page-1/#comment-1300</link>
		<dc:creator>Eric Newcomer</dc:creator>
		<pubDate>Fri, 10 Apr 2009 17:21:10 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1248#comment-1300</guid>
		<description>I don&#039;t know, I just imagined the Google APIs would create some difficulties, but if they provide a JDO adapter maybe they have anticipated the issues.

Ok, well, interesting experiment!  I look forward to hearing more about it.

Thanks,

Eric</description>
		<content:encoded><![CDATA[<p>I don&#8217;t know, I just imagined the Google APIs would create some difficulties, but if they provide a JDO adapter maybe they have anticipated the issues.</p>
<p>Ok, well, interesting experiment!  I look forward to hearing more about it.</p>
<p>Thanks,</p>
<p>Eric</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marcel Offermans</title>
		<link>http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/comment-page-1/#comment-1299</link>
		<dc:creator>Marcel Offermans</dc:creator>
		<pubDate>Fri, 10 Apr 2009 17:17:14 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1248#comment-1299</guid>
		<description>This all sounds a bit like the restrictions Google Android has (which also places some restrictions that complicate running OSGi). Abstracting the OSGi bundle cache itself to use a different API sounds possible, but the bundle data store is built on top of the File abstraction, which is not that good an abstraction. ;) Running OSGi in cloud like environments is definitely something I&#039;m interested in though.</description>
		<content:encoded><![CDATA[<p>This all sounds a bit like the restrictions Google Android has (which also places some restrictions that complicate running OSGi). Abstracting the OSGi bundle cache itself to use a different API sounds possible, but the bundle data store is built on top of the File abstraction, which is not that good an abstraction. <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Running OSGi in cloud like environments is definitely something I&#8217;m interested in though.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Aniszczyk</title>
		<link>http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/comment-page-1/#comment-1298</link>
		<dc:creator>Chris Aniszczyk</dc:creator>
		<pubDate>Fri, 10 Apr 2009 16:42:41 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1248#comment-1298</guid>
		<description>@Pascal I haven&#039;t worked around the thread issue yet as I&#039;m still having trouble getting the full framework booted due to Google&#039;s stranglehold on classloading:

java.lang.VerifyError: (class: org/eclipse/equinox/servletbridge/FrameworkLauncher$ChildFirstURLClassLoader, method: getPermissions signature: (Ljava/security/CodeSource;)Ljava/security/PermissionCollection;) Illegal type in constant pool

@Eric I am not sure if everything will work, this has been more of an experiment. Who says you can&#039;t write web apps on top of GAE that run on OSGi? The Google APIs are going to be required for me in order to get the state persistence working properly in Equinox. Since I can&#039;t write anywhere on &quot;disk,&quot; I need to write a custom adaptor hook that uses JDO apparently.</description>
		<content:encoded><![CDATA[<p>@Pascal I haven&#8217;t worked around the thread issue yet as I&#8217;m still having trouble getting the full framework booted due to Google&#8217;s stranglehold on classloading:</p>
<p>java.lang.VerifyError: (class: org/eclipse/equinox/servletbridge/FrameworkLauncher$ChildFirstURLClassLoader, method: getPermissions signature: (Ljava/security/CodeSource;)Ljava/security/PermissionCollection;) Illegal type in constant pool</p>
<p>@Eric I am not sure if everything will work, this has been more of an experiment. Who says you can&#8217;t write web apps on top of GAE that run on OSGi? The Google APIs are going to be required for me in order to get the state persistence working properly in Equinox. Since I can&#8217;t write anywhere on &#8220;disk,&#8221; I need to write a custom adaptor hook that uses JDO apparently.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eric Newcomer</title>
		<link>http://eclipsesource.com/blogs/2009/04/10/osgi-on-appengine/comment-page-1/#comment-1297</link>
		<dc:creator>Eric Newcomer</dc:creator>
		<pubDate>Fri, 10 Apr 2009 16:32:20 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1248#comment-1297</guid>
		<description>Chris - are you sure this will work? Last I read about AppEngine it was a way to fit Web apps onto the Google infrastructure, which is all highly customized, for &quot;automatic&quot; scale out.  Aren&#039;t the Google APIs sort of required?

Eric</description>
		<content:encoded><![CDATA[<p>Chris &#8211; are you sure this will work? Last I read about AppEngine it was a way to fit Web apps onto the Google infrastructure, which is all highly customized, for &#8220;automatic&#8221; scale out.  Aren&#8217;t the Google APIs sort of required?</p>
<p>Eric</p>
]]></content:encoded>
	</item>
</channel>
</rss>
