The Indigo release train will include 62 projects released on the June 22. Lots of great new technology is coming to a download server near you. There are a number of projects that are joining the release train for the first time. Two years ago I did a blog series highlighting some of the new projects on the release train, so I thought I would do it again this year.
I have asked each project leader to answer four short questions about their project. Hopefully it will give you an idea of what the project is about and why you might care. The first project is Stephan Herrmann from Object Teams.
1. What does your project provide to an Eclipse user?
Generally, Object Teams addresses all those situations where modularity is difficult to achieve, especially in case of conflicts between various design goals, including issues of maintenance/evolution, demanding re-use scenarii (like evolving variants), unanticipated adaptations and more.
The Object Teams Project addresses these goals at three levels:
– An extension of the Java programming language, called OT/J
– A JDT-quality IDE for OT/J (Object Teams Development Tooling, OTDT)
– An integration with Equinox adding new options for inter-connecting
bundles/plug-ins.
More specifically, OT/J adds to Java the concept of Roles, a specific
kind of classes and objects, that connect in special ways to their
environment:
– Roles are strongly contained in so-called Teams, enabling the
programmer to create (nestable) modules larger than classes right
in the programming language.
– Roles are attached to existing classes and objects, thus dynamically
adding new facets to existing base objects. A Role can even influence
the behavior of its base. Removing or disabling the Role at runtime
restores the original behavior.
By the combination of both relations a group of interacting, contextual
Roles is the ideal concept for encapsulating the implementation of any
use-case, scenario, feature or whatever your units of development are.
2. Why are you personally involved in the project?
In my academic past I initiated and led the development of OT/J.
At a point during the development of the OTDT we started to use
our own technology for building the tool. At this point I saw my
hopes come true: we can re-use all of the JDT (and some other
Eclipse components), adapt all these to the requirements of an IDE
for OT/J, and all these adaptations have been designed in a highly
modular way, which is a breeze to maintain over the years.
Although this is only one of many possible scenerios that can
benefit from OT/J, this experience has been a strong motivation
for me towards making this powerful tool available for others, too.
Additionally, while building the IDE we got so deeply involved with
Eclipse that it is only natural, that the project moved to Eclipse.org.
And then the Eclipse community has been very welcoming (after
the regular hiccups during project creation) at all levels: from
Mentors, EMO, Legal, PMCs etc. to the audiences at various Demo
Camps: very positive feedback and lots of help all the way.
All these refuel my motivation for running this as an Eclipse Project.
3. What is the future roadmap for your project?
Well, the very near future, the Indigo release, shall also mark the
graduation of the Eclipse Object Teams Project. Almost 10 years
after the first students started implementing OT/J this seems to
be due.
Adopting and supporting Java7 is a nice challenge to be tackled
with no or minimal delay after the Indigo release.
Mid-term we have a few more technologies in the pipe-line,
typically integrations with other frameworks etc. The first one here
is bringing a prototypical integration with EclipseLink (OT/JPA) to
Eclipse.org, too.
Of course, the constant flow of small to medium enhancements
is cool, too, like more refactorings, more quick assists etc.pp.
The most important plan item, however, is to further improve the
support for new users of Object Teams. To this end we’ll pay close
attention to any requests for explanations, examples, tutorials
etc. posted in our forum.
4. What have been your experiences of participating in the Indigo release train?
Of course the primary impression is amazement about the huge
size of this machine and how it delivers quality on time.
In the course of joining the train, the Object Teams Project had
a very special experience, which started innocently as a bug in the
b3 aggregator, causing the jdt.core plugin to be missing from the
indigo repository. As more people looked into this they realized that
Object Teams publishes a variant of the jdt.core plugin which in
conjunction with the bug in the aggregator led to the conflict.
This triggered a fundamental discussion which – honestly – scared
me, but need not be repeated here.
In retrospect, however, I can say that several of the leaders in
Eclipse land took their time looking at the details and advising us
how to better protect the user from unintended effects.
I appreciate their help.
Although an unusual baptism of fire, this situation pitched me
right into the heart of what the Eclipse community is about:
Openly discussing technology, rules and processes – all three of’em.
This is a great place to be, indeed.
Of course, the daily mechanics of the release train are pretty
mundane, like: who broke the XML of their contribution file?
Why can’t p2 read from that repository? Who pulled in the
dependency of this bogus plug-in? Etc. pp.
But if that’s what’s needed to keep the train travelling,
than so be it and great to know that nobody is left alone
when some gear of this big machine breaks.