Eclipse Zone is brought to you in partnership with:

I've been a zone leader with DZone since 2008, and I'm crazy about community. Every day I get to work with the best that JavaScript, HTML5, Android and iOS has to offer, creating apps that truly make at difference, as principal front-end architect at Avego. James is a DZone Zone Leader and has posted 639 posts at DZone. You can read more from them at their website. View Full User Profile

Riena - A New Adventure In Eclipse

03.31.2009
| 52106 views |
  • submit to reddit

The Riena project has just released it's 1.0 version recently. In this article, I'll show you how to get going with Riena by walking you through my own experiences using the project. As well as providing a little background on the project I will show how to create a UI with Riena, and run through an example of remote services. 

Some Background

First, what is Riena? I wrote an article about Riena last August, discussing how it adds a new dimension to Eclipse RCP applications by providing a more "friendly" user interface to non-engineers. But the main concept behind Riena is to provide a foundation for building multi-tier enterprise client/server application. Riena makes the usage of OSGi (Equinox) services easier by providing access to both the local and remote services in a transparent way. So, no matter where your OSGi bundle is, whether on the client or the server, you can access it the same way through Riena.

The second release of Riena is already in planning and will include enhanced features and components for the development of user interfaces and navigation.

The complete list of concepts and features in Riena are pretty complete. They include: 

  • Injecting Services and Extensions
  • Remote Services
  • Security
  • ObjectTransaction
  • Stages
  • Client Monitoring
  • Navigation
  • Look and Feel
  • UI Filters
  • Login support
  • Custom Ridgets

 

Getting Started 

Now that we know a bit about the project, it's time to take it for a test drive. For this example I am using Eclipse 3.5M6. To get started there are two approaches that you can take. One is to download the full Riena target platform including Equinox and SDK from http://www.eclipse.org/downloads/download.php?file=/rt/riena/Riena-1.1.0.M5-platform-win32.win32.x86.zip.

I did that to keep my current Eclipse installation lighter. (Aside: I do that quite often, and have lots of Eclipse installations around my machine). If you just want to add Riena to your current application, you can just add the Riena specific stuff from http://www.eclipse.org/downloads/download.php?file=/rt/riena/Riena-1.0.0.zip

There is an update site available for the UI wizard.The wiki page has the wrong URL for the update site - you'll need to point to http://download.eclipse.org/rt/riena/updatesites/org.eclipse.riena.ui.templates.updatesite/

I'll be using this throughout this tutorial, so it's worth getting this included.


Full, and official, getting started instructions are available from the Riena wiki page.

Setting Up The Target Platform

First we need to specify our target platform for our application to be where Riena is "installed".This step does not apply if you have downloaded the Riena components for your current installation.

Here I have used C:\Riena as my install location: 

 

Clicking Finish here will set up a target definition. Now you can give the target a more friendly name

 

All you need to do now is to set this target as active for your current plug-in development:

 

Legacy
Article Resources: 

Comments

Christopher Brind replied on Tue, 2009/03/31 - 3:51am

Great stuff.  Wasn't aware of Rienna, but I am definatlely putting this on my hot list.  Thanks for the info.

Tom Meier replied on Tue, 2009/03/31 - 6:33am

Nice article, James. Rienna looks quite nice and looks like it's making life for us RCP developers a lot easier. However I think there's one big disadvantage to Rienna: Again we're relying on a different framework for multiple application layers such as services and UI. On the other hand an all-in-one solution such as seems to be good enough for small to mid-sized applications. I'm curious as to see whether this framework finds its place among all the other frameworks in the Java world.

Nevertheless a great article and surely looks like you spent a bit of time here :) Keep up the good work!

Tom

James Sugrue replied on Tue, 2009/03/31 - 7:05am in response to: Tom Meier

Thanks Tom

I see what you mean, and it has crossed my mind that this is another approach to the same problem. But I think projects in Eclipse work closely enough, and that there could be some crossover with what Riena does and what ECF provides in remote services.  I'm sure we'll see one recommended approach to remote services soon enough, at least in the Eclipse community 

 James

Slim Ouertani replied on Tue, 2009/03/31 - 11:03am

Great project and article. I started a small developing a small kernel using Hessian and Osgi transparently. So where can I get source code ? :)
 

James Sugrue replied on Tue, 2009/03/31 - 11:05am in response to: Slim Ouertani

Thanks Slim!

Should appear just at the bottom of the article : http://java.dzone.com/sites/all/files/RienaExample.zip

 

Denis Robert replied on Tue, 2009/03/31 - 1:32pm

Have you tested your code? There's a reference there to a "org.eclipse.riena.communication.core.factory.Register" class which I can't find anywhere, and certainly not in the "org.eclipse.riena.communication.core" bundle where I'd expect it to be. Or are you using non-release level code?

Elias Volanakis replied on Tue, 2009/03/31 - 2:04pm

Works for me using the Riena 1.1.0.M6 download. HTH, Elias.

Ekkehard Gentz replied on Tue, 2009/03/31 - 2:20pm in response to: Tom Meier

tom, you're not relying to a complete framework if using Riena. You can choose what you like: remote services from Riena ... or ECF or another one UI complete from Riena or only the Ridgets in normal RCP Views. Riena is completely build as an OSGI client-server solution and you can use and combine the bundles as you like it. so you can start perhaps with remoting and your current RCP app or you start using Ridgets to make your life with SWT Widgets and Eclipse Databinding easier. ekke

Slim Ouertani replied on Tue, 2009/03/31 - 5:40pm in response to: James Sugrue

Thanks, but I speak about Riena source code. Is it possible to get it?

James Sugrue replied on Wed, 2009/04/01 - 1:38am in response to: Denis Robert

Hi Denis

 I ran this using Gailileo 3.5M6 and the latest release  of Riena. All fully tested 

James

James Sugrue replied on Wed, 2009/04/01 - 1:44am in response to: Slim Ouertani

You should be able to get it on the Eclipse CVS repository. It's an RT project so will be under /cvsroot/rt/org.eclipse.riena/

Roman Porotnikov replied on Wed, 2009/04/01 - 4:55am

UI wizard update site URL at Riena wiki: fixed.

Gavin Mogensen replied on Sun, 2009/04/12 - 10:14pm

Nice - thanks for the article

James Ervin replied on Thu, 2009/04/30 - 10:20am

You know this is just like a project I worked on a few years ago, well at least the OSGi service publishing part. It makes me wonder though, how hard would it be to leverage this through Spring DM? Spring DM is meant to do all the stuff about registering the service and getting access to it (all the things you are doing with the BundleContext) and handle it for you, making use of DI. In fact, this is probably so obvious that it is already being done somewhere, I am just not aware of it.

James Sugrue replied on Thu, 2009/05/14 - 2:14am in response to: James Ervin

Interesting point James - it should be possible in Spring DM. I haven't seen it with DM yet.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.