Eclipse Yoxos Services Downloads Blogs About
Home > Blogs >

Chris Aniszczyk

on Oct 14th, 2009Eclipse e4 1.0 M1 Released

Today, the Eclipse e4 project had its first 1.0 milestone release.

This is the beginning towards sprinting for the 1.0 final release.

The big new and noteworthy in this milestone is support for remote debugging of JavaScript and in particular e4 JavaScript bundles. The support is currently restricted to Mozilla Rhino, however in true Eclipse fashion, the JavaScript debug model and extension models are in place to allow supporting other JavaScript runtimes.

js debug 300x286 Eclipse e4 1.0 M1 Released

If you’re interested in Eclipse e4, here’s some resources:

Enjoy and please consider contributing to the e4 effort!

on Oct 5th, 2009EclipseRT Days in Austin and Toronto

In November, the Eclipse Foundation will be hosting EclipseRT Days in Austin and Toronto.

EclipseRT Logo Small EclipseRT Days in Austin and Toronto

Besides the new logo above, EclipseRT is the portfolio of Eclipse projects that include runtime frameworks used to build and deploy running applications. EclipseRT is based on component oriented development architecture built on the Equinox runtime framework, an implementation of the OSGi standard.

EclipseRT Day is your opportunity to discover what is possible using Equinox and the complementary projects, such as EclipseLink, RAP and RCP. Experts from the EclipseRT community will discuss how you can build applications for embedded devices, desktops and even large scale server applications. IBM, SpringSource and TD Canada Trust will share their experiences of using Equinox and OSGi for their solutions.

In Austin, you’ll hear about topics like Equinox and OSGi, Modular Java Applications with Spring and Building Modular Applications for Embedded Devices.

In Toronto, you’ll hear about about topics like Java Persistence with EclipseLink, Managing your OSGi Runtime with p2 and e4 Overview and Demo.

The event is free, all you need to do is register.

on Oct 2nd, 2009Reverting Changes in an Eclipse Installation using p2

I was helping a colleague with some Eclipse install issues and was surprised he didn’t know about the ability to revert to a previous install configuration. Equinox p2 makes the revert process sane compared to the old Eclipse Update story. So everyone knows, to revert to a previous configuration of an Eclipse install, this is what you do…

First, open the About dialog and click the Installation Details button:

ih 300x193 Reverting Changes in an Eclipse Installation using p2

From the list, you can select a previous configuration and click the Revert button to go back in time:

ih2 300x281 Reverting Changes in an Eclipse Installation using p2

It’s that simple!

As a bonus in Eclipse 3.6, you’ll be able to compare two configurations to see differences via the Compare button:

ih3 300x281 Reverting Changes in an Eclipse Installation using p2

Once you do that, you should see a compare dialog with the changes:

ih4 300x183 Reverting Changes in an Eclipse Installation using p2

Hope this helps!

on Sep 25th, 2009Eclipse 3.5.1 (Galileo SR1) is out!

Eclipse 3.5.1 was just released! This is a service release as part of the Eclipse Galileo release train.

Inside Eclipse, you can use p2 to update with this URL:

If you’re only interested in Equinox, you can grab it here:

Finally the readme is here:

So what are you waiting for, update to get the latest bugfixes!

If you want to live on the bleeding edge, check out the latest Eclipse 3.6 (Helios) milestone.

on Sep 22nd, 2009Git at Eclipse

Git has been gaining some traction in the Eclipse community as of late.

githeader 300x40 Git at Eclipse

From the birth of the EGit project at Eclipse and the recent approval of JGit to be hosted at Eclipse as a sub project of the EGit project, good things are coming. Why should you care about Git?

Git is pretty popular these days as evident by some of the open source projects out there using Git:

  • Linux
  • KDE
  • Qt
  • Android
  • X.org
  • Wine
  • VLC
  • OLPC
  • OpenAFS
  • Ruby
  • Perl

Apache is even rumored to be switching, at the moment they have a public GIT mirror.

Git is also fast and efficient. In some of my testing, Git produced significantly smaller repositories than SVN did. In terms of speed… I think Git’s ability to do branching cheaply is one of its biggest assets. In the end, I think the most important feature of Git is that it significantly lowers the barrier to contribution. People are able to easily branch your work and you can pull at a later time. I’m not a Git expert by any means yet, but here are some things that have helped me along my Git journey:

