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