<?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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <artifactId>ruta-docbook</artifactId>
  <packaging>pom</packaging>
  <parent>
    <groupId>org.apache.uima</groupId>
    <artifactId>ruta-parent</artifactId>
    <version>2.6.1</version>
    <relativePath>../ruta-parent/pom.xml</relativePath>
  </parent>
  <name>Apache UIMA Ruta Documentation</name>
  <url>${uimaWebsiteUrl}</url>
  <scm>
  	<url>http://svn.apache.org/viewvc/uima/ruta/tags/ruta-2.6.1/ruta-docbook</url>
  	<connection>scm:svn:http://svn.apache.org/repos/asf/uima/ruta/tags/ruta-2.6.1/ruta-docbook</connection>
  	<developerConnection>scm:svn:https://svn.apache.org/repos/asf/uima/ruta/tags/ruta-2.6.1/ruta-docbook</developerConnection>
  </scm>
  <properties>
  	<uimaScmProject>${project.artifactId}</uimaScmProject>
  	<bookNameRoot>tools.ruta.book</bookNameRoot>
  	<maven.deploy.skip>true</maven.deploy.skip>
  </properties>
</project>