<!--
  ~ This work is part of OpenLDAP Software <http://www.openldap.org/>.
  ~
  ~ Copyright 1998-2014 The OpenLDAP Foundation.
  ~ All rights reserved.
  ~
  ~ Redistribution and use in source and binary forms, with or without
  ~ modification, are permitted only as authorized by the OpenLDAP
  ~ Public License.
  ~
  ~ A copy of this license is available in the file LICENSE in the
  ~ top-level directory of the distribution or, alternatively, at
  ~ <http://www.OpenLDAP.org/license.html>.
  -->
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.openldap</groupId>
    <artifactId>sentry</artifactId>
    <packaging>jar</packaging>
    <name>Fortress Sentry</name>
    <version>1.0-RC39</version>
    <description>Sentry is an ANSI RBAC INCITS 359 compliant policy enforcement engine.</description>
    <url>http://www.openldap.org/fortress/</url>
    <licenses>
        <license>
            <name>OpenLDAP Public License</name>
            <url>http://www.OpenLDAP.org/license.html</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
    <scm>
        <url>http://www.openldap.org/software/repo/openldap-fortress-realm.git</url>
        <connection>git://git.openldap.org/openldap-fortress-realm.git</connection>
    </scm>
    <developers>
        <developer>
            <id>smckinney</id>
            <name>Shawn McKinney</name>
            <email>smckinney@symas.com</email>
        </developer>
    </developers>
    <dependencies>
        <dependency>
            <groupId>org.openldap</groupId>
            <artifactId>fortress</artifactId>
            <version>1.0-RC39</version>
        </dependency>
    </dependencies>
</project>