<?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.wicket</groupId>
		<artifactId>wicket-parent</artifactId>
		<version>7.14.0</version>
		<relativePath>../pom.xml</relativePath>
	</parent>
	<artifactId>wicket-examples</artifactId>
	<packaging>war</packaging>
	<name>Wicket Examples</name>
	<description>
		Examples displaying a component reference and several components in
		action.
	</description>

	<properties>
		<dockerfile-maven-plugin.version>1.3.6</dockerfile-maven-plugin.version>
	</properties>

	<dependencyManagement>
    	<dependencies>
    		<dependency>
    			<groupId>com.github.axet</groupId>
    			<artifactId>kaptcha</artifactId>
    			<version>0.0.9</version>
    		</dependency>
    		<dependency>
    			<groupId>com.github.cage</groupId>
    			<artifactId>cage</artifactId>
    			<version>1.0</version>
    		</dependency>
    		<dependency>
    			<groupId>com.uwyn</groupId>
    			<artifactId>jhighlight</artifactId>
    			<version>1.0</version>
    			<exclusions>
    				<exclusion>
    					<groupId>javax.servlet</groupId>
    					<artifactId>servlet-api</artifactId>
    				</exclusion>
    			</exclusions>
    		</dependency>
    		<dependency>
    			<groupId>org.eclipse.jetty.aggregate</groupId>
    			<artifactId>jetty-all-server</artifactId>
                <version>${jetty.version}</version>
    			<exclusions>
    				<exclusion>
    					<!-- exclude because the same jar comes from JBoss Weld and the following error occurs:
    					 class "javax.annotation.ManagedBean"'s signer information does not match signer
    					 information of other classes in the same package
    					 -->
    					<groupId>org.eclipse.jetty.orbit</groupId>
    					<artifactId>javax.annotation</artifactId>
    				</exclusion>
    			</exclusions>
    		</dependency>
        </dependencies>
    </dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>javax.el</groupId>
			<artifactId>javax.el-api</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>javax.servlet-api</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.servlet.jsp</groupId>
			<artifactId>javax.servlet.jsp-api</artifactId>
		</dependency>
		<dependency>
			<groupId>com.github.axet</groupId>
			<artifactId>kaptcha</artifactId>
		</dependency>
		<dependency>
			<groupId>com.github.cage</groupId>
			<artifactId>cage</artifactId>
		</dependency>
		<dependency>
			<groupId>com.uwyn</groupId>
			<artifactId>jhighlight</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.validation</groupId>
			<artifactId>validation-api</artifactId>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-auth-roles</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-bean-validation</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-cdi-1.1</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-datetime</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-devutils</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-extensions</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-guice</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-jmx</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-spring</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-velocity</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket.experimental.wicket7</groupId>
			<artifactId>wicket-atmosphere</artifactId>
		</dependency>
		<dependency>
			<groupId>org.eclipse.jetty.aggregate</groupId>
			<artifactId>jetty-all-server</artifactId>
		</dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <scope>compile</scope>
        </dependency>
		<dependency>
			<groupId>org.jboss.weld.servlet</groupId>
			<artifactId>weld-servlet</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.glassfish</groupId>
			<artifactId>javax.el</artifactId>
		</dependency>
		<dependency>
			<groupId>org.httpunit</groupId>
			<artifactId>httpunit</artifactId>
		</dependency>
	</dependencies>
	<build>
		<resources>
			<!-- include all these to be able to view their source -->
			<resource>
				<filtering>false</filtering>
				<directory>${basedir}/src/main/java</directory>
				<includes>
					<include>**/*.java</include>
					<include>**/*.html</include>
					<include>**/*.js</include>
					<include>**/*.css</include>
					<include>**/*.jpg</include>
					<include>**/*.gif</include>
					<include>**/*.png</include>
					<include>**/*.txt</include>
					<include>**/*.xml</include>
					<include>**/*.properties</include>
					<include>**/*.mp4</include>
				</includes>
			</resource>
			<resource>
				<filtering>false</filtering>
				<directory>${basedir}/src/main/resources</directory>
				<includes>
					<include>**/*.html</include>
					<include>**/*.js</include>
					<include>**/*.css</include>
					<include>**/*.jpg</include>
					<include>**/*.gif</include>
					<include>**/*.png</include>
					<include>**/*.txt</include>
					<include>**/*.xml</include>
					<include>**/*.properties</include>
					<include>**/*.vm</include>
					<include>**/*.tmpl</include>
					<include>**/*.mp4</include>
				</includes>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>jetty-maven-plugin</artifactId>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-deploy-plugin</artifactId>
    				<configuration>
    					<skip>true</skip>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-javadoc-plugin</artifactId>
    				<configuration>
    					<skip>true</skip>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.apache.maven.plugins</groupId>
    				<artifactId>maven-war-plugin</artifactId>
    				<configuration>
    					<!--  include the manifest entries so that we can emit the version of the examples. -->
    					<archive>
    						<manifest>
    							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
    							<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
    						</manifest>
    					</archive>
    				</configuration>
    			</plugin>
    			<plugin>
    				<groupId>org.mortbay.jetty</groupId>
    				<artifactId>jetty-maven-plugin</artifactId>
                    <version>${jetty.version}</version>
                    <dependencies>
                		<dependency>
                			<groupId>javax.validation</groupId>
                			<artifactId>validation-api</artifactId>
                			<version>1.1.0.Final</version>
                		</dependency>
                    </dependencies>
    			</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<profiles>
		<profile>
			<id>docker</id>
			<properties>
				<warName>ROOT</warName>
			</properties>
			<build>
				<finalName>${warName}</finalName>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-war-plugin</artifactId>
						<configuration>
							<warName>${warName}</warName>
							<!--  include the manifest entries so that we can emit the version of the examples. -->
							<archive>
								<manifest>
									<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
									<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
								</manifest>
							</archive>
						</configuration>
					</plugin>
					<plugin>
						<groupId>com.spotify</groupId>
						<artifactId>dockerfile-maven-plugin</artifactId>
						<version>${dockerfile-maven-plugin.version}</version>
						<configuration>
							<repository>apache-docker-wicket-docker.bintray.io/wicket-examples</repository>
							<tag>LATEST-7</tag>
						</configuration>
						<executions>
							<execution>
								<id>build</id>
								<goals>
									<goal>build</goal>
								</goals>
								<phase>install</phase>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>
