<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~
  ~ ModeShape (http://www.modeshape.org)
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~       http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
-->
<module xmlns="urn:jboss:module:1.3" name="org.modeshape">
    <resources>
        <resource-root path="modeshape-jcr-${project.version}.jar"/>
        <resource-root path="modeshape-jbossas-subsystem-${project.version}.jar"/>
        <resource-root path="modeshape-schematic-${project.version}.jar"/>
        <resource-root path="res"/>
        <resource-root path="deployments"/>
    </resources>

    <dependencies>
        <!--The sequencers aren't listed here because they are loaded from the ModuleLoader API -->
        <module name="org.modeshape.jcr.api" export="true"/>
        <module name="org.modeshape.common" export="true"/>

        <!-- ModeShape JCR dependencies (must export Infinispan so that our stored classes can be loaded )-->
        <module name="org.infinispan" export="true"/>
        <module name="org.infinispan.commons" export="true"/>
        <!--
             Include the JDBC and Remote modules because in AS7.2, the ModeShape ISPN cache container will use the "module"
             attribute, meaning Infinispan will be loaded using ModeShape's class loader. If we don't export these modules,
             declaring JDBC or Remote caches within ModeShape's cache container would not be possible.
        -->
        <module name="org.infinispan.cachestore.jdbc" export="true"/>
        <module name="org.infinispan.cachestore.remote" export="true"/>

        <module name="org.joda.time"/>
        <module name="org.jgroups"/>
        <module name="org.apache.tika" slot="${tika.version}" services="import"/>
        <module name="org.mapdb" slot="${mapdb.version}" services="import"/>
        <module name="org.apache.lucene" slot="3.6.2"/>
        <module name="org.hibernate.search.engine" export="true"/>
        <!-- For naming ... -->
        <module name="javax.api" export="true"/>
        <module name="org.jboss.as.naming"/>
        <!-- For security provider ... -->
        <module name="javax.servlet.api"/>
        <module name="javax.resource.api"/>
        <module name="javax.security.jacc.api"/>
        <!-- For logging ... -->
        <module name="org.jboss.logging"/>
        <!-- For the subsystem ... -->
        <module name="org.jboss.as.controller"/>
        <module name="org.jboss.staxmapper"/>
        <module name="org.jboss.modules"/>
        <module name="org.jboss.msc"/>
        <module name="org.jboss.as.server"/>

        <!--Needed for clustering configurations-->
        <module name="org.jboss.as.clustering.infinispan"/>
        <!--Needed for indexing via JMS-->
        <module name="javax.jms.api"/>
    </dependencies>

</module>