com.sun.ws.management.metadata.annotations
Class AnnotationProcessor

java.lang.Object
  extended by com.sun.ws.management.metadata.annotations.AnnotationProcessor

public class AnnotationProcessor
extends java.lang.Object

This class is responsible for processing Wiseman-annotated code to populate information on how to contact these handler/endpoints.

Author:
Simeon

Nested Class Summary
static class AnnotationProcessor.MetadataNamepaceContext
           
 
Field Summary
static javax.xml.namespace.QName[] DESCRIPTIVE_METADATA_ELEMENTS
           
static javax.xml.namespace.QName ENUMERATION_ACCESS_RECIPE
           
static javax.xml.namespace.QName ENUMERATION_FILTER_USAGE
           
static ObjectFactory envFactory
           
static javax.xml.namespace.QName META_DATA_CATEGORY
           
static javax.xml.namespace.QName META_DATA_DESCRIPTION
           
static javax.xml.namespace.QName META_DATA_ENABLED
           
static javax.xml.namespace.QName META_DATA_RESOURCE_URI
           
static javax.xml.namespace.QName META_DATA_TO
           
static java.lang.String NO_ACTION_NECESSARY
           
static java.lang.String NS_PREFIX
           
static java.lang.String NS_URI
           
static javax.xml.namespace.QName RESOURCE_META_DATA_UID
           
static javax.xml.namespace.QName RESOURCE_MISC_INFO
           
 
Constructor Summary
AnnotationProcessor()
           
 
Method Summary
static java.util.List<Management> extractMetaDataFromEnumerationMessage(java.util.List<EnumerationItem> items)
           
static Management findAnnotatedResourceByUID(java.lang.String metaUidForAnnotatedResource, java.lang.String wisemanServer)
          Method automates the task of locating the MetaData information for a single annotated resource.
static Management findAnnotatedResourceByUID(java.lang.String metaUidForAnnotatedResource, java.lang.String wisemanServer, boolean emptyPayload, javax.xml.namespace.QName... headersToPrune)
          Method automates the task of locating the MetaData information for a single annotated resource.
static javax.xml.namespace.NamespaceContext getMetaDataNamespaceContext()
          Returns a NameSpaceContext for XPath processing that knows how to parse metadata env/wsmeta prefixed nodes.
static boolean isDescriptiveMetadataElement(javax.xml.namespace.QName elementQName)
          Returns boolean evaluation of whether this QNAME is part of the additional/ descriptive MetaData QNames/Nodes added to a Managment instance.
static java.util.Vector<java.lang.annotation.Annotation> populateAnnotationsFromClass(java.lang.Class element)
           
static Management populateManagementInstance(WsManagementDefaultAddressingModelAnnotation defAddMod)
          Method takes a defaultAddressingModelAnnotation instance and places all of the values into a Management instance.
static Management populateManagementInstance(WsManagementEnumerationAnnotation enumSrc)
          Method takes a defaultAddressingModelAnnotation instance and places all of the values into a Management instance.
static Metadata populateMetaDataElement(Metadata metaElement, Management element)
           
static Management populateMetadataInformation(MetadataSection section, Management instance)
           
static javax.xml.namespace.QName populateNode(com.sun.org.apache.xerces.internal.dom.ElementNSImpl e)
           
static Management stripMetadataContent(Management existing, boolean removeMetadataBody, javax.xml.namespace.QName... headersToPrune)
          Remove all metadata-ONLY elements.
static java.lang.String xmlToString(org.w3c.dom.Node node)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

NS_PREFIX

public static final java.lang.String NS_PREFIX
See Also:
Constant Field Values

NS_URI

public static final java.lang.String NS_URI
See Also:
Constant Field Values

META_DATA_CATEGORY

public static final javax.xml.namespace.QName META_DATA_CATEGORY

META_DATA_DESCRIPTION

public static final javax.xml.namespace.QName META_DATA_DESCRIPTION

