Once I have heard that a good developer is a lazy developer because he is tend to write code that he can later reuse. I am not much of a programmer but I am as lazy as one can be, so I wanted a way to reuse other people work as well. I dreamed of a system that would provide me the functionality to chain pieces of code so I would not need to write a line but just “tell” it – “Execute this operation than with its output execute that operation …” and so on. I would also need an easy way to provide some user interface to acquire and validate human input for these operations.
Lucky for me such framework now exists and I hope it will be part of eclipse quite soon. This framework is called Pave. Its name is inspired by the roman roads that are built from separate pieces which fit together perfectly and form a great structure. This is exactly what Pave does. It chains separate pieces of code called operations and provides synchronization between their parameters to guarantee they fit perfectly together.
Pave is built on top of WTP Data Model Framework. So it chains data model operations. You can find many data model operations already in eclipse. For example a Session bean is created through one such operation. You can easily wrap any business logic as a data model operation.
Pave gives you ability to add wizard pages to fill operations’ properties. Again you can reuse existing wizard pages and/or add new ones. Data Model Framework provides powerful functionality to keep your UI in synch with your model which is available full strength in Pave. You can add or override existing validation for these properties and synchronize one operation output with the next operation input.
You can find information on its architecture on http://wiki.eclipse.org/Pave. There you can find useful tutorials that will help you build your own operations and chains of operations called patterns.
For me Pave is a great way to reuse existing functionality because it allows you to easily extend and tune it. I used Pave to create 2 patterns that actually write code for me, which is just a dream for a lazy guy like me. I will tell you about these patterns in my next article, stay close.