<?xml version="1.0" encoding="UTF-8"?>
<!--#======================================================================= -->
<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany). -->
<!--# All rights reserved. This program and the accompanying materials -->
<!--# are made available under the terms of the Eclipse Public License 2.0  -->
<!--# which accompanies this distribution, and is available at -->
<!--# https://www.eclipse.org/legal/epl-2.0/    -->
<!--#                                           -->
<!--# SPDX-License-Identifier: EPL-2.0          -->
<!--# -->
<!--# Contributors: -->
<!--# Christophe Loetz  (Loetz GmbH&Co.KG) - Initial implementation API and implementation -->
<!--#======================================================================= -->
<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.eclipse.osbp.technologystack</groupId>
        <artifactId>org.eclipse.osbp.technologystack</artifactId>
        <version>0.9.0-SNAPSHOT</version>
        <relativePath>..</relativePath>
    </parent>

    <artifactId>org.eclipse.osbp.technologystack.postgresql.feature</artifactId>
    <packaging>eclipse-feature</packaging>

    <build>
        <plugins>
			<plugin>
				<groupId>org.eclipse.tycho.extras</groupId>
				<artifactId>tycho-source-feature-plugin</artifactId>
				<version>${tycho-version}</version>
				<executions>
					<execution>
						<id>source-feature</id>
						<phase>package</phase>
						<goals>
							<goal>source-feature</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<labelSuffix> (source)</labelSuffix>
					<excludes>
						<feature id="org.eclipse.osbp.dependencies.feature.postgresql" />
					</excludes>
				</configuration>
			</plugin>
            <plugin>
                <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250 
					is not fixed -->
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-p2-plugin</artifactId>
                <version>${tycho-version}</version>
                <executions>
                    <execution>
                        <id>attached-p2-metadata</id>
                        <phase>package</phase>
                        <goals>
                            <goal>p2-metadata</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
					<execution>
						<id>javadoc-jar</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
							<skip>true</skip>
							<!-- switch on dependency-driven aggregation -->
							<includeDependencySources>true</includeDependencySources>
<!-- 							<dependencySourceIncludes> -->
<!-- 								<dependencySourceInclude>org.eclipse.osbp.technologystack:*</dependencySourceInclude> -->
<!-- 							</dependencySourceIncludes> -->
							<dependencySourceExcludes>
								<!-- exclude ONLY commons-cli artifacts -->
								<dependencySourceExclude>commons-cli:*</dependencySourceExclude>
								<dependencySourceExclude>org.eclipse.xpand:*</dependencySourceExclude>
								<dependencySourceExclude>org.eclipse.xtend:*</dependencySourceExclude>
								<dependencySourceExclude>org.eclipse.equinox:*</dependencySourceExclude>
							</dependencySourceExcludes>
						</configuration>
					</execution>
				</executions>
			</plugin>
            
        </plugins>
    </build>

    <dependencies>
    	<dependency>
    		<groupId>org.eclipse.osbp.gemini.dbaccess.postgresql</groupId>
    		<artifactId>org.eclipse.gemini.dbaccess.postgresql.feature</artifactId>
    		<version>1.1.0-SNAPSHOT</version>
    		<type>eclipse-feature</type>
    	</dependency>
    	<dependency>
    		<groupId>org.eclipse.osbp.dependencies</groupId>
    		<artifactId>org.eclipse.osbp.dependencies.feature.postgresql</artifactId>
    		<version>42.2.2-SNAPSHOT</version>
    		<type>eclipse-feature</type>
    	</dependency>
    </dependencies>
</project>
