<?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; news</title>
	<atom:link href="http://eclipsesource.com/blogs/category/news/feed/" rel="self" type="application/rss+xml" />
	<link>http://eclipsesource.com/blogs</link>
	<description>Eclipse Equinox OSGi</description>
	<lastBuildDate>Fri, 18 May 2012 15:00:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>RAP mobile 0.5.8 &#8211; New and Noteworthy</title>
		<link>http://eclipsesource.com/blogs/2012/05/15/rap-mobile-0-5-8-new-and-noteworthy/</link>
		<comments>http://eclipsesource.com/blogs/2012/05/15/rap-mobile-0-5-8-new-and-noteworthy/#comments</comments>
		<pubDate>Tue, 15 May 2012 16:49:24 +0000</pubDate>
		<dc:creator>Moritz Post</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[rap mobile]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7694</guid>
		<description><![CDATA[We are happy to announce another preview release of RAP mobile. Version 0.5.8 adds support for even more widgets on the Android side while improving stability and performance on iOS and Android. The new release brings improvements to the mobile client side but RAP itself has undergone some minor changes as well and we highly recommend that you [...]]]></description>
			<content:encoded><![CDATA[<p>We are happy to announce another preview release of <a href="http://rapmobile.eclipsesource.com/">RAP mobile</a>. Version 0.5.8 adds support for even more widgets on the Android side while improving stability and performance on iOS and Android.</p>
<p>The new release brings improvements to the mobile client side but RAP itself has <a href="http://eclipsesource.com/blogs/2012/05/09/the-new-application-api-in-rap/">undergone some minor changes</a> as well and we highly recommend that you update your target definition. The changes will also impact your server-side code slightly as the wording of some RAP classes has been refined.</p>
<p>Most notably the <code>ApplicationConfigurator</code> is now called <code>ApplicationConfiguration</code> and the <code>ApplicationConfiguration</code> has been renamed <code>Application</code>. Simply replace the names in your code and organize the imports.  You will also need to update your dynamic service declaration which now provides an <code>org.eclipse.rwt.application.ApplicationConfiguration</code> implementation. For more details check the great <a href="http://eclipsesource.com/blogs/2012/05/09/the-new-application-api-in-rap/">post</a> from Ralf.</p>
<p>And now for the new and noteworthy features of RAP mobile. If not noted otherwise all features described here are available on Android and iOS.</p>
<h2>New and Noteworthy</h2>
<h3>Support for the SWT Group widget</h3>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/group-widget.png"><img class="alignright  wp-image-7705" title="group-widget" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/group-widget.png" alt="group widget RAP mobile 0.5.8   New and Noteworthy" width="189" height="138" /></a>The Android client now supports the SWT Group widget. The appearance of the groups is derived from the Android holo theme with its simplistic title and horizontal line. In addition to <code>group.setText()</code> you can also use <code>group.setForeground()</code> to colorize the title and horizontal line.</p>
<h3>Support for right-click via long-press</h3>
<p>The right-click is a common ui metaphor on the desktop but has no clear parallel in the mobile space. In an SWT application the right-click is usually used to open a contextual menu. The RAP mobile framework therefore uses the method Control.addMenuDetectListener() to register a listener that is activated when the user long presses on an item.</p>
<h3>Entry point discovery mechanism</h3>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/discovery1.png"><img class="alignright  wp-image-7724" title="discovery" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/discovery1.png" alt="discovery1 RAP mobile 0.5.8   New and Noteworthy" width="286" height="138" /></a><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/discovery-ios.png"><img class="alignright  title=" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/discovery-ios.png" alt="discovery ios RAP mobile 0.5.8   New and Noteworthy" width="92" height="138" /></a>RAP mobile supports a special mechanism to help you find the available entry points configured for an <code>Application</code>. You can append the special identifier &#8220;/index.json&#8221; to your url, which delivers a JSON document, listing all the available entry points. The RAP mobile client uses this list to let you choose the app to start. As part of that feature we also simplified the Android start activity as you can see in the screenshots to the right. On iOS the discovery menu is activated by doubletapping on the status bar at the top.</p>
<h3>Client side caching of images</h3>
<p>Up until this RAP mobile for Android release an image has been loaded from the server every time it was requested. We have now integrated client-side image caching on Android as well which greatly reduces the bandwidth and power requirements when an image is requested multiple times. Try out the &#8220;/virtual-tree&#8221; demo which displays the same icon dozens of times.</p>
<h3>Improved handling of server session timeout</h3>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/timeoutDialog1.png"><img class="alignright  wp-image-7735" title="timeoutDialog" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/timeoutDialog1.png" alt="timeoutDialog1 RAP mobile 0.5.8   New and Noteworthy" width="92" height="138" /></a>Since the state of a RAP mobile application is bound to a session on the remote server, there is always the possibility of a session timeout. We&#8217;ve recently improved this (expected) behavior so that you can now restart your session from the message dialog.</p>
<h2>Android Specific</h2>
<h3>Enhancements and Bugfixes</h3>
<ul>
<li>Toolbar has a fixed height</li>
<li>ScrolledComposite supports simultaneous horizontal and vertical scrolling</li>
<li>Shells now have title support for setting text and icon</li>
</ul>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/discovery-ios.png"><br />
</a></p>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/05/15/rap-mobile-0-5-8-new-and-noteworthy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse 4 final sprint – Part 1 &#8211; The e4 Application Model</title>
		<link>http://eclipsesource.com/blogs/2012/05/10/eclipse-4-final-sprint-part-1-the-e4-application-model/</link>
		<comments>http://eclipsesource.com/blogs/2012/05/10/eclipse-4-final-sprint-part-1-the-e4-application-model/#comments</comments>
		<pubDate>Thu, 10 May 2012 12:19:06 +0000</pubDate>
		<dc:creator>Jonas Helming</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[syndicate]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7669</guid>
		<description><![CDATA[The countdown is on for Eclipse 4. For the upcoming Juno release, the core tooling components will build on the Eclipse SDK 4.2. This series will introduce the new concepts in the Eclipse 4 Application Platform, aka RCP 2.0. It is likely that most projects will use the compatibility layer initially, however, it is worthwhile [...]]]></description>
			<content:encoded><![CDATA[<p>The countdown is on for Eclipse 4. For the upcoming Juno release, the core tooling components will build on the Eclipse SDK 4.2. This series will introduce the new concepts in the Eclipse 4 Application Platform, aka RCP 2.0. It is likely that most projects will use the compatibility layer initially, however, it is worthwhile to look at the new concepts and try them out. The first part of the tutorial is available now as a <a title="Eclipse 4 Tutorial" href="http://eclipsesource.com/eclipse4tutorial">downloadable PDF</a>.</p>
<p>I will start with the foundation of every Eclipse 4 application, the application model. In this first part, I would like to introduce the different options for modifying this model.</p>
<h3>Application Model vs. Views</h3>
<p>In Eclipse 4, the application model defines the workbench, including views, menu contributions and key bindings. The model doesn&#8217;t require that you first implement the single components. For example, you can work with the model without implementing a view.</p>
<p>The cornerstones of the application model are windows and parts. Contrary to the eclipse 3.x platform, e4 has combined views and editors into the concept of Parts, which represent views inside a window. If you add a part in the model, you can later connect it to your implementation of the selected view. To show the resulting separation between the general workbench design and the implementation of single parts, I will not show any SWT code in this section. Instead we&#8217;ll focus on the model and how to connect the model to code.</p>
<p style="text-align: center;"><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture6.png"><img class="aligncenter  wp-image-7675" title="picture6" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture6.png" alt="picture6 Eclipse 4 final sprint – Part 1   The e4 Application Model" width="637" height="335" /></a>The Parts of an application model are connected later to their implementations</p>
<h3>Installation</h3>
<p>You can get the latest version of Eclipse 4 here:  <a href="http://www.eclipse.org/eclipse4/">http://www.eclipse.org/eclipse4/</a>. The IDE itself is based on Eclipse 4 and also contains several useful tools to create RCP and RCP 2 applications. Additionally, we recommend installing the e4 Tools, which, thanks to Tom Schindl, provide a very useful template for creating applications as well as an editor to modify the application model. At writing, these tools are still in incubator status and can be installed from this update site: <a href="http://download.eclipse.org/e4/downloads/drops/R-0.12M6-201203151300/repository">http://download.eclipse.org/e4/downloads/drops/R-0.12M6-201203151300/repository</a></p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/installe4tools.png"><img class="aligncenter size-full wp-image-7676" title="installe4tools" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/installe4tools.png" alt="installe4tools Eclipse 4 final sprint – Part 1   The e4 Application Model" width="353" height="92" /></a></p>
<h3>The first step</h3>
<p>After installing Eclipse 4 the easiest way to get started is to use the e4 template to create a new e4 application. To create a project, choose the „e4 Application Project“ entry within the „new Project“ wizard. For this application you don&#8217;t have to change anything except the name of the application. The template creates a product definition and you can start the application simply by starting this product. To start it, open the *.product file and click on run or debug in the upper right corner of the editor. As you can see below, the generated template application already contains a window, two menus, a toolbar and a perspective stack.</p>
<p style="text-align: center;"><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture1_003.png"><img class="aligncenter size-full wp-image-7677" title="picture1_003" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture1_003.png" alt="picture1 003 Eclipse 4 final sprint – Part 1   The e4 Application Model" width="123" height="31" /></a>Click here to start the product.</p>
<h3>The Editor</h3>
<p>To modify the application model you&#8217;ll need an editor which you can start by opening the Application.e4xmi located in the root level of the project. On the left side you see a tree showing the complete contents of the model. By double-clicking an element in the tree, a detailed view will be opened on the right side allowing you to modify the properties of that element.</p>
<p>The top-level elements of an application are usually one or more windows that you can find in the application model under “windows”. The template project already contains a TrimmedWindow. By double-clicking this element you can, for instance, modify the size of this window. Check the result by restarting the application.</p>
<p>With a right click in the tree, new elements can be added and existing ones can be removed. As an example you can remove the existing PerspectiveStack and just add a single Part instead. After a restart of the application you will notice that the main area of the application does not have a border anymore. However, the new part isn&#8217;t visible and it would be nice to have some control over the result. I&#8217;ll describe how to do that in the next section.</p>
<p style="text-align: center;"> <a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture2.png"><img class="aligncenter size-full wp-image-7678" title="picture2" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture2.png" alt="picture2 Eclipse 4 final sprint – Part 1   The e4 Application Model" width="254" height="261" /></a>Open the application model to modify the workbench</p>
<h3>Live Editing</h3>
<p>Eclipse allows you to define the workbench using the application model even without providing implementations. However, this is sometimes hard to work with because empty Parts are often hard to identify. To resolve this Tom Schindl introduced the idea of a live editor. It allows you to access the application model of a running application, modify it and highlight selected components. To enable the live editor you need to start two plug-ins along with your application. You can check them in the run configuration and additionally click on “Add required” to include the required dependencies. A run configuration should have been created for you when you first started the product.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture3.png"><img class="aligncenter size-full wp-image-7679" title="picture3" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture3.png" alt="picture3 Eclipse 4 final sprint – Part 1   The e4 Application Model" width="381" height="63" /></a></p>
<p>In the running application you can start the live editor via ALT+SHIFT+F9. This editor works exactly like the editor in your IDE, however, it directly accesses the application model of the running application. If you, for instance, open the TrimmedWindow in the editor and change its size or position, the changes are directly applied in the running application.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture4.png"><img class="aligncenter size-full wp-image-7680" title="picture4" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture4.png" alt="picture4 Eclipse 4 final sprint – Part 1   The e4 Application Model" width="385" height="117" /></a></p>
<p>The live editor is not only capable of modifying elements, you can even add new ones. As an example, if you add a new window to the application model (right-click on the tree-node windows), a new window will be opened in the application. To maintain an overview of which components are visible in the application, these components can be colored. By right-clicking an element in the live editor, e.g. the TrimBar and selecting “Show Control”, the control will be colored in red in the running application.</p>
<p>&nbsp;</p>
<p style="text-align: center;"><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture5.png"><img class="aligncenter size-full wp-image-7681" title="picture5" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/picture5.png" alt="picture5 Eclipse 4 final sprint – Part 1   The e4 Application Model" width="462" height="124" /></a>Elements of the application models can be colored in the running application.</p>
<p>Using this feature, one can easily visualize changes within the application model. This is especially useful for elements which are not directly visible in the UI. As an example, if you add a new Part in a Window, it will not be visible without coloring as it does not have any content yet.</p>
<p>If you use the live editor to change the application model the changes will only be reflected in the running application. To transfer them into the deployable application, you can copy the modified version of the model using the tab „XMI“ and copy it into the model available in your IDE.</p>
<h3>Programmatical Access to the Model</h3>
<p>One of the major advantages of the application model is the ability to modify it via API. As the application model is represented in EMF, the API is very familiar to anyone who has used EMF before. Using this API you can create or modify parts of the application programmatically, for example, reacting to a user action. To test this in the template application you can use one of the existing handlers, such as the class OpenHandler.  As you can see in this handler, there is a method execute() marked with the annotation @execute, which will be executed if the connected ToolItem is pressed by the user.</p>
<p>Dependency injection, which we&#8217;ll go into more detail on later, allows the programmer to easily define which parameters are needed within this method. In the following code example the method requires the application window as parameter so it will be injected by the framework. In the first line a new part is created and in the second line this part is added to the window. You can check the result by using the live editor described above. First you&#8217;ll need to start the application and the live editor. Then click the open button in the toolbar of the example application. In the live editor you can confirm that the new part has been added correctly and even color it in the application.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">@Execute
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> execute<span style="color: #009900;">&#40;</span>MWindow mWindow<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    MPart newPart <span style="color: #339933;">=</span> MBasicFactory.<span style="color: #006633;">INSTANCE</span>.<span style="color: #006633;">createPart</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    mWindow.<span style="color: #006633;">getChildren</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>newPart<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>In the second code example, a new window is created. To add this new window into the application, the application is required as a parameter. Using the API, the window is sized, a new part is added into the window and the window is added to the application. By adding the window to the application, it is opened in the running application. Restart the application and press the button again to check the result.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">@Execute
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> execute<span style="color: #009900;">&#40;</span>MApplication application<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    MWindow mWindow <span style="color: #339933;">=</span> MBasicFactory.<span style="color: #006633;">INSTANCE</span>.<span style="color: #006633;">createTrimmedWindow</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    mWindow.<span style="color: #006633;">setHeight</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">200</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    mWindow.<span style="color: #006633;">setWidth</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">400</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    mWindow.<span style="color: #006633;">getChildren</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>MBasicFactory.<span style="color: #006633;">INSTANCE</span>.<span style="color: #006633;">createPart</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    application.<span style="color: #006633;">getChildren</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">add</span><span style="color: #009900;">&#40;</span>mWindow<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h3>Scripting</h3>
<p>Another nice feature of the live editor is the ability to apply scripting and access parts of the model API during runtime. As this code will be dynamically interpreted, JavaScript is used. Scripts can be executed on any part of the application model. To do so, start the application and the live editor (ALT+SHIFT+F9). Right click any element, e.g. a window, and select “Execute script”. In the open window, you can enter JavaScript, which will be wrapped to the Java API. The following code example will set the label of a window – during runtime.</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">mainObject.<span style="color: #006633;">setLabel</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Hello Eclipse&quot;</span><span style="color: #009900;">&#41;</span></pre></div></div>

<p>This second example will make an element invisible. You can try executing this example on the ToolBar, which you can find in the model tree under <em>TrimmedWindow</em> =&gt; <em>TrimBar</em> =&gt; <em>WindowTrim</em> =&gt; <em>ToolBar</em></p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">mainObject.<span style="color: #006633;">setVisible</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span></pre></div></div>

<h3>Conclusion</h3>
<p>The e4 application models allows you to define the general design of an application in a consistent way, without implementing single parts in advance. We described different methods to modify the application model, including how to modify the model during runtime using the live editor or the API. At this point we have only created placeholders in the application. The next part of this series describes how to connect the application model with the implementation of UI components, that is, how to create the connection between a part and the implementation of a view filling this part.</p>
<p>For more information, contact us:</p>
<p>Maximilian Koegel and Jonas Helming</p>
<p>EclipseSource Munich leads</p>
<p>Email: e4@eclipsesource.com</p>
<p>This tutorial and all other parts of the series are available as a <a title="Eclipse 4 Tutorial" href="http://eclipsesource.com/eclipse4tutorial">downloadable PDF</a>.</p>
<p>Author: Jonas Helming</p>
<p>&nbsp;</p>
<p><script type="text/javascript">// <![CDATA[
  (function() {
    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
    po.src = 'https://apis.google.com/js/plusone.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
  })();
// ]]&gt;</script></p>
<p><a href="https://plus.google.com/107242665623221408066" rel="author"> Join me on Google+</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/05/10/eclipse-4-final-sprint-part-1-the-e4-application-model/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>The new Application API in RAP</title>
		<link>http://eclipsesource.com/blogs/2012/05/09/the-new-application-api-in-rap/</link>
		<comments>http://eclipsesource.com/blogs/2012/05/09/the-new-application-api-in-rap/#comments</comments>
		<pubDate>Wed, 09 May 2012 12:58:56 +0000</pubDate>
		<dc:creator>Ralf Sternberg</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[juno]]></category>
		<category><![CDATA[new & noteworthy]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[rap]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7640</guid>
		<description><![CDATA[RAP 1.5 includes a new API to define and start RAP applications programmatically (up to RAP 1.4, this was only possible using Eclipse extensions or web.xml properties). With this new API, RAP can also be used for leightweight applications based on OSGi, but without the entire Eclipse stack, even with other OSGi containers like Apache [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://eclipse.org/rap/downloads/1.5/">RAP 1.5</a> includes a new API to define and start RAP applications programmatically (up to RAP 1.4, this was only possible using Eclipse extensions or web.xml properties). With this new API, RAP can also be used for leightweight applications based on OSGi, but without the entire Eclipse stack, even with other OSGi containers like <a href="http://felix.apache.org/">Apache Felix</a>. Also traditional web applications, that use RWT as a library without OSGi, benefit from the new API.</p>
<p>This API contains a couple of interfaces that we had trouble to find suitable names for. If you&#8217;ve used this API already you know that there were two interfaces side-by-side in the same package with almost the same name: <em>ApplicationConfigurator</em> and <em>ApplicationConfiguration</em>. Even though these names seemed to be correct, it <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=369942">turned out</a> that they were hard to tell apart, and if mixed up in a service declaration, the application did not start, without any warning.</p>
<p>So we reviewed the case and eventually came up with better names for the interfaces without changing the structure. Let me explain the new API and our reasoning behind it.</p>
<h2>Implementing an ApplicationConfiguration</h2>
<p>A RAP application consists of various parts, such as entrypoints, URL mappings, themes, service handlers, etc. All these parts constitute an <em>ApplicationConfiguration</em>. The configuration is like the blueprint for an application. Based on an ApplicationConfiguration, the framework can create and start an application instance. There can be more than one application instances at runtime, e.g. running on different network ports or different servlet contexts.</p>
<p>Hence, when you write a RAP application, you have to provide an <em>ApplicationConfiguration</em>.</p>
<p>An <em>ApplicationConfiguration</em> is used to configure an application before it is started. For this step, RAP follows a callback approach to leave the responsibility for creating and starting the application with the framework. Therefore, the configuration must actively configure the application. To do so, it has one method <em>configure( Application )</em>. The framework provides a reference to the created <em>Application</em> as a parameter to this method. Here&#8217;s how a simple implementation looks like:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> SimpleConfiguration <span style="color: #000000; font-weight: bold;">implements</span> ApplicationConfiguration <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> configure<span style="color: #009900;">&#40;</span> Application application <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    application.<span style="color: #006633;">addEntryPoint</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;/simple&quot;</span>, SimpleEntryPoint.<span style="color: #000000; font-weight: bold;">class</span>, <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    application.<span style="color: #006633;">addEntryPoint</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;/other&quot;</span>, AnotherEntryPoint.<span style="color: #000000; font-weight: bold;">class</span>, <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<h2>Registering the ApplicationConfiguration</h2>
<p>When using OSGi, the <em>ApplicationConfiguration</em> can be registered as a service. I&#8217;d recommend using OSGi declarative services (DS) like this:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;scr:component</span> <span style="color: #000066;">xmlns:scr</span>=<span style="color: #ff0000;">&quot;http://www.osgi.org/xmlns/scr/v1.1.0&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;implementation</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;com.example.SimpleConfiguration&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
      <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;provide</span> <span style="color: #000066;">interface</span>=<span style="color: #ff0000;">&quot;org.eclipse.rwt.application.ApplicationConfiguration&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
   <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/scr:component<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>The bundle <em>org.eclipse.rap.rwt.osgi</em> will automatically start this application on every available HttpService. When using Equinox, don&#8217;t forget to also include the <em>org.eclipse.equinox.ds</em> bundle. You can find an example of a simple RAP application using DS on <a href="https://github.com/ralfstx/rap-helpers/tree/master/example.rwt.simple">github</a>.</p>
<p>When using RWT as a library in a traditional web application, i.e. without OSGi, you can register your <em>ApplicationConfiguration</em> in the <em>web.xml</em> by adding a <em>context-param</em> with the fully qualified class name of the implementation:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;context-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>org.eclipse.rap.applicationConfiguration<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-name<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.example.ExampleConfiguration<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/param-value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/context-param<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>You can always look up the param-name in the constant <em>ApplicationConfiguration#CONFIGURATION_PARAM</em>. The RAP FAQ has a <a href="http://wiki.eclipse.org/RAP/FAQ#How_do_I_develop_an_RWT_standalone_application_with_RAP_.3E.3D_1.5">complete example</a>.</p>
<h2>Starting an Application</h2>
<p>When an ApplicationConfiguration has been registered as described above, the application is automatically started by the framework. Alternatively, it can also be started explicitly using an <em>ApplicationRunner</em>:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">ApplicationConfiguration configuration <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SimpleConfiguration<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
ApplicationRunner runner <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ApplicationRunner<span style="color: #009900;">&#40;</span> configuration, servletContext <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
runner.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>There&#8217;s a <a href="http://martinfowler.com/bliki/TwoHardThings.html">saying</a> that there were only two hard things in computer science, cache invalidation and naming things. I don&#8217;t happen to know what&#8217;s so tricky about cache invalidation <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink The new Application API in RAP" class='wp-smiley' title="The new Application API in RAP" />  But I can hardly remember any <em>technical</em> problem that caused me as much of a headache as these few names did. I hope that after so many discussions, this new API will prove to be simple to understand and to use.</p>
<p>Thanks to <a href="http://www.codeaffine.com/author/fappel/">Frank</a>, <a href="http://www.codeaffine.com/author/rherrmann/">Rüdiger</a>, <a href="http://eclipsesource.com/blogs/author/hstaudacher/">Holger</a> and <a href="http://eclipsesource.com/blogs/author/jordi/">Jordi</a> for great discussions and especially to Frank for contributing this new API to RAP!</p>
<p>The changes are part of RAP 1.5M7, published this Friday, May 11.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/05/09/the-new-application-api-in-rap/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eclipse Juno Milestone 7, available for download</title>
		<link>http://eclipsesource.com/blogs/2012/05/05/eclipse-juno-milestone-7-available-for-download/</link>
		<comments>http://eclipsesource.com/blogs/2012/05/05/eclipse-juno-milestone-7-available-for-download/#comments</comments>
		<pubDate>Sat, 05 May 2012 04:40:28 +0000</pubDate>
		<dc:creator>Ian Bull</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[syndicate]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7634</guid>
		<description><![CDATA[Each year Eclipse publishes 7 milestone releases before starting the endgame.  Today the Eclipse and Equinox teams are proud to make Eclipse 3.8/4.2 (Juno) Milestone 7 available for download.  There are a number of notable features including shiny new icons: Content assist in in package-info files and enhanced static analysis of case statements: Checkout the entire new [...]]]></description>
			<content:encoded><![CDATA[<p>Each year Eclipse publishes 7 milestone releases before starting the <em>endgame.</em>  Today the Eclipse and Equinox teams are proud to make Eclipse 3.8/4.2 (Juno) Milestone 7 available for download.  There are a number of notable features including shiny new icons:</p>
<p style="text-align: center;"><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/icon.png"><img class="aligncenter  wp-image-7635" title="icon" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/icon.png" alt="icon Eclipse Juno Milestone 7, available for download" width="307" height="307" /></a></p>
<p style="text-align: left;">Content assist in in package-info files</p>
<p style="text-align: left;"><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/content-assist-pkg-info.png"><img class="aligncenter size-full wp-image-7636" title="content-assist-pkg-info" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/content-assist-pkg-info.png" alt="content assist pkg info Eclipse Juno Milestone 7, available for download" width="362" height="270" /></a></p>
<p style="text-align: left;">and enhanced static analysis of case statements:</p>
<p style="text-align: left;"><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/switch-missing-default.png"><img class="aligncenter size-full wp-image-7637" title="switch-missing-default" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/switch-missing-default.png" alt="switch missing default Eclipse Juno Milestone 7, available for download" width="490" height="321" /></a></p>
<p style="text-align: left;">Checkout the entire <a href="http://download.eclipse.org/eclipse/downloads/drops4/S-4.2M7-201205031800/eclipse-news-M7.html">new and noteworthy</a> or download the milestone and try it out:</p>
<p style="text-align: left;"><a href="http://download.eclipse.org/eclipse/downloads/drops4/S-4.2M7-201205031800/">http://download.eclipse.org/eclipse/downloads/drops4/S-4.2M7-201205031800/</a></p>
<p style="text-align: left;">
<p style="text-align: left;">
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/05/05/eclipse-juno-milestone-7-available-for-download/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Server-Side Apps with access to device functionality aka. accessing the iOS Geolocation API with Java.</title>
		<link>http://eclipsesource.com/blogs/2012/05/03/server-side-apps-with-access-to-device-functionality-aka-accessing-the-ios-geolocation-api-with-java/</link>
		<comments>http://eclipsesource.com/blogs/2012/05/03/server-side-apps-with-access-to-device-functionality-aka-accessing-the-ios-geolocation-api-with-java/#comments</comments>
		<pubDate>Thu, 03 May 2012 11:34:31 +0000</pubDate>
		<dc:creator>Holger Staudacher</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[rap mobile]]></category>
		<category><![CDATA[server-side apps]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7510</guid>
		<description><![CDATA[Whenever we talk about server-side apps and RAP mobile, one topic always comes up: how to access native functionality like Geolocation or the Camera. With this post I want to show you how we access this functionality on the server-side. At writing, we&#8217;ve implemented Geolocation Support, and more additions are planned for the near future. [...]]]></description>
			<content:encoded><![CDATA[<p>Whenever we talk about <a href="http://eclipsesource.com/blogs/2012/04/16/serving-mobile-devices-with-server-side-apps/">server-side apps</a> and <a href="http://rapmobile.eclipsesource.com/">RAP mobile</a>, one topic always comes up: how to access native functionality like Geolocation or the Camera. With this post I want to show you how we access this functionality on the server-side. At writing, we&#8217;ve implemented Geolocation Support, and more additions are planned for the near future.</p>
<p>I have to point out one thing first.  When you take look at RAP mobile from a very abstract view, it is nothing more than an object synchronization mechanism. That is, if a button (or any other widget) is created on the server it also needs to be created on the client. This is exactly the same for native functionality. When the server needs the location of the client it has to tell the client that it needs the location. Then, the client has to tell the server the location and this cycle starts over again. The challenge in this approach is to hook the location to the right session. Fortunately, <a href="http://eclipse.org/rap/">RAP&#8217;s server side</a> has solved these issues a long time ago, and it&#8217;s pretty easy to hook this information together.</p>
<p>One issue that remains is that <a href="http://eclipse.org/swt/">SWT</a> has no API for native access because it was made for the desktop. So, a new API is required that needs be an abstraction for all devices. But wait a minute &#8211; this sounds like a well known problem that has been solved already. I&#8217;m referring to <a href="http://phonegap.com/">Phonegap/Cordova</a>. This technology created a JavaScript abstraction for accessing native functionality within HTML5 Apps. And, IMHO, these guys did a really great job and there is no need to reinvent the wheel. We decided to take the Phonegap API as a template and created a very similar Java API. Our first result is the <a href="https://github.com/eclipsesource/rap-mobile/tree/master/com.eclipsesource.rap.mobile/src/com/eclipsesource/rap/mobile/geolocation">Geolocation API</a> which is located in the <a href="https://github.com/eclipsesource/rap-mobile">RAP mobile server</a> code. As mentioned in previous posts, everything on the server side is open source, including this API. The RAP mobile server code is located in the com.eclipsesource.rap.mobile*.jar and is included in the <a href="https://github.com/eclipsesource/rap-mobile-demos">demos target</a>. You can also take a look the Geolocation API here at <a href="https://github.com/eclipsesource/rap-mobile/tree/master/com.eclipsesource.rap.mobile/src/com/eclipsesource/rap/mobile/geolocation">github</a>.</p>
<p>We have created a demo for the Location API, which you can see in the <a href="http://rapmobile.eclipsesource.com/demos/">videos</a> linked below. The source code for this demo is also located on <a href="https://github.com/eclipsesource/rap-mobile-demos/blob/master/com.eclipsesource.rap.mobile.demos/src/com/eclipsesource/rap/mobile/demos/entrypoints/GeolocationDemo.java">github</a>. To conclude, I can proudly say that with RAP mobile it&#8217;s now possible to access the Geolocation API of iOS and Android from Java by writing the code only once!</p>
<p><div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/40075832' width='500' height='400' frameborder='0'></iframe></div><br />
<div class='embed-vimeo' style='text-align:center;'><iframe src='http://player.vimeo.com/video/40080775' width='500' height='400' frameborder='0'></iframe></div></p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/05/03/server-side-apps-with-access-to-device-functionality-aka-accessing-the-ios-geolocation-api-with-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RAP mobile 0.5.7 &#8211; New and Noteworthy</title>
		<link>http://eclipsesource.com/blogs/2012/05/02/rap-mobile-0-5-7-new-and-noteworthy/</link>
		<comments>http://eclipsesource.com/blogs/2012/05/02/rap-mobile-0-5-7-new-and-noteworthy/#comments</comments>
		<pubDate>Wed, 02 May 2012 16:03:12 +0000</pubDate>
		<dc:creator>Moritz Post</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[browser]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[dialog]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[rap mobile]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7581</guid>
		<description><![CDATA[Once again we are releasing a new version of RAP mobile. This latest release 0.5.7 brings with it a very cool new feature that we call the &#8220;Client Canvas&#8221;. This extension of the classic SWT Canvas allows you to draw freehand on your screen with your stylus or even your finger. Additional Features and API [...]]]></description>
			<content:encoded><![CDATA[<p>Once again we are releasing a new version of <a href="http://rapmobile.eclipsesource.com/">RAP mobile</a>. This latest release 0.5.7 brings with it a very cool new feature that we call the &#8220;Client Canvas&#8221;. This extension of the classic SWT Canvas allows you to draw freehand on your screen with your stylus or even your finger.</p>
<h2>Additional Features and API</h2>
<h3>Client Canvas</h3>
<p>The client canvas provides you with basic freehand drawing options, allowing you to sketch with your stylus or your finger.  Like a regular drawing program, you can choose your color, brush size and opacity. And, you can step through the history of your drawings to undo/redo certain steps. To implement this feature we built upon the SWT Canvas object that allows us to change the pen properties via the established Canvas API. To get started with drawing you&#8217;ll just need to instantiate the <code>com.eclipsesource.rap.mobile.widgets.ClientCanvas</code> instead of the regular SWT Canvas. To demonstrate the Client Canvas we have <a href="https://github.com/eclipsesource/rap-mobile-demos/blob/master/com.eclipsesource.rap.mobile.demos/src/com/eclipsesource/rap/mobile/demos/entrypoints/DrawDemo.java">created a sample</a> where you try out a little draw-by-numbers.</p>
<div align="center"><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/client-canvas.png"><img class="alignnone  wp-image-7583" title="client-canvas" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/client-canvas.png" alt="client canvas RAP mobile 0.5.7   New and Noteworthy" width="277" height="173" /></a> <a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/photo-1.png"><img class="alignnone  wp-image-7584" title="photo (1)" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/photo-1.png" alt="photo 1 RAP mobile 0.5.7   New and Noteworthy" width="225" height="173" /></a></div>
<h2>Android</h2>
<h3>Browser</h3>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/browser-android.png"><img class="alignright  wp-image-7596" title="browser-android" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/browser-android.png" alt="browser android RAP mobile 0.5.7   New and Noteworthy" width="229" height="133" /></a>The RAP mobile Android client is catching up with iOS on browser support. We now support the SWT Browser widget, allowing you to show full websites or custom HTML snippets inside your RAP mobile application. We also support the <code>Browser.evaluate()</code> and <code>Browser.execute()</code> methods to execute javascript in the browser on the Android device and to make it possible to send execution results back to server. The screenshot to the right shows examples that display a full website, an HTML snippet and the execution of a custom javascript function.</p>
<h3>Support for various SWT Shell style flags</h3>
<p>SWT offers many ways to customize the appearance of a shell via the style flags passed to the Shell constructor. These flags are also important to create SWT Dialogs. We now support the additional SWT shell styles TITLE, BORDER and *_MODAL. The following screenshots demonstrate the various style combinations.</p>
<div align="center"><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/dialogWithTitleAndIcon.png"><img class="alignnone  wp-image-7619" title="dialogWithTitleAndIcon" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/dialogWithTitleAndIcon.png" alt="dialogWithTitleAndIcon RAP mobile 0.5.7   New and Noteworthy" width="112" height="106" /></a> <a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/dialogWithTitle.png"><img class="alignnone  wp-image-7618" title="dialogWithTitle" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/dialogWithTitle.png" alt="dialogWithTitle RAP mobile 0.5.7   New and Noteworthy" width="109" height="106" /></a> <a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/dialogWithoutTitle.png"><img class="alignnone  wp-image-7617" title="dialogWithoutTitle" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/dialogWithoutTitle.png" alt="dialogWithoutTitle RAP mobile 0.5.7   New and Noteworthy" width="162" height="106" /></a> <a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/dialogDefault.png"><img class="alignnone  wp-image-7616" title="dialogDefault" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/05/dialogDefault.png" alt="dialogDefault RAP mobile 0.5.7   New and Noteworthy" width="258" height="106" /></a></div>
<h3>Bugfixes</h3>
<p>We are constantly working towards a high level of stability and solid performance, and in this release, we squashed some bugs which deserve special mention:</p>
<ul>
<li>Fixed an issue where selecting elements inside a vertical ScrolledComposite was not possible</li>
<li>The GraphicalContext used android APIs not available on the supported basline version android 2.1 (API level 7).</li>
</ul>
<h2>iOS</h2>
<p>You&#8217;re probably already enjoying the browser support on our RAP mobile iOS client, and can now also take the Client Canvas for a test drive.  Two other things that you might notice in this release are a new UI hint to show how to enter the developer SystemMenu and improvements to modalShell rendering and animation.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/05/02/rap-mobile-0-5-7-new-and-noteworthy/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eclipse Testing Day 2012 Submissions Open</title>
		<link>http://eclipsesource.com/blogs/2012/04/26/eclipse-testing-day-2012-submissions-open/</link>
		<comments>http://eclipsesource.com/blogs/2012/04/26/eclipse-testing-day-2012-submissions-open/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 12:05:02 +0000</pubDate>
		<dc:creator>Matthias Kempka</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[events]]></category>
		<category><![CDATA[jubula]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7573</guid>
		<description><![CDATA[This year marks the third Eclipse Testing Day, where the community gathers for a day focusing on testing with, for and at Eclipse. The event takes place on September 05 in Darmstadt. The general theme for this year&#8217;s testing day is &#8220;Testing and Beyond&#8221;. Topics of interest include: Testing Eclipse applications Testing within the Eclipse [...]]]></description>
			<content:encoded><![CDATA[<p>This year marks the third Eclipse Testing Day, where the community gathers for a day focusing on testing with, for and at Eclipse. The event takes place on September 05 in Darmstadt.</p>
<p>The general theme for this year&#8217;s testing day is &#8220;Testing and Beyond&#8221;. Topics of interest include:</p>
<ol>
<li>Testing Eclipse applications</li>
<li>Testing within the Eclipse Ecosystem</li>
<li>Testing on Eclipse Projects</li>
<li>Design for testability in Eclipse</li>
<li>Case studies of testing projects</li>
<li>Eclipse tooling and technology for the test process</li>
<li>Testing as a part of the application lifecycle</li>
<li>Continuous integration and testing for Eclipse applications</li>
</ol>
<p>The call for papers is open. If you would like give a talk on one of the given topics, or maybe if you have a visionary &#8216;beyond&#8217;, don&#8217;t hesitate to submit a talk.  The deadline for submissions is May 31st.</p>
<p>You&#8217;ll find more information on the wiki at <a href="http://wiki.eclipse.org/Eclipse_Testing_Day_2012">http://wiki.eclipse.org/Eclipse_Testing_Day_2012</a></p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/04/26/eclipse-testing-day-2012-submissions-open/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Jnect: Kinect and Eclipse</title>
		<link>http://eclipsesource.com/blogs/2012/04/23/jnect-kinect-and-eclipse/</link>
		<comments>http://eclipsesource.com/blogs/2012/04/23/jnect-kinect-and-eclipse/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 10:30:43 +0000</pubDate>
		<dc:creator>Jonas Helming</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[syndicate]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7547</guid>
		<description><![CDATA[You might have seen me waving and moving around a lot recently during presentations at Democamps and during my talks at EclipseCon&#8217;s. The reason is not a new style in giving talks, but it is the topic: the Jnect project. The goal of this project is to connect the Microsoft Kinect SDK with Eclipse/Java. In [...]]]></description>
			<content:encoded><![CDATA[<p>You might have seen me waving and moving around a lot recently during presentations at Democamps and during my talks at EclipseCon&#8217;s. The reason is not a new style in giving talks, but it is the topic: the <a href="http://jnect.org">Jnect project</a>.</p>
<p>The goal of this project is to connect the Microsoft Kinect SDK with Eclipse/Java. In case you do not know the Kinect, it is a device originally built for the Xbox to track human bodies. As persons can be tracked in real-time it allows you to control games, menus and more, just by moving your body. Additionally the Kinect supports speech recognition for pre-defined phrases. Microsoft has also released an SDK for Windows, which allows access to the features of the Kinect in C++/C#. However, there was one important thing missing: Eclipse <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Jnect: Kinect and Eclipse" class='wp-smiley' title="Jnect: Kinect and Eclipse" /> </p>
<p>Therefore, about a year ago, I and a group of interested students started to work on a way to make the features of Kinect available in Eclipse. Unlike other approaches, we did not want to connect directly to the device and process the raw data. Instead we decided that it would be nice to reuse Microsoft&#8217;s SDK which delivers the data processed and on a very high level of abstraction. As an example the SDK delivers the exact positions of different parts of the body of a tracked person.</p>
<p>Building on the SDK, the tricky part was obviously the bridge from C to Java. In a first prototype we used a small C program running in the background and a socket connection to transfer the data from the original SDK to a plugin in Eclipse. This is what I demonstrated last fall at EclipseCon Europe:</p>
<p><iframe src="http://www.youtube.com/embed/iJHR45u0wmo" frameborder="0" width="560" height="315"></iframe><br />
In winter another team of students worked on an improvement &#8211; the adaptation via JNI. This is more stable and it doesn&#8217;t require a second program running, and therefore creates real interoperability.</p>
<p>Not surprisingly we created Jnect as an Eclipse plugin. Recently we created an Eclipse Labs project hosting the plugin (see jnect.org) and we already have a beta-release. It is not perfect yet, but you can test the capabilities of the Kinect and find your use case. Of course, we welcome any feedback and possible contributions. At EclipseCon North America, we were even able to implement a game based on Jnect, which was played during the awards ceremony. The goal was to step thru code as fast as possible using gestures and voice commands. Of course, we have chosen more difficult gestures then just moving a hand. Here you see one of the participants executing the “Step Over” Gesture  <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Jnect: Kinect and Eclipse" class='wp-smiley' title="Jnect: Kinect and Eclipse" /> </p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/04/7021496283_dc430a1bbb_b.jpg"><img class="aligncenter  wp-image-7558" title="7021496283_dc430a1bbb_b" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/04/7021496283_dc430a1bbb_b.jpg" alt="7021496283 dc430a1bbb b Jnect: Kinect and Eclipse" width="570" height="378" /></a></p>
<p>During on our session at EclipseCon, we demonstrated how to move and resize windows in Eclipse 4 using your hands (a little like minority report). This and other code examples are available on jnect.org. You&#8217;ll also find videos demonstrating the capabilities of the Kinect as it controls different parts of Eclipse.</p>
<p>Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/04/23/jnect-kinect-and-eclipse/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Server-Side Apps with RAP mobile &#8211; the programming model</title>
		<link>http://eclipsesource.com/blogs/2012/04/20/server-side-apps-with-rap-mobile-the-programming-model/</link>
		<comments>http://eclipsesource.com/blogs/2012/04/20/server-side-apps-with-rap-mobile-the-programming-model/#comments</comments>
		<pubDate>Fri, 20 Apr 2012 07:38:17 +0000</pubDate>
		<dc:creator>Holger Staudacher</dc:creator>
				<category><![CDATA[news]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[rap mobile]]></category>
		<category><![CDATA[server-side apps]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7497</guid>
		<description><![CDATA[In my last post I gave you an overview of server-side apps and how they relate to RAP mobile. In this post I want to dive into some technical details. I&#8217;ll assume that you are a Java programmer and that you are familiar with servlets and tomcat. Not necessary but really helpful is some knowledge of [...]]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://eclipsesource.com/blogs/2012/04/16/serving-mobile-devices-with-server-side-apps/">my last post</a> I gave you an overview of server-side apps and how they relate to <a href="http://rapmobile.eclipsesource.com/">RAP mobile</a>. In this post I want to dive into some technical details. I&#8217;ll assume that you are a Java programmer and that you are familiar with servlets and tomcat. Not necessary but really helpful is some knowledge of <a href="http://www.osgi.org/Main/HomePage">OSGi</a>.</p>
<p>So, let&#8217;s get started. To create <a href="http://rapmobile.eclipsesource.com/">RAP mobile</a> Applications you&#8217;ll write Java Code only. This of course means you will have some dependencies. The basic dependencies that result from using RAP mobile are two open source jar files. One is the widget toolkit which includes the <a href="http://wiki.eclipse.org/SWT">SWT API</a> for writing UIs and some other server stuff. The widget toolkit is part of the <a href="http://eclipse.org/rap">Eclipse RAP project</a> and is called RWT (RAP Widget Toolkit) and it&#8217;s jar file is named <em>org.eclipse.rap.rwt_VERSION.QUALIFIER.jar</em>. The second jar file is the RAP mobile jar itself. It&#8217;s called <em>com.eclipsesource.rap.mobile_VERSION.QUALIFIER.jar</em> and contains additional API and other mobile-related stuff. Of course these two jars have dependencies too. These are <em>javax.servlet</em>, <em>org.json</em> and a few others. They are included in the RAP mobile target (see the target definition file in the examples) and can also be consumed manually or via Maven.</p>
<p>Once you have set up your Java Project and dependencies (<a href="https://github.com/eclipsesource/rap-mobile-demos">you can use this template</a>) the first thing you&#8217;ll need to write is an ApplicationConfiguration. It can look like this:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Configuration <span style="color: #000000; font-weight: bold;">implements</span> ApplicationConfiguration <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> configure<span style="color: #009900;">&#40;</span> Application application <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    Bootstrapper.<span style="color: #006633;">bootstrap</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    application.<span style="color: #006633;">addEntryPoint</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;/my-app&quot;</span>, MyEntryPoint.<span style="color: #000000; font-weight: bold;">class</span>, <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>You may notice that the really interesting stuff happens in the configure method. This method will be called by the framework and is used to configure your environment. You&#8217;ll use the configure method most often to add <em>IEntryPoints</em>. An <em>IEntryPoint</em> marks the entry point of your UI code and can look like the following <em>MyEntryPoint</em>.  (If you want to go into more depth on the UI Code,  take a look at the SWT resources and <a href="https://github.com/eclipsesource/rap-mobile-demos/tree/master/com.eclipsesource.rap.mobile.demos/src/com/eclipsesource/rap/mobile/demos/entrypoints">the examples</a>.)</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MyEntryPoint <span style="color: #000000; font-weight: bold;">implements</span> IEntryPoint <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">int</span> createUI<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    Display display <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Display<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    Shell shell <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Shell<span style="color: #009900;">&#40;</span> display, SWT.<span style="color: #006633;">NO_TRIM</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    shell.<span style="color: #006633;">setLayout</span><span style="color: #009900;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">GridLayout</span><span style="color: #009900;">&#40;</span> <span style="color: #cc66cc;">1</span>, <span style="color: #000066; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #003399;">Button</span> button <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">Button</span><span style="color: #009900;">&#40;</span> shell, SWT.<span style="color: #006633;">PUSH</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    button.<span style="color: #006633;">setLayoutData</span><span style="color: #009900;">&#40;</span> <span style="color: #000000; font-weight: bold;">new</span> GridData<span style="color: #009900;">&#40;</span> SWT.<span style="color: #006633;">BEGINNING</span>, SWT.<span style="color: #006633;">CENTER</span>, <span style="color: #000066; font-weight: bold;">false</span>, <span style="color: #000066; font-weight: bold;">false</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    button.<span style="color: #006633;">setText</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">&quot;Hello World&quot;</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    shell.<span style="color: #006633;">open</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>In the configure method of the ApplicationConfiguration you need to connect the entry point to a path, e.g. &#8220;/my-app&#8221;. This will make your application available using this URL <em>http://SERVER:PORT/my-app</em>. Next, you need to hook your ApplicationConfiguration Implementation to the framework.</p>
<p>At this point you need to make a choice between two RAP mobile operating modes. The easiest mode to use is RAP mobile together with plain servlet technology. For this variant you&#8217;ll write a web.xml to hook the framework to your application, similar to the example below:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">&lt;!--?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?--&gt;</span>
&nbsp;
org.eclipse.rwt.Configurator
my.Configurator
&nbsp;
org.eclipse.rwt.engine.RWTServletContextListener
&nbsp;
    rwtServlet
    org.eclipse.rwt.engine.RWTServlet
&nbsp;
    rwtServlet
    /*</pre></div></div>

<p>The more advanced operating mode is to use it together with OSGi, which I prefer because I like modularity much. But this requires that you have basic knowledge about OSGi and the service model. Hooking the ApplicationConfiguration in this scenario is pretty straight forward. All you have to do is register your implementation as an OSGi service and starting one more bundle called <em>org.eclipse.rap.rwt.osgi</em>. In an activator it can look like this:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> <span style="color: #003399;">Activator</span> <span style="color: #000000; font-weight: bold;">implements</span> BundleActivator <span style="color: #009900;">&#123;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">private</span> ServiceRegistration registration<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> start<span style="color: #009900;">&#40;</span>BundleContext bundleContext<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
	  Configuration configuration <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Configuration<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	  registration <span style="color: #339933;">=</span> bundleContext.<span style="color: #006633;">registerService</span><span style="color: #009900;">&#40;</span> ApplicationConfiguration.<span style="color: #000000; font-weight: bold;">class</span>.<span style="color: #006633;">getName</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>,
	                                                configuration,
	                                                <span style="color: #000066; font-weight: bold;">null</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> stop<span style="color: #009900;">&#40;</span>BundleContext bundleContext<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">Exception</span> <span style="color: #009900;">&#123;</span>
		registration.<span style="color: #006633;">unregister</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Now you can simply launch your OSGi framework &#8211; but, don&#8217;t forget the HttpService (it is in the org.eclipse.osgi.services bundle).  And now, the fun part. Point your mobile client to the url of your server and enjoy the mobile UI which should look like the advanced one below! <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Server Side Apps with RAP mobile   the programming model" class='wp-smiley' title="Server Side Apps with RAP mobile   the programming model" /> </p>
<p style="text-align: center;"><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/04/Screen-Shot-2012-04-20-at-9.29.10-AM.png"><img class="aligncenter  wp-image-7552" title="Screen Shot 2012-04-20 at 9.29.10 AM" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/04/Screen-Shot-2012-04-20-at-9.29.10-AM.png" alt="Screen Shot 2012 04 20 at 9.29.10 AM Server Side Apps with RAP mobile   the programming model" width="218" height="425" /></a></p>
<p>If you haven&#8217;t tested the clients already, don&#8217;t hesitate to <a href="http://rapmobile.eclipsesource.com/developers/">request them here</a>. We have also created some <a href="https://github.com/eclipsesource/rap-mobile-demos">examples which can be found at github</a>.  In upcoming posts, we&#8217;ll provide a more detailed tutorial for both operating modes.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/04/20/server-side-apps-with-rap-mobile-the-programming-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Serving mobile devices with server-side apps</title>
		<link>http://eclipsesource.com/blogs/2012/04/16/serving-mobile-devices-with-server-side-apps/</link>
		<comments>http://eclipsesource.com/blogs/2012/04/16/serving-mobile-devices-with-server-side-apps/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 07:10:34 +0000</pubDate>
		<dc:creator>Holger Staudacher</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[rap mobile]]></category>
		<category><![CDATA[server-side apps]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7487</guid>
		<description><![CDATA[You may have read the title of this post and are asking yourself, &#8220;what the heck is a server-side app?&#8221;. Let me try to explain. When an app works with sensitive data there is always a security risk in storing the data on the device. If the device is lost or stolen the sensitive data [...]]]></description>
			<content:encoded><![CDATA[<p>You may have read the title of this post and are asking yourself, &#8220;what the heck is a server-side app?&#8221;. Let me try to explain. When an app works with sensitive data there is always a security risk in storing the data on the device. If the device is lost or stolen the sensitive data is lost or worse, no longer confidential.  A server-side app can prevent this. Data is stored on the server and the client displays and manipulates it, but no data is stored locally. I think you&#8217;ve got it: server-side apps are nothing more than a thin client approach adopted to the mobile/app sector.</p>
<p>When you&#8217;re confronted with this problem, you&#8217;ve probably either started by designing the server application or are porting an existing server application to be accessible by mobile devices. So, your next step will be to plan how to visualize the server-side app on the clients. The most common approach is to build an App for iOS, Android and so on and render the data in a more or less generic UI. You&#8217;ll invest a lot of effort in creating and securing the communication between server and client to get your server-side app ready. And, you&#8217;ll have joined the club of developers, including me, who have reinvented the wheel once more.</p>
<p>This is the problem we are solving with <a href="http://rapmobile.eclipsesource.com/">RAP mobile</a>. RAP mobile consists of a server and generic clients, with the server based on standard servlet technology and a <a href="http://www.codeaffine.com/2011/08/26/raprwt-osgi-integration/">kick-ass OSGi integration</a>. The server&#8217;s open source and hosted within the <a href="http://eclipse.org/rap/">Eclipse RAP project</a>. The generic clients currently exist for iOS and Android, and in both cases, all the clients do is talk to the server and display a UI. But, every other server-side app does this too. What&#8217;s special here?</p>
<p>With usual server-side apps you have to couple the client to the server. The data and message contents are defined and the client needs to understand them, resulting in a more or less a tight coupling between these two all created by yourself. With RAP mobile, the work on communication is done by the framework for you. The server produces <a href="http://json.org/">JSON</a> based messages that the RAP mobile clients can understand. The messages contain information like &#8220;Create a Window, create a Button, set the text of the button to &#8230;&#8221;, (I think you get it). When you sketch this out it looks like this:</p>
<p style="text-align: center;"><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/04/architecture.png"><img class="aligncenter  wp-image-7491" title="architecture" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/04/architecture.png" alt="architecture Serving mobile devices with server side apps" width="551" height="329" /></a></p>
<p>This approach allows us and you (because the server&#8217;s open source) to come up with any client as long as it understands JSON. I think the major benefit <a href="http://rapmobile.eclipsesource.com/">RAP mobile</a> brings is that you can concentrate on the server-side and your domain requirements, instead of programming a generic UI for every platform.</p>
<p>When you&#8217;ve read this far you might now be asking yourself, &#8220;When everything is on the server side and I don&#8217;t have to write a native UI for the mobile devices, eg. in Objective-C, how does the native UI get created?&#8221;  And now the Eclipse open source project comes into the game with <a href="http://eclipse.org/rap/">Eclipse RAP</a>. RAP provides a widget toolkit which is based on SWT, which means that you write your UI completely in Java. When RAP was created the goal was to enable a developer to create a desktop and a web application with the same code base. As a result, the RAP developers solved problems like multi-user awareness, clustering support, styling and many many more. In the meantime, we&#8217;ve gone even further and extended this idea to the mobile space. (And, we&#8217;re making good progress, because on the server side we&#8217;re working with a mature technology.) In short, it means that when you write a RAP mobile app for iOS, Android and so on, you don&#8217;t have to worry about the native client, but you can write your UI in plain Java and run it in the server.</p>
<p>If you&#8217;re hungry for more <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_wink.gif' alt="icon wink Serving mobile devices with server side apps" class='wp-smiley' title="Serving mobile devices with server side apps" /> , visit the <a href="http://rapmobile.eclipsesource.com/">RAP mobile website</a>, <a href="http://rapmobile.eclipsesource.com/demos/">watch the demo videos</a>, <a href="https://github.com/eclipsesource/rap-mobile-demos">clone the examples</a> and run your own app. To join the developer preview, you&#8217;ll need to complete a <a href="http://rapmobile.eclipsesource.com/developers/">short form</a> but, in a few months we will move into an open beta. I hope you will have fun with this as much as I do. Any feedback is welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/04/16/serving-mobile-devices-with-server-side-apps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

