<?xml version="1.0" encoding="UTF-8"?>
<!--
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  - JOnAS: Java(TM) Open Application Server
  - Copyright (C) 2009 Bull S.A.S.
  - Contact: jonas-team@ow2.org
  -
  - This library is free software; you can redistribute it and/or
  - modify it under the terms of the GNU Lesser General Public
  - License as published by the Free Software Foundation; either
  - version 2.1 of the License, or any later version.
  -
  - This library is distributed in the hope that it will be useful,
  - but WITHOUT ANY WARRANTY; without even the implied warranty of
  - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  - Lesser General Public License for more details.
  -
  - You should have received a copy of the GNU Lesser General Public
  - License along with this library; if not, write to the Free Software
  - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
  - USA
  -
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  - $Id$
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-->
<ipojo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns="org.apache.felix.ipojo"
       xsi:schemaLocation="org.apache.felix.ipojo http://felix.apache.org/ipojo/schemas/1.6.0/core.xsd" >
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <!--                       WSDL Publisher Manager                                  -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  <component classname="org.ow2.jonas.ws.publish.internal.manager.DefaultWSDLPublisherManager"
             immediate="true">

    <!-- Fix interface FQN otherwise the manager is registered under WSDLPublisher too
         and because the manager itself has an aggregate dependency on WSDLPublisher services,
         it is associated to himself (and that creates an infinite loop) -->
    <provides specifications="org.ow2.jonas.ws.publish.WSDLPublisherManager" />

    <!-- WSDLPublisher dependencies -->
    <requires optional="false"
              specification="org.ow2.jonas.properties.ServerProperties">
      <!-- @specification is required here because only the abstract JOnAS
           service reference that class, and iPOJO cannot introspect
           bytecode of that class that is not inside this bundle -->
      <callback type="bind" method="setServerProperties" />
    </requires>
    
    <requires optional="false">
      <callback type="bind" method="setJmxService" />
    </requires>
    
    <requires optional="true" aggregate="true">
      <callback type="bind" method="addPublisher" />
      <callback type="unbind" method="removePublisher" />
    </requires>
    
    <!-- LifeCycle Callbacks -->
    <callback transition="validate" method="start" />
    <callback transition="invalidate" method="stop" />

    <properties propagation="true">
      <property name="publishers" method="setPublishers" />
    </properties>

  </component>

</ipojo>
