Storing WSDL In Rational Asset Manager
Hickmat 100000QA3T Visits (1935)
Recently I had the opportunity to get under the covers of Rational Asset Manager (RAM) and I liked what I found. For a long time I've been convinced of the value of RAM though at times I have had trouble getting people to share my vision of RAM as a enterprise level asset management tool rather than the definitive software library role where it traditionally get placed (at least in my opinion).
This time round I was looking at what I could achieve in storing a Web Service asset such that the dependency relationships are clearly represented. After some research and discussions with some on my RAM contacts I decided that using a Custom Policy could provide me with the ideal extension point. For details on this area of RAM refer to the following LINK in the RAM Information Center.
When creating a custom policy these are the main steps:
First I had to figure out how my policy would work. I decided that the way it would function was that it would be invoked when an asset was saved into or entered the Submitted state within the Lifecycle (for simplicity I decided to use the Implicit Asset Lifecycle, The submitted asset would contain all the dependent files that compose the fully defined WSDL e.g. imported WSDLs, XSD etc. When the policy is called the asset contents would be down loaded and parsed using WS4J. Once parsed the dependency information is determined by examining the parse tree create by WS4J and the require associated assets are created and linked.
So now I needed to start cutting code First I created a class called WSDLReviewPolicy to contain my policy logic. One key thing I needed to figure out was how to make sure my code picked up the correct WS4J setting in RAM. This this end I needed to add the following entry to my code Syst
Next I create a class called MyGovernor to govern and register my new policy. Finally I exported all this code to a jar file ready for uploading to RAM.
Now I had my code ready I needed to start configuring RAM. My starting point was that I had a Community created with the Implicit Asset Lifecycle applied and Schema, Service and WSDL asset types associated to it. The first step was to use the Administration option in RAM to register the custom extension. These steps are shown below:
A video showing this in action can be found in this ZIP. The ZIP contains a SWF which is a screencam of showing the uploading of a service and the results created in RAM. I'm still playing this this code and have some more ideas around what I could do with it but just now my workload is such that I don't have any spare processing cycles. If I do make any interesting changes I'll look to update this Blog entry.