<?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; Elias Volanakis</title>
	<atom:link href="http://eclipsesource.com/blogs/author/elias/feed/" rel="self" type="application/rss+xml" />
	<link>http://eclipsesource.com/blogs</link>
	<description>Eclipse Equinox OSGi</description>
	<lastBuildDate>Fri, 17 May 2013 13:50:55 +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>How to track lifecycle changes of OSGi bundles</title>
		<link>http://eclipsesource.com/blogs/2013/01/23/how-to-track-lifecycle-changes-of-osgi-bundles/</link>
		<comments>http://eclipsesource.com/blogs/2013/01/23/how-to-track-lifecycle-changes-of-osgi-bundles/#comments</comments>
		<pubDate>Wed, 23 Jan 2013 16:07:10 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[Planet OSGi]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=13666</guid>
		<description><![CDATA[This post explains how to track changes in the lifecycle state of OSGi bundles, using two different techniques: an OSGi BundleListener and an Eclipse BundleWatcher.]]></description>
			<content:encoded><![CDATA[<p>This post explains how to track changes in the lifecycle state of OSGi bundles, using two different techniques: an OSGi <a href="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleListener.html" target="_blank">BundleListener</a> and an Eclipse BundleWatcher.</p>
<h2>The OSGi Lifecycle</h2>
<p><img class="size-full wp-image-13670 alignnone" alt="osgi lifecycle How to track lifecycle changes of OSGi bundles" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/osgi-lifecycle.png" width="458" height="249" title="How to track lifecycle changes of OSGi bundles" /><br />
(source: OSGi Service Platform &#8211; Core Specification)</p>
<p>Eclipse runs on top of the OSGi runtime, which manages the bundles (components) that make up an application. At any time, each bundle is has one of these lifecycle states:</p>
<ul>
<li>INSTALLED: The OSGi runtime knows the bundle is there.</li>
<li>RESOLVED: The bundle is there and all it&#8217;s prerequisites (dependencies) are available. The bundle can be started (or has been stopped).</li>
<li>STARTING: The bundle is being started. If it has a BundleActivator class, the BundleActivator.start() method is being executed. When done, the bundle will become ACTIVE. Note: Bundles that can be activated lazily (Bundle-ActivationPolicy: lazy) stay in this state until one of their class files is loaded.</li>
<li>ACTIVE: The bundle is running.</li>
<li>STOPPING: The bundle is being stopped. If it has a BundleActivator class, the BundleActivator.stop() method is being executed. When done, the bundle will become RESOLVED.</li>
<li>UNINSTALLED: The bundle has been removed from the OSGi runtime.</li>
</ul>
<h2>BundleListener</h2>
<p>The <a href="http://www.osgi.org/javadoc/r4v42/org/osgi/framework/BundleListener.html" target="_blank">BundleListener</a> interface provides a convenient way to track lifecycle changes. It provides a bundleChanged(BundleEvent event) method, that is called by the OSGi runtime to communicate lifecycle changes.</p>
<p><img class="alignnone size-full wp-image-13671" alt="BundleListener How to track lifecycle changes of OSGi bundles" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/BundleListener.png" width="504" height="121" title="How to track lifecycle changes of OSGi bundles" /></p>
<p>To receive notifications, a BundleListener is added a BundleContext object. To stop receiving notifications, a BundleListener is removed from the BundleContent. This is shown in the next code snippet:</p>
<p><img class="alignnone size-full wp-image-13672" alt="ActivatorWithBundleListener How to track lifecycle changes of OSGi bundles" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/ActivatorWithBundleListener.png" width="625" height="326" title="How to track lifecycle changes of OSGi bundles" /></p>
<p>You can get this code from my <a href="https://github.com/evolanakis/eclipse-examples" target="_blank">eclipse-examples repository on Github</a>.</p>
<p>To see how this works, we install, start, stop and uninstall a bundle called &#8216;example.bundle_1.0.0.jar&#8217; using the OSGi Console (-console launch argument). The jar file is located in the example.eclipse.bundlewatcher project. Don&#8217;t forget to use three slashes after file:///.</p>
<p><img class="alignnone size-full wp-image-13673" alt="console bundlelistener How to track lifecycle changes of OSGi bundles" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/console-bundlelistener.png" width="481" height="504" title="How to track lifecycle changes of OSGi bundles" /></p>
<h2>BundleListener restrictions and the BundleWatcher</h2>
<p><strong>A BundleListener the can only receive notifications after it has been started</strong>. It will miss lifecycle events related to bundles being installed as the OSGi runtime starts. The Equinox OSGi runtime will (typically) install and resolve all bundles that are initially available, before starting any of them. This happens before our BundleListener is started.</p>
<p>To monitor the lifecycle changes that happen during the startup of the OSGi runtime we have to hook our code into the runtime itself. The details depend on the OSGi implementation.</p>
<p>Eclipse Equinox has a BundleWatcher interface, that provides a watchBundle(Bundle bundle, int type) method. The framework will call this method to communicate lifecycle changes.</p>
<p><img class="alignnone size-full wp-image-13674" alt="BundleWatcher How to track lifecycle changes of OSGi bundles" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/BundleWatcher.png" width="560" height="326" title="How to track lifecycle changes of OSGi bundles" /></p>
<p>To install the the BundleWatcher into the startup process, we need to &#8216;hook&#8217; into the runtime, using an Equinox Adaptor Hook. This requires the following steps:</p>
<ol>
<li>You will need org.eclipse.osgi as source code in your workspace (this is already part of my git repository).</li>
<li>In the same parent directory, create a fragment to org.eclipse.osgi (the example.eclipse.bundlewatcher project).</li>
<li>Create a file &#8216;hookconfigurator.properties&#8217; pointing to your hook configurator class(es).<br />
<img class="alignnone size-full wp-image-13676" alt="hookconfigurator properties How to track lifecycle changes of OSGi bundles" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/hookconfigurator-properties.png" width="446" height="74" title="How to track lifecycle changes of OSGi bundles" /></li>
<li>The hook configurator class must implement the HookConfigurator interface and have a no-argument constructor. The framework will call the addHooks(HookRegistry method), to allow you to install your BundleWatcher (in my example the BundleWatcher and HookConfigurator are implemented in the same class).<img class="alignnone size-full wp-image-13677" alt="BundleWatcherConfigurator How to track lifecycle changes of OSGi bundles" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/BundleWatcherConfigurator.png" width="499" height="366" title="How to track lifecycle changes of OSGi bundles" /></li>
<li>In your launch configuration, make sure to include the &#8216;org.eclipse.osgi&#8217; bundle from your workspace (not the Target Platform!).<br />
<img class="alignnone size-full wp-image-13678" alt="lc bundles How to track lifecycle changes of OSGi bundles" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/lc-bundles.png" width="614" height="293" title="How to track lifecycle changes of OSGi bundles" /></li>
<li>Your launch configuration must have the following command line argument (when running outside the workspace, you could put this into the eclipse.ini or config.ini files):-Dosgi.framework.extensions=example.eclipse.bundlewatcher<img class="alignnone size-full wp-image-13679" alt="lc arguments How to track lifecycle changes of OSGi bundles" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/lc-arguments.png" width="694" height="297" title="How to track lifecycle changes of OSGi bundles" /></li>
<li>Before you deploy, verify your build.properties to make sure hookconfigurator.properties is included in the .jar file.</li>
</ol>
<p>You can get this code from my <a href="https://github.com/evolanakis/eclipse-examples" target="_blank">eclipse-examples repository on Github</a>.</p>
<p>To see how this works, we again install, start, stop and uninstall a bundle called &#8216;example.bundle_1.0.0.jar&#8217; using the OSGi Console. The BundleWatcher output is in red. You can see the bundle watcher fragment and bundle listener bundle being installed and started during startup (before the bundle listener receives any events).</p>
<p><img class="alignnone size-full wp-image-13680" alt="console bundlewatcher How to track lifecycle changes of OSGi bundles" src="http://eclipsesource.com/blogs/wp-content/uploads/2013/01/console-bundlewatcher.png" width="598" height="634" title="How to track lifecycle changes of OSGi bundles" /></p>
<p>If you are curious about the Equinox Adaptor framework, will find the following links useful:</p>
<ul>
<li><a href="http://www.eclipsecon.org/2008/sub/attachments/Equinox_Framework_How_to_get_Hooked.pdf" target="_blank">Equinox Framework: How to get Hooked</a></li>
<li><a href="http://wiki.eclipse.org/Adaptor_Hooks" target="_blank">Eclipse Wiki: Adaptor Hooks</a></li>
<li><a href="http://www.eclemma.org/research/instrumentingosgi/index.html" target="_blank">Eclemma.org: Instrumenting OSGi Bundles Through Equinox Adaptor Hooks</a></li>
</ul>
<h2>BundleTracker</h2>
<p>Since I&#8217;ve been asked about it in the comments, I&#8217;ve added a <a href="https://github.com/evolanakis/eclipse-examples">BundleTracker example to my github repository</a>.</p>
<p>I think we all agree that, in general, it is better to use a standardized API than a proprietary one. BundleTracker is a great choice for most use cases. However, there are use cases where the additional API is very useful, e.g. when you are provisioning a system. If you are already committed to using Equinox, then BundleWatcher is an interesting alternative.</p>
<p>Have fun,<br />
Elias.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=How+to+track+lifecycle+changes+of+OSGi+bundles&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2013/01/23/how-to-track-lifecycle-changes-of-osgi-bundles/" 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/2013/01/23/how-to-track-lifecycle-changes-of-osgi-bundles/" 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/2013/01/23/how-to-track-lifecycle-changes-of-osgi-bundles/" 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/2013/01/23/how-to-track-lifecycle-changes-of-osgi-bundles/&amp;t=How+to+track+lifecycle+changes+of+OSGi+bundles" 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/osgi/' title='Planet OSGi Tag'>Planet OSGi</a>, <a href='http://eclipsesource.com/blogs/tag/tips/' title='tips Tag'>tips</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/tips/' title='tips Tag'>tips</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2013/01/23/how-to-track-lifecycle-changes-of-osgi-bundles/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Cross-platform mobile apps in Java with Tabris</title>
		<link>http://eclipsesource.com/blogs/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/</link>
		<comments>http://eclipsesource.com/blogs/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/#comments</comments>
		<pubDate>Fri, 14 Dec 2012 19:45:32 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[Tabris]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=13021</guid>
		<description><![CDATA[I presented our work on Tabris at  &#8221;Eclipse Day @ Google&#8221; earlier this week. With Tabris you use Java to create native mobile applications for iOS and Android. My slides below provide a quick introduction: Follow this link for detailed information on Tabris. Thank you Eclipse Foundation and Google for organizing this event for the fourth year now!]]></description>
			<content:encoded><![CDATA[<p>I presented our work on <a href="http://developer.eclipsesource.com/tabris/">Tabris</a> at  &#8221;<a href="http://wiki.eclipse.org/Eclipse_Day_At_Googleplex_2012" target="_blank">Eclipse Day @ Google</a>&#8221; earlier this week. With Tabris you use Java to create native mobile applications for iOS and Android. My slides below provide a quick introduction:</p>
<p style="text-align: center;"><a href="https://speakerdeck.com/evolanakis/writing-cross-platform-mobile-apps-in-java-with-tabris"><img class="size-full wp-image-13022 aligncenter" alt="tabris slides Cross platform mobile apps in Java with Tabris" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/12/tabris-slides.png" width="470" height="355" title="Cross platform mobile apps in Java with Tabris" /></a></p>
<p>Follow this link for <a href="http://developer.eclipsesource.com/tabris/">detailed information on Tabris</a>.</p>
<p>Thank you Eclipse Foundation and Google for organizing this event for the fourth year now!</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Cross-platform+mobile+apps+in+Java+with+Tabris&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/" 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/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/" 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/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/" 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/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/&amp;t=Cross-platform+mobile+apps+in+Java+with+Tabris" 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/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/ios/' title='iOS Tag'>iOS</a>, <a href='http://eclipsesource.com/blogs/tag/java/' title='Java Tag'>Java</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tabris/' title='Tabris Tag'>Tabris</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/12/14/cross-platform-mobile-apps-in-java-with-tabris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A secure user account system with Eclipse RAP</title>
		<link>http://eclipsesource.com/blogs/2012/11/01/a-secure-user-account-system-with-eclipse-rap/</link>
		<comments>http://eclipsesource.com/blogs/2012/11/01/a-secure-user-account-system-with-eclipse-rap/#comments</comments>
		<pubDate>Thu, 01 Nov 2012 05:28:18 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=12233</guid>
		<description><![CDATA[Recently, I developed a "user account" system for a customer's Eclipse RAP application. Here are a few do's and don'ts, which I learned in the process.]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-12234 alignnone" title="panels_50" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/11/panels_50.png" alt="panels 50 A secure user account system with Eclipse RAP" width="624" height="172" /></p>
<p>Recently, I developed a &#8220;user account&#8221; system for a customer&#8217;s <a href="http://eclipsesource.com/en/eclipse/eclipse-rap/">Eclipse RAP</a> application. Here are a few do&#8217;s and don&#8217;ts, which I learned in the process.</p>
<p>To provide some context: Users can perform these actions: sign-up for a new account, sign-in to an existing account, reset the password for an existing account (screenshots above).</p>
<p><strong>Passwords</strong></p>
<ul>
<li>Never store passwords in plain-text.</li>
<li>Store passwords only in hashed form.</li>
<li>Hash using a widely accepted crypto-grade hash function; never your own.</li>
<li>Before hashing, add a random salt to each password. This ensures that same passwords have different hashes (making them harder to guess).</li>
<li>Use a slow (i.e. iterative) hash algorithm, to make brute force attacks less effective. This is called <a href="http://en.wikipedia.org/wiki/Key_stretching">key stretching</a>.</li>
<li>To verify a sign-in attempt: retrieve the &#8220;salt&#8221; for that user, combine &#8220;salt&#8221; with password-candidate and compute the hash. If the computed hash matches the stored hash, proceed.</li>
<li>Read this excellent <a href="http://crackstation.net/hashing-security.htm">tutorial on secure salted password storage</a> before you start.</li>
</ul>
<p><strong>Sign-up (and user-entered-data)</strong></p>
<ul>
<li>Check entered data for minimum and maximum lengths.</li>
<li>Sanitize entered data to prevent <a href="https://www.owasp.org/index.php/XSS">Cross-Site-Scripting</a> (XSS) and <a href="https://www.owasp.org/index.php/SQL_Injection">SQL-Injection</a> attacks.</li>
<li>Do use <a href="http://docs.oracle.com/javase/6/docs/api/java/sql/PreparedStatement.html">PreparedStatement</a>, if your SQL-Query contains parameters.</li>
<li>Do not send the password via email.</li>
</ul>
<p><strong>Password Reset</strong></p>
<ul>
<li>Do not allow the user to log-in through the password reset workflow.</li>
<li>Do not send a new password via email.</li>
<li>Do send a reset token (hyperlink) to the email address associated with the user&#8217;s account.</li>
<li>Have the reset token expire within a few minutes.</li>
<li>Have the reset token expire after a successful login.</li>
</ul>
<p><strong>Hosting</strong></p>
<ul>
<li>For security over untrusted networks (public WiFi, etc.), serve sensitive data (i.e. login, sign-up) via https.</li>
<li>For best security, serve the whole application over https (if you can spare the CPU cycles).</li>
</ul>
<p><strong>Scaling</strong></p>
<ul>
<li>Implement authentication/sign-up as a networked service, so that it can be used by multiple RAP server instances. For OSGi-based software, <a href="http://wiki.eclipse.org/Distributed_OSGi_Services_with_ECF">OSGi Remote Services with ECF</a> are an easy way to do this.</li>
<li>The authentication service should only be accessible on the internal network.</li>
</ul>
<p>If you found this useful, <a href="https://twitter.com/evolanakis">follow me on twitter</a>.</p>
<p>Elias.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=A+secure+user+account+system+with+Eclipse+RAP&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2012/11/01/a-secure-user-account-system-with-eclipse-rap/" 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/2012/11/01/a-secure-user-account-system-with-eclipse-rap/" 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/2012/11/01/a-secure-user-account-system-with-eclipse-rap/" 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/2012/11/01/a-secure-user-account-system-with-eclipse-rap/&amp;t=A+secure+user+account+system+with+Eclipse+RAP" 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/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tips/' title='tips Tag'>tips</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tips/' title='tips Tag'>tips</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/11/01/a-secure-user-account-system-with-eclipse-rap/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Using shared libraries with Eclipse RCP</title>
		<link>http://eclipsesource.com/blogs/2012/08/18/using-shared-libraries-with-eclipse-rcp/</link>
		<comments>http://eclipsesource.com/blogs/2012/08/18/using-shared-libraries-with-eclipse-rcp/#comments</comments>
		<pubDate>Sat, 18 Aug 2012 06:46:49 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[rcp]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=10146</guid>
		<description><![CDATA[This post describes an easy – but little known way – to use native libraries (.dlls) with Eclipse RCP. In my current work, I&#8217;m shipping an RCP application that interacts directly with hardware connected to the user&#8217;s machine. These interactions are done through drivers, written in C, that are available in binary form as shared libraries. <a href="http://eclipsesource.com/blogs/2012/08/18/using-shared-libraries-with-eclipse-rcp/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>This post describes an easy – but little known way – to use native libraries (.dlls) with <a href="http://eclipsesource.com/en/eclipse/eclipse-rcp-overview/">Eclipse RCP</a>.</p>
<p>In my current work, I&#8217;m shipping an RCP application that interacts directly with hardware connected to the user&#8217;s machine. These interactions are done through drivers, written in C, that are available in binary form as shared libraries.</p>
<p>The use of shared libraries introduces a few problems:</p>
<ol>
<li>In order to load and be accessible from Java, the shared libraries must be on the PATH (windows) / LD_LIBRARY_PATH (unix). The user should not need to manually configure these environment variables. An excellent way to solve this, is to put the .dlls into the same directory as the application&#8217;s executable (the eclipse launcher).</li>
<li>However: the .dlls are platform specific (32-bit vs 64-bit / Windows vs OS X vs Linux). This means that the right version of the library must be placed next to each executable.</li>
</ol>
<p>The <a href="http://help.eclipse.org/juno/topic/org.eclipse.pde.doc.user/guide/tools/export_wizards/export_product.htm" target="_blank">Product Export Wizard</a> / PDE-Build, allows us to do this with minimal effort, as described below:</p>
<ol>
<li>I&#8217;m assuming you have a feature-based .product configuration file for your application.</li>
<li>In your feature, create a folder for each platform that you support.<br />
The example below supports three platforms: os-x-64-bit, win-32-bit, win-64-bit.</li>
<li>Place the appropriate binary files in each folder.</li>
<li>Edit the <strong>build.properties</strong> file, adding a:  root.<em>os</em>.<em>ws</em>.<em>arch</em>=<em>foldername  </em>entry for each platform.<br />
For example, the entry &#8216;win32.win32.x86=win32.x86&#8242; means if you are on a 32-bit windows, place the contents of the folder &#8216;win32.x86&#8242; next to the application&#8217;s executable.</li>
<li>If needed, add <strong>permissions</strong> entries to the <strong>build.properties</strong> file. These entries can be used to set the unix permissions for individual files, when needed.<br />
For example, the entry &#8216;root.macosx.cocoa.x86_64.permissions.755=library.so&#8217; sets the permissions of &#8216;library.so&#8217; file to &#8217;755&#8242;.</li>
</ol>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/08/root_files.png"><img class="alignleft size-full wp-image-10164" title="root_files" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/08/root_files.png" alt="root files Using shared libraries with Eclipse RCP" width="846" height="419" /></a></p>
<p>Done — the .zip files created by the &#8216;Product Export Wizard&#8217; (and PDE Build) now have the correct libraries, with permissions, next to the executable.</p>
<p>For more details, refer to &#8220;<a href="http://help.eclipse.org/juno/topic/org.eclipse.pde.doc.user/tasks/pde_rootfiles.htm">Adding Files to the Root of a Build</a>&#8221; in the Eclipse Help.</p>
<p>If you made it this far, <a href="https://twitter.com/evolanakis" target="_blank">follow me on twitter</a>,<br />
Elias.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Using+shared+libraries+with+Eclipse+RCP&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2012/08/18/using-shared-libraries-with-eclipse-rcp/" 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/2012/08/18/using-shared-libraries-with-eclipse-rcp/" 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/2012/08/18/using-shared-libraries-with-eclipse-rcp/" 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/2012/08/18/using-shared-libraries-with-eclipse-rcp/&amp;t=Using+shared+libraries+with+Eclipse+RCP" 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/build/' title='build Tag'>build</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/rcp/' title='rcp Tag'>rcp</a>, <a href='http://eclipsesource.com/blogs/tag/tips/' title='tips Tag'>tips</a>, <a href='http://eclipsesource.com/blogs/tag/build/' title='build Tag'>build</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/rcp/' title='rcp Tag'>rcp</a>, <a href='http://eclipsesource.com/blogs/tag/tips/' title='tips Tag'>tips</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/08/18/using-shared-libraries-with-eclipse-rcp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuring the OS-X application menu for SWT apps</title>
		<link>http://eclipsesource.com/blogs/2012/07/19/configuring-the-os-x-application-menu-for-swt-apps/</link>
		<comments>http://eclipsesource.com/blogs/2012/07/19/configuring-the-os-x-application-menu-for-swt-apps/#comments</comments>
		<pubDate>Thu, 19 Jul 2012 06:59:23 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[eclipse ui]]></category>
		<category><![CDATA[swt]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=9216</guid>
		<description><![CDATA[If you write a &#8216;pure&#8217; SWT application on the Mac (i.e. just SWT &#8212; no RCP/workbench), you will notice that the OS-X application menu is not properly configured. It just displays &#8216;SWT&#8216; instead of the application name. Furthermore, the &#8216;About SWT&#8216; and &#8216;Preferences&#8230;&#8216; menu entries have no effect. The remainder of this blog explains how <a href="http://eclipsesource.com/blogs/2012/07/19/configuring-the-os-x-application-menu-for-swt-apps/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>If you write a &#8216;pure&#8217; SWT application on the Mac (i.e. just SWT &#8212; no RCP/workbench), you will notice that the OS-X application menu is not properly configured. It just displays &#8216;<strong>SWT</strong>&#8216; instead of the application name. Furthermore, the &#8216;<strong>About SWT</strong>&#8216; and &#8216;<strong>Preferences&#8230;</strong>&#8216; menu entries have no effect.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/07/bad_menu.png"><img class="alignnone size-full wp-image-9217" title="bad_menu" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/07/bad_menu.png" alt="bad menu Configuring the OS X application menu for SWT apps" width="340" height="260" /></a></p>
<p>The remainder of this blog explains how to fix this:</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/07/good_menu.png"><img class="alignnone size-full wp-image-9218" title="good_menu" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/07/good_menu.png" alt="good menu Configuring the OS X application menu for SWT apps" width="323" height="267" /></a></p>
<p>The first thing to notice is that regular RCP applications do not have this issue. After exploring the code, you will discover the org.eclipse.ui.cocoa fragment, which provides Mac-specific customizations to the org.eclipse.ui bundle.</p>
<p>To configure the OS-X application menu, we copy the following files from org.eclipse.ui.cocoa into our project:</p>
<ul>
<li>CocoaUIEnhancer.java</li>
<li>CocoaUtil.java</li>
<li>SWTCocoaEnhancerDelegate.java</li>
<li>Messages.properties</li>
</ul>
<p>We then modify CocoaUIEnhancer.java, to make it work with pure SWT applications (it assumes we are running a workbench, which is not the case):</p>
<ol>
<li>Modify the <tt>getProductName()</tt> method to return a String when no product is found (instead of null)</li>
<li>Wrap the code in <tt>hookWorkbenchListener()</tt> in a <tt>try-catch (IllegalStateException e)</tt> block</li>
<li>Wrap the code in <tt>modifyShells()</tt> in a <tt>try-catch (IllegalStateException e)</tt> block</li>
<li>Add some code to the <tt>actionProc(...)</tt> method, to bring up an About-Dialog and Preferences-Dialog (since we aren&#8217;t using commands):</li>
</ol>
<pre>        static long actionProc(long id, long sel, long arg0) throws Exception {
		// ...
		} else if (sel == sel_preferencesMenuItemSelected_) {
			showPreferences();
		} else if (sel == sel_aboutMenuItemSelected_) {
			showAbout();
		}
		return 0;
	}

	private static void showAbout() {
		MessageDialog.openInformation(null, "About...", 
                  "Replace with a proper about text  / dialog");
	}

	private static void showPreferences() {
		System.out.println("Preferences...");
		PreferenceManager manager = new PreferenceManager();
		PreferenceDialog dialog = new PreferenceDialog(null, manager);
		dialog.open();
	}</pre>
<p>Finally, we add the following lines to our <tt>main()</tt> method:</p>
<pre>	public static final String APP_NAME = "MyApp";

	public static void main(String[] args) {
		Display.setAppName(APP_NAME);
		Display display = Display.getDefault();

		if (SWT.getPlatform().equals("cocoa")) {
			new CocoaUIEnhancer().earlyStartup();
		}

		Shell shell = new Shell(display);
		shell.setText(APP_NAME);
		// ...</pre>
<p>To try it, <a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/07/example.swt_.osx_.zip">download the complete sample project</a>.</p>
<p>If you like this, <a href="https://twitter.com/evolanakis">follow me on twitter</a>,<br />
Elias.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Configuring+the+OS-X+application+menu+for+SWT+apps&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2012/07/19/configuring-the-os-x-application-menu-for-swt-apps/" 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/2012/07/19/configuring-the-os-x-application-menu-for-swt-apps/" 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/2012/07/19/configuring-the-os-x-application-menu-for-swt-apps/" 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/2012/07/19/configuring-the-os-x-application-menu-for-swt-apps/&amp;t=Configuring+the+OS-X+application+menu+for+SWT+apps" 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-ui/' title='eclipse ui Tag'>eclipse ui</a>, <a href='http://eclipsesource.com/blogs/tag/swt/' title='swt Tag'>swt</a>, <a href='http://eclipsesource.com/blogs/tag/tips/' title='tips Tag'>tips</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse-ui/' title='eclipse ui Tag'>eclipse ui</a>, <a href='http://eclipsesource.com/blogs/tag/swt/' title='swt Tag'>swt</a>, <a href='http://eclipsesource.com/blogs/tag/tips/' title='tips Tag'>tips</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/07/19/configuring-the-os-x-application-menu-for-swt-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drawing on images with Eclipse RAP</title>
		<link>http://eclipsesource.com/blogs/2012/06/13/drawing-on-images-with-eclipse-rap/</link>
		<comments>http://eclipsesource.com/blogs/2012/06/13/drawing-on-images-with-eclipse-rap/#comments</comments>
		<pubDate>Wed, 13 Jun 2012 15:43:37 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=8089</guid>
		<description><![CDATA[Recently, I was asked how to create a web application that allows the user to draw on images: We have an application to deliver training content to medical professionals. An important issue for us is user-interaction with images. E.g. displaying images and allowing users to draw on them. The example below shows how to draw <a href="http://eclipsesource.com/blogs/2012/06/13/drawing-on-images-with-eclipse-rap/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Recently, I was asked how to create a web application that allows the user to draw on images:</p>
<blockquote><p>We have an application to deliver training content to medical professionals. An important issue for us is user-interaction with images. E.g. displaying images and allowing users to draw on them.</p></blockquote>
<p>The example below shows how to draw on a static image using our <a href="http://eclipsesource.com/en/eclipse/eclipse-rap/">Eclipse RAP</a> framework. It works as follows:</p>
<ol>
<li>Create an image resource from a file.</li>
<li>Create a Canvas widget. This is a blank area that we can paint on, with the help of a PaintListener object.</li>
<li>We use a MouseListener to react to the user&#8217;s clicks. A left-click adds a Point. A right-click removes a Point. The click triggers a redraw operation.</li>
<li>We use a PaintListener to draw on the canvas. The listener has access to a GC object. This is our &#8216;brush&#8217; for drawing on the canvas. We draw the image first and then a sequence of lines using the stored points (step 3).</li>
</ol>
<p>If you use <a href="http://rapmobile.eclipsesource.com/">RAP for mobile devices</a> you can replace Canvas with <a href="http://eclipsesource.com/blogs/2012/05/02/rap-mobile-0-5-7-new-and-noteworthy/">ClientCanvas</a> for better performance (it does more work on the client-side).<br/><br />
<a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/06/rap_canvas.png"><img class="alignnone  wp-image-8092" title="rap_canvas" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/06/rap_canvas.png" alt="rap canvas Drawing on images with Eclipse RAP" width="568" height="446" /></a></p>
<p>You can <a href="https://github.com/evolanakis/rap-examples/blob/master/example.rap.canvas/src/example/rap/canvas/Application.java">view the java code here</a>. A complete project is available in my <a href="https://github.com/evolanakis/rap-examples">&#8216;rap-examples&#8217; on github</a>.</p>
<p><a href="https://twitter.com/evolanakis">Follow me on twitter</a>,<br />
Elias.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Drawing+on+images+with+Eclipse+RAP&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2012/06/13/drawing-on-images-with-eclipse-rap/" 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/2012/06/13/drawing-on-images-with-eclipse-rap/" 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/2012/06/13/drawing-on-images-with-eclipse-rap/" 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/2012/06/13/drawing-on-images-with-eclipse-rap/&amp;t=Drawing+on+images+with+Eclipse+RAP" 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/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tips/' title='tips Tag'>tips</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/tips/' title='tips Tag'>tips</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/06/13/drawing-on-images-with-eclipse-rap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EclipseCon Excercise update</title>
		<link>http://eclipsesource.com/blogs/2011/03/23/eclipsecon-excercise-update/</link>
		<comments>http://eclipsesource.com/blogs/2011/03/23/eclipsecon-excercise-update/#comments</comments>
		<pubDate>Wed, 23 Mar 2011 18:20:41 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[eclipsecon]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=5606</guid>
		<description><![CDATA[Big thanks to all  runners who keep showing up for the EclipseCon run each morning. Particularly the brave bunch running in the rain today! Join us tomorrow at 7am in the Hyatt Lobby (rain or shine) for the last run of the conference. We will also having a little contest with the chance to win <a href="http://eclipsesource.com/blogs/2011/03/23/eclipsecon-excercise-update/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Big thanks to all  runners who keep showing up for the <a href="http://wiki.eclipse.org/EclipseCon_Exercise_2011">EclipseCon run</a> each morning. Particularly the brave bunch running in the rain today!</p>
<p>Join us tomorrow at <strong>7am in the Hyatt Lobby</strong> (rain or shine) for the last run of the conference.</p>
<p>We will also having a little contest with the chance to win Eclipse.org goodies: (thank you!)</p>
<ul>
<li>two black Eclipse.org long-sleeve shirts</li>
<li>two women&#8217;s Eclipse.org polo shirts</li>
<li>Eclipse.org insulating coffee mugs &#8212; battle-tested in arctic Ottawa <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink EclipseCon Excercise update" class='wp-smiley' title="EclipseCon Excercise update" /> </li>
</ul>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2011/03/EclipseCon_2011.jpg"><img class="alignnone size-full wp-image-5607" title="EclipseCon_2011" src="http://eclipsesource.com/blogs/wp-content/uploads/2011/03/EclipseCon_2011.jpg" alt="EclipseCon 2011 EclipseCon Excercise update" width="640" height="480" /></a></p>
<p>&nbsp;</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=EclipseCon+Excercise+update&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2011/03/23/eclipsecon-excercise-update/" 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/2011/03/23/eclipsecon-excercise-update/" 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/2011/03/23/eclipsecon-excercise-update/" 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/2011/03/23/eclipsecon-excercise-update/&amp;t=EclipseCon+Excercise+update" 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/eclipsecon/' title='eclipsecon Tag'>eclipsecon</a>, <a href='http://eclipsesource.com/blogs/tag/eclipsecon/' title='eclipsecon Tag'>eclipsecon</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2011/03/23/eclipsecon-excercise-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let&#8217;s run together at EclipseCon 2011</title>
		<link>http://eclipsesource.com/blogs/2011/02/12/lets-run-together-at-eclipsecon-2011/</link>
		<comments>http://eclipsesource.com/blogs/2011/02/12/lets-run-together-at-eclipsecon-2011/#comments</comments>
		<pubDate>Sat, 12 Feb 2011 00:18:45 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[eclipsecon]]></category>
		<category><![CDATA[events]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=5356</guid>
		<description><![CDATA[38 days left until EclipseCon &#8212; Sure, you&#8217;ve registered, booked the flight and hotel, checked your passport. Next: pack your running shoes! Continuing the annual tradition started by Darin, we are organizing another edition of the EclipseCon Exercise:  an easy 3-mile run, starting in the Hyatt Lobby at 7:00 am each morning, Monday to Thursday. The <a href="http://eclipsesource.com/blogs/2011/02/12/lets-run-together-at-eclipsecon-2011/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2011/02/eclipsecon_excercise.jpg"><img class="alignnone size-full wp-image-5358" title="eclipsecon_excercise" src="http://eclipsesource.com/blogs/wp-content/uploads/2011/02/eclipsecon_excercise.jpg" alt="eclipsecon excercise Lets run together at EclipseCon 2011" width="455" height="295" /></a></p>
<p>38 days left until EclipseCon &#8212; Sure, you&#8217;ve registered, booked the flight and hotel, checked your passport. Next: <strong>pack your running shoes!</strong></p>
<p>Continuing the annual tradition started by Darin, we are organizing another edition of the EclipseCon Exercise:  <strong>an easy 3-mile run, starting in the Hyatt Lobby at 7:00 am each morning</strong>, Monday to Thursday. The trail is flat and paved and follows the stream / bike path behind the Hyatt.</p>
<p>Some reasons to run with us:</p>
<ul>
<li>have fun and enjoy the fabulous Californian weather</li>
<li>burn off  last night&#8217;s food and beverages <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Lets run together at EclipseCon 2011" class='wp-smiley' title="Lets run together at EclipseCon 2011" /> </li>
<li>network in an informal setting</li>
<li>get an EclipseCon 2011 runner&#8217;s shirt courtesy of EclipseSource</li>
</ul>
<p>If you plan to join us, <a href="http://wiki.eclipse.org/EclipseCon_Exercise_2011"><strong>please RSVP on wiki</strong></a>.</p>
<p>Here&#8217;s a picture from last year&#8217;s group. I hope to have as many join in this year.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2011/02/eclipsecon_runners_2010.jpg"><img class="alignnone size-full wp-image-5357" title="eclipsecon_runners_2010" src="http://eclipsesource.com/blogs/wp-content/uploads/2011/02/eclipsecon_runners_2010.jpg" alt="eclipsecon runners 2010 Lets run together at EclipseCon 2011" width="600" height="450" /></a></p>
<p>See you in Santa Clara,<br />
Elias.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Let%26%238217%3Bs+run+together+at+EclipseCon+2011&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2011/02/12/lets-run-together-at-eclipsecon-2011/" 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/2011/02/12/lets-run-together-at-eclipsecon-2011/" 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/2011/02/12/lets-run-together-at-eclipsecon-2011/" 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/2011/02/12/lets-run-together-at-eclipsecon-2011/&amp;t=Let%26%238217%3Bs+run+together+at+EclipseCon+2011" 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/eclipsecon/' title='eclipsecon Tag'>eclipsecon</a>, <a href='http://eclipsesource.com/blogs/tag/events/' title='events Tag'>events</a>, <a href='http://eclipsesource.com/blogs/tag/eclipsecon/' title='eclipsecon Tag'>eclipsecon</a>, <a href='http://eclipsesource.com/blogs/tag/events/' title='events Tag'>events</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2011/02/12/lets-run-together-at-eclipsecon-2011/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Portland DemoCamp 11/2010 &#8211; Photos and Slides</title>
		<link>http://eclipsesource.com/blogs/2010/11/13/portland-democamp-112010-photos-and-slide/</link>
		<comments>http://eclipsesource.com/blogs/2010/11/13/portland-democamp-112010-photos-and-slide/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 01:58:39 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[democamp]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[IPad]]></category>
		<category><![CDATA[rap]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=4927</guid>
		<description><![CDATA[Thanks to everybody who attended or presented at the Portland Eclipse DemoCamp last Monday. This time the theme was &#8220;Eclipse for mobile developers&#8221;. We had about 50 attending, which is a strong uptick from past events. Below some pictures and slides from the event: 1. Michael Galpin (@michaelg) from eBay opened the night with a <a href="http://eclipsesource.com/blogs/2010/11/13/portland-democamp-112010-photos-and-slide/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Thanks to everybody who attended or presented at the Portland Eclipse DemoCamp last Monday. This time the theme was &#8220;Eclipse for mobile developers&#8221;. We had about 50 attending, which is a strong uptick from past events.</p>
<p>Below some pictures and slides from the event:</p>
<p>1. Michael Galpin (<a href="http://twitter.com/michaelg">@michaelg</a>) from eBay opened the night with a presentation on &#8216;<strong>Android Development with Eclipse&#8217;. </strong>He introduced the Android platform and demoed the Eclipse-based Android Development Tools (ADT). Interesting fact: eBay&#8217;s mobile applications on Android are enjoyed by more than 3 million users. If you want to learn more about Android, Michael&#8217;s upcoming <a href="http://www.manning.com/collins/">Android book</a> should be a good place to start.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp1.jpg"><img class="alignnone size-medium wp-image-4931" title="Android Development with Eclipse" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp1-300x225.jpg" alt="democamp1 300x225 Portland DemoCamp 11/2010   Photos and Slides" width="300" height="225" /></a></p>
<p>2. John Thomas from RIM continued with &#8216;<strong>BlackBerry Application Development Options</strong>&#8216;. BlackBerry developers have a variety of language choices for developing apps, such as Java, HTML5/Javascript and Adobe AIR. All development tools are integrated nicely in Eclipse and Adobe&#8217;s FlashBuilder (also Eclipse based). Visit this page for details on <a href="http://us.blackberry.com/developers/">BlackBerry app development</a>.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp2.jpg"><img class="alignnone size-medium wp-image-4932" title="BlackBerry Application Development Options" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp2-300x225.jpg" alt="democamp2 300x225 Portland DemoCamp 11/2010   Photos and Slides" width="300" height="225" /></a></p>
<p>3. Elias Volanakis (<a href="http://twitter.com/evolanakis">@evolanakis</a>) talked about &#8216;<strong>iPad Development with Eclipse RAP</strong>&#8216;. After introducing the project I demoed how to write a calculator web-app for the iPad using Java. We are optimizing RAP for mobile devices for the 1.4 release next summer. <a href="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/iPad_Development_with_Eclipse_RAP.pdf">You can download the slides here</a>.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp3.jpg"><img class="alignnone size-medium wp-image-4933" title="iPad development with Eclipse RAP" src="http://eclipsesource.com/blogs/wp-content/uploads/2010/11/democamp3-300x225.jpg" alt="democamp3 300x225 Portland DemoCamp 11/2010   Photos and Slides" width="300" height="225" /></a></p>
<p>Thanks for joining us,<br />
Elias.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Portland+DemoCamp+11%2F2010+%26%238211%3B+Photos+and+Slides&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2010/11/13/portland-democamp-112010-photos-and-slide/" 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/2010/11/13/portland-democamp-112010-photos-and-slide/" 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/2010/11/13/portland-democamp-112010-photos-and-slide/" 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/2010/11/13/portland-democamp-112010-photos-and-slide/&amp;t=Portland+DemoCamp+11%2F2010+%26%238211%3B+Photos+and+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/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/blackberry/' title='blackberry Tag'>blackberry</a>, <a href='http://eclipsesource.com/blogs/tag/democamp/' title='democamp Tag'>democamp</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/ipad/' title='IPad Tag'>IPad</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/blackberry/' title='blackberry Tag'>blackberry</a>, <a href='http://eclipsesource.com/blogs/tag/democamp/' title='democamp Tag'>democamp</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/ipad/' title='IPad Tag'>IPad</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2010/11/13/portland-democamp-112010-photos-and-slide/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Portland DemoCamp: Mobile Development with Eclipse &#8211; 11/8, 6pm</title>
		<link>http://eclipsesource.com/blogs/2010/11/05/portland-democamp-mobile-development-with-eclipse-118-6pm/</link>
		<comments>http://eclipsesource.com/blogs/2010/11/05/portland-democamp-mobile-development-with-eclipse-118-6pm/#comments</comments>
		<pubDate>Fri, 05 Nov 2010 21:39:37 +0000</pubDate>
		<dc:creator>Elias Volanakis</dc:creator>
				<category><![CDATA[EclipseSource News]]></category>
		<category><![CDATA[Planet Eclipse]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[blackberry]]></category>
		<category><![CDATA[democamp]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[IPad]]></category>
		<category><![CDATA[rap]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=4913</guid>
		<description><![CDATA[If you want to learn more about Android / Blackberry / iPad development while enjoying some free pizza and beer, I would be glad to see you next Monday. Will have three presentations: Android Development with Eclipse BlackBerry Application Development Options iPad development with Eclipse The event is scheduled for this Monday, Nov 8th at 6pm at <a href="http://eclipsesource.com/blogs/2010/11/05/portland-democamp-mobile-development-with-eclipse-118-6pm/" style="text-decoration: none;">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>If you want to learn more about Android / Blackberry / iPad development while enjoying some free pizza and beer, I would be glad to see you next Monday. Will have three presentations:</p>
<ul>
<li>Android Development with Eclipse</li>
<li>BlackBerry Application Development Options</li>
<li>iPad development with Eclipse</li>
</ul>
<p>The event is scheduled for this Monday, Nov 8th at 6pm at the Lucky Labrador Beer Hall, 1945 NW Quimby (<a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=1945+NW+Quimby+St,+Portland,+OR&amp;sll=37.0625,-95.677068&amp;sspn=52.637906,63.984375&amp;ie=UTF8&amp;hq=&amp;hnear=1945+NW+Quimby+St,+Portland,+Multnomah,+Oregon+97209&amp;z=16">map</a>).</p>
<p><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2010/Portland">Please RSVP on the wiki</a> (or sent me an <a href="mailto:elias@eclipsesource.com">email</a>). Space is limited, so sign up now.</p>
<p><a href="http://wiki.eclipse.org/Eclipse_DemoCamps_November_2010/Portland">http://wiki.eclipse.org/Eclipse_DemoCamps_November_2010/Portland</a></p>
<p>Looking forward to see you there,<br />
Elias.</p>
<p><br/><div style="display: inline-block"><a href="https://twitter.com/intent/tweet?source=webclient&amp;text=Portland+DemoCamp%3A+Mobile+Development+with+Eclipse+%26%238211%3B+11%2F8%2C+6pm&amp;via=eclipsesource&amp;url=http://eclipsesource.com/blogs/2010/11/05/portland-democamp-mobile-development-with-eclipse-118-6pm/" 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/2010/11/05/portland-democamp-mobile-development-with-eclipse-118-6pm/" 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/2010/11/05/portland-democamp-mobile-development-with-eclipse-118-6pm/" 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/2010/11/05/portland-democamp-mobile-development-with-eclipse-118-6pm/&amp;t=Portland+DemoCamp%3A+Mobile+Development+with+Eclipse+%26%238211%3B+11%2F8%2C+6pm" 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/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/blackberry/' title='blackberry Tag'>blackberry</a>, <a href='http://eclipsesource.com/blogs/tag/democamp/' title='democamp Tag'>democamp</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/ipad/' title='IPad Tag'>IPad</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a>, <a href='http://eclipsesource.com/blogs/tag/android/' title='android Tag'>android</a>, <a href='http://eclipsesource.com/blogs/tag/blackberry/' title='blackberry Tag'>blackberry</a>, <a href='http://eclipsesource.com/blogs/tag/democamp/' title='democamp Tag'>democamp</a>, <a href='http://eclipsesource.com/blogs/tag/eclipse/' title='eclipse Tag'>eclipse</a>, <a href='http://eclipsesource.com/blogs/tag/ipad/' title='IPad Tag'>IPad</a>, <a href='http://eclipsesource.com/blogs/tag/rap/' title='rap Tag'>rap</a></p>]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2010/11/05/portland-democamp-mobile-development-with-eclipse-118-6pm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
