org.apache.axis2.jaxws.description
Class DescriptionFactory

java.lang.Object
  extended by org.apache.axis2.jaxws.description.DescriptionFactory

public class DescriptionFactory
extends java.lang.Object

Creates the JAX-WS metadata descritpion hierachy from some combinations of WSDL, Java class information including annotations, and (in the future) deployment descriptors.


Nested Class Summary
static class DescriptionFactory.UpdateType
          The type of update being done for a particular Port.
 
Method Summary
static AxisService createAxisService(java.lang.Class serviceImplClass)
          This provide very convenient way of creating an AxisService from an annotated java class.
static ClientConfigurationFactory createClientConfigurationFactory()
          Creates Client ConfigurationFactory used to create AxisConfiguration.
static ServiceDescription createServiceDescription(java.lang.Class serviceImplClass)
          Create a full ServiceDescription hierachy on the SERVER side for a single service implementation class.
static ServiceDescription createServiceDescription(java.net.URL wsdlURL, QName serviceQName, java.lang.Class serviceClass)
          Create the initial ServiceDescription hierachy on the CLIENT side.
static java.util.List<ServiceDescription> createServiceDescriptionFromDBCMap(java.util.HashMap<java.lang.String,DescriptionBuilderComposite> dbcMap)
          Create a full ServiceDescription hierachy on the SERVER side for EACH service implementation entry in the DescriptionBuilderComposite (DBC) map.
static ServiceDescription createServiceDescriptionFromServiceImpl(java.lang.Class serviceImplClass, AxisService axisService)
          Deprecated. Use createServiceDescriptionFromDBCMap(HashMap)
static EndpointDescription updateEndpoint(ServiceDescription serviceDescription, java.lang.Class sei, QName portQName, DescriptionFactory.UpdateType updateType)
          Retrieve or create the EndpointDescription hierachy associated with an existing CLIENT side ServiceDescription for a particular port.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

createServiceDescription

public static ServiceDescription createServiceDescription(java.net.URL wsdlURL,
                                                          QName serviceQName,
                                                          java.lang.Class serviceClass)
Create the initial ServiceDescription hierachy on the CLIENT side. This is intended to be called when the client creates a ServiceDelegate. Note that it will only create the ServiceDescription at this point. The EndpointDescription hierachy under this ServiceDescription will be created by the updateEndpoint factory method, which will be called by the ServiceDelegate once the port is known (i.e. addPort, getPort, or createDispatch).

Parameters:
wsdlURL - URL to the WSDL file to use; this may be null
serviceQName - The ServiceQName for this service; may not be null
serviceClass - The Service class; may not be null and must be assignable from javax.xml.ws.Service
Returns:
A ServiceDescription instance for a CLIENT access to the service.
See Also:
#updateEndpoint(ServiceDescription, Class, QName, ServiceDescription.UpdateType)

updateEndpoint

public static EndpointDescription updateEndpoint(ServiceDescription serviceDescription,
                                                 java.lang.Class sei,
                                                 QName portQName,
                                                 DescriptionFactory.UpdateType updateType)
Retrieve or create the EndpointDescription hierachy associated with an existing CLIENT side ServiceDescription for a particular port. If an EndpointDescritption already exists, it will be returned; if one does not already exist, it will be created. Note that if the SEI is null then the EndpointDescription returned will be for a Dispatch client only and it will not have an EndpointInterfaceDescription hierachy associated with it. If, at a later point, the same port is requested and an SEI is provided, the existing EndpointDescription will be updated with a newly-created EndpointInterfaceDescription hieracy.

Parameters:
serviceDescription - An existing client-side ServiceDescription. This must not be null.
sei - The ServiceInterface class. This can be null for adding a port or creating a Dispatch; it can not be null when getting a port.
portQName - The QName of the port. If this is null, the runtime will attempt to to select an appropriate port to use.
updateType - The type of the update: adding a port, creating a dispatch, or getting an SEI-based port.
Returns:
An EndpointDescription corresponding to the port.
See Also:
createServiceDescription(URL, QName, Class), DescriptionFactory.UpdateType

createServiceDescriptionFromDBCMap

public static java.util.List<ServiceDescription> createServiceDescriptionFromDBCMap(java.util.HashMap<java.lang.String,DescriptionBuilderComposite> dbcMap)
Create a full ServiceDescription hierachy on the SERVER side for EACH service implementation entry in the DescriptionBuilderComposite (DBC) map. Note that the associated SERVER side Axis description objects are also created. To create a single ServiceDescription hierarchy for a single service implementation class, use the factory method that takes a single class and returns a single ServiceDescription.

A service implementation DBC entry is one that: (1) Is a class and not an interface (2) Carries a WebService or WebServiceProvider annotation.

A DBC represents the information found in the service implementation class. There will be other DBC entries in the map for classes and interfaces associated with the service implementation, such as super classes, super interfaces, fault classes, and such.

Note that map may contain > 1 service implementation DBC. A full ServiceDescriptionHierachy will be created for each service implementation DBC entry.

Note that each ServiceDescription will have exactly one EndpointDescription corresponding to each service implementation.

Parameters:
dbcMap - A HashMap keyed on class name with a value for the DBC for that classname
Returns:
A List of ServiceDescriptions with the associated SERVER side hierachy created.

createServiceDescription

public static ServiceDescription createServiceDescription(java.lang.Class serviceImplClass)
Create a full ServiceDescription hierachy on the SERVER side for a single service implementation class. To create process more than one service implementation at one time or to process them without causing the service implemenation classes to be loaded, use the factory method that takes a collection of DescriptionBuilderComposite objects and returns a collection of ServiceDescriptions.

Note that the ServiceDescription will have exactly one EndpointDescription corresponding to the service implementation.

Parameters:
serviceImplClass - A Web Service implementation class (i.e. one that carries an WebService or WebServiceProvider annotation).
Returns:
A ServiceDescription with the associated SERVER side hierachy created.

createAxisService

public static AxisService createAxisService(java.lang.Class serviceImplClass)
This provide very convenient way of creating an AxisService from an annotated java class.

Parameters:
serviceImplClass - A Web Service implementation class (i.e. one that carries an WebService or WebServiceProvider annotation).
Returns:
An AxisService instance

createServiceDescriptionFromServiceImpl

public static ServiceDescription createServiceDescriptionFromServiceImpl(java.lang.Class serviceImplClass,
                                                                         AxisService axisService)
Deprecated. Use createServiceDescriptionFromDBCMap(HashMap)

DO NOT USE THIS METHOD FOR PRODUCTION CODE. It has been deprecated and is only used to drive some testing. Note that the AxisService and associated Axis description objects ARE NOT created or updated by this factory method.

Parameters:
serviceImplClass - A service implementation class with annotations
axisService - A FULLY POPULATED AxisService including all of the underlying description objects such as AxisOperations.
Returns:
A ServiceDescription hierachy constructed (via Java reflection) from the service implementation class and tied via properties to the existing AxisService object.

createClientConfigurationFactory

public static ClientConfigurationFactory createClientConfigurationFactory()
Creates Client ConfigurationFactory used to create AxisConfiguration.

Returns:
A Client Configuration Factory's new instance. ClinetConfigurationFactory is Singleton.


Copyright © 2007 Apache Web Services Project. All Rights Reserved.