EclipseCon was great! Thanks for the feedback. Here are the PDF versions of my tutorials
- Developing Rich Clients with Eclipse 4.x RCP (together with Tom Schindl)
- Style It! The Eclipse 4 Styling Tutorial (together with Boris Bokowski)
The screen shot below shows our beloved RCP Mail demo with a bit of CSS styling. How to do this, you find in the above “Style It!” slides.
There are only a few days left until EclipseCon! If you are interested in Eclipse 4.x RCP development and CSS styling (4.x and 3.x), don’t miss our tutorials
The screen shot below shows our beloved RCP Mail demo with a bit of CSS styling.
Yesterday I released version 3.6.2 of my Eclipse RCP demo “MP3 Manager”. You find all information at the project page.
What’s new in version 3.6.2?
- Now based on target platform Eclipse 3.6.2
- New target definition project
- See project com.siemens.ct.mp3m.target
- Fixed PDE build, based on 3.6.2 (Bug 327706 is fixed!)
- New Tycho based build
- See project com.siemens.ct.mp3m.tycho (the tycho product build)
- See project com.siemens.ct.mp3m.tycho.parent (the parent pom)
- Minor code cleanup
As soon as Tycho support rootfiles in features (planned for version 0.11.0 of Tycho) I will also include the demo songs in the Tycho build.
Since MP3 Manager is a demo, I plan to support both PDE builds and Tycho builds in the future.
In the next months I am going to give some Eclipse e4 related tutorials and sessions on the following conferences: EclipseCon 2011 in Santa Clara (USA) and JAX 2011 in Mainz (Germany). I am looking forward to attending both conferences, they are always inspiring and fun.
- Developing Rich Clients with Eclipse 4.x RCP
Monday, March 21st, 09:00, 3 hours | Ballroom BC
Together with Boris Bokowski, Tom Schindl and Eric Moffatt
- Style It! The Eclipse 4 Styling Tutorial
Wednesday, March 23rd, 15:50, 2 hours | Lafayette
Together with Boris Bokowski and Bogdan Gheorghe
- Rich Client Entwicklung mit Eclipse RCP 4.0 (in German)
06.05.2011 | 09:00 – 17:00 Uhr
- Was ist neu bei der Eclipse Rich Client Platform 4.0?
04.05.2011 | 10:15 – 11:15 Uhr
At JAX, I am also planing to give a session about “Dynamic Web Applications with Equinox and Vaadin“. If you plan to attend any the above sessions, I would be happy if you join me afterwards for a chat.
I am a big fan of both OSGi and GWT (Google Web Toolkit). Unfortunately these two technologies don’t fit together very well. When you want to run OSGi on the server, RAP (Rich Ajax Platform) is one proven approach to go. While I like RAP a lot, you have to have quite a lot of Eclipse RCP know how for using it. Another alternative, if your want to run OSGi on the server and provide a modular, dynamic UI is Vaadin. Btw, Vaadin is the Finnish word for female reindeer. Vaadin is a server side RIA framework that uses GWT as rendering engine. In the last couple of days a played a bit around with Vaadin and I have to admit, I like it a lot. So, I wrote a little dynamic OSGi Vaadin demo (Download link and instructions are below). My goals for the demo were:
- Provide Bundles that contribute directly to the web application’s UI
- Just starting and stopping bundles should contribute/remove UI elements and functionality
- I wanted to implement something similar to my dynamic Swing OSGi demo
Before I started with Vaadin, I found a few interesting reads and code sample regarding OSGi and Vaadin:
- Chris Brind: “In Bed with Vaadin and OSGi“. I use Chris’ bundles in my demo.
- Neil Bartlett: Vaadin OSGi bridge at GitHub
- Petter Holmström: Creating a Modular Vaadin Application with OSGi
But back to the demo, here is a screen shot running the application in Firefox:
The idea is to support two kinds of UI contributions: views and actions. The views are inserted in a tab folder, the actions appear in the toolbar and the Action menu. I implemented a little OSGi agent as a view (Bundle View). This view shows a selection of bundles currently available. By checking/unchecking a bundle, it will be activated/stopped on the server side. If you press “Deselect All”, all bundles go to resolved state and all the UI contributions disappear immediately:
Of course you could start and stop bundles from the OSGi console directly, then you would have to refresh the browser to get the changes displayed. To get the demo running on your local machine, follow these steps:
- Make sure you have an Eclipse IDE installed
- Download the demo sources and target platform osgi-vaadin-demo.zip (6.8 MB)
- Import all projects from the zip file into Eclipse
- Open the project “com.siemens.ct.osgi.vaadin.target”
- Double-click vaadin.target (That opens the target platform definition in an editor)
- Click on “Set as Target Platform” in the right top corner of the editor
- Now everything should compile
- Start the Run Configuration “OSGi Vaadin Demo”
- Open the following URL in your favorite browser “http://localhost/com.siemens.ct.osgi.vaadin.pm.main“
- If everything went well, you see the demo in your browser
- if you don’t want to run Jetty on the default port 80, add a VM argument in the launch configuration, e.g.: -Dorg.osgi.service.http.port=8080
- Play around with it, activate/stop bundles and watch the console log
In the next weeks I plan to go a little bit more into details of the demo, how OSGi declarative services are used, how to contribute to Vaadin Themes, etc.
Stay tuned and have fun!
Since I am very interested in mobile platforms like Android, iOS, etc. I decided to add a mobile theme to my WordPress based blog. After playing around with different options I decided to give the WordPress Mobile Pack a try. As a result, you should see a different theme if you access my blog from mobile devices. It should look like this:
But after some experiments I liked the 1.9.x version of WPTouch (which is still free) even better. Now my mobile Blog looks like:
Please give me feedback how my blog looks on your mobile device. On my Android based N1 it looks and behaves quite good, but I have no idea how it does on other devices.
PS: I am working on a technical blog about “Modular Web Applications with OSGi and Vaadin” — stay tuned
In one of my previous posts I had some issues to get the headless 3.6.x PDE build running for a few of my RCP projects. But I quickly got many very helpful comments and now I have the build up and running on Windows Vista/7. I have to admit that the tricks I describe below considered to be hacks rather than a clean solution, but on the other hand it works at least for my RCP applications.
Trick 1: Modify the target 3.6.x platform
Usually I create my target platforms just by unzipping an Eclipse SDK and the corresponding delta pack. But this did not work with 3.6.x, as described in my previous post about PDE build. I got lots of unresolved dependencies. The trick to get rid of many of them is to delete everything from the target platform except the plugins and features directory. If your RCP application is not using p2 related stuff, then there is a good chance that the build will succeed. In my RCP applications I include the feature org.eclipse.equinox.p2.user.ui in my product configurations, that leads to an unresolved dependency to org.eclipse.compare. If you see the same in your build, then trick 2 might help.
Trick 2: Manually remove dependency to org.eclipse.compare (if not needed)
If your RCP application just uses p2 for self-updating, then you probably don’t need a dependency to org.eclipse.compare. How to remove it manually I described in my blog post “Eclipse RCP p2 self-update with Eclipse 3.6.x“.
With above modifications I got the build running again. Please let me know, if these tricks work on other platforms, too. I explicitly want to thank Alexander, Albert MacSweeny and Frode for their helpful comments in my previous post about PDE build.
If you are using the feature org.eclipse.equinox.p2.user.ui in your RCP product to include the p2 update mechanism in your application, or if you just use p2 internally, you might run into some issues with Eclipse 3.6.x. If your update is not working and or you get a log entry “the update checker service is not initialized”, then probably the OSGi bundle org.eclipse.equinox.ds is not started properly. The easiest way to solve this issue is to include org.eclipse.equinox.ds with start level 2 in your product configuration (in the configuration tab, see screenshot below)
Another thing is the newly introduced dependency of the bundle org.eclipse.equinox.p2.ui.sdk to org.eclipse.compare, which depends on org.eclipse.ui.ide… If you just want to use RCP self-updating, here is a recipe how to get rid of this dependency:
- Import org.eclipse.equinox.p2.ui.sdk as source into your Eclipse IDE
- Delete dependency to org.eclipse.compare
- Delete class RevertProfilePageWithCompare
- Export the bundle
- Replace the original org.eclipse.equinox.p2.ui.sdk with the newly exported version in your target platform
With these 2 tips I got p2 self update for my MP3 Manager running again with Eclipse 3.6.x. I also got the headless PDE build running again and will blog about that later.
Yesterday I decided to update the headless builds for several of my Eclipse RCP based projects to Eclipse 3.6.1. No big deal, I thought. I did this several times in the last years and it took me only minutes. But this time, I can’t get the build running. My platform is Windows 7 32bit and I get the following errors:
[p2.director] An error occurred while collecting items to be installed [p2.director] session context was:(profile=profile, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=). [p2.director] No repository found containing: osgi.bundle,org.apache.ant,1.7.1.v20100518-1145 [p2.director] No repository found containing: osgi.bundle,org.eclipse.ant.core,3.2.200.v20100427 [p2.director] No repository found containing: osgi.bundle,org.eclipse.compare,3.5.100.I20100526-0800 [p2.director] No repository found containing: osgi.bundle,org.eclipse.compare.core,3.5.100.I20100526-0800 [p2.director] No repository found containing: osgi.bundle,org.eclipse.core.filebuffers,3.5.100.v20100520-0800 [p2.director] No repository found containing: osgi.bundle,org.eclipse.core.variables,3.2.400.v20100505 [p2.director] No repository found containing: osgi.bundle,org.eclipse.equinox.concurrent,1.0.100.v20100503 [p2.director] No repository found containing: osgi.bundle,org.eclipse.jface.text,3.6.1.r361_v20100825-0800 [p2.director] No repository found containing: osgi.bundle,org.eclipse.text,3.5.0.v20100601-1300 [p2.director] No repository found containing: osgi.bundle,org.eclipse.ui.editors,3.6.1.r361_v20100825-0800 [p2.director] No repository found containing: osgi.bundle,org.eclipse.ui.ide,3.6.1.M20100825-0800 [p2.director] An error occurred while collecting items to be installed ... BUILD FAILED
Is anybody out there who got a working headless PDE build under Windows using Eclipse 3.6.1?
If so, please let me know, I will update this post if I get it working.
Summer is almost over, I had a great vacation with my family. Now I am looking forward to the upcoming events to talk about e4 (Eclipse 4.0 RCP respectively).
The next event is the JAOO conference at the beginning of October in beautiful Aarhus (Denmark). At JAOO I give a full day tutorial “Developing Rich Clients with Eclipse 4.0”. I like JAOO a lot, this is a conference where I always meet very interesting people and learn new things. If you plan to attend, here is a tip to get 20% discount. Follow me or any other JAOO speaker on Twitter and then use “JAOOspeakerfollower” as promotion code upon registration. Besides the great conference technical content, I really love the tasty food by Chilly John. Have you ever tasted a steak with a chilly/chocolate sauce?
One week later, at October 20th, I give a full day tutorial “Rich Client Entwicklung mit Eclipse 4.0” in Düsseldorf, Germany. This will be full day of e4 related RCP stuff with lot of hands-on experience.
The next event is Eclipse Summit Europe in Ludwigsburg (November 2-4). I will give an e4 tutorial “Anatomy of an e4 Application” together with Lars Vogel, participate in the “Eclipse 4.0 Hackfest” (together with Boris Bokowski, Tom Schindl and Lars Vogel). And I give a little short talk about “Eclipse 4.0: Theming the UI with CSS“. This conference is like a little EclipseCon in Germany. I am pretty exited that Jeff Norris is going to give a key note. The keynote Jeff gave at this year’s EclipseCon was one of the best I have ever seen in my life (and I have seen quite a lot keynotes :)). Also Gunter Dueck is always fun, very nice to have him as keynote speaker.
So, if you are interested in e4, there’s lots of upcoming events you could attend.