<?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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
      <groupId>org.apache.maven.doxia.ide</groupId>
      <artifactId>doxia-osgi</artifactId>
      <version>1.0.0-SNAPSHOT</version>
    </parent>
    <groupId>org.apache.maven.doxia.ide</groupId>
    <artifactId>dependencies</artifactId>
    <packaging>bundle</packaging>
    <name>Doxia Tools :: Eclipse IDE - Dependencies as Bundle</name>
    <description>Make an OSGi bundle of the required non-OSGi components</description>
    <prerequisites>
        <maven>3.0.3</maven>
    </prerequisites>
    <properties>
        <doxiaVersion>1.2</doxiaVersion>
        <doxiaConverterVersion>1.2</doxiaConverterVersion>
        <maven-bundle-plugin-version>2.3.5</maven-bundle-plugin-version>
	<dollar>$</dollar>
    </properties>
    <dependencies>
        <!-- Doxia -->
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-converter</artifactId>
            <version>${doxiaConverterVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-core</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-sink-api</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-logging-api</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-apt</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-confluence</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-docbook-simple</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-fml</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-fo</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-itext</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-latex</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-rtf</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-twiki</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-xdoc</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.doxia</groupId>
            <artifactId>doxia-module-xhtml</artifactId>
            <version>${doxiaVersion}</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
		  <dumpInstructions>target/dump.txt</dumpInstructions>
                    <instructions>
		        <stamp>$${tstamp}</stamp>
			<!-- hmm, has to be updated for releases -->
 		        <Bundle-Version>1.0.0.${stamp}</Bundle-Version>
			<!-- this should work better than the above, but does not work
			     at all
		        <_snapshot>\${tstamp}</_snapshot>
			-->
			<!--
                        <Embed-Dependency>*;scope=compile|runtime;inline=true</Embed-Dependency>
                        <Export-Package>
 org.apache.maven.doxia.*;-split-package:=merge-first,org.codehaus.plexus.util,org.apache.commons.io,org.apache.commons.io.input,org.apache.commons.io.filefilter,org.apache.commons.io.output
			</Export-Package>
			-->
                        <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
			<_exportcontents>
 org.apache.maven.doxia.*,org.codehaus.plexus.util,org.apache.commons.io,org.apache.commons.io.input,org.apache.commons.io.filefilter,org.apache.commons.io.output
			</_exportcontents>
                        <Import-Package>!com.apple.mrj,!com.sun.*,!javax.*,!org.apache.commons.*,!org.apache.log,!org.apache.xmlbeans,!org.apache.tools.*,!org.apache.xml.*,!org.codehaus.*,!sun.*,*</Import-Package>
                        <Embed-Transitive>true</Embed-Transitive>
                        <_nouses>true</_nouses>
                        <_nodefaultversion>true</_nodefaultversion>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-eclipse-plugin</artifactId>
                    <version>2.8</version>
                    <configuration>
                        <projectNameTemplate>${project.groupId}-${project.artifactId}</projectNameTemplate>
                        <downloadSources>true</downloadSources>
                        <downloadJavadocs>false</downloadJavadocs>
                        <additionalBuildcommands>
                            <buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand>
                            <buildcommand>org.eclipse.pde.ManifestBuilder</buildcommand>
                            <buildcommand>org.eclipse.pde.SchemaBuilder</buildcommand>
                        </additionalBuildcommands>
                        <additionalProjectnatures>
                            <projectnature>org.eclipse.pde.PluginNature</projectnature>
                            <projectnature>org.eclipse.jdt.core.javanature</projectnature>
                        </additionalProjectnatures>
                        <classpathContainers>
                            <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>
                            <classpathContainer>org.eclipse.pde.core.requiredPlugins</classpathContainer>
                        </classpathContainers>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <version>1.0.0</version>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <lifecycleMappings>
                                <lifecycleMapping>
                                    <packagingType>bundle</packagingType>
                                    <lifecycleMappingId>org.sonatype.tycho.m2e.wrapperBundle</lifecycleMappingId>
                                </lifecycleMapping>
                            </lifecycleMappings>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.felix</groupId>
                                        <artifactId>maven-bundle-plugin</artifactId>
                                        <versionRange>${maven-bundle-plugin-version}</versionRange>
                                        <goals>
                                            <goal>bundle</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <configurator>
                                            <id>org.sonatype.tycho.m2e.wrapperBundle</id>
                                        </configurator>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.apache.felix</groupId>
                                        <artifactId>maven-bundle-plugin</artifactId>
                                        <versionRange>${maven-bundle-plugin-version}</versionRange>
                                        <goals>
                                            <goal>manifest</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore/>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>${maven-bundle-plugin-version}</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <finalName>org.apache.maven.doxia.eclipse.dependencies_${project.version}</finalName>
    </build>
</project>
