<?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.5.0</version>
		<relativePath>../uimaj-parent/pom.xml</relativePath>
	</parent>

	<artifactId>jVinci</artifactId>
	<packaging>bundle</packaging>

	<name>Apache UIMA Base: ${project.artifactId}: Vinci Transport Library</name>
	<description>This is a protocol used by the base UIMA Collection processing manager for supporting
    networked deployment.  See UIMA-AS as a more modern alternative supporting
    more standard protocols.</description>
	<url>${uimaWebsiteUrl}</url>

	<properties>
		<postNoticeText>${ibmNoticeText}</postNoticeText>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<configuration>
					<instructions>
						<Bundle-RequiredExecutionEnvironment>${execution.environment}</Bundle-RequiredExecutionEnvironment>
						<_dsannotations>*</_dsannotations>
						<_metatypeannotations>*</_metatypeannotations>
						<Export-Package>
							org.apache.vinci.debug,
							org.apache.vinci.transport,
							org.apache.vinci.transport.*
						</Export-Package>
					</instructions>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>