Eclipse Day At Googleplex 2009/Session Abstacts
Eclipse in the Enterprise: Lessons from Google
Providing Eclipse tools to thousands of engineers at Google is a satisfying job, but it's not always easy. In the last two years Eclipse has gone from being a tool supported by enthusiasts in their spare time to one supported by a team mandated to make engineers' lives better. We will talk about the plug-ins we've written and processes we've established to provide features, enterprise deployment and support, and even share some of the pitfalls discovered along the way.
Developing DSLs with Eclipse
Domain Specific Languages (DSLs) are becoming more and more popular, allowing developers to express their intent more precisely and with less syntactic noise. DSLs can be built on top of a host language (like Java or Ruby), which are referred to as "internal DSLs". External DSLs are far more flexible in terms of language design: you can define any desired grammar, you can define domain specific constraints and error messages, and you can process the DSL in a concise manner because it can either be interpreted or transformed into the code of any language by a generator.
TMF Xtext, which is a part of the Eclipse Galileo release, is a framework for developing textual domain-specific languages. Given an EBNF-style grammar, Xtext automatically generates an Ecore meta model and a rich-featured, fully configurable text-based DSL editor including features such as syntax highlighting, hyperlinked reference navigation, reference look-up, code completion, formatting, an outline and so on. The default implementation can easily be customized.
In this session Peter will explain what DSLs are and why you should care about using them. After a short introduction, he will show how to develop DSLs with TMF Xtext, which is a part of this year's Galileo release. You will learn how to define a grammar for a DSL and create a full-blown editor for this DSL, featuring code completion, syntax highlighting, hyperlinking, a semantic outline and more. Peter will also show how to write a code generator that allows you to transform your DSL scripts into running software.
About Peter Friese:
Peter Friese is a software architect with itemis in Germany and Canada. He is a committer for the open source projects TMF Xtext, openArchitectureWare, Eclipse and FindBugs. As a software engineer and software architect, Peter has worked on a variety of industry projects in different domains such as banking, aerospace and transport. Peter is the author of various articles on the topics of Eclipse, Spring and model-driven software development. He is a regular speaker at various software conferences.
OSGi for Eclipse Developers
OSGi has been gaining a lot of popularity in the software industry as of late. As an Eclipse developer, you should be aware that the Eclipse runtime (Equinox) since version 3.0 has been built on top OSGi and you have been writing OSGi bundles. The goal of this talk is to introduce the Eclipse developer to "OSGi-isms" and to answer some of these questions:
- What's the difference between an Eclipse plug-in and an OSGi bundle?
- Is there more than Require-Bundle? Why do all the OSGi guys scream about Import-Package?
- If OSGi is truly dynamic, why does Eclipse ask me to restart every time I install something?
- What's up with OSGi services, how do they compare to extensions widely used in Eclipse?
Eclipse in NASA Mission Control
Jeff Norris, NASA
What does Java development have in common with space exploration? Eclipse is the foundation for several of the tools that NASA uses to control spacecraft such as the Mars rovers and the Phoenix Mars Lander. This presentation will focus on how NASA is adapting and extending the 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. It will also include some early thoughts on how emerging collaboration technologies like Google Wave could become part of the suite of tools used in future missions.
Developing for Android with Eclipse
Eclipse is the recommended way to develop applications for Android. The Android SDK comes with an official set of Eclipse plug-ins called the Android Development Tools (ADT). ADT provides features such as custom builders, advanced editors for Android XML files, debugging on emulators and devices, and on-device testing.
This talk will show how to use ADT alongside the Android SDK to create, debug, profile and publish Android applications.
Distributed OSGi in the Eclipse Runtime Project
As part of the OSGi 4.2 specification, there is a new spec (RFC119) intended to standardize the distribution and network discovery of OSGi services. The ECF project (http://www.eclipse.org/ecf) has implemented the latest available draft and this is included in the Galileo release. Scott will present his open source, open protocol, open provider approach to implementing this spec, show example applications and discuss how others may extend and/or replace the implementation.
He'll also touch on some basic issues of distributed services, such as network transparency and 'leaky' abstractions like synchronous remote procedure call (RPC).
Deploying Successful Enterprise Tools
For a tool to be successful in an enterprise, it takes much more than writing a great Eclipse plug-in and tossing it out there. Most tool developers focus on the early phases of PDLC such as UI design, coding functionality and performance. These are necessary, but not sufficient. This presentation will cover various other aspects that drive and sustain adoption: testing, deployment mechanisms, usage tracking, maintenance, documentation, support and user education. Joep will discuss the challenges and solutions found at eBay to make Eclipse based tools successful in a large, fast-paced organization.
Build and Provision: Two Sides of the Coin We Love to Hate
Componentized software is produced by combining and assembling the output of separate development projects into a provisioned system or application. Construction of an efficient build-assemble-provision pipeline, while essential to the overall success of the development process, is typically neglected in favor of "real" development and is generally a thankless task for whoever tackles it. We're left with arcane systems glued together from Ant scripts and other "black arts", builds that fail for inexplicable reasons at the worst times, and arbitrary separation between how software is "built" and how it is "provisioned". Awareness of this problem has grown with each annual Eclipse release, and a number of new Eclipse technologies, from emerging to maturing, are now available to help. These technologies have been used to streamline Eclipse's coordinated release process, and are available to the committer community to address the needs within individual projects.
This talk will survey the landscape of build and provisioning technologies at Eclipse, explaining how overlapping technologies are being rationalized and harmonized, particularly in relation to p2. A key point will be to show how traditional "build" and "provisioning" concerns are actually just two aspects of a single development process. This talk will also demonstrate how modeling technology can be used to describe the artifacts entering the pipeline and the steps required to transform them into the final provisioned system. The goal will be to show how a declarative, high-level description can be used to make the build-assemble-provision pipeline transparent, repeatable and flexible.
Google Plugin for Eclipse: Not Just for Newbies Any More
The Google Plugin for Eclipse is the fast-lane to developing with the Google Web Toolkit and App Engine for Java. But just because it makes it easy for newbies doesn't mean that it ignores power users. Miguel will discuss how the plugin satisfies these two groups while sharing the lessons learned during its creation.