You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by sl...@apache.org on 2007/10/19 11:38:14 UTC
svn commit: r586346 - in /incubator/tuscany/java/sca/modules:
binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/
domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/
domain-impl/src/main/java/org/apache/tuscany/sca/domai...
Author: slaws
Date: Fri Oct 19 02:38:11 2007
New Revision: 586346
URL: http://svn.apache.org/viewvc?rev=586346&view=rev
Log:
Separate default management app services into separate package and fix to match new domain model and apis
Added:
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/DomainInfoImpl.java
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/NodeInfoImpl.java
- copied, changed from r585960, incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/NodeInfoImpl.java
incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/
incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/DomainInfo.java
incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/DomainManagementService.java
incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/NodeInfo.java
- copied, changed from r585960, incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/NodeInfo.java
Removed:
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/NodeInfoImpl.java
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/ServiceInfoImpl.java
incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/NodeInfo.java
incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/ServiceInfo.java
Modified:
incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerNodeImpl.java
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerServiceImpl.java
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/CompositeImpl.java
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ContributionImpl.java
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/DomainImpl.java
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/NodeImpl.java
incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ServiceImpl.java
incubator/tuscany/java/sca/modules/domain-impl/src/main/resources/domain.composite
incubator/tuscany/java/sca/modules/domain-impl/src/main/resources/webroot/index.html
incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/model/Domain.java
incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java
incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainImpl.java
Modified: incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java (original)
+++ incubator/tuscany/java/sca/modules/binding-sca-axis2/src/test/java/org/apache/tuscany/sca/binding/sca/axis2/TestDomain.java Fri Oct 19 02:38:11 2007
@@ -25,35 +25,12 @@
import javax.xml.namespace.QName;
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.Component;
-import org.apache.tuscany.sca.assembly.ComponentService;
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.CompositeService;
-import org.apache.tuscany.sca.assembly.SCABinding;
-import org.apache.tuscany.sca.assembly.SCABindingFactory;
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.service.ContributionService;
-import org.apache.tuscany.sca.core.context.ServiceReferenceImpl;
import org.apache.tuscany.sca.domain.DomainException;
-import org.apache.tuscany.sca.domain.NodeInfo;
import org.apache.tuscany.sca.domain.SCADomain;
import org.apache.tuscany.sca.domain.SCADomainSPI;
-import org.apache.tuscany.sca.domain.ServiceInfo;
import org.apache.tuscany.sca.domain.model.Domain;
-import org.apache.tuscany.sca.host.embedded.impl.ReallySmallRuntime;
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
-import org.apache.tuscany.sca.node.NodeException;
-import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.apache.tuscany.sca.runtime.RuntimeComponentContext;
-import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
import org.osoa.sca.CallableReference;
import org.osoa.sca.ServiceReference;
-import org.osoa.sca.ServiceRuntimeException;
/**
* The very minimum domain implementation to get these tests going without creating a dependency on
Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerNodeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerNodeImpl.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerNodeImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerNodeImpl.java Fri Oct 19 02:38:11 2007
@@ -19,51 +19,19 @@
package org.apache.tuscany.sca.domain.impl;
-import java.net.URI;
import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.logging.Level;
import java.util.logging.Logger;
import javax.xml.namespace.QName;
-import org.apache.tuscany.sca.assembly.AssemblyFactory;
-import org.apache.tuscany.sca.assembly.Component;
-import org.apache.tuscany.sca.assembly.ComponentService;
-import org.apache.tuscany.sca.assembly.Composite;
-import org.apache.tuscany.sca.assembly.CompositeService;
-import org.apache.tuscany.sca.assembly.SCABinding;
-import org.apache.tuscany.sca.assembly.SCABindingFactory;
-import org.apache.tuscany.sca.assembly.xml.Constants;
-import org.apache.tuscany.sca.contribution.Contribution;
-import org.apache.tuscany.sca.contribution.DeployedArtifact;
-import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint;
-import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
-import org.apache.tuscany.sca.contribution.resolver.impl.ModelResolverImpl;
-import org.apache.tuscany.sca.contribution.service.ContributionService;
-import org.apache.tuscany.sca.core.assembly.ActivationException;
-import org.apache.tuscany.sca.core.context.ServiceReferenceImpl;
import org.apache.tuscany.sca.domain.DomainException;
-import org.apache.tuscany.sca.domain.NodeInfo;
import org.apache.tuscany.sca.domain.SCADomain;
import org.apache.tuscany.sca.domain.SCADomainSPI;
-import org.apache.tuscany.sca.domain.ServiceInfo;
import org.apache.tuscany.sca.domain.model.Domain;
-import org.apache.tuscany.sca.host.embedded.impl.ReallySmallRuntime;
-import org.apache.tuscany.sca.interfacedef.InterfaceContract;
-import org.apache.tuscany.sca.interfacedef.java.JavaInterfaceFactory;
import org.apache.tuscany.sca.node.NodeException;
-import org.apache.tuscany.sca.node.SCADomainFinder;
import org.apache.tuscany.sca.node.SCANode;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.apache.tuscany.sca.runtime.RuntimeComponentContext;
-import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
import org.osoa.sca.CallableReference;
import org.osoa.sca.ServiceReference;
-import org.osoa.sca.ServiceRuntimeException;
/**
* A dummy representation of and SCA Node used simply to control the
Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerServiceImpl.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/DomainManagerServiceImpl.java Fri Oct 19 02:38:11 2007
@@ -19,14 +19,18 @@
package org.apache.tuscany.sca.domain.impl;
-import java.util.List;
import java.util.logging.Logger;
import org.apache.tuscany.sca.domain.DomainManagerInitService;
import org.apache.tuscany.sca.domain.DomainManagerNodeEventService;
-import org.apache.tuscany.sca.domain.NodeInfo;
import org.apache.tuscany.sca.domain.SCADomainSPI;
-import org.apache.tuscany.sca.domain.ServiceInfo;
+import org.apache.tuscany.sca.domain.management.DomainInfo;
+import org.apache.tuscany.sca.domain.management.DomainManagementService;
+import org.apache.tuscany.sca.domain.management.NodeInfo;
+import org.apache.tuscany.sca.domain.management.impl.DomainInfoImpl;
+import org.apache.tuscany.sca.domain.management.impl.NodeInfoImpl;
+import org.apache.tuscany.sca.domain.model.Domain;
+import org.apache.tuscany.sca.domain.model.Node;
import org.osoa.sca.annotations.Scope;
import org.osoa.sca.annotations.Service;
@@ -37,19 +41,20 @@
* @version $Rev: 552343 $ $Date: 2007-09-07 12:41:52 +0100 (Fri, 07 Sep 2007) $
*/
@Scope("COMPOSITE")
-@Service(interfaces = {DomainManagerNodeEventService.class, DomainManagerInitService.class})
-public class DomainManagerServiceImpl implements DomainManagerNodeEventService, DomainManagerInitService {
+@Service(interfaces = {DomainManagerNodeEventService.class, DomainManagerInitService.class, DomainManagementService.class})
+public class DomainManagerServiceImpl implements DomainManagerNodeEventService, DomainManagerInitService, DomainManagementService {
private final static Logger logger = Logger.getLogger(DomainManagerServiceImpl.class.getName());
private SCADomainSPI scaDomain;
// DomainManagerInitService methods
+
public void setDomain(SCADomainSPI scaDomain) {
this.scaDomain = scaDomain;
}
- // DomainManagerService methods
+ // DomainManagerNodeEventService methods
public String registerNode(String nodeURI, String nodeURL){
return scaDomain.addNode(nodeURI, nodeURL);
@@ -72,4 +77,34 @@
return scaDomain.findServiceEndpoint(domainUri, serviceName, bindingName);
}
+ // DomainManagementService methods
+
+ public DomainInfo getDomainDescription(){
+
+ DomainInfo domainInfo = new DomainInfoImpl();
+ Domain domain = scaDomain.getDomainModel();
+
+ domainInfo.setDomainURI(domain.getDomainURI());
+ domainInfo.setDomainURL(domain.getDomainURL());
+ domainInfo.getNodes().addAll(domain.getNodes().keySet());
+ domainInfo.getContributions().addAll(domain.getContributions().keySet());
+ domainInfo.getDeployedComposites().addAll(domain.getDeployedComposites().keySet());
+
+ return domainInfo;
+ }
+
+ public NodeInfo getNodeDescription(String nodeURI){
+
+ NodeInfo nodeInfo = new NodeInfoImpl();
+ Domain domain = scaDomain.getDomainModel();
+ Node node = domain.getNodes().get(nodeURI);
+
+ nodeInfo.setNodeURI(nodeURI);
+ nodeInfo.setNodeURL(node.getNodeURL());
+ nodeInfo.getContributions().addAll(node.getContributions().keySet());
+ nodeInfo.getDeployedComposites().addAll(node.getDeployedComposites().keySet());
+ nodeInfo.getServices().addAll(node.getServices().keySet());
+
+ return nodeInfo;
+ }
}
Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/SCADomainImpl.java Fri Oct 19 02:38:11 2007
@@ -45,9 +45,7 @@
import org.apache.tuscany.sca.core.context.ServiceReferenceImpl;
import org.apache.tuscany.sca.domain.DomainException;
import org.apache.tuscany.sca.domain.DomainManagerInitService;
-import org.apache.tuscany.sca.domain.NodeInfo;
import org.apache.tuscany.sca.domain.SCADomainSPI;
-import org.apache.tuscany.sca.domain.ServiceInfo;
import org.apache.tuscany.sca.domain.model.Domain;
import org.apache.tuscany.sca.domain.model.DomainModelFactory;
import org.apache.tuscany.sca.domain.model.Node;
@@ -118,7 +116,7 @@
try {
tmpURI = new URI(domainModel.getDomainURI());
if (tmpURI.isAbsolute()){
- domainModel.setDomainURL(tmpURI.toURL());
+ domainModel.setDomainURL(tmpURI.toURL().toExternalForm());
}
} catch(Exception ex) {
throw new ActivationException("domain uri " +
@@ -367,7 +365,7 @@
}
}
- // add all deployable composites into the domain model
+ // add all composites into the domain model
for (Composite composite : contribution.getDeployables()) {
org.apache.tuscany.sca.domain.model.Composite compositeModel =
domainModelFactory.createComposite();
@@ -380,6 +378,7 @@
org.apache.tuscany.sca.domain.model.Composite compositeModel =
contributionModel.getComposites().get(composite.getName());
contributionModel.getDeployableComposites().put(compositeModel.getCompositeQName(), compositeModel);
+ domainModel.getDeployedComposites().put(compositeModel.getCompositeQName(), compositeModel);
}
} catch(Exception ex) {
@@ -424,6 +423,7 @@
contribution.getComposites().get(compositeName);
if (composite != null) {
contribution.getDeployableComposites().put(compositeName, composite);
+ domainModel.getDeployedComposites().put(compositeName, composite);
}
}
}
Added: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/DomainInfoImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/DomainInfoImpl.java?rev=586346&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/DomainInfoImpl.java (added)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/DomainInfoImpl.java Fri Oct 19 02:38:11 2007
@@ -0,0 +1,99 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.domain.management.impl;
+
+import java.io.Serializable;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.domain.management.DomainInfo;
+import org.apache.tuscany.sca.domain.model.Composite;
+import org.apache.tuscany.sca.domain.model.Contribution;
+import org.apache.tuscany.sca.domain.model.Node;
+
+/**
+ * A data transport object for the management interface
+ *
+ * @version $Rev: 552343 $ $Date: 2007-09-07 12:41:52 +0100 (Fri, 07 Sep 2007) $
+ */
+public class DomainInfoImpl implements DomainInfo, Serializable {
+
+ static final long serialVersionUID = 7669181086005969428L;
+
+ private String domainURI;
+ private String domainURL;
+ private List<String> nodes = new ArrayList<String>();
+ private List<String> contributions = new ArrayList<String>();
+ private List<QName> composites = new ArrayList<QName>();
+
+ /**
+ * Retrieve the domain uri
+ *
+ * @return domain uri
+ */
+ public String getDomainURI(){
+ return domainURI;
+ }
+
+ /**
+ * Set the domain uri
+ *
+ * @param domainURI
+ */
+ public void setDomainURI(String domainURI){
+ this.domainURI = domainURI;
+ }
+
+ /**
+ * Retrieve the domain url
+ *
+ * @return domain url
+ */
+ public String getDomainURL(){
+ return domainURL;
+ }
+
+ /**
+ * Set the domain url
+ *
+ * @param domainURL
+ */
+ public void setDomainURL(String domainURL){
+ this.domainURL = domainURL;
+ }
+
+ public List<String> getNodes(){
+ return nodes;
+ }
+
+ public List<String> getContributions(){
+ return contributions;
+ }
+
+ public List<QName> getDeployedComposites(){
+ return composites;
+ }
+
+}
Copied: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/NodeInfoImpl.java (from r585960, incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/NodeInfoImpl.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/NodeInfoImpl.java?p2=incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/NodeInfoImpl.java&p1=incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/NodeInfoImpl.java&r1=585960&r2=586346&rev=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/impl/NodeInfoImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/management/impl/NodeInfoImpl.java Fri Oct 19 02:38:11 2007
@@ -17,16 +17,21 @@
* under the License.
*/
-package org.apache.tuscany.sca.domain.impl;
+package org.apache.tuscany.sca.domain.management.impl;
import java.io.Serializable;
import java.net.URL;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.xml.namespace.QName;
-import org.apache.tuscany.sca.domain.NodeInfo;
+import org.apache.tuscany.sca.domain.management.NodeInfo;
+import org.apache.tuscany.sca.domain.model.Composite;
+import org.apache.tuscany.sca.domain.model.Contribution;
+import org.apache.tuscany.sca.domain.model.Service;
/**
* Information relating to an exposed service
@@ -39,62 +44,56 @@
private String nodeURI;
private String nodeURL;
- private String contributionURI;
- private URL contributionURL;
- private List<QName> compositeNames = new ArrayList<QName>();
-
- public NodeInfoImpl(String nodeURI){
- this.nodeURI = nodeURI;
- }
-
- public boolean match (String nodeURI){
- return (this.nodeURI.equals(nodeURI));
- }
-
+ private List<String> contributions = new ArrayList<String>();
+ private List<QName> composites = new ArrayList<QName>();
+ private List<String> services = new ArrayList<String>();
+
+ /**
+ * Retrieve the node uri
+ *
+ * @return node uri
+ */
public String getNodeURI(){
return nodeURI;
- }
-
- public String getNodeURL(){
- return nodeURL;
- }
-
- public void setNodeURL(String nodeURL){
- this.nodeURL = nodeURL;
}
- public String getContributionURI(){
- return contributionURI;
+ /**
+ * Set the node uri
+ *
+ * @param nodeURI
+ */
+ public void setNodeURI(String nodeURI){
+ this.nodeURI = nodeURI;
}
- public void setContributionURI(String contributionURI){
- this.contributionURI = contributionURI;
+ /**
+ * Retrieve the node url
+ *
+ * @return node url
+ */
+ public String getNodeURL() {
+ return nodeURL;
}
-
- public URL getContributionURL(){
- return contributionURL;
+
+ /**
+ * Set the node url
+ *
+ * @param nodeURL
+ */
+ public void setNodeURL(String nodeURL){
+ this.nodeURL = nodeURL;
}
-
- public void setContributionURL(URL contributionURL){
- this.contributionURL = contributionURL;
- }
-
- public List<QName> getCompositeNames(){
- return compositeNames;
+
+ public List<String> getContributions(){
+ return contributions;
}
- public void addCompositeName(QName compositeName){
- this.compositeNames.add(compositeName);
+ public List<QName> getDeployedComposites(){
+ return composites;
}
- @Override
- public String toString (){
- return "[" +
- nodeURI + " " +
- nodeURL + " " +
- contributionURI + " " +
- compositeNames.toString() + " " +
- "]";
+ public List<String> getServices(){
+ return services;
}
}
Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/CompositeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/CompositeImpl.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/CompositeImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/CompositeImpl.java Fri Oct 19 02:38:11 2007
@@ -20,8 +20,6 @@
package org.apache.tuscany.sca.domain.model.impl;
-import java.io.Serializable;
-
import javax.xml.namespace.QName;
import org.apache.tuscany.sca.domain.model.Composite;
@@ -32,7 +30,7 @@
*
* @version $Rev: 552343 $ $Date: 2007-09-07 12:41:52 +0100 (Fri, 07 Sep 2007) $
*/
-public class CompositeImpl implements Composite, Serializable {
+public class CompositeImpl implements Composite {
private QName compositeQName;
Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ContributionImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ContributionImpl.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ContributionImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ContributionImpl.java Fri Oct 19 02:38:11 2007
@@ -19,7 +19,6 @@
package org.apache.tuscany.sca.domain.model.impl;
-import java.io.Serializable;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
@@ -34,11 +33,10 @@
*
* @version $Rev: 552343 $ $Date: 2007-09-07 12:41:52 +0100 (Fri, 07 Sep 2007) $
*/
-public class ContributionImpl implements Contribution, Serializable {
+public class ContributionImpl implements Contribution {
private String contributionURI;
private URL contributionURL;
- private org.apache.tuscany.sca.contribution.Contribution contribution;
private Map<QName, Composite> composites = new HashMap<QName, Composite>();
private Map<QName, Composite> deployableComposites = new HashMap<QName, Composite>();
Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/DomainImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/DomainImpl.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/DomainImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/DomainImpl.java Fri Oct 19 02:38:11 2007
@@ -19,10 +19,7 @@
package org.apache.tuscany.sca.domain.model.impl;
-import java.io.Serializable;
-import java.net.URL;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
@@ -38,10 +35,10 @@
*
* @version $Rev: 552343 $ $Date: 2007-09-07 12:41:52 +0100 (Fri, 07 Sep 2007) $
*/
-public class DomainImpl implements Domain, Serializable {
+public class DomainImpl implements Domain {
private String domainURI;
- private URL domainURL;
+ private String domainURL;
private Map<String, Node> nodes = new HashMap<String, Node>();
private Map<String, Contribution> contributions = new HashMap<String, Contribution>();
private Map<QName, Composite> composites = new HashMap<QName, Composite>();
@@ -70,7 +67,7 @@
*
* @return domain url
*/
- public URL getDomainURL(){
+ public String getDomainURL(){
return domainURL;
}
@@ -79,7 +76,7 @@
*
* @param domainURL
*/
- public void setDomainURL(URL domainURL){
+ public void setDomainURL(String domainURL){
this.domainURL = domainURL;
}
Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/NodeImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/NodeImpl.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/NodeImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/NodeImpl.java Fri Oct 19 02:38:11 2007
@@ -19,11 +19,7 @@
package org.apache.tuscany.sca.domain.model.impl;
-import java.io.Serializable;
-import java.net.URL;
-import java.util.ArrayList;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import javax.xml.namespace.QName;
@@ -39,7 +35,7 @@
*
* @version $Rev: 552343 $ $Date: 2007-09-07 12:41:52 +0100 (Fri, 07 Sep 2007) $
*/
-public class NodeImpl implements Node, Serializable {
+public class NodeImpl implements Node {
private String nodeURI;
private String nodeURL;
Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ServiceImpl.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/java/org/apache/tuscany/sca/domain/model/impl/ServiceImpl.java Fri Oct 19 02:38:11 2007
@@ -19,9 +19,6 @@
package org.apache.tuscany.sca.domain.model.impl;
-import java.net.URL;
-import java.util.Map;
-
import org.apache.tuscany.sca.domain.model.Service;
/**
Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/resources/domain.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/resources/domain.composite?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/resources/domain.composite (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/resources/domain.composite Fri Oct 19 02:38:11 2007
@@ -40,6 +40,10 @@
<interface.java interface="org.apache.tuscany.sca.domain.DomainManagerNodeEventService"/>
<binding.ws uri="http://localhost:8877/DomainManagerComponent/DomainManagerNodeEventService"/>
</service>
+ <service name="DomainManagementService">
+ <interface.java interface="org.apache.tuscany.sca.domain.management.DomainManagementService"/>
+ <tuscany:binding.jsonrpc uri="http://localhost:8877/DomainManagerComponent/DomainManagementService"/>
+ </service>
</component>
</composite>
Modified: incubator/tuscany/java/sca/modules/domain-impl/src/main/resources/webroot/index.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain-impl/src/main/resources/webroot/index.html?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain-impl/src/main/resources/webroot/index.html (original)
+++ incubator/tuscany/java/sca/modules/domain-impl/src/main/resources/webroot/index.html Fri Oct 19 02:38:11 2007
@@ -24,34 +24,87 @@
<script language="JavaScript">
- domainManager = new JSONRpcClient("../DomainManagerComponent/DomainManagerJson");
+ domainManager = new JSONRpcClient("../DomainManagerComponent/DomainManagementService");
+ var domainInfo;
- function getNodeInfo() {
- domainManager.DomainManagerService.getNodeInfo(handleGetNodeInfo);
+ function getDomainInfo() {
+ domainManager.DomainManagementService.getDomainDescription(handleGetDomainInfo);
}
- function handleGetNodeInfo(result) {
+ function handleGetDomainInfo(result) {
- var text = ""
+ domainInfo = result;
+ var text = "";
+ document.getElementById('domainName').innerHTML="Domain: " + domainInfo.domainURI;
- for (var i in result.list){
- var node = result.list[i];
-
+ text = text + "<H2>Nodes</H2>";
+
+ for (var i in domainInfo.nodes.list){
+ var nodeURI = domainInfo.nodes.list[i];
+
+ text = text + "<table>";
+ text = text + "<TR CLASS='source_1' >";
+ text = text + " <TD CLASS='clickable link' ONCLICK=\"getNodeInfo('" + nodeURI + "')\">" ;
+ text = text + " <IMG SRC='node.png'/> " + nodeURI;
+ text = text + " </TD>";
+ //text = text + " <TD CLASS='clickable link' ONCLICK=\"showNode('" + node.nodeURI + "')\">" + nodeManagerWebUrl + "</TD>";
+ text = text + "</TR>";
+ text = text + "<div id=\"" + nodeURI + "\">";
+ text = text + "</table>";
+ }
+
+ text = text + "<H2>Domain Contributions</H2>";
+
+ for (var i in domainInfo.contributions.list){
+ var contributionURI = domainInfo.contributions.list[i];
text = text + "<table>";
text = text + "<TR CLASS='source_1' >";
text = text + " <TD>";
- text = text + " <IMG SRC='node.png'/> " + node.nodeURI;
- text = text + " </TD>";
-
- nodeManagerWebUrl = node.nodeURL + "/node/index.html";
-
- text = text + " <TD CLASS='clickable link' ONCLICK=\"showNode('" + node.nodeURI + "')\">" + nodeManagerWebUrl + "</TD>";
+ text = text + " <IMG SRC='node.png'/> " + contributionURI;
+ text = text + " </TD>";
text = text + "</TR>";
- text = text + "</table>";
+ text = text + "</table>";
}
+ text = text + "<H2>Deployable Composites</H2>";
+
+ for (var i in domainInfo.deployedComposites.list){
+ var compositeQName = domainInfo.deployedComposites.list[i];
+ text = text + "<table>";
+ text = text + "<TR CLASS='source_1' >";
+ text = text + " <TD>";
+ text = text + " <IMG SRC='node.png'/> " + compositeQName.namespaceURI + "#" + compositeQName.localPart;
+ text = text + " </TD>";
+ text = text + "</TR>";
+ text = text + "</table>";
+ }
+
document.getElementById('domainInfo').innerHTML=text;
}
+
+ function getNodeInfo(nodeURI) {
+ domainManager.DomainManagementService.getNodeDescription(nodeURI, handleGetNodeInfo);
+ }
+
+ function handleGetNodeInfo(result) {
+
+ var nodeInfo = result;
+ var text = "";
+
+
+ for (var i in nodeInfo.contributions.list){
+ var contributionURI = nodeInfo.contributions.list[i];
+
+ text = text + "<TR CLASS='source_2' >";
+ text = text + " <TD/>";
+ text = text + " <TD>";
+ text = text + " " + contributionURI;
+ text = text + " </TD>";
+ text = text + "</TR>";
+ }
+
+ document.getElementById(nodeInfo.nodeURI).innerHTML=text;
+ }
function showNode(url)
{
@@ -65,7 +118,7 @@
<link rel="stylesheet" type="text/css" href="style.css" />
</head>
-<body onload="getNodeInfo()">
+<body onload="getDomainInfo()">
<h1 id="top">Apache Tuscany Domain</h1>
<div id="errors"></div>
@@ -73,19 +126,14 @@
<table>
<TR>
<TD>
-DomainURI
-</TD>
-<TD>
-NodeURI
+<div id="domainName"></div>
</TD>
</TR>
</table>
<div id="domainInfo"></div>
-<p /><input type="button" value="Refresh" onclick="getNodeInfo()" />
-
-<div id="nodePage"></div>
+<p /><input type="button" value="Refresh" onclick="getDomainInfo()" />
</body>
</html>
Added: incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/DomainInfo.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/DomainInfo.java?rev=586346&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/DomainInfo.java (added)
+++ incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/DomainInfo.java Fri Oct 19 02:38:11 2007
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.domain.management;
+
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.domain.model.Composite;
+import org.apache.tuscany.sca.domain.model.Contribution;
+import org.apache.tuscany.sca.domain.model.Node;
+
+
+/**
+ * A data transport object for the management interface
+ *
+ * @version $Rev: 552343 $ $Date: 2007-09-07 12:41:52 +0100 (Fri, 07 Sep 2007) $
+ */
+public interface DomainInfo {
+
+ /**
+ * Retrieve the domain uri
+ *
+ * @return domain uri
+ */
+ public String getDomainURI();
+
+ /**
+ * Set the domain uri
+ *
+ * @param domainURI
+ */
+ public void setDomainURI(String domainURI);
+
+ /**
+ * Retrieve the domain url
+ *
+ * @return domain url
+ */
+ public String getDomainURL();
+
+ /**
+ * Set the domain url
+ *
+ * @param domainURL
+ */
+ public void setDomainURL(String domainURL);
+
+ public List<String> getNodes();
+ public List<String> getContributions();
+ public List<QName> getDeployedComposites();
+
+}
Added: incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/DomainManagementService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/DomainManagementService.java?rev=586346&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/DomainManagementService.java (added)
+++ incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/DomainManagementService.java Fri Oct 19 02:38:11 2007
@@ -0,0 +1,46 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.domain.management;
+
+import org.apache.tuscany.sca.domain.model.Domain;
+
+
+
+/**
+ * Connects the domain management operations
+ *
+ * @version $Rev: 552343 $ $Date: 2007-09-11 18:45:36 +0100 (Tue, 11 Sep 2007) $
+ */
+public interface DomainManagementService {
+
+ /**
+ * Return description of the domain
+ *
+ */
+ public DomainInfo getDomainDescription();
+
+ /**
+ * Return description of the node
+ *
+ * @param nodeURI
+ */
+ public NodeInfo getNodeDescription(String nodeURI);
+
+}
Copied: incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/NodeInfo.java (from r585960, incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/NodeInfo.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/NodeInfo.java?p2=incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/NodeInfo.java&p1=incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/NodeInfo.java&r1=585960&r2=586346&rev=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/NodeInfo.java (original)
+++ incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/management/NodeInfo.java Fri Oct 19 02:38:11 2007
@@ -17,13 +17,18 @@
* under the License.
*/
-package org.apache.tuscany.sca.domain;
+package org.apache.tuscany.sca.domain.management;
import java.net.URL;
import java.util.List;
+import java.util.Map;
import javax.xml.namespace.QName;
+import org.apache.tuscany.sca.domain.model.Composite;
+import org.apache.tuscany.sca.domain.model.Contribution;
+import org.apache.tuscany.sca.domain.model.Service;
+
/**
* A collection of info for a registered node
@@ -33,48 +38,35 @@
public interface NodeInfo {
/**
- * Retrieve the domain uri
+ * Retrieve the node uri
*
- * @return domain uri
+ * @return node uri
*/
public String getNodeURI();
/**
- * Retrieve the node uri
+ * Set the node uri
*
- * @return node uri
+ * @param nodeURI
+ */
+ public void setNodeURI(String nodeURI);
+
+ /**
+ * Retrieve the node url
+ *
+ * @return node url
*/
public String getNodeURL();
/**
- * Ser the node url
+ * Set the node url
*
* @param nodeURL
*/
public void setNodeURL(String nodeURL);
- public String getContributionURI();
-
- public void setContributionURI(String contributionURI);
-
- public URL getContributionURL();
-
- public void setContributionURL(URL contributionURL);
-
- public List<QName> getCompositeNames();
-
- public void addCompositeName(QName compositeName);
-
- /**
- * Returns true if this node info object matches the provided data
- */
- public boolean match(String nodeURI);
-
- /**
- * Returns a string representation of the information for a service
- *
- * @return
- */
- public String toString();
+ public List<String> getContributions();
+ public List<QName> getDeployedComposites();
+ public List<String> getServices();
}
Modified: incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/model/Domain.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/model/Domain.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/model/Domain.java (original)
+++ incubator/tuscany/java/sca/modules/domain/src/main/java/org/apache/tuscany/sca/domain/model/Domain.java Fri Oct 19 02:38:11 2007
@@ -54,14 +54,14 @@
*
* @return domain url
*/
- public URL getDomainURL();
+ public String getDomainURL();
/**
* Set the domain url
*
* @param domainURL
*/
- public void setDomainURL(URL domainURL);
+ public void setDomainURL(String domainURL);
public Map<String, Node> getNodes();
public Map<String, Contribution> getContributions();
Modified: incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/DomainManagerServiceImpl.java Fri Oct 19 02:38:11 2007
@@ -25,8 +25,6 @@
import java.util.logging.Logger;
import org.apache.tuscany.sca.domain.DomainManagerNodeEventService;
-import org.apache.tuscany.sca.domain.NodeInfo;
-import org.apache.tuscany.sca.domain.ServiceInfo;
import org.osoa.sca.annotations.Property;
import org.osoa.sca.annotations.Reference;
import org.osoa.sca.annotations.Scope;
Modified: incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainImpl.java?rev=586346&r1=586345&r2=586346&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainImpl.java (original)
+++ incubator/tuscany/java/sca/modules/node-impl/src/main/java/org/apache/tuscany/sca/node/impl/SCADomainImpl.java Fri Oct 19 02:38:11 2007
@@ -42,8 +42,6 @@
import org.apache.tuscany.sca.core.context.ServiceReferenceImpl;
import org.apache.tuscany.sca.domain.DomainException;
import org.apache.tuscany.sca.domain.DomainManagerNodeEventService;
-import org.apache.tuscany.sca.domain.NodeInfo;
-import org.apache.tuscany.sca.domain.ServiceInfo;
import org.apache.tuscany.sca.domain.model.Domain;
import org.apache.tuscany.sca.host.embedded.impl.EmbeddedSCADomain;
import org.apache.tuscany.sca.interfacedef.InterfaceContract;
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org