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

Reply via email to