You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsrf-dev@ws.apache.org by ip...@apache.org on 2005/02/15 20:41:18 UTC

svn commit: r153948 - in incubator/apollo/trunk/src/java/org/apache/ws: resource/ resource/impl/ resource/properties/impl/ util/

Author: ips
Date: Tue Feb 15 11:41:05 2005
New Revision: 153948

URL: http://svn.apache.org/viewcvs?view=rev&rev=153948
Log:
finished adding basic support for WS-RMD

Modified:
    incubator/apollo/trunk/src/java/org/apache/ws/resource/InvalidWsrfWsdlException.java
    incubator/apollo/trunk/src/java/org/apache/ws/resource/ResourceCapability.java
    incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java
    incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourceProperty.java
    incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java
    incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertySet.java
    incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertySetMetaData.java
    incubator/apollo/trunk/src/java/org/apache/ws/util/WsdlUtils.java
    incubator/apollo/trunk/src/java/org/apache/ws/util/WsrfWsdlUtils.java

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/InvalidWsrfWsdlException.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/InvalidWsrfWsdlException.java?view=diff&r1=153947&r2=153948
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/InvalidWsrfWsdlException.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/InvalidWsrfWsdlException.java Tue Feb 15 11:41:05 2005
@@ -16,7 +16,7 @@
 package org.apache.ws.resource;
 
 /**
- * TODO
+ * Indicates a semantic error was found while validating a WSRF WSDL.
  *
  * @author Ian P. Springer (Hewlett-Packard Company)
  */

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/ResourceCapability.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/ResourceCapability.java?view=diff&r1=153947&r2=153948
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/ResourceCapability.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/ResourceCapability.java Tue Feb 15 11:41:05 2005
@@ -19,6 +19,7 @@
 import javax.wsdl.PortType;
 import javax.xml.namespace.QName;
 import java.util.Map;
+import java.net.URL;
 
 /**
  * A WSRF resource capability (i.e. set of operations and properties).
@@ -90,5 +91,23 @@
      * @return
      */
     QName getPropertiesDocumentName();
-    
+
+    /**
+     * Returns the name of the WS-RMD metadata descriptor, as specified by
+     * the wsrmd:MetadataDescriptor attribute on the portType, or null if this
+     * resource does not define a metadata descriptor.
+     *
+     * @return
+     */
+    QName getMetadataDescriptorName();
+
+    /**
+     * Returns the location of the WS-RMD metadata definitions document, as specified by
+     * the wsrmd:MetadataDescriptorLocation attribute on the portType, or null if this
+     * resource does not define a metadata descriptor.
+     *
+     * @return
+     */
+    String getMetadataDescriptorLocation();
+
 }

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java?view=diff&r1=153947&r2=153948
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/impl/ResourceCapabilityImpl.java Tue Feb 15 11:41:05 2005
@@ -17,11 +17,10 @@
 
 import org.apache.ws.resource.InvalidWsrfWsdlException;
 import org.apache.ws.resource.ResourceCapability;
-import org.apache.ws.resource.properties.v1_2.ResourceProperties1_2Constants;
-import org.apache.ws.resource.properties.v1_2.porttype.GetResourcePropertyPortType;
 import org.apache.ws.resource.properties.v1_2.porttype.GetMultipleResourcePropertiesPortType;
-import org.apache.ws.resource.properties.v1_2.porttype.SetResourcePropertiesPortType;
+import org.apache.ws.resource.properties.v1_2.porttype.GetResourcePropertyPortType;
 import org.apache.ws.resource.properties.v1_2.porttype.QueryResourcePropertiesPortType;
+import org.apache.ws.resource.properties.v1_2.porttype.SetResourcePropertiesPortType;
 import org.apache.ws.resource.properties.v1_3.ResourceProperties1_3Constants;
 import org.apache.ws.util.WsdlUtils;
 import org.apache.ws.util.WsrfWsdlUtils;
@@ -58,6 +57,8 @@
     private String[] m_customOpNames;
     private QName[] m_customPropNames;
     private QName m_propsDocName;
