<?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 v1.0 -->
<!--# which accompanies this distribution, and is available at -->
<!--# http://www.eclipse.org/legal/epl-v10.html -->
<!--# -->
<!--# Contributors: -->
<!--# Christophe Loetz (Loetz GmbH&Co.KG) - initial 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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.eclipse.osbp.releng.maven</groupId>
        <artifactId>org.eclipse.osbp.releng.maven.parent.mbp2</artifactId>
        <version>0.9.0-SNAPSHOT</version>
        <relativePath/>
    </parent>

    <artifactId>org.eclipse.osbp.dependencies.bundle.vaadin.addon.animator</artifactId>

    <packaging>bundle</packaging>

    <version>2.0.0-SNAPSHOT</version>

    <properties>
        <osbp.build.ignore.baseline>true</osbp.build.ignore.baseline>
    </properties>

    <scm>
        <connection>${osbp.scm.connection}</connection>
        <developerConnection>${osbp.scm.connection.dev}</developerConnection>
        <tag>HEAD</tag>
    </scm>

    <dependencies>
		<!-- CQ: https://dev.eclipse.org/ipzilla/show_bug.cgi?id=12096 -->
        <dependency>
            <groupId>org.vaadin.addons</groupId>
            <artifactId>animator</artifactId>
            <version>2.0.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>${mbp.version}</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-Name>OSBP: Animator Addon for Vaadin</Bundle-Name>
                        <Bundle-Version>2.0.0.${osgi-version-qualifier}</Bundle-Version>
                        <Bundle-SymbolicName>animator.osgi</Bundle-SymbolicName>
                        <Embed-Dependency>
                            groupId=org.vaadin.addons;artifactId=animator;version=2.0.0;scope=compile;inline=true
                        </Embed-Dependency>
                        <Export-Package>
                            org.vaadin.jouni*;version=2.0.0
                        </Export-Package>
                        <Require-Bundle>
                            com.vaadin.client;bundle-version="[7.7.6,7.8.0)",
                            com.vaadin.client-compiled;bundle-version="[7.7.6,7.8.0)",
                            com.vaadin.server;bundle-version="[7.7.6,7.8.0)",
                            com.vaadin.shared;bundle-version="[7.7.6,7.8.0)",
                            dom.osgi;bundle-version="0.1.0"
                        </Require-Bundle>
                        <Import-Package>
                        </Import-Package>
                        <Vaadin-Package-Version>1</Vaadin-Package-Version>
                        <Vaadin-Widgetsets>org.vaadin.jouni.animator.AnimatorWidgetset</Vaadin-Widgetsets>
						<Include-Resource>{maven-resources},LICENSE.txt,about_files/=about_files,META-INF/=META-INF/,about.html,about.ini,about.mappings,about.properties</Include-Resource>
                        <_nouses>true</_nouses>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <repositories>
        <repository>
            <id>vaadin-addons</id>
            <url>http://maven.vaadin.com/vaadin-addons</url>
        </repository>
    </repositories>
    <groupId>org.eclipse.osbp.dependencies</groupId>
</project>
