SANNI Lookman
added a comment - 22/Mar/10 23:16 Hi.
I was wondering if the SCA Tools project ( http://www.eclipse.org/stp/sca/ ) from eclipse wasn't adressing all these issues? Is there any specific requirements you wish to cover that isn't yet?

Raymond Feng
added a comment - 22/Mar/10 23:33 I'm looking for a non-Eclipse tool that can be used from the command line or web UI to generate the composite diagrams from Tuscany's in-memory representation of the composite model.

After studying about the idea, I came up with the following design proposal.

Please refer the attached proposed_design_1 image.

Composite XML should be generated using the Tuscany's in-memory representation of the composite model.
It will then will give as an input for the Composite Analyzer. Composite Analyzer then analyzes the XML document
and grab the relevant DOM Elements such as Composite, Component, Service, Reference, Wire etc. and starts to
build the SVG document using SVG DOM API of Apache Batik.

After Composite Analyzer built up the SVG document it will be the output which represents the composite diagram.

DOM elements (Composite, Component, Service, Reference, Wire etc.) possibly be static classes which holds the
shape of the artifact, colour, other static properties and will be given the dynamic properties (such as position, size etc.)
as input, in order to create a DOM element and it will be then handover to the Composite Analyzer.

This may be very high level design, but I would appreciate if you can give me some feedback.

Nirmal Fernando
added a comment - 24/Mar/11 15:18 Hi,
After studying about the idea, I came up with the following design proposal.
Please refer the attached proposed_design_1 image.
Composite XML should be generated using the Tuscany's in-memory representation of the composite model.
It will then will give as an input for the Composite Analyzer. Composite Analyzer then analyzes the XML document
and grab the relevant DOM Elements such as Composite, Component, Service, Reference, Wire etc. and starts to
build the SVG document using SVG DOM API of Apache Batik.
After Composite Analyzer built up the SVG document it will be the output which represents the composite diagram.
DOM elements (Composite, Component, Service, Reference, Wire etc.) possibly be static classes which holds the
shape of the artifact, colour, other static properties and will be given the dynamic properties (such as position, size etc.)
as input, in order to create a DOM element and it will be then handover to the Composite Analyzer.
This may be very high level design, but I would appreciate if you can give me some feedback.
Thanks.

Nirmal Fernando
added a comment - 08/Apr/11 15:27 I have submitted my proposal to Google http://socghop.appspot.com/gsoc/proposal/review/google/gsoc2011/nirmal070125/1
Really exciting to work on this project and contribute to Apache Tuscany!

Nirmal Fernando
added a comment - 26/Apr/11 19:09 Hi,
This is my work plan till 10th of May:
Read on Tuscany SCA Java, understand the design, and concentrate on project relevant parts
Read on Scalable Vector Graphics (SVG) 1.1: already partially done
Read on Apache Batik and write examples to get familiar: already partially done
Recognize all the artifacts of SCA: already partially done
Research on layout building algorithms and tools and find out the appropriate algorithm
I will update on my findings!
Thanks.

Nirmal Fernando
added a comment - 08/May/11 12:10 - edited Hi,
I have attached an Eclipse project of a composite diagram generator prototype using Apache Batik. This is an experimental project to understand the usage of Apache Batik.
@Luciano thanks, it will be helpful!
Thanks.

I'm looking at Graphviz API, playing around it and checking whether it can be used in this project !
Also watching few screen casts, reading the paper "Drawing graphs with dot" by Emden Gansner and Eleftherios Koutsoﬁos and Stephen North to learn "dot language", and experimenting

Nirmal Fernando
added a comment - 08/May/11 18:20 Hi,
I'm looking at Graphviz API, playing around it and checking whether it can be used in this project !
Also watching few screen casts, reading the paper "Drawing graphs with dot" by Emden Gansner and Eleftherios Koutsoﬁos and Stephen North to learn "dot language", and experimenting

ant elder
added a comment - 13/May/11 07:06 I've committed your Maven project to SVN here: https://svn.apache.org/repos/asf/tuscany/collaboration/GSoC-2011-Nirmal/
You can check that out with svn co https://svn.apache.org/repos/asf/tuscany/collaboration/GSoC-2011-Nirmal/ and then as soon as your userid comes through you'll be able to commit to there too

1) We can't place shapes as they overlap each other (we need this cause services overlap on components etc.). We can load a single image, but then it is not possible to connect a service to a particular reference correctly (i.e. wires will land all over, instead of connecting the correct points).

2) We can't create a shape we have for a service/reference directly, but there's a way by using a postscript file. But this will be out of the question if we can't find a solution for 1).

According to my observation graphViz can't provide a solution for 1) hence we might give up GraphViz .

So, other possibility is to use Apache batiks for diagram creation and implement a suitable algorithm to manage layout.

Nirmal Fernando
added a comment - 26/May/11 17:27 Hi All,
I am currently facing few problems with GraphViz.
1) We can't place shapes as they overlap each other (we need this cause services overlap on components etc.). We can load a single image, but then it is not possible to connect a service to a particular reference correctly (i.e. wires will land all over, instead of connecting the correct points).
2) We can't create a shape we have for a service/reference directly, but there's a way by using a postscript file. But this will be out of the question if we can't find a solution for 1).
According to my observation graphViz can't provide a solution for 1) hence we might give up GraphViz .
So, other possibility is to use Apache batiks for diagram creation and implement a suitable algorithm to manage layout.
Any thoughts are highly appreciated!
Thanks.

Nirmal Fernando
added a comment - 06/Aug/11 19:59 - edited Hi All,
I have almost finished implementing the necessary requirements of Composite Diagram Generator as per now, and starting to testing the tool.
You can find the code up to date from https://svn.apache.org/repos/asf/tuscany/collaboration/GSoC-2011-Nirmal/
Herewith I have attached 4 SVG images, created using the tool, and the 4 attached composites files were created/modified just for the feature validation process, thus may not be meaningful.
Please download and open the SVG images using your web browser, then only you'll get to see the 'inclusion' links working. Also you should place all 4 SVG images in one place to get the links to work.
PS: You may notice that the images are not scrollable, I couldn't find a way to make SVG scrollable yet (I spent very little time on it ), for now you may want to zoom in and out.
Waiting for your comments!
Thanks.