<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.taverna.commonactivities</groupId>
		<artifactId>taverna-common-activities</artifactId>
		<version>2.1.0-incubating-SNAPSHOT</version>
	</parent>
	<artifactId>taverna-spreadsheet-import-activity</artifactId>
	<packaging>bundle</packaging>
	<name>Apache Taverna Spreadsheet Import Activity</name>
	<description>Activity to import data from spreadsheet files</description>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.felix</groupId>
				<artifactId>maven-bundle-plugin</artifactId>
				<extensions>true</extensions>
				<configuration>
					<instructions>
						<Private-Package>org.apache.poi.*;-split-package:=merge-first,org.openxmlformats.schemas.*,schemasMicrosoftCom*,schemaorg_apache_xmlbeans.system.*,org.odftoolkit.*,com.csvreader.*</Private-Package>
						<Import-Package>!org.apache.poi.hdgf.extractor,
                                                        !org.apache.poi.hslf.extractor,
                                                        !org.apache.poi.hwpf.extractor,
                                                        !org.apache.poi.sl.*,
                                                        org.apache.xmlbeans.impl.schema,
                                                        !junit.*,
                                                        !org.openxmlformats.schemas.*,
                                                        !schemasMicrosoftComOfficePowerpoint,
                                                        !schemasMicrosoftComOfficeWord,
                                                        *
                                                </Import-Package>
					</instructions>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-reference-api</artifactId>
			<version>${taverna.engine.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-workflowmodel-api</artifactId>
			<version>${taverna.engine.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi</artifactId>
			<version>${poi.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.poi</groupId>
			<artifactId>poi-ooxml</artifactId>
			<version>${poi.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.apache.xmlbeans</groupId>
					<artifactId>xmlbeans</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<!-- FIXME: Use Apache ODFDom (incubating) -->
			<groupId>org.odftoolkit</groupId>
			<artifactId>odfdom-java</artifactId>
			<version>${odfdom.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>net.sourceforge.javacsv</groupId>
			<artifactId>javacsv</artifactId>
			<version>${javacsv.version}</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.xmlbeans</groupId>
			<artifactId>com.springsource.org.apache.xmlbeans</artifactId>
			<version>${xmlbeans.version}</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>${log4j.version}</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.taverna.engine</groupId>
			<artifactId>taverna-activity-test-utils</artifactId>
			<version>${taverna.engine.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

  <repositories>

    <!-- for outdated odfdom -->
    <repository>
        <id>mygrid-ext-release-local</id>
        <name>myGrid ext-release-local</name>
        <url>http://repository.mygrid.org.uk/artifactory/ext-release-local</url>
        <releases />
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
    </repository>

  </repositories>


</project>
