Fast Project Launch with Eclipse

Starting a new development project with Eclipse is something you don’t do as a sideline. You need the right Eclipse Package, you have to get hold of plug-ins and repositories – and setting up a workspace is certainly not a favorite pastime for most people. Wasting days before you can use Eclipse productively is actually quite common. Luckily, this changes with Yatta Profiles.

Anyone who has ever ventured into developing software with Eclipse knows how much time it takes to install and set up the IDE. Which package is the right one? Which plug-ins do I need? Which projects do I have to add to the workspace and from which repositories do I have to check out the source code?

For most developers, the struggle with the IDE already begins when they attend their first university classes – and end up mired in long-winded installation instructions. The situation gets even more confusing after leaving university and joining the adventure of working on a large-scale software project with a fully fledged development team. Not only do new team members have to install tons of plug-ins, they also need to check out source code from different repositories, and they possibly have to synchronize Mylyn tasks from a task repository. After their first workday on a new project, many developers answer the question “What did you do today?” with “I started setting up Eclipse …”

David Developer

Let’s imagine things could be much easier. Let’s imagine David. David is an experienced software developer and has used the Eclipse IDE for a range of different projects, so he knows the hurdles of project launches all too well. Recently, David has started working on a new project – and he has an astonishing story to tell.

“David, think back to your first day on the new project. What did you do?”

“Oh, I remember that day quite well. I expected the usual routine – hours and hours just dragging on while you’re waiting for all your Eclipse plug-ins to install one by one. Sure, you have to ask about a thousand people which projects you need to checkout from which repository, but mainly you spend your time waiting. And drinking coffee. I really expected one of these days that make you wonder if you’ll ever be able to get on with the real work. But this time, I actually started working my way into the source code before I had even finished my first cup of coffee …”

“Really, how did you do that? Was the project setup that simple?”

“On the contrary, it was as complex as it gets. It was just easy to get everything up and running: Alice, the project lead, sent me a welcome e-mail, and this e-mail included a link to the homepage of an Eclipse profile. The profile was designed to exactly meet our project’s requirements. I actually got a complete Eclipse setup. It included just about everything I needed. All the plug-ins were there, and even the repositories had already been configured. I just had to click a button saying “Install this Profile” on the website. Basically moments later Eclipse opened, and I was ready to get started.”

“Wow, that sounds like a real setup record.”

“You could say that. But there was more to the profile than I imagined. The download included a small desktop app. It’s called the Launcher. Among other things the Launcher gives you an overview over your different Eclipse setups. When I saw the list, I realized for the first time how many Eclipse installations were just hibernating on my hard drive. You can launch any Eclipse setup directly from the Launcher, which is kind of cool. You can also rename them and add descriptions – a useful thing if you are like me and have about a dozen different Eclipse installations. Oh, and you can install all public Eclipse Packages directly from the Launcher. That’s another option I really like.”

“The profile was really tailored exactly to your project’s requirements? You didn’t have to make any adjustments?”

“Well, one thing was in fact missing, and that was GWT Designer, which is one of my personal favorites. I installed it just like I usually do. When you edit a profile, your changes get saved locally right away. To share the edited profile with my team I had to create an account – otherwise my colleagues wouldn’t have known where the profile was coming from. Everything else worked automatically. You’re welcome to take a look at my profile. It’s publicly available – just like everything related to Eclipse.”

Eclipse Profiles

So what exactly is behind this profile that made David’s life so much easier? Where did it come from and what can you really do with it?

Usually, setting up the Eclipse IDE for a new software development project requires a lot of manual configuration. You have to choose an existing Eclipse Package and install every single plug-in by hand. You have to set up source code and task repositories and import relevant projects into the workspace. Only in the best of all worlds do developers get an installation manual with all important information – on plug-ins and versions, projects and repositories – at project launch. In most cases, you have to gather information by bits and pieces from different sources before you can start developing software. Yatta Profiles simplifies the process.

A profile is a combination of Eclipse and workspace, but completely individual. With a lightweight desktop app, the Launcher, you can install, start, manage and even share these individualized profiles. A profile contains the key data of an Eclipse installation: plug-ins as well as a workspace and its settings. You can edit a Profile from the Launcher, but also from your running Eclipse IDE.

The Yatta Launcher recognizes Eclipse-Workspace combinations which are already locally installed on your computer. When you first start the app, they automatically appear in the Launcher’s profile list. Of course you can also create other Eclipse-Workspace combinations and save them as a profile.

As a result, you will be able to start and manage all your profiles from one location. Searching hard drives for the right Eclipse is a thing of the past: The Launcher offers a comprehensive overview of all local Eclipse installations. Every profile can be equipped with a meaningful name, a description, and its own icon and can be started from the Launcher’s profile list.

Profiles for Teams

A profile doesn’t have to stay a local copy. After filling in a simple registration form, you can upload and share your profile. Every online profile gets its own URL. Other users, for example colleagues or other members of the Eclipse community, can then download and install it. During installation, you get to choose the location for Eclipse and workspace. When the installation is complete, the online profile appears in the Launcher’s profile list and acts like any local profile: You can start it, edit it and share your edited version if you like.

There’s a range of possibilities to share your profile. Most of the time, you will probably want to copy the link to a profile page to the clipboard or send and e-mail to forward the link to your team or to a friend. To encourage exchange within the Eclipse Community (and to build a native user community), all major social networks, like Twitter, Facebook or Google Plus, are supported as well.

The Launcher also provides the possibility to delete or uninstall a Profile. You can decide to remove an entry from the Profile list or to uninstall the complete Eclipse setup including the workspace.

Those who want to create their own Profile from scratch, can access a list of all existing Eclipse Packages and download them from the Launcher. After installation, the selected Eclipse Package gets listed in the Launcher’s Profile List, ready for editing and sharing just like any other Profile.

