<?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.16.4</version>
  </parent>

  <artifactId>activemq-all</artifactId>
  <packaging>jar</packaging>
  <name>ActiveMQ :: All JAR bundle</name>
  <description>Puts together an ActiveMQ jar bundle</description>

  <dependencies>

    <!-- activemq -->
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-camel</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-console</artifactId>
    </dependency>
    <!-- Transports -->
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-stomp</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-amqp</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-mqtt</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-http</artifactId>
    </dependency>
    <!-- Stores -->
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-kahadb-store</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-jdbc-store</artifactId>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-leveldb-store</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-annotation_1.0_spec</artifactId>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-reload4j</artifactId>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
    </dependency>
  </dependencies>

  <build>

    <plugins>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>${maven-shade-plugin-version}</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
            <configuration>
              <artifactSet>
                <includes>
                  <include>${project.groupId}:activemq-client</include>
                  <include>${project.groupId}:activemq-openwire-legacy</include>
                  <include>${project.groupId}:activemq-camel</include>
                  <include>${project.groupId}:activemq-jaas</include>
                  <include>${project.groupId}:activemq-broker</include>
                  <include>${project.groupId}:activemq-console</include>
                  <include>${project.groupId}:activemq-shiro</include>
                  <include>${project.groupId}:activemq-spring</include>
                  <include>${project.groupId}:activemq-pool</include>
                  <include>${project.groupId}:activemq-jms-pool</include>
                  <include>${project.groupId}:activemq-amqp</include>
                  <include>${project.groupId}:activemq-http</include>
                  <include>${project.groupId}:activemq-mqtt</include>
                  <include>${project.groupId}:activemq-stomp</include>
                  <include>${project.groupId}:activemq-kahadb-store</include>
                  <include>${project.groupId}:activemq-leveldb-store</include>
                  <include>${project.groupId}:activemq-jdbc-store</include>
                  <include>org.apache.activemq.protobuf:activemq-protobuf</include>
                  <include>org.fusesource.hawtbuf:hawtbuf</include>
                  <include>org.jasypt:jasypt</include>
                  <include>org.apache.geronimo.specs:geronimo-jms_1.1_spec</include>
                  <include>org.apache.geronimo.specs:geronimo-jta_1.1_spec</include>
                  <include>org.apache.geronimo.specs:geronimo-j2ee-management_1.1_spec</include>
                  <include>org.apache.geronimo.specs:geronimo-annotation_1.0_spec</include>
                  <include>org.slf4j:slf4j-api</include>
                  <include>org.slf4j:slf4j-reload4j</include>
                  <include>org.slf4j:jcl-over-slf4j</include>
                  <include>ch.qos.reload4j:reload4j</include>
                  <include>org.springframework:spring-core</include>
                  <include>org.springframework:spring-beans</include>
                  <include>org.springframework:spring-context</include>
                  <include>org.springframework:spring-expression</include>
                  <include>org.springframework:spring-jms</include>
                  <include>org.springframework:spring-messaging</include>
                  <include>org.springframework:spring-tx</include>
                  <include>org.apache.xbean:xbean-spring</include>
                  <include>org.apache.camel:camel-jms</include>
                  <include>org.apache.camel:camel-core</include>
                  <include>org.apache.camel:camel-spring</include>
                  <include>com.sun.xml.bind:jaxb-core</include>
                  <include>com.sun.xml.bind:jaxb-impl</include>
                </includes>
              </artifactSet>

              <transformers>
                <transformer implementation="org.apache.maven.plugins.shade.resource.DontIncludeResourceTransformer">
                    <resource>.java</resource>
                </transformer>

                <transformer implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer">
                  <projectName>Apache ActiveMQ</projectName>
                </transformer>

                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                  <resource>META-INF/spring.handlers</resource>
                </transformer>

                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                  <resource>META-INF/services/com.sun.tools.xjc.Plugin</resource>
                </transformer>

                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                  <resource>META-INF/spring.schemas</resource>
                </transformer>

                <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                    <mainClass>org.apache.activemq.console.command.ShellCommand</mainClass>
                </transformer>

              </transformers>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

  <profiles>
    <profile>
      <id>deploy</id>
      <build>
        <defaultGoal>deploy</defaultGoal>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>${maven-source-plugin-version}</version>
            <configuration>
              <attach>false</attach>
            </configuration>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>apache-release</id>

      <dependencies>

        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-client</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-openwire-legacy</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-camel</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-jaas</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-broker</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-console</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-shiro</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-spring</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-pool</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-jms-pool</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-amqp</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-http</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-mqtt</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-stomp</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-kahadb-store</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-jdbc-store</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>${project.groupId}</groupId>
          <artifactId>activemq-leveldb-store</artifactId>
          <version>${project.version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>org.apache.activemq.protobuf</groupId>
          <artifactId>activemq-protobuf</artifactId>
          <version>${activemq-protobuf-version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>org.fusesource.hawtbuf</groupId>
          <artifactId>hawtbuf</artifactId>
          <version>${hawtbuf-version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>org.jasypt</groupId>
          <artifactId>jasypt</artifactId>
          <version>${jasypt-version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-jms_1.1_spec</artifactId>
          <version>1.1.1</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
          <version>1.0.1</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>org.apache.geronimo.specs</groupId>
          <artifactId>geronimo-annotation_1.0_spec</artifactId>
          <version>1.1.1</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>${slf4j-version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-reload4j</artifactId>
          <version>${slf4j-version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
        <dependency>
          <groupId>ch.qos.reload4j</groupId>
          <artifactId>reload4j</artifactId>
          <version>${reload4j-version}</version>
          <classifier>sources</classifier>
          <optional>true</optional>
        </dependency>
      </dependencies>

      <build>
        <plugins>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <configuration>
              <skipSource>true</skipSource>
            </configuration>
          </plugin>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <id>uber-sources-jar</id>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
                <configuration>
                  <descriptors>
                    <descriptor>${basedir}/src/main/descriptors/uber-sources.xml</descriptor>
                  </descriptors>
                  <appendAssemblyId>true</appendAssemblyId>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
