We recently released Composer D6. I have been working on this product for a little over a year now and I’m pretty proud of it. It is a totally new product built on top of the eclipse platform. It is however just one very small step down a very long road. So what you see at the moment just scratches surface of what we will eventually achieve. Even so I think it will set a new bar for content management tooling.
It is important to understand that Composer brings several new and different perspectives to developing content applications. These are quite deliberate and allow us to gel better with the real world of enterprise development.
The first new perspective is the concept of local design-time artifacts. There is no longer a “scratch” or development Repository. Documentum artifacts are managed in local projects and are placed under the same source control as all your other application artifacts. You can now manage your Documentum artifacts right along side all your other application artifacts; JSPs, servlets, portlets and web services, etc in perforce or whatever other SCM you use. We know from our own experience of using Composer that this makes developing content-enabled applications an order of magnitude easier already. Incidentally, Composer also ships with a set of ant tasks that helps your build team perform automated builds of you Documentum applications.
Another significant shift in paradigm is the move towards a conventional build, validation and packaging process. This process is akin to a java source file being compiled into a java .class file. Composer ships with an Artifact Builder that takes your source artifacts, validates them, builds them into artifact files (.artifact) and packages them into a Documentum ARchive (a .dar file). This is fully re-distributable package that can be installed into any Repository using Composer’s Installer. The builder also fits right into eclipse’s own build infrastructure and if you set your workspace accordingly will quite happily sit doing incremental background builds of your project as you develop. Any warnings and errors that affect your artifacts are presented in the standard eclipse Problems view. Double-clicking on one of these line items will launch the affected artifact in its editor. This new build mechanism ensures that your re-distributable is always valid and simplifies the install process down to one of simple installing the artifacts.
To help people migrate their existing docapps (which are produced with Application Builder) you can do one of two things. Import a docapp from a Repository or Import a Docapp Archive (via a Repository). The net result of both is a new Composer project with one artifact for every object that was in your docapp or docapp archive.
Lastly, Composer also has a beta DFS integration. Every Composer Project is in fact also enabled for DFS development. If you examine the java build path of any Composer project you will see that it has a DFS Services Library. And if you examine the project’s builders you will also see a DFS Builder. Right of the bat this allows you to start creating DFS services by creating them in the Web Services folder. Again the build is a standard eclipse incremental builder and will quite happily build your services for you in the background as you develop them. To develop a client its a simple case of configuring you project so that it has the right DFS library. You do this by going to the Libraries tab of the java build path. Selecting the existing DFS Library and choosing edit – this will present a page allowing you to choose the type of DFS library that you want to associate with the project. There is the standards services library and a client library. The other two are variants of the services library related to different content transfer options. Obviously for client development you choose the DFS Local Client Library. Once you have developed your service or services you can then export them by right clicking on the project and choosing Export -> Documentum -> Service Archive. This will produce you an ear file that is ready for deployment onto a web service enabled application server. As I say at the moment this integration is BETA but it even at this early stage it beats working with ant tasks and it also significantly simplifies your classpath management issues for you. I will likely post more on this in the coming weeks as this is quite a complex subject.
So, that’s it for now. I wanted to provide a very brief and hopefully useful overview. All that remains to say is happy composing! I am actively seeking feedback on any aspect of Composer so feel free to comment.