<?xml version="1.0" encoding="UTF-8"?>
<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.felix</groupId>
    <artifactId>servicediagnostics.parent</artifactId>
    <version>0.1.3</version>
    <relativePath>../parent/pom.xml</relativePath>
  </parent>

  <artifactId>org.apache.felix.servicediagnostics.plugin</artifactId>
  <packaging>bundle</packaging>
  <version>0.1.4-SNAPSHOT</version>
  <name>Apache Felix Web Console Service Diagnostics Plugin</name>
  <description>
    This is a plugin for the Apache Felix OSGi web console providing a graphical representation of services and missing required dependencies.
  </description>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/webconsole-plugins/servicediagnostics/core</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/webconsole-plugins/servicediagnostics/core</developerConnection>
    <url>http://svn.apache.org/viewvc/felix/trunk/webconsole-plugins/servicediagnostics/core</url>
  </scm>

  <dependencies>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.webconsole</artifactId>
      <version>4.2.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.shell</artifactId>
      <version>1.4.3</version>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.gogo.command</artifactId>
      <version>0.10.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>javax.servlet</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.scala-lang</groupId>
      <artifactId>scala-library</artifactId>
      <version>2.10.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <configuration>
          <instructions>
            <Bundle-Category>webconsole</Bundle-Category>
            <Bundle-SymbolicName> ${project.artifactId} </Bundle-SymbolicName>
            <Bundle-Activator>
              org.apache.felix.servicediagnostics.impl.Activator
            </Bundle-Activator>
            <Export-Package>
              org.apache.felix.servicediagnostics;version=0.1
            </Export-Package>
            <Import-Package>
            <!-- make imports on webconsole optional, so that core diagnostics engine can be used independently -->
              *;resolution:=optional
            </Import-Package>
            <Private-Package>
              org.apache.felix.servicediagnostics.impl,
              org.apache.felix.servicediagnostics.webconsole,
              org.apache.felix.servicediagnostics.shell,
            </Private-Package>
            <Include-Resource>
              {maven-resources}
            </Include-Resource>
          </instructions>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <includes>
            <include>src/**</include>
          </includes>
          <excludes>
            <exclude>src/main/appended-resources/**</exclude>
            <exclude>src/main/resources/html/js/jquery-1.7.1.min.js</exclude>
            <exclude>src/main/resources/html/js/raphael-1.3.1.min.js</exclude>
            <exclude>src/main/resources/html/js/graffle-1.3.1.js</exclude>
            <exclude>src/main/resources/html/js/graph.js</exclude>
            <exclude>src/main/resources/html/js/diagnostics.js</exclude>
          </excludes>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
