You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ni...@apache.org on 2011/08/15 23:08:48 UTC

svn commit: r1158011 - in /tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik: ./ src/main/java/org/apache/tuscany/sca/impl/diagram/ src/main/java/org/apache/tuscany/sca/impl/html/ src/main/java/org/apache/tuscany/sca/impl/io/ s...

Author: nirmal070125
Date: Mon Aug 15 21:08:48 2011
New Revision: 1158011

URL: http://svn.apache.org/viewvc?rev=1158011&view=rev
Log:
Providing a command line interface

Added:
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/org/
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/org/apache/
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/org/apache/tuscany/
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/org/apache/tuscany/sca/
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/org/apache/tuscany/sca/layout/
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/org/apache/tuscany/sca/layout/LayoutBuilderTest.java   (with props)
Removed:
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/test/
Modified:
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/pom.xml
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/html/HTMLWrapper.java
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/io/XMLWriter.java
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/CompositeEntity.java
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/EntityBuilder.java
    tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java

Modified: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/pom.xml?rev=1158011&r1=1158010&r2=1158011&view=diff
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/pom.xml (original)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/pom.xml Mon Aug 15 21:08:48 2011
@@ -104,11 +104,6 @@
             <version>2.0-SNAPSHOT</version>
         </dependency>
         
-        <dependency>
-            <groupId>org.apache.ws.commons.schema</groupId>
-            <artifactId>XmlSchema</artifactId>
-            <version>1.4.3</version>
-        </dependency>
     </dependencies>
 
 
@@ -125,6 +120,36 @@
              <target>1.5</target>
             </configuration>
            </plugin>
+
+            <plugin>
+    <artifactId>maven-dependency-plugin</artifactId>
+    <executions>
+      <execution>
+        <id>${project.artifactId}-fetch-deps</id>
+        <phase>generate-sources</phase>
+        <goals><goal>unpack-dependencies</goal></goals>
+        <configuration>
+          <outputDirectory>${project.build.outputDirectory}</outputDirectory>
+          <stripVersion>true</stripVersion>
+          <excludeTransitive>true</excludeTransitive>
+          <excludeArtifactIds>junit</excludeArtifactIds>
+        </configuration>
+      </execution>
+    </executions>
+  </plugin>
+
+            <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-jar-plugin</artifactId>
+        <version>2.3.1</version>
+        <configuration>
+          <archive>
+            <manifest>
+              <mainClass>org.apache.tuscany.sca.main.Main</mainClass>
+            </manifest>
+          </archive>
+        </configuration>
+      </plugin>
           </plugins>
 
     </build>

Modified: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java?rev=1158011&r1=1158010&r2=1158011&view=diff
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java (original)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/diagram/DiagramGenerator.java Mon Aug 15 21:08:48 2011
@@ -20,7 +20,6 @@
 package org.apache.tuscany.sca.impl.diagram;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Iterator;
 import java.util.Map.Entry;
 