Consequently, Profiles helps to smooth the workflow of teams considerably: Team members can start working on a project right away. They are not even forced to take a break for scheduled updates.

Profiles Under the Microscope

Yatta Profiles is based on the well known Eclipse Project Oomph. With the Launcher, Yatta Profiles offers a lightweight app to automatize generating Eclipse setup information – but its core feature is sharing this information in the form of a Profile.

In a nutshell, a Profile consists of bundled setup information allowing for fully automated installation of Eclipse and workspace. So, what information exactly will you share when you upload a Profile?

A Profile contains all installed plug-ins including their versions and URLs of dedicated update sites. Repositories, projects and settings get shared as well: A Profile contains links to repositories and update sites. Source code on the other hand will never be uploaded or shared.

After a Profile has been installed, the Yatta Launcher automatically searches for the appropriate Java Runtime Environment and adjusts the eclipse.ini if necessary. This guarantees a smooth project launch. Once the installation is complete, the Eclipse associated with the Profile opens, the workspace is initialized, corresponding projects are created according to their metadata, and, if possible, required source code is checked out.

This process is automated for all repositories with public access. All other repositories require user credentials. Mylyn Task Repositories and corresponding queries included in a Profile are added to the workpace, and existing projects are assigned to their working sets. After the workspace setup is complete, developers can start programming.

For the moment, Yatta Profiles does not support all relevant settings for some Eclipse-Workspace combinations. As an alternative, you can manually add respective data using Eclipse Oopmh. The additional information will not be integrated into the Profile and can thus not be shared automatically, but the Yatta team – among them several Oomph committers – are working on integrating the remaining features into Yatta Profiles. Until then, they have offered to manually convert Oomph setups into Profiles (wherever possible).

Table 1 gives an overview of the information shared when you upload a Profile.

Shared Profiles Data Not Shared Plug-Ins (links to update sites) Plug-ins are not shared if no longer available or

no update site available Source code repositories (links): git

SVN

CVS

Mercuial Personal settings (coming soon!) personal preferences

views / workspace layout Projects (project-metadata and -preferences included in SCM) Local projects (if not shared in an SCM like git, SVN, etc.) Task repositories (Mylyn) (links) Bug tracker (Bugzilla, Trac … )

Ticket lists including queries (links) Source code Build server configuration (Mylyn) Working sets

Target platform definitions

A profile does not cover every last intricacy or every special case possible – yet. Still, using a profile instead of doing a complete setup manually already saves a lot of time – and additional features are under way.

About Yatta Profiles for Eclipse Yatta Profiles for Eclipse allows developers to share, manage and start Eclipse-Workspace combinations (Profiles). Yatta Profiles includes a lightweight app, the Launcher, to turn Eclipse setups into Profiles. A profile contains installed plug-ins, workspace settings and also URLs of task and source code repositories. Users can share a profile in different ways, for example via e-mail or on a social network of their choice. Since Yatta Profiles greatly reduces the effort in setting up Eclipse, it comes in especially handy for development teams. An integrated update mechanism ensures that changes to a Profile can be shared and applied conveniently. Turning an Eclipse setup into a profile also facilitates managing different Eclipse installations: Users can arrange their Profiles via drag and drop, start, delete or update them directly via the Launcher.

´

David’s Profile mentioned in the article and the Yatta Launcher are available for download at: http://marketplace.yatta.de/profiles/SArL.

Times Change – Profiles Do Too

No Eclipse setup stays the same forever. Plug-ins need updates every once in a while, some will be removed, sometimes a new one will be added, and from time to time, a new Eclipse release will arrive. Considering all this, an IDE is prone to change over time, and the same is true for corresponding workspaces. As a result, profiles change as well, all the more so if project duration progresses. So, what happens to a profile in such a case?

Let’s look at an example: David clicks on “Install this Profile” to get project lead Alice’s profile. Some time into the project, Alice makes some changes. The update mechanism of Yatta Profiles recognizes a local change, and a marker shows up in her Launcher’s the profile list. Alice can now upload her changes and make them available to her team. In turn, a marker shows up in David’s own profile list, indicating that the profile has been updated. David can now accept the changes, or he can decide against the update and keep the profile in its current state. If David decides to update his profile, the changes will be added – existing plug-ins will not be uninstalled and projects don’t get lost.

David himself can also change his profile anytime – without affecting the original profile created by Alice. David can in fact share his own version of the profile. This mechanism works with parent and child profiles. This makes it possible to create whole chains of profiles progressively based upon one another: They follow each other to ensure that updates are visible to everyone holding a child version of a profile.

Only one profile has to be edited when changes become necessary due to new requirements – in this case Alice’s profile. Everyone else on the team only has to download the update. As a result, the profile remains dynamic and can easily be adapted to new requirements. At the same time, users remain in control as to whether they want to apply a specific update or not.

The update mechanism ensures that updates remain manageable despite the vast amount of more than 2.500 different plug-ins available for Eclipse (open source and proprietary) – for friends, colleagues and the community.

Post Release is Pre-Release

Profiles facilitate every day work for developers considerably. Having said that, Yatta Profiles will continue to grow and incorporate new features. In the future, users will be able to share personal settings, like views and layouts. Equally important: Yatta Profiles already offers the possibility to share a profile with team members, but currently all profiles are publicly available by calling up their URL. For this reason, access restricted profiles for private sharing are another important point on the development team’s agenda. Yatta is also cooperating with other Eclipse Member Companies to provide Enterprise Hosting for businesses in the future.

This considered, Yatta Profiles is clearly an example how Eclipse Member Companies can contribute to the still vibrant community and bring Eclipse to the fore again – and to make users happy.