Sonatype, the main company which drives Maven development, recently announced that they are joining the Eclipse Foundation as a Strategic Developer. InfoQ spoke with Sonatype CTO and Maven founder Jazon Van Zyl to learn more about this partnership and what it means for the future of Maven.
InfoQ: Can you describe in more detail what ramifications a closer link to Eclipse will have for Maven?
Jason Van Zyl: There is a large overlap between the Maven and Eclipse user communities. Sonatype is really trying to marry these two communities to provide seamless integration between the two platforms. Users, in particular, will benefit the most. Sonatype has long-standing relationships in the Apache Maven community, and we are cultivating the same type of relationships at Eclipse and creating a bridge between the Maven and Eclipse communities. There's always been a little tension between the Maven and Eclipse communities on how to build software, how a dependency management system should work, and where binary artifacts should be stored. We're creating practical hybrid solutions so developers can get their work done.
InfoQ: How will this partnership affect Maven both in the short term and in the long term?
Jason Van Zyl: In the short term, from a technology perspective, the m2eclipse integration has made me take a hard look at the embedding technologies that Maven provides. Many aspects of that have changed to accommodate running Maven inside the Eclipse platform. From a community perspective we see a huge number of users flocking to m2eclipse: the mailing lists are booming, we have users submitting lots of new feature requests, users are responding positively to innovative tools we are creating like our POM editor. We're close to 100k downloads in a four month period which is pretty amazing for a pre-1.0 package.
All of this results in tons of feedback which drives change back into Maven's core. A lot of the incremental behavior and visual feedback users expect in Eclipse have made us very performance conscious and cognizant of how we publish events from Maven's core. Maven is extensible, but exposure to Eclipse's powerful extension point mechanism has made us think about how we provide the right places for extension in the Maven platform, and how we will make that available from within the Eclipse platform.
A concrete example of this might be how we expose our Nexus (Sonatype's Maven repository manager) APIs inside Eclipse to give any Eclipse plugin ways to query and retrieve artifacts from a Maven repository. This is a simple example but is incredibly powerful as it allows you to say things like "I would like to find every artifact in my corporate repository that represents an API for a web service" and allows a developer to assemble an application by interactively selecting a set of web services and aggregating them into a new application.
In the long term, Sonatype is a Strategic Development Member of the Eclipse Foundation which means we have a seat on the Eclipse board affording us the opportunity to influence the direction of the platform. Of course, no one group just gets to do whatever they want. It's a dialog. Being a Strategic Development Member means that Sonatype is committed to providing 8 full-time employees dedicated to m2eclipse and a huge portion of this work is work on Maven itself which is a long-term benefit for the Maven community. Maven is getting a lot of attention via the Eclipse community.
The Apache and Eclipse communities, I feel, are very complementary. Apache was started very much to capture the passion of open source which can be at times a little chaotic, while Eclipse has a very pragmatic and commercial view of open source. Both are necessary to create a real ecosystem of projects that can support users. You can see at Apache there can be some very heated discussions, even dissent sometimes, but this is good for innovation. If everything was just a homogenous pile nothing new would arise. Apache is anything but homogenous. But when it comes to delivering a product, Eclipse's raises the bar with meticulous attention to IP, high levels of API compatibility between releases, and great deal of rigor in release scheduling. To me, creating hybrid systems that leverage both of these communities to produce tools like m2eclipse is ideal.
Also long term, Sonatype's relationship with Eclipse will filter down into the Maven project with more attention to release scheduling, stamping out regressions, and increasing the general level of communication with users. This has already started to happen with the 2.0.9 and 2.0.10 releases of Maven where we've been stamping out regressions with an extensive release candidate cycle.
InfoQ: What is the expected release date and feature set for Maven 2.1, and will this have any impact upon that?
Jason Van Zyl: Currently, we are not talking publicly about the schedule. I can tell you, we are trying to get Maven 2.1 out as fast as we can, and the relationship with Eclipse is definitely driving this. One of the primary technology additions to Maven 2.1 is the embedding technology and this particular piece is critical to m2eclipse. At this time we are working on releasing Maven 2.1-alpha-1, and we are working hard on ensuring compatibility with plugins running on 2.0.x, so that we make the transition for users as easy as possible. Eclipse also prefers for the IP process to only work with releases so we've started to mobilize to get this release out in order to create less waves in the Eclipse IP process. This is a very positive development.
InfoQ: What effects has community feedback had on Maven?
Jason Van Zyl: In the last two releases of Maven we've really been user focused. We've tried to fix all regressions and add the features that have been most requested. For the m2eclipse plug-in, we've implemented the most requested features which were the Project Object Model (POM) editor and Nexus repository management integration.
InfoQ: What is Sonatype's role in the future development of Maven?
Jason Van Zyl: There are many employees at Sonatype who are long-standing Apache Maven committers and Apache members, so we've always been deeply involved in Maven development. I started Maven almost 5 years ago now, and I have no plans to go anywhere. I'll continue to help drive the Maven community forward. As a natural consequence of the commercial work we do we will have more people working on Maven related technologies, so Sonatype will continue to play a significant role in the Maven community. I think a lot of the things are clients are asking for are of general interest, so I feel the work we're doing is beneficial to the whole Maven community. We're doing a lot of OSGi integration, and integration with scripting languages, definitely of great interest to a lot of people. Ultimately, Sonatype's involvement will bring these technology integrations into the world faster then they normally would emerged.
InfoQ: Are there any plans to unify the Maven module system with OSGi in a future release?
Jason Van Zyl: Yes! The project for this integration is called Tycho. It will provide a Maven-based solution for building OSGi bundles and Eclipse plugins. Our current prototypes have subverted Maven's normal dependency resolution mechanism and delegate to an OSGi-based dependency resolution mechanism. We can actually build OSGi-based projects without POM. This work also entails interacting with p2 repositories. What we want to provide is an end-to-end solution for OSGi-based development using Maven. Much of our work deals with repositories and in large part hinges on changes we are making in Nexus to provide a mediation layer between Maven repositories, standard Eclipse update sites, and p2 repositories. We have been working hard on Tycho, and we believe this will provide the required unification/integration layer between the Maven and OSGi worlds. Tycho will also be moving into the Eclipse Foundation along with m2eclipse.
Community comments
What about IDE-agnostic support?
by Sébastien Arbogast,
Re: What about IDE-agnostic support?
by Eugene Kuleshov,
Re: What about IDE-agnostic support?
by Rod Johnson,
What about IDE-agnostic support?
by Sébastien Arbogast,
Your message is awaiting moderation. Thank you for participating in the discussion.
I'm always afraid when I hear that a good Open Source project creates tight relationships with the Eclipse foundation because it increases some sort of vendor lock-in. Believe or not, Eclipse is NOT the best IDE out there and a lot of developers are using other tools to develop. What is great with Maven is that it's completely IDE-neutral, so I can work on a Maven project using IntelliJ while my colleagues work in Eclipse, and everything is fine. Now I'm afraid that this new move will create features that are only available in Eclipse and not in other IDE's. The same thing is happening with SpringSource, Adobe, etc. and it sucks!
Re: What about IDE-agnostic support?
by Eugene Kuleshov,
Your message is awaiting moderation. Thank you for participating in the discussion.
Maven always was and always will be IDE-agnostic. However if you want good IDE support (and that is the same for any tools, not only Maven), you have to talk to the IDE vendor. Naturally, you can expect good IDE integration, if it comes from the source, like Sonatype or SpringSource. It doesn't mean vendor lookup or anything, it is just mean that some vendor have better tools integrations then the others.
Basically, the criteria you used to decide what IDE is best for you, not necessarily the same for someone else. More over, it seem like you are unhappy about Spring and Adobe support in the IDE of your choice, so maybe you should re-evaluate your own criteria or you have to ask your IDE vendor to provide support for technologies you are using.
Re: What about IDE-agnostic support?
by Rod Johnson,
Your message is awaiting moderation. Thank you for participating in the discussion.
Only Spring IDE and SpringSource Tool Suite are based on Eclipse. We use Eclipse Equinox inside SpringSource Application Platform, but that's not tied to the Eclipse IDE.
JetBrains have been building progressively better Spring support into IntelliJ, and I believe there is also a NetBeans plugin. We don't have the resources to provide support for every IDE out there, and we think it's better to provide value adds around the most popular IDE, rather than provide nothing at all.
We base our tool suite on Eclipse because of its popularity and extensibility, and because we're excited about what AJDT and Mylyn enable us to do in value adds.
Rod Johnson, SpringSource