In the Eclipse world, I see a move towards Git as the smart thing to do. It would make it easier for the Eclipse community to contribute code versus our current model. It would also help the many companies out there that maintain their own copies of Eclipse and patch things as necessary because of their release cycles. The more I look at it, I can’t come up with many reasons why Eclipse shouldn’t move to Git. Here are some current happenings:

  • A vserver is being provisioned with Git and Gerrit installed
  • A read only GIT mirror of the Eclipse codebase is being setup

If Git is important to you at Eclipse, I encourage you to get involved with the EGit project via their mailing list.

on Sep 21st, 2009OSGi EventAdmin Redux

I recently blogged about the OSGi EventAdmin service and got some good feedback. I like to inform people of some more things that came to light about EventAdmin. First, I added a template in PDE for the OSGi EventAdmin service that will make its debut in Eclipse 3.6 M3:

eventadmintemplate 266x300 OSGi EventAdmin Redux

It basically uses OSGi Declarative Services to register an EventHandler that listens for the bundle started event topic by default:

org/osgi/framework/BundleEvent/STARTED

Hopefully this should make it easier for people to get started with OSGi EventAdmin.

Second, Scott Lewis from the Eclipse Communications Framework (ECF) team has a distributed version of the OSGi EventAdmin service implemented. If you want to get at the code, check out the ECF wiki.

Finally, the Eclipse e4 project (the next generation of the Eclipse platform) is somewhat interested in the OSGi EventAdmin service. There’s been discussion on a bug around the general problem of model eventing and how to avoid the ‘listener hell’ problem we had with the old platform.

on Sep 15th, 2009OSGi EventAdmin

I recently had a few people come to me to chat about the OSGi EventAdmin service. For those who are curious, the EventAdmin service is part of the OSGi Compendium Specification and allows you to publish and listen to events via a pub-sub system. I’ll try to do a quick write up on how to actually use the service. As with any OSGi service, the first and foremost thing you need to do is acquire the EventAdmin service. There are many ways to do this, but I prefer to use Declarative Services these days. This is what a sample component definition would look like:

<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" 
   immediate="true"
   name="org.eclipse.example">
<implementation class= "org.eclipse.example.MyClass"/>
<reference bind="setEventAdmin" interface="org.osgi.service.event.EventAdmin"/>
</scr:component>

Once we acquire the EventAdmin service, there are really two things you can do: publish and listen for events.

Publishing Events

To publish events, you need to pick a name for your topic. For example purposes, let’s pretend we wanted to publish information about memory events. A good topic name for this would be something like:

org/eclipse/equinox/events/MemoryEvent/{NORMAL,SERIOUS,CRITICAL}

If we wanted to publish a critical memory event, we have to create an Event object and publish it using EventAdmin:

...
Event event = new Event("org/eclipse/equinox/events/MemoryEvent/CRITICAL", null);
eventAdmin.postEvent(event);

It’s important to note that there are two ways of sending events using EventAdmin. This depends whether you want your event to be sent in a asynchronous our synchronous fashion. In the example above, we used the postEvent(...) method in EventAdmin which sends events in an asynchronous fashion. To send events in a synchronous fashion, EventAdmin exposes the sendEvent(...) method so we could simply change our code to send event synchronously:

...
Event event = new Event("org/eclipse/equinox/events/MemoryEvent/CRITICAL", null);
eventAdmin.sendEvent(event);

An additional thing to note is that you can send additional properties with your events as the Event object takes an optional Map parameter in its constructor.

Listening for Events

From the consumer side of things, we’re interested in handling the memory events. To do this, we need to register an EventHandler, let’s call it a MemoryEventHandler in this case:

public class MemoryEventHandler implements EventHandler {
 
	public void handleEvent(Event event) {
		// TODO panic... handle memory event
	}
}

Next, we need to register our MemoryEventHandler with the service registry with the proper EventAdmin topic name. There are many ways to do this, but for the variety purposes, let’s do it the traditional way in a bundle activator via a BundleContext reference:

...
EventHandler handler = new MemoryEventHandler();
properties = new Hashtable<String, String>();
properties(
   EventConstants.EVENT_TOPIC, 
   "org/eclipse/equinox/events/MemoryEvent/CRITICAL");		
context.registerService(EventHandler.class.getName(), handler, properties);

The important part of the service registration involves topic you’re interested via the EventConstants.EVENT_TOPIC constant. In the example above, we were interested in critical memory events so we used the proper topic:

