<?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.flex.blazeds</groupId>
        <artifactId>blazeds</artifactId>
        <version>4.8.0</version>
    </parent>

    <artifactId>distribution</artifactId>
    <packaging>pom</packaging>

	<build>
		<plugins>
			<plugin>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
				<execution>
					<phase>package</phase>
					<goals>
						<goal>copy-dependencies</goal>
					</goals>
					<configuration>
						<!-- copy all .jar files and dependencies for binary release assembly -->
						<outputDirectory>${project.build.directory}/blazeds-binaries-and-dependencies</outputDirectory>
						<includeScope>compile</includeScope>
					</configuration>
				</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>3.3.0</version>
				<executions>
					<execution>
						<id>assemble-sources-releases</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
                  	<finalName>blazeds-${project.version}</finalName>
					<descriptors>
						<descriptor>src/assembly/assemble-src.xml</descriptor>
						<descriptor>src/assembly/assemble-bin.xml</descriptor>
					</descriptors>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<dependencies>
		<dependency>
			<groupId>org.apache.flex.blazeds</groupId>
			<artifactId>flex-messaging-common</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.flex.blazeds</groupId>
			<artifactId>flex-messaging-core</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.flex.blazeds</groupId>
			<artifactId>flex-messaging-opt-tomcat-base</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.flex.blazeds</groupId>
			<artifactId>flex-messaging-proxy</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.flex.blazeds</groupId>
			<artifactId>flex-messaging-remoting</artifactId>
			<version>${project.version}</version>
		</dependency>
	</dependencies>
</project>