<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>7.6.8-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>jetty-osgi-boot</artifactId>
  <name>Jetty :: OSGi :: Boot</name>
  <description>Jetty OSGi Boot bundle</description>
  <properties>
    <bundle-symbolic-name>${project.groupId}.boot</bundle-symbolic-name>
  </properties>
  <dependencies>
    <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.jetty</groupId>
      <artifactId>jetty-nested</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>
                <executions>
                    <execution>
                        <id>bundle-manifest</id>
                        <phase>process-classes</phase>
                        <goals>
                            <goal>manifest</goal> 
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <instructions>
                        <Bundle-SymbolicName>org.eclipse.jetty.osgi.boot;singleton:=true</Bundle-SymbolicName>
                        <Bundle-Name>Jetty OSGi Boot</Bundle-Name>
                        <Bundle-Activator>org.eclipse.jetty.osgi.boot.JettyBootstrapActivator</Bundle-Activator>
                        <Bundle-RequiredExecutionEnvironment>J2SE-1.5</Bundle-RequiredExecutionEnvironment>
                        <Export-Package>org.eclipse.jetty.osgi.boot;version="${parsedVersion.osgiVersion}",org.eclipse.jetty.osgi.boot.utils,org.eclipse.jetty.osgi.nested;version="${parsedVersion.osgiVersion}"</Export-Package> 
                        <!-- disable the uses directive: jetty will accomodate pretty much any versions
                        of the packages it uses; no need to reflect some tight dependency determined at
                        compilation time. --> 
                        <_nouses>true</_nouses>
                        <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="2.5.0",
 javax.servlet.http;version="2.5.0",
 javax.transaction;version="1.1.0";resolution:=optional,
 javax.transaction.xa;version="1.1.0";resolution:=optional,
 org.osgi.framework,
 org.osgi.service.cm;version="1.2.0",
 org.osgi.service.packageadmin,
 org.osgi.service.startlevel;version="1.0.o",
 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,
 org.eclipse.jetty.nested;resolution:=optional,
 *
                        </Import-Package>
                        <DynamicImport-Package>org.eclipse.jetty.*;version="[7.6,8)"</DynamicImport-Package>
                        <!--Require-Bundle/-->
                        <!-- Bundle-RequiredExecutionEnvironment>J2SE-1.5</Bundle-RequiredExecutionEnvironment --> 
                    </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>
