<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">
  <parent>
    <groupId>org.eclipse.jetty.osgi</groupId>
    <artifactId>jetty-osgi-project</artifactId>
    <version>9.3.1-SNAPSHOT</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>jetty-osgi-boot</artifactId>
  <name>Jetty :: OSGi :: Boot</name>
  <description>Jetty OSGi Boot bundle</description>
  <url>http://www.eclipse.org/jetty</url>
  <properties>
    <bundle-symbolic-name>${project.groupId}.boot</bundle-symbolic-name>
  </properties>
  <dependencies>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-annotations</artifactId>
      </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-webapp</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-deploy</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-jmx</artifactId>
    </dependency>
    <dependency>
    	<groupId>org.eclipse.osgi</groupId>
    	<artifactId>org.eclipse.osgi</artifactId>
    </dependency>
    <dependency>
      <groupId>org.eclipse.osgi</groupId>
      <artifactId>org.eclipse.osgi.services</artifactId>
    </dependency>
  </dependencies>

      <build>
        <plugins>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>process-resources</phase>
                        <configuration>
                            <tasks>
                                <!--delete file="target/classes/META-INF/MANIFEST.MF" /-->
                                <copy todir="target/classes/jettyhome">
                                    <fileset dir="jettyhome">
                                        <exclude name="**/*.log" />
                                    </fileset>
                                </copy>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <executions>
                    <execution>
                        <id>artifact-jar</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>test-jar</id>
                        <goals>
                            <goal>test-jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <archive>
                        <manifestFile>target/classes/META-INF/MANIFEST.MF</manifestFile>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <Bundle-SymbolicName>org.eclipse.jetty.osgi.boot;singleton:=true</Bundle-SymbolicName>
                        <Bundle-Activator>org.eclipse.jetty.osgi.boot.JettyBootstrapActivator</Bundle-Activator>
                        <DynamicImport-Package>org.eclipse.jetty.*;version="[9.1,10.0)"</DynamicImport-Package>
                        <Import-Package>javax.mail;version="1.4.0";resolution:=optional,
 javax.mail.event;version="1.4.0";resolution:=optional,
 javax.mail.internet;version="1.4.0";resolution:=optional,
 javax.mail.search;version="1.4.0";resolution:=optional,
 javax.mail.util;version="1.4.0";resolution:=optional,
 javax.servlet;version="[3.1,3.2)",
 javax.servlet.http;version="[3.1,3.2)",
 javax.transaction;version="1.1.0";resolution:=optional,
 javax.transaction.xa;version="1.1.0";resolution:=optional,
 org.eclipse.jetty.annotations;version="9.1";resolution:=optional,
 org.eclipse.jetty.plus.webapp;version="9.1";resolution:=optional,
 org.objectweb.asm;version=4;resolution:=optional,
 org.osgi.framework,
 org.osgi.service.cm;version="1.2.0",
 org.osgi.service.packageadmin,
 org.osgi.service.startlevel;version="1.0.0",
 org.osgi.service.url;version="1.0.0",
 org.osgi.util.tracker;version="1.3.0",
 org.slf4j;resolution:=optional,
 org.slf4j.spi;resolution:=optional,
 org.slf4j.helpers;resolution:=optional,
 org.xml.sax,
 org.xml.sax.helpers,
 *
                        </Import-Package>
                        <_nouses>true</_nouses>
                    </instructions>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <configuration>
                    <onlyAnalyze>org.eclipse.jetty.osgi.boot.*</onlyAnalyze>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>
