<?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$ $Date$
	-->

<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.geronimo.testsuite</groupId>
		<artifactId>deployment-testsuite</artifactId>
		<version>2.2.1</version>
	</parent>

	<artifactId>jca-cms-tests</artifactId>
	<packaging>pom</packaging>
	<name>Geronimo TestSuite :: Deployment Testsuite :: J2CA Container Managed Security Test</name>
	<profiles>
		<profile>
			<id>child</id>
			<modules>
				<module>jca-cms-war</module>
				<module>jca-cms-ear</module>
			</modules>
		</profile>

		<profile>
			<id>all-subprojects</id>
			<modules>
				<module>jca-cms-war</module>
				<module>jca-cms-ear</module>
			</modules>
		</profile>

	</profiles>
</project>
