<?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; pde</title>
	<atom:link href="http://eclipsesource.com/blogs/tag/pde/feed/" rel="self" type="application/rss+xml" />
	<link>http://eclipsesource.com/blogs</link>
	<description>Eclipse Equinox OSGi</description>
	<lastBuildDate>Fri, 03 Feb 2012 17:54:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
		<item>
		<title>Launch an OSGi app and automatically kill its running instance</title>
		<link>http://eclipsesource.com/blogs/2011/05/04/launch-an-osgi-app-and-automatically-kill-its-running-instance/</link>
		<comments>http://eclipsesource.com/blogs/2011/05/04/launch-an-osgi-app-and-automatically-kill-its-running-instance/#comments</comments>
		<pubDate>Wed, 04 May 2011 14:42:11 +0000</pubDate>
		<dc:creator>Holger Staudacher</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[felix]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[httpservice]]></category>
		<category><![CDATA[pde]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[rtp]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=5797</guid>
		<description><![CDATA[If you use Eclipse to develop OSGi based applications you may use the OSGi Launcher provided by the PDE Tooling. It&#8217;s cool tooling because it gives you full control over the OSGi instance to be launched.  You can choose the OSGi framework (e.g. Equinox or Felix), select the bundles to install and much more. But [...]]]></description>
			<content:encoded><![CDATA[<p>If you use Eclipse to develop <a href="http://www.osgi.org/">OSGi</a> based applications you may use the OSGi Launcher provided by the <a href="http://eclipse.org/pde/">PDE Tooling</a>. It&#8217;s cool tooling because it gives you full control over the OSGi instance to be launched.  You can choose the OSGi framework (e.g. <a href="http://eclipse.org/equinox/">Equinox</a> or <a href="http://felix.apache.org/site/index.html">Felix</a>), select the bundles to install and much more.</p>
<p>But this launcher has one drawback that hurts every time I run across it. It appears when an OSGi application uses the <a href="http://www.osgi.org/javadoc/r4v42/org/osgi/service/http/HttpService.html">OSGi HttpService</a>. When you used this service you may have configured a port for it via the property &#8220;org.osgi.service.http.port&#8221; VM Argument.  I use this configuration all the time.</p>
<p>When I launch the application everything works fine the first time. But, during development I often come to the point where I need to relaunch the application. When I forget to kill the previous running instance I get a java.net.BindException because the address is already in use. So, to fix this I have to kill both instances and launch it again. This happens to me a lot just because I forget to terminate the previous instance. Of course this isn&#8217;t a bug because it&#8217;s often useful to launch a second instance of the same configuration. But, not when it comes to developing with the HttpService.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2011/05/bindException.png"><img class="aligncenter size-full wp-image-5800" title="bindException" src="http://eclipsesource.com/blogs/wp-content/uploads/2011/05/bindException.png" alt="bindException Launch an OSGi app and automatically kill its running instance" width="520" height="263" /></a></p>
<p>There is a fix now (though not necessarily for my forgetfulness <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Launch an OSGi app and automatically kill its running instance" class='wp-smiley' title="Launch an OSGi app and automatically kill its running instance" /> ).  Luckily we live in a modular world in Eclipse. As a result, I was able to develop a separate bundle called the &#8220;OSGi Eliminator&#8221; (what a descriptive name <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Launch an OSGi app and automatically kill its running instance" class='wp-smiley' title="Launch an OSGi app and automatically kill its running instance" /> ). The bundle contributes the functionality to automatically terminate a running OSGi Instance when you try to launch the same instance a second time. This functionality already existed in the RAP launcher created by <a href="https://www.xing.com/profile/Ruediger_Herrmann9">Rüdiger Hermann</a>. All I did was to refactor the functionality out to make it run in a separate bundle and contribute to the OSGi Launcher instead of the RAP Launcher. This solves an annoying problem for me &#8211; maybe for you as well?</p>
<p>You can find this bundle on GitHub. I also created a <a href="http://hstaudacher.github.com/OSGi-launcher-enhancements/">p2 repository</a> that lets you install the OSGi Eliminator directly into Eclipse.</p>
<ul>
<li><a href="http://hstaudacher.github.com/OSGi-launcher-enhancements/">p2 repository</a>: http://hstaudacher.github.com/OSGi-launcher-enhancements/</li>
<li>git repository on GitHub: <a href="https://github.com/hstaudacher/OSGi-launcher-enhancements">https://github.com/hstaudacher/OSGi-launcher-enhancements</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2011/05/04/launch-an-osgi-app-and-automatically-kill-its-running-instance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Equinox/RAP WAR Products has moved. Hello Eclipse Libra&#8230;</title>
		<link>http://eclipsesource.com/blogs/2011/02/02/equinoxrap-war-products-has-moved-hello-eclipse-libra/</link>
		<comments>http://eclipsesource.com/blogs/2011/02/02/equinoxrap-war-products-has-moved-hello-eclipse-libra/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 11:56:05 +0000</pubDate>
		<dc:creator>Holger Staudacher</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[gsoc]]></category>
		<category><![CDATA[indigo]]></category>
		<category><![CDATA[libra]]></category>
		<category><![CDATA[pde]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[server-side]]></category>
		<category><![CDATA[wtp]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=5282</guid>
		<description><![CDATA[A while ago I introduced you to my Google Summer of Code 2010 project, the WAR Products. I really appreciate your participation with feedback and bugs. It showed me that there is a real need for this tooling, so I&#8217;m proud to announce that the WAR Products development will not continue in the RAP Project. You may think, [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago I introduced you to my Google Summer of Code 2010 project, <a href="http://wiki.eclipse.org/RAP/Equinox_WAR_products">the WAR Products</a>. I really appreciate your participation with feedback and bugs. It showed me that there is a real need for this tooling, so I&#8217;m proud to announce that the WAR Products development will not continue in the RAP Project.</p>
<p>You may think, &#8220;WTF? Odd thing to be proud of.&#8221; But, it really does make sense <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Equinox/RAP WAR Products has moved. Hello Eclipse Libra..." class='wp-smiley' title="Equinox/RAP WAR Products has moved. Hello Eclipse Libra..." /> . The WAR Products were never targeted to be part of RAP, primarily because the tooling is not RAP specific. It eases the deployment of Server-Side Equinox applications. And this kind of application does not necessarily have to be a RAP application.</p>
<p>Three months ago a new Eclipse project was announced. It&#8217;s called <a href="http://www.eclipse.org/libra/">Libra</a> or formerly &#8220;OSGi Enterprise Tools&#8221; (it had to be renamed &#8216;Libra&#8217; because of legal issues). I don&#8217;t want to repeat the project goal here because Kaloyan (the Libra project lead) does a much better job with this than I could. You can read about the project in <a href="http://www.eclipse.org/proposals/libra/">this proposal</a>. Libra passed the project creation review a while ago and provisioning by the eclipse.org webmasters is ongoing. So, why am I talking about Libra here?</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2011/02/wtp_logo_2010.png"><img class="alignleft size-full wp-image-5294" title="wtp_logo_2010" src="http://eclipsesource.com/blogs/wp-content/uploads/2011/02/wtp_logo_2010.png" alt="wtp logo 2010 Equinox/RAP WAR Products has moved. Hello Eclipse Libra..." width="175" height="174" /></a>There is a simple reason.  Because of one sentence from Kaloyan about Libra, I thought it would be the perfect project to contribute the WAR Products to.  &#8220;Libra tries to close the gap between PDE and WTP&#8221;.  This maps exactly to the WAR Products as the tooling tries to ease the deployment of Equinox-based applications on Servlet-Containers or JavaEE Application Servers.</p>
<p>Additionally there are plans to extend the tooling with a WTP integration to enhance the creation of a WAR Archive with automated deployment functionality, without adding explicit dependencies to WTP. And where can this development be done better than in between PDE and WTP?</p>
<p>Yesterday I committed the WAR Products to the <a href="http://www.eclipse.org/libra/">Libra</a> git repository after it passed the IP process successfully. I also set up a temporary <a href="http://download.eclipsesource.com/~hstaudacher/warproducts/3.7/">p2 repository</a> from which you can install the tooling (Eclipse 3.7 M4+ required). Of course we&#8217;re trying to push Libra in the direction of Indigo. If this works you will soon be able to install the WAR Products from the Indigo Repository. Please keep in mind that the bundle ID&#8217;s have changed during the move. So, if you had installed the sneak-preview from <a href="http://eclipsesource.com/blogs/2010/08/17/equinoxrap-war-deployment-an-end-to-the-pain/">this blog post</a>, please uninstall the tooling before installing the Libra version. It&#8217;s really worth getting the new version because of many <a href="https://bugs.eclipse.org/bugs/buglist.cgi?query_format=advanced;short_desc=[WAR%20Product;bug_status=RESOLVED;short_desc_type=allwordssubstr;resolution=FIXED;classification=RT;product=RAP">bug fixes</a> and enhancements which are included. Please feel free to file bugs, but this time against Libra <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Equinox/RAP WAR Products has moved. Hello Eclipse Libra..." class='wp-smiley' title="Equinox/RAP WAR Products has moved. Hello Eclipse Libra..." /> </p>
<p><strong>Please note:</strong> To use the WAR Product&#8217;s full functionality you need to add the <a href="http://download.eclipse.org/equinox/">Equinox Server-Side SDK</a> to your target or set <a href="http://eclipse.org/rap/downloads/">RAP 1.4 M5</a> as your target environment. There is no longer a &#8220;requiredBundles.zip&#8221; that you need. Use this temporary p2 repository to install the WAR Products: <em>http://download.eclipsesource.com/~hstaudacher/warproducts/3.7/</em></p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2011/02/02/equinoxrap-war-products-has-moved-hello-eclipse-libra/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Equinox/RAP WAR deployment: an end to the pain</title>
		<link>http://eclipsesource.com/blogs/2010/08/17/equinoxrap-war-deployment-an-end-to-the-pain/</link>
		<comments>http://eclipsesource.com/blogs/2010/08/17/equinoxrap-war-deployment-an-end-to-the-pain/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 07:20:08 +0000</pubDate>
		<dc:creator>Holger Staudacher</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[indigo]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[pde]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[soc]]></category>
		<category><![CDATA[war deployment]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=4581</guid>
		<description><![CDATA[Please note: This post is outdated. Please read this post and do not follow the install instructions in this one. A few weeks ago I presented you my GSoC 2010 project. The idea was to make Equinox/RAP WAR deployment easier. And yes, it was a real pain to create .war files for an Equinox/RAP application. [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>Please note:</strong> This post is outdated. Please read <a href="http://eclipsesource.com/blogs/2011/02/02/equinoxrap-war-products-has-moved-hello-eclipse-libra/">this post</a> and <strong>do not</strong> follow the install instructions in this one.</p></blockquote>
<p>A few weeks ago I presented you <a title="WAR Products Wiki page" href="http://wiki.eclipse.org/RAP/Equinox_WAR_products">my GSoC 2010 project</a>. The idea was to make Equinox/RAP WAR deployment easier. And yes, it was a real pain to create .war files for an Equinox/RAP application. About 215 deployment related threads on the RAP newsgroup speak for themselves. But the pain is over now, and I think I can say,  &#8220;Mission accomplished&#8221;.</p>
<p>I want to introduce you to a new concept called WAR Products. They are similar to <a title="Eclipse Products" href="http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.pde.doc.user/concepts/product.htm">Eclipse Products</a> but much more lightweight. All you have to do to export a RAP application is to create a .warproduct based on a working launch configuration and press &#8216;export&#8217;. The exported .war file is ready to deploy. There is a function included that validates your .war file content before you&#8217;ve exported it. If you don&#8217;t believe me,  watch the <a title="WAR Products screencast" href="http://vimeo.com/13931789">screencast below</a> and see for yourself.</p>
<p style="text-align: center;">
<p>You can use the tooling right now, but please keep in mind that we are still polishing. The final goal is to contribute it back to PDE, but there are still a <a title="Open WAR Product Bugs" href="https://bugs.eclipse.org/bugs/buglist.cgi?short_desc_type=allwordssubstr&amp;short_desc=%5BWAR+Product%5D&amp;product=RAP&amp;long_desc_type=allwordssubstr&amp;long_desc=&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;order=Importance">few things to do</a> before we make the contribution.  One of those items is to get your initial feedback so when you use the WAR Products tooling, please be sure submit your <a href="https://bugs.eclipse.org/bugs/enter_bug.cgi?product=RAP&amp;component=Help&amp;">feature requests or file bugs</a> and help us to continue to improve the tooling.</p>
<p>Here is what you need to do to use the WAR Products tooling:</p>
<ol>
<li>Install the tooling from this repository into your IDE: <a href="http://download.eclipsesource.com/~hstaudacher/warproducts/3.7/">http://download.eclipsesource.com/~hstaudacher/warproducts/3.7</a></li>
<li>Set up your target. You need to add RAP 1.4 M5 or the Server-Side Equinox SDK.</li>
</ol>
<p>Again, comments, bugs and feature requests are appreciated!</p>
<p>At this point I want to thank some people. First of all, Rüdiger Herrmann for great mentoring and the whole RAP team for all the nice evenings in the beer garden. Not to forget Simon Kaegi, Scott Lewis and Chris Aniszczyk and the rest of the Equinox and PDE teams for tuning up the Product concept. Your changes made things much easier.</p>
<p>And, I hope that you will find WAR deployment and creating WAR Products not just easier, but completely pain free!</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2010/08/17/equinoxrap-war-deployment-an-end-to-the-pain/feed/</wfw:commentRss>
		<slash:comments>48</slash:comments>
		</item>
		<item>
		<title>Revamping Eclipse Examples?</title>
		<link>http://eclipsesource.com/blogs/2010/04/14/revamping-eclipse-examples/</link>
		<comments>http://eclipsesource.com/blogs/2010/04/14/revamping-eclipse-examples/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 09:02:25 +0000</pubDate>
		<dc:creator>Benjamin Muskalla</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[consumers]]></category>
		<category><![CDATA[eclipseRT]]></category>
		<category><![CDATA[equinox]]></category>
		<category><![CDATA[examples]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[p2]]></category>
		<category><![CDATA[pde]]></category>
		<category><![CDATA[rap]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3964</guid>
		<description><![CDATA[Even though I&#8217;ve been involved in the Eclipse community for around 5 years, I&#8217;m still amazed by the projects that are hosted under the Eclipse umbrella. As an &#8220;insider&#8221;, I have a pretty good overview of many projects and at least a rough picture of all the other cool stuff. While I love working with [...]]]></description>
			<content:encoded><![CDATA[<p>Even though I&#8217;ve been involved in the Eclipse community for around 5 years, I&#8217;m still amazed by the projects that are hosted under the Eclipse umbrella. As an &#8220;insider&#8221;, I have a pretty good overview of many projects and at least a rough picture of all the other cool stuff. While I love working with <a href="http://eclipse.org/rt/">EclipseRT</a> technologies like Equinox, RAP, EclipseLink, ECF or &lt;insert your project here&gt;, I always find myself in the same situation.  This stuff is awesome but do users really get the point of what&#8217;s possible? Learning a new technology is always hard, but if you want to develop enterprise-ready, scalable and vibrant platforms using Eclipse components, there are so many obstacles to overcome. You need to have at least a clue about OSGi/Equinox, Extensions and their corresponding Extension points (for each for your consumed modules) and many other things. I don&#8217;t want to say that Eclipse is too complicated (which is a topic for another post anyway), but what I would really like to see is a better way to get our future consumers up to speed. As <a href="http://en.wikipedia.org/wiki/Esther_Dyson">Esther Dyson</a> once said:</p>
<blockquote><p><em>A worker&#8217;s paradise is a consumer&#8217;s hell.</em></p></blockquote>
<p>With the <a href="http://www.eclipse.org/examples">Eclipse Examples</a> project we wanted to provide a few exemplary projects to show how to use different projects. In theory a nice idea, but practically I don&#8217;t see that this effort was very successful. Wayne and me discussed some ideas back in <a href="http://dev.eclipse.org/mhonarc/lists/examples-dev/msg00010.html">2008</a> but without a concrete outcome.  Thinking about this topic after EclipseCon, my current thought was to provide easy ways for our consumers to try out the bits and pieces of all the projects. What I constantly run into though, is that you need to do so many things  before you can get started, like setting up a target platform, making your examples depend on the right bundles, using the right extension points/services/etc, creating launch configurations. Many projects already helped themselves by providing examples using PDE <a href="http://help.eclipse.org/galileo/topic/org.eclipse.pde.doc.user/reference/extension-points/org_eclipse_pde_ui_templates.html">templates</a>. That&#8217;s the way I&#8217;d like to tell newcomers how to get started and would push this even a little further &#8211; the idea is to provide some infrastructure in the Examples project to help others setting up their examples. The projects just provide example bundles, maybe a target definition, a launch configuration and a cheatsheet or something. In the end, the user should be able to try out another Eclipse technology within 2 clicks: New Example &gt; That technology, run!</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2010/04/examples_wizard.png"><img class="alignnone size-full wp-image-3966" title="examples_wizard" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/04/examples_wizard.png" alt="examples wizard Revamping Eclipse Examples?" width="525" height="500" /></a></p>
<p>Basically PDE already provides many of these things but it&#8217;s not yet at the point I would love to see it. It&#8217;s still too complex for consumers to create target platforms (I know what I&#8217;m talking about), create their launch configs and get started with the examples. While there are still <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=276000">some</a> <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=169340">hurdles</a> to jump, I think our users and consumers would thank us for getting them up to speed in seconds. It should even be interesting for non-OSGi related examples as other projects thought about <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=238144">something like this</a> for years. I don&#8217;t see a chance to have this ready for Helios, but I&#8217;m pretty confident that we could do something like this in the timeframe for the <a href="http://eclipsesource.com/blogs/2010/04/08/helios-1-name-vote-for-your-favorite/">I&#8230;</a> release train. Would other projects be interested in such an approach to distribute their examples? Please leave a comment on <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=309081">this bug</a> if you do so to collect ideas, wishes and requirements.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2010/04/14/revamping-eclipse-examples/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>PDE Goodness: Project and Target Platform Templates</title>
		<link>http://eclipsesource.com/blogs/2009/12/12/pde-goodness-project-and-target-platform-templates/</link>
		<comments>http://eclipsesource.com/blogs/2009/12/12/pde-goodness-project-and-target-platform-templates/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 01:22:44 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[syndicate]]></category>
		<category><![CDATA[pde]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3617</guid>
		<description><![CDATA[A nice thing about Eclipse PDE is that it has mechanisms to make it very easy for developers to get started consuming your frameworks. Here are two of them. Target Platform Templates For runtime projects, such as Riena, RAP and Equinox, the first hurdle a developer faces is to set-up the appropriate target platform. A target [...]]]></description>
			<content:encoded><![CDATA[<p>A nice thing about Eclipse PDE is that it has mechanisms to make it very easy for developers to get started consuming your frameworks. Here are two of them.</p>
<p><strong>Target Platform Templates</strong></p>
<p>For runtime projects, such as <a href="http://www.eclipse.org/riena">Riena</a>, RAP and Equinox, the first hurdle a developer faces is to set-up the appropriate target platform. A <strong>target platform </strong>is the collection of bundles that are available during compilation. Obviously if you ship runtime components they must end up in there to be available for compilation.</p>
<p>You can make this much easier for others by contributing a target platform template to the &#8220;New Target Definition&#8221; wizard. A developer can then select an entry in the &#8220;Template&#8221; drop-down and will instantly receive a pre-configured target definition. Much easier and less error-prone that recreating the target definition manually from step-by-step instructions.</p>
<p>Since the target definition&#8217;s payload can be provisioned over http, the developer only has to click on &#8220;Set as Target Platform&#8221; and is done. For details refer to the <a href="http://help.eclipse.org/galileo/topic/org.eclipse.pde.doc.user/reference/extension-points/org_eclipse_pde_core_targets.html">org.eclipse.pde.core.targets extension point.</a></p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2009/12/pde_new_target.png"><img class="aligncenter size-full wp-image-3620" title="pde_new_target" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/12/pde_new_target.png" alt="pde new target PDE Goodness: Project and Target Platform Templates" width="525" height="696" /></a><a href="http://eclipsesource.com/blogs/wp-content/uploads/2009/12/target.png"><img class="aligncenter size-full wp-image-3621" title="target" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/12/target.png" alt="target PDE Goodness: Project and Target Platform Templates" width="703" height="375" /></a></p>
<p><strong>Project Templates</strong></p>
<p>Another way to help developers with their first steps is to provide a project template. This hooks into the last page of &#8220;New Plug-in Project&#8221; Wizard and pre-populates a new project with source code, binary content and appropriate plugin.xml and MANIFEST.MF files.</p>
<p>The templating mechanism has a lot of depth as you can manipulate data-models to dynamically craft the MANIFEST.MF and plugin.xml files. You can also define placeholder variables, such as $pluginId$ and use them in source templates. There are mechanisms to tie these variables to UI elements in the wizard pages. The developer documentation on the matter is somewhat superficial. At the moment your best bet is to check out and study the <strong>org.eclipse.pde.ui.templates</strong> project from the Eclipse CVS (/cvsroot/eclipse/pde/ui/org.eclipse.pde.ui.templates). It contains the templates that ship with the IDE and therefore plenty of examples. Complement this by reading the specification of the <a href="http://help.eclipse.org/galileo/topic/org.eclipse.pde.doc.user/reference/extension-points/org_eclipse_pde_ui_pluginContent.html">org.eclipse.pde.ui.pluginContent</a> extension point and this <a href="http://www.ibm.com/developerworks/opensource/library/os-eclipse-plugin-templates/index.html">introductory article</a> on developer works.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2009/12/pde_templates.png"><img class="aligncenter size-full wp-image-3623" title="pde_templates" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/12/pde_templates.png" alt="pde templates PDE Goodness: Project and Target Platform Templates" width="525" height="608" /></a><a href="http://eclipsesource.com/blogs/wp-content/uploads/2009/12/riena_mail.png"><img class="aligncenter size-full wp-image-3624" title="riena_mail" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/12/riena_mail.png" alt="riena mail PDE Goodness: Project and Target Platform Templates" width="800" height="600" /></a></p>
<p><span style="color: #000000; background-image: initial; background-repeat: initial; background-attachment: initial; -webkit-background-clip: initial; -webkit-background-origin: initial; background-color: #b5d5ff; background-position: initial initial;"><span><a style="text-decoration: none;" href="http://eclipsesource.com/blogs/wp-content/uploads/2009/12/target.png"><br />
</a></span></span></p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/12/12/pde-goodness-project-and-target-platform-templates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compile errors&#8230; I should have set my EE</title>
		<link>http://eclipsesource.com/blogs/2009/11/18/compile-errors-ee/</link>
		<comments>http://eclipsesource.com/blogs/2009/11/18/compile-errors-ee/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 18:40:53 +0000</pubDate>
		<dc:creator>Ian Bull</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[pde]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=3414</guid>
		<description><![CDATA[Lately I have been working on (and committing) a repository analyzer tool for p2.  It is meant to help you validate your repository against known problems and common mistakes (missing version numbers, two IUs with the same ID/Version, etc&#8230;).  After cleaning up the code I finally committed it.  Within a few minutes of committing it, [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I have been working on (and committing) a repository analyzer tool for p2.  It is meant to help you validate your repository against known problems and common mistakes (missing version numbers, two IUs with the same ID/Version, etc&#8230;).  After cleaning up the code I finally committed it.  Within a few minutes of committing it, <a href="http://aniefer.blogspot.com/">Andrew</a> starting pinging me to let me know I introduced a compile error. (Thanks Andrew).</p>
<p>The offending lines where here:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-3415" title="ee1" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/11/ee1.png" alt="ee1 Compile errors... I should have set my EE" width="694" height="105" /></p>
<p>and more precisely:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-3416" title="ee2" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/11/ee2.png" alt="ee2 Compile errors... I should have set my EE" width="694" height="105" /></p>
<p>You see, while this may seem fine to all you Java 1.6 developers out there, p2 is set to run on CDC-1.1/Foundation-1.1 and JSE-1.4.  I know in the Java SE space, 1.4 is long past <strong>end of life,</strong> but in the embedded space, it is still very common.  (Remember, these embedded devices require much smaller VMs, otherwise we complain that our small devices are two slow /sluggish / expensive, etc&#8230;) &#8212; and p2 is a provisioning platform that operates just fine on embedded devices.</p>
<p>With Eclipse, you can set your <a href="http://wiki.eclipse.org/index.php/Execution_Environments">Execution Environment </a>(EE) and point to a variety of JDKs.  This allows you to &#8220;single source&#8221; your code so the same code can run on a server with Java 1.6 installed and a small device with a Foundation VM.  However, I don&#8217;t have a Foundation VM <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_sad.gif' alt="icon sad Compile errors... I should have set my EE" class='wp-smiley' title="Compile errors... I should have set my EE" /> .</p>
<p>Lucky for us, an EE description for several JDKs is available in the Eclipse CVS repository:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-3417" title="ee3" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/11/ee3.png" alt="ee3 Compile errors... I should have set my EE" width="416" height="543" /></p>
<p>Once you checkout the project, you can add this to your list of known JREs</p>
<p style="text-align: left;"><img class="aligncenter size-full wp-image-3418" title="ee4" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/11/ee4.png" alt="ee4 Compile errors... I should have set my EE" width="566" height="694" /><br />
Now I get all the Java tooling (content assist, compile errors, etc&#8230;) for the Foundation 1.1 VMs.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-3419" title="ee5" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/11/ee5.png" alt="ee5 Compile errors... I should have set my EE" width="717" height="101" /></p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/11/18/compile-errors-ee/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Picasso paints the web with RAP</title>
		<link>http://eclipsesource.com/blogs/2009/09/11/picasso-paints-the-web/</link>
		<comments>http://eclipsesource.com/blogs/2009/09/11/picasso-paints-the-web/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 12:30:21 +0000</pubDate>
		<dc:creator>Benjamin Muskalla</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[pde]]></category>
		<category><![CDATA[picasso]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[Single Sourcing]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[ui]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=311</guid>
		<description><![CDATA[Whenever I&#8217;m working on UI stuff, something always goes terribly wrong Sometimes it&#8217;s only a margin or padding, other times it a composite that crosses my path. I was pretty happy that Chris Aniszczyk and Simon Archer hacked together Picasso, which helps you to identify some of these layout issues. As you may know, most [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever I&#8217;m working on UI stuff, something always goes terribly wrong <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Picasso paints the web with RAP" class='wp-smiley' title="Picasso paints the web with RAP" />  Sometimes it&#8217;s only a margin or padding, other times it a composite that crosses my path. I was pretty happy that Chris Aniszczyk and Simon Archer hacked together <a href="http://aniszczyk.org/2008/05/04/painting-the-workbench/">Picasso</a>, which helps you to identify some of these layout issues. As you may know, most of the time I work on the <a href="http://www.eclipse.org/rap">Rich Ajax Platform</a> (RAP) and come across the same issues. As <a href="http://wiki.eclipse.org/PDE/Incubator/Picasso">Picasso</a> was originally intended to work for RCP, it&#8217;s not a long way to get it working for RAP.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2009/02/picasso_on_rap.png"><img class="alignnone size-medium wp-image-312" title="Picasso on RAP" src="http://eclipsesource.com/blogs/wp-content/uploads/2009/02/picasso_on_rap-300x225.png" alt="picasso on rap 300x225 Picasso paints the web with RAP" width="300" height="225" /></a></p>
<p>In case you&#8217;re struggling with these issues too &#8211;  and working on RAP applications, please add your vote to <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=267975">bug 267975</a> so we can use Picasso on both runtimes.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/09/11/picasso-paints-the-web/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eclipse, OSGi and PAX Runner</title>
		<link>http://eclipsesource.com/blogs/2009/08/14/eclipse-osgi-and-pax-runner/</link>
		<comments>http://eclipsesource.com/blogs/2009/08/14/eclipse-osgi-and-pax-runner/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 00:50:51 +0000</pubDate>
		<dc:creator>Chris Aniszczyk</dc:creator>
				<category><![CDATA[syndicate]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[pde]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=2677</guid>
		<description><![CDATA[If you&#8217;re using Eclipse for OSGi development, there&#8217;s a neat utility that you can use to help you run your OSGi application on a variety of frameworks. PAX Runner uses the PDE org.eclipse.pde.ui.osgiFrameworks extension point to supply frameworks. To install PAX Runner, simply add their repository via software installation wizard. There&#8217;s an important thing to [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re using Eclipse for OSGi development, there&#8217;s a neat utility that you can use to help you run your OSGi application on a variety of frameworks. <a href="http://paxrunner.ops4j.org/space/Pax+Runner">PAX Runner</a> uses the <a href="http://www.eclipse.org/pde">PDE</a> <code>org.eclipse.pde.ui.osgiFrameworks</code> extension point to supply frameworks.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/paxrunner.png"><img src="http://eclipsesource.com/blogs/wp-content/uploads/2009/08/paxrunner-300x170.png" alt="paxrunner 300x170 Eclipse, OSGi and PAX Runner" title="PAX Runner" width="300" height="170" class="alignnone size-medium wp-image-2678" /></a></p>
<p>To install PAX Runner, simply add their <a href="http://www.ops4j.org/pax/eclipse/update/">repository</a> via software installation wizard.</p>
<p>There&#8217;s an important thing to note about PAX Runner. When you&#8217;re self-hosting with a PAX Runner based framework, your bundles <strong>will be deployed before executed</strong>. This may cause launching to take a bit longer than you&#8217;re used to depending on the size of your application. This is different from the traditional PDE workflow where we don&#8217;t have a deployment step when self hosting because Equinox provides us with some great hooks to skip that process. If you&#8217;re curious how this works under the covers, PDE instructs Equinox where to look for classes for the various bundles in your workspace (usually in the <code>bin/</code> folder). This is known as the <em>development time classpath</em> and as far as I know, Equinox is the only framework to support this type of classpath (I filed a <a href="http://issues.apache.org/jira/browse/FELIX-136">bug</a> against Felix awhile ago).</p>
<p>On the whole, I recommend you give PAX Runner a try.</p>
<p>Also, if you have any ideas on how PDE can better support other frameworks, come <a href="http://www.eclipse.org/pde/support/">talk to us</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/08/14/eclipse-osgi-and-pax-runner/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nomenclature and the Evolution of Eclipse</title>
		<link>http://eclipsesource.com/blogs/2009/07/29/nomenclature-and-the-evolution-of-eclipse/</link>
		<comments>http://eclipsesource.com/blogs/2009/07/29/nomenclature-and-the-evolution-of-eclipse/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 14:52:04 +0000</pubDate>
		<dc:creator>Chris Aniszczyk</dc:creator>
				<category><![CDATA[syndicate]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[pde]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=2567</guid>
		<description><![CDATA[One of the great things about Eclipse is that it evolves, it&#8217;s not static. We reinvent ourselves. From IDE to RCP to Runtime. From Platform to e4 (e.g., the future). When we evolve, it gives us an opportunity to think about our lexicon. I recently sent an email to the Eclipse PMC entertaining the idea [...]]]></description>
			<content:encoded><![CDATA[<p>One of the great things about Eclipse is that it evolves, it&#8217;s not static. We reinvent ourselves.</p>
<p>From IDE to <a href="http://www.eclipse.org/rcp">RCP</a> to <a href="http://www.eclipse.org/rt">Runtime</a>. From <a href="http://www.eclipse.org/platform/">Platform</a> to <a href="http://wiki.eclipse.org/E4">e4</a> (e.g., <a href="http://dev.eclipse.org/blogs/mcqjustmcq/2009/07/25/eclipse-has-a-future/">the future</a>).</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2009/07/evolution.jpg"><img src="http://eclipsesource.com/blogs/wp-content/uploads/2009/07/evolution-300x223.jpg" alt="evolution 300x223 Nomenclature and the Evolution of Eclipse" title="Evolution" width="300" height="223" class="alignnone size-medium wp-image-2569" /></a></p>
<p>When we evolve, it gives us an opportunity to think about our lexicon. </p>
<p>I recently sent an <a href="http://dev.eclipse.org/mhonarc/lists/eclipse-pmc/msg00775.html">email</a> to the <a href="http://www.eclipse.org/eclipse/team-leaders.php">Eclipse PMC</a> entertaining the idea of deprecating our usage of the word &#8216;plug-in&#8217;:</p>
<blockquote><p>On last week&#8217;s Eclipse Architecture team call, I brought up the &#8216;plug-in versus bundle&#8217; naming issue. This naming issue also came up at this week&#8217;s PDE team call where we had consensus that deprecating the word plug-in would be a good idea. Furthermore, the new components in PDE (e.g., API Tools) have gone out of their way to not call things plug-ins. I also know the Equinox p2 team struggles with naming problems (e.g., calling things software).</p>
<p>&#8230;</p>
<p>My proposal is that we adopt &#8220;bundle&#8221; and deprecate &#8220;plug-in&#8221; as the official module term.</p></blockquote>
<p>If you&#8217;re interested in this, please comment on this <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=149113">bug</a>. There&#8217;s also another <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=277947">bug</a> open that wants to rename RCP if you&#8217;re interested in that too.</p>
<p>I would like to hear from the Eclipse and OSGi communities on what they think. Good or bad idea?</p>
<p>Would you welcome the change?</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/07/29/nomenclature-and-the-evolution-of-eclipse/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>PDE Build Compile Errors</title>
		<link>http://eclipsesource.com/blogs/2009/07/10/pde-build-compile-error-tip/</link>
		<comments>http://eclipsesource.com/blogs/2009/07/10/pde-build-compile-error-tip/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 05:01:46 +0000</pubDate>
		<dc:creator>Ian Bull</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[pde]]></category>
		<category><![CDATA[pde build]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=2368</guid>
		<description><![CDATA[Yesterday I spent the day working on examples of how PDE Build can be used to build OSGi bundles.  I was setting up builders, copying files from my workspace to my builder, and running builds.   Early in the morning I was faced with the follow: The method disposeImageButtonImages(ImageButton) from the type ScaledWidgetFactory refers to [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I spent the day working on examples of how PDE Build can be used to build OSGi bundles.  I was setting up builders, copying files from my workspace to my builder, and running builds.   Early in the morning I was faced with the follow:</p>
<pre>The method disposeImageButtonImages(ImageButton) from the type
ScaledWidgetFactory refers to the missing type ImageButton</pre>
<p>Ok, a compile error, no big deal&#8230; the better part of a day later I finally had this solved.  Just so nobody ever has to deal with this particular error again, I thought I would post a small debugging tip you can use.  But first, some background on my day (after I saw the error):</p>
<ol>
<li>Ensure export from the UI works&#8230; yes!</li>
<li>PDE/Build defines a variable called pluginPath that you can use to point at additional plugin locations.  Since the missing type  &#8211;ImageButton in my case &#8212; was in a pre-compiled bundle that exists in my target, I assumed this variable was set wrong.  I tried different separators, bundle ordering and directory locations (with and without spaces in the name). I even tried putting the bundle in my baseLocation.  No dice.</li>
<li>You can debug Ant scripts using PDE/Build.  There are a few things that you must setup first, but after I did this I was able to debug the script and ensure that the &#8220;so called &#8216;missing&#8217;&#8221; bundle was indeed in my classpath.</li>
<li>At this point something hit me &#8212; the compile errors is on the method call, not the import statement. That means that the compiler found the type on import, but not when the method was called&#8230;. strange!</li>
<li>In this particular example we are using Import-Package as opposed to Require-Bundle. Maybe I found a bug&#8230; I changed all the code to use Require-Bundle&#8230; No Dice.</li>
<li>Because build can be finicky, and and a typo can cause all sorts of problems, I started again&#8230; Same problem.</li>
<li>Read a story to my daughter. (<em>Best part of the day, by far</em>)</li>
<li>Back to work&#8230; This time, I started making small changes in different bundles, copying them over, and trying again&#8230; At one point, IT WORKED!</li>
<li>Revert the changes&#8230; IT WORKS! &#8212; <em>Note: That&#8217;s not good</em></li>
<li>Start over, .. IT FAILS&#8230; make the same changes I did above.. IT FAILS!</li>
<li><strong>Curse</strong></li>
<li>Notice something.. when I copy the directories over, I am copying a bin/ directory that may (or may not) have fully built .class files.</li>
<li>Delete the bin/ directory .. IT WORKS!</li>
</ol>
<p>In fact, the problem will happen very infrequently.  It only happened because I was copying bundles from my workspace (not fetching them from CVS), and in some cases, the bundles were not fully built.</p>
<p>So, the lesson: <strong>If you get strange compile errors using PDE Build, try deleting the bundles bin/ directory</strong>.</p>
<p>Thanks goes out to Andrew Niefer who once again came through with a much better way off structuring my build.</p>
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2009/07/10/pde-build-compile-error-tip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