+    private String m_metadataDescLocation;
+    private QName m_metadataDescName;
 
     /**
      * Creates a new {@link ResourceCapabilityImpl} based on the specified JWSDL definition and portType.
@@ -71,6 +72,8 @@
         initImplementedPortTypes();
         initCustomOperations();
         initPropertyNames();
+        m_metadataDescName = WsrfWsdlUtils.getMetadataDescriptorName( m_portType );
+        m_metadataDescLocation = WsrfWsdlUtils.getMetadataDescriptorLocation( m_portType );
         if ( !m_def.getTargetNamespace().startsWith( "http://docs.oasis-open.org/" ) )
         {
             validateOperations();
@@ -99,14 +102,19 @@
                 }
                 if ( !missingPropNames.isEmpty() )
                 {
-                    System.err.println( "PortType implements the operations from the " + def.getPortType().getQName() + " portType but does not define the following required properties: " + missingPropNames );
+                    System.err.println(
+                            "PortType implements the operations from the " + def.getPortType().getQName() +
+                            " portType but does not define the following required properties: " +
+                            missingPropNames );
                     isValid = false;
                 }
             }
         }
         if ( !isValid )
         {
-            throw new InvalidWsrfWsdlException( "PortType " + m_portType.getQName() + " does not define one or more properties required by the portTypes it implements." );
+            throw new InvalidWsrfWsdlException(
+                    "PortType " + m_portType.getQName() +
+                    " does not define one or more properties required by the portTypes it implements." );
         }
     }
 
@@ -116,25 +124,34 @@
         if ( hasProperties() )
         {
             if ( !m_implementedResourceDefs.containsKey( GetResourcePropertyPortType.NAME ) &&
-                    !m_implementedResourceDefs.containsKey( ResourceProperties1_3Constants.PORT_TYPE_NAME_GET_RESOURCE_PROPERTY )
+                    !m_implementedResourceDefs.containsKey(
+                            ResourceProperties1_3Constants.PORT_TYPE_NAME_GET_RESOURCE_PROPERTY )
             )
             {
-                throw new InvalidWsrfWsdlException( "PortType " + m_portType.getQName() + " defines a wsrp:ResourceProperties attribute but does not implement the WSRF-RP GetResourceProperty portType." );
+                throw new InvalidWsrfWsdlException(
+                        "PortType " + m_portType.getQName() +
+                        " defines a wsrp:ResourceProperties attribute but does not implement the WSRF-RP GetResourceProperty portType." );
             }
         }
         else
         {
             if ( m_implementedResourceDefs.containsKey( GetResourcePropertyPortType.NAME ) ||
-                    m_implementedResourceDefs.containsKey( ResourceProperties1_3Constants.PORT_TYPE_NAME_GET_RESOURCE_PROPERTY ) ||
+                    m_implementedResourceDefs.containsKey(
+                            ResourceProperties1_3Constants.PORT_TYPE_NAME_GET_RESOURCE_PROPERTY ) ||
                     m_implementedResourceDefs.containsKey( GetMultipleResourcePropertiesPortType.NAME ) ||
-                    m_implementedResourceDefs.containsKey( ResourceProperties1_3Constants.PORT_TYPE_NAME_GET_MULTIPLE_RESOURCE_PROPERTIES ) ||
+                    m_implementedResourceDefs.containsKey(
+                            ResourceProperties1_3Constants.PORT_TYPE_NAME_GET_MULTIPLE_RESOURCE_PROPERTIES ) ||
                     m_implementedResourceDefs.containsKey( SetResourcePropertiesPortType.NAME ) ||
-                    m_implementedResourceDefs.containsKey( ResourceProperties1_3Constants.PORT_TYPE_NAME_SET_RESOURCE_PROPERTIES ) ||
+                    m_implementedResourceDefs.containsKey(
+                            ResourceProperties1_3Constants.PORT_TYPE_NAME_SET_RESOURCE_PROPERTIES ) ||
                     m_implementedResourceDefs.containsKey( QueryResourcePropertiesPortType.NAME ) ||
-                    m_implementedResourceDefs.containsKey( ResourceProperties1_3Constants.PORT_TYPE_NAME_QUERY_RESOURCE_PROPERTIES )
+                    m_implementedResourceDefs.containsKey(
+                            ResourceProperties1_3Constants.PORT_TYPE_NAME_QUERY_RESOURCE_PROPERTIES )
             )
             {
-                throw new InvalidWsrfWsdlException( "PortType " + m_portType.getQName() + " does not define a wsrp:ResourceProperties attribute but implements one or more WSRF-RP portTypes." );
+                throw new InvalidWsrfWsdlException(
+                        "PortType " + m_portType.getQName() +
+                        " does not define a wsrp:ResourceProperties attribute but implements one or more WSRF-RP portTypes." );
             }
         }
     }
@@ -437,7 +454,7 @@
     public static void main( String[] args ) throws Exception
     {
         WSDLReader wsdlReader = WSDLFactory.newInstance().newWSDLReader();
-        String wsdlPath = "C:\\Projects\\Apache\\apollo\\trunk\\target\\wsrf\\wsdl\\FileSystem.wsdl";
+        String wsdlPath = "C:\\opt\\hermes-1.0-beta1\\webapps\\hermes\\wsdl\\FileSystem.wsdl";
         Definition def = wsdlReader.readWSDL( wsdlPath );
         PortType portType = (PortType) def.getPortTypes().values().toArray()[0];
         ResourceCapability wsResourceDef = null;
@@ -458,6 +475,8 @@
         {
             System.out.println( (ResourceCapability) specDefs.next() );
         }
+        System.out.println( wsResourceDef.getMetadataDescriptorName() );
+        System.out.println( wsResourceDef.getMetadataDescriptorLocation() );
     }
 
     public boolean implementsResourceCapability( QName capabilityName )
@@ -468,6 +487,16 @@
     public QName getPropertiesDocumentName()
     {
         return m_propsDocName;
+    }
+
+    public QName getMetadataDescriptorName()
+    {
+        return m_metadataDescName;
+    }
+
+    public String getMetadataDescriptorLocation()
+    {
+        return m_metadataDescLocation;
     }
 
 }

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourceProperty.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourceProperty.java?view=diff&r1=153947&r2=153948
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourceProperty.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourceProperty.java Tue Feb 15 11:41:05 2005
@@ -37,7 +37,6 @@
 import java.util.List;
 
 /**
- * LOG-DONE
  * An Apache XMLBeans-based implementation of a resource property.
  *
  * @author Ian P. Springer

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java?view=diff&r1=153947&r2=153948
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertyMetaData.java Tue Feb 15 11:41:05 2005
@@ -27,7 +27,7 @@
 import java.math.BigInteger;
 
 /**
- * LOG-DONE Apache XMLBeans-based implementation of resource property metadata.
+ * Apache XMLBeans-based implementation of resource property metadata.
  *
  * @author Ian P. Springer
  */

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertySet.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertySet.java?view=diff&r1=153947&r2=153948
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertySet.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertySet.java Tue Feb 15 11:41:05 2005
@@ -42,7 +42,7 @@
 import java.util.Map;
 
 /**
- * LOG-DONE An Apache XMLBeans-based implementation of a resource property set.
+ * An Apache XMLBeans-based implementation of a resource property set.
  *
  * @author Ian P. Springer
  */