org/eclipse/equinox/events/MemoryEvent/CRITICAL

If we were interested in all memory events, EventAdmin supports wildcard matching on topics so we could do this:

org/eclipse/equinox/events/MemoryEvent/*

EventAdmin also supports filtering via the EventConstants.EVENT_FILTER constant.

For the curious, the example above could have easily been done using DS:

<?xml version="1.0" encoding="UTF-8"?>
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" 
   name="org.eclipse.example.memoryHandler">
<implementation class="org.eclipse.example.MemoryEventHandler"/>
<service> 
 <provide interface="org.osgi.service.event.EventHandler"/>
</service>
 <property name=”event.topics” value=”org/eclipse/equinox/events/MemoryEvent/CRITICAL” />
</scr:component>

That’s all it takes to listen for events!

EventAdmin in Eclipse

Cool, now that you know more about EventAdmin… how about using it in your Eclipse RCP applications? Well, I have good news as Equinox has a great implementation of EventAdmin available. Furthermore, as of Eclipse 3.6 M2, EventAdmin will ship part of the Eclipse SDK. If you’re not building on top of Eclipse 3.6 yet, you can simply grab the event admin implementation from the Equinox SDK downloads page.

Note: The example I described in this blog is something someone proposed be included within Eclipse.

on Sep 3rd, 2009Recap: EclipseDay Googleplex 2009

Last weekend, I attended EclipseDay at the Googleplex with about 200 other people. The day was filled with great talks and special thanks to our Google hosts for making the show really smooth. The majority of the presentations have their slides posted now, here are some of my favorite talks:

Eclipse in NASA Mission Control

Jeff Norris offered a fascinating story of how NASA is adopting Eclipse technologies such as RCP, EMF, GEF, CDO and server side Equinox in order to build mission-critical tools to control robots on land, in the air and in space. If you want to learn more about NASA and Eclipse, check out the last part of this webinar.

Eclipse in the Enterprise: Lessons from Google

Robert Konigsberg and Terry Parker took us through how Google is leveraging Eclipse on the inside. Inside of Google, they created their own Eclipse distribution and used Debian packages to help with the provisioning of plug-ins. This solution somewhat worked, but Google experienced a myriad of issues with the “links” folder, corruption and the pain of perfoming live updates. Then Eclipse Ganymede came out and they were introduced to p2:

g1 300x226 Recap: EclipseDay Googleplex 2009

p2 filled the void that their previous “provisioning system” was filling, but caused havoc because p2 was significantly more advanced than the previous update system at Eclipse. At first, there was some learning pains, but Google decided to embrace p2 and use it to manage their distributions after some prototyping:

g2 300x226 Recap: EclipseDay Googleplex 2009

The p2 solution works well for Google because it avoids corruption and makes it really easy for users to try new things via their local p2 profile. This is one of the benefits of p2 because it guarantees that if you can install something, it will be able to run.

On the whole, I’m looking forward to the next EclipseDay and maybe this time, we’ll see something on the east coast icon smile Recap: EclipseDay Googleplex 2009

on Aug 25th, 2009Eclipse RAP 1.3 M1 released

I spoke with a Rich Ajax Platform (RAP) committer briefly today and he reminded me that the RAP team recently released 1.3 Milestone 1 to the world. This release marks the first milestone towards the Eclipse Helios release and includes some interesting features like rounded corners, gradients and support for cheatsheets.

cheatsheets 263x300 Eclipse RAP 1.3 M1 released

For those people interested in single sourcing their Eclipse RCP applications, they will be pleased to see support for more RCP APIs in this RAP release. Check out the new and noteworthy for more detailed information. Also, the RAP team published the project plan for 1.3 with suggested and committed items for this release. If you have any additional input or questions on the plan, feel free to discuss them with the team on the RAP mailing list.

on Aug 24th, 2009EclipseDay 2009 at the Googleplex

This Thursday, Google is graciously hosting an EclipseDay At Googleplex. There will be talks on topics like Distributed OSGi, Eclipse at NASA and Android. Here’s a peak at the full schedule:

schedule 300x115 EclipseDay 2009 at the Googleplex

If you’re interested in attending, the registration list is already full, however, there is a waiting list you can signup for. If you can’t attend, don’t worry as Google is planning to record and release videos of the presentations. Also, from the EclipseSource team, Scott Lewis and I will be there so if anyone is up for frosty beverages, please let us know!

© EclipseSource 2008 - 2011