<?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.9</version>
		<relativePath>..</relativePath>
	</parent>
	<artifactId>openmeetings-webservice</artifactId>
	<packaging>jar</packaging>
	<name>Openmeetings Webservices</name>
	<description>Module for OpenMeetings CXF based web services.</description>
	<properties>
		<site.basedir>${project.parent.basedir}</site.basedir>
	</properties>
	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<executions>
					<execution>
						<configuration>
							<groups>
								<group>
									<title>Available WebServices</title>
									<packages>org.apache.openmeetings.webservice</packages>
								</group>
							</groups>
							<excludePackageNames>org.apache.openmeetings.webservice.cluster,org.apache.openmeetings.webservice.error</excludePackageNames>
							<skip>${om.quick.build}</skip>
						</configuration>
						<goals>
							<goal>javadoc-no-fork</goal>
						</goals>
						<phase>generate-resources</phase>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	<dependencies>
		<dependency>
			<groupId>org.apache.openmeetings</groupId>
			<artifactId>openmeetings-util</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.openmeetings</groupId>
			<artifactId>openmeetings-db</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.openmeetings</groupId>
			<artifactId>openmeetings-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.openmeetings</groupId>
			<artifactId>openmeetings-service</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.xml.ws</groupId>
			<artifactId>jaxws-api</artifactId>
		</dependency>
		<dependency>
			<groupId>javax.jws</groupId>
			<artifactId>javax.jws-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-frontend-jaxrs</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-frontend-jaxws</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-rs-extension-providers</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-rs-service-description</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-features-logging</artifactId>
		</dependency>
		<dependency>
			<groupId>org.codehaus.jettison</groupId>
			<artifactId>jettison</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.openmeetings</groupId>
			<artifactId>openmeetings-util</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>
