<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements.  See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership.  The ASF licenses this file
  ~ to you 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.
  -->
<features name="shiro-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">

    <!-- Shiro core features: -->

    <feature name="shiro-core" version="${project.version}">
        <bundle>mvn:org.apache.shiro/shiro-core/${project.version}</bundle>
    </feature>

    <feature name="shiro-web" version="${project.version}">
        <feature version="${project.version}">shiro-core</feature>
        <feature version="[2,5)">war</feature>
        <bundle>wrap:mvn:org.owasp.encoder/encoder/${owasp.java.encoder.version}</bundle>
        <bundle>mvn:org.apache.shiro/shiro-web/${project.version}</bundle>
    </feature>

    <!-- 3rd party support (alphabetized please): -->

    <feature name="shiro-aspectj" version="${project.version}">
        <feature version="${project.version}">shiro-core</feature>
        <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.aspectj/${aspectj.bundle.version}</bundle>
        <bundle>mvn:org.apache.shiro/shiro-aspectj/${project.version}</bundle>
    </feature>

    <feature name="shiro-cas" version="${project.version}">
        <feature prerequisite='true'>wrap</feature>
        <feature version="${project.version}">shiro-web</feature>
        <bundle dependency='true'>wrap:mvn:org.jasig.cas.client/cas-client-core/${cas.client.core.version}$Export-Package=org.jasig*;version=${cas.client.core.version}</bundle>
        <bundle>mvn:org.apache.shiro/shiro-cas/${project.version}</bundle>
    </feature>

    <feature name="shiro-ehcache" version="${project.version}">
        <feature version="${project.version}">shiro-core</feature>
        <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ehcache/${ehcache.bundle.version}</bundle>
        <bundle>mvn:org.apache.shiro/shiro-ehcache/${project.version}</bundle>
    </feature>

    <feature name="shiro-hazelcast" version="${project.version}">
        <feature version="${project.version}">shiro-core</feature>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-jta_1.1_spec/1.1.1</bundle>
        <bundle>mvn:org.apache.geronimo.specs/geronimo-annotation_1.3_spec/1.1</bundle>
        <bundle>mvn:com.hazelcast/hazelcast-all/${hazelcast.version}</bundle>
        <bundle>mvn:org.apache.shiro/shiro-hazelcast/${project.version}</bundle>
    </feature>

    <!--
    TODO enable when openid4j module is done
    <feature name="shiro-openid4j" version="${project.version}">
        <feature version="${project.version}">shiro-core</feature>
        <feature version="${project.version}">shiro-web</feature>
        <feature version="[3,4)">spring</feature>
        TODO: is there an openid4j OSGi bundle?
        <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.openid4j/${openid4j.version}</bundle>
        <bundle>mvn:org.apache.shiro/shiro-openid4j/${project.version}</bundle>
    </feature>
    -->

    <feature name="shiro-quartz" version="${project.version}">
        <feature version="${project.version}">shiro-core</feature>
        <bundle dependency='true'>mvn:commons-collections/commons-collections/${commons.collections.version}</bundle>
        <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.c3p0/${c3p0-bundle-version}</bundle>
        <bundle dependency='true'>mvn:com.zaxxer/HikariCP-java7/${hikaricp-version}</bundle>
        <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.quartz/${quartz.bundle.version}</bundle>
        <bundle>mvn:org.apache.shiro/shiro-quartz/${project.version}</bundle>
    </feature>

    <feature name="shiro-spring" version="${project.version}">
        <feature version="${project.version}">shiro-web</feature>
        <feature version="[4,6)">spring</feature>
        <bundle>mvn:org.apache.shiro/shiro-spring/${project.version}</bundle>
    </feature>

</features>
