<?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>6.0.1</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.eclipse.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.ServerConnector">
              <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.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,
              jakarta.servlet;version="[5,6)",
              jakarta.servlet.annotation;version="[5,6)",
              jakarta.servlet.http;version="[5,6)",
              jakarta.servlet.jsp,
              jakarta.servlet.jsp.tagext,
              jakarta.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="[2,3)";resolution:=optional,
              org.apache.log4j.spi;version="[2,3)";resolution:=optional,
              org.eclipse.jetty*;resolution:=optional;version="[9.0,10)",
              org.objectweb.asm*;version="[6,8)"
            </Import-Package>
            <_contract>!*</_contract>
            <_noee>true</_noee>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>
     <dependency>
       <groupId>jakarta.servlet</groupId>
       <artifactId>jakarta.servlet-api</artifactId>
       <scope>provided</scope>
    </dependency>
    <dependency>
       <groupId>jakarta.websocket</groupId>
       <artifactId>jakarta.websocket-api</artifactId>
      <scope>provided</scope>
    </dependency>
      
    <!-- j2ee jars -->
    <dependency>
      <groupId>jakarta.jms</groupId>
      <artifactId>jakarta.jms-api</artifactId>
    </dependency>
    <dependency>
      <groupId>jakarta.transaction</groupId>
      <artifactId>jakarta.transaction-api</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.websocket</groupId>
              <artifactId>websocket-server</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>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
    </dependency>

    <!-- web container -->
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>
      <scope>test</scope>
    </dependency>
     <dependency>
      <groupId>org.eclipse.jdt</groupId>
      <artifactId>ecj</artifactId>
      <version>${ecj.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j2-impl</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <scope>provided</scope>
    </dependency>

    <!-- JSTL support -->
    
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>apache-jstl</artifactId>
      <version>11.0.0</version>
      <scope>provided</scope>
    </dependency>
    
     <!-- Tag Libs -->
    <dependency>
      <groupId>jakarta.servlet.jsp.jstl</groupId>
      <artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
      <version>3.0.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.glassfish.web</groupId>
      <artifactId>jakarta.servlet.jsp.jstl</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>
    </dependency>
    <!--
    <dependency>
      <groupId>org.apache.taglibs</groupId>
      <artifactId>taglibs-standard-spec</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.taglibs</groupId>
      <artifactId>taglibs-standard-impl</artifactId>
      <scope>provided</scope>
    </dependency>
    -->
    
    <!-- used for testing -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-unit-tests</artifactId>
      <scope>test</scope>
      <type>test-jar</type>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-broker</artifactId>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>apache-jsp</artifactId>
      <scope>provided</scope>
      <exclusions>
          <exclusion>
              <groupId>javax.servlet</groupId>
              <artifactId>javax.servlet-api</artifactId>
          </exclusion>
      </exclusions>
    </dependency>

    <dependency>
      <groupId>jakarta.annotation</groupId>
      <artifactId>jakarta.annotation-api</artifactId>
    </dependency>

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

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

  </dependencies>

</project>
