On Sat, Jun 25, 2011 at 5:54 AM, Nirmal Fernando <[email protected]> wrote: > Hi All, > > I need your help to decide how should Composite Diagram Generator loads > composite XML. > I can see two main options: > > 1) Load from the Jar file > 2) Directly load the composite XML (i.e. user gives it as the input) > > Thanks. >
I think this calls for bigger questions: - Why will a user want to use the tool? - How will he use it? Here are some ideas, as I can think of a few use cases: A) I'm an SCA app developer and I want to use it to visualize the composites I'm in the middle of authoring on in my development environment. B) I'm an SCA app developer and I want to use it to browse a bunch of composites that I'm thinking about reusing. C) I'm a system administrator and I want to use it to browse the domain composite, the composites it includes and the composites it uses to check that my domain is correctly configured and wired up. D) I'm embedding Tuscany, building some tools for it, and want to generate these SVG diagrams programmatically. With these use cases in mind, I can see the following requirements: t) a command line tool that takes the text of a composite on standard input and prints the corresponding HTML + SVG on standard output; u) a command line tool that takes a directory containing a bunch of SCA contributions, and produces a tree of HTML + SVG linked together; v) a Web based tool that takes the URL of a composite document and serves the corresponding HTML + SVG; w) a Web based tool that takes the URL of an SCA domain and serves the corresponding HTML + SVG documents; x) a reusable library that takes the text of a composite and returns the corresponding SVG for it; y) a reusable library that takes a list of SCA contributions URLs and produces a tree of HTML + SVG linked together. z) all of the above should work with buggy, unresolved, and incomplete composites or they won't be really useful to a developer or administrator... just think of a Java editor that couldn't load a Java source with bugs in it... it wouldn't be so useful :) Obviously you don't want to implement all of the above right now... To start small and simple, you could just do (x), (t) and (z), which would already be great! Then you could try to do (v) (x wrapped in a servlet) if you have time, for a nice Web browser based experience... Hope this helps -- Jean-Sebastien
