<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<!--
  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.
-->
<!--
JUST HERE TO BE ABLE TO RUN TCK ONE BY ONE WHEN DEVELOPING
think to add -Dvalidation.provider=org.apache.bval.jsr.ApacheValidationProvider to your runner config
-->
<suite name="tmp" verbose="1">
  <test name="tmp">
    <classes>
       <class name="org.hibernate.beanvalidation.tck.tests.xmlconfiguration.constraintdeclaration.containerelementlevel.ContainerElementTypeConstraintsForParameterXmlMappingTest"/>
<!--      <class name="org.hibernate.beanvalidation.tck.tests.bootstrap.BootstrapConfigurationTest"/>-->
<!--
      <class name="org.hibernate.beanvalidation.tck.tests.util.ConstraintViolationAssertTest"/>
-->
    </classes>
  </test>
</suite>
