<?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>
  <groupId>ear</groupId>
  <artifactId>maven-ear-plugin-test-project-085</artifactId>
  <version>99.0</version>
  <name>Maven</name>
  <packaging>ear</packaging>
  <dependencies>
    <dependency>
      <groupId>eartest</groupId>
      <artifactId>ejb-sample-one</artifactId>
      <version>1.0</version>
      <type>ejb</type>
    </dependency>
    <dependency>
      <groupId>eartest</groupId>
      <artifactId>ejb-sample-two</artifactId>
      <version>1.0</version>
      <type>ejb</type>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ear-plugin</artifactId>
        <version>@project.version@</version>
        <configuration>
          <version>6</version>
          <envEntries>
            <env-entry>
              <description>A complete entry.</description>
              <env-entry-name>complete</env-entry-name>
              <env-entry-type>java.lang.Integer</env-entry-type>
              <env-entry-value>4</env-entry-value>
            </env-entry>
            <env-entry>
              <env-entry-name>no-type</env-entry-name>
              <env-entry-value>4</env-entry-value>
            </env-entry>
            <env-entry>
              <env-entry-name>no-value</env-entry-name>
              <env-entry-type>java.lang.String</env-entry-type>
            </env-entry>
          </envEntries>
          <ejbRefs>
	          <ejb-ref>
	  			<description>A description test</description>
				<ejb-ref-name>first-name</ejb-ref-name>
				<ejb-ref-type>java.lang.String</ejb-ref-type>
	  			<lookup-name>java-test</lookup-name>
	          </ejb-ref>
          </ejbRefs>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