Modified: incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertySetMetaData.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertySetMetaData.java?view=diff&r1=153947&r2=153948
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertySetMetaData.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/resource/properties/impl/XmlBeansResourcePropertySetMetaData.java Tue Feb 15 11:41:05 2005
@@ -38,7 +38,7 @@
 import java.util.HashSet;
 
 /**
- * LOG-DONE Apache XMLBeans-based implementation of resource property set metadata.
+ * An Apache XMLBeans-based implementation of resource property set metadata.
  *
  * @author Ian P. Springer
  */
@@ -178,6 +178,8 @@
 
     private static PropertyType getPropertyDesc( MetadataDescriptorType metadataDesc, QName propName )
     {
+        // TODO: recurse into inherited descriptors when looking for property descs
+        //       (assume inherited-desc locations are absolute URLs, since we don't know our base URL)
         if ( metadataDesc != null )
         {
             PropertyType[] propDescs = metadataDesc.getPropertyArray();

Modified: incubator/apollo/trunk/src/java/org/apache/ws/util/WsdlUtils.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/util/WsdlUtils.java?view=diff&r1=153947&r2=153948
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/util/WsdlUtils.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/util/WsdlUtils.java Tue Feb 15 11:41:05 2005
@@ -28,7 +28,7 @@
 import java.util.Map;
 
 /**
- * TODO
+ * Generic utility methods for working with various JWSDL objects.
  *
  * @author Ian Springer (Hewlett-Packard Company)
  */
@@ -67,7 +67,8 @@
         {
             return false;
         }
-        return import1.getNamespaceURI().equals( import2.getNamespaceURI() ) && import1.getLocationURI().equals( import2.getLocationURI() );
+        return import1.getNamespaceURI().equals( import2.getNamespaceURI() ) &&
+                import1.getLocationURI().equals( import2.getLocationURI() );
     }
 
     public static boolean equals( Operation op1,

Modified: incubator/apollo/trunk/src/java/org/apache/ws/util/WsrfWsdlUtils.java
URL: http://svn.apache.org/viewcvs/incubator/apollo/trunk/src/java/org/apache/ws/util/WsrfWsdlUtils.java?view=diff&r1=153947&r2=153948
==============================================================================
--- incubator/apollo/trunk/src/java/org/apache/ws/util/WsrfWsdlUtils.java (original)
+++ incubator/apollo/trunk/src/java/org/apache/ws/util/WsrfWsdlUtils.java Tue Feb 15 11:41:05 2005
@@ -15,6 +15,7 @@
  *=============================================================================*/
 package org.apache.ws.util;
 
+import org.apache.ws.resource.InvalidWsrfWsdlException;
 import org.apache.ws.resource.properties.v1_2.ResourceProperties1_2Constants;
 import org.apache.ws.resource.properties.v1_3.ResourceProperties1_3Constants;
 import org.apache.xml.utils.PrefixResolver;
@@ -197,6 +198,32 @@
             rpDocDefQName = (QName) extAttribs.get( ResourceProperties1_2Constants.RESOURCE_PROPERTIES_PORTTYPE_ATTRIB );
         }
         return rpDocDefQName;
+    }
+
+    public static QName getMetadataDescriptorName( PortType portType )
+    {
+        Map extAttribs = portType.getExtensionAttributes();
+        return (QName) extAttribs.get( new QName( "http://docs.oasis-open.org/wsrf/2004/10/wsrf-WSResourceMetadataDescriptor-1.0-draft-01.xsd", "metadataDescriptor", "wsrmd" ) );
+    }
+
+    public static String getMetadataDescriptorLocation( PortType portType ) throws InvalidWsrfWsdlException
+    {
+        Map extAttribs = portType.getExtensionAttributes();
+        final QName METADATA_DESCRIPTOR_PORTTYPE_ATTRIB =
+            new QName( "http://docs.oasis-open.org/wsrf/2004/10/wsrf-WSResourceMetadataDescriptor-1.0-draft-01.xsd", "metadataDescriptorLocation", "wsrmd" );
+        QName qValue = ((QName)extAttribs.get( METADATA_DESCRIPTOR_PORTTYPE_ATTRIB ));
+        if ( qValue == null )
+        {
+            return null;
+        }
+        String value = qValue.getLocalPart();
+        StringTokenizer tokenizer = new StringTokenizer( value );
+        if ( tokenizer.countTokens() != 2 )
+        {
+            throw new InvalidWsrfWsdlException( METADATA_DESCRIPTOR_PORTTYPE_ATTRIB + " attribute on portType must be of the format \"namespaceURI locationURL\"");
+        }
+        tokenizer.nextToken();
+        return tokenizer.nextToken();
     }
 
     private static Element getSchemaElement( Definition def )



---------------------------------------------------------------------
To unsubscribe, e-mail: apollo-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: apollo-dev-help@ws.apache.org