<?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">
	<parent>
		<artifactId>empire-db-examples</artifactId>
		<groupId>org.apache.empire-db</groupId>
		<version>2.4.5</version>
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<artifactId>empire-db-example-struts2-cxf</artifactId>
	<packaging>war</packaging>
	<name>Apache Empire-db Struts2/CXF Example</name>
	<description>Examples showing the use of empire-db.</description>

	<dependencies>
		<dependency>
			<groupId>org.apache.empire-db</groupId>
			<artifactId>empire-db</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.empire-db</groupId>
			<artifactId>empire-db-struts2</artifactId>
		</dependency>

		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-frontend-jaxws</artifactId>
			<version>2.1.3</version>
		</dependency>
		
		<!-- use log4j for logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
		</dependency>

		<!-- Jetty is needed if you're are not using the CXFServlet -->
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-transports-http-jetty</artifactId>
			<version>2.1.3</version>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>slf4j-jdk14</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		
		<dependency>
            <groupId>javax.portlet</groupId>
            <artifactId>portlet-api</artifactId>
            <scope>runtime</scope>
        </dependency>
	</dependencies>

	<build>
		<plugins>
			<!-- WTP-Eclipse-Projekt --> 
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-eclipse-plugin</artifactId>
				<configuration>
					<m2eclipse>true</m2eclipse>
					<downloadSources>true</downloadSources>
					<wtpversion>2.0</wtpversion>
				</configuration>
			</plugin>

			<!-- Sysdeo Tomcat Eclipse --> 
			<plugin>
			  <groupId>org.codehaus.mojo</groupId>
			  <artifactId>sysdeo-tomcat-maven-plugin</artifactId>
			  <version>1.1</version>
			  <configuration>
				  <webPath>empire-db-cxf</webPath>
			  </configuration>
			</plugin>

			<!-- Jetty -->
			<plugin>
				<groupId>org.mortbay.jetty</groupId>
				<artifactId>maven-jetty-plugin</artifactId>
				<version>6.1.26</version>
				<configuration>
					<scanIntervalSeconds>10</scanIntervalSeconds>
					<stopKey>foo</stopKey>
					<stopPort>9999</stopPort>
				</configuration>
			</plugin>

		</plugins>
	</build>
</project>