Building on Eclipse: the SpringSource Tool Suite

Posted by

At EclipseCon, while showing the following screenshot, I was struck by the amount of open source collaboration and commercial innovation behind the bits on the screen. You’re looking at the recently launched SpringSource Tool Suite (STS) beta that SpringSource and Tasktop Technologies have been building.

sts beta

The screenshot showcases several open source projects interoperating via common structure models and extensible UIs.

1) Spring IDE builds on the Eclipse Common Navigator in order to provide structure navigation for Spring Framework artifacts. Thanks to the extensibility of Eclipse JDT, Spring beans can be browsed as easily as Java classes. Eclipse Mylyn has been extended by Spring IDE in order to make the Spring artifacts focus on the active task. So even when building a very large enterprise application, you see only what you’re working on and can multitask with ease.

2) The crosscutting structure exposed by Spring AOP is provided by the pointcut parsing facilities from the Eclipse AspectJ project. The UI for navigating this is provided by a Spring IDE extension to the Eclipse AJDT project. The result is that the aspect-oriented artifacts in the application are as as easy to navigate as the object-oriented ones.

3) The Eclipse WTP XML editor has been extended to provide content assist, navigation and refactoring support for Spring artifacts. This is another place where Spring IDE leverages Mylyn in order to automatically fold away uninteresting XML, bringing that same benefit of focus to the editor. Another thing that’s interesting is how the closed source tool support has been layered over top of the open source in order to incorporate expertise into the tool.

4) A key goal of the SpringSource Tool Suite is to provide a Consultant in a box experience by capturing the know-how of the SpringSource consultants. If you look at the Eclipse IDE’s Problems view you’ll see that it incorporates best practice suggestions on using the Spring Framework. Runtime error assistance has also been integrated with the IDE’s Console view.

5) If you look to the right of the screenshot, you’ll see a tutorial which interactively focuses you on the code relevant to each step. This leverages both the Eclipse User Assistance Cheat Sheet mechanism and Mylyn for the tutorial code’s capture and presentation. The task-focused tutorials are a novel application of Mylyn that drives the entire Eclipse UI as you learn, automatically doing things like creating projects, loading contexts and starting servers as needed.

To learn about extending the open source projects listed above, see the following. If you have any questions on how the integration works, feel free to post them here.