Component Deployment Descriptor Usage

Example Descriptor:

<deployment xmlns="http://bluestemsoftware.org/specification/eoa/1.0/deployment">
  <components>
    <!-- static component definitions go here -->
  </components>
  <providers>
    <!-- runtime component definitions go here -->
  </providers>  
</deployment>

Static Component

To deploy a static component, define the component(s) within the context of one or more wsdl description(s) and in-line the description(s) within the 'components' element, e.g.

<deployment xmlns="http://bluestemsoftware.org/specification/eoa/1.0/deployment">
  <components>
    <wsdl:description xmlns:wsdl="http://www.w3.org/ns/wsdl" targetNamespace="http://com.mycompany/eoa/om/1.0" xmlns:tns="http://com.mycompany/eoa/om/1.0">
      <wsdl:types>
        <xs:import namespace="http://mycompany.com/business/docs" xmlns:xs="http://www.w3.org/2001/XMLSchema" />
      </wsdl:types>
      <wsdl:interface name="OrderProcessor" xmlns:ns01="http://mycompany.com/business/docs">
        <wsdl:fault name="OutOfStockFault" element="ns01:OutOfStockFault" />
        <wsdl:fault name="OrderNotFoundFault" element="ns01:OrderNotFoundFault" />
        <wsdl:operation name="placeOrder" pattern="http://www.w3.org/ns/wsdl/in-out">
          <wsdl:input element="ns01:OrderRequest" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" wsam:Action="urn:placeOrder" />
          <wsdl:output element="ns01:OrderResponse" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" wsam:Action="urn:placeOrderResponse" />
          <wsdl:outfault ref="tns:OutOfStockFault" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" wsam:Action="urn:placeOrderOutOfStockFault" />
        </wsdl:operation>
        <wsdl:operation name="getOrderStatus" pattern="http://www.w3.org/ns/wsdl/in-out" style="http://www.w3.org/ns/wsdl/style/iri" xmlns:wsdlx="http://www.w3.org/ns/wsdl-extensions" wsdlx:safe="true">
          <wsdl:input element="ns01:getOrderStatus" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" wsam:Action="urn:getOrderStatus" />
          <wsdl:output element="ns01:OrderStatusResponse" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" wsam:Action="urn:getOrderStatusResponse" />
          <wsdl:outfault ref="tns:OrderNotFoundFault" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" wsam:Action="urn:getOrderStatusOrderNotFoundFault" />
        </wsdl:operation>
        <wsdl:operation name="completeOrder" pattern="http://www.w3.org/ns/wsdl/in-only">
          <wsdl:input element="ns01:ShippingConfirmation" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" wsam:Action="urn:completeOrder" />
        </wsdl:operation>
      </wsdl:interface>
      <ext:application xmlns:ext="http://bluestemsoftware.org/specification/eoa/1.0/component/wsdl/ext" name="OrderManager">
        <ext:role name="http://mycompany.com/om/order/processor" interface="tns:OrderProcessor" />
      </ext:application>
    </wsdl:description>
  </components>
</deployment>

Runtime Component

To deploy a runtime component definition, in-line the definition within the 'providers' element. Note that provider element namespace is used by deployer to locate an instance ProviderReader. Local name of provider element MUST be one of 'application', 'binding', 'engine', 'message' or 'schema'.

<deployment xmlns="http://bluestemsoftware.org/specification/eoa/1.0/deployment">
  <providers>
    <application xmlns="http://bluestemsoftware.org/open/eoa/ext/application/spring/1.0" xmlns:tns="http://com.mycompany/eoa/om/1.0" name="tns:OrderManager">
      <partners>
        <applicationReference applicationName="tns:OrderManager">
          <roleReference roleName="http://mycompany.com/om/order/processor" beanType="org.bluestemsoftware.open.eoa.example.order.manager.service.OrderProcessor" />
        </applicationReference>
        <applicationReference xmlns:ns="http://software.vendor.com/1.0" applicationName="ns:WarehouseManager">
          <roleReference roleName="http://mycompany.com/wm/order/processor" beanType="org.bluestemsoftware.open.eoa.example.order.manager.service.Warehouse" />
        </applicationReference>
      </partners>
    </application>
  </providers>
</deployment>