You are viewing a plain text version of this content. The canonical link for it is here.
Posted to muse-user@ws.apache.org by Christoph Bernhard Schwarz <ch...@gmail.com> on 2007/02/25 13:11:40 UTC
Metric and Configuration
hi!
as far as i understood the standard, metrics and configurations are
specialized resource properties. how do i specify a resource property to be
a metric or configuration in the wsdl file that is used for code generation?
and how do i access the meta-information that is attached to a metric (e.g.
lastupdated) from the client side proxy?
any help appreciated,
christoph
Re: Metric and Configuration
Posted by Daniel Jemiolo <da...@us.ibm.com>.
where is your code? in initialize()? what is the stack trace (either in
muse.log or the server console)?
I'm thinking setTextContent() might be the issue - I've never used that
method before; before sending the above info, try using
XmlUtils.setElementText() to see if that helps...
Dan
"Christoph Bernhard Schwarz" <ch...@gmail.com> wrote on
02/27/2007 02:59:34 PM:
> The workaround for wsdl2java did not work for me, the output as Element
> remains the same.
>
> I will definitely check out the 2.2 code, but won't be able to do so
until
> tomorrow.
>
> Meanwhile, I could not get my initialization right. Within "
> MyCapability.java" I added the following code
> to initialize the "_MyMetric" Property which is of type "Element":
>
> QName QnMetric = new
QName("http://ws.apache.org/muse/test/wsrf",
> "MyMetric", "tns");
> Element metric = XmlUtils.createElement(QnMetric);
> metric.setTextContent("100");
> _MyMetric = metric;
>
> The server log shows that the resource is initialized and the code above
> executed, but I still get a NullPointerException
> afterwards. If I specify an intial value in the RMD file, the resource
> starts up allright and the Metric Metadata is generated.
> Can you give me an example of how to initialize such an "Element"-type
> property correctly, or point me to corresponding documentation?
>
> Another thing that just came to my mind: When is the "LastUpdated"
attribute
> updated? I mean, since the Metric is read-only for any clients, it has
to be
> somehow updated on the server side. But seeing the code generated for
that
> property, how does Muse determine that there has been an update on that
> value?
>
> Thanks a lot for your patience with my endless questioning!
> Christoph
>
> On 2/27/07, Daniel Jemiolo <da...@us.ibm.com> wrote:
> >
> > of course, what was I thinking - you do also need the actual Metric
types
> > in the RMD document as well. luckily you've figured that out. I will
be
> > sure to add that to the docs I'm creating (JIRA issue MUSE-201).
> >
> > andrew may correct me, but I don't believe wsdl2java will handle an
XSD
> > extension without giving you an Element, which is not really what you
> > want. you want the integer, and the attributes to be ignored (for the
Java
> >
> > method signature). muse's WSDM implementation will handle adding the
> > metric attributes before the values are put on the wire.
> >
> > the following workaround may work for the moment:
> >
> > <xsd:element name="MyMetric">
> > <xsd:complexType>
> > <xsd:sequence>
> > <xsd:element name="MyValue" type="xsd:integer"/>
> > <xsd:attributeGroup ref="muws2:MetricAttributes"/>
> > </xsd:sequence>
> > </xsd:complexType>
> > </xsd:element>
> >
> > this isn't pretty, but may allow wsdl2java to generate code without
> > tripping up on the attribute group.
> >
> > for a better fix, though, please open up a JIRA item to ask for better
> > recognition of WSDM Metrics in wsdl2java, so that your original XSD
will
> > work. please reference your sample in the report.
> >
> > thanks!
> > Dan
> >
> > P.S. I added a Metrics-specific client to the Muse 2.2 code two days
ago -
> >
> > if you pick up the nightly build, you can find it as
> > org.apache.muse.ws.dm.muws.remote.MetricsClient.
> >
> >
> >
> > "Christoph Bernhard Schwarz" <christoph.b.schwarz@gmail.com > wrote on
> > 02/27/2007 12:52:17 PM:
> >
> > > I added ".xsd" to the namespace prefix so now Muse recognizes that
the
> > > property is a metric. (I say it's recognized, because Muse
complains, if
> >
> > I
> > > do not add all the metadata required for a metric.)
> > >
> > > But I still need some help: I now also updated the wsdl file to add
the
> > > AttributeGroup "muws2:MetricAttributes" to my metric like this:
> > >
> > > <xsd:element name="MyMetric">
> > > <xsd:complexType>
> > > <xsd:simpleContent>
> > > <xsd:extension base="xsd:integer">
> > > <xsd:attributeGroup
> > ref="muws2:MetricAttributes"
> > > />
> > > </xsd:extension>
> > > </xsd:simpleContent>
> > > </xsd:complexType>
> > > </xsd:element>
> > >
> > > This causes wsdl2java to generate my metric not as integer value,
but as
> > > Element. As I understand, this now needs to be initialized somehow.
Can
> > you
> > > please give me an example of how to do this? I'm constantly running
into
> > > NullPointerException at
> > >
> >
> >
org.apache.muse.ws.resource.properties.impl.SimpleResourcePropertyCollection
> > .
> > > getResourceProperty(
> > > SimpleResourcePropertyCollection.java:612)
> > > after the Resource has been initialized.
> > >
> > > On 2/26/07, Daniel Jemiolo <da...@us.ibm.com> wrote:
> > > >
> > > > sorry, I think I made the mistake in my sample RMD XML:
> > > >
> > > > the namespace for prefix muws2 should be
> > > > " http://docs.oasis-open.org/wsdm/muws2-2.xsd" - notice the ".xsd"
> > added to
> > > >
> > > > the end. if you modify the <muws2:Capability/> element by updating
the
> > > > namespace, it should work - if not, send any trace/error info from
> > > > muse.log or your server log to the list and I will try to
reproduce.
> > > >
> > > > for the prefix issue, see the following in our troubleshooting
> > section:
> > > >
> > > >
> > > >
http://ws.apache.org/muse/docs/2.1.0/manual/troubleshooting/default-
> > > namespaces-xerces.html
> > > >
> > > >
> > > > Dan
> > > >
> > > >
> > > > "Christoph Bernhard Schwarz" <ch...@gmail.com> wrote
on
> > > > 02/26/2007 07:42:25 AM:
> > > >
> > > > > Hi!
> > > > >
> > > > > Thank you for the extensive answer. Unfortunately, my problem
still
> > > > remains:
> > > > > I used the wsdl from the 'wsrf' as a starting point, and added
one
> > > > property
> > > > > named 'MyMetric'. I also added the 'CurrentTime' property
defined as
> > > > required
> > > > > by MUWS2 (Adding this property has the wsdl2java tool
automatically
> > > > generating
> > > > > the Metrics-Capability entry in muse.xml). In the .rmd-File I
marked
> > > > that
> > > > > property as Metric, as you described, but with no effect.
> > > > > I'm currently using the 2.1.0 binary distribution. The files I
> > modified
> > > > are
> > > > > attached to this mail.
> > > > >
> > > > > One other thing that I don't quite understand is, that when I
want
> > to
> > > > access a
> > > > > resource property by using
> > > >
> > > > > proxy.getResourceProperty(new QName("MyProperty"));
> > > > >
> > > > > I get a PropertyNotInSchema - Error. And when I add the
namespace
> > URI
> > > >
> > > > > proxy.getResourceProperty(new
> > > > QName("http://ws.apache.org/muse/test/wsrf ",
> > > > > "MyProperty"));
> > > > >
> > > > > there is a SAXParseException thrown on the server side
> > > > > [Fatal Error] :13:72: Element or attribute do not match QName
> > > > production:
> > > > > QName::=(NCName':')?NCName.
> > > > > ...
> > > > >
> > > > > So I went ahead and also added the prefix part:
> > > >
> > > > > proxy.getResourceProperty (new
> > > > QName(" http://ws.apache.org/muse/test/wsrf",
> > > > > "MyMetric", "myns"));
> > > > >
> > > > > Now that went OK. It even doesn't matter what I set as prefix.
But
> > I
> > > > guess
> > > > > that operation should also be successful without specifying any
> > prefix,
> > > > > because I saw that normally Muse generates a prefix for all the
> > > > namespaces
> > > > > (something like pfx0).
> > > > >
> > > > > Christoph
> > > >
> > > > > On 2/25/07, Daniel Jemiolo < danjemiolo@us.ibm.com> wrote:
> > > > > Hi,
> > > > >
> > > > > The WSDM Configuration capability does not define any additional
> > > > metadata
> > > > > that could be associated with properties or operation - right
now
> > it's
> > > > > really just for semantics (so a client can see that your
interface
> > makes
> > > >
> > > > > the resource configurable by a remote client).
> > > > >
> > > > > The WSDM Metrics capability allows you to add metric metadata to
> > > > existing
> > > > > resource properties. There is some info on the Metrics
capability
> > here:
> > > > >
> > > > >
> > > > >
> > > >
> >
http://ws.apache.org/muse/docs/2.1.0/manual/capabilities/wsdm-metrics.html
> >
> > > >
> > > > >
> > > > > To clarify the instructions on this page, you can add Metrics
> > support to
> > > > > your resource type using Muse is:
> > > > >
> > > > > 1. Add the Metrics capability to your <resource-type/> in
muse.xml :
> > > > >
> > > > > <capability>
> > > > >
> > > > >
> > > >
> >
<capability-uri>http://docs.oasis-open.org/wsdm/muws/capabilities/Metrics
> > > > > </capability-uri>
> > > > >
> > > > >
> > > >
<java-capability-class>org.apache.muse.ws.dm.muws.impl.SimpleMetrics
> > > > </java-
> > > > > capability-class>
> > > > > </capability>
> > > > >
> > > > > 2. Make sure you have an RMD (metadata) document for your
resource
> > > > > properties. You can see an example of RMD usage in the 'wsrf'
sample
> >
> > > > > project.
> > > > >
> > > > > 3. The <wsrmd:Property/> elements for the properties that you
> > consider
> > > > to
> > > > > be metrics needs the following element underneath it:
> > > > >
> > > > > <muws2:Capability
> > > > > xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2">
> > > > http://docs.oasis-open .
> > > > > org/wsdm/muws/capabilities/Metrics<muws2:Capability>
> > > > >
> > > > >
> > > > > This will tell Muse that the Metrics capability is associated
with
> > the
> > > > > property. The Metrics capability will create and maintain all of
the
> > > > > metadata for the property (when you update the property, it will
set
> > the
> > > > > value of "LastUpdated", etc.).
> > > > >
> > > > > 4. Use the getResourceProperty() method on your generated client
to
> > get
> > > > > the property values in XML form. You can then extract the
Metrics
> > > > > attributes from them like so:
> > > > >
> > > > >
> > > > > Element[] properties = client.getResourceProperty(new
> > > > > QName("MyPropertyName"));
> > > > >
> > > > > for (int n = 0; n < properties.length; ++n)
> > > > > {
> > > > > String updateTime =
> > properties[n].getAttribute("LastUpdated");
> > > > > System.out.println("Last updated on: " + updateTime);
> > > > > }
> > > > >
> > > > >
> > > > > Admittedly, Muse could have a more convenient way of getting the
> > > > > properties and the metric metadata at the same time (in this
system,
> >
> > you
> > > >
> > > > > can't use getPropertyAsObject() to get the property values as
POJOs
> > -
> > > > you
> > > > > have to get them as XML first). I will create JIRA item for
this.
> > > > >
> > > > > I will also add the above info to the Metrics capability
> > documentation.
> > > > >
> > > > > Dan
> > > > >
> > > > >
> > > > > "Christoph Bernhard Schwarz" < christoph.b.schwarz@gmail.com>
wrote
> > on
> > > > > 02/25/2007 07:11:40 AM:
> > > > >
> > > > > > hi!
> > > > > >
> > > > > > as far as i understood the standard, metrics and
configurations
> > are
> > > > > > specialized resource properties. how do i specify a resource
> > property
> > > > to
> > > > > be
> > > > > > a metric or configuration in the wsdl file that is used for
code
> > > > > generation?
> > > > > > and how do i access the meta-information that is attached to a
> > metric
> > > > > (e.g.
> > > > > > lastupdated) from the client side proxy?
> > > > > >
> > > > > > any help appreciated,
> > > > > > christoph
> > > > >
> > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > > > > For additional commands, e-mail: muse-user-help@ws.apache.org
> > > >
> > > > > [attachment "WsResource.wsdl" deleted by Daniel
Jemiolo/Durham/IBM]
> > > > >
> > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > > > > For additional commands, e-mail: muse-user-help@ws.apache.org
> > > >
> > > >
---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > > > For additional commands, e-mail: muse-user-help@ws.apache.org
> > > >
> > > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: muse-user-help@ws.apache.org
> >
> >
---------------------------------------------------------------------
To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-user-help@ws.apache.org
Re: Metric and Configuration
Posted by Christoph Bernhard Schwarz <ch...@gmail.com>.
The workaround for wsdl2java did not work for me, the output as Element
remains the same.
I will definitely check out the 2.2 code, but won't be able to do so until
tomorrow.
Meanwhile, I could not get my initialization right. Within "
MyCapability.java" I added the following code
to initialize the "_MyMetric" Property which is of type "Element":
QName QnMetric = new QName("http://ws.apache.org/muse/test/wsrf",
"MyMetric", "tns");
Element metric = XmlUtils.createElement(QnMetric);
metric.setTextContent("100");
_MyMetric = metric;
The server log shows that the resource is initialized and the code above
executed, but I still get a NullPointerException
afterwards. If I specify an intial value in the RMD file, the resource
starts up allright and the Metric Metadata is generated.
Can you give me an example of how to initialize such an "Element"-type
property correctly, or point me to corresponding documentation?
Another thing that just came to my mind: When is the "LastUpdated" attribute
updated? I mean, since the Metric is read-only for any clients, it has to be
somehow updated on the server side. But seeing the code generated for that
property, how does Muse determine that there has been an update on that
value?
Thanks a lot for your patience with my endless questioning!
Christoph
On 2/27/07, Daniel Jemiolo <da...@us.ibm.com> wrote:
>
> of course, what was I thinking - you do also need the actual Metric types
> in the RMD document as well. luckily you've figured that out. I will be
> sure to add that to the docs I'm creating (JIRA issue MUSE-201).
>
> andrew may correct me, but I don't believe wsdl2java will handle an XSD
> extension without giving you an Element, which is not really what you
> want. you want the integer, and the attributes to be ignored (for the Java
>
> method signature). muse's WSDM implementation will handle adding the
> metric attributes before the values are put on the wire.
>
> the following workaround may work for the moment:
>
> <xsd:element name="MyMetric">
> <xsd:complexType>
> <xsd:sequence>
> <xsd:element name="MyValue" type="xsd:integer"/>
> <xsd:attributeGroup ref="muws2:MetricAttributes"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:element>
>
> this isn't pretty, but may allow wsdl2java to generate code without
> tripping up on the attribute group.
>
> for a better fix, though, please open up a JIRA item to ask for better
> recognition of WSDM Metrics in wsdl2java, so that your original XSD will
> work. please reference your sample in the report.
>
> thanks!
> Dan
>
> P.S. I added a Metrics-specific client to the Muse 2.2 code two days ago -
>
> if you pick up the nightly build, you can find it as
> org.apache.muse.ws.dm.muws.remote.MetricsClient.
>
>
>
> "Christoph Bernhard Schwarz" <christoph.b.schwarz@gmail.com > wrote on
> 02/27/2007 12:52:17 PM:
>
> > I added ".xsd" to the namespace prefix so now Muse recognizes that the
> > property is a metric. (I say it's recognized, because Muse complains, if
>
> I
> > do not add all the metadata required for a metric.)
> >
> > But I still need some help: I now also updated the wsdl file to add the
> > AttributeGroup "muws2:MetricAttributes" to my metric like this:
> >
> > <xsd:element name="MyMetric">
> > <xsd:complexType>
> > <xsd:simpleContent>
> > <xsd:extension base="xsd:integer">
> > <xsd:attributeGroup
> ref="muws2:MetricAttributes"
> > />
> > </xsd:extension>
> > </xsd:simpleContent>
> > </xsd:complexType>
> > </xsd:element>
> >
> > This causes wsdl2java to generate my metric not as integer value, but as
> > Element. As I understand, this now needs to be initialized somehow. Can
> you
> > please give me an example of how to do this? I'm constantly running into
> > NullPointerException at
> >
>
> org.apache.muse.ws.resource.properties.impl.SimpleResourcePropertyCollection
> .
> > getResourceProperty(
> > SimpleResourcePropertyCollection.java:612)
> > after the Resource has been initialized.
> >
> > On 2/26/07, Daniel Jemiolo <da...@us.ibm.com> wrote:
> > >
> > > sorry, I think I made the mistake in my sample RMD XML:
> > >
> > > the namespace for prefix muws2 should be
> > > " http://docs.oasis-open.org/wsdm/muws2-2.xsd" - notice the ".xsd"
> added to
> > >
> > > the end. if you modify the <muws2:Capability/> element by updating the
> > > namespace, it should work - if not, send any trace/error info from
> > > muse.log or your server log to the list and I will try to reproduce.
> > >
> > > for the prefix issue, see the following in our troubleshooting
> section:
> > >
> > >
> > > http://ws.apache.org/muse/docs/2.1.0/manual/troubleshooting/default-
> > namespaces-xerces.html
> > >
> > >
> > > Dan
> > >
> > >
> > > "Christoph Bernhard Schwarz" <ch...@gmail.com> wrote on
> > > 02/26/2007 07:42:25 AM:
> > >
> > > > Hi!
> > > >
> > > > Thank you for the extensive answer. Unfortunately, my problem still
> > > remains:
> > > > I used the wsdl from the 'wsrf' as a starting point, and added one
> > > property
> > > > named 'MyMetric'. I also added the 'CurrentTime' property defined as
> > > required
> > > > by MUWS2 (Adding this property has the wsdl2java tool automatically
> > > generating
> > > > the Metrics-Capability entry in muse.xml). In the .rmd-File I marked
> > > that
> > > > property as Metric, as you described, but with no effect.
> > > > I'm currently using the 2.1.0 binary distribution. The files I
> modified
> > > are
> > > > attached to this mail.
> > > >
> > > > One other thing that I don't quite understand is, that when I want
> to
> > > access a
> > > > resource property by using
> > >
> > > > proxy.getResourceProperty(new QName("MyProperty"));
> > > >
> > > > I get a PropertyNotInSchema - Error. And when I add the namespace
> URI
> > >
> > > > proxy.getResourceProperty(new
> > > QName("http://ws.apache.org/muse/test/wsrf ",
> > > > "MyProperty"));
> > > >
> > > > there is a SAXParseException thrown on the server side
> > > > [Fatal Error] :13:72: Element or attribute do not match QName
> > > production:
> > > > QName::=(NCName':')?NCName.
> > > > ...
> > > >
> > > > So I went ahead and also added the prefix part:
> > >
> > > > proxy.getResourceProperty (new
> > > QName(" http://ws.apache.org/muse/test/wsrf",
> > > > "MyMetric", "myns"));
> > > >
> > > > Now that went OK. It even doesn't matter what I set as prefix. But
> I
> > > guess
> > > > that operation should also be successful without specifying any
> prefix,
> > > > because I saw that normally Muse generates a prefix for all the
> > > namespaces
> > > > (something like pfx0).
> > > >
> > > > Christoph
> > >
> > > > On 2/25/07, Daniel Jemiolo < danjemiolo@us.ibm.com> wrote:
> > > > Hi,
> > > >
> > > > The WSDM Configuration capability does not define any additional
> > > metadata
> > > > that could be associated with properties or operation - right now
> it's
> > > > really just for semantics (so a client can see that your interface
> makes
> > >
> > > > the resource configurable by a remote client).
> > > >
> > > > The WSDM Metrics capability allows you to add metric metadata to
> > > existing
> > > > resource properties. There is some info on the Metrics capability
> here:
> > > >
> > > >
> > > >
> > >
> http://ws.apache.org/muse/docs/2.1.0/manual/capabilities/wsdm-metrics.html
>
> > >
> > > >
> > > > To clarify the instructions on this page, you can add Metrics
> support to
> > > > your resource type using Muse is:
> > > >
> > > > 1. Add the Metrics capability to your <resource-type/> in muse.xml :
> > > >
> > > > <capability>
> > > >
> > > >
> > >
> <capability-uri>http://docs.oasis-open.org/wsdm/muws/capabilities/Metrics
> > > > </capability-uri>
> > > >
> > > >
> > > <java-capability-class>org.apache.muse.ws.dm.muws.impl.SimpleMetrics
> > > </java-
> > > > capability-class>
> > > > </capability>
> > > >
> > > > 2. Make sure you have an RMD (metadata) document for your resource
> > > > properties. You can see an example of RMD usage in the 'wsrf' sample
>
> > > > project.
> > > >
> > > > 3. The <wsrmd:Property/> elements for the properties that you
> consider
> > > to
> > > > be metrics needs the following element underneath it:
> > > >
> > > > <muws2:Capability
> > > > xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2">
> > > http://docs.oasis-open .
> > > > org/wsdm/muws/capabilities/Metrics<muws2:Capability>
> > > >
> > > >
> > > > This will tell Muse that the Metrics capability is associated with
> the
> > > > property. The Metrics capability will create and maintain all of the
> > > > metadata for the property (when you update the property, it will set
> the
> > > > value of "LastUpdated", etc.).
> > > >
> > > > 4. Use the getResourceProperty() method on your generated client to
> get
> > > > the property values in XML form. You can then extract the Metrics
> > > > attributes from them like so:
> > > >
> > > >
> > > > Element[] properties = client.getResourceProperty(new
> > > > QName("MyPropertyName"));
> > > >
> > > > for (int n = 0; n < properties.length; ++n)
> > > > {
> > > > String updateTime =
> properties[n].getAttribute("LastUpdated");
> > > > System.out.println("Last updated on: " + updateTime);
> > > > }
> > > >
> > > >
> > > > Admittedly, Muse could have a more convenient way of getting the
> > > > properties and the metric metadata at the same time (in this system,
>
> you
> > >
> > > > can't use getPropertyAsObject() to get the property values as POJOs
> -
> > > you
> > > > have to get them as XML first). I will create JIRA item for this.
> > > >
> > > > I will also add the above info to the Metrics capability
> documentation.
> > > >
> > > > Dan
> > > >
> > > >
> > > > "Christoph Bernhard Schwarz" < christoph.b.schwarz@gmail.com> wrote
> on
> > > > 02/25/2007 07:11:40 AM:
> > > >
> > > > > hi!
> > > > >
> > > > > as far as i understood the standard, metrics and configurations
> are
> > > > > specialized resource properties. how do i specify a resource
> property
> > > to
> > > > be
> > > > > a metric or configuration in the wsdl file that is used for code
> > > > generation?
> > > > > and how do i access the meta-information that is attached to a
> metric
> > > > (e.g.
> > > > > lastupdated) from the client side proxy?
> > > > >
> > > > > any help appreciated,
> > > > > christoph
> > > >
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > > > For additional commands, e-mail: muse-user-help@ws.apache.org
> > >
> > > > [attachment "WsResource.wsdl" deleted by Daniel Jemiolo/Durham/IBM]
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > > > For additional commands, e-mail: muse-user-help@ws.apache.org
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: muse-user-help@ws.apache.org
> > >
> > >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: muse-user-help@ws.apache.org
>
>
Re: Metric and Configuration
Posted by Daniel Jemiolo <da...@us.ibm.com>.
of course, what was I thinking - you do also need the actual Metric types
in the RMD document as well. luckily you've figured that out. I will be
sure to add that to the docs I'm creating (JIRA issue MUSE-201).
andrew may correct me, but I don't believe wsdl2java will handle an XSD
extension without giving you an Element, which is not really what you
want. you want the integer, and the attributes to be ignored (for the Java
method signature). muse's WSDM implementation will handle adding the
metric attributes before the values are put on the wire.
the following workaround may work for the moment:
<xsd:element name="MyMetric">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="MyValue" type="xsd:integer"/>
<xsd:attributeGroup ref="muws2:MetricAttributes"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
this isn't pretty, but may allow wsdl2java to generate code without
tripping up on the attribute group.
for a better fix, though, please open up a JIRA item to ask for better
recognition of WSDM Metrics in wsdl2java, so that your original XSD will
work. please reference your sample in the report.
thanks!
Dan
P.S. I added a Metrics-specific client to the Muse 2.2 code two days ago -
if you pick up the nightly build, you can find it as
org.apache.muse.ws.dm.muws.remote.MetricsClient.
"Christoph Bernhard Schwarz" <ch...@gmail.com> wrote on
02/27/2007 12:52:17 PM:
> I added ".xsd" to the namespace prefix so now Muse recognizes that the
> property is a metric. (I say it's recognized, because Muse complains, if
I
> do not add all the metadata required for a metric.)
>
> But I still need some help: I now also updated the wsdl file to add the
> AttributeGroup "muws2:MetricAttributes" to my metric like this:
>
> <xsd:element name="MyMetric">
> <xsd:complexType>
> <xsd:simpleContent>
> <xsd:extension base="xsd:integer">
> <xsd:attributeGroup
ref="muws2:MetricAttributes"
> />
> </xsd:extension>
> </xsd:simpleContent>
> </xsd:complexType>
> </xsd:element>
>
> This causes wsdl2java to generate my metric not as integer value, but as
> Element. As I understand, this now needs to be initialized somehow. Can
you
> please give me an example of how to do this? I'm constantly running into
> NullPointerException at
>
org.apache.muse.ws.resource.properties.impl.SimpleResourcePropertyCollection.
> getResourceProperty(
> SimpleResourcePropertyCollection.java:612)
> after the Resource has been initialized.
>
> On 2/26/07, Daniel Jemiolo <da...@us.ibm.com> wrote:
> >
> > sorry, I think I made the mistake in my sample RMD XML:
> >
> > the namespace for prefix muws2 should be
> > "http://docs.oasis-open.org/wsdm/muws2-2.xsd" - notice the ".xsd"
added to
> >
> > the end. if you modify the <muws2:Capability/> element by updating the
> > namespace, it should work - if not, send any trace/error info from
> > muse.log or your server log to the list and I will try to reproduce.
> >
> > for the prefix issue, see the following in our troubleshooting
section:
> >
> >
> > http://ws.apache.org/muse/docs/2.1.0/manual/troubleshooting/default-
> namespaces-xerces.html
> >
> >
> > Dan
> >
> >
> > "Christoph Bernhard Schwarz" <ch...@gmail.com> wrote on
> > 02/26/2007 07:42:25 AM:
> >
> > > Hi!
> > >
> > > Thank you for the extensive answer. Unfortunately, my problem still
> > remains:
> > > I used the wsdl from the 'wsrf' as a starting point, and added one
> > property
> > > named 'MyMetric'. I also added the 'CurrentTime' property defined as
> > required
> > > by MUWS2 (Adding this property has the wsdl2java tool automatically
> > generating
> > > the Metrics-Capability entry in muse.xml). In the .rmd-File I marked
> > that
> > > property as Metric, as you described, but with no effect.
> > > I'm currently using the 2.1.0 binary distribution. The files I
modified
> > are
> > > attached to this mail.
> > >
> > > One other thing that I don't quite understand is, that when I want
to
> > access a
> > > resource property by using
> >
> > > proxy.getResourceProperty(new QName("MyProperty"));
> > >
> > > I get a PropertyNotInSchema - Error. And when I add the namespace
URI
> >
> > > proxy.getResourceProperty(new
> > QName("http://ws.apache.org/muse/test/wsrf ",
> > > "MyProperty"));
> > >
> > > there is a SAXParseException thrown on the server side
> > > [Fatal Error] :13:72: Element or attribute do not match QName
> > production:
> > > QName::=(NCName':')?NCName.
> > > ...
> > >
> > > So I went ahead and also added the prefix part:
> >
> > > proxy.getResourceProperty (new
> > QName("http://ws.apache.org/muse/test/wsrf",
> > > "MyMetric", "myns"));
> > >
> > > Now that went OK. It even doesn't matter what I set as prefix. But
I
> > guess
> > > that operation should also be successful without specifying any
prefix,
> > > because I saw that normally Muse generates a prefix for all the
> > namespaces
> > > (something like pfx0).
> > >
> > > Christoph
> >
> > > On 2/25/07, Daniel Jemiolo < danjemiolo@us.ibm.com> wrote:
> > > Hi,
> > >
> > > The WSDM Configuration capability does not define any additional
> > metadata
> > > that could be associated with properties or operation - right now
it's
> > > really just for semantics (so a client can see that your interface
makes
> >
> > > the resource configurable by a remote client).
> > >
> > > The WSDM Metrics capability allows you to add metric metadata to
> > existing
> > > resource properties. There is some info on the Metrics capability
here:
> > >
> > >
> > >
> >
http://ws.apache.org/muse/docs/2.1.0/manual/capabilities/wsdm-metrics.html
> >
> > >
> > > To clarify the instructions on this page, you can add Metrics
support to
> > > your resource type using Muse is:
> > >
> > > 1. Add the Metrics capability to your <resource-type/> in muse.xml :
> > >
> > > <capability>
> > >
> > >
> >
<capability-uri>http://docs.oasis-open.org/wsdm/muws/capabilities/Metrics
> > > </capability-uri>
> > >
> > >
> > <java-capability-class>org.apache.muse.ws.dm.muws.impl.SimpleMetrics
> > </java-
> > > capability-class>
> > > </capability>
> > >
> > > 2. Make sure you have an RMD (metadata) document for your resource
> > > properties. You can see an example of RMD usage in the 'wsrf' sample
> > > project.
> > >
> > > 3. The <wsrmd:Property/> elements for the properties that you
consider
> > to
> > > be metrics needs the following element underneath it:
> > >
> > > <muws2:Capability
> > > xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2">
> > http://docs.oasis-open .
> > > org/wsdm/muws/capabilities/Metrics<muws2:Capability>
> > >
> > >
> > > This will tell Muse that the Metrics capability is associated with
the
> > > property. The Metrics capability will create and maintain all of the
> > > metadata for the property (when you update the property, it will set
the
> > > value of "LastUpdated", etc.).
> > >
> > > 4. Use the getResourceProperty() method on your generated client to
get
> > > the property values in XML form. You can then extract the Metrics
> > > attributes from them like so:
> > >
> > >
> > > Element[] properties = client.getResourceProperty(new
> > > QName("MyPropertyName"));
> > >
> > > for (int n = 0; n < properties.length; ++n)
> > > {
> > > String updateTime =
properties[n].getAttribute("LastUpdated");
> > > System.out.println("Last updated on: " + updateTime);
> > > }
> > >
> > >
> > > Admittedly, Muse could have a more convenient way of getting the
> > > properties and the metric metadata at the same time (in this system,
you
> >
> > > can't use getPropertyAsObject() to get the property values as POJOs
-
> > you
> > > have to get them as XML first). I will create JIRA item for this.
> > >
> > > I will also add the above info to the Metrics capability
documentation.
> > >
> > > Dan
> > >
> > >
> > > "Christoph Bernhard Schwarz" < christoph.b.schwarz@gmail.com> wrote
on
> > > 02/25/2007 07:11:40 AM:
> > >
> > > > hi!
> > > >
> > > > as far as i understood the standard, metrics and configurations
are
> > > > specialized resource properties. how do i specify a resource
property
> > to
> > > be
> > > > a metric or configuration in the wsdl file that is used for code
> > > generation?
> > > > and how do i access the meta-information that is attached to a
metric
> > > (e.g.
> > > > lastupdated) from the client side proxy?
> > > >
> > > > any help appreciated,
> > > > christoph
> > >
> > >
> > >
---------------------------------------------------------------------
> > > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: muse-user-help@ws.apache.org
> >
> > > [attachment "WsResource.wsdl" deleted by Daniel Jemiolo/Durham/IBM]
> > >
---------------------------------------------------------------------
> > > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > > For additional commands, e-mail: muse-user-help@ws.apache.org
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: muse-user-help@ws.apache.org
> >
> >
---------------------------------------------------------------------
To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-user-help@ws.apache.org
Re: Metric and Configuration
Posted by Christoph Bernhard Schwarz <ch...@gmail.com>.
I added ".xsd" to the namespace prefix so now Muse recognizes that the
property is a metric. (I say it's recognized, because Muse complains, if I
do not add all the metadata required for a metric.)
But I still need some help: I now also updated the wsdl file to add the
AttributeGroup "muws2:MetricAttributes" to my metric like this:
<xsd:element name="MyMetric">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:integer">
<xsd:attributeGroup ref="muws2:MetricAttributes"
/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
This causes wsdl2java to generate my metric not as integer value, but as
Element. As I understand, this now needs to be initialized somehow. Can you
please give me an example of how to do this? I'm constantly running into
NullPointerException at
org.apache.muse.ws.resource.properties.impl.SimpleResourcePropertyCollection.getResourceProperty(
SimpleResourcePropertyCollection.java:612)
after the Resource has been initialized.
On 2/26/07, Daniel Jemiolo <da...@us.ibm.com> wrote:
>
> sorry, I think I made the mistake in my sample RMD XML:
>
> the namespace for prefix muws2 should be
> "http://docs.oasis-open.org/wsdm/muws2-2.xsd" - notice the ".xsd" added to
>
> the end. if you modify the <muws2:Capability/> element by updating the
> namespace, it should work - if not, send any trace/error info from
> muse.log or your server log to the list and I will try to reproduce.
>
> for the prefix issue, see the following in our troubleshooting section:
>
>
> http://ws.apache.org/muse/docs/2.1.0/manual/troubleshooting/default-namespaces-xerces.html
>
>
> Dan
>
>
> "Christoph Bernhard Schwarz" <ch...@gmail.com> wrote on
> 02/26/2007 07:42:25 AM:
>
> > Hi!
> >
> > Thank you for the extensive answer. Unfortunately, my problem still
> remains:
> > I used the wsdl from the 'wsrf' as a starting point, and added one
> property
> > named 'MyMetric'. I also added the 'CurrentTime' property defined as
> required
> > by MUWS2 (Adding this property has the wsdl2java tool automatically
> generating
> > the Metrics-Capability entry in muse.xml). In the .rmd-File I marked
> that
> > property as Metric, as you described, but with no effect.
> > I'm currently using the 2.1.0 binary distribution. The files I modified
> are
> > attached to this mail.
> >
> > One other thing that I don't quite understand is, that when I want to
> access a
> > resource property by using
>
> > proxy.getResourceProperty(new QName("MyProperty"));
> >
> > I get a PropertyNotInSchema - Error. And when I add the namespace URI
>
> > proxy.getResourceProperty(new
> QName("http://ws.apache.org/muse/test/wsrf ",
> > "MyProperty"));
> >
> > there is a SAXParseException thrown on the server side
> > [Fatal Error] :13:72: Element or attribute do not match QName
> production:
> > QName::=(NCName':')?NCName.
> > ...
> >
> > So I went ahead and also added the prefix part:
>
> > proxy.getResourceProperty (new
> QName("http://ws.apache.org/muse/test/wsrf",
> > "MyMetric", "myns"));
> >
> > Now that went OK. It even doesn't matter what I set as prefix. But I
> guess
> > that operation should also be successful without specifying any prefix,
> > because I saw that normally Muse generates a prefix for all the
> namespaces
> > (something like pfx0).
> >
> > Christoph
>
> > On 2/25/07, Daniel Jemiolo < danjemiolo@us.ibm.com> wrote:
> > Hi,
> >
> > The WSDM Configuration capability does not define any additional
> metadata
> > that could be associated with properties or operation - right now it's
> > really just for semantics (so a client can see that your interface makes
>
> > the resource configurable by a remote client).
> >
> > The WSDM Metrics capability allows you to add metric metadata to
> existing
> > resource properties. There is some info on the Metrics capability here:
> >
> >
> >
> http://ws.apache.org/muse/docs/2.1.0/manual/capabilities/wsdm-metrics.html
>
> >
> > To clarify the instructions on this page, you can add Metrics support to
> > your resource type using Muse is:
> >
> > 1. Add the Metrics capability to your <resource-type/> in muse.xml :
> >
> > <capability>
> >
> >
> <capability-uri>http://docs.oasis-open.org/wsdm/muws/capabilities/Metrics
> > </capability-uri>
> >
> >
> <java-capability-class>org.apache.muse.ws.dm.muws.impl.SimpleMetrics
> </java-
> > capability-class>
> > </capability>
> >
> > 2. Make sure you have an RMD (metadata) document for your resource
> > properties. You can see an example of RMD usage in the 'wsrf' sample
> > project.
> >
> > 3. The <wsrmd:Property/> elements for the properties that you consider
> to
> > be metrics needs the following element underneath it:
> >
> > <muws2:Capability
> > xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2">
> http://docs.oasis-open .
> > org/wsdm/muws/capabilities/Metrics<muws2:Capability>
> >
> >
> > This will tell Muse that the Metrics capability is associated with the
> > property. The Metrics capability will create and maintain all of the
> > metadata for the property (when you update the property, it will set the
> > value of "LastUpdated", etc.).
> >
> > 4. Use the getResourceProperty() method on your generated client to get
> > the property values in XML form. You can then extract the Metrics
> > attributes from them like so:
> >
> >
> > Element[] properties = client.getResourceProperty(new
> > QName("MyPropertyName"));
> >
> > for (int n = 0; n < properties.length; ++n)
> > {
> > String updateTime = properties[n].getAttribute("LastUpdated");
> > System.out.println("Last updated on: " + updateTime);
> > }
> >
> >
> > Admittedly, Muse could have a more convenient way of getting the
> > properties and the metric metadata at the same time (in this system, you
>
> > can't use getPropertyAsObject() to get the property values as POJOs -
> you
> > have to get them as XML first). I will create JIRA item for this.
> >
> > I will also add the above info to the Metrics capability documentation.
> >
> > Dan
> >
> >
> > "Christoph Bernhard Schwarz" < christoph.b.schwarz@gmail.com> wrote on
> > 02/25/2007 07:11:40 AM:
> >
> > > hi!
> > >
> > > as far as i understood the standard, metrics and configurations are
> > > specialized resource properties. how do i specify a resource property
> to
> > be
> > > a metric or configuration in the wsdl file that is used for code
> > generation?
> > > and how do i access the meta-information that is attached to a metric
> > (e.g.
> > > lastupdated) from the client side proxy?
> > >
> > > any help appreciated,
> > > christoph
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: muse-user-help@ws.apache.org
>
> > [attachment "WsResource.wsdl" deleted by Daniel Jemiolo/Durham/IBM]
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: muse-user-help@ws.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: muse-user-help@ws.apache.org
>
>
Re: Metric and Configuration
Posted by Daniel Jemiolo <da...@us.ibm.com>.
sorry, I think I made the mistake in my sample RMD XML:
the namespace for prefix muws2 should be
"http://docs.oasis-open.org/wsdm/muws2-2.xsd" - notice the ".xsd" added to
the end. if you modify the <muws2:Capability/> element by updating the
namespace, it should work - if not, send any trace/error info from
muse.log or your server log to the list and I will try to reproduce.
for the prefix issue, see the following in our troubleshooting section:
http://ws.apache.org/muse/docs/2.1.0/manual/troubleshooting/default-namespaces-xerces.html
Dan
"Christoph Bernhard Schwarz" <ch...@gmail.com> wrote on
02/26/2007 07:42:25 AM:
> Hi!
>
> Thank you for the extensive answer. Unfortunately, my problem still
remains:
> I used the wsdl from the 'wsrf' as a starting point, and added one
property
> named 'MyMetric'. I also added the 'CurrentTime' property defined as
required
> by MUWS2 (Adding this property has the wsdl2java tool automatically
generating
> the Metrics-Capability entry in muse.xml). In the .rmd-File I marked
that
> property as Metric, as you described, but with no effect.
> I'm currently using the 2.1.0 binary distribution. The files I modified
are
> attached to this mail.
>
> One other thing that I don't quite understand is, that when I want to
access a
> resource property by using
> proxy.getResourceProperty(new QName("MyProperty"));
>
> I get a PropertyNotInSchema - Error. And when I add the namespace URI
> proxy.getResourceProperty(new
QName("http://ws.apache.org/muse/test/wsrf",
> "MyProperty"));
>
> there is a SAXParseException thrown on the server side
> [Fatal Error] :13:72: Element or attribute do not match QName
production:
> QName::=(NCName':')?NCName.
> ...
>
> So I went ahead and also added the prefix part:
> proxy.getResourceProperty (new
QName("http://ws.apache.org/muse/test/wsrf",
> "MyMetric", "myns"));
>
> Now that went OK. It even doesn't matter what I set as prefix. But I
guess
> that operation should also be successful without specifying any prefix,
> because I saw that normally Muse generates a prefix for all the
namespaces
> (something like pfx0).
>
> Christoph
> On 2/25/07, Daniel Jemiolo <da...@us.ibm.com> wrote:
> Hi,
>
> The WSDM Configuration capability does not define any additional
metadata
> that could be associated with properties or operation - right now it's
> really just for semantics (so a client can see that your interface makes
> the resource configurable by a remote client).
>
> The WSDM Metrics capability allows you to add metric metadata to
existing
> resource properties. There is some info on the Metrics capability here:
>
>
>
http://ws.apache.org/muse/docs/2.1.0/manual/capabilities/wsdm-metrics.html
>
> To clarify the instructions on this page, you can add Metrics support to
> your resource type using Muse is:
>
> 1. Add the Metrics capability to your <resource-type/> in muse.xml:
>
> <capability>
>
>
<capability-uri>http://docs.oasis-open.org/wsdm/muws/capabilities/Metrics
> </capability-uri>
>
>
<java-capability-class>org.apache.muse.ws.dm.muws.impl.SimpleMetrics</java-
> capability-class>
> </capability>
>
> 2. Make sure you have an RMD (metadata) document for your resource
> properties. You can see an example of RMD usage in the 'wsrf' sample
> project.
>
> 3. The <wsrmd:Property/> elements for the properties that you consider
to
> be metrics needs the following element underneath it:
>
> <muws2:Capability
> xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2">
http://docs.oasis-open.
> org/wsdm/muws/capabilities/Metrics<muws2:Capability>
>
>
> This will tell Muse that the Metrics capability is associated with the
> property. The Metrics capability will create and maintain all of the
> metadata for the property (when you update the property, it will set the
> value of "LastUpdated", etc.).
>
> 4. Use the getResourceProperty() method on your generated client to get
> the property values in XML form. You can then extract the Metrics
> attributes from them like so:
>
>
> Element[] properties = client.getResourceProperty(new
> QName("MyPropertyName"));
>
> for (int n = 0; n < properties.length; ++n)
> {
> String updateTime = properties[n].getAttribute("LastUpdated");
> System.out.println("Last updated on: " + updateTime);
> }
>
>
> Admittedly, Muse could have a more convenient way of getting the
> properties and the metric metadata at the same time (in this system, you
> can't use getPropertyAsObject() to get the property values as POJOs -
you
> have to get them as XML first). I will create JIRA item for this.
>
> I will also add the above info to the Metrics capability documentation.
>
> Dan
>
>
> "Christoph Bernhard Schwarz" <ch...@gmail.com> wrote on
> 02/25/2007 07:11:40 AM:
>
> > hi!
> >
> > as far as i understood the standard, metrics and configurations are
> > specialized resource properties. how do i specify a resource property
to
> be
> > a metric or configuration in the wsdl file that is used for code
> generation?
> > and how do i access the meta-information that is attached to a metric
> (e.g.
> > lastupdated) from the client side proxy?
> >
> > any help appreciated,
> > christoph
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: muse-user-help@ws.apache.org
> [attachment "WsResource.wsdl" deleted by Daniel Jemiolo/Durham/IBM]
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: muse-user-help@ws.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-user-help@ws.apache.org
Re: Metric and Configuration
Posted by Christoph Bernhard Schwarz <ch...@gmail.com>.
Hi!
Thank you for the extensive answer. Unfortunately, my problem still remains:
I used the wsdl from the 'wsrf' as a starting point, and added one property
named 'MyMetric'. I also added the 'CurrentTime' property defined as
required by MUWS2 (Adding this property has the wsdl2java tool automatically
generating the Metrics-Capability entry in muse.xml). In the .rmd-File I
marked that property as Metric, as you described, but with no effect.
I'm currently using the 2.1.0 binary distribution. The files I modified are
attached to this mail.
One other thing that I don't quite understand is, that when I want to access
a resource property by using
proxy.getResourceProperty(new QName("MyProperty"));
I get a PropertyNotInSchema - Error. And when I add the namespace URI
proxy.getResourceProperty(new QName("http://ws.apache.org/muse/test/wsrf",
"MyProperty"));
there is a SAXParseException thrown on the server side
[Fatal Error] :13:72: Element or attribute do not match QName production:
QName::=(NCName':')?NCName.
...
So I went ahead and also added the prefix part:
proxy.getResourceProperty(new QName("http://ws.apache.org/muse/test/wsrf",
"MyMetric", "myns"));
Now that went OK. It even doesn't matter what I set as prefix. But I guess
that operation should also be successful without specifying any prefix,
because I saw that normally Muse generates a prefix for all the namespaces
(something like pfx0).
Christoph
On 2/25/07, Daniel Jemiolo <da...@us.ibm.com> wrote:
>
> Hi,
>
> The WSDM Configuration capability does not define any additional metadata
> that could be associated with properties or operation - right now it's
> really just for semantics (so a client can see that your interface makes
> the resource configurable by a remote client).
>
> The WSDM Metrics capability allows you to add metric metadata to existing
> resource properties. There is some info on the Metrics capability here:
>
>
> http://ws.apache.org/muse/docs/2.1.0/manual/capabilities/wsdm-metrics.html
>
> To clarify the instructions on this page, you can add Metrics support to
> your resource type using Muse is:
>
> 1. Add the Metrics capability to your <resource-type/> in muse.xml:
>
> <capability>
>
> <capability-uri>http://docs.oasis-open.org/wsdm/muws/capabilities/Metrics
> </capability-uri>
>
> <java-capability-class>org.apache.muse.ws.dm.muws.impl.SimpleMetrics
> </java-capability-class>
> </capability>
>
> 2. Make sure you have an RMD (metadata) document for your resource
> properties. You can see an example of RMD usage in the 'wsrf' sample
> project.
>
> 3. The <wsrmd:Property/> elements for the properties that you consider to
> be metrics needs the following element underneath it:
>
> <muws2:Capability
> xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2">
> http://docs.oasis-open.org/wsdm/muws/capabilities/Metrics
> <muws2:Capability>
>
>
> This will tell Muse that the Metrics capability is associated with the
> property. The Metrics capability will create and maintain all of the
> metadata for the property (when you update the property, it will set the
> value of "LastUpdated", etc.).
>
> 4. Use the getResourceProperty() method on your generated client to get
> the property values in XML form. You can then extract the Metrics
> attributes from them like so:
>
>
> Element[] properties = client.getResourceProperty(new
> QName("MyPropertyName"));
>
> for (int n = 0; n < properties.length; ++n)
> {
> String updateTime = properties[n].getAttribute("LastUpdated");
> System.out.println("Last updated on: " + updateTime);
> }
>
>
> Admittedly, Muse could have a more convenient way of getting the
> properties and the metric metadata at the same time (in this system, you
> can't use getPropertyAsObject() to get the property values as POJOs - you
> have to get them as XML first). I will create JIRA item for this.
>
> I will also add the above info to the Metrics capability documentation.
>
> Dan
>
>
> "Christoph Bernhard Schwarz" <ch...@gmail.com> wrote on
> 02/25/2007 07:11:40 AM:
>
> > hi!
> >
> > as far as i understood the standard, metrics and configurations are
> > specialized resource properties. how do i specify a resource property to
> be
> > a metric or configuration in the wsdl file that is used for code
> generation?
> > and how do i access the meta-information that is attached to a metric
> (e.g.
> > lastupdated) from the client side proxy?
> >
> > any help appreciated,
> > christoph
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: muse-user-help@ws.apache.org
>
>
Re: Metric and Configuration
Posted by Daniel Jemiolo <da...@us.ibm.com>.
Hi,
The WSDM Configuration capability does not define any additional metadata
that could be associated with properties or operation - right now it's
really just for semantics (so a client can see that your interface makes
the resource configurable by a remote client).
The WSDM Metrics capability allows you to add metric metadata to existing
resource properties. There is some info on the Metrics capability here:
http://ws.apache.org/muse/docs/2.1.0/manual/capabilities/wsdm-metrics.html
To clarify the instructions on this page, you can add Metrics support to
your resource type using Muse is:
1. Add the Metrics capability to your <resource-type/> in muse.xml:
<capability>
<capability-uri>http://docs.oasis-open.org/wsdm/muws/capabilities/Metrics</capability-uri>
<java-capability-class>org.apache.muse.ws.dm.muws.impl.SimpleMetrics</java-capability-class>
</capability>
2. Make sure you have an RMD (metadata) document for your resource
properties. You can see an example of RMD usage in the 'wsrf' sample
project.
3. The <wsrmd:Property/> elements for the properties that you consider to
be metrics needs the following element underneath it:
<muws2:Capability
xmlns:muws2="http://docs.oasis-open.org/wsdm/muws2-2">http://docs.oasis-open.org/wsdm/muws/capabilities/Metrics<muws2:Capability>
This will tell Muse that the Metrics capability is associated with the
property. The Metrics capability will create and maintain all of the
metadata for the property (when you update the property, it will set the
value of "LastUpdated", etc.).
4. Use the getResourceProperty() method on your generated client to get
the property values in XML form. You can then extract the Metrics
attributes from them like so:
Element[] properties = client.getResourceProperty(new
QName("MyPropertyName"));
for (int n = 0; n < properties.length; ++n)
{
String updateTime = properties[n].getAttribute("LastUpdated");
System.out.println("Last updated on: " + updateTime);
}
Admittedly, Muse could have a more convenient way of getting the
properties and the metric metadata at the same time (in this system, you
can't use getPropertyAsObject() to get the property values as POJOs - you
have to get them as XML first). I will create JIRA item for this.
I will also add the above info to the Metrics capability documentation.
Dan
"Christoph Bernhard Schwarz" <ch...@gmail.com> wrote on
02/25/2007 07:11:40 AM:
> hi!
>
> as far as i understood the standard, metrics and configurations are
> specialized resource properties. how do i specify a resource property to
be
> a metric or configuration in the wsdl file that is used for code
generation?
> and how do i access the meta-information that is attached to a metric
(e.g.
> lastupdated) from the client side proxy?
>
> any help appreciated,
> christoph
---------------------------------------------------------------------
To unsubscribe, e-mail: muse-user-unsubscribe@ws.apache.org
For additional commands, e-mail: muse-user-help@ws.apache.org