META_DATA_TO

public static final javax.xml.namespace.QName META_DATA_TO

META_DATA_ENABLED

public static final javax.xml.namespace.QName META_DATA_ENABLED

META_DATA_RESOURCE_URI

public static final javax.xml.namespace.QName META_DATA_RESOURCE_URI

RESOURCE_META_DATA_UID

public static final javax.xml.namespace.QName RESOURCE_META_DATA_UID

RESOURCE_MISC_INFO

public static final javax.xml.namespace.QName RESOURCE_MISC_INFO

ENUMERATION_ACCESS_RECIPE

public static final javax.xml.namespace.QName ENUMERATION_ACCESS_RECIPE

ENUMERATION_FILTER_USAGE

public static final javax.xml.namespace.QName ENUMERATION_FILTER_USAGE

DESCRIPTIVE_METADATA_ELEMENTS

public static final javax.xml.namespace.QName[] DESCRIPTIVE_METADATA_ELEMENTS

NO_ACTION_NECESSARY

public static final java.lang.String NO_ACTION_NECESSARY
See Also:
Constant Field Values

envFactory

public static ObjectFactory envFactory
Constructor Detail

AnnotationProcessor

public AnnotationProcessor()
Method Detail

populateManagementInstance

public static Management populateManagementInstance(WsManagementDefaultAddressingModelAnnotation defAddMod)
                                             throws javax.xml.bind.JAXBException,
                                                    javax.xml.soap.SOAPException
Method takes a defaultAddressingModelAnnotation instance and places all of the values into a Management instance.

Parameters:
defAddMod - is the annotation instance.
Returns:
Management instance with all of the properties for a resource using the defaultAddressingModel.
Throws:
javax.xml.bind.JAXBException
javax.xml.soap.SOAPException

populateManagementInstance

public static Management populateManagementInstance(WsManagementEnumerationAnnotation enumSrc)
                                             throws javax.xml.bind.JAXBException,
                                                    javax.xml.soap.SOAPException
Method takes a defaultAddressingModelAnnotation instance and places all of the values into a Management instance.

Parameters:
enumSrc - is the annotation instance.
Returns:
Management instance with all of the properties for a resource using the defaultAddressingModel.
Throws:
javax.xml.bind.JAXBException
javax.xml.soap.SOAPException

populateAnnotationsFromClass

public static java.util.Vector<java.lang.annotation.Annotation> populateAnnotationsFromClass(java.lang.Class element)

populateMetadataInformation

public static Management populateMetadataInformation(MetadataSection section,
                                                     Management instance)
                                              throws javax.xml.bind.JAXBException,
                                                     javax.xml.soap.SOAPException
Parameters:
section -
instance -
Throws:
javax.xml.bind.JAXBException
javax.xml.soap.SOAPException

populateNode

public static javax.xml.namespace.QName populateNode(com.sun.org.apache.xerces.internal.dom.ElementNSImpl e)

populateMetaDataElement

public static Metadata populateMetaDataElement(Metadata metaElement,
                                               Management element)
                                        throws javax.xml.bind.JAXBException,
                                               javax.xml.soap.SOAPException
Parameters:
metaElement -
element -
Throws:
javax.xml.bind.JAXBException
javax.xml.soap.SOAPException

xmlToString

public static java.lang.String xmlToString(org.w3c.dom.Node node)

extractMetaDataFromEnumerationMessage

public static java.util.List<Management> extractMetaDataFromEnumerationMessage(java.util.List<EnumerationItem> items)
                                                                        throws javax.xml.soap.SOAPException,
                                                                               javax.xml.bind.JAXBException
Throws:
javax.xml.soap.SOAPException
javax.xml.bind.JAXBException

findAnnotatedResourceByUID

