<?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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-parent</artifactId>
    <version>5.11.4</version>
  </parent>

  <artifactId>activemq-web-console</artifactId>
  <packaging>war</packaging>
  <name>ActiveMQ :: Web Console</name>
  <description>Web Console for ActiveMQ</description>

  <properties>
    <jetty.port>8080</jetty.port>
    <jetty.maven.groupid>org.mortbay.jetty</jetty.maven.groupid>
  </properties>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <outputFileNameMapping>@{artifactId}@-@{baseVersion}@@{dashClassifier?}@.@{extension}@</outputFileNameMapping>
          <packagingExcludes>
            WEB-INF/lib/jetty*.jar,
            WEB-INF/lib/servlet*.jar
          </packagingExcludes>
          <archive>
            <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
          </archive>
        </configuration>
      </plugin>
      <plugin>
          <groupId>${jetty.maven.groupid}</groupId>
        <artifactId>jetty-maven-plugin</artifactId>
        <version>${jetty-version}</version>
        <configuration>
          <connectors>
            <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
              <port>${jetty.port}</port>
              <maxIdleTime>60000</maxIdleTime>
            </connector>
          </connectors>

          <webAppConfig>
            <contextPath>/</contextPath>
          </webAppConfig>

          <systemProperties>
            <!-- enable easy connection to JConsole -->
            <systemProperty>
              <name>com.sun.management.jmxremote</name>
              <value />
            </systemProperty>

            <!-- Start an own broker -->
            <systemProperty>
              <name>webconsole.type</name>
              <value>embedded</value>
            </systemProperty>
            <systemProperty>
                <name>activemq.data</name>
                <value>${project.build.directory}/activemq-data</value>
            </systemProperty>

            <!--
               Use the following configuration to connect to a remote broker using JMX
                        <systemProperty>
                          <name>webconsole.type</name>
                          <value>properties</value>
                        </systemProperty>
                        <systemProperty>
                          <name>webconsole.jms.url</name>
                          <value>tcp://localhost:61616</value>
                        </systemProperty>
                        <systemProperty>
                          <name>webconsole.jmx.url</name>
                          <value>service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi</value>
                        </systemProperty>
            -->
          </systemProperties>
          <scanIntervalSeconds>10</scanIntervalSeconds>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <executions>
          <execution>
            <id>bundle-manifest</id>
            <phase>process-classes</phase>
            <goals>
              <goal>manifest</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <supportedProjectTypes>
            <supportedProjectType>jar</supportedProjectType>
            <supportedProjectType>bundle</supportedProjectType>
            <supportedProjectType>war</supportedProjectType>
          </supportedProjectTypes>
          <instructions>
            <Webapp-Context>activemqweb</Webapp-Context>
            <Web-ContextPath>activemqweb</Web-ContextPath>
            <Bundle-ClassPath>.,WEB-INF/classes</Bundle-ClassPath>
            <Embed-Directory>WEB-INF/lib</Embed-Directory>
            <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
            <Embed-Transitive>true</Embed-Transitive>
            <Export-Package>!*</Export-Package>
            <Import-Package>
              org.xml.sax,
              org.xml.sax.helpers,
              javax.xml.bind,
              javax.xml.parsers,
              javax.xml.stream,
              javax.xml.transform,
              javax.xml.transform.dom,
              javax.xml.transform.sax,
              javax.xml.transform.stax,
              javax.xml.transform.stream,
              javax.management.remote,
              javax.naming,
              org.w3c.dom,
              javax.servlet;version="[2.5,4)",
              javax.servlet.http;version="[2.5,4)",
              javax.servlet.jsp,
              javax.servlet.jsp.tagext,
              javax.servlet.jsp.el,
              javax.management,
              javax.management.openmbean,
              javax.net,
              javax.net.ssl,
              org.osgi.framework;version="[1.5,2)",
              org.osgi.service.cm,
              org.apache.xbean*;version="[3.13,5)",
              org.apache.commons.logging;version="[1.1,2)";resolution:=optional,
              org.slf4j;version="[1.6,2)";resolution:=optional,
              org.slf4j.spi;version="[1.6,2)";resolution:=optional,
              org.apache.log4j;version="[1.2.14,2)";resolution:=optional,
              org.apache.log4j.spi;version="[1.2.14,2)";resolution:=optional,
              org.eclipse.jetty*;resolution:=optional;version="[8.1,10)"
            </Import-Package>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>

    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-servlet_3.0_spec</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.geronimo.specs</groupId>
        <artifactId>geronimo-jsp_2.1_spec</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- j2ee jars -->
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jms_1.1_spec</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-jacc_1.1_spec</artifactId>
    </dependency>

    <!-- activemq -->
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-web</artifactId>
      <exclusions>
          <exclusion>
              <groupId>${project.groupId}</groupId>
              <artifactId>activemq-all</artifactId>
          </exclusion>
          <exclusion>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-websocket</artifactId>
          </exclusion>
          <exclusion>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-continuation</artifactId>
          </exclusion>
      </exclusions>
    </dependency>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>activemq-stomp</artifactId>
    </dependency>
    <dependency>
        <groupId>${project.groupId}</groupId>
        <artifactId>activemq-spring</artifactId>
    </dependency>

    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-console</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-jaas</artifactId>
      <optional>true</optional>
    </dependency>

    <dependency>
      <groupId>org.apache.xbean</groupId>
      <artifactId>xbean-spring</artifactId>
    </dependency>

    <!-- web container -->
    <dependency>
      <groupId>org.eclipse.jetty.aggregate</groupId>
      <artifactId>jetty-all</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jdt</groupId>
      <artifactId>core</artifactId>
      <version>3.1.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
    </dependency>

    <!-- JSTL support -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
    </dependency>

    <!-- used for testing -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.core</artifactId>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.compendium</artifactId>
      <version>4.3.1</version>
      <scope>provided</scope>
    </dependency>

  </dependencies>

</project>
