<?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.experimental.wicket7</groupId>
		<artifactId>wicket-experimental</artifactId>
		<version>7.14.0</version>
		<relativePath>../pom.xml</relativePath>
	</parent>
	<artifactId>wicket-atmosphere</artifactId>
	<version>0.37</version>
	<packaging>jar</packaging>
	<name>Wicket-Atmosphere</name>
	<description>Wicket-Atmosphere provides integration of the Atmosphere Framework in Wicket.</description>
    <repositories>
        <repository>
            <id>Sonatype OSS snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
	<properties>
		<atmosphere.version>2.2.8</atmosphere.version>
		<jquery.atmosphere.version>2.2.7</jquery.atmosphere.version>
	</properties>
    <dependencyManagement>
        <dependencies>
    		<dependency>
    			<groupId>org.atmosphere</groupId>
    			<artifactId>atmosphere-runtime</artifactId>
    			<version>${atmosphere.version}</version>
    			<exclusions>
    				<exclusion>
    					<groupId>org.atmosphere</groupId>
    					<artifactId>atmosphere-compat-jetty</artifactId>
    				</exclusion>
    			</exclusions>
    		</dependency>
    		<dependency>
    			<groupId>org.webjars</groupId>
    			<artifactId>jquery-atmosphere</artifactId>
    			<version>${jquery.atmosphere.version}</version>
    			<exclusions>
    				<exclusion>
    					<groupId>org.webjars</groupId>
    					<artifactId>jquery</artifactId>
    				</exclusion>
    			</exclusions>
    		</dependency>
        </dependencies>
    </dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>com.google.code.findbugs</groupId>
			<artifactId>jsr305</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
		</dependency>
		<dependency>
			<groupId>de.agilecoders.wicket.webjars</groupId>
			<artifactId>wicket-webjars</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.atmosphere</groupId>
			<artifactId>atmosphere-runtime</artifactId>
		</dependency>
		<dependency>
			<groupId>org.webjars</groupId>
			<artifactId>jquery-atmosphere</artifactId>
		</dependency>
	</dependencies>
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>false</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <filtering>false</filtering>
                <includes>
                    <include>**/jquery.wicketatmosphere.js</include>
                </includes>
            </resource>
        </resources>
        <plugins>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>yuicompressor-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
