<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>EclipseSource Blog &#187; Scott Lewis</title>
	<atom:link href="http://eclipsesource.com/blogs/author/slewis/feed/" rel="self" type="application/rss+xml" />
	<link>http://eclipsesource.com/blogs</link>
	<description>Eclipse Equinox OSGi</description>
	<lastBuildDate>Thu, 23 May 2013 12:39:08 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Building Your Equinox OSGi Application Server &#8211; Part 3</title>
		<link>http://eclipsesource.com/blogs/2009/08/20/building-your-equinox-osgi-application-server-part-3/</link>
		<comments>http://eclipsesource.com/blogs/2009/08/20/building-your-equinox-osgi-application-server-part-3/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 23:47:05 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[ecf]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[p2]]></category>
		<category><![CDATA[Planet OSGi]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=2757</guid>
		<description><![CDATA[In part 2 of this blog series, I described how to use Equinox p2 to install a new feature into a running Equinox application server. Rather than do this install at runtime via the OSGi console, many times it&#8217;s desirable to add bundles to an application server statically at build time rather than at runtime.  For <a href="http://eclipsesource.com/blogs/2009/08/20/building-your-equinox-osgi-application-server-part-3/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://eclipsesource.com/blogs/2009/08/17/building-your-equinox-appserver-p2/">part 2</a> of this blog series, I described how to use Equinox p2 to install a new feature into a running Equinox application server. Rather than do this install at runtime via the OSGi console, many times it&#8217;s desirable to add bundles to an application server statically at build time rather than at runtime.  For example, this is usually the case when adding libraries for your web application to use. These libraries are sometimes created by others and sometimes created by you.</p>
<p>This post will go through a simple example of how to add your own bundles to your Equinox application at build time.</p>
<p>First, let&#8217;s return to the workspace that we setup as described in the <a href="http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/">first post</a> in this series.  Here&#8217;s what the workspace should look like after completing <a href="http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/">steps 1-4</a> of the first post:</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-2759" title="p31" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/p311-1024x719.png" alt="p311 1024x719 Building Your Equinox OSGi Application Server   Part 3" width="614" height="431" /></p>
<p>To add sets of bundles to the target application server, we create a new feature for grouping the bundles.  A feature project is created through the new project wizard via menu selections <strong>New Project-&gt;Other&#8230;-&gt;Plugin Development-&gt;Feature Project</strong>.  I&#8217;ve created a new empty feature called <strong>com.mycompany.myappserverfeature, </strong>but it can be called anything you like:<strong><br />
</strong></p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-2760" title="p32" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/p32-1024x695.png" alt="p32 1024x695 Building Your Equinox OSGi Application Server   Part 3" width="614" height="417" /></p>
<p>Then choose the <strong>Plug-ins</strong> (otherwise known as bundles) tab in the feature editor and you can add bundles to be included in your new feature.  The bundles that appear in the dialog when selecting <strong>Add&#8230;</strong> will include all the bundles in your workspace, as well as all bundles currently included in your <strong>target platform</strong>.  For a description of how to add to your target platform, and an explanation of what you can do with the target platform since Eclipse 3.5 please see the <a href="http://eclipsesource.com/blogs/2009/06/22/eclipse-galileo-feature-top-10-list-number-3/">Improved Target Platform Management</a> blog post.</p>
<p>I&#8217;ve also added some bundles in my target platform that support doing <a href="http://wiki.eclipse.org/Distributed_OSGi_Services_with_ECF">ECF remote services</a> with the r-OSGi provider.   This enables support for <a href="http://www.eclipse.org/ecf/NewAndNoteworthy.html">remote OSGi services</a> between application servers (i.e., having one server call a remote OSGi service exposed by another server).</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-2761" title="p33" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/p33-1024x695.png" alt="p33 1024x695 Building Your Equinox OSGi Application Server   Part 3" width="614" height="417" /></p>
<p>After adding the bundles you wish to include, save the changes to your feature and then <strong>add your new feature</strong> to the <strong>equinox-milli.product. </strong>Features can be added to the <strong>equinox-milli.product </strong>on the<strong> Dependencies</strong> tab of the <strong>equinox-milli.product</strong> editor.</p>
<p>Here&#8217;s the Feature Selection dialog that appears when you select <strong>Add&#8230;</strong> on the <strong>Dependencies</strong> tab:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2762" title="p34" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/p34.png" alt="p34 Building Your Equinox OSGi Application Server   Part 3" width="313" height="312" /></p>
<p>And then you will see your <strong>com.mycompany.myappserverfeature</strong> listed as part of the <strong>equinox-milli.product</strong>:</p>
<p style="text-align: center;"><img class="aligncenter size-large wp-image-2763" title="p35" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/p35-1024x695.png" alt="p35 1024x695 Building Your Equinox OSGi Application Server   Part 3" width="614" height="417" /></p>
<p>Save the changes to the <strong>equinox-milli.product </strong>and then you can go to product editor <strong>Overview</strong> tab, select the <strong>Eclipse Product export wizard</strong> (in lower right of Overview tab) to display the export wizard dialog:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2764" title="p36" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/p36.png" alt="p36 Building Your Equinox OSGi Application Server   Part 3" width="401" height="403" /></p>
<p>You can now click <strong>Finish</strong> and do exactly the same things as described in steps <a href="http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/">6, 7, 8, 9 in the original post</a> to create a zip file (e.g., named <strong>myappserver.zip</strong>), rename it to <strong>myappserver.war </strong>and then hot deploy the new war file to your servlet container of choice to run it.</p>
<p>Once running, at the <strong>osgi&gt;</strong> prompt you can convince yourself that the added bundles are now present in your application server by typing <strong>ss</strong> and looking for the bundles added by your feature in the resulting list:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-2765" title="p37" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/p37.png" alt="p37 Building Your Equinox OSGi Application Server   Part 3" width="488" height="443" /></p>
<p>As you can see, these bundles are in place and ready to use from within your web applications!</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Building+Your+Equinox+OSGi+Application+Server+%26%238211%3B+Part+3&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2009/08/20/building-your-equinox-osgi-application-server-part-3/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2009/08/20/building-your-equinox-osgi-application-server-part-3/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2009/08/20/building-your-equinox-osgi-application-server-part-3/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2009/08/20/building-your-equinox-osgi-application-server-part-3/&amp;t=Building+Your+Equinox+OSGi+Application+Server+%26%238211%3B+Part+3" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/equinox/' title='equinox Tag'>equinox</a>, <a href='http://eclipsesource.com/blogs/tag/p2/' title='p2 Tag'>p2</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/equinox/' title='equinox Tag'>equinox</a>, <a href='http://eclipsesource.com/blogs/tag/p2/' title='p2 Tag'>p2</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/08/20/building-your-equinox-osgi-application-server-part-3/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Building Your Equinox OSGi Application Server &#8211; Part 2</title>
		<link>http://eclipsesource.com/blogs/2009/08/17/building-your-equinox-appserver-p2/</link>
		<comments>http://eclipsesource.com/blogs/2009/08/17/building-your-equinox-appserver-p2/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 18:06:33 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[ecf]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[p2]]></category>
		<category><![CDATA[Planet OSGi]]></category>
		<category><![CDATA[rap]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=2729</guid>
		<description><![CDATA[In my previous post, I described how to easily build an Equinox-based web application server that can be run on any servlet container. Note that in the previous post I had these instructions for completing the export wizard dialog d) The Generate metadata repository should be unchecked If using p2 (as in this post), this is <a href="http://eclipsesource.com/blogs/2009/08/17/building-your-equinox-appserver-p2/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/">previous post</a>, I described how to easily build an Equinox-based web application server that can be run on any servlet container. Note that in the previous post I had these instructions for completing the export wizard dialog</p>
<p>d) The <strong>Generate metadata repository</strong> should be <strong>unchecked</strong></p>
<p>If using p2 (as in this post), this is <strong>incorrect</strong>.  It should say</p>
<p>d) The <strong>Generate metadata repository</strong> should be <strong>checked (to include p2 metadata)</strong></p>
<p>I&#8217;ve updated this documentation in the <a href="http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/">original posting</a>.</p>
<p>Once your p2-enabled app server is running, you can do some really cool things with it.  For example, since <a href="http://wiki.eclipse.org/Equinox_p2">p2</a> is available, you can dynamically install new components into your <strong>running</strong> application server.  Here&#8217;s the OSGi console help output (part of it anyway):</p>
<p><img class="aligncenter size-full wp-image-2730" title="sbp21" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/sbp21.png" alt="sbp21 Building Your Equinox OSGi Application Server   Part 2" width="829" height="674" /></p>
<p>Notice the <strong>Provisioning Commands</strong> text.  These are console commands enabled by the presence of p2 that allow you to do common provisioning operations like installing new components.  In this blog entry, I&#8217;ll show how to install a version of the <a href="http://www.knopflerfish.org/">Knoplerfish </a>httpconsole, but the same approach applies to software available from other p2 repositories.  In other posts, the <a href="http://www.eclipsesource.com">EclipseSource</a> team will show how to do this hot deployment into a running server for:</p>
<ul>
<li><a href="http://www.eclipse.org/rap/">RAP</a></li>
<li><a href="http://www.eclipse.org/ecf">ECF</a></li>
<li>Other <a href="http://www.eclipse.org/rt/">EclipseRT</a> Project components</li>
</ul>
<p><a href="http://www.eclipse.org/rap/"></a></p>
<p><a href="http://www.eclipse.org/ecf"></a></p>
<p>First, one must add the metadata and artifact repository URIs using the <strong>provaddrepo</strong> and <strong>provaddartifactrepo</strong> commands:</p>
<p><img class="aligncenter size-full wp-image-2735" title="sbp22" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/sbp221.png" alt="sbp221 Building Your Equinox OSGi Application Server   Part 2" width="829" height="458" /></p>
<p>Notice the <strong>provlg</strong> command, which lists the p2 groups available in the newly added repositories (in this case, the Knopplerfish httpconsole v2.0.0).  Now, issue the <strong>provinstall</strong> command with the feature group and version&#8230; wait a few seconds and you should see the <strong>install complete</strong> message</p>
<p><img class="aligncenter size-full wp-image-2738" title="sbp23" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/sbp232.png" alt="sbp232 Building Your Equinox OSGi Application Server   Part 2" width="829" height="458" /></p>
<p>Then issue the <strong>confapply</strong> command (this command applies the new bundle configuration to the currently running platform):</p>
<p><img class="aligncenter size-full wp-image-2739" title="sbp24" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/sbp24.png" alt="sbp24 Building Your Equinox OSGi Application Server   Part 2" width="829" height="458" /></p>
<p>Now, you can see the new bundle installed via the short status (ss) command:</p>
<p><img class="aligncenter size-full wp-image-2740" title="sbp25" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/sbp25.png" alt="sbp25 Building Your Equinox OSGi Application Server   Part 2" width="829" height="458" /></p>
<p>To start the httpconsole bundle (and activate the servlet that it runs) just type <strong>start 50. </strong></p>
<p><strong> </strong>At this point, you can open a web browser, and point it at your Equinox application server now running the httpconsole at <strong>http://localhost:8080/myappserver/console</strong> and <strong>magic</strong>&#8230;your application server is now running the Knoplerfish httpconsole servlet, which provides a web interface to the list of running bundles:</p>
<p><img class="aligncenter size-full wp-image-2741" title="sbp26" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/sbp26.png" alt="sbp26 Building Your Equinox OSGi Application Server   Part 2" width="691" height="714" /></p>
<p>Just for fun, you can stop the httpconsole with <strong>stop 50</strong> and the servlet will no longer respond</p>
<p><img class="aligncenter size-full wp-image-2742" title="sbp27" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/sbp27.png" alt="sbp27 Building Your Equinox OSGi Application Server   Part 2" width="691" height="714" /></p>
<p>You can start it back up, and then the servlet will be running again. This makes a nice demo for people that have to manage the install and update of new components into a running application server. In future posts, I&#8217;ll show how to add features to your application server statically (during the build, rather than at runtime) as well as how to use <a href="http://wiki.eclipse.org/Distributed_OSGi_Services_with_ECF">ECF remote services</a> to manage a running application server without having to use the OSGi console.</p>
<p>Enjoy!</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Building+Your+Equinox+OSGi+Application+Server+%26%238211%3B+Part+2&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2009/08/17/building-your-equinox-appserver-p2/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2009/08/17/building-your-equinox-appserver-p2/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2009/08/17/building-your-equinox-appserver-p2/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2009/08/17/building-your-equinox-appserver-p2/&amp;t=Building+Your+Equinox+OSGi+Application+Server+%26%238211%3B+Part+2" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/equinox/' title='equinox Tag'>equinox</a>, <a href='http://eclipsesource.com/blogs/tag/p2/' title='p2 Tag'>p2</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/equinox/' title='equinox Tag'>equinox</a>, <a href='http://eclipsesource.com/blogs/tag/p2/' title='p2 Tag'>p2</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/08/17/building-your-equinox-appserver-p2/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Building Your Equinox OSGi Application Server &#8211; Part 1</title>
		<link>http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/</link>
		<comments>http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 17:48:53 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[ecf]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[p2]]></category>
		<category><![CDATA[Planet OSGi]]></category>
		<category><![CDATA[rap]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=2688</guid>
		<description><![CDATA[Over the past year I&#8217;ve developed a goal of making it easier to build and deploy the Equinox runtime as a web application server.  Not only does this fit my technical skills having previously worked on a commercial application server, it also fits my technical interests. It also seems that an ever increasing set of <a href="http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Over the past year I&#8217;ve developed a goal of making it easier to build and deploy the Equinox runtime as a web application server.  Not only does this fit my technical skills having previously worked on a commercial application server, it also fits my technical interests. It also seems that an ever increasing set of other people have been interested in running the Equinox OSGi runtime as a application server. Furthermore, many people may not be aware that there are now a number of really excellent  technologies available via the <a href="http://www.eclipse.org/rt">EclipseRT</a> project that are relevant to creating modern application servers:</p>
<ul>
<li><a href="http://www.eclipse.org/ecf">ECF</a></li>
<li><a href="http://www.eclipse.org/rap/">RAP</a></li>
<li><a href="http://www.eclipse.org/equinox/incubator/provisioning">P2</a></li>
<li><a href="http://eclipse.org/pde/">PDE</a></li>
<li><a href="http://www.eclipse.org/equinox">Equinox</a></li>
<li><a href="http://eclipse.org/eclipselink/">EclipseLink</a></li>
<li><a href="http://eclipse.org/riena/">Riena</a></li>
<li><a href="http://eclipse.org/smila/">Smila</a></li>
<li><a href="http://eclipse.org/ercp/">eRCP</a></li>
</ul>
<p><a href="http://www.eclipse.org/rap/"></a></p>
<p><a href="http://www.eclipse.org/equinox/incubator/provisioning"></a></p>
<p><a href="http://eclipse.org/pde/"></a></p>
<p><a href="http://www.eclipse.org/equinox"></a></p>
<p><a href="http://eclipse.org/eclipselink/"></a></p>
<p><a href="http://eclipse.org/riena/"></a></p>
<p><a href="http://eclipse.org/smila/"></a></p>
<p>There&#8217;s a lot more to come, for example, ECF&#8217;s work on supporting <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=280347">Google Wave server protocol</a> as well as commercial technologies from <a href="http://www.eclipsesource.com">EclipseSource</a><a> </a>and other technology companies devoted to the OSGi stackless stack.</p>
<p>However, in my opinion it&#8217;s far more difficult to build, deploy, configure and run an Equinox server than it should be.  There is existing documentation on doing so from scratch <a href="http://www.eclipse.org/equinox/server/">here</a>, but it is a little dated.  I am contributing to the Equinox project to get the documentation updated with community help.</p>
<p>So, I would like to do a short set of blogs about building your own Equinox-based application server.  Hopefully this will be helpful to those who are interested. It&#8217;s possible to create two &#8216;kinds&#8217; of Equinox-based application servers. Those that are actually run <a href="http://www.eclipse.org/equinox/server/http_in_equinox.php">stand-alone</a> (i.e., as a Equinox OSGi application) or those that are <a href="http://www.eclipse.org/equinox/server/http_in_container.php">run within an existing servlet container</a> such as <a href="http://www.eclipse.org/jetty">Jetty</a> or most commercial application servers.  For this series, I&#8217;m going to focus on the servlet container method as I think this will ultimately be the more common and popular method. Furthermore, servlet containers now make deployment, installation and configuration very easy (which goes a long way toward my goal).</p>
<p>Ok, so how to create an Equinox-based application server?  Well, with the Eclipse Galileo PDE build, p2, features, and products, it turns out it&#8217;s now very easy to do so (compliments to the particularly to the folks who worked on PDE, Equinox, and P2 in this area).  I&#8217;ve created a simple feature and product that does so and contributed them to this <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=245267">bug</a>.  Here are the steps:</p>
<p>1) Download the zip attached to <a href="https://bugs.eclipse.org/bugs/attachment.cgi?id=144612">bug 245267</a></p>
<p>2) In Eclipse, open a new workspace and import the projects from the downloaded zip (File-&gt;Import&#8230;-&gt;Existing Projects in Workspace-&gt;Select Archive File).  This will put two very small projects into your workspace</p>
<p><img class="aligncenter size-full wp-image-2690" title="sbimport" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/sbimport.PNG" alt=" Building Your Equinox OSGi Application Server   Part 1" width="321" height="339" /></p>
<p>3) There are two other projects (from Equinox CVS area) required before you can create your app server.  To add these projects right click on the <strong>equinox-servletbridge.psf</strong> file and select <strong>Import Project Set</strong>&#8230;  from the menu (use <strong>anonymous</strong> CVS login when prompted).  Now you should have four projects in the workspace</p>
<p><img class="aligncenter size-full wp-image-2691" title="sbimport1" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/sbimport1.png" alt="sbimport1 Building Your Equinox OSGi Application Server   Part 1" width="370" height="313" /></p>
<p>4) Now, open the PDE product editor by double clicking on <strong>equinox-milli.product</strong> file</p>
<p>5) Select <strong>Eclipse product export</strong> link in lower right of product editor</p>
<p><img class="aligncenter size-medium wp-image-2692" title="sbexport1" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/sbexport1-300x165.png" alt="sbexport1 300x165 Building Your Equinox OSGi Application Server   Part 1" width="300" height="165" /></p>
<p>6) In the export wizard dialog set the following fields</p>
<p>a) The <strong>Root Directory</strong> field <strong>must </strong>be set to:  <strong>WEB-INF</strong></p>
<p>b) The <strong>Synchronize before exporting</strong> check box can be <strong>unchecked</strong></p>
<p>c) The <strong>Destination</strong> must be set to <strong>Archive file</strong>, and given a location/name of your choosing (e.g. myappserver.zip)</p>
<p>d) The <strong>Generate metadata repository</strong> should be <strong>checked (to include p2 metadata)<br />
</strong></p>
<p><img class="aligncenter size-full wp-image-2733" title="sbexport2" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/sbexport21.png" alt="sbexport21 Building Your Equinox OSGi Application Server   Part 1" width="573" height="575" /></p>
<p>e) Click <strong>Finish</strong></p>
<p>This will run PDE build and create a zip named (in the above case): <strong>myappserver.zip</strong></p>
<p>6) Now comes the <strong>fun part</strong>.  Simply rename this zip file to a .war&#8230;i.e. <strong>myappserver.war</strong></p>
<p>7) Start your servlet container (in this case I&#8217;m using tomcat)</p>
<p><img class="aligncenter size-full wp-image-2694" title="tomcat1" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/tomcat1.png" alt="tomcat1 Building Your Equinox OSGi Application Server   Part 1" width="829" height="458" /></p>
<p>8) Hot deploy the war file (in this case <strong>myappserver.war</strong>) in the manner appropriate for your servlet container (in tomcat&#8217;s case this is copying the <strong>myappserver.war</strong> file into the <strong>webapps</strong> directory).  After a few seconds, you should see something like the following output to the tomcat console&#8230;with the nice little <strong>osgi&gt;</strong> prompt, indicating your Equinox server is deployed and running!</p>
<p><img class="aligncenter size-full wp-image-2695" title="tomcat2" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/tomcat2.png" alt="tomcat2 Building Your Equinox OSGi Application Server   Part 1" width="829" height="458" /></p>
<p>9) Give some OSGi console commands with the <strong>osgi&gt;</strong> prompt just to convince yourself everything is working&#8230;e.g.</p>
<p><img class="aligncenter size-full wp-image-2696" title="tomcat3" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/tomcat3.png" alt="tomcat3 Building Your Equinox OSGi Application Server   Part 1" width="773" height="679" /></p>
<p>10) Go show your colleagues how easy it was to create, deploy and run your Equinox application server!</p>
<p>There&#8217;s a lot more that you can now do with your Equinox application server like:</p>
<ul>
<li>Adding servlets (via bundles)</li>
<li>Using P2 to update your application server</li>
<li>Creating your web applications in a modular fashion using bundles and features</li>
<li>Reuse your favorite bundles from Eclipse or other projects</li>
<li>Deploy and maintain your web application as bundles (and using PDE to do it)</li>
</ul>
<p>In the future, I&#8217;ll describe how to do some of these things.</p>
<p>If people are interested in particular things to do, please comment and let me know.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Building+Your+Equinox+OSGi+Application+Server+%26%238211%3B+Part+1&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/&amp;t=Building+Your+Equinox+OSGi+Application+Server+%26%238211%3B+Part+1" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/equinox/' title='equinox Tag'>equinox</a>, <a href='http://eclipsesource.com/blogs/tag/p2/' title='p2 Tag'>p2</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/equinox/' title='equinox Tag'>equinox</a>, <a href='http://eclipsesource.com/blogs/tag/p2/' title='p2 Tag'>p2</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/08/15/building-your-equinox-based-appserver-part-1/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Remote OSGi Declarative Services</title>
		<link>http://eclipsesource.com/blogs/2009/08/04/remote-declarative-services/</link>
		<comments>http://eclipsesource.com/blogs/2009/08/04/remote-declarative-services/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 23:00:31 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[ecf]]></category>
		<category><![CDATA[Planet OSGi]]></category>
		<category><![CDATA[rfc119]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=2611</guid>
		<description><![CDATA[There is a very cool new tutorial by Bryan Hunt for using ECF&#8216;s implementation of the OSGi Distributed OSGi spec (RFC 119) and OSGi Declarative Services (DS) together to do remote declarative services. In addition to demonstrating the power of combining DS with ECF 3.0&#8242;s support for distributed OSGi services, the tutorial has two other very <a href="http://eclipsesource.com/blogs/2009/08/04/remote-declarative-services/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>There is a very cool new <a href="http://bryanhunt.wordpress.com/2009/06/20/remote-declarative-osgi-services/">tutorial</a> by Bryan Hunt for using <a href="http://www.eclipse.org/ecf">ECF</a>&#8216;s <a href="http://wiki.eclipse.org/Getting_Started_with_ECF%27s_RFC119_Implementation">implementation</a> of the OSGi Distributed OSGi spec (RFC 119) and OSGi <a href="http://www.eclipse.org/resources/resource.php?id=378">Declarative Services</a> (DS) together to do remote declarative services.</p>
<p>In addition to demonstrating the power of combining DS with ECF 3.0&#8242;s support for distributed OSGi services, the tutorial has two other very cool aspects:</p>
<ul>
<li>It was created by a community member after using these technologies to build their own system</li>
<li>The tutorial will soon be contributed to the ECF documentation section available in the <a href="http://wiki.eclipse.org/ECF">ECF wiki area</a></li>
</ul>
<p>Enjoy!</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Remote+OSGi+Declarative+Services&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2009/08/04/remote-declarative-services/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2009/08/04/remote-declarative-services/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2009/08/04/remote-declarative-services/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2009/08/04/remote-declarative-services/&amp;t=Remote+OSGi+Declarative+Services" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/rfc119/' title='rfc119 Tag'>rfc119</a>, <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/rfc119/' title='rfc119 Tag'>rfc119</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/08/04/remote-declarative-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teamwork, Innovation and Diversity</title>
		<link>http://eclipsesource.com/blogs/2009/07/28/teamwork-innovation-and-diversity/</link>
		<comments>http://eclipsesource.com/blogs/2009/07/28/teamwork-innovation-and-diversity/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 20:20:32 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=2557</guid>
		<description><![CDATA[I was really impressed with this article from today&#8217;s NY Times: Netflix Competitors Learn the Power of Teamwork I was particularly fond of this quote: The biggest lesson learned, according to members of the two top teams, was the power of collaboration. It was not a single insight, algorithm or concept that allowed both teams <a href="http://eclipsesource.com/blogs/2009/07/28/teamwork-innovation-and-diversity/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I was really impressed with this article from today&#8217;s NY Times:</p>
<p><a href="http://www.nytimes.com/2009/07/28/technology/internet/28netflix.html?src=linkedin">Netflix Competitors Learn the Power of Teamwork</a></p>
<p>I was particularly fond of this quote:</p>
<blockquote><p>The biggest lesson learned, according to members of the two top teams, was the power of collaboration. It was not a single insight, algorithm or concept that allowed both teams to surpass the goal &#8230; Instead, they say, the formula for success was to bring together people with complementary skills and combine different methods of problem-solving</p></blockquote>
<p>I think it provides an excellent example of the benefits received due to open collaboration (with distributed, diverse teams). Furthermore, I think it identifies a powerful and sustainable value creation and commercialization approach for open source projects.</p>
<p>What do you think? I think Eclipse does some of this already, but how can we improve things?</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Teamwork%2C+Innovation+and+Diversity&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2009/07/28/teamwork-innovation-and-diversity/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2009/07/28/teamwork-innovation-and-diversity/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2009/07/28/teamwork-innovation-and-diversity/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2009/07/28/teamwork-innovation-and-diversity/&amp;t=Teamwork%2C+Innovation+and+Diversity" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/open-source/' title='Open Source Tag'>Open Source</a>, <a href='http://eclipsesource.com/blogs/tag/open-source/' title='Open Source Tag'>Open Source</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/07/28/teamwork-innovation-and-diversity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Innovation, Competition and Open Source</title>
		<link>http://eclipsesource.com/blogs/2009/07/13/innovation-competition-and-open-source/</link>
		<comments>http://eclipsesource.com/blogs/2009/07/13/innovation-competition-and-open-source/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 19:20:36 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Open Source]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=2414</guid>
		<description><![CDATA[There is an interesting op-ed in today&#8217;s NY Times from the venerable Robert Cringley: Chrome vs. Bing vs. You and Me Cringley implicitly asserts that neither Google nor Microsoft are going to innovate in the interest of You and Me and sadly, I think this is all-to-often true in &#8216;big-time, big-money&#8217; corporate software. First and <a href="http://eclipsesource.com/blogs/2009/07/13/innovation-competition-and-open-source/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>There is an interesting op-ed in today&#8217;s NY Times from the venerable <a href="http://www.cringely.com">Robert Cringley</a>:</p>
<p><a href="http://www.nytimes.com/2009/07/13/opinion/13cringely.html?_r=1">Chrome vs. Bing vs. You and Me</a></p>
<p>Cringley implicitly asserts that neither Google nor Microsoft are going to innovate in the interest of <strong>You and Me</strong> and sadly, I think this is all-to-often true in &#8216;big-time, big-money&#8217; corporate software.</p>
<p>First and formost, companies are interested to achieve ever higher ROI for their shareholders. This does not necessarily mean that they will build anything of value for <strong>You and Me</strong>.   They may innovate and that&#8217;s terrific when it happens. However, if they can make more money by attacking each other and protecting their existing turf&#8230; I think it&#8217;s pretty clear they will frequently do so.</p>
<p>In my view, this points directly at a long-term sustainable role for open source and startup ecosystems:  <strong>end-user-focused innovation</strong>.  Of course, as <a href="http://eclipse-projects.blogspot.com/">Bjorn Freeman-Benson</a> points out, end-user focus can be a <a href="http://news.cnet.com/8301-13505_3-10283780-16.html?part=rss&amp;subj=news&amp;tag=2547-1_3-0-5">challenge</a> for open source communities.</p>
<p>What&#8217;s your opinion?</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Innovation%2C+Competition+and+Open+Source&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2009/07/13/innovation-competition-and-open-source/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2009/07/13/innovation-competition-and-open-source/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2009/07/13/innovation-competition-and-open-source/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2009/07/13/innovation-competition-and-open-source/&amp;t=Innovation%2C+Competition+and+Open+Source" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/open-source/' title='Open Source Tag'>Open Source</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/open-source/' title='Open Source Tag'>Open Source</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/07/13/innovation-competition-and-open-source/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Early bird defines the worm!</title>
		<link>http://eclipsesource.com/blogs/2009/06/29/all-contributions-are-equal-early-bird-defines-worm-however/</link>
		<comments>http://eclipsesource.com/blogs/2009/06/29/all-contributions-are-equal-early-bird-defines-worm-however/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 21:00:51 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[eclipse]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=2100</guid>
		<description><![CDATA[In his posting All contributions are Equal, some are more equal than others, Robert Konigsberg points out that contributing multiple ways of doing things can easily lead to more user complexity (e.g., by having multiple toString generators). This is true and in my view, a risk for any system that has many strongly-opinioned contributors (pretty <a href="http://eclipsesource.com/blogs/2009/06/29/all-contributions-are-equal-early-bird-defines-worm-however/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>In his posting <a href="http://konigsberg.blogspot.com/2009/06/all-contributions-are-equal-some-more.html">All contributions are Equal, some are more equal than others,</a> Robert Konigsberg points out that contributing multiple ways of doing things can easily lead to more user complexity (e.g., by having multiple toString generators).</p>
<p>This is true and in my view, a risk for any system that has many strongly-opinioned contributors (pretty much any large open source project).</p>
<p>Toward the end of his post, he poses a process-level question about how to avoid the situation of some contributions being more equal than others&#8230;. I think the solution is the current de facto for Eclipse.org projects and that’s the (frequently unstated) reality that <strong>the early bird defines the worm</strong>.</p>
<p>When it comes down to it, those that initiate and then follow through on enhancements, fixes, documentation or other contributions get to choose when it comes to actual design decisions.  Inevitably, there are design choices that some disagree with, even when all discussion is had completely in the <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=26070">open</a>.</p>
<p>I think the truth of the <strong>early bird defines the worm</strong> statement is that we should provide incentive to organizations and individuals in the community to be more aggressive about contributing to existing Eclipse projects. This is because  waiting for someone else to initiate, design, implement, test and document something often doesn’t work very well.</p>
<p>To some, it may seem like Eclipse Project development is effectively subsidized by others, but this is not true.  Even for one&#8217;s own usage of Eclipse, contribution and community involvement with Eclipse.org projects pays dividends. There are many ways to contribute, from <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=26070">contributing discussion/ideas</a>, to <a href="http://www.eclipse.org/projects/listofprojects.php">planning</a>, to <a href="http://wiki.eclipse.org/TweetHub">new example/app code</a>, to helping to maintain <a href="http://www.eclipse.org/orbit/">existing code</a>, to <a href="http://wiki.eclipse.org/">documentation</a>, to <a href="http://wiki.eclipse.org/Build_Workshop_2:_Build_Harder">build support</a>, to <a href="https://bugs.eclipse.org/bugs/">testing and bug reporting</a>, to <a href="https://bugs.eclipse.org/bugs/query.cgi">providing bug fixes</a>, to <a href="http://wiki.eclipse.org/Google_Summer_of_Code_2009">mentoring</a>, and plenty of other kinds of support.</p>
<p>In my view, these are the ways to get your contributions into Eclipse, and influence the community around the software.</p>
<p><a href="http://wiki.eclipse.org/ToString()_generation">Here’s my understanding of where the toString() contribution originated.</a></p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Early+bird+defines+the+worm%21&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2009/06/29/all-contributions-are-equal-early-bird-defines-worm-however/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2009/06/29/all-contributions-are-equal-early-bird-defines-worm-however/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2009/06/29/all-contributions-are-equal-early-bird-defines-worm-however/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2009/06/29/all-contributions-are-equal-early-bird-defines-worm-however/&amp;t=Early+bird+defines+the+worm%21" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/06/29/all-contributions-are-equal-early-bird-defines-worm-however/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>API Layering for Distributed OSGi</title>
		<link>http://eclipsesource.com/blogs/2009/06/25/api-layering-for-distributed-osgi/</link>
		<comments>http://eclipsesource.com/blogs/2009/06/25/api-layering-for-distributed-osgi/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 19:40:44 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[ecf]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[Planet OSGi]]></category>
		<category><![CDATA[rfc119]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=2054</guid>
		<description><![CDATA[We&#8217;ve added to our distributed OSGi documentation (with examples+source) for ECF 3.0/Galileo: Distributed OSGi Services with ECF Getting Started with ECF&#8217;s RFC119 Implementation Getting Started Using the ECF Remote Services API We have API layering so service programmers can choose the simplest appropriate mechanism for their system requirements, while still providing access to &#8216;lower-level&#8217; concerns <a href="http://eclipsesource.com/blogs/2009/06/25/api-layering-for-distributed-osgi/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://wiki.eclipse.org/Distributed_OSGi_Services_with_ECF"><img class="aligncenter size-full wp-image-2063" title="distributedosgi1small" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/06/distributedosgi1small.PNG" alt=" API Layering for Distributed OSGi" width="227" height="127" /></a></p>
<p>We&#8217;ve added to our distributed OSGi documentation (with examples+source) for ECF 3.0/Galileo:</p>
<ul>
<li><a href="http://wiki.eclipse.org/Distributed_OSGi_Services_with_ECF">Distributed OSGi Services with ECF</a></li>
<li><a href="http://wiki.eclipse.org/Getting_Started_with_ECF%27s_RFC119_Implementation">Getting Started with ECF&#8217;s RFC119 Implementation</a></li>
<li><a href="http://wiki.eclipse.org/Getting_Started_with_Using_the_ECF_Remote_Services_API">Getting Started Using the ECF Remote Services API</a></li>
</ul>
<p><a href="http://wiki.eclipse.org/Getting_Started_with_ECF%27s_RFC119_Implementation"></a></p>
<p>We have API layering so service programmers can choose the simplest appropriate mechanism for their system requirements, while still providing access to &#8216;lower-level&#8217; concerns when necessary:</p>
<ul>
<li>failure handling</li>
<li>synchronous vs. asynchronous remote method invocation</li>
<li>serialization and wire protocol</li>
<li>and so on&#8230;</li>
</ul>
<p>If you have any questions or comments, please let us know on the <a href="https://dev.eclipse.org/mailman/listinfo/ecf-dev">ECF mailing list</a>.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=API+Layering+for+Distributed+OSGi&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2009/06/25/api-layering-for-distributed-osgi/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2009/06/25/api-layering-for-distributed-osgi/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2009/06/25/api-layering-for-distributed-osgi/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2009/06/25/api-layering-for-distributed-osgi/&amp;t=API+Layering+for+Distributed+OSGi" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/api/' title='api Tag'>api</a>, <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/equinox/' title='equinox Tag'>equinox</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/rfc119/' title='rfc119 Tag'>rfc119</a>, <a href='http://eclipsesource.com/blogs/tag/api/' title='api Tag'>api</a>, <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/equinox/' title='equinox Tag'>equinox</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/rfc119/' title='rfc119 Tag'>rfc119</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/06/25/api-layering-for-distributed-osgi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Portland Galileo DemoCamp &#8211; ECF slides</title>
		<link>http://eclipsesource.com/blogs/2009/06/19/portland-galileo-democamp-ecf-slides/</link>
		<comments>http://eclipsesource.com/blogs/2009/06/19/portland-galileo-democamp-ecf-slides/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 20:15:15 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[ecf]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[Planet OSGi]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1947</guid>
		<description><![CDATA[As Elias and Darin already blogged, there was a memorable DemoCamp session in Portland Wednesday night.  Thanks to Instantiations for organizing and hosting. The ECF slides for this are here.  Some of them I didn&#8217;t actually have time to show at the DemoCamp, so there&#8217;s a little new information there, even for those that were <a href="http://eclipsesource.com/blogs/2009/06/19/portland-galileo-democamp-ecf-slides/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>As <a href="http://eclipsesource.com/blogs/2009/06/19/portland-galileo-democamp-2009-rap-slides/">Elias</a> and <a href="http://runnerwhocodes.blogspot.com/2009/06/notes-thoughts-from-portland-eclipse.html">Darin</a> already blogged, there was a <a href="http://www.instantiations.com/mktg/events/Demo-Camp-2009/">memorable</a> <a href="http://wiki.eclipse.org/Eclipse_DemoCamps_Galileo_2009/Portland">DemoCamp session in Portland Wednesday night</a>.  Thanks to <a href="http://www.instantiations.com">Instantiations</a> for organizing and hosting.</p>
<p>The <a href="http://www.eclipse.org/ecf">ECF</a> slides for this are <a href="http://wiki.eclipse.org/images/2/25/ECF_Project_3.0_DemoCamp_Portland.pdf">here</a>.  Some of them I didn&#8217;t actually have time to show at the DemoCamp, so there&#8217;s a little new information there, even for those that were present.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Portland+Galileo+DemoCamp+%26%238211%3B+ECF+slides&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2009/06/19/portland-galileo-democamp-ecf-slides/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2009/06/19/portland-galileo-democamp-ecf-slides/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2009/06/19/portland-galileo-democamp-ecf-slides/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2009/06/19/portland-galileo-democamp-ecf-slides/&amp;t=Portland+Galileo+DemoCamp+%26%238211%3B+ECF+slides" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/06/19/portland-galileo-democamp-ecf-slides/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distributed OSGi EventAdmin Service</title>
		<link>http://eclipsesource.com/blogs/2009/06/16/distributed-osgi-eventadmin-service/</link>
		<comments>http://eclipsesource.com/blogs/2009/06/16/distributed-osgi-eventadmin-service/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 23:04:18 +0000</pubDate>
		<dc:creator>Scott Lewis</dc:creator>
				<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[ecf]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[Planet OSGi]]></category>
		<category><![CDATA[rfc119]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1844</guid>
		<description><![CDATA[For those interested, there&#8217;s a new Distributed OSGi EventAdmin Service remote services example now available. What does this mean? Well, you can now create distributed implementations of OSGi services using JMS or other messaging frameworks for distributing messages to other OSGi frameworks. This is all possible because of ECF&#8217;s provider architecture that allows the creation <a href="http://eclipsesource.com/blogs/2009/06/16/distributed-osgi-eventadmin-service/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>For those interested, there&#8217;s a new <a href="http://wiki.eclipse.org/Distributed_EventAdmin_Service">Distributed OSGi EventAdmin Service</a> remote services example now available.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2009/06/Distributedeventadmin.png"><img src="http://eclipsesource.com/blogs/wp-content/uploads/2009/06/Distributedeventadmin.png" alt="Distributedeventadmin Distributed OSGi EventAdmin Service" title="Distributed OSGi EventAdmin" width="619" height="462" class="alignnone size-full wp-image-1858" /></a></p>
<p>What does this mean? Well, you can now create distributed implementations of OSGi services using JMS or other messaging frameworks for distributing messages to other OSGi frameworks. This is all possible because of ECF&#8217;s provider architecture that allows the creation of a distributed EventAdmin implementation that can use a variety of wire protocols (e.g., XMPP, ActiveMQ).</p>
<p>Please let email the <a href="https://dev.eclipse.org/mailman/listinfo/ecf-dev">ecf-dev</a> list if you have any questions!</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Distributed+OSGi+EventAdmin+Service&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2009/06/16/distributed-osgi-eventadmin-service/" target="_blank" title="Share on Twitter" style="margin-right: 5px;"><img title="Twitter" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/twitter.png" alt="Twitter"/></a><a href="https://plus.google.com/share?url=http://eclipsesource.com/blogs/2009/06/16/distributed-osgi-eventadmin-service/" target="_blank" title="+1" style="margin-right: 5px;"><img title="Google+" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/google_plus.png" alt="Google+"/></a><a href="http://www.linkedin.com/cws/share?url=http://eclipsesource.com/blogs/2009/06/16/distributed-osgi-eventadmin-service/" target="_blank" title="Share on LinkedIn" style="margin-right: 5px;"><img title="LinkedIn" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/linkedin.png" alt="LinkedIn"/></a><a href="https://www.facebook.com/sharer/sharer.php?u=http://eclipsesource.com/blogs/2009/06/16/distributed-osgi-eventadmin-service/&amp;t=Distributed+OSGi+EventAdmin+Service" target="_blank" title="Facebook" style="margin-right: 5px;"><img title="Facebook" src="http://eclipsesource.com/blogs/wp-content/plugins/custom-about-author/images/social_media/facebook.png" alt="Facebook"/></a></div><br/>Comments are off for this post.. Tagged with <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/equinox/' title='equinox Tag'>equinox</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/rfc119/' title='rfc119 Tag'>rfc119</a>, <a href='http://eclipsesource.com/blogs/tag/ecf/' title='ecf Tag'>ecf</a>, <a href='http://eclipsesource.com/blogs/tag/equinox/' title='equinox Tag'>equinox</a>, <a href='http://eclipsesource.com/blogs/tag/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/rfc119/' title='rfc119 Tag'>rfc119</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/06/16/distributed-osgi-eventadmin-service/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
