summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrea Gazzarini <agazzarini@apache.org>2009-02-16 10:40:39 +0000
committerAndrea Gazzarini <agazzarini@apache.org>2009-02-16 10:40:39 +0000
commit3cdd19992314a0aed86b9e32d80ab7e318c00b71 (patch)
tree1318f2913d30a4072c23192b22d3fdb8a3074134
parent5420d85fc6a07e0b068389b97f099d4b6e3a621e (diff)
downloadqpid-python-3cdd19992314a0aed86b9e32d80ab7e318c00b71.tar.gz
QPID-1604 : Implementation of wrsf-rp:PutResourcePropertyDocument interface
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@744885 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/management/client/src/main/java/muse.xml12
-rw-r--r--qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/WsdlBuilder.java3
-rw-r--r--qpid/java/management/client/src/main/java/wsdl/QManAdapter.rmd25
-rw-r--r--qpid/java/management/client/src/main/java/wsdl/QManAdapter.wsdl21
-rw-r--r--qpid/java/management/client/src/main/java/wsdl/QManWsResource.rmd12
-rw-r--r--qpid/java/management/client/src/main/java/wsdl/QManWsResource.wsdl113
-rw-r--r--qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java89
7 files changed, 110 insertions, 165 deletions
diff --git a/qpid/java/management/client/src/main/java/muse.xml b/qpid/java/management/client/src/main/java/muse.xml
index 2b047d01f7..d2f499cef9 100644
--- a/qpid/java/management/client/src/main/java/muse.xml
+++ b/qpid/java/management/client/src/main/java/muse.xml
@@ -144,14 +144,6 @@
<java-capability-class>org.apache.qpid.management.wsdm.capabilities.QManMetadataExchangeCapability</java-capability-class>
</capability>
<capability>
- <capability-uri>http://docs.oasis-open.org/wsrf/rlw-2/ImmediateResourceTermination</capability-uri>
- <java-capability-class>org.apache.muse.ws.resource.lifetime.impl.SimpleImmediateTermination</java-capability-class>
- </capability>
- <capability>
- <capability-uri>http://docs.oasis-open.org/wsrf/rlw-2/ScheduledResourceTermination</capability-uri>
- <java-capability-class>org.apache.muse.ws.resource.lifetime.impl.SimpleScheduledTermination</java-capability-class>
- </capability>
- <capability>
<capability-uri>http://docs.oasis-open.org/wsrf/rpw-2/Get</capability-uri>
<java-capability-class>org.apache.muse.ws.resource.properties.get.impl.SimpleGetCapability</java-capability-class>
</capability>
@@ -163,6 +155,10 @@
<capability-uri>http://docs.oasis-open.org/wsrf/rpw-2/Set</capability-uri>
<java-capability-class>org.apache.muse.ws.resource.properties.set.impl.SimpleSetCapability</java-capability-class>
</capability>
+ <capability>
+ <capability-uri>http://docs.oasis-open.org/wsrf/rpw-2/Put</capability-uri>
+ <java-capability-class>org.apache.muse.ws.resource.properties.set.impl.SimpleSetCapability</java-capability-class>
+ </capability>
</resource-type>
<resource-type>
<context-path>ServiceGroupEntry</context-path>
diff --git a/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/WsdlBuilder.java b/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/WsdlBuilder.java
index bce0e30e62..02b25eb02f 100644
--- a/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/WsdlBuilder.java
+++ b/qpid/java/management/client/src/main/java/org/apache/qpid/management/wsdm/capabilities/WsdlBuilder.java
@@ -96,7 +96,7 @@ class WsdlBuilder implements IArtifactBuilder {
propertyRef.setAttribute(
"ref",
Names.PREFIX+":"+attributeMetadata.getName());
-
+ propertyRef.setAttribute("minOccurs", "0");
wsrpProperties.appendChild(propertyRef);
} catch(Exception exception)
@@ -197,6 +197,7 @@ class WsdlBuilder implements IArtifactBuilder {
Element propertyDeclaration = XmlUtils.createElement(_document, XSD_ELEMENT_QNAME);
propertyDeclaration.setAttribute("name",attributeName);
propertyDeclaration.setAttribute("type", serializer.getXmlType(Class.forName(type)));
+
return propertyDeclaration;
}
}
diff --git a/qpid/java/management/client/src/main/java/wsdl/QManAdapter.rmd b/qpid/java/management/client/src/main/java/wsdl/QManAdapter.rmd
index 0663acb548..31e921a06b 100644
--- a/qpid/java/management/client/src/main/java/wsdl/QManAdapter.rmd
+++ b/qpid/java/management/client/src/main/java/wsdl/QManAdapter.rmd
@@ -4,7 +4,6 @@
xmlns:wsrf-sg="http://docs.oasis-open.org/wsrf/sg-2"
xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2"
xmlns:wsrl="http://docs.oasis-open.org/wsrf/rl-2"
- xmlns:myns="http://ws.apache.org/muse/test/wsrf"
xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
xmlns:wst="http://docs.oasis-open.org/wsn/t-1"
xmlns:muws1="http://docs.oasis-open.org/wsdm/muws1-2.xsd"
@@ -20,33 +19,9 @@
</Property>
<Property name="wsrf-sg:Entry" modifiability="read-only" mutability="mutable" />
<Property name="wsrf-rp:QueryExpressionDialect" modifiability="read-only" mutability="constant" />
-
-<!--
- <Property name="wsrl:CurrentTime" modifiability="read-only" mutability="mutable" />
-
- <Property name="wsrl:TerminationTime" modifiability="read-only" mutability="mutable" />
--->
<Property name="wsnt:FixedTopicSet" modifiability="read-only" mutability="constant" />
-
<Property name="wst:TopicSet" modifiability="read-only" mutability="mutable" />
-
<Property name="wsnt:TopicExpression" modifiability="read-only" mutability="mutable" />
-
<Property name="wsnt:TopicExpressionDialect" modifiability="read-only" mutability="mutable" />
-<!--
- <Property name="muws1:ResourceId" modifiability="read-only" mutability="constant" />
-
- <Property name="muws1:ManageabilityCapability" modifiability="read-only" mutability="constant" />
-
- <Property name="muws2:Caption" modifiability="read-only" mutability="mutable" />
-
- <Property name="muws2:Description" modifiability="read-only" mutability="mutable" />
-
- <Property name="muws2:Version" modifiability="read-only" mutability="constant" />
-
- <Property name="myns:ServerName" modifiability="read-only" mutability="constant"/>
-
- <Property name="myns:MessageInterval" modifiability="read-write" mutability="mutable"/>
--->
</MetadataDescriptor>
</Definitions>
diff --git a/qpid/java/management/client/src/main/java/wsdl/QManAdapter.wsdl b/qpid/java/management/client/src/main/java/wsdl/QManAdapter.wsdl
index 9a956c22a2..4b26862604 100644
--- a/qpid/java/management/client/src/main/java/wsdl/QManAdapter.wsdl
+++ b/qpid/java/management/client/src/main/java/wsdl/QManAdapter.wsdl
@@ -61,32 +61,13 @@
<xsd:element name="WsDmAdapterResourceProperties">
<xsd:complexType>
<xsd:sequence>
-
-<!--
- <xsd:element ref="wsrf-rl:CurrentTime" />
- <xsd:element ref="wsrf-rl:TerminationTime" />
--->
<xsd:element ref="wsrf-sg:Entry"/>
<xsd:element ref="wsrf-sg:MembershipContentRule"/>
- <xsd:element
- ref="wsrf-rp:QueryExpressionDialect" minOccurs="0"
- maxOccurs="unbounded" />
-
+ <xsd:element ref="wsrf-rp:QueryExpressionDialect" minOccurs="0" maxOccurs="unbounded" />
<xsd:element ref="wsnt:FixedTopicSet" />
<xsd:element ref="wst:TopicSet" minOccurs="0" />
<xsd:element ref="wsnt:TopicExpression" minOccurs="0" maxOccurs="unbounded" />
<xsd:element ref="wsnt:TopicExpressionDialect" minOccurs="0" maxOccurs="unbounded" />
-<!--
- <xsd:element ref="muws1:ResourceId" />
- <xsd:element ref="muws1:ManageabilityCapability"
- minOccurs="0" maxOccurs="unbounded" />
- <xsd:element ref="muws2:Caption" minOccurs="0"
- maxOccurs="unbounded" />
- <xsd:element ref="muws2:Description"
- minOccurs="0" maxOccurs="unbounded" />
- <xsd:element ref="muws2:Version" minOccurs="0" />
- <xsd:element ref="muws2:OperationalStatus" />
--->
</xsd:sequence>
</xsd:complexType>
</xsd:element>
diff --git a/qpid/java/management/client/src/main/java/wsdl/QManWsResource.rmd b/qpid/java/management/client/src/main/java/wsdl/QManWsResource.rmd
index 397a134a79..c4944440e0 100644
--- a/qpid/java/management/client/src/main/java/wsdl/QManWsResource.rmd
+++ b/qpid/java/management/client/src/main/java/wsdl/QManWsResource.rmd
@@ -1,13 +1,17 @@
<?xml version="1.0"?>
<Definitions xmlns="http://docs.oasis-open.org/wsrf/rmd-1" >
<MetadataDescriptor
- xmlns:wsrl="http://docs.oasis-open.org/wsrf/rl-2"
- xmlns:qman="http://amqp.apache.org/qpid/management/qman"
+ xmlns:wsrf-rp="http://docs.oasis-open.org/wsrf/rp-2"
+ xmlns:wsrl="http://docs.oasis-open.org/wsrf/rl-2"
+ xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
+ xmlns:wst="http://docs.oasis-open.org/wsn/t-1"
+ xmlns:muws1="http://docs.oasis-open.org/wsdm/muws1-2.xsd"
+ xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2.xsd"
+ xmlns:qman="http://amqp.apache.org/qpid/management/qman"
name="QManWsResourceMetadata"
interface="qman:QManWsResourcePortType"
wsdlLocation="http://ws.apache.org/muse/test/wsrf QManWsResource.wsdl" >
- <Property name="wsrl:CurrentTime" modifiability="read-only" mutability="mutable" />
- <Property name="wsrl:TerminationTime" modifiability="read-only" mutability="mutable" />
+ <Property name="wsrf-rp:QueryExpressionDialect" modifiability="read-only" mutability="constant" />
</MetadataDescriptor>
</Definitions> \ No newline at end of file
diff --git a/qpid/java/management/client/src/main/java/wsdl/QManWsResource.wsdl b/qpid/java/management/client/src/main/java/wsdl/QManWsResource.wsdl
index f3ad6c6012..69647521ba 100644
--- a/qpid/java/management/client/src/main/java/wsdl/QManWsResource.wsdl
+++ b/qpid/java/management/client/src/main/java/wsdl/QManWsResource.wsdl
@@ -54,9 +54,7 @@
<xsd:element name="QManWsResourceProperties">
<xsd:complexType>
<xsd:sequence>
- <xsd:element ref="wsrf-rl:CurrentTime" />
- <xsd:element ref="wsrf-rl:TerminationTime" />
- <xsd:element ref="wsrf-rp:QueryExpressionDialect" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="wsrf-rp:QueryExpressionDialect" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
@@ -118,17 +116,14 @@
<wsdl:message name="ResourceUnavailableFault">
<wsdl:part name="ResourceUnavailableFault" element="wsrf-r:ResourceUnavailableFault" />
</wsdl:message>
- <wsdl:message name="SetTerminationTimeRequest">
- <wsdl:part name="SetTerminationTimeRequest" element="wsrf-rl:SetTerminationTime" />
+ <wsdl:message name="UnableToPutResourcePropertyDocumentFault">
+ <wsdl:part name="UnableToPutResourcePropertyDocumentFault" element="wsrf-rp:UnableToPutResourcePropertyDocumentFault" />
</wsdl:message>
- <wsdl:message name="SetTerminationTimeResponse">
- <wsdl:part name="SetTerminationTimeResponse" element="wsrf-rl:SetTerminationTimeResponse" />
+ <wsdl:message name="PutResourcePropertyDocumentRequest">
+ <wsdl:part name="PutResourcePropertyDocumentRequest" element="wsrf-rp:PutResourcePropertyDocument"/>
</wsdl:message>
- <wsdl:message name="UnableToSetTerminationTimeFault">
- <wsdl:part name="UnableToSetTerminationTimeFault" element="wsrf-rl:UnableToSetTerminationTimeFault" />
- </wsdl:message>
- <wsdl:message name="TerminationTimeChangeRejectedFault">
- <wsdl:part name="TerminationTimeChangeRejectedFault" element="wsrf-rl:TerminationTimeChangeRejectedFault" />
+ <wsdl:message name="PutResourcePropertyDocumentResponse">
+ <wsdl:part name="PutResourcePropertyDocumentResponse" element="wsrf-rp:PutResourcePropertyDocumentResponse"/>
</wsdl:message>
<wsdl:message name="GetResourcePropertyDocumentRequest">
<wsdl:part name="GetResourcePropertyDocumentRequest" element="wsrf-rp:GetResourcePropertyDocument"/>
@@ -196,33 +191,6 @@
name="GetMetadataResponseMsg"
message="qman:GetMetadataResponseMsg"/>
</wsdl:operation>
- <wsdl:operation name="Destroy">
- <wsdl:input
- wsa:Action="http://docs.oasis-open.org/wsrf/rlw-2/ImmediateResourceTermination/DestroyRequest"
- name="DestroyRequest"
- message="qman:DestroyRequest" />
- <wsdl:output
- wsa:Action="http://docs.oasis-open.org/wsrf/rlw-2/ImmediateResourceTermination/DestroyResponse"
- name="DestroyResponse"
- message="qman:DestroyResponse" />
- <wsdl:fault name="ResourceNotDestroyedFault" message="qman:ResourceNotDestroyedFault" />
- <wsdl:fault name="ResourceUnknownFault" message="qman:ResourceUnknownFault" />
- <wsdl:fault name="ResourceUnavailableFault" message="qman:ResourceUnavailableFault"/>
- </wsdl:operation>
- <wsdl:operation name="SetTerminationTime">
- <wsdl:input
- wsa:Action="http://docs.oasis-open.org/wsrf/rlw-2/ScheduledResourceTermination/SetTerminationTimeRequest"
- name="SetTerminationTimeRequest"
- message="qman:SetTerminationTimeRequest" />
- <wsdl:output
- wsa:Action="http://docs.oasis-open.org/wsrf/rlw-2/ScheduledResourceTermination/SetTerminationTimeResponse"
- name="SetTerminationTimeResponse"
- message="qman:SetTerminationTimeResponse" />
- <wsdl:fault name="UnableToSetTerminationTimeFault" message="qman:UnableToSetTerminationTimeFault" />
- <wsdl:fault name="ResourceUnknownFault" message="qman:ResourceUnknownFault" />
- <wsdl:fault name="ResourceUnavailableFault" message="qman:ResourceUnavailableFault"/>
- <wsdl:fault name="TerminationTimeChangeRejectedFault" message="qman:TerminationTimeChangeRejectedFault" />
- </wsdl:operation>
<wsdl:operation name="GetResourcePropertyDocument">
<wsdl:input
wsa:Action="http://docs.oasis-open.org/wsrf/rpw-2/GetResourcePropertyDocument/GetResourcePropertyDocumentRequest"
@@ -235,6 +203,19 @@
<wsdl:fault name="ResourceUnknownFault" message="qman:ResourceUnknownFault"/>
<wsdl:fault name="ResourceUnavailableFault" message="qman:ResourceUnavailableFault"/>
</wsdl:operation>
+ <wsdl:operation name="PutResourcePropertyDocument">
+ <wsdl:input
+ wsa:Action="http://docs.oasis-open.org/wsrf/rpw-2/PutResourcePropertyDocument/PutResourcePropertyDocumentRequest"
+ name="PutResourcePropertyDocumentRequest"
+ message="qman:PutResourcePropertyDocumentRequest"/>
+ <wsdl:output
+ wsa:Action="http://docs.oasis-open.org/wsrf/rpw-2/PutResourcePropertyDocument/PutResourcePropertyDocumentResponse"
+ name="PutResourcePropertyDocumentResponse"
+ message="qman:PutResourcePropertyDocumentResponse"/>
+ <wsdl:fault name="ResourceUnknownFault" message="qman:ResourceUnknownFault"/>
+ <wsdl:fault name="ResourceUnavailableFault" message="qman:ResourceUnavailableFault"/>
+ <wsdl:fault name="UnableToPutResourcePropertyDocumentFault" message="qman:UnableToPutResourcePropertyDocumentFault"/>
+ </wsdl:operation>
<wsdl:operation name="GetResourceProperty">
<wsdl:input
wsa:Action="http://docs.oasis-open.org/wsrf/rpw-2/GetResourceProperty/GetResourcePropertyRequest"
@@ -308,50 +289,18 @@
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="Destroy">
- <wsdl-soap:operation soapAction="Destroy"/>
- <wsdl:input name="DestroyRequest">
+ <wsdl:operation name="PutResourcePropertyDocument">
+ <wsdl-soap:operation soapAction="PutResourcePropertyDocument"/>
+ <wsdl:input name="PutResourcePropertyDocumentRequest">
<wsdl-soap:body
use="literal"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:input>
- <wsdl:output name="DestroyResponse">
- <wsdl-soap:body
- use="literal"
- encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- </wsdl:output>
- <wsdl:fault name="ResourceNotDestroyedFault">
- <wsdl-soap:fault
- use="literal"
- name="ResourceNotDestroyedFault"/>
- </wsdl:fault>
- <wsdl:fault name="ResourceUnknownFault">
- <wsdl-soap:fault
- use="literal"
- name="ResourceUnknownFault"/>
- </wsdl:fault>
- <wsdl:fault name="ResourceUnavailableFault">
- <wsdl-soap:fault
- use="literal"
- name="ResourceUnavailableFault"/>
- </wsdl:fault>
- </wsdl:operation>
- <wsdl:operation name="SetTerminationTime">
- <wsdl-soap:operation soapAction="SetTerminationTime"/>
- <wsdl:input name="SetTerminationTimeRequest">
- <wsdl-soap:body
- use="literal"
- encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- </wsdl:input><wsdl:output name="SetTerminationTimeResponse">
+ <wsdl:output name="PutResourcePropertyDocumentResponse">
<wsdl-soap:body
use="literal"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
</wsdl:output>
- <wsdl:fault name="UnableToSetTerminationTimeFault">
- <wsdl-soap:fault
- use="literal"
- name="UnableToSetTerminationTimeFault"/>
- </wsdl:fault>
<wsdl:fault name="ResourceUnknownFault">
<wsdl-soap:fault
use="literal"
@@ -362,10 +311,10 @@
use="literal"
name="ResourceUnavailableFault"/>
</wsdl:fault>
- <wsdl:fault name="TerminationTimeChangeRejectedFault">
+ <wsdl:fault name="UnableToPutResourcePropertyDocumentFault">
<wsdl-soap:fault
use="literal"
- name="TerminationTimeChangeRejectedFault"/>
+ name="UnableToPutResourcePropertyDocumentFault"/>
</wsdl:fault>
</wsdl:operation>
<wsdl:operation name="GetResourcePropertyDocument">
@@ -523,16 +472,6 @@
name="SetResourcePropertyRequestFailedFault"/>
</wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="GetMetadata">
- <wsdl-soap:operation
- soapAction="http://ws.apache.org/muse/test/wsrf/GetMetadata" />
- <wsdl:input name="GetMetadataMsg">
- <wsdl-soap:body use="literal" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- </wsdl:input>
- <wsdl:output name="GetMetadataResponseMsg">
- <wsdl-soap:body use="literal" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
- </wsdl:output>
- </wsdl:operation>
</wsdl:binding>
<wsdl:service name="QManWsResourceService">
<wsdl:port name="QManWsResourcePort" binding="qman:QManWsResourceBinding">
diff --git a/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java b/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java
index a181a8652f..5012ff95cd 100644
--- a/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java
+++ b/qpid/java/management/client/src/test/java/org/apache/qpid/management/wsdm/WsDmAdapterTest.java
@@ -46,6 +46,7 @@ import junit.framework.TestSuite;
import org.apache.muse.core.proxy.ProxyHandler;
import org.apache.muse.core.proxy.ReflectionProxyHandler;
import org.apache.muse.core.serializer.SerializerRegistry;
+import org.apache.muse.util.xml.XmlUtils;
import org.apache.muse.ws.addressing.EndpointReference;
import org.apache.muse.ws.addressing.soap.SoapFault;
import org.apache.muse.ws.resource.remote.WsResourceClient;
@@ -366,27 +367,75 @@ public class WsDmAdapterTest extends TestCase {
}
}
+
+ /**
+ * Tests the WS-RP PutResourcePropertyDocument interface of the WS-DM adapter.
+ *
+ * <br>precondition : a ws resource exists and is registered.
+ * <br>postcondition : A read / write property is correctly set according to WSRP interface.
+ */
+ public void testGetAndPutResourcePropertyDocumentOK() throws Exception
+ {
+ String expectedMgmtPubIntervalValue = "4321";
+ String propertyName = "MgmtPubInterval";
+
+ Element propertiesDocument = _resourceClient.getResourcePropertyDocument();
+ Element [] properties = XmlUtils.getAllElements(propertiesDocument);
+
+ for (Element element : properties)
+ {
+ if (propertyName.equals(element.getLocalName())) {
+ element.setTextContent(expectedMgmtPubIntervalValue);
+ } else {
+ propertiesDocument.removeChild(element);
+ }
+ }
+
+ _resourceClient.putResourcePropertyDocument(propertiesDocument);
+
+ Element newProperties = _resourceClient.getResourcePropertyDocument();
+
+ Element mgmtPubInterval = XmlUtils.getElement(
+ newProperties, new QName(
+ Names.NAMESPACE_URI,
+ propertyName,
+ Names.PREFIX));
+
+ assertEquals(expectedMgmtPubIntervalValue,mgmtPubInterval.getTextContent());
+ }
-// public void testGetAndPutResourcePropertyDocumentOK() throws Exception
-// {
-// Element properties = _resourceClient.getResourcePropertyDocument();
-//
-// Element mgmtPubInterval = XmlUtils.getElement(properties, new QName(Names.NAMESPACE_URI,"MgmtPubInterval",Names.PREFIX));
-// mgmtPubInterval.setTextContent(String.valueOf(Long.MAX_VALUE));
-//
-// Element durable = XmlUtils.getElement(properties, new QName(Names.NAMESPACE_URI,"Durable",Names.PREFIX));
-// durable.setTextContent(String.valueOf(Boolean.FALSE));
-//
-// Element consumerCount = XmlUtils.getElement(properties, new QName(Names.NAMESPACE_URI,"ConsumerCount",Names.PREFIX));
-// consumerCount.setTextContent(String.valueOf(13));
-//
-// fail("PutResourcePropertyDocument not yet implemented!");
-//// _resourceClient.putResourcePropertyDocument(properties);
-////
-//// Element newProperties = _resourceClient.getResourcePropertyDocument();
-////
-//// assertEquals(properties,newProperties);
-// }
+ /**
+ * Tests the WS-RP PutResourcePropertyDocument interface of the WS-DM adapter.
+ * Specifically it tries to update the value of a read-only property.
+ *
+ * <br>precondition : a ws resource exists, it is registered and has at least one read-only property.
+ * <br>postcondition : An exception is thrown indicating the failure.
+ */
+ public void testGetAndPutResourcePropertyDocumentKO_WithReadOnlyProperty() throws Exception
+ {
+ String propertyName = "Name";
+
+ Element propertiesDocument = _resourceClient.getResourcePropertyDocument();
+ Element [] properties = XmlUtils.getAllElements(propertiesDocument);
+
+ for (Element element : properties)
+ {
+ if (propertyName.equals(element.getLocalName())) {
+ element.setTextContent("ThisIsTheNewValueOfNameProperty");
+ } else {
+ propertiesDocument.removeChild(element);
+ }
+ }
+
+ try
+ {
+ _resourceClient.putResourcePropertyDocument(propertiesDocument);
+ fail("It's not possible to update the value of a read-only property.");
+ } catch (SoapFault expected)
+ {
+
+ }
+ }
/**
* Test the WS-RP GetResourceProperties interface of the WS-DM adapter.