<?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.openmeetings</groupId>
		<artifactId>openmeetings-parent</artifactId>
		<version>4.0.0-SNAPSHOT</version>
		<relativePath>..</relativePath>
	</parent>
	<artifactId>openmeetings-server</artifactId>
	<packaging>jar</packaging>
	<name>Openmeetings Server</name>
	<description>TODO</description>
	<properties>
		<server.dir>${project.build.directory}/red5-server</server.dir>
		<webapp.languages.dir>../openmeetings-web/src/main/webapp/languages</webapp.languages.dir>
		<languages.dir>../openmeetings-web/src/main/java/org/apache/openmeetings/web/app</languages.dir>
		<assembly.finalName>apache-openmeetings-${project.version}</assembly.finalName>
		<assembly.descriptor>server</assembly.descriptor>
		<dist.dir>${project.build.directory}/${assembly.finalName}</dist.dir>
		<dist.webapps>${dist.dir}/webapps</dist.webapps>
		<dist.om.dir>${dist.webapps}/openmeetings</dist.om.dir>
		<om.webapp>webapps/openmeetings</om.webapp>
		<root.webapp>webapps/root</root.webapp>
		<red5-server-file.dir>red5-server</red5-server-file.dir>
	</properties>
	<url>http://openmeetings.apache.org</url>
	<scm>
		<connection>scm:svn:https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp</connection>
		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/openmeetings/trunk/singlewebapp</developerConnection>
		<url>https://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp</url>
		<tag>HEAD</tag>
	</scm>
	<profiles>
		<profile>
			<id>Quick</id>
			<activation>
				<property>
					<name>quick</name>
					<value>true</value>
				</property>
			</activation>
			<properties>
				<assembly.finalName>server</assembly.finalName>
				<assembly.descriptor>quick</assembly.descriptor>
			</properties>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-clean-plugin</artifactId>
						<executions>
							<execution>
								<id>quick-clean</id>
								<phase>initialize</phase>
								<goals>
									<goal>clean</goal>
								</goals>
								<configuration>
									<excludeDefaultDirectories>true</excludeDefaultDirectories>
									<filesets>
										<fileset>
											<directory>${dist.om.dir}</directory>
											<includes>
												<include>css/**</include>
												<include>js/**</include>
												<include>images/**</include>
												<include>WEB-INF/lib/openmeetings*</include>
												<include>WEB-INF/classes/META-INF/*</include>
											</includes>
										</fileset>
										<fileset>
											<directory>${dist.om.dir}/WEB-INF/lib</directory>
											<includes>
												<include>openmeetings-*.jar</include>
											</includes>
										</fileset>
										<fileset>
											<directory>${dist.om.dir}/WEB-INF/classes</directory>
											<includes>
												<include>**/*.html</include>
												<include>**/*.js</include>
												<include>**/*.css</include>
												<include>**/*.xml</include>
											</includes>
										</fileset>
									</filesets>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>Unpacked</id>
			<activation>
				<property>
					<name>unpacked</name>
					<value>true</value>
				</property>
			</activation>
			<properties>
				<maven.test.skip>true</maven.test.skip>
				<assembly.finalName>server</assembly.finalName>
				<assembly.descriptor>unpacked</assembly.descriptor>
				<src.pack.skip>true</src.pack.skip>
			</properties>
		</profile>
		<profile>
			<id>prepare-red5-server</id>
			<activation>
				<file>
					<missing>red5-server/red5-server-1.0.8-M6.tar.gz</missing> <!-- TODO should be in-sync with global property -->
				</file>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>wagon-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>download-red5-server</id>
								<phase>process-resources</phase>
								<goals>
									<goal>download-single</goal>
								</goals>
								<configuration>
									<url>https://github.com/Red5/red5-server/releases/download</url>
									<fromFile>v${red5-server.version}/red5-server-${red5-server.version}.tar.gz</fromFile>
									<toDir>${red5-server-file.dir}</toDir>
									<skip>${red5-server.dwnd.skip}</skip>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>truezip-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>unpack-red5-server</id>
						<goals>
							<goal>copy</goal>
						</goals>
						<phase>prepare-package</phase>
						<configuration>
							<fileset>
								<directory>${red5-server-file.dir}/red5-server-${red5-server.version}.tar.gz/red5-server</directory>
								<outputDirectory>${server.dir}</outputDirectory>
							</fileset>
							<skip>${om.quick.build}</skip>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>xml-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>generate-errors-doc</id>
						<phase>generate-sources</phase>
						<goals>
							<goal>transform</goal>
						</goals>
						<configuration>
							<transformationSets>
								<transformationSet>
									<dir>${webapp.languages.dir}</dir>
									<includes>
										<include>errorvalues.xml</include>
									</includes>
									<stylesheet>src/site/stylesheets/errortable.xsl</stylesheet>
									<outputDir>${basedir}/src/site/xdoc</outputDir>
									<parameters>
										<parameter>
											<name>languagesDir</name>
											<value>${project.baseUri}/${languages.dir}</value>
										</parameter>
									</parameters>
								</transformationSet>
							</transformationSets>
							<skip>${om.quick.build}</skip>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
				<executions>
					<execution>
						<id>make-assembly</id>
						<phase>package</phase>
						<configuration>
							<descriptors>
								<descriptor>${project.basedir}/src/main/assembly/${assembly.descriptor}.xml</descriptor>
							</descriptors>
							<finalName>${assembly.finalName}</finalName>
							<appendAssemblyId>false</appendAssemblyId>
							<tarLongFileMode>gnu</tarLongFileMode>
						</configuration>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
					<execution>
						<id>make-src</id>
						<phase>package</phase>
						<configuration>
							<descriptors>
								<descriptor>${project.basedir}/src/main/assembly/src.xml</descriptor>
							</descriptors>
							<finalName>${assembly.finalName}</finalName>
							<appendAssemblyId>true</appendAssemblyId>
							<tarLongFileMode>gnu</tarLongFileMode>
							<skipAssembly>${src.pack.skip}</skipAssembly>
						</configuration>
						<goals>
							<goal>single</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.codehaus.mojo</groupId>
										<artifactId>wagon-maven-plugin</artifactId>
										<versionRange>[1.0-beta-5,)</versionRange>
										<goals>
											<goal>download-single</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.codehaus.mojo</groupId>
										<artifactId>truezip-maven-plugin</artifactId>
										<versionRange>[1.2,)</versionRange>
										<goals>
											<goal>copy</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.codehaus.mojo</groupId>
										<artifactId>xml-maven-plugin</artifactId>
										<versionRange>[1.0,)</versionRange>
										<goals>
											<goal>transform</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-site-plugin</artifactId>
										<versionRange>[3.3,)</versionRange>
										<goals>
											<goal>site</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	<dependencies>
		<dependency>
			<groupId>org.apache.openmeetings</groupId>
			<artifactId>openmeetings-web</artifactId>
			<version>${project.version}</version>
			<type>war</type>
		</dependency>
		<dependency>
			<groupId>org.apache.openmeetings</groupId>
			<artifactId>openmeetings-screenshare</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.openmeetings</groupId>
			<artifactId>openmeetings-flash</artifactId>
		</dependency>
	</dependencies>
</project>
