Documentum Composer

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.


10 thoughts on “Documentum Composer

  1. I am very impressed to finally hit someone who does like Composer, even if it’s one of its creators. It has been a long time that I only hear bad reviews about it, and to be honest, I am so bloody upset because of trying to develop with this piece of crap (as it is at this very moment, and already 6.0 SP1), that it would be hard to explain to you how frustrated me and other users are.
    Don’t get me wrong: the theory behind it is fantastic, the only problem is that it does nothing of what it says it will: you cannot even import an artifact type to an existing docapp, or deply a simple SBO, because it will upload the file as source code, and not a .jar. Those are just 2 examples that come to my mind right now. Anything you try to develop with Composer will get you straight into a nightmare of showstoppers.
    But that is not all. The fact that you guys have developed a product on top of a developing platform seems to have given you the excuse to not to bother in giving us any proper documentation. What about the people who don’t have the time to learn Eclipse, maybe because we use other platforms? It is preety cheeky to sell us that like some sort of favour.
    What about installing a DAR file into another repository? You have to create a xml file and a script and run the second against the first!!! It is difficult to believe.
    Now try to open your docapp from the repository: tadammmm!! dmc_module objects are not listed among the docapps that you can select.

    I never came across such a piece of crap ever before. Good luck with it. As a developement tool it is useless, hopeless and exasperating.

  2. Hi composeruser,

    Firstly let me start by apologizing for any unfavourable experience that you may have had with Composer thus far. I assure you, wholeheartedly, that it is our intention to make Documentum easier, not harder.

    Secondly I invite you to engage directly with me by contacting me on my work email.

    In the meantime let me try and address some of your issues and concerns.

    You mentioned that you have had trouble importing an artifact type. I assume you mean a type definition. We actually use the import function to create versions of the “core” project. As part of this, and in addition to our functional and unit test, we regularly import type definitions. Did you receive a specific error when attempting this operation?

    You also mentioned that you were having problems deploying an SBO, which is obviously a specific type of BOF Module. It is not entirely clear what it is that you are trying to do here. Can you supply me with steps to reproduce? Did you somehow manage to associate one of your module artifacts with your java source? Anyway, I actually did post an article explaining how to do something very similar here This article is fairly general and you should be able to repurpose it for use with an SBO. You are right though at the moment this is a little bit adhoc. Unfortunately due to resource constraints the decision was made for the 1.0 release to focus on functional equivalence with DAB at the expense of other features such as BOF and DFS. We will be looking to remedy this as soon as possible.

    A further comment was regarding installing a .dar file into a docbase. Installing into “any” docbase is most definitely a supported use case. Hence, when you right-click on a Documentum project and choose “Install into a Repository…” you are presented with a docbase list, from which you can choose your target docbase. If the docbase doesnt appear in this list then you need to add the relevant docbroker to Composer’s file which you will find in the com.emc.ide.external.dfc folder in your plugins folder in your Composer installation. We do offer a set of ant tasks but these are geared towards the build engineer not the developer. As a developer I would fully expext you to be able to use the right-click project action.

    Please note that there are currently no clients that understand the dmc_dar type (which is the equivalent of DAB’s dm_application type) so, again, I am not sure what you mean by “opening the docapp from the repository”? Like a few docbase artifacts, modules are installed into a specific location within the docbase under the System cabinet. If you recieved no errors during install then your should find your Module in there somewhere. Other artifacts can be controlled vai install options in your Composer project.

    Anyway, I truely hope that this reply helps you in some small way and makes up for your bad experience thus far. I would however ask that as I have taken the time to reply to an anonymous poster that you please reveal yourself and engage directly with me so that I can quickly help you work through your issues. If you have genuine bugs then I guarantee that these will be raised in our bug tracking system and managed accordingly.

    Once again. Many thanks for your comment.

  3. Documentum 6.0 is one of the crappiest products I have ever seen in my 15-year long IT career, and Composer is one of its crappiest pieces.

    Releasing a product in a state like that is nothing but showing disrespect to all us developers in the field who have to go through great pains working with this so-called product. Taking part in a D6.0 based project made me start pondering whether I want to continue working with Documentum at all.

    • Hi Implementer,

      Firstly, thank you very much for your comments. As you will see I have left your comment “as is”.

      I am very sorry to hear that the experience you’ve had with D6 has not met up to your expectations. However, I can only really try and help with Documentum Composer. But without specifics I am not going to be able to do that, so can you expand for me please?

      Here are some pointers:-

      Is it the quality of product that you are disappointed with? Is it one area, or the whole product? Have you tried the latest service pack? Or version 6.5? Have you logged bug reports through tech support? Have these been confirmed? Have they been assigned a “planned fix release”?

      Or is it missing features, without which you cannot develop or your workflow is no better than it was before? Have you raised these? Have they been accepted?

      Or are you commenting on the overall architecture? Do you disagree with the move to integrate with eclipse for example? Or do you disagree with having offline artifacts, as opposed to DAB’s whose are online?

      Many thanks

  4. Paul,

    Composer has some good points, like logging and more transparency about what’s going on with an artifact install.

    Here’s a question: do you know much about the dmc_dar process? I’m trying to install a Documentum product through Headless Composer & having all kinds of problems installing DAR file. Mostly it doesn’t want to seem to be able to alter the dmc_dar type and add it’s own DAR entry to it. These are some assumptions & correct me if I’m wrong?

    1. a dmc_dar type doesn’t come built with a standard Documentum install
    2. when you use Composer & install an artifact into the repository if dmc_dar type is NOT already there it will create a dmc_dar type.
    3. when a new DAR archive is added via Composer (Headless or otherwise) entries in dmc_dar are created to aid in deploying the new DAR archive.
    4. if the dmc_dare type can’t be altered by Composer the DAR install will fail.

    Thanks & I think these assumptions will help others in understanding how the DAR process works.

  5. Calling the Headless composer thru Ant


    Thanks for all the hard work. I’m having an issue an thought I will write to you and see if you could help. When I call headless Composer thru a bat file. It works fine but when I try to call the same headless composer thru the java task or Ant. It just launches eclipse. The only thing I’m adding to the classpath is startup.jar. I’m I missing something or is it not possible to do what I’m doing

    • From the command line you would invoke composer using something like:-

      java -jar plugins/org.eclipse.equinox.launcher_|your version designation|.jar -application org.eclipse.ant.core.antRunner -buildfile build.xml

      or even just:-
      eclipse -application org.eclipse.ant.core.antRunner -buildfile build.xml

      So all you need to do is convert one of the above invocations to the appropriate ant task.

      Note that with the ganymede release startup.jar was removed from the eclipse manifest. You know use the launcher plugin jar instead. Check your plugins folder for the version designation.


  6. Paul,

    I have two questions:
    1. I was not able to make darinstaller run by copying it to the vanilla Eclipse folder. When I run darinstaller, it opens like a regular Eclipse workspace. I don’t get the single window with repository connection prompts.

    Composer plugins are working fine in this Eclipse folder. So I have to keep the Composer installation as well for running darinstaller. Any tips?

    2. I am trying to figure out where the upgrade options (overwrite, ignore, version) are stored for the artifacts in a project. As I am using source control on the Documentum Project, I want to make sure that the upgrade options are also captured when I check in the artifacts.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s