<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--

    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.
-->
<arquillian xmlns="http://jboss.org/schema/arquillian"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="
              http://jboss.org/schema/arquillian
              http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
  <container qualifier="tomee-microprofile" default="true">
    <configuration>
      <property name="httpPort">50290</property>
      <property name="ajpPort">-1</property>
      <property name="stopPort">-1</property>
      <property name="classifier">microprofile</property>
      <property name="conf">src/test/conf</property>
      <property name="dir">target/tomee</property>
      <property name="appWorkingDir">target/workdir</property>
      <property name="cleanOnStartUp">true</property>
      <property name="properties">
        MP_METRICS_TAGS = tier=integration
      </property>
    </configuration>
  </container>
  <container qualifier="tomee-plus">
    <configuration>
      <property name="httpPort">50290</property>
      <property name="ajpPort">-1</property>
      <property name="stopPort">-1</property>
      <property name="classifier">plus</property>
      <property name="conf">src/test/conf</property>
      <property name="dir">target/tomee</property>
      <property name="appWorkingDir">target/workdir</property>
      <property name="cleanOnStartUp">true</property>
      <property name="properties">
        tomee.mp.scan = all
        MP_METRICS_TAGS = tier=integration
      </property>
    </configuration>
  </container>
  <container qualifier="tomee-plume">
    <configuration>
      <property name="httpPort">50290</property>
      <property name="ajpPort">-1</property>
      <property name="stopPort">-1</property>
      <property name="classifier">plume</property>
      <property name="conf">src/test/conf</property>
      <property name="dir">target/tomee</property>
      <property name="appWorkingDir">target/workdir</property>
      <property name="cleanOnStartUp">true</property>
      <property name="properties">
        tomee.mp.scan = all
        MP_METRICS_TAGS = tier=integration
      </property>
    </configuration>
  </container>
</arquillian>
