piotrp      2002/12/15 23:23:24

  Added:       java/doc/wsdl_extensions/j2c_extensions WSDLJ2EE.gif
                        wsif_j2.gif TextJ2C.gif wsif_j2c_extensions.htm
                        WSIFForm.gif WSDLConn.gif wsif_j1.gif
  Log:
  Move documentation for the WSIF J2C provider from proposals
  to the docs.
  
  Revision  Changes    Path
  1.1                  
xml-axis-wsif/java/doc/wsdl_extensions/j2c_extensions/WSDLJ2EE.gif
  
        <<Binary file>>
  
  
  1.1                  
xml-axis-wsif/java/doc/wsdl_extensions/j2c_extensions/wsif_j2.gif
  
        <<Binary file>>
  
  
  1.1                  
xml-axis-wsif/java/doc/wsdl_extensions/j2c_extensions/TextJ2C.gif
  
        <<Binary file>>
  
  
  1.1                  
xml-axis-wsif/java/doc/wsdl_extensions/j2c_extensions/wsif_j2c_extensions.htm
  
  Index: wsif_j2c_extensions.htm
  ===================================================================
  <html>
  
   <head>
   <meta http-equiv="Content-Language" content="en-us">
   <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
   <meta name="ProgId" content="FrontPage.Editor.Document">
   <title>WSIF J2C Extensions</title>
   </head>
  
   <body>
  
   <h2>WSIF Extensions for J2EE Connector Architecture</h2>
   <p><font FACE="Verdana" SIZE="2">The WSIF Extensions for J2EE Connector 
   Architecture (J2C) allow Enterprise Information Systems (EIS) to 
   provide the following:</font></p>
   <ul>
     <li><font size="2" face="Verdana">Modeling of interactions with the EIS as 
     services, using WSDL.</font></li>
     <li><font size="2" face="Verdana">Execution of interactions with the EIS using 
     WSIF.</font></li>
     <li><font face="Verdana" size="2">Implementation of the Import 
     Service that  exposes EIS metadata  in WSDL.</font></li>
   </ul>
   <p><font FACE="Verdana" SIZE="2">J2EE Connector Architecture 1.0 (specification 
   available at: 
&quot;http://java.sun.com/j2ee/download.html#connectorspec&quot;)&nbsp; provides a 
   runtime architecture that allows EIS Resource Adapters to plug into a J2EE 
   Application Server environment. The WSIF Extensions for J2C extend it to bring 
   the Resource Adapters into the world of services and also make them pluggable 
   into tool environments. The extensions specify the format of metadata that an 
   EIS must provide and define how a tool environment interacts with an EIS to get 
this 
  information, i.e. define the Import Service with operations to 
   list and import the EIS metadata in the tool environment independent manner. 
   The extensions also show how the EIS 
   provides code generation contributions. To support the execution of 
   interactions, the extensions  provide a set of 
   classes and interfaces that allow EIS to easily, especially if Resource 
   Adapter supports CCI, implement its specific WSIF provider. </font></p>
   <h3><a name="Metadata support">Modeling</a></h3>
   <p><font FACE="Verdana" SIZE="2">Metadata support is important from two 
perspectives. First, tools want to be 
   able to discover meta information about the functions offered by an EIS. The 
   tools then aid a developer in building components (for example, Java Beans, EJBs 
and others) that use these functions. 
   runtimes either drive a connector 
   through code generated by the tools from the metadata, or they are engines that 
   drive a connector by interpreting the metadata.</font></p>
   <h4>WSDL</h4>
   <p><font size="2" face="Verdana">The following picture shows the WSDL document 
architecture. Shown at the top 
   are the sections that allow you to describe a service interface in an abstract 
   way. WSDL prefers to use XML Schema as its canonical type system. The sections at 
the bottom  describe how and where to access the 
   concrete service that implements the abstract interface. Looking at the W in WSDL 
may cause you to think that the language is for 
   describing Web Services only, but this is not true. The inventors equipped the 
   language with a smart extensibility mechanism, which allows you to describe any 
   kind of service, be it a Web Service or some legacy EIS service 
   (function).</font></p>
   <p>
   &nbsp;<img border="0" src="WSDLJ2EE.gif" alt="WSDL document architecture" 
width="351" height="331" align="middle"></p>
   <h5>WSDL and J2EE Connector Architecture - A Natural Fit</h5>
   <p><font FACE="Verdana" SIZE="2">WSDL provides a standard way for describing which 
services are offered by a 
   specific EIS instance, and how you access them. The J2EE Connector Architecture 
   provides a standard client programming model for accessing EIS services.</font></p>
   <p><font FACE="Verdana" SIZE="2">If you look at the WSDL information that is 
relevant for the single 
   execution of an operation you end up with a very natural fit between the 
two:</font></p>
   <p>
   <img border="0" src="TextJ2C.gif" alt="Relationship between WSDL and J2EE terms" 
width="294" height="90" align="center"></p>
   <h4>Connector Binding</h4>
   <p><font FACE="Verdana" SIZE="2">To invoke an operation through a connector we have 
to be able to capture 
   meta information about the following aspects:</font></p>
   <ul>
     <li><font FACE="Verdana" SIZE="2">The connection properties to be set on a 
ManagedConnectionFactory.</font></li>
     <li><font FACE="Verdana" SIZE="2">The interaction properties to be set on an 
InteractionSpec.</font></li>
     <li><font FACE="Verdana" SIZE="2">The Records, for example, their structure and 
the specific way that they 
     have to be formatted.</font></li>
     <li><font FACE="Verdana" SIZE="2">The operation, which combines InteractionSpec, 
     input Record, and output Record (provided by WSDL). </font></li>
     <li><font face="Verdana" size="2">A specific endpoint that offers particular 
     operation (provided by WSDL).</font></li>
   </ul>
   <p><font FACE="Verdana" SIZE="2">ManagedConnectionFactory describes location or 
providing endpoint of the operation. The requirement for the Connector Binding is to 
   provide a port extension to capture this information.</font></p>
   <p><font FACE="Verdana" SIZE="2">The InteractionSpec specifies the operation in a 
way that is
   understood by the endpoint. The  Connector Binding is required to 
   provide an operation binding extension to capture this information.</font></p>
   <p><font FACE="Verdana" SIZE="2">For Records you need to know their structure and 
the way that they have to 
   be formatted so that an endpoint is able to interpret them. The structure is 
   defined by XML Schema from which you can derive a Java 
   representation, as described later. It is the format aspect that imposes a 
requirement 
   on the Connector Binding. It has to provide a format binding extension to 
   capture the specific formatting information (see format binding 
section).</font></p>
   <h5>A Connector WSDL Sample</h5>
   <p>
   <img border="0" src="WSDLConn.gif" alt="Sample of a connector in a WSDL document" 
width="550" height="560"></p>
   <h5>How the Connector Binding Extends WSDL</h5>
   <pre>  &lt;definitions .... &gt;
       &lt;binding ...&gt;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

          &lt;<b>connector:binding /</b>&gt;   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

             <b>format:typeMapping</b> encoding=&quot;...&quot; 
style=&quot;...&quot;&gt;   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                &lt;<b>format:typeMap  </b> 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                   typeName=&quot;...&quot;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                   formatType=&quot;...&quot; /&gt; *       
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

             &lt;/format:typeMapping&gt;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

          &lt;operation .... &gt;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

             &lt;<b>connector:operation</b> functionName=&quot;name&quot;...
                interaction attributes ... /&gt;   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

              &lt;input&gt;    
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                 ...  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/input&gt;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

              &lt;output&gt;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                 ...  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

              &lt;/output&gt;   
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

          &lt;/operation&gt;  
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

       &lt;/binding&gt;</pre>
   <pre>     &lt;port .... &gt;
          &lt;<b>connector:address</b> hostName=&quot;uri&quot; 
portNumber=&quot;...&quot;
             ...connection attributes ... /&gt;
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/port&gt;
  &nbsp;&nbsp;&lt;/definitions&gt;</pre>
   <h6>connector:binding</h6>
   <p><font FACE="Verdana" SIZE="2">The purpose of the connector binding is to signify 
that the binding is bound 
   to a J2C based Resource Adapter. A &quot;connector&quot; is the short name 
   for the namespace that identifies the particular connector, for example </font> 
<samp>
   <font FACE="Verdana" SIZE="2">&lt;cics:binding 
   /&gt;</font></samp></p>
   <h6>connector:operation</h6>
   <p><font FACE="Verdana" SIZE="2">The connector operation contains the 
InteractionSpec attributes that are 
   necessary to execute the operation on the EIS side, for example </font> <samp>
   <font FACE="Verdana" SIZE="2">&lt;cics:operation 
   functionName=&quot;GETCUST&quot; /&gt;</font></samp></p>
   <h6>connector:address</h6>
   <p><font FACE="Verdana" SIZE="2">The connector address contains the attributes 
   of the ManagedConnectionFactory, necessary to configure the connection factory, for 
example </font> <samp>
   <font FACE="Verdana" SIZE="2">&lt;cics:address 
   connectionURL=&quot;...&quot; serverName=&quot;...&quot; /&gt;</font></samp></p>
   <h4>Format Binding</h4>
   <h5>format:typeMapping</h5>
   <p><font FACE="Verdana" SIZE="2">The format typeMapping identifies the style and 
encoding of the native 
   types. The typeMapping contains format typeMaps which associate the logical 
   format (XML Schema) with the native format.</font></p>
   <p><font FACE="Verdana" SIZE="2">The native format is identified by a format type 
identifier.</font></p>
   <p><font FACE="Verdana" SIZE="2">Here a sample where the native format type is 
described by COBOL:</font></p>
   <pre>  &lt;format:typeMapping encoding=&quot;COBOL&quot; style=&quot;COBOL&quot; 
&gt;                &nbsp;&nbsp;&nbsp;&nbsp;
       &lt;format:typeMap typename=&quot;Customer&quot; 
formatType=&quot;CustomerInfo.ccp:CUSTINF&quot;/&gt;
    &lt;/format:typeMapping&gt;</pre>
   <h3><a name="Web Service Invocation Framework (WSIF)">Runtime</a></h3>
   <p><font FACE="Verdana" SIZE="2">This standard way for describing the services that 
reside in an EIS 
   using WSDL simplifies the current client&nbsp; programming model (CCI) 
   by using Web Service Invocation Framework (WSIF), a WSDL based service invocation 
runtime. </font></p>
   <h4>Architecture</h4>
   <p><font FACE="Verdana" SIZE="2">The first thing necessary to set up for a service 
invocation is a 
   port. Ports are factored from services (implementations of 
   the WSIFService interface). WSIF ships the base service factory 
(WSIFServiceFactory) 
   which is 
   configured using the WSDL document, the service name, and the portType name from 
   which you want to create a port to access an operation.</font></p>
   <p><font FACE="Verdana" SIZE="2">Additionally, the WSIFService 
   is configured using a binding specific dynamic providers (implementations of the 
WSIFProvider interface). These  providers are the actual 
   factories of the binding specific ports (implementations of the WSIFPort 
interface)</font></p>
   <p><font FACE="Verdana" SIZE="2">The actual port implementation is not visible 
   to the client.  
  The client uses the WSIFPort interface to create a specific 
   operation for driving an execution. </font></p>
   <p>
   <img border="0" src="wsif_j1.gif" width="666" height="495"></p>
   <h4>WSIF and J2C</h4>
   <p><font FACE="Verdana" SIZE="2">Enabling a J2C connector for WSIF is very 
straightforward. The element that 
   a Resource Adapter must implement is the dynamic provider. Depending on 
   the native 
   format, a Resource Adapter may need to provide a specific message implementation. 
   In general the Resource Adapter does not have to provide a specific port and 
   operation implementation, since the WSIF Extensions for J2C provide a generic one 
that is based on 
   J2C CCI.</font></p>
   <p>
   <img border="0" src="wsif_j2.gif" width="575" height="467"></p>
   <p>&nbsp;</p>
   <p><font FACE="Verdana" SIZE="2">If the Resource Adapter's native format is stream 
based then 
   it can use the 
   provided WSIFMessage_JCAStreamable as it's message implementation. This class 
   extends a class named WSIFMessage_JCA. If a specific message 
   implementation is required, it should extend WSIFMessage_JCA.</font></p>
   <p><font face="Verdana" size="2">The J2C WSIF Provider runtime implementation 
   contains the following classes/interfaces in the package </font><font FACE="Helv" 
COLOR="#0000ff" size="2">
   org.apache.wsif.providers.jca.</font></p>
   <dir>
     <font FACE="Helv" size="2">
     <li>WSIFMessage_JCA.java - Top level superclass for all J2C WSIF messages 
     which implements javax.resource.cci.Record interface and is extended by the 
     connector specific messages.</li>
     <li>WSIFMessage_JCAStreamable.java - Specialization of WSIFMessage_JCA for 
     connectors that use the Streamable interface.</li>
     <li>WSIFOperation_JCA.java - Implementation of the WSIFOperation interface, which 

     executes the interaction with the EIS.</li>
     <li>WSIFPort_JCA.java - JCA specific implementation of the WSIFPort, which is 
used to 
     create an operation.</li>
     <li>WSIFProviderJCAExtensions.java - Interface implemented by the specific 
     connector to provide creation of the Connection and InteractionSpec objects</li>
     <li>WSIFFormatHandler_JCA.java - Interface implemented by FormatHandlers for 
     connectors that use the Streamable record interface. </li>
     <li>WSIFBindingOperation_JCAProperty.java - Interface used to expose the 
     InteractionSpec properties as parts in the WSIF message.</li>
     <li>WSIFUtils_JCA.java - A utility class which contains methods to lookup 
ConnectionFactory in the JNDI context</li>
     <li>WSIFResource_JCA.java - Resource implementation for error messages</li>
     <li>WSIFResource_JCA.properties - Separated Error Messages</li>
     <dir>
       </font><font FACE="Helv" SIZE="1">
       <dir>
         <p>&nbsp;</p>
       </dir>
       </font>
     </dir>
   </dir>
   <h4><a name="Format Handling">Format Handling</a></h4>
   <p><font FACE="Verdana" SIZE="2">Format handling is about marshalling the Java 
representation of a data 
   structure described by XML Schema to/from its binding dependent native format. 
   Separating the Java representation and format handling enables late binding, and 
   prevents the service client logic from using objects that are binding 
specific.</font></p>
   <h5>FormatHandler</h5>
   <p><font FACE="Verdana" SIZE="2">On service invocation, messages (input, output, 
fault) get exchanged with the 
   provider of the service. Messages consist of typed parts. In order 
   for the provider to understand them the invocation runtime has to transform 
   them into the providers native format.</font></p>
   <p><font FACE="Verdana" SIZE="2">Looking at the WSDL, it can be seen that a binding 
section defines type mappings 
   that map the XML Schema types to respective native types. Given the meta 
   information from the WSDL the user can generate&nbsp; two runtime elements. One is 
   a bean as the Java representation of the structure described by XML Schema. The 
   other is a FormatHandler which is generated based on the defined format 
   typeMapping.</font></p>
   <p>
   <img border="0" src="WSIFForm.gif" alt="Format handler" width="471" 
height="340"></p>
   <p><font FACE="Verdana" SIZE="2">In order for a message implementation to produce 
its native format it uses 
   the format handlers for its respective part types. The message is a generic 
   implementation for a particular provider. So how does the message know which 
   format handler to use for its parts? A runtime message knows about the meta 
   information of the concrete message it was factored for. So it knows what type 
   its parts have. These types have qualified names (namespace and localname).The rule 
for constructing the name of the format handler is:</font></p>
   <pre>&lt;reversed xsd typenamespace&gt;.&lt;binding shortname&gt;.&lt;format 
encoding+style&gt;.&lt;xsd typelocalname&gt;&quot;FormatHandler&quot;</pre>
   <p><font FACE="Verdana" SIZE="2">The WSIFUtil class, in WSIF, provides a set of 
utility methods that 
   can be 
   used in the message implementation (for example to use the above formula) as well 
as in the implementation of the 
   format handler generator. Besides being able to handle a bean derived from the XSD 
Schema type, the 
   format handler can in addition also support instance of the XSD Schema type in form 
of a 
   DOMSource or SAXSource. This allows for direct usage of XML in your service 
   invocation if required.</font></p>
   <h5>FormatHandler Generator</h5>
   <p><font FACE="Verdana" SIZE="2">To support EIS native formats the Resource 
   Adapter has to provide format handler generators with its WSIF J2C Extensions. Each 
format handler generator generates format handlers for 
   a specific encoding and style, possibly using the type mapping information from 
   the FormatBinding.&nbsp;The generator implements FormatHandlerGenerator interface 
described later. </font></p>
   <h3><a name="Import Service">Import Service</a></h3>
   <p><font FACE="Verdana" SIZE="2">Many EIS's have very rich metadata support 
describing the services they 
   offer. EIS's provide programmatic access to this meta information. This poses a 
problem for tools in that  
   the form of the metadata and the access to it is proprietary
   for each EIS. The EIS import service solves this problem by providing a 
   standard interface for accessing the meta information, and it delivers the meta 
information in the standard
   form of WSDL. The EIS implements (i.e. provides bindings and service of the 
   import service) the import service with its EIS Resource Adapter. </font></p>
   <h4>Interface</h4>
   <p><font FACE="Verdana" SIZE="2">The Import interface consists of three operations 
getPortTypes, getDefinition 
   and </font><font SIZE="2">getRawEISMetaData. </font></p>
   <p><font FACE="Verdana" SIZE="2">The getPortTypes operation allows you to get an 
overview about the 
   interfaces and operations the EIS offers. The operation returns an array of 
   portTypes, the number of portTypes returned can be controlled through the 
   queryString input argument (supporting the queryString is optional).</font></p>
   <p><font FACE="Verdana" SIZE="2">Note, if your EIS does not have the notion of 
interfaces you can just 
   return one portType containing all the operations your EIS offers.</font></p>
   <p><font FACE="Verdana" SIZE="2">The getDefinition operation allows you to retrieve 
the complete service 
   definition for a chosen portType selection. Besides selecting the portType, the 
   portType selection allows a subset of the portType by identifying the operations 
   that you are interested in. The operation returns the WSDL definition, and an 
   array of XML Schema sources for the case when the portType uses XML Schema complex 
   types.</font></p>
   <p><font face="Verdana" size="2">The optional operation, </font><font SIZE="2">
   getRawEISMetaData returns a binary data that may be used by the Resource 
   Adapter to cache the EIS metadata repository. </font></p>
   <h4><b>Import.wsdl file</b></h4>
   <font SIZE="2">
   <p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</p>
   <p>&lt;definitions name=&quot;ImportRemoteInterface&quot;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
targetNamespace=&quot;http://importservice.jca.providers.wsif.apache.org/&quot;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
xmlns=&quot;http://schemas.xmlsoap.org/wsdl/&quot;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
xmlns:tns=&quot;http://importservice.jca.providers.wsif.apache.org/&quot; 
   xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;import 
location=&quot;Import.xsd&quot; 
   namespace=&quot;http://importservice.jca.providers.wsif.apache.org/&quot;/&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;message 
name=&quot;getDefinitionRequest&quot;&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;part 
   name=&quot;portTypeSelection&quot; type=&quot;tns:PortTypeSelection&quot;/&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/message&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;message 
name=&quot;getDefinitionResponse&quot;&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;part 
   name=&quot;result&quot; type=&quot;tns:ImportDefinition&quot;/&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/message&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;message 
name=&quot;getPortTypesRequest&quot;&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;part 
   name=&quot;queryString&quot; type=&quot;xsd:string&quot;/&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/message&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;message 
name=&quot;getPortTypesResponse&quot;&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;part 
   name=&quot;result&quot; type=&quot;tns:PortTypeArray&quot;/&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/message&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;message 
name=&quot;getRawEISMetaDataRequest&quot;&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;part 
   name=&quot;queryString&quot; type=&quot;xsd:string&quot;/&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/message&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;message 
name=&quot;getRawEISMetaDataResponse&quot;&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;part 
   name=&quot;result&quot; type=&quot;xsd:base64&quot;/&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/message&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;portType 
name=&quot;Import&quot;&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;operation name=&quot;getDefinition&quot; 
parameterOrder=&quot;portTypeSelection&quot;&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;input message=&quot;tns:getDefinitionRequest&quot; 
name=&quot;getDefinitionRequest&quot;/&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;output message=&quot;tns:getDefinitionResponse&quot; 
name=&quot;getDefinitionResponse&quot;/&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;/operation&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;operation name=&quot;getPortTypes&quot; 
parameterOrder=&quot;queryString&quot;&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;input message=&quot;tns:getPortTypesRequest&quot; 
name=&quot;getPortTypesRequest&quot;/&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;output message=&quot;tns:getPortTypesResponse&quot; 
name=&quot;getPortTypesResponse&quot;/&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;/operation&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;operation name=&quot;getRawEISMetaData&quot; 
parameterOrder=&quot;queryString&quot;&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;input message=&quot;tns:getRawEISMetaDataRequest&quot; 
name=&quot;getRawEISMetaDataRequest&quot;/&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;output message=&quot;tns:getRawEISMetaDataResponse&quot; 
name=&quot;getRawEISMetaDataResponse&quot;/&gt;</p>
   
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
 
   &lt;/operation&gt;</p>
   <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/portType&gt;</p>
   <p>&lt;/definitions&gt;</p>
   </font>
   <pre>  </pre>
   
   <h5>Import Service support classes</h5>
   <p><font FACE="Verdana" SIZE="2">To simplify the implementation of the Import 
   service, the WSIF Extensions for J2C include a set of convenience classes in 
   the </font><font FACE="Helv" COLOR="#0000ff" size="2">
   org.apache.wsif.providers.jca.toolplugin </font><font size="2" face="Verdana">
   package. These classes provide Java representation of the XSD types used in the 
   import service and simplify the development of the Import Service. </p>
   </font>
   <dir>
     <font FACE="Helv" size="2">
   </dir>
   <blockquote>
     <ul>
       <li>ImportDefinition.java</li>
       <li>ImportResource.java</li>
       <li>ImportXSD.java</li>
       <li>OperationSelection.java</li>
       <li>PortTypeArray.java</li>
       <li>PortTypeSelection.java</li>
     </ul>
   </blockquote>
   </font>
   <h3>&nbsp;</h3>
   
   <h3>Deployment Descriptor</h3>
   
   <p><font FACE="Verdana" SIZE="2">To allow an arbitrary tools environment to 
   detect this additional capability a connector implementation has to provide the 
   following deployment descriptor xml file (j2c_plugin.xml) in its rar file. It 
describes 
   details of the implementation, for example the names of classes implementing 
extensibility 
   elements or the name of the WSDL file providing bindings for the Import service 
   interface. A sample of the xml file is shown below: </font></p>
   <p>&nbsp;</p>
   <blockquote>
     <blockquote>
       <pre><font face="Courier New">&lt;j2c_plugin 
tns=&quot;http://schemas.xmlsoap.org/wsdl/myeis/&quot; 
name=&quot;MyEIS&quot;&gt;</font></pre>
       <pre><font face="Courier 
New">&lt;Description&gt;MyEIS&lt;/Description&gt;</font></pre>
       <pre><font face="Courier New">&lt;version&gt;1.0&lt;/version&gt;</font></pre>
       <pre><font face="Courier New">   &lt;wsdl_extensions&gt;</font></pre>
       <pre><font face="Courier New">           &lt;address 
classname=&quot;com.myeis.wsdl.extensions.j2c.myeis.MyEISAddress&quot;/&gt;</font></pre>

       <blockquote>
         <blockquote>
           <blockquote>
             <pre><font face="Courier New"> &lt;binding 
classname=&quot;com.myeis.wsdl.extensions.j2c.myeis.MyEISBinding&quot;/&gt; 
</font></pre>
           </blockquote>
         </blockquote>
       </blockquote>
       <pre><font face="Courier New">           &lt;operation 
classname=&quot;com.myeis.wsdl.extensions.j2c.myeis.MyEISOperation&quot;/&gt;</font></pre>

       <pre><font face="Courier New">           &lt;extension_registry 
classname=&quot;com.myeis.wsdl.extensions.j2c.myeis.MyEISExtensionRegistry&quot; 
/&gt;</font></pre>
       <pre><font face="Courier New">   &lt;/wsdl_extensions&gt;</font></pre>
       <pre><font face="Courier New">   &lt;wsif_extensions 
classname=&quot;com.myeis.wsif.providers.j2c.myeis.WSIFProvider_MyEIS&quot; 
/&gt;</font></pre>
       <pre><font face="Courier New">   &lt;import&gt;</font></pre>
       <pre><font face="Courier New">           &lt;service 
wsdlfile=&quot;com/myeis/j2c/importservice/myeis/ImportMyEIS.wsdl&quot; 
servicename=&quot;ImportService&quot; &gt;</font></pre>
       <pre><font face="Courier New">           &lt;/service&gt;</font></pre>
       <pre><font face="Courier New">   &lt;/import&gt; </font></pre>
     </blockquote>
     <pre><font face="Courier New">                  &lt;formathandler</font></pre>
     <blockquote>
       <pre><font face="Courier New">        &lt;generator encoding=&quot;myeis&quot; 
classname=&quot;com.myeis.j2c.myeis.formathandler.MyEISFormatHandlerGenerator&quot; 
/&gt;</font></pre>
       <pre><font face="Courier New">        &lt;/formathandler&gt;</font></pre>
       <pre><font face="Courier New">&lt;/j2c_plugin&gt;</font></pre>
     </blockquote>
   </blockquote>
   <h3>Sample Resource Adapter</h3>
   
   <p><font size="2">The distribution of the WSIF Extensions for Connector 
   Architecture includes a sample Resource Adapter, MyEIS, illustrating how to 
   extend the Connector to enable it for pluggability into tool environments, 
   implement model and runtime extensions and the Import Service. </font></p>
   
   </body>
  
  </html>
  
  
  1.1                  
xml-axis-wsif/java/doc/wsdl_extensions/j2c_extensions/WSIFForm.gif
  
        <<Binary file>>
  
  
  1.1                  
xml-axis-wsif/java/doc/wsdl_extensions/j2c_extensions/WSDLConn.gif
  
        <<Binary file>>
  
  
  1.1                  
xml-axis-wsif/java/doc/wsdl_extensions/j2c_extensions/wsif_j1.gif
  
        <<Binary file>>
  
  


Reply via email to