summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/composite-diagram/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-09-19 22:55:55 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2011-09-19 22:55:55 +0000
commitdd4799a9809cd2ffaa2e9598a8c1408405e25202 (patch)
tree3389c495a9645b22f9d4ce174ca9a8849abcd689 /sca-java-2.x/trunk/modules/composite-diagram/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java
parent9bd25321d03e2577f115597742f4c2c48ddcd9cc (diff)
Add the support to generate the SCA diagram for a given node configuration
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1172882 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to '')
-rwxr-xr-xsca-java-2.x/trunk/modules/composite-diagram/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java50
1 files changed, 37 insertions, 13 deletions
diff --git a/sca-java-2.x/trunk/modules/composite-diagram/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java b/sca-java-2.x/trunk/modules/composite-diagram/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java
index 1a9b59e486..82a8e2a32a 100755
--- a/sca-java-2.x/trunk/modules/composite-diagram/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java
+++ b/sca-java-2.x/trunk/modules/composite-diagram/src/main/java/org/apache/tuscany/sca/diagram/layout/TuscanyCompositeEntityBuilder.java
@@ -30,10 +30,13 @@ import org.apache.tuscany.sca.assembly.ComponentService;
import org.apache.tuscany.sca.assembly.Composite;
import org.apache.tuscany.sca.assembly.CompositeReference;
import org.apache.tuscany.sca.assembly.CompositeService;
+import org.apache.tuscany.sca.assembly.Endpoint;
+import org.apache.tuscany.sca.assembly.EndpointReference;
import org.apache.tuscany.sca.assembly.Property;
import org.apache.tuscany.sca.assembly.Reference;
import org.apache.tuscany.sca.assembly.Service;
import org.apache.tuscany.sca.assembly.Wire;
+import org.apache.tuscany.sca.diagram.artifacts.Artifact;
public class TuscanyCompositeEntityBuilder {
@@ -61,15 +64,16 @@ public class TuscanyCompositeEntityBuilder {
ComponentEntity[] comps = buildComponentEntities();
+ buildTargets(comps);
buildWires(tuscanyComp.getWires(), comps);
composite = new CompositeEntity(compositeName);
setParent(comps);
- System.out.println("ComponentEntity " + comps[0].getId());
+ // System.out.println("ComponentEntity " + comps[0].getId());
int[][] conns = buildConnectionMatrix(comps);
- System.out.println("ComponentEntity " + conns[0][0]);
+ // System.out.println("ComponentEntity " + conns[0][0]);
composite.setComponentList(comps);
composite.setConnections(conns);
@@ -77,7 +81,7 @@ public class TuscanyCompositeEntityBuilder {
LayoutBuilder buildLayout = new LayoutBuilder(comps, conns);
buildLayout.placeEntities();
- System.out.println("conns " + conns[0][0]);
+ // System.out.println("conns " + conns[0][0]);
buildCompositeService();
buildCompositeReference();
@@ -173,20 +177,24 @@ public class TuscanyCompositeEntityBuilder {
}
private String extractComp(ComponentEntity[] elts, String str, boolean isReference) {
-
+ String[] names = Artifact.parseNames(str);
if (isReference) {
for (ComponentEntity elt : elts) {
- for (String ref : elt.getReferences()) {
- if (ref.equals(str)) {
- return elt.getName();
+ if (elt.getName().equals(names[0])) {
+ for (String ref : elt.getReferences()) {
+ if (ref.equals(names[1])) {
+ return elt.getName();
+ }
}
}
}
} else {
for (ComponentEntity elt : elts) {
- for (String ser : elt.getServices()) {
- if (ser.equals(str)) {
- return elt.getName();
+ if (elt.getName().equals(names[0])) {
+ for (String ser : elt.getServices()) {
+ if (ser.equals(names[1])) {
+ return elt.getName();
+ }
}
}
}
@@ -233,6 +241,22 @@ public class TuscanyCompositeEntityBuilder {
}
+ private void buildTargets(ComponentEntity[] components) {
+
+ for (Component c : tuscanyComp.getComponents()) {
+ ComponentEntity sourceComponent = findEntity(components, c.getName());
+ for (ComponentReference ref : c.getReferences()) {
+ for (EndpointReference epr : ref.getEndpointReferences()) {
+ Endpoint ep = epr.getTargetEndpoint();
+ if (ep != null && ep.getComponent() != null && ep.getService() != null) {
+ createConnection(sourceComponent, ref.getName(), ep.getComponent().getName(), ep.getService()
+ .getName());
+ }
+ }
+ }
+ }
+ }
+
private void buildWires(List<Wire> wires, ComponentEntity[] elts) {
for (int i = 0; i < wires.size(); i++) {
@@ -281,12 +305,12 @@ public class TuscanyCompositeEntityBuilder {
if (reference != null && service != null) {
- ent.addToRefToSerMap(reference, service);
+ ent.addToRefToSerMap(reference, serviceComp + "/" + service);
ent.addAnAdjacentEntity(serviceComp);
addToConnectedEntities(referenceComp, serviceComp);
addToConnectedEntities(serviceComp, referenceComp);
} else if (reference == null && service != null) {
- ent.addToRefToSerMap(referenceComp, service);
+ ent.addToRefToSerMap(referenceComp, serviceComp + "/" + service);
ent.addAnAdjacentEntity(serviceComp);
addToConnectedEntities(referenceComp, serviceComp);
addToConnectedEntities(serviceComp, referenceComp);
@@ -319,7 +343,7 @@ public class TuscanyCompositeEntityBuilder {
}
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);