<?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. -->
<!-- $Rev: 684173 $ $Date: 2008-08-08 20:13:24 -0700 (Fri, 08 Aug 2008) $ -->
<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>
  <groupId>org.superbiz</groupId>
  <artifactId>moviefun-rest</artifactId>
  <packaging>war</packaging>
  <version>10.0.0-SNAPSHOT</version>
  <name>TomEE :: Web Examples :: Moviefun Rest</name>
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <tomee.version>10.0.0-SNAPSHOT</tomee.version>
    <version.shrinkwrap.resolver>2.0.0</version.shrinkwrap.resolver>
  </properties>
  <repositories>
    <repository>
      <id>apache-m2-snapshot</id>
      <name>Apache Snapshot Repository</name>
      <url>https://repository.apache.org/content/groups/snapshots</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>apache-m2-snapshot</id>
      <name>Apache Snapshot Repository</name>
      <url>https://repository.apache.org/content/groups/snapshots</url>
    </pluginRepository>
  </pluginRepositories>
  <build>
    <finalName>moviefun</finalName>
    <plugins>
      <plugin>
        <groupId>com.googlecode.jslint4java</groupId>
        <artifactId>jslint4java-maven-plugin</artifactId>
        <version>2.0.5</version>
        <dependencies>
          <dependency>
            <groupId>org.codehaus.plexus</groupId>
            <artifactId>plexus-utils</artifactId>
            <version>3.0.24</version>
          </dependency>
        </dependencies>
        <configuration>
          <failOnError>true</failOnError>
          <options>
            <vars>true</vars>
            <unparam>true</unparam>
            <predef>define,require,requirejs,window,Backbone,_,$,Handlebars,APP_CONFIG</predef>
            <indent>4</indent>
          </options>
          <sourceFolders>
            <sourceFolder>${basedir}/src/main/webapp/app/js</sourceFolder>
          </sourceFolders>
        </configuration>
        <executions>
          <execution>
            <phase>prepare-package</phase>
            <goals>
              <goal>lint</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.18.1</version>
        <configuration>
          <reuseForks>false</reuseForks>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>3.1.0</version>
        <configuration>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.8.1</version>
        <configuration>
          <source>11</source>
          <target>11</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.tomee.maven</groupId>
        <artifactId>tomee-maven-plugin</artifactId>
        <version>${tomee.version}</version>
        <configuration>
          <tomeeClassifier>plus</tomeeClassifier>
          <args>-Xmx512m -XX:PermSize=256m</args>
          <config>${project.basedir}/src/main/tomee/</config>
        </configuration>
      </plugin>
      
    </plugins>
  </build>
  <dependencyManagement>
    <dependencies>
      <!-- Override dependency resolver with test version. This must go *BEFORE*
        the Arquillian BOM. -->
      <dependency>
        <groupId>org.jboss.shrinkwrap.resolver</groupId>
        <artifactId>shrinkwrap-resolver-bom</artifactId>
        <version>${version.shrinkwrap.resolver}</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
      <!-- Now pull in our server-based unit testing framework -->
      <dependency>
        <groupId>org.jboss.arquillian</groupId>
        <artifactId>arquillian-bom</artifactId>
        <version>1.7.0.Alpha10</version>
        <scope>import</scope>
        <type>pom</type>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.apache.tomee</groupId>
      <artifactId>jakartaee-api</artifactId>
      <version>9.1-M2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.tomee</groupId>
      <artifactId>openejb-core</artifactId>
      <version>${tomee.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.tomee</groupId>
      <artifactId>tomee-embedded</artifactId>
      <version>${tomee.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>commons-lang</groupId>
      <artifactId>commons-lang</artifactId>
      <version>2.4</version>
    </dependency>
    <dependency>
      <groupId>org.jboss.arquillian.junit</groupId>
      <artifactId>arquillian-junit-container</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.shrinkwrap.resolver</groupId>
      <artifactId>shrinkwrap-resolver-depchain</artifactId>
      <type>pom</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.tomee</groupId>
      <artifactId>ziplock</artifactId>
      <version>${tomee.version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.webjars</groupId>
      <artifactId>backbonejs</artifactId>
      <version>1.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.webjars</groupId>
      <artifactId>bootstrap</artifactId>
      <version>3.1.0</version>
    </dependency>
    <dependency>
      <groupId>org.webjars</groupId>
      <artifactId>handlebars</artifactId>
      <version>1.2.1</version>
    </dependency>
    <dependency>
      <groupId>org.webjars</groupId>
      <artifactId>jquery</artifactId>
      <version>2.1.0-1</version>
    </dependency>
    <dependency>
      <groupId>org.webjars</groupId>
      <artifactId>json2</artifactId>
      <version>20110223</version>
    </dependency>
    <dependency>
      <groupId>org.webjars</groupId>
      <artifactId>less</artifactId>
      <version>1.6.0-1</version>
    </dependency>
    <dependency>
      <groupId>org.webjars</groupId>
      <artifactId>requirejs</artifactId>
      <version>2.1.10</version>
    </dependency>
    <dependency>
      <groupId>org.webjars</groupId>
      <artifactId>requirejs-text</artifactId>
      <version>2.0.10</version>
    </dependency>
  </dependencies>
  <profiles>
    <profile>
      <id>arquillian-tomee-embedded</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <dependencies>
        <dependency>
          <groupId>org.apache.tomee</groupId>
          <artifactId>arquillian-tomee-embedded</artifactId>
          <version>${tomee.version}</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>arquillian-tomee-remote</id>
      <dependencies>
        <dependency>
          <groupId>org.apache.tomee</groupId>
          <artifactId>arquillian-tomee-remote</artifactId>
          <version>${tomee.version}</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </profile>
  </profiles>
  <!-- This section allows you to configure where to publish libraries for
  sharing. It is not required and may be deleted. For more information see:
  http://maven.apache.org/plugins/maven-deploy-plugin/ -->
  <distributionManagement>
    <repository>
      <id>localhost</id>
      <url>file://${basedir}/target/repo/</url>
    </repository>
    <snapshotRepository>
      <id>localhost</id>
      <url>file://${basedir}/target/snapshot-repo/</url>
    </snapshotRepository>
  </distributionManagement>
</project>
