<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
    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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.sling</groupId>
    <artifactId>sling</artifactId>
    <version>22</version>
    <relativePath>../../../parent/pom.xml</relativePath>
  </parent>

  <artifactId>org.apache.sling.commons.log</artifactId>
  <version>4.0.2</version>
  <packaging>bundle</packaging>

    <name>Apache Sling SLF4J Implementation (Logback)</name>
  <description>
    This bundle embeds Logback which provides the SLF4J logging API.
    The embedding supports dynamic OSGi-configuration without
    requiring to edit some global filesystem based XML file.
  </description>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.log-4.0.2</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.commons.log-4.0.2</developerConnection>
    <url>http://svn.apache.org/viewvc/sling/tags/org.apache.sling.commons.log-4.0.2</url>
  </scm>

  <properties>
    <slf4j.version>1.6.4</slf4j.version>
    <logback.version>1.1.2</logback.version>
    <sling.java.version>6</sling.java.version>
    <pax-exam.version>3.5.0</pax-exam.version>

    <bundle.build.dir>
      ${basedir}/target
    </bundle.build.dir>
    <bundle.file.name>
      ${bundle.build.dir}/${project.build.finalName}.jar
    </bundle.file.name>
  </properties>

  <build>
    <pluginManagement>
      <plugins>
        <!--
        Unfortunately the <ignores> sections do not seem to
        properly work, so the sniffer is disabled by default.

        Note: 1.9 contains a call to a Java 7 specific method
        (java.nio.CharBuffer.subSequence(II)Ljava/nio/CharBuffer;)
        that is triggered when an undefined reference is found. This breaks error
        reporting on Java 5/6.
      -->
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>animal-sniffer-maven-plugin</artifactId>
          <version>1.8</version>
          <configuration>
            <skip>true</skip>
            <ignores>
              <ignore>ch.qos.logback.classic.spi*</ignore>
            </ignores>
            <signature>
              <groupId>org.codehaus.mojo.signature</groupId>
              <artifactId>java1${sling.java.version}</artifactId>
              <version>1.0</version>
            </signature>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <extensions>true</extensions>
        <configuration>
          <instructions>
            <Bundle-Activator>
              org.apache.sling.commons.log.logback.internal.Activator
            </Bundle-Activator>
            <Bundle-DocURL>
              http://sling.apache.org/site/logging.html
            </Bundle-DocURL>
            <_exportcontents>
              org.slf4j.impl;version=${slf4j.version},
              ch.qos.logback.classic*;
              ch.qos.logback.core*;
            </_exportcontents>
            <Import-Package>
              !org.slf4j.impl,
              !org.osgi.service.cm,
              !javax.servlet,
              !javax.servlet.http,
              !org.osgi.service.event,
              !javax.xml.transform,
              !javax.xml.transform.sax,
              !javax.xml.transform.stream,
              org.osgi.framework;version=1.3,
              org.slf4j;version="[1.6,1.8)",
              org.slf4j.spi;version="[1.6,1.8)",
              groovy.lang;
              javax.jms;
              javax.mail;
              javax.mail.internet;
              javax.management;
              javax.naming;
              javax.sql;
              javax.xml.parsers;
              org.codehaus.*;
              org.xml.sax.*;
              sun.reflect;resolution:=optional,
              *
            </Import-Package>
            <Export-Package>
              org.apache.sling.commons.log.logback
            </Export-Package>
            <DynamicImport-Package>
              org.osgi.service.cm;version=1.2,
              javax.servlet,
              javax.servlet.http;version=2.3,
              org.osgi.service.event;version=1.2,
              <!-- Required by WebConsole support-->
              javax.xml.transform,
              javax.xml.transform.sax,
              javax.xml.transform.stream
            </DynamicImport-Package>
            <Embed-Dependency>
              jul-to-slf4j;inline="org/slf4j/bridge/SLF4JBridgeHandler.class",
              logback-core,
              logback-classic
            </Embed-Dependency>
          </instructions>
        </configuration>
      </plugin>
      <!-- Required for pax exam-->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>reserve-network-port</id>
            <goals>
              <goal>reserve-network-port</goal>
            </goals>
            <phase>pre-integration-test</phase>
            <configuration>
              <portNames>
                <portName>http.port</portName>
              </portNames>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0-alpha-2</version>
        <executions>
          <execution>
            <goals>
              <goal>set-system-properties</goal>
            </goals>
            <phase>pre-integration-test</phase>
            <configuration>
              <properties>
                <property>
                  <name>project.bundle.file</name>
                  <value>${bundle.file.name}</value>
                </property>
                <property>
                  <name>http.port</name>
                  <value>${http.port}</value>
                </property>
              </properties>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.servicemix.tooling</groupId>
        <artifactId>depends-maven-plugin</artifactId>
        <version>1.2</version>
        <executions>
          <execution>
            <id>generate-depends-file</id>
            <goals>
              <goal>generate-depends-file</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <!-- integration tests run with pax-exam -->
      <plugin>
        <artifactId>maven-failsafe-plugin</artifactId>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <systemPropertyVariables>
            <project.bundle.file>${bundle.file.name}</project.bundle.file>
            <project.boot.file>${bundle.file.name}</project.boot.file>
            <coverage.command>${coverage.command}</coverage.command>
            <http.port>${http.port}</http.port>
          </systemPropertyVariables>
        </configuration>
      </plugin>
    </plugins>
  </build>



  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <!-- No javadocs at all -->
          <skip>true</skip>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

  <dependencies>
    <dependency>
      <groupId>biz.aQute.bnd</groupId>
      <artifactId>bnd</artifactId>
      <version>2.1.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${slf4j.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jul-to-slf4j</artifactId>
      <version>${slf4j.version}</version>
      <scope>compile</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>${logback.version}</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <version>${logback.version}</version>
      <scope>compile</scope>
    </dependency>

    <!-- OSGi Libraries not included here -->
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.core</artifactId>
      <version>4.2.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.compendium</artifactId>
      <version>4.2.0</version>
        <scope>provided</scope>
    </dependency>

    <!-- servlet API for the web console plugin -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.3</version>
    </dependency>

    <!--  OSGi Command Line Shell support -->
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.gogo.runtime</artifactId>
      <version>0.6.1</version>
      <scope>provided</scope>
    </dependency>

    <!-- testing -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>

    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.framework</artifactId>
      <version>4.4.1</version>
      <scope>test</scope>
    </dependency>

    <!-- Pax Exam Dependencies -->
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-container-forked</artifactId>
      <version>${pax-exam.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-junit4</artifactId>
      <version>${pax-exam.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.exam</groupId>
      <artifactId>pax-exam-link-mvn</artifactId>
      <version>${pax-exam.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.tinybundles</groupId>
      <artifactId>tinybundles</artifactId>
      <version>2.0.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.inject</groupId>
      <artifactId>javax.inject</artifactId>
      <version>1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.configadmin</artifactId>
      <version>1.6.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.http.bundle</artifactId>
      <version>2.2.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.4</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>net.sourceforge.htmlunit</groupId>
      <artifactId>htmlunit</artifactId>
      <version>2.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.sling</groupId>
      <artifactId>org.apache.sling.commons.logservice</artifactId>
      <version>1.0.2</version>
      <scope>test</scope>
    </dependency>

    <!-- Required for testing WebConsole Support -->
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.webconsole</artifactId>
      <version>3.1.8</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.json</groupId>
      <artifactId>json</artifactId>
      <version>20070829</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
      <version>1.2.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.http.jetty</artifactId>
      <version>2.2.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.ops4j.pax.url</groupId>
      <artifactId>pax-url-wrap</artifactId>
      <version>2.1.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.eventadmin</artifactId>
      <version>1.3.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.metatype</artifactId>
      <version>1.0.6</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.felix</groupId>
      <artifactId>org.apache.felix.scr</artifactId>
      <version>1.6.2</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <profiles>
    <!--
        copy the package such that IDEs may easily use it without
        setting the system property
    -->
    <profile>
      <id>ide</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>log-file-create</id>
                <phase>package</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <copy file="${project.build.directory}/${project.build.finalName}.jar" tofile="${project.build.directory}/slinglogback.jar" />
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>coverage</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>prepare-agent</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
                <configuration>
                  <propertyName>coverage.command</propertyName>
                  <includes>
                    <include>org.apache.sling.commons.log.logback.*</include>
                  </includes>
                </configuration>
              </execution>
              <!-- Default to setup argLine required by surefire -->
              <execution>
                <id>prepare-agent-surefire</id>
                <phase>test-compile</phase>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
                <configuration>
                  <includes>
                    <include>org.apache.sling.commons.log.logback.*</include>
                  </includes>
                </configuration>
              </execution>
              <execution>
                <id>report</id>
                <phase>post-integration-test</phase>
                <goals>
                  <goal>report</goal>
                </goals>
              </execution>
              <execution>
                <id>check</id>
                <goals>
                  <goal>check</goal>
                </goals>
                <configuration>
                  <!-- Disabling the check for now -->
                  <skip>true</skip>
                  <check>
                    <classRatio>100</classRatio>
                    <instructionRatio>90</instructionRatio>
                    <methodRatio>95</methodRatio>
                    <branchRatio>85</branchRatio>
                    <complexityRatio>85</complexityRatio>
                    <lineRatio>90</lineRatio>
                  </check>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
</profiles>
</project>
