<?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; eclipse</title>
	<atom:link href="http://eclipsesource.com/blogs/category/eclipse/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>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>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>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>
		<item>
		<title>Modeling Symposium @ EclipseCon North America 2012 &#8211; Slides</title>
		<link>http://eclipsesource.com/blogs/2012/04/04/modeling-symposium-eclipsecon-north-america-2012-slides/</link>
		<comments>http://eclipsesource.com/blogs/2012/04/04/modeling-symposium-eclipsecon-north-america-2012-slides/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 10:36:39 +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=7422</guid>
		<description><![CDATA[Thank you to everyone who attended or gave a talk at the modeling symposium. I think we had a very interesting event and we got very good feedback. Maybe the symposium should become an regulary event at EclipseCon&#8217;s. I would like to share the links to the presentations, which were shared with me. If you [...]]]></description>
			<content:encoded><![CDATA[<p>Thank you to everyone who attended or gave a talk at the modeling symposium. I think we had a very interesting event and we got very good feedback. Maybe the symposium should become an regulary event at EclipseCon&#8217;s.</p>
<p>I would like to share the links to the presentations, which were shared with me. If you gave a talk and your slides are missing, please send me the link, I will post it here.</p>
<p>&nbsp;</p>
<p><strong>Talk 2</strong></p>
<p><strong>Presenter: Mickael Istria</strong></p>
<p><strong>Title: Iterative and agile principles applied to generated code</strong></p>
<p><strong>Slides:</strong> <a href="http://www.slideshare.net/mickaelistria/iterative-andagilecodegen">http://www.slideshare.net/mickaelistria/iterative-andagilecodegen</a></p>
<p>&nbsp;</p>
<p><strong>Talk 3</strong></p>
<p><strong>Title: What’s new in EGF (Eclipse Generation Factories)</strong></p>
<p><strong>Presenter: Benoit Langlois</strong></p>
<p><strong>Slides</strong>: <a href="http://wiki.eclipse.org/images/4/47/EclipseCon_US_2012-Whats_new_in_EGF.pdf">http://wiki.eclipse.org/images/4/47/EclipseCon_US_2012-Whats_new_in_EGF.pdf</a></p>
<p>&nbsp;</p>
<p><strong>Talk 4</strong></p>
<p><strong>Title: You need to extend your models? EMF Facets vs. EMF Profiles</strong></p>
<p><strong>Presenter: Philip Langer &amp; Hugo Bruneliere </strong></p>
<p><strong>Slides: </strong><a href="http://www.slideshare.net/HugoBruneliere/you-need-to-extend-your-models-emf-facet-vs-emf-profiles-12163425">http://www.slideshare.net/HugoBruneliere/you-need-to-extend-your-models-emf-facet-vs-emf-profiles-12163425</a></p>
<p>&nbsp;</p>
<p><strong>Talk 5</strong></p>
<p><strong>Title: EMF Diff/Merge</strong></p>
<p><strong>Presenter: Olivier Constant</strong></p>
<p><strong>Slides:</strong> <a href="http://wiki.eclipse.org/images/9/98/EclipseCon_US_2012-EDM.pdf">http://wiki.eclipse.org/images/9/98/EclipseCon_US_2012-EDM.pdf</a></p>
<p>&nbsp;</p>
<p><strong>Talk 6</strong></p>
<p><strong>Title: The CDO Model Repository<br />
</strong></p>
<p><strong>Presenter: Eike Stepper</strong></p>
<p><strong>Slides: <a href="http://www.slideshare.net/Holmes70/cdo-ignite-12281516">http://www.slideshare.net/Holmes70/cdo-ignite-12281516</a> </strong></p>
<p>&nbsp;</p>
<p><strong>Talk 7</strong></p>
<p><strong>Title: EMFStore</strong></p>
<p><strong>Presenter: Maximilian Kögel</strong></p>
<p><strong>Slides:</strong> <a href="http://www.slideshare.net/koegel/emfstore-demo-eclipsecon2012">http://www.slideshare.net/koegel/emfstore-demo-eclipsecon2012</a></p>
<p>&nbsp;</p>
<p><strong>Talk 8</strong></p>
<p><strong>Title: EMF Client Platform</strong></p>
<p><strong>Presenter: Jonas Helming</strong></p>
<p><strong>Slides:</strong> <a href="http://www.slideshare.net/JonasHelming/emf-client-platform-modeling-symposium-eclipsecon-north-america-2012">http://www.slideshare.net/JonasHelming/emf-client-platform-modeling-symposium-eclipsecon-north-america-2012</a></p>
<p>&nbsp;</p>
<p><strong>Talk 9</strong></p>
<p><strong>Presenter: Mickael Istria</strong></p>
<p><strong>Title: What’s up GMF Tooling?</strong></p>
<p><strong>Slides:</strong> <a href="http://www.slideshare.net/mickaelistria/iterative-andagilecodegen">http://www.slideshare.net/mickaelistria/iterative-andagilecodegen</a></p>
<p>&nbsp;</p>
<p><strong>Talk 10</strong></p>
<p><strong>Presenter: Andres Alvarez &amp; Ruben de Dios</strong></p>
<p><strong>Title: GMF simple map editor</strong></p>
<p><strong>Slides:</strong> <a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/04/GMF-Simple-Mapping-Editor-EMS.pdf">GMF Simple Mapping Editor (EMS)</a></p>
<p>&nbsp;</p>
<p><strong>Talk 13</strong></p>
<p><strong>Title: MDT/OCL</strong></p>
<p><strong>Presenter: Ed Willink</strong></p>
<p><strong>Slides:</strong> <a href="http://www.eclipse.org/modeling/mdt/ocl/docs/publications/EclipseConNA2012/EclipseCon2012.pdf">http://www.eclipse.org/modeling/mdt/ocl/docs/publications/EclipseConNA2012/EclipseCon2012.pdf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/04/04/modeling-symposium-eclipsecon-north-america-2012-slides/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>p2 in DC</title>
		<link>http://eclipsesource.com/blogs/2012/03/23/p2-in-dc/</link>
		<comments>http://eclipsesource.com/blogs/2012/03/23/p2-in-dc/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 05:07:17 +0000</pubDate>
		<dc:creator>Ian Bull</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[p2]]></category>
		<category><![CDATA[syndicate]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7346</guid>
		<description><![CDATA[Next week I&#8217;ll be at EclipseCon in Reston, Virginia.  EclipseCon has always been my favorite conference and if my math hasn&#8217;t failed me, this will be my 6th one. I&#8217;ll be giving two presentations on p2 (and likely spending lots of time in the bar talking about p2).  The first presentation is a very gentle [...]]]></description>
			<content:encoded><![CDATA[<p>Next week I&#8217;ll be at <a href="http://www.eclipsecon.org/2012/">EclipseCon</a> in Reston, Virginia.  EclipseCon has always been my favorite conference and if my math hasn&#8217;t failed me, this will be my 6th one.</p>
<p><a href="http://www.eclipsecon.org/2012/"><img class="alignnone" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/03/eclipsecon.png" alt="eclipsecon p2 in DC" width="480" height="60" title="p2 in DC" /></a></p>
<p>I&#8217;ll be giving two presentations on p2 (and likely spending lots of time in the bar talking about p2).  The first presentation is a very <a href="http://www.eclipsecon.org/2012/sessions/gentle-introduction-p2">gentle introduction to p2</a>.  In this talk we will introduce p2 more pragmatically, presenting the relevant files (profile, content.xml, …), tools (director, mirror, …) and concepts.</p>
<p>In the second talk, <a href="http://www.eclipsecon.org/2012/sessions/its-raining-bytes-scaling-p2-using-cloud">It&#8217;s Raining Bytes</a>, we&#8217;ll discuss how we scale p2 using a variety of cloud technologies.  In particular, we&#8217;ll discuss how we deploy over 64,000 plugins (and over store over 500,000 IUs) using different AWS services.</p>
<p>If you&#8217;re interested in p2, Yoxos, Eclipse releng, modeling or anything Eclipse related, look for me in the bar or stop by one of my talks.</p>
<p>I look forward to seeing everyone next week!</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/03/23/p2-in-dc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CKEditor for RAP</title>
		<link>http://eclipsesource.com/blogs/2012/03/22/ckeditor-for-rap/</link>
		<comments>http://eclipsesource.com/blogs/2012/03/22/ckeditor-for-rap/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 16:11:46 +0000</pubDate>
		<dc:creator>Tim Buschtöns</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[CKEditor]]></category>
		<category><![CDATA[Custom Widget]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[rap]]></category>
		<category><![CDATA[Rich Text Editor]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7315</guid>
		<description><![CDATA[If you ever need a WYSIWYG editor in your RAP application, look no further. I originally implemented this as an example of how JavaScript applications can be embedded in RAP as custom widgets. So if you have a similar scenario, you could also use this project as a template. The editor is fairly customizable, read [...]]]></description>
			<content:encoded><![CDATA[<p>If you ever need a WYSIWYG editor in your RAP application, <a href="http://rap.eclipsesource.com/rapdemo/examples#ckeditor">look no further</a>.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/03/ckeditor.png"><img class="alignnone size-full wp-image-7333" title="CKEditor" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/03/ckeditor.png" alt="ckeditor CKEditor for RAP" width="479" height="141" /></a></p>
<p>I originally implemented this as an example of how JavaScript applications can be embedded in RAP as custom widgets. So if you have a similar scenario, you could also use this project as a template. The editor is fairly customizable, read the <a href="https://github.com/eclipsesource/rap-ckeditor/blob/master/README.md">README</a> for details. You can get the code on <a href="https://github.com/eclipsesource/rap-ckeditor">GitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/03/22/ckeditor-for-rap/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Simple JUnit4 templates for Eclipse</title>
		<link>http://eclipsesource.com/blogs/2012/03/20/simple-junit4-templates-for-eclipse/</link>
		<comments>http://eclipsesource.com/blogs/2012/03/20/simple-junit4-templates-for-eclipse/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 14:12:18 +0000</pubDate>
		<dc:creator>Holger Staudacher</dc:creator>
				<category><![CDATA[craftsmanship]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[syndicate]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[test driven]]></category>
		<category><![CDATA[testing]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7299</guid>
		<description><![CDATA[JUnit and Eclipse are a great combination, but one thing that I missed every time I worked with JUnit4 was the code templates. Currently, Eclipse ships with pre-defined templates for JUnit3 but not for JUnit4. So, I wrote three basic JUnit4 templates that can be imported from the &#8220;Templates&#8221; Preference Page. Take a look at [...]]]></description>
			<content:encoded><![CDATA[<p>JUnit and Eclipse are a great combination, but one thing that I missed every time I worked with <a href="http://www.junit.org/">JUnit4</a> was the code templates. Currently, Eclipse ships with pre-defined templates for JUnit3 but not for JUnit4. So, I wrote three basic <a href="https://gist.github.com/2134193">JUnit4 templates</a> that can be imported from the &#8220;Templates&#8221; Preference Page. Take a look at the screenshot below to see how to get there. The templates are called <em>test</em>, <em>setup</em> and <em>teardown</em>. They all create method stubs with the right Annotation and the necessary static imports &#8211; pretty simple but I think its efficient. You can find the <a href="https://gist.github.com/2134193">templates in this gist</a>.</p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/03/Screen-Shot-2012-03-20-at-12.20.54-PM.png"><img class="aligncenter size-full wp-image-7300" title="Screen Shot 2012-03-20 at 12.20.54 PM" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/03/Screen-Shot-2012-03-20-at-12.20.54-PM.png" alt="Screen Shot 2012 03 20 at 12.20.54 PM Simple JUnit4 templates for Eclipse" width="695" height="645" /></a></p>
<p>After importing the templates you can use them in a test class by typing the first letters of each template and use the content assist (Ctrl/cmd+space) to complete. This results in an assist like the one below. By pressing enter the template will be inserted into your class. Hope this makes test writing easier <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_smile.gif' alt="icon smile Simple JUnit4 templates for Eclipse" class='wp-smiley' title="Simple JUnit4 templates for Eclipse" /> </p>
<p><a href="http://eclipsesource.com/blogs/wp-content/uploads/2012/03/Screen-Shot-2012-03-20-at-12.24.04-PM.png"><img class="aligncenter size-full wp-image-7301" title="Screen Shot 2012-03-20 at 12.24.04 PM" src="http://eclipsesource.com/blogs/wp-content/uploads/2012/03/Screen-Shot-2012-03-20-at-12.24.04-PM.png" alt="Screen Shot 2012 03 20 at 12.24.04 PM Simple JUnit4 templates for Eclipse" width="264" height="273" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/03/20/simple-junit4-templates-for-eclipse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modeling Symposium @ EclipseCon North America 2012</title>
		<link>http://eclipsesource.com/blogs/2012/03/19/modeling-symposium-eclipsecon-north-america-2012/</link>
		<comments>http://eclipsesource.com/blogs/2012/03/19/modeling-symposium-eclipsecon-north-america-2012/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 17:28:16 +0000</pubDate>
		<dc:creator>Jonas Helming</dc:creator>
				<category><![CDATA[eclipse]]></category>
		<category><![CDATA[syndicate]]></category>

		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=7289</guid>
		<description><![CDATA[We&#8217;re happy to announce the agenda for the modeling symposium at EclipseCon North America 2012 in Reston, VA. The symposium takes place on Monday afternoon, March 26th. You&#8217;ll find more information about the location under http://www.eclipsecon.org/2012/sessions/modeling-symposium. The goal of the symposium is to provide an overview of what’s hot and new in the modeling area. [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re happy to announce the agenda for the modeling symposium at EclipseCon North America 2012 in Reston, VA. The symposium takes place on Monday afternoon, March 26th. You&#8217;ll find more information about the location under <a href="http://www.eclipsecon.org/2012/sessions/modeling-symposium">http://www.eclipsecon.org/2012/sessions/modeling-symposium</a>.</p>
<p>The goal of the symposium is to provide an overview of what’s hot and new in the modeling area. We therefore decided to provide many short slots.</p>
<p>Marcelo Paternostro will open the symposium with a 1 minute teaser from his full talk:</p>
<p>“I cheated on EMF with RDF and I may do it again”  (<a href="http://www.eclipsecon.org/2012/sessions/i-cheated-emf-rdf-and-i-may-do-it-again">http://www.eclipsecon.org/2012/sessions/i-cheated-emf-rdf-and-i-may-do-it-again</a>).</p>
<p>After that we will have 13 short talks. Each speaker will have 10 minutes including questions. We hope to provide a good overview of what’s cooking in the modeling area. We are looking forward to seeing you there!</p>
<p><strong>Talk 1</strong></p>
<p><strong>Title: Jnario</strong></p>
<p><strong>Presenter: Sebastian Benz</strong></p>
<p>Description: &#8220;Jnario” is a framework helping you write executable software specifications. It leverages the expressiveness of <a href="http://www.xtend-lang.org/">Xtend</a> and is easy to integrate, as it compiles to plain <a href="http://www.junit.org/">JUnit</a> tests. In our other <a href="http://www.eclipsecon.org/2012/sessions/program-thou-shalt-behave">presentation</a> at this EclipseCon, we demonstrate how to use Jnario for writing executable acceptance specifications in a business readable fashion. This session introduces you to Jnario Specs &#8211; another language of Jnario allowing software behavior specification on a unit level. We demonstrate how you can design and document your software at the same time.</p>
<p><strong>Talk 2</strong></p>
<p><strong>Presenter: Mickael Istria</strong></p>
<p><strong>Title: Iterative and agile principles applied to generated code</strong></p>
<p>Description: When relying on code generation to produce pieces of your software, you introduce an additional step to your development workflow. This additional step introduce some more complexity, as a drawback of its high productivity. You&#8217;ll learn some practical tips to keep you project easy to maintain and benefit of generation at its maximum. Although most examples will rely on GMF Tooling, these principles also apply to other generative frameworks such as EMF and XText.</p>
<p>Basically, it will contain some tips about the generation-gap pattern, why not modifying generated code is a cool things, what are the other ways to customize without modifying. And also I&#8217;ll show how to make easier to deal with generation through iterations with GMF Tooling example. I think I can make it in 10 minutes, if we assume most people already used generation frameworks and know there drawbacks.</p>
<p><strong>Talk 3</strong></p>
<p><strong>Title: What’s new in EGF (Eclipse Generation Factories)</strong></p>
<p><strong>Presenter: Benoit Langlois</strong></p>
<p>Description: <a href="http://eclipse.org/egf/">EGF</a> (Eclipse Generation Factories) is a software factory tool. It is not restricted to text generation but addresses generation in general with issues such as orchestration of heterogeneous activities involved during a generation, generation customization, generation DSL. This talk remind what are the main concepts of EGF (Factory Component, Task, Generation Chain, Portfolio) and the new features that will be available in Juno (e.g., post-processing for model-to-text, support of Ant / JRuby / Acceleo / ATL tasks, enrichment of the EMF generation).</p>
<p><strong>Talk 4</strong></p>
<p><strong>Title: You need to extend your models? EMF Facets vs. EMF Profiles</strong></p>
<p><strong>Presenter: Philip Langer &amp; Hugo Bruneliere</strong></p>
<p>Description: When using the Eclipse Modeling Framework, directly or as part of Eclipse-based solutions, one often faces the problem of having to extend EMF models in an efficient and structured way. However, either due to technical or business reasons, the respective original EMF models/metamodels cannot be modified or “polluted” with the intended additional information.<br />
To this end, an advanced and lightweight model extension mechanism is worth a mint!</p>
<p>EMF Facet&lt;<a href="http://www.eclipse.org/modeling/emft/facet/" target="_blank">http://www.eclipse.org/modeling/emft/facet/</a>&gt; and EMF Profiles&lt;<a href="http://code.google.com/a/eclipselabs.org/p/emf-profiles/" target="_blank">http://code.google.com/a/eclipselabs.org/p/emf-profiles/</a>&gt;, respectively hosted in Eclipse-EMFT and Eclipse Labs, are two projects implementing such an extension mechanism. The former offers a way to dynamically extend models at runtime, while the latter provides a UML-like profile mechanism adapted to be used for any EMF model.<br />
In this lightning talk, we introduce both tools very briefly and directly demonstrate on a simple example how they can be used in a complementary way.</p>
<p><strong>Talk 5</strong></p>
<p><strong>Title: EMF Diff/Merge</strong></p>
<p><strong>Presenter: Olivier Constant</strong></p>
<p>Description: EMF Diff/Merge is a newly proposed project which aims to provide a lightweight, reliable and scalable engine for comparing and merging models using IDs. It particularly focuses on preserving the integrity and consistency of models during the merge process according to user-defined policies. It includes a customizable diff/merge engine and GUI components which are designed to be used by or integrated into other tools. Envisioned usages of the tool include for example: incremental model transformations, bridges between model-based tools, model refactoring, or merge of models under version control.</p>
<p><strong>Talk 6</strong></p>
<p><strong>Title: The CDO Model Repository<br />
</strong></p>
<p><strong>Presenter: Eike Stepper</strong></p>
<p>Description: CDO is a runtime platform for modeled application systems. It provides transparent and highly efficient solutions to most technical challenges with EMF models, such as scalability, transactionality, thread safety, persistence, replication, versioning or collaboration. In this talk you’ll see a brief functional overview and a demo.</p>
<p><strong>Talk 7</strong></p>
<p><strong>Title: EMFStore</strong></p>
<p><strong>Presenter: Maximilian Kögel</strong></p>
<p>Description: EMFStore (<a href="http://emfstore.org/">http://emfstore.org</a>) is an Eclipse project and a model repository featuring collaborative editing and versioning of models. In this presentation we will demonstrate the recent 0.8.9 release. Further we show how we successfully integrated the EMFStore technology into an existing industrial tool to enable collaborative editing of models and versioning. We will discuss which pitfalls we fell into and which ones we were able to avoid.</p>
<p><strong>Talk 8</strong></p>
<p><strong>Title: EMF Client Platform</strong></p>
<p><strong>Presenter: Jonas Helming</strong></p>
<p>Description: The EMF Client Platform (ECP) provides a generic and reflective user interface for arbitrary EMF models. In this demonstration we present the abilities of the recent 0.8.9 release. But, even though the UI is for free, an important question remains, “Should I use the CDO Model Repository or EMFStore to store my models? Or maybe just XMI files?” We can’t answer this question for you but we’ve done the next best thing. Committers from the EMF Client Platform, CDO and EMFStore have joined forces to enable you to seamlessly switch between the different options. We will give a preview of the upcoming major release onf the EMF Client Platform showing this.</p>
<p><strong>Talk 9</strong></p>
<p>Presenter: Mickael Istria</p>
<p>Title: What&#8217;s up GMF Tooling?</p>
<p><strong>Talk 10</strong></p>
<p><strong>Presenter: Andres Alvarez &amp; Ruben de Dios</strong></p>
<p><strong>Title: GMF simple map editor</strong></p>
<p>Description: In order to simplify the creation process of the GMF models we created a graphical tool (Based on GMF) to allow us to create a complete GMF model in a few minutes.</p>
<p><strong>More Info: </strong></p>
<p><a href="http://modelingsideoflife.wordpress.com/2011/12/13/simple-gmf-model-editor/" target="_blank">http://modelingsideoflife.wordpress.com/2011/12/13/simple-gmf-model-editor/</a></p>
<p>&nbsp;</p>
<p><strong>Talk 11</strong></p>
<p><strong>Title: EMF Texo</strong></p>
<p><strong>Presenter: Martin Taal</strong></p>
<p>Description: Texo (<a href="http://wiki.eclipse.org/Texo">http://wiki.eclipse.org/Texo</a>) is an EMF code generation and runtime framework targeted for server side web apps. I will demo entity code generation, JPA annotation generation and persistence and some main features of the runtime framework. If there is time I will show how you can adapt or extend the code generation templates making use of the Texo build in support of code formatting, manual-changes-preservation and java import resolving.<br />
A concluding slide will be spend on other not-demoed features of Texo.</p>
<p><strong>Talk 12</strong></p>
<p><strong>Title: Task-focused modeling with Mylyn, EMF and Papyrus </strong></p>
<p><strong>Presenter: Benjamin Muskalla</strong></p>
<p>Description: In order to bring the productivity benefits of the task-focused interface to engineers using Eclipse-based modeling technologies, Mylyn created a “Context Bridge” for EMF-based models and diagram editors. The result of this will be a focused mode for diagrams that shows only the elements related to the task-at-hand, dramatically reducing information overload for engineers working on large models. In addition, the task-focused interface extensions will provide Mylyn’s one-click multitasking facilities for working with models, ensuring that engineers can instantly recover from interruptions, and share model-specific expertise, when working with models in addition to what Mylyn already provides for engineers working with source code. In this session, we will showcase the use of the task-focused interface within the Ecore Tools and the Papyrus UML Editor. In addition, we will discuss the aspects of bringing the task-focused interface to model and diagram editors and will give a quick overview how to enable these for your own diagram types.</p>
<p><strong>Talk 13</strong></p>
<p><strong>Title: MDT/OCL</strong></p>
<p><strong>Presenter: Ed Willink</strong></p>
<p>Description: The major innovation in MDT/OCL for Juno is the addition of Direct OCL 2 Java generation. This enables an Ecore or UML model to be annotated with OCL constraints, so that the previously missing bodies that required manual Java can now be realised directly in a specification language and executed with the aid of the new OCL Transformation Virtual Machine. This eliminates compilation costs at run-time and replaces interpreted execution by inline code exploiting optimized dispatch tables. Combined with the OCLinEcore (Xtext) editor, OCL is finally suitable for modelers as well as Java hackers.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://eclipsesource.com/blogs/2012/03/19/modeling-symposium-eclipsecon-north-america-2012/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

