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

  <parent>
    <groupId>org.apache.uima</groupId>
    <artifactId>uimaj-parent</artifactId>
    <version>3.4.0</version>
    <relativePath>../uimaj-parent/pom.xml</relativePath>
  </parent>

  <artifactId>uimaj-v3migration-jcas</artifactId>
  <packaging>jar</packaging>
  <name>Apache UIMA Base: ${project.artifactId}</name>
  <description>Tools for migrating to V3 for JCas</description>
  <url>${uimaWebsiteUrl}</url>

  <dependencies>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-core</artifactId>
      <version>${project.parent.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.uima</groupId>
      <artifactId>uimaj-test-util</artifactId>
      <version>${project.parent.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>    <!-- apache v2 license  2016 checked -->
      <groupId>com.github.javaparser</groupId>
      <artifactId>javaparser-core</artifactId>
      <!-- version>3.1.1</version -->
      <version>3.2.2</version>  <!-- latest as of May 2017 -->
    </dependency>
    
    <!-- needed for UimaDecompiler class-->
    <dependency>  <!-- Apache v2 license  2016 checked -->
      <groupId>org.bitbucket.mstrobel</groupId>
      <artifactId>procyon-compilertools</artifactId>
      <version>0.5.32</version>
    </dependency>
    
    <!-- Apache v2 license  2016 checked. Also transitive include from above, 
         listed here so that binary assembly for distribution includes the jar -->
    <dependency>
      <groupId>org.bitbucket.mstrobel</groupId>
      <artifactId>procyon-core</artifactId>
      <version>0.5.32</version>
    </dependency>
  </dependencies>
</project>