<?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.
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd ">
  <modelVersion>4.0.0</modelVersion>

  <!-- =================================================================== -->
  <!-- P R O J E C T   D E S C R I P T I O N                               -->
  <!-- =================================================================== -->

  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>10</version>
    <relativePath />
  </parent>

  <groupId>org.apache.jackrabbit</groupId>
  <artifactId>jackrabbit-parent</artifactId>
  <name>Jackrabbit Parent POM</name>
  <version>2.8.2</version>
  <packaging>pom</packaging>

  <issueManagement>
    <system>Jira</system>
    <url>http://issues.apache.org/jira/browse/JCR</url>
  </issueManagement>

  <properties>
    <jetty.version>6.1.22</jetty.version>
    <tika.version>1.7</tika.version>
    <project.reporting.outputEncoding>${project.build.sourceEncoding}</project.reporting.outputEncoding>
    <clirr.baseline.version>2.2.0</clirr.baseline.version>
    <!-- Note that we're using SLF4J API version 1.6 when compiling     -->
    <!-- core Oak components but more recent SLF4J and Logback versions -->
    <!-- when compiling and running test cases and the oak-run jar.     -->
    <!-- This way it's possible to use Oak also in environments that    -->
    <!-- only provide SLF4J version 1.6, while still using a more       -->
    <!-- recent version when we are in control the runtime environment. -->
    <slf4j.api.version>1.6.6</slf4j.api.version>
    <slf4j.version>1.7.4</slf4j.version> <!-- sync with logback version -->
    <logback.version>1.0.12</logback.version>
  </properties>

  <url>http://jackrabbit.apache.org/</url>
  <inceptionYear>2004</inceptionYear>
  <description>
    The Apache Jackrabbit™ content repository is a fully conforming
    implementation of the Content Repository for Java Technology API
    (JCR, specified in JSR 170 and 283). A content repository is a
    hierarchical content store with support for structured and unstructured
    content, full text search, versioning, transactions, observation, and more.
    Apache Jackrabbit is a project of the Apache Software Foundation.
  </description>

  <!-- =================================================================== -->
  <!-- B U I L D   S E T T I N G S                                         -->
  <!-- =================================================================== -->
  <prerequisites>
    <maven>2.0.9</maven>
  </prerequisites>

  <profiles>
    <profile>
      <id>pedantic</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.rat</groupId>
            <artifactId>apache-rat-plugin</artifactId>
            <executions>
              <execution>
                <phase>verify</phase>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>jdk-tools</id>
      <activation>
        <file><exists>${java.home}/../lib/tools.jar</exists></file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <dependencies>
              <dependency>
                <groupId>sun</groupId>
                <artifactId>tools</artifactId>
                <version>1.0</version>
                <scope>system</scope>
                <systemPath>${java.home}/../lib/tools.jar</systemPath>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>integrationTesting</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>integration-test</goal>
                  <goal>verify</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

  <build>
    <plugins>
      <!-- JCR-3327: Upgrade to Java SE 6 -->
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <target>1.6</target>
          <source>1.6</source>
        </configuration>
      </plugin>
      <!-- Generate aggregate Javadocs -->
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <aggregate>true</aggregate>
          <links>
            <link>http://docs.oracle.com/javase/6/docs/api/</link>
            <link>http://www.day.com/maven/javax.jcr/javadocs/jcr-2.0/</link>
          </links>
        </configuration>
      </plugin>
      <!-- JCR-988: IDE plugins -->
      <plugin>
        <!-- http://maven.apache.org/plugins/maven-idea-plugin/ -->
        <artifactId>maven-idea-plugin</artifactId>
        <configuration>
          <downloadSources>true</downloadSources>
          <jdkLevel>1.6</jdkLevel>
        </configuration>
      </plugin>
      <plugin>
        <!-- http://maven.apache.org/plugins/maven-eclipse-plugin/ -->
        <artifactId>maven-eclipse-plugin</artifactId>
        <configuration>
          <downloadSources>true</downloadSources>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-release-plugin</artifactId>
        <configuration>
          <autoVersionSubmodules>true</autoVersionSubmodules>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>release.properties</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
    <pluginManagement>
      <!-- JCRSITE-9: Fix versions of key Maven plugins      -->
      <!-- Note that many plugin versions are set already in -->
      <!-- the Apache parent POM.                            -->
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.1</version>
          <configuration>
            <useReleaseProfile>false</useReleaseProfile>
            <goals>deploy</goals>
            <arguments>-Papache-release,pedantic</arguments>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.18</version>
        </plugin>
        <plugin>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>2.10</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>2.1.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-rar-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-idea-plugin</artifactId>
          <version>2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>2.8</version>
        </plugin>
        <!--  Default configuration of OSGi bundling (JCR-1342) -->
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>2.3.4</version>
          <inherited>true</inherited>
          <configuration>
            <instructions>
              <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
              <Bundle-Category>jcr,jackrabbit</Bundle-Category>
              <Bundle-DocURL>
                http://jackrabbit.apache.org
              </Bundle-DocURL>
            </instructions>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.7</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>2.5.1</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>2.1</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.6.1</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>2.18</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.4</version>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <version>2.4</version>
        <configuration>
          <targetJdk>1.6</targetJdk>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>1.1.1</version>
        <configuration>
          <xmlOutput>true</xmlOutput>
          <findbugsXmlOutput>true</findbugsXmlOutput>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>javax.jcr</groupId>
        <artifactId>jcr</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.jackrabbit</groupId>
        <artifactId>jackrabbit-jcr-benchmark</artifactId>
        <version>1.5.0</version>
      </dependency>
      <dependency>
        <groupId>concurrent</groupId>
        <artifactId>concurrent</artifactId>
        <version>1.3.4</version>
      </dependency>
      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>3.2.1</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
        <version>1.0.1</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.api.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>3.1</version>
        <!-- JCR-683: Exclude bad transitive dependencies -->
        <exclusions>
          <exclusion>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.lucene</groupId>
        <artifactId>lucene-core</artifactId>
        <version>3.6.0</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-core</artifactId>
        <version>${tika.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.tika</groupId>
        <artifactId>tika-parsers</artifactId>
        <version>${tika.version}</version>
        <exclusions>
          <!-- Exclude the NetCDF and the related commons-httpclient -->
          <!-- libraries since the related NetCDF and HDF file       -->
          <!-- formats are not widely used beyond scientific data.   -->
          <exclusion>
            <groupId>edu.ucar</groupId>
            <artifactId>netcdf</artifactId>
          </exclusion>
          <exclusion>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
          </exclusion>
          <!-- Exclude the Apache MIME4J library as it's used for    -->
          <!-- parsing raw email messages and mbox files, which are  -->
          <!-- typically only needed by a file-based email system.   -->
          <exclusion>
            <groupId>org.apache.james</groupId>
            <artifactId>apache-mime4j-core</artifactId>
          </exclusion>
          <exclusion>
            <groupId>org.apache.james</groupId>
            <artifactId>apache-mime4j-dom</artifactId>
          </exclusion>
          <!-- Exclude the Commons Compress library as we don't want -->
          <!-- to parse compressed archives like zips by default.    -->
          <exclusion>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-compress</artifactId>
          </exclusion>
          <!-- Exclude the ASM library as it's only used for parsing -->
          <!-- Java class files, for which there's typically no need -->
          <!-- in a content repository.                              -->
          <exclusion>
            <groupId>asm</groupId>
            <artifactId>asm</artifactId>
          </exclusion>
          <!-- Exclude the extractor library for EXIF and other      -->
          <!-- image metadata as we normally don't want to parse     -->
          <!-- images for full text indexing.                        -->
          <exclusion>
            <groupId>com.drewnoakes</groupId>
            <artifactId>metadata-extractor</artifactId>
          </exclusion>
          <!-- Exclude the Rome library as we normally don't want to -->
          <!-- parse RSS and Atom feeds for full text indexing.      -->
          <exclusion>
            <groupId>rome</groupId>
            <artifactId>rome</artifactId>
          </exclusion>
          <!-- Exclude the Boilerpipe library as we don't use the    -->
          <!-- BoilerpipeContentHandler functionality from Tika.     -->
          <exclusion>
            <groupId>de.l3s.boilerpipe</groupId>
            <artifactId>boilerpipe</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.apache.derby</groupId>
        <artifactId>derby</artifactId>
        <version>10.5.3.0_1</version>
      </dependency>
      <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
        <version>1.0</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.3</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.2.1</version>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jsp-2.1-jetty</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mortbay.jetty</groupId>
        <artifactId>jetty-util</artifactId>
        <version>${jetty.version}</version>
      </dependency>
      <dependency>
        <groupId>biz.aQute</groupId>
        <artifactId>bndlib</artifactId>
        <version>1.43.0</version>
      </dependency>
      <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>2.1_3</version>
      </dependency>
      <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>3.0</version>
      </dependency>
      <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20070829</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.10</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <!-- =================================================================== -->
  <!-- M A I L I N G   L I S T S                                           -->
  <!-- =================================================================== -->
  <mailingLists>
    <mailingList>
      <name>Jackrabbit Announce List</name>
      <subscribe>announce-subscribe@jackrabbit.apache.org</subscribe>
      <unsubscribe>announce-unsubscribe@jackrabbit.apache.org</unsubscribe>
      <archive>
        http://mail-archives.apache.org/mod_mbox/jackrabbit-announce/
      </archive>
      <otherArchives>
        <otherArchive>
          http://jackrabbit.markmail.org/
        </otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Jackrabbit Users List</name>
      <subscribe>users-subscribe@jackrabbit.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@jackrabbit.apache.org</unsubscribe>
      <post>users at jackrabbit.apache.org</post>
      <archive>
        http://mail-archives.apache.org/mod_mbox/jackrabbit-users/
      </archive>
      <otherArchives>
        <otherArchive>
          http://jackrabbit.markmail.org/
        </otherArchive>
        <otherArchive>
          http://dir.gmane.org/gmane.comp.apache.jackrabbit.user
        </otherArchive>
        <otherArchive>
          http://www.mail-archive.com/users@jackrabbit.apache.org/
        </otherArchive>
        <otherArchive>
          http://www.nabble.com/Jackrabbit---Users-f14897.html
        </otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Jackrabbit Development List</name>
      <subscribe>dev-subscribe@jackrabbit.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@jackrabbit.apache.org</unsubscribe>
      <post>dev at jackrabbit.apache.org</post>
      <archive>
        http://mail-archives.apache.org/mod_mbox/jackrabbit-dev/
      </archive>
      <otherArchives>
        <otherArchive>
          http://jackrabbit.markmail.org/
        </otherArchive>
        <otherArchive>
          http://dir.gmane.org/gmane.comp.apache.jackrabbit.devel
        </otherArchive>
        <otherArchive>
          http://www.mail-archive.com/dev@jackrabbit.apache.org/
        </otherArchive>
        <otherArchive>
          http://www.mail-archive.com/jackrabbit-dev@incubator.apache.org/
        </otherArchive>
        <otherArchive>
          http://www.nabble.com/Jackrabbit---Dev-f371.html
        </otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Jackrabbit Source Control List</name>
      <subscribe>commits-subscribe@jackrabbit.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@jackrabbit.apache.org</unsubscribe>
      <archive>
        http://mail-archives.apache.org/mod_mbox/jackrabbit-commits/
      </archive>
      <otherArchives>
        <otherArchive>
          http://jackrabbit.markmail.org/
        </otherArchive>
      </otherArchives>
    </mailingList>
  </mailingLists>

  <!-- =================================================================== -->
  <!-- C O M M I T T E R S                                                 -->
  <!-- =================================================================== -->
  <developers>
    <developer>
      <name>Alexander Klimetschek</name>
      <id>alexkli</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Alex Parvulescu</name>
      <id>alexparvulescu</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Angela Schreiber</name>
      <id>angela</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Ard Schrijvers</name>
      <id>ard</id>
      <organization>Hippo</organization>
      <organizationUrl>http://www.hippo.nl/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Christoph Kiehl</name>
      <id>ckiehl</id>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Christophe Lombart</name>
      <id>clombart</id>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
    </developer>
    <developer>
      <name>Claus Köll</name>
      <id>ckoell</id>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
    </developer>
    <developer>
      <name>David Nuescheler</name>
      <id>uncled</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Dominique Pfister</name>
      <id>dpfister</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Edgar Poce</name>
      <id>edgarpoce</id>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
    </developer>
    <developer>
      <name>Esteban Franqueiro</name>
      <id>eaf</id>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
    </developer>
    <developer>
      <name>Felix Meschberger</name>
      <id>fmeschbe</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Jukka Zitting</name>
      <id>jukka</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC chair</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Julian Reschke</name>
      <id>reschke</id>
      <organization>greenbytes GmbH</organization>
      <organizationUrl>http://www.greenbytes.de/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Marcel Reutegger</name>
      <id>mreutegg</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Martijn Hendriks</name>
      <id>martijnh</id>
      <organization>GX</organization>
      <organizationUrl>http://www.gx.nl/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Michael Dürig</name>
      <id>mduerig</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+0</timezone>
    </developer>
    <developer>
      <name>Peeter Piegaze</name>
      <id>ppiegaze</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>-5</timezone>
    </developer>
    <developer>
      <name>Przemo Pakulski</name>
      <id>ppakulski</id>
      <organization>Cognifide</organization>
      <organizationUrl>http://www.cognifide.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Roy T. Fielding</name>
      <id>fielding</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <name>Sébastien Launay</name>
      <id>sebastien</id>
      <organization>Anyware Technologies</organization>
      <organizationUrl>http://www.anyware-tech.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Serge Huber</name>
      <id>shuber</id>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Stefan Guggisberg</name>
      <id>stefan</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Sylvain Wallez</name>
      <id>sylvain</id>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Thomas Müller</name>
      <id>thomasm</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Tobias Bocanegra</name>
      <id>tripod</id>
      <organization>Adobe</organization>
      <organizationUrl>http://www.day.com/</organizationUrl>
      <roles>
        <role>committer</role>
        <role>PMC member</role>
      </roles>
      <timezone>+1</timezone>
    </developer>

    <!-- EMERITUS MEMBERS -->
    <developer>
      <name>Andrew Savory</name>
      <id>asavory</id>
      <roles>
        <role>emeritus</role>
      </roles>
      <timezone>+0</timezone>
    </developer>
    <developer>
      <name>Brian Moseley</name>
      <id>moseley</id>
      <organization>Open Source Applications Foundation (OSAF)</organization>
      <organizationUrl>http://www.osafoundation.org/</organizationUrl>
      <roles>
        <role>emeritus</role>
      </roles>
      <timezone>-8</timezone>
    </developer>
    <developer>
      <name>Gianugo Rabellino</name>
      <id>gianugo</id>
      <roles>
        <role>emeritus</role>
      </roles>
      <timezone>+1</timezone>
    </developer>
    <developer>
      <name>Paul Russell</name>
      <id>prussell</id>
      <roles>
        <role>emeritus</role>
      </roles>
      <timezone>+0</timezone>
    </developer>
    <developer>
      <name>Stefano Mazzocchi</name>
      <id>stefano</id>
      <roles>
        <role>emeritus</role>
      </roles>
      <timezone>-5</timezone>
    </developer>
    <developer>
      <name>Tim Reilly</name>
      <id>treilly</id>
      <roles>
        <role>emeritus</role>
      </roles>
      <timezone>-5</timezone>
    </developer>
  </developers>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/maven/pom/tags/jackrabbit-2.8.2/jackrabbit-parent</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/pom/tags/jackrabbit-2.8.2/jackrabbit-parent</developerConnection>
    <url>http://svn.apache.org/viewvc/maven/pom/tags/jackrabbit-2.8.2/jackrabbit-parent</url>
  </scm>
</project>