@@ -54,6 +53,8 @@ public class DiagramGenerator {
 	private ArrayList<ServiceArtifact> sers= new ArrayList<ServiceArtifact>();
 	private int diagramHeight, diagramWidth;
 	
+	private boolean isHtml;
+	
 	private int lastUsedChangingFactor = 0;
 	enum changingFactor{a(20), b(25), c(30), d(35), e(40), f(15);
 	
@@ -76,10 +77,11 @@ public class DiagramGenerator {
 	 * Constructor to generate a SVG diagram for a given CompositeEntity
 	 * Object.
 	 */
-	public DiagramGenerator(CompositeEntity comp) {
+	public DiagramGenerator(CompositeEntity comp, boolean isHtml) {
 
 		this.comp = comp;
-
+		this.isHtml = isHtml;
+		
 	}
 
 	/**
@@ -189,11 +191,20 @@ public class DiagramGenerator {
 			svgRoot.appendChild(text);
 
 			text = Text.addTextElement(doc, svgNS, x0+constant, y0+constant*7, "");
+			
+			String ext;
+			
+			if(isHtml){
+				ext = ".html";
+			}
+			else{
+				ext = ".svg";
+			}
 
 			for(String includedComposite : comp.getIncludedComposites()){
 
 				Link link = new Link();
-				Element aLink = link.addElement(doc, svgNS, includedComposite+comp.getFileNameSuffix()+".svg", includedComposite);
+				Element aLink = link.addElement(doc, svgNS, includedComposite+comp.getFileNameSuffix()+ext, includedComposite);
 				text.appendChild(aLink);
 
 			}
@@ -358,7 +369,7 @@ public class DiagramGenerator {
 									//System.err.println("XXXXX "+ sers.get(1)+ " ::::::: "+refs.get(1));
 									//									System.err.println("XXXXX "+ sers.get(2)+ " ::::::: "+refs.get(2));
 									//									System.err.println("XXXXX "+ sers.get(3)+ " ::::::: "+refs.get(3));
-									System.err.println("XXXXX "+ refs.get(sers.indexOf(s))+" ::: "+ent.getLevel()+" ::: "+ent.getName());
+									//System.err.println("XXXXX "+ refs.get(sers.indexOf(s))+" ::: "+ent.getLevel()+" ::: "+ent.getName());
 									orderedRefs[ent.getLevel()] = refs.get(sers.indexOf(s));
 									break;
 								}
@@ -369,10 +380,10 @@ public class DiagramGenerator {
 											orderedRefs[i] = refs.get(sers.indexOf(s));
 											break;
 										}
-										else{
-											if(i==orderedRefs.length)
-												System.out.println("GRRR");
-										}
+//										else{
+//											if(i==orderedRefs.length)
+//												System.out.println("GRRR");
+//										}
 									}
 								}
 							}
@@ -429,7 +440,7 @@ public class DiagramGenerator {
 		int x= ent.getX()-(serHeight*2/3);
 		int y= ent.getY() + Constant.SPACING_FOR_COMPONENT_OF_SERVICE;
 
-		System.out.println("''''''"+ent.getName() +" '''''' "+ ent.getServices().size());
+		//System.out.println("''''''"+ent.getName() +" '''''' "+ ent.getServices().size());
 		for(String ser: ent.getServices()){
 
 			ServiceArtifact serve= new ServiceArtifact();
@@ -541,7 +552,7 @@ public class DiagramGenerator {
 	private void addComponent(Entity ent) {
 
 		ComponentArtifact comp = new ComponentArtifact();
-		System.err.println(ent.getX());
+		//System.err.println(ent.getX());
 		Element com = comp.addElement(doc, svgNS, ent.getX(), ent.getY(), 
 				ent.getHeight(), ent.getWidth());	
 		Element text = Text.addTextElement(doc, svgNS, ent.getX(), 

Modified: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/html/HTMLWrapper.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/html/HTMLWrapper.java?rev=1158011&r1=1158010&r2=1158011&view=diff
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/html/HTMLWrapper.java (original)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/html/HTMLWrapper.java Mon Aug 15 21:08:48 2011
@@ -37,33 +37,23 @@ public class HTMLWrapper {
 	
 	private File htmlFilePath;
 	private String compositeName;
-	private String svgFileName;
-	private int compositeHeight, compositeWidth;
-	private Document svg;
-	private static final String CANVG_LIB_DIR = System.getProperty("user.dir")+"/resources/";
-	private static final String CANVG_FILE = "canvg-1.0.js";
-	private static final String RGB_FILE = "rgbcolor.js";
+	private String svg;
+	
 	
 	/**
 	 * 
+	 * @param svg
 	 * @param compositeName
-	 * @param svgFileName
-	 * @param compositeHeight
-	 * @param compositeWidth
 	 * @param htmlFilePath
 	 */
-	public HTMLWrapper(Document svg, String compositeName, String svgFileName,
-			int compositeHeight, int compositeWidth, File htmlFilePath) {
+	public HTMLWrapper(String svg, String compositeName, File htmlFilePath) {
 		
 		this.svg = svg;
 		this.compositeName = compositeName;
-		this.svgFileName = svgFileName;
-		this.compositeHeight = compositeHeight;
-		this.compositeWidth = compositeWidth;
 		this.htmlFilePath = htmlFilePath;
 	}
 	
-	public void buildHTML() throws Exception{
+	public String buildHTML() throws Exception{
 		String content = "" +
 				"<html>\n" +
 				"<head>\n" +
@@ -83,7 +73,7 @@ public class HTMLWrapper {
 //				"</script>\n" +
 				"</head>\n" +
 				"<body>\n" +
-				extractSvg()+"\n"+
+				svg+"\n"+
 //				"<canvas id=\"canvas\" width=\""+compositeWidth+"px\" height=\""+compositeHeight+"px\">\n" +
 //				"</canvas>\n" +
 				"</body>\n" +
@@ -91,25 +81,8 @@ public class HTMLWrapper {
 		
 		fileWriter(content);
 		
-	}
-	
-	public String extractSvg() throws Exception{
-
-		// Set up the output transformer
-		TransformerFactory transfac = TransformerFactory.newInstance();
-		Transformer trans = transfac.newTransformer();
-
-		// Print the DOM node
-
-		StringWriter sw = new StringWriter();
-		StreamResult result = new StreamResult(sw);
-		DOMSource source = new DOMSource(svg);
-		trans.transform(source, result);
-		String svgString = sw.toString();
-
-		System.out.println(svgString);
-
-		return svgString;
+		return content;
+		
 	}
 
 

Modified: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/io/XMLWriter.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/io/XMLWriter.java?rev=1158011&r1=1158010&r2=1158011&view=diff
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/io/XMLWriter.java (original)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/io/XMLWriter.java Mon Aug 15 21:08:48 2011
@@ -32,15 +32,18 @@ import org.w3c.dom.Document;
 
 public class XMLWriter {
 
-	public void fileWriter(Document doc, File outFile) throws Exception{
+	public void fileWriter(String content, File outFile) throws Exception{
 
 		FileWriter fileWriter = new FileWriter(outFile);
 		BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
-		TransformerFactory transformerFactory = TransformerFactory.newInstance();
-		Transformer transformer = transformerFactory.newTransformer();
-		DOMSource source = new DOMSource(doc);
-		StreamResult result =  new StreamResult(bufferedWriter);
-		transformer.transform(source, result);
+		bufferedWriter.write(content);
+		bufferedWriter.close();
+		
+//		TransformerFactory transformerFactory = TransformerFactory.newInstance();
+//		Transformer transformer = transformerFactory.newTransformer();
+//		DOMSource source = new DOMSource(doc);
+//		StreamResult result =  new StreamResult(bufferedWriter);
+//		transformer.transform(source, result);
 
 	}
 }

Modified: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/CompositeEntity.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/CompositeEntity.java?rev=1158011&r1=1158010&r2=1158011&view=diff
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/CompositeEntity.java (original)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/CompositeEntity.java Mon Aug 15 21:08:48 2011
@@ -73,7 +73,7 @@ public class CompositeEntity extends Ent
 	}
 	
 	public void referenceHeight(){
-		System.err.println(getDefaultNoOfRefs() + " kkkkkkk "+getNoOfRefs());
+		//System.err.println(getDefaultNoOfRefs() + " kkkkkkk "+getNoOfRefs());
 		
 		if(getDefaultNoOfRefs() < getNoOfRefs()){
 
@@ -146,7 +146,7 @@ public class CompositeEntity extends Ent
 	}
 	
 	public void calcWidth(int initPoint) {
-		System.err.println("maxInternalLane "+maxInternalLane);
+		//System.err.println("maxInternalLane "+maxInternalLane);
 		setWidth((Constant.COMPONENT_DEFAULT_WIDTH * getSpaceFactor()) * (maxInternalLane + 1) + initPoint);
 	}
 	
@@ -164,7 +164,7 @@ public class CompositeEntity extends Ent
 			maxInternalLane = max(maxInternalLane, ent.getLane());
 
 		}
-		System.out.println("++++++ "+maxInternalLevel+" +++++ "+maxInternalLane);
+		//System.out.println("++++++ "+maxInternalLevel+" +++++ "+maxInternalLane);
 	}
 
 	public int getMaxInternalLevel() {

Modified: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/EntityBuilder.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/EntityBuilder.java?rev=1158011&r1=1158010&r2=1158011&view=diff
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/EntityBuilder.java (original)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/impl/layout/EntityBuilder.java Mon Aug 15 21:08:48 2011
@@ -656,7 +656,7 @@ public class EntityBuilder {
 	
 
 	private void addToConnectedEntities(String ent1, String ent2) {
-		System.err.println(ent1+" : "+ent2);
+		//System.err.println(ent1+" : "+ent2);
 		ArrayList<String> list;
 		if(connectedEntities.containsKey(ent1)){
 			list = connectedEntities.get(ent1);
@@ -685,7 +685,7 @@ public class EntityBuilder {
 		if(nl1 != null && nl1.getLength() > 0 ) {
 			for(int i = 0 ; i < nl1.getLength();i++) {
 				Element elt = (Element)nl1.item(i);
-				System.out.println(elt.getAttribute("class"));
+				//System.out.println(elt.getAttribute("class"));
 				String serName = extractServiceName(elt.getAttribute("class"));
 				ent.addAService(serName);
 			}

Modified: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java?rev=1158011&r1=1158010&r2=1158011&view=diff
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java (original)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/main/java/org/apache/tuscany/sca/main/Main.java Mon Aug 15 21:08:48 2011
@@ -20,6 +20,12 @@
 package org.apache.tuscany.sca.main;
 
 import java.io.File;
+import java.io.StringWriter;
+
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
 
 import org.apache.tuscany.sca.impl.diagram.DiagramGenerator;
 import org.apache.tuscany.sca.impl.html.HTMLWrapper;
@@ -30,7 +36,9 @@ import org.apache.tuscany.sca.impl.layou
 import org.w3c.dom.Document;
 
 public class Main {
-	private static final String outFileDir = System.getProperty("user.dir")+"/output/";
+	private static String outFileDir ; //= System.getProperty("user.dir")+"/output/";
+	private static boolean isHtml=false;
+	private static boolean isSvg=false;
 
 	/**
 	 * @param args
@@ -38,40 +46,120 @@ public class Main {
 	 */
 	public static void main(String[] args) throws Exception {
 	
-//		if(args.length == 0){
-//		
-//			String help = "" +
-//					"----------Apache Tuscany Composite Diagram Generator----------\n" +
-//					"\n" +
-//					"Error: You have not specified an input \"Composite XML\" file.\n" +
-//					"\n" +
-//					"-----------------------------Help-----------------------------\n" +
-//					"You have 3 options:\n" +
-//					"---1) Default: Specify \"Composite XML\" file paths separated \n" +
-//					"---            by a space, with no arguments.\n" +
-//					"---     Eg: java CompositeDiagramGenerator \\a\\aa\\a.composite \\b\\b\\b.composite \n" +
-//					"---" +
-//					"---2) SVG Only";
-//			System.out.println();
-//		}
-
-		XMLReader reader = new XMLReader();
-		Document doc =reader.parseXMLFile(System.getProperty("user.dir")+"/input/composite_with_compositeService.xml");//composite1.xml composite_with_compositeService.xml");
-		EntityBuilder eb = new EntityBuilder(doc);
-		CompositeEntity comp =eb.buildCompositeEntity();
+		if(args.length == 0){
+		
+			String help = "" +
+					"----------Apache Tuscany Composite Diagram Generator----------\n" +
+					"\n" +
+					"Error: You have not specified an input \"Composite XML\" file.\n" +
+					"\n" +
+					"-----------------------------Help-----------------------------\n" +
+					"You have 3 options:\n" +
+					"---1) Default: Specify \"Composite XML\" file paths separated \n" +
+					"---            by a space, with no arguments. This will" +
+					"---            generate SVG and HTML output.\n" +
+					"---     Eg: java -jar tuscany-composite-diagram-0.0.1.jar \n" +
+					"---         //a//aa//a.composite //b//bb//b.composite \n" +
+					"---\n" +
+					"---2) SVG Only: Specify \"Composite XML\" file paths separated\n" +
+					"---            by a space, with '-svg' argument.\n" +
+					"---     Eg: java -jar tuscany-composite-diagram-0.0.1.jar -svg\n" +
+					"---          //a//aa//a.composite //b//bb//b.composite \n" +
+					"---\n" +
+					"---3) HTML Only: Specify \"Composite XML\" file paths separated\n" +
+					"---            by a space, with '-html' argument.\n" +
+					"---     Eg: java -jar tuscany-composite-diagram-0.0.1.jar -html\n" +
+					"---          //a//aa//a.composite //b//bb//b.composite \n" +
+					"---\n";
+			System.out.println(help);
+		}
+		else{
+			
+			if(args[0].equalsIgnoreCase("-svg")){
+				isSvg = true;
+				args[0] = null;
+			}
+			else if(args[0].equalsIgnoreCase("-html")){
+				isHtml = true;
+				args[0] = null;
+			}
+			else{
+				isSvg = true;
+				isHtml = true;
+			}
+
+			for(String str: args){
+				
+				if(str != null){
+					
+					File in = new File(str);
+					outFileDir = in.getParent()+"//";
+					XMLReader reader = new XMLReader();
+					Document doc =reader.parseXMLFile(str);//composite1.xml composite_with_compositeService.xml");
+					EntityBuilder eb = new EntityBuilder(doc);
+					CompositeEntity comp =eb.buildCompositeEntity();
+
+					DiagramGenerator dg = new DiagramGenerator(comp, isHtml);
+					Document svg =dg.buildSVGDocument();
+					
+					String svgContent = extractSvg(svg);
+
+					if(isSvg){
+						writeSVG(svgContent, comp);
+					}
+
+					if(isHtml){
+						writeHTML(svgContent, comp);
+					}
+
+				}
+			}
+		}
+	}
+	
+	private static void writeHTML(String svg, CompositeEntity comp) throws Exception {
+
+		File htmlFile = new File(outFileDir + comp.getName()+ comp.getFileNameSuffix()+".html");
+		HTMLWrapper html = new HTMLWrapper(svg, comp.getName(), htmlFile);
+		String content = html.buildHTML();
 		
-		DiagramGenerator dg = new DiagramGenerator(comp);
-		Document svg =dg.buildSVGDocument();
+		System.err.println("--------------HTML Output for "+comp.getName()+"--------------\n");
+		System.out.println(content);
+		System.err.println("--------------------------------------------------------------\n");
+		
+	}
+
+	private static void writeSVG(String svg, CompositeEntity comp) throws Exception{
 		
 		String svgFileName = comp.getName()+ comp.getFileNameSuffix()+".svg";
 		File svgFile = new File(outFileDir + svgFileName);
 		XMLWriter writer = new XMLWriter();
 		writer.fileWriter(svg, svgFile);
 		
-		File htmlFile = new File(outFileDir + comp.getName()+ comp.getFileNameSuffix()+".html");
-		HTMLWrapper html = new HTMLWrapper(svg, comp.getName(), svgFileName, dg.getDiagramHeight(), 
-				dg.getDiagramWidth(), htmlFile);
-		html.buildHTML();
+		System.err.println("--------------SVG Output for "+comp.getName()+"--------------\n");
+		System.out.println(svg);
+		System.err.println("-------------------------------------------------------------\n");
 	}
+	
+	private static String extractSvg(Document svg) throws Exception{
+
+		// Set up the output transformer
+		TransformerFactory transfac = TransformerFactory.newInstance();
+		Transformer trans = transfac.newTransformer();
+
+		// Print the DOM node
+
+		StringWriter sw = new StringWriter();
+		StreamResult result = new StreamResult(sw);
+		DOMSource source = new DOMSource(svg);
+		trans.transform(source, result);
+		String svgString = sw.toString();
+
+		return svgString;
+	}
+	
+	
+	
+	
 
 }

Added: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/org/apache/tuscany/sca/layout/LayoutBuilderTest.java
URL: http://svn.apache.org/viewvc/tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/org/apache/tuscany/sca/layout/LayoutBuilderTest.java?rev=1158011&view=auto
==============================================================================
--- tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/org/apache/tuscany/sca/layout/LayoutBuilderTest.java (added)
+++ tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/org/apache/tuscany/sca/layout/LayoutBuilderTest.java Mon Aug 15 21:08:48 2011
@@ -0,0 +1,144 @@
+package org.apache.tuscany.sca.layout;
+
+import static org.junit.Assert.*;
+import junit.framework.Assert;
+
+import org.apache.tuscany.sca.impl.layout.ComponentEntity;
+import org.apache.tuscany.sca.impl.layout.CompositeEntity;
+import org.apache.tuscany.sca.impl.layout.Entity;
+import org.apache.tuscany.sca.impl.layout.LayoutBuilder;
+import org.junit.Before;
+import org.junit.Test;
+
+public class LayoutBuilderTest {
+
+	LayoutBuilder lb;
+	Entity[] ents;
+	Entity parent;
+	int[][] conns;
+	
+	@Before
+	public void setUp() throws Exception {
+		parent = new CompositeEntity("composite");
+		parent.setX(200);
+		parent.setY(100);
+		
+		ents = new Entity[5];
+		for(int i=0; i<ents.length ;i++){
+			ents[i] = new ComponentEntity();
+			ents[i].setId(i);
+			ents[i].setParent(parent);
+		}
+		
+		
+	}
+
+	@Test
+	public void testPlaceEntities() throws Exception {
+		//setUp();
+		Assert.assertEquals(5, ents.length);
+		Assert.assertEquals(200, ents[0].getStartPosition());
+		
+		conns = new int[5][5];
+		for(int i=0; i<conns.length ;i++){
+			for(int j=0; j<conns.length ;j++){
+				//int x = Math.getExponent(Math.random());
+				if(i==j-1)
+					conns[i][j] = 1;
+				else
+					conns[i][j] = 0;
+			}
+		}
+		
+		lb = new LayoutBuilder(ents, conns);
+		
+		ents = lb.placeEntities();
+		
+		Assert.assertEquals(5, ents.length);
+		Assert.assertEquals(0, lb.getStartEnt().getId());
+		
+		Assert.assertEquals(0, ents[0].getLevel());
+		Assert.assertEquals(0, ents[1].getLevel());
+		Assert.assertEquals(0, ents[2].getLevel());
+		Assert.assertEquals(0, ents[3].getLevel());
+		Assert.assertEquals(0, ents[4].getLevel());
+		
+		Assert.assertEquals(0, ents[0].getLane());
+		Assert.assertEquals(1, ents[1].getLane());
+		Assert.assertEquals(2, ents[2].getLane());
+		Assert.assertEquals(3, ents[3].getLane());
+		Assert.assertEquals(4, ents[4].getLane());
+		
+		
+	}
+	
+	@Test
+	public void testPlaceEntities1() throws Exception {
+		
+		conns = new int[5][5];
+		for(int i=0; i<conns.length ;i++){
+			for(int j=0; j<conns.length ;j++){
+				//int x = Math.getExponent(Math.random());
+				if(i==j-1 || i==j-4)
+					conns[i][j] = 1;
+				else
+					conns[i][j] = 0;
+			}
+		}
+		conns[3][4] = 0;
+		
+		lb = new LayoutBuilder(ents, conns);
+		
+		ents = lb.placeEntities();
+		
+		Assert.assertEquals(5, ents.length);
+		Assert.assertEquals(0, lb.getStartEnt().getId());
+		
+		Assert.assertEquals(0, ents[0].getLevel());
+		Assert.assertEquals(0, ents[1].getLevel());
+		Assert.assertEquals(0, ents[2].getLevel());
+		Assert.assertEquals(0, ents[3].getLevel());
+		Assert.assertEquals(1, ents[4].getLevel());
+		
+		Assert.assertEquals(0, ents[0].getLane());
+		Assert.assertEquals(1, ents[1].getLane());
+		Assert.assertEquals(2, ents[2].getLane());
+		Assert.assertEquals(3, ents[3].getLane());
+		Assert.assertEquals(1, ents[4].getLane());
+		
+	}
+
+	@Test
+	public void testPlaceEntities2() throws Exception {
+		
+		conns = new int[5][5];
+		for(int i=0; i<conns.length ;i++){
+			for(int j=0; j<conns.length ;j++){
+				if(i*j>2 && i*j<=6)
+					conns[i][j] = 1;
+				else
+					conns[i][j] = 0;
+			}
+		}
+		
+		lb = new LayoutBuilder(ents, conns);
+		
+		ents = lb.placeEntities();
+		
+		Assert.assertEquals(5, ents.length);
+		Assert.assertEquals(1, lb.getStartEnt().getId());
+		
+		Assert.assertEquals(1, ents[0].getLevel());
+		Assert.assertEquals(0, ents[1].getLevel());
+		Assert.assertEquals(0, ents[2].getLevel());
+		Assert.assertEquals(0, ents[3].getLevel());
+		Assert.assertEquals(1, ents[4].getLevel());
+		
+		Assert.assertEquals(0, ents[0].getLane());
+		Assert.assertEquals(0, ents[1].getLane());
+		Assert.assertEquals(2, ents[2].getLane());
+		Assert.assertEquals(1, ents[3].getLane());
+		Assert.assertEquals(1, ents[4].getLane());
+		
+	}
+}

Propchange: tuscany/collaboration/GSoC-2011-Nirmal/CompositeDiagramGeneratorUsingBatik/src/test/java/org/apache/tuscany/sca/layout/LayoutBuilderTest.java
------------------------------------------------------------------------------
    svn:executable = *