Chris Aniszczyk
Eclipse RAP 1.3 M5 Released
The RAP team just announced the availability of RAP 1.3 M5!
Eclipse RAP 1.3 M4 Released
The RAP team is proud to announce the fourth milestone for the Eclipse Helios release.
Webinar: Eclipse in the Large
On December 14, 2009, the Eclipse Foundation is hosting a webinar that will include speakers from Cisco, Morgan Stanley and eBay discussing deploying Eclipse to thousands, and even tens of thousands, of their developers.
Blogging and PlanetEclipse
I recently added Del Myers to the PlanetEclipse syndication rolls.
EclipseRT Usage
As an Eclipse committer, I love to see Eclipse technology used in a variety of places.
Simplifying the Equinox P2 User Interface
I’m not sure if people noticed this last week, but there’s been discussion of providing a simplified p2 ui by refactoring out the Mylyn discovery user interface and pushing it down the stack.
Git Mirrors at Eclipse.org
Good news everyone, Git mirrors are going live at Eclipse.org
Join us at Eclipse Summit Europe 2009
This week, we’ll be participating at Eclipse Summit Europe 2009 in Ludwigsburg, Germany.
PDE Visualization is Available
Good news everyone, the Eclipse PDE team finally made the visualization component available for everyone.
Eclipse e4 1.0 M1 Released
Today, the Eclipse e4 project had its first 1.0 milestone release.
EclipseRT Days in Austin and Toronto
In November, the Eclipse Foundation will be hosting EclipseRT Days in Austin and Toronto.
Reverting 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…
Git at Eclipse
Git has been gaining some traction in the Eclipse community as of late.
OSGi 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:
OSGi 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:
Eclipse 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.
EclipseDay 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:
Eclipse, OSGi and PAX Runner
If you’re using Eclipse for OSGi development, there’s a neat utility that you can use to help you run your OSGi application on a variety of frameworks. PAX Runner uses the PDE org.eclipse.pde.ui.osgiFrameworks
extension point to supply frameworks.
Eclipse 3.6 M1 is out
Good news, Eclipse 3.6 M1 is out and available for download (new and noteworthy)!
CFP: Eclipse Summit Europe 2009
As a reminder, there’s two weeks left to submit talks to Eclipse Summit Europe 2009.
OSGi, Dynamics and Eclipse
I often hear this question…
“Why does Eclipse prompt me to restart if it’s a dynamic OSGi-based application?”
Crowdsourcing Documentation at Eclipse
I’ve been pensive as of late since we shipped the Eclipse Galileo release. One of the things I personally have been thinking about is how we can improve our documentation process. Currently, the Eclipse platform team has its documentation in Eclipse Help format (mostly HTML)… all this is kept in source control. In its current shape, the documentation isn’t conducive for people to contribute. There’s a lot of hoops a potential contributor needs to jump through in order to contribute documentation. Even more hoops if our documentation contributor isn’t really a developer. I also know a few committers who dread doing documentation because they have to hack away at HTML documents.
OSGi, Eclipse and API Management
Recently, a few people have come to me ask how Eclipse maintains its API and versions. The intent of this question was to see what lessons there are to be learned for other OSGi-based applications. If we step back a bit, in essence, Eclipse is a large OSG application. On top of that, Eclipse is a platform where people build their own OSGi applications on… it’s an OSGi party. As a result, there are many people dependent on the API Eclipse produces so the management of this API is important. If breaking API changes were common, people would have less desire to build on the platform. To help with this problem, Eclipse developed PDE API Tools.
Training for Eclipse Galileo and p2
As part of the Eclipse Galileo release, we updated all of our training courses to reflect the latest release:
Equinox p2 User Interface Feedback?
As we learned from Ian Bull, p2 has come a long way for the Galileo release.
Eclipse, OSGi, Galileo and Release Trains
Ah, Eclipse Galileo is finally out for Friends of Eclipse, I just got the glorious email:
Eclipse Embedded Day 2009
Eclipse Embedded Day happens this week on June 25th, 2009, just a day after the Eclipse Galileo release.
Eclipse Day At Googleplex 2009
From the EclipseSource team, Scott Lewis and I will be speaking at the Eclipse Day held at the Googleplex this year. I plan to tell some tales around OSGi and Eclipse. Scott will talk about Distributed OSGi and the Eclipse Communications Framework (ECF). There are other talks on topics like Android, DSLs and the Google SDK.
OSGi and Start Levels
I’ve been working with OSGi for quite awhile and have recently been helping someone fight some start level issues. The problem turned out to be a misunderstanding of how start levels work in OSGi and its inspired me to write a little bit about how start levels work so others don’t repeat the same mistakes.
Eclipse 3.5 RC4 is out!
The last release candidate for Eclipse 3.5 shipped!
Eclipse 3.5 RC4 is out for download (or update via p2).
Free OSGi and Equinox Course
OSGi has been in the press a lot lately. Everywhere you turn, there is some new product or project adopting the technology. From Eclipse to Apache to Spring. From servers to desktops to embedded. OSGi enables the creation of highly modular, dynamic Java-based systems.
PDE's Automated Management of Dependencies
I have been working with the upcoming Equinox OSGi book authors quite a bit as of late. They are a demanding bunch, but they have helped me improve PDE’s OSGi tooling while they write and exercise parts of PDE that not many people know about. In particular, the book uses something in PDE called Automated Management of Dependencies (AMD). What’s that? Well, have you ever noticed this collapsed section in the PDE editor:
Eclipse 3.5 RC1 is out!
Good news, we are one step closer to having Eclipse 3.5 released!
Eclipse, SAP and Project Pave
A new project proposal came through my inbox this morning.
Eclipse Galileo is Coming Soon!
It’s that time of year again… we’re getting close to release time at Eclipse!
OSGi Declarative Services
For those of you who don’t know, the Eclipse SDK now ships an implementation of OSGi Declarative Services (DS). I love DS when working with OSGi services and recommend it to people over using the brittle ServiceTracker
mechanism. I’m a big proponent of having people learn by example. To help people understand DS a bit more, PDE includes a DS template now. To access the template, simply create a new project and select the template:
Help Design the Eclipse Galileo Graphic
It’s almost time for the Eclipse Galileo release and the Eclipse Foundation is looking for some input on choosing the next graphic for Galileo. If you have some artistic skills or just want to express an opinion, do it on this bug.
Eclipse Feedback Agent?
For those who follow me on Twitter, know that I and Firefox don’t get along. I just want to browse the web, and Firefox just wants to eat memory and crash all the time. However, I was pleasantly surprised when Firefox crashed and offered me a chance to give feedback:
Target Platform Provisioning
I’ve been doing bundle development for a very long time so I have a lot of fantasies of how we can improve development workflows. One of my fantasies while working with my target platform has been to have it automatically provisioned to me based on some requirements. Well, I’m happy to report that PDE now supports provisioning your target platform from a repository (as of Eclipse 3.5 M7) which makes my fantasty come true!
Comparing API Baselines
In Eclipse 3.5, the PDE team has been hard at work improving the API Tools component. One of the new exciting features we have planned for Eclipse 3.5 M7 is comparing baselines. To compare an API baseline, simply right click an API Tools enabled project and select the ‘Compare With -> API Baseline’ menu option (I’m using an Eclipse 3.5 build with an Eclipse 3.4.2 baseline):
Export into the Host Eclipse
In the traditional RCP development workflow, you find yourself self-hosting a lot. If you don’t know what self-hosting means, it’s simply the process of launching a new Eclipse instance and executing the bundles you were working on in your workspace. This works well as there’s no real deployment step, but what happens if you want to run what you’re working on inside your current running Eclipse (host)? Well, you could use the classic, “export, copy, paste, delete, restart” technique" but that’s not optimal and takes some time. How do we get around this? Well, in Eclipse 3.5, PDE has new functionality to directly export into your host. To demonstrate this functionality, let’s create a sample project using the ‘Hello, World Command’ template:
Finding SWT Leaks with Sleak
In SWT, the mantra is “if you created it, you dispose it.”
OSGi Training
I’ve been recently approached by people interested in OSGi training. This is quite serendipitous because the Eclipse Training Series is happening right now and offers OSGi training from places like sunny Austin to historic Berlin!
Visualizing OSGi Systems
At the recent OSGi Tool Summit, one of the biggest discussion items that came up was visualization. This makes perfect sense to me as visualizations can be a powerful tool, whether it’s for reviewing your architecture or sharing information with colleagues. In the OSGi world, I only know of two projects starting to scratch the surface of visualizing OSGi systems: PDE and Knopflerfish. Since I co-lead PDE, let me speak about what I know best. In PDE, I recently published a new build of the PDE Visualization project:
Eclipse Menu Contribution URIs
Since Eclipse 3.3, placing contributions in a menu (via the org.eclipse.ui.menus extension point) has been a bit challenging given the new locationURI attribute:
OSGi Execution Environment Validation
Execution Environments (EE) are a neat concept within OSGi, however, things can become complicated when developing against multiple EEs. For a real world example of what I mean, this weeks integration build in Eclipse was delayed due to an EE issue. A new bundle (org.eclipse.equinox.p2.repository) was added to the Eclipse SDK that declared an execution environment of J2SE-1.4 but used methods from J2SE-1.5 environment. This is really easy to do when you’re using a 6.0 JRE but developing bundles that should run on a 1.4 JRE. I mean, it isn’t that hard to use a new method from java.lang.String or java.lang.Double that you didn’t know about it.
e4 0.9 M2 Released!
It’s great to see a new milestone of e4 released (new and noteworthy)!
OSGi Tool Summit Recap
Last Friday, March 27th, Jeff McAffer and I attended the OSGi Tool Summit graciously hosted by LinkedIn:
OSGi Log Service
The OSGi specification defines a log service (Section 101.1) in the Service Compendium. Like most logging facilities, the log service allows you to specify a message, exception, log level and service reference to be logged. The log service can be acquired using typical OSGi service acquisition mechanisms like a ServiceTracker (see snippet below). However, I highly recommend that you look at using Declarative Services (see Section 112) if you’re working with OSGi services.
EclipseCon 2009 (Day 1): RAP, p2, Distributed OSGi
The EclipseSource team is enjoying its time at EclipseCon 2009. Here’s a reminder of what our team is talking about today.
I Spy Menus
Everyone remember the beloved PDE plug-in spy? Well, on a recent plane trip… I did some hacking to enable menu introspection… check out this video:
Eclipse and Google Summer of Code 2009
I want to remind the Eclipse community that Google Summer of Code 2009 (GSOC) recruiting is in full swing now.
Eclipse 3.5M6 is out!
I just got back from vacation and was pleased to see Eclipse 3.5 M6 was released (new and noteworthy). M6 is always an interesting milestone for Eclipse because it’s really close to EclipseCon, signifies API freeze and the march towards stabilization for the Galileo release. Here are some of my favorite noteworthy items from Eclipse 3.5 M6:
EclipseCon: OSGi for Eclipse Developers
I spent a good portion of my day today working on one of my EclipseCon 2009 presentations that I’ll be giving with Bernd Kolb and Martin Lippert, “OSGi for Eclipse Developers”:
Tip: Styling Label Providers
Were you ever curious how to get those pretty colored labels in your JFace viewers you see all over Eclipse? For example, the blue counter label in the search results view:
New Nebula SWT Widgets
Did you know about the Nebula project at Eclipse? If not, you should… Nebula is a source for custom SWT widgets and other UI components:
Eclipse and Universities
I stumbled across this university research project on the Eclipse newsgroups today that does something pretty gnarly. Have you ever hacked some Java code in Eclipse only to bring up the code completion prompt in Eclipse to be presented with a ton of options?
I *heart* SWT Cocoa
A good portion of the EclipseSource technical team use MacBook Pro’s for their development machines. We are doing our best helping the SWT team in testing the Cocoa port. As the Eclipse 3.5M6 milestone gets closer, the SWT team is converging on finishing the Cocoa port which just has me thrilled! It should have you thrilled too, because you can finally do things like use Java 1.6 in your projects! If you have any projects or products that run on the Mac, you should consider testing out the Cocoa port now so the SWT team has time to react. In particular, Kevin Barnes has been helpful in testing out some of the popular RCP applications (i.e., XMind, RSSOwl) on Cocoa to see how they perform. Feel free to catch him on Twitter, he’s really responsive to SWT Cocoa related questions (especially when you bring stacktraces)!
OSGi Declarative Services Tooling
For those who have been following the OSGi v4.2 specification revisions lately, hopefully you’re aware that the Declarative Services (DS) portion received some updates. In the 1.1 version of DS, there were these additions:
Tip: Adding Bundles to Java Search
Awhile ago, I blogged about adding bundles to your Java search scope. As an exercise born out of frustration while on a plane, I made this a bit easier to do in the upcoming Eclipse 3.5M6 release:
Target Platform Changes
I sent an email out to eclipse-dev today detailing some of the changes the PDE team has made to the target platform story:
OSGi Tooling Summit
I recently blogged how excited I was about the OSGi Tooling BOF at EclipseCon, but it seems that the OSGi Alliance has outdone itself. The alliance is hosting an OSGi Tooling Summit right after EclipseCon 2009.
The first e4 milestone
Wow, I just saw the new and noteworthy posted for the first e4 milestone. There’s a lot of stuff there! I’m amazed that the e4 team was able to get this milestone out given that a lot of them were also working on the Eclipse 3.5M5 release.
Tip: The Configure Menu
In the Eclipse 3.5 release (Galileo), there’s a new way for you to contribute project related actions (e.g., adding natures). Traditionally, people have contributed project related actions at the root of the menu. However, this can easily flood your menu when you right click a project in a large Eclipse install. A solution for this problem is the new Configure menu entry. Within PDE, we have already adopted this for our plug-in project conversion actions:
OSGi Tooling BOF @ EclipseCon
I’m so filled with joy that we’re going to have an OSGi Tooling BOF at EclipseCon this year. Here’s what we have for the abstract so far:
Eclipse, Education and Open Source
I’m excited to learn that certain computer science students will be contributing to Eclipse (WTP in particular) as part of university class credit. Personally, I think this is fantastic and much better than say killing yourself over automata theory :)
Tip: Encoding Issues with Plug-ins
Have you ever come across an issue while developing an Eclipse-based application, go to export it and get an evil “Invalid character constant” message or something similar in your logs? This happens when you’re developing an application that requires Unicode characters but your system file encoding is something other than you expect (i.e., on Macs it’s usually MacRoman and on Windows it’s Cp1252). When you go to export, PDE Build will use the default file encoding (see the file.encoding system property) available to the VM. This can cause problems if you’re using Unicode characters in code and on export, PDE Build chooses a default encoding like Cp1252.
Tip: Generate NLS Fragments in Eclipse
In Eclipse 3.5M4, there’s new functionality in PDE to help you generate NL fragments. If you have already externalized strings (PDE Tools->Externalize Strings) in your plug-ins, you can internationalize them by using the internationalization wizard (PDE Tools->Internationalize).
Tip: PDE Build and Binary Cycles
I recently spent some time with a client removing some cycles in bundles and discussing why cycles are evil in the first place. The problem is that even if you remove cycles from your own code, the code you depend on may not be cycle-free. This could be for many reasons, most of the time it’s due to legacy. So after some bundle cleansing, we setup an automated build… and had this dreaded error message come up in the logs:
Tip: Eclipse, OSGi and Execution Environments
I was working with a client recently and the question of what are execution environments came up. Execution environments (EEs) are simply symbolic representations of JREs. For example, rather than talking about a specific JRE (with a specific name at a specific location on your disk), you can talk about the J2SE-1.4 execution environment. This way things can be shared without referencing specific paths. Furthermore, tools like PDE help setup your classpath compliance settings base on the EE you’re working with (on a per bundle basis).
Tip: Spellchecking in Eclipse
Ever wanted to add spelling checking to a dialog, form or some editor in your Eclipse-based application?
Tip: Project Level Settings
I can’t count how many times I have come across developers that aren’t using project level settings. It makes me a bit sad in the beginning, but once I show people what you can do with project level settings, I’m immediately filled with glee. Why should you use project level settings? The main reason is that you can enforce these settings all across your team (they are shareable) and even contributors to your project. Here are some examples of what I mean:
Tip: Split Packages and Visibility
In an OSGi-based system, there are cases when you want to do some heavy refactoring but run the risk of breaking downstream clients. For example, let’s say you have plug-in A, it exports the com.company.util package. Now let’s pretend this package contains utility methods for math functions and logging. Now let’s say you have a request to break apart the math and logging code into separate plug-ins (B and C) but don’t want to break downstream clients that depend on you. How can we do this? There’s two steps, re-exporting bundles and splitting packages.
Tip: Suppressing Keybindings
I was helping a colleague today with a key binding issue that I think is fairly common. To illustrate the problem, let’s look at what happens when you press CMD+N in the RCP mail sample: