<?xml version="1.0" encoding="UTF-8"?>
<!--
  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  - JOnAS: Java(TM) Open Application Server
  - Copyright (C) 2009 France Telecom R&D
  - 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" >


  <!-- Defines the Checker Manager component (list of resources on a current thread) -->
  <component classname="org.ow2.jonas.jndi.checker.impl.ResourceCheckerManager"
             name="Resource Checker Manager"
             public="false"
             immediate="true">
    <provides specifications="org.ow2.jonas.jndi.checker.api.IResourceCheckerManager" />
  </component>

  <!-- Defines the JNDI Interceptors component (that register/unregister interceptors) -->
  <component classname="org.ow2.jonas.jndi.interceptors.impl.JNDIInterceptorsComponent"
             name="JNDI Interceptors Component"
             public="false"
             immediate="true">

    <requires optional="false"
              specification="org.ow2.jonas.jndi.checker.api.IResourceCheckerManager">
      <callback type="bind" method="setResourceCheckerManager" />
      <callback type="unbind" method="unsetResourceCheckerManager" />
    </requires>

    <requires optional="false"
              specification="org.ow2.carol.jndi.intercept.InterceptorManager">
      <callback type="bind" method="setInterceptorManager" />
      <callback type="unbind" method="unsetInterceptorManager" />
    </requires>

    <requires optional="false">
      <callback type="bind" method="setJmxService" />
    </requires>

      <!-- Add extension for EasyBeans if available -->
      <requires optional="true"
                specification="org.ow2.jonas.ejb3.IEasyBeansService">
        <callback type="bind" method="setEasyBeansService" />
        <callback type="unbind" method="unsetEasyBeansService" />
      </requires>

    <requires optional="true"
              specification="org.ow2.util.event.api.IEventService">
      <callback method="bindEventService" type="bind" />
      <callback method="unbindEventService" type="unbind" />
    </requires>

    <!-- LifeCycle callbacks -->
    <callback transition="validate" method="start" />
    <callback transition="invalidate" method="stop" />

  </component>

    <!-- The instances -->
    <instance component="Resource Checker Manager" />
    <instance component="JNDI Interceptors Component" />

</ipojo>