public static Management findAnnotatedResourceByUID(java.lang.String metaUidForAnnotatedResource,
                                                    java.lang.String wisemanServer,
                                                    boolean emptyPayload,
                                                    javax.xml.namespace.QName... headersToPrune)
                                             throws javax.xml.soap.SOAPException,
                                                    javax.xml.bind.JAXBException,
                                                    javax.xml.datatype.DatatypeConfigurationException,
                                                    java.io.IOException
Method automates the task of locating the MetaData information for a single annotated resource. The metaUidForAnnotatedResource is the UID field(wsmeta:ResourceMetaDataUID) for a known Resource intance. This may be known or discovered before submission. The returned MetaData/Management instance has all of the fields for locating/specifying a handler prepopulated. Steps taken to extract this data: i)Contact the Wiseman server passed in via identify to wisemanServer parameter. ii)Parse the Identify response to locate the metadata handler details iii)Submit optimized enumerate request filtering on the wsmeta:ResourceMetaDataUID field. iv)Convert the returned values back to Management instance v) Return that prepopulated Management message.

Parameters:
metaUidForAnnotatedResource - Ex. http://wiseman.dev.java.net/EventSource/eventcreator/uid-20000747652
wisemanServer - Ex. http://localhost:8080/wsman/
emptyPayload - Ex. true
Returns:
Management object
Throws:
javax.xml.soap.SOAPException
java.io.IOException
javax.xml.datatype.DatatypeConfigurationException
javax.xml.bind.JAXBException

findAnnotatedResourceByUID

public static Management findAnnotatedResourceByUID(java.lang.String metaUidForAnnotatedResource,
                                                    java.lang.String wisemanServer)
                                             throws javax.xml.soap.SOAPException,
                                                    javax.xml.bind.JAXBException,
                                                    javax.xml.datatype.DatatypeConfigurationException,
                                                    java.io.IOException
Method automates the task of locating the MetaData information for a single annotated resource. The metaUidForAnnotatedResource is the UID field(wsmeta:ResourceMetaDataUID) for a known Resource intance. This may be known or discovered before submission. The returned MetaData/Management instance has all of the fields for locating/specifying a handler prepopulated. Steps taken to extract this data: i)Contact the Wiseman server passed in via identify to wisemanServer parameter. ii)Parse the Identify response to locate the metadata handler details iii)Submit optimized enumerate request filtering on the wsmeta:ResourceMetaDataUID field. iv)Convert the returned values back to Management instance v) Return that prepopulated Management message.

Parameters:
metaUidForAnnotatedResource - Ex. http://wiseman.dev.java.net/EventSource/eventcreator/uid-20000747652
wisemanServer - Ex. http://localhost:8080/wsman/
Returns:
management object
Throws:
javax.xml.soap.SOAPException
javax.xml.bind.JAXBException
javax.xml.datatype.DatatypeConfigurationException
java.io.IOException

getMetaDataNamespaceContext

public static javax.xml.namespace.NamespaceContext getMetaDataNamespaceContext()
Returns a NameSpaceContext for XPath processing that knows how to parse metadata env/wsmeta prefixed nodes.

Returns:
NamespaceContext as described above.

stripMetadataContent

public static Management stripMetadataContent(Management existing,
                                              boolean removeMetadataBody,
                                              javax.xml.namespace.QName... headersToPrune)
                                       throws javax.xml.soap.SOAPException
Remove all metadata-ONLY elements.

Parameters:
existing -
removeMetadataBody - TODO
Returns:
Management object
Throws:
javax.xml.soap.SOAPException

isDescriptiveMetadataElement

public static boolean isDescriptiveMetadataElement(javax.xml.namespace.QName elementQName)
Returns boolean evaluation of whether this QNAME is part of the additional/ descriptive MetaData QNames/Nodes added to a Managment instance. Addressing.TO or Management.ResourceURI are example of non-descriptive and core elements.

Parameters:
elementQName -
Returns:
boolean indicating if this is a DescriptiveMetadataElement