Author: rineholt
Date: Thu Aug 10 18:59:40 2006
New Revision: 430621
URL: http://svn.apache.org/viewvc?rev=430621&view=rev
Log:
TUSCANY-575
http://issues.apache.org/jira/browse/TUSCANY-575
fix service element to use child reference element instead of target
attribute
mock can be a pain
feed java interface specified in service to service element (still a tad
of a hack)
Added:
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java
Modified:
incubator/tuscany/java/samples/sca/helloworldws/setup.bat
incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java
incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl
incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
Modified: incubator/tuscany/java/samples/sca/helloworldws/setup.bat
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldws/setup.bat?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/samples/sca/helloworldws/setup.bat (original)
+++ incubator/tuscany/java/samples/sca/helloworldws/setup.bat Thu Aug 10
18:59:40 2006
@@ -11,3 +11,6 @@
rem jar -xf
"%USERPROFILE%\.m2\repository\org\apache\tuscany\web\1.0-SNAPSHOT\web-1.0-SNAPSHOT-bin.zip"
jar -xf
"%USERPROFILE%\.m2\repository\org\apache\tuscany\web\1.0-SNAPSHOT\web-1.0-SNAPSHOT-bin.zip"
popd
+rem hack
+mkdir target\apache-tomcat-5.5.17\shared\extension
+copy target\apache-tomcat-5.5.17\shared\lib\axis2-1.0-SNAPSHOT.jar
target\apache-tomcat-5.5.17\shared\extension
Modified: incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
--- incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat
(original)
+++ incubator/tuscany/java/samples/sca/helloworldwsclient/run.bat Thu Aug
10 18:59:40 2006
@@ -4,4 +4,21 @@
pushd target\standalone
jar -xf
"%USERPROFILE%\.m2\repository\org\apache\tuscany\standalone\1.0-SNAPSHOT\standalone-1.0-SNAPSHOT-bin.zip"
popd
+move target\standalone\extension\axiom-api-1.0.jar target\standalone\boot
+move target\standalone\extension\axiom-impl-1.0.jar
target\standalone\boot
+move target\standalone\extension\axis2-kernel-1.0.jar
target\standalone\boot
+move target\standalone\extension\common-2.2.1-SNAPSHOT.jar
target\standalone\boot
+move target\standalone\extension\commons-codec-1.3.jar
target\standalone\boot
+move target\standalone\extension\commons-httpclient-3.0.jar
target\standalone\boot
+move target\standalone\extension\ecore-2.2.1-SNAPSHOT.jar
target\standalone\boot
+move target\standalone\extension\ecore-change-2.2.1-SNAPSHOT.jar
target\standalone\boot
+move target\standalone\extension\ecore-xmi-2.2.1-SNAPSHOT.jar
target\standalone\boot
+move target\standalone\extension\junit-3.8.1.jar target\standalone\boot
+move target\standalone\extension\neethi-1.0.1.jar target\standalone\boot
+move target\standalone\extension\sdo-api-1.0-SNAPSHOT.jar
target\standalone\boot
+move target\standalone\extension\tuscany-sdo-impl-1.0-SNAPSHOT.jar
target\standalone\boot
+move target\standalone\extension\XmlSchema-1.0.2.jar
target\standalone\boot
+move target\standalone\extension\xsd-2.2.1-SNAPSHOT.jar
target\standalone\boot
+move target\standalone\extension\wstx-asl-2.9.3.jar
target\standalone\boot
+move target\standalone\extension\commons-logging-1.0.3.jar
target\standalone\boot
java %java_debug_set% -jar target\standalone\bin\launcher.jar --classpath
"%USERPROFILE%\.m2\repository\org\apache\tuscany\samples\sca\sample-helloworldwsclient\1.0-SNAPSHOT\sample-helloworldwsclient-1.0-SNAPSHOT.jar"
%*
Modified:
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
---
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java
(original)
+++
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldClient.java
Thu Aug 10 18:59:40 2006
@@ -59,7 +59,7 @@
// Invoke the HelloWorld service
CompositeContext compositeContext =
CurrentCompositeContext.getContext();
- HelloWorldService helloWorldService=
compositeContext.locateService(HelloWorldService.class,
"HelloWorldService");
+ HelloWorldService helloWorldService=
compositeContext.locateService(HelloWorldService.class,
"HelloWorldServiceComponent");
String value = helloWorldService.getGreetings("World");
System.out.println(value);
Modified:
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
---
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java
(original)
+++
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldService.java
Thu Aug 10 18:59:40 2006
@@ -16,9 +16,10 @@
*/
package helloworld;
-/**
- * This is the business interface of the HelloWorld greetings service.
- */
+import org.osoa.sca.annotations.Service;
+
+
[EMAIL PROTECTED]
public interface HelloWorldService {
public String getGreetings(String name);
Added:
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java?rev=430621&view=auto
==============================================================================
---
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java
(added)
+++
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/java/helloworld/HelloWorldServiceComponent.java
Thu Aug 10 18:59:40 2006
@@ -0,0 +1,55 @@
+/**
+ *
+ * Copyright 2005 The Apache Software Foundation or its licensors, as
applicable.
+ *
+ * Licensed 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 helloworld;
+
+import org.osoa.sca.CompositeContext;
+import org.osoa.sca.CurrentCompositeContext;
+import org.osoa.sca.annotations.Scope;
+
+
+
+//import org.osoa.sca.CurrentModuleContext;
+//import org.osoa.sca.ModuleContext;
+//
+//import org.apache.tuscany.core.client.TuscanyRuntime;
+//import org.apache.tuscany.common.monitor.MonitorFactory;
+//import
org.apache.tuscany.common.monitor.impl.JavaLoggingMonitorFactory;
+
+/**
+ * This client program shows how to create an SCA runtime, start it,
+ * locate the HelloWorld service and invoke it.
+ */
+
+
[EMAIL PROTECTED]("MODULE")
+public class HelloWorldServiceComponent implements HelloWorldService {
+
+ HelloWorldService helloWorldService;
+
+ public String getGreetings(String name) {
+ // TODO Auto-generated method stub
+ return helloWorldService.getGreetings(name);
+ }
+
+ public HelloWorldService getHelloWorldService() {
+ return helloWorldService;
+ }
+
+ public void setHelloWorldService(HelloWorldService helloWorldService)
{
+ this.helloWorldService = helloWorldService;
+ }
+}
Modified:
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
---
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl
(original)
+++
incubator/tuscany/java/samples/sca/helloworldwsclient/src/main/resources/META-INF/sca/default.scdl
Thu Aug 10 18:59:40 2006
@@ -18,10 +18,17 @@
xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
name="sampleHelloworld">
+ <component name="HelloWorldServiceComponent">
+ <implementation.java
class="helloworld.HelloWorldServiceComponent"/>
+ <references>
+ <reference name="helloWorldService" target="HelloWorldService" />
+ </references>
+ </component>
+
<reference name="HelloWorldService">
<interface.java interface="helloworld.HelloWorldService"/>
<binding.ws
endpoint="http://helloworld#wsdl.endpoint(HelloWorldService/HelloWorldSoapPort)"
location="wsdl/helloworld.wsdl" />
</reference>
-</composite>
\ No newline at end of file
+</composite>
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
---
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
(original)
+++
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2BindingBuilder.java
Thu Aug 10 18:59:40 2006
@@ -32,8 +32,8 @@
BoundServiceDefinition<WebServiceBinding>
serviceDefinition,
DeploymentContext deploymentContext) {
WebServiceBinding wsBinding = serviceDefinition.getBinding();
- // FIXME need to get interface for the service
- Class<?> interfaze = null;
+
+ Class<?> interfaze =
serviceDefinition.getServiceContract().getInterfaceClass();
//FIXME: Axis2Service needs an instance of ServletHost as
parameter. How to get it?
return new Axis2Service(
serviceDefinition.getName(),
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
---
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java
(original)
+++
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/Axis2TargetInvoker.java
Thu Aug 10 18:59:40 2006
@@ -24,6 +24,7 @@
import org.apache.tuscany.spi.wire.TargetInvoker;
import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axis2.AxisFault;
@@ -43,6 +44,7 @@
private SDODataBinding dataBinding;
private SOAPFactory soapFactory;
private OperationClient operationClient;
+
public Axis2TargetInvoker(QName wsdlOperationName, Options options,
SDODataBinding dataBinding,
SOAPFactory soapFactory,
@@ -68,8 +70,20 @@
SOAPEnvelope env = soapFactory.getDefaultEnvelope();
if (payload != null && payload.getClass().isArray() &&
((Object[]) payload).length > 0) {
- OMElement requestOM = dataBinding.toOMElement((Object[])
payload);
- env.getBody().addChild(requestOM);
+// OMElement requestOM =
dataBinding.toOMElement((Object[]) payload);
+// env.getBody().addChild(requestOM);
+//TODO HACK
+ OMFactory fac = env.getOMFactory();
+ OMElement opE = fac.createOMElement("getGreetings"
,"http://helloworld", "helloworld");
+ // <helloworld:name>World</helloworld:name>
+
+ OMElement parmE = fac.createOMElement("name"
,"http://helloworld", "helloworld");
+ opE.addChild(parmE);
+ parmE.addChild(fac.createOMText(((Object[])payload)[0] +
""));
+ env.getBody().addChild((opE));
+//TODO HACK
+
+
}
MessageContext requestMC = new MessageContext();
Modified:
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
---
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java
(original)
+++
incubator/tuscany/java/sca/bindings/binding.axis2/src/main/java/org/apache/tuscany/binding/axis2/WebServiceBindingLoader.java
Thu Aug 10 18:59:40 2006
@@ -40,6 +40,7 @@
import org.apache.tuscany.spi.extension.LoaderExtension;
import org.apache.tuscany.spi.loader.LoaderException;
import org.apache.tuscany.spi.loader.LoaderRegistry;
+import org.apache.tuscany.spi.loader.LoaderUtil;
import org.apache.tuscany.spi.services.wsdl.WSDLDefinitionRegistry;
import org.osoa.sca.annotations.Scope;
import org.xml.sax.InputSource;
@@ -78,12 +79,14 @@
String uri = null;
endpointAttribute = reader.getAttributeValue(null, "endpoint");
wsdlLocation = reader.getAttributeValue(null, "location");
+ LoaderUtil.skipToEndElement(reader);
try {
return createBinding(uri, endpointAttribute,
deploymentContext);
} catch (Exception e) {
throw new LoaderException(e);
}
+
}
@SuppressWarnings("unchecked")
Modified:
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
(original)
+++
incubator/tuscany/java/sca/core/src/main/java/org/apache/tuscany/core/loader/ServiceLoader.java
Thu Aug 10 18:59:40 2006
@@ -40,6 +40,8 @@
import org.apache.tuscany.spi.model.ServiceDefinition;
import org.apache.tuscany.spi.annotation.Autowire;
+import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
+
/**
* Loads a service definition from an XML-based assembly file
*
@@ -47,6 +49,7 @@
*/
public class ServiceLoader extends LoaderExtension<ServiceDefinition> {
private static final QName SERVICE = new QName(XML_NAMESPACE_1_0,
"service");
+ private static final QName REFERENCE = new QName(XML_NAMESPACE_1_0,
"reference");
@Constructor({"registry"})
public ServiceLoader(@Autowire LoaderRegistry registry) {
@@ -64,18 +67,25 @@
throws XMLStreamException, LoaderException {
assert SERVICE.equals(reader.getName());
String name = reader.getAttributeValue(null, "name");
- String target = reader.getAttributeValue(null, "target");
+ String target = null ;
Binding binding = null;
ServiceContract serviceContract = null;
while (true) {
int i = reader.next();
switch (i) {
case START_ELEMENT:
- ModelObject o = registry.load(parent, reader,
deploymentContext);
- if (o instanceof ServiceContract) {
- serviceContract = (ServiceContract) o;
- } else if (o instanceof Binding) {
- binding = (Binding) o;
+
+ //there is a reference already using this qname which
doesn't seem appropriate.
+ if(REFERENCE.equals(reader.getName())){
+ target= reader.getElementText();
+ }else{
+
+ ModelObject o = registry.load(parent, reader,
deploymentContext);
+ if (o instanceof ServiceContract) {
+ serviceContract = (ServiceContract) o;
+ } else if (o instanceof Binding) {
+ binding = (Binding) o;
+ }
}
break;
case END_ELEMENT:
Modified:
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java
(original)
+++
incubator/tuscany/java/sca/core/src/test/java/org/apache/tuscany/core/loader/ServiceLoaderTestCase.java
Thu Aug 10 18:59:40 2006
@@ -40,6 +40,7 @@
*/
public class ServiceLoaderTestCase extends MockObjectTestCase {
private static final QName SERVICE = new QName(XML_NAMESPACE_1_0,
"service");
+ private static final QName REFERENCE = new QName(XML_NAMESPACE_1_0,
"reference");
private ServiceLoader loader;
private DeploymentContext deploymentContext;
@@ -48,12 +49,12 @@
public void testWithNoInterface() throws LoaderException,
XMLStreamException {
String name = "serviceDefinition";
- String target = "target";
+// String target = "target";
mockReader.expects(once()).method("getName").will(returnValue(SERVICE));
// todo figure out how to check ordering
- mockReader.expects(atLeastOnce()).method("getAttributeValue")
+ mockReader.expects(once()).method("getAttributeValue")
.with(ANYTHING, ANYTHING)
- .will(onConsecutiveCalls(returnValue(name),
returnValue(target)));
+ .will(returnValue(name));
mockReader.expects(once()).method("next").will(returnValue(END_ELEMENT));
ServiceDefinition serviceDefinition = loader.load(null,
(XMLStreamReader) mockReader.proxy(), null);
assertNotNull(serviceDefinition);
@@ -65,15 +66,21 @@
String target = "target";
ServiceContract sc = new ServiceContract() {
};
-
mockReader.expects(once()).method("getName").will(returnValue(SERVICE));
+ mockReader.expects(atLeastOnce()).method("getName")
+
.will(onConsecutiveCalls(returnValue(SERVICE),returnValue(SERVICE)
+ ,returnValue(REFERENCE)));
// todo figure out how to check ordering
- mockReader.expects(atLeastOnce()).method("getAttributeValue")
+ mockReader.expects(once()).method("getAttributeValue")
.with(ANYTHING, ANYTHING)
- .will(onConsecutiveCalls(returnValue(name),
returnValue(target)));
+ .will((returnValue(name)));
mockReader.expects(atLeastOnce()).method("next")
- .will(onConsecutiveCalls(returnValue(START_ELEMENT),
returnValue(END_ELEMENT)));
+ .will(onConsecutiveCalls(returnValue(START_ELEMENT),
returnValue(START_ELEMENT), returnValue(END_ELEMENT)));
mockRegistry.expects(once()).method("load").with(eq(null),
eq(mockReader.proxy()), eq(deploymentContext))
.will(returnValue(sc));
+
mockReader.expects(once()).method("getElementText").withNoArguments()
+
+ .will((returnValue(target)));
+
ServiceDefinition serviceDefinition =
loader.load(null, (XMLStreamReader) mockReader.proxy(),
deploymentContext);
assertNotNull(serviceDefinition);
Modified:
incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl
(original)
+++
incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot1.scdl
Thu Aug 10 18:59:40 2006
@@ -17,9 +17,10 @@
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:system="http://tuscany.apache.org/xmlns/system/1.0-SNAPSHOT"
name="boot1">
- <service name="service" target="component">
+ <service name="service" >
<interface.java
interface="org.apache.tuscany.core.mock.component.BasicInterface"/>
<system:binding.system/>
+ <reference>component</reference>
</service>
<component name="component">
Modified:
incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl?rev=430621&r1=430620&r2=430621&view=diff
==============================================================================
---
incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
(original)
+++
incubator/tuscany/java/sca/core/src/test/resources/org/apache/tuscany/core/deployer/boot2.scdl
Thu Aug 10 18:59:40 2006
@@ -23,9 +23,10 @@
name="boot2">
<!-- expose Deployer API as a service -->
- <service name="deployer" target="deployerImpl">
+ <service name="deployer" >
<interface.java
interface="org.apache.tuscany.spi.deployer.Deployer"/>
<system:binding.system/>
+ <reference>deployerImpl</reference>
</service>
<!-- Component that provides the Deployer service -->
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]