You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by ra...@apache.org on 2018/10/12 15:00:51 UTC

svn commit: r1843674 [21/22] - in /tomee/deps/branches/bval-2: ./ bundle/ bundle/src/ bundle/src/main/ bundle/src/main/appended-resources/ bundle/src/main/appended-resources/META-INF/ bval-extras/ bval-extras/src/ bval-extras/src/main/ bval-extras/src/...

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/ImplicitGroupingTest.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/ImplicitGroupingTest.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/ImplicitGroupingTest.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/ImplicitGroupingTest.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,63 @@
+/*
+ * 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.
+ */
+package org.apache.bval.jsr.groups.implicit;
+
+import junit.framework.TestCase;
+import org.apache.bval.jsr.ApacheValidatorFactory;
+import org.apache.bval.jsr.util.TestUtils;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.Validator;
+import java.util.Set;
+
+/**
+ * Description: test spec chapter 3.4.4. Implicit grouping<br/>
+ */
+public class ImplicitGroupingTest extends TestCase {
+    private Validator validator;
+
+    @Override
+    protected void setUp() {
+        validator = ApacheValidatorFactory.getDefault().getValidator();
+    }
+
+    public void testValidateImplicitGrouping() {
+        Order order = new Order();
+        // When an Order object is validated on the Default group, ...
+        Set<ConstraintViolation<Order>> violations = validator.validate(order);
+        assertNotNull(TestUtils.getViolation(violations, "creationDate"));
+        assertNotNull(TestUtils.getViolation(violations, "lastUpdate"));
+        assertNotNull(TestUtils.getViolation(violations, "lastModifier"));
+        assertNotNull(TestUtils.getViolation(violations, "lastReader"));
+        assertNotNull(TestUtils.getViolation(violations, "orderNumber"));
+        assertEquals(5, violations.size());
+
+        // When an Order object is validated on the Auditable group, ...
+
+        /* Only the constraints present on Auditable (and any of its super interfaces)
+           and belonging to the Default group are validated
+           when the group Auditable is requested. */
+        violations = validator.validate(order, Auditable.class);
+        assertEquals("Implicit grouping not correctly implemented", 4, violations.size());
+        assertNotNull(TestUtils.getViolation(violations, "creationDate"));
+        assertNotNull(TestUtils.getViolation(violations, "lastUpdate"));
+        assertNotNull(TestUtils.getViolation(violations, "lastModifier"));
+        assertNotNull(TestUtils.getViolation(violations, "lastReader"));
+    }
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/Order.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/Order.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/Order.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/implicit/Order.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,80 @@
+/*
+ * 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.
+ */
+package org.apache.bval.jsr.groups.implicit;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+/**
+ * Represents an order in the system
+ */
+public class Order implements Auditable {
+    private String creationDate;
+    private String lastUpdate;
+    private String lastModifier;
+    private String lastReader;
+
+    private String orderNumber;
+
+    @Override
+    public String getCreationDate() {
+        return this.creationDate;
+    }
+
+    @Override
+    public String getLastUpdate() {
+        return this.lastUpdate;
+    }
+
+    @Override
+    public String getLastModifier() {
+        return this.lastModifier;
+    }
+
+    @Override
+    public String getLastReader() {
+        return this.lastReader;
+    }
+
+    @NotNull
+    @Size(min = 10, max = 10)
+    public String getOrderNumber() {
+        return this.orderNumber;
+    }
+
+    public void setCreationDate(String creationDate) {
+        this.creationDate = creationDate;
+    }
+
+    public void setLastUpdate(String lastUpdate) {
+        this.lastUpdate = lastUpdate;
+    }
+
+    public void setLastModifier(String lastModifier) {
+        this.lastModifier = lastModifier;
+    }
+
+    public void setLastReader(String lastReader) {
+        this.lastReader = lastReader;
+    }
+
+    public void setOrderNumber(String orderNumber) {
+        this.orderNumber = orderNumber;
+    }
+}
\ No newline at end of file

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/BillableUser.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/BillableUser.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/BillableUser.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/BillableUser.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,63 @@
+/*
+ * 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.    
+ */
+package org.apache.bval.jsr.groups.inheritance;
+
+import org.apache.bval.jsr.groups.Billable;
+import org.apache.bval.jsr.groups.BillableCreditCard;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.groups.Default;
+
+/**
+ * Description: <br/>
+ */
+public class BillableUser {
+    @NotNull
+    private String firstname;
+
+    @NotNull(groups = Default.class)
+    private String lastname;
+
+    @NotNull(groups = { Billable.class })
+    private BillableCreditCard defaultCreditCard;
+
+    public String getFirstname() {
+        return firstname;
+    }
+
+    public void setFirstname(String firstname) {
+        this.firstname = firstname;
+    }
+
+    public String getLastname() {
+        return lastname;
+    }
+
+    public void setLastname(String lastname) {
+        this.lastname = lastname;
+    }
+
+    public BillableCreditCard getDefaultCreditCard() {
+        return defaultCreditCard;
+    }
+
+    public void setDefaultCreditCard(BillableCreditCard defaultCreditCard) {
+        this.defaultCreditCard = defaultCreditCard;
+    }
+}
\ No newline at end of file

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/BuyInOneClick.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/BuyInOneClick.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/BuyInOneClick.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/BuyInOneClick.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,30 @@
+/*
+ * 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.    
+ */
+package org.apache.bval.jsr.groups.inheritance;
+
+import org.apache.bval.jsr.groups.Billable;
+
+import javax.validation.groups.Default;
+
+/**
+ * Customer can buy without harrassing checking process.
+ * spec: Example 3.3. Groups can inherit other groups
+ */
+public interface BuyInOneClick extends Default, Billable {
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/GroupInheritanceTest.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/GroupInheritanceTest.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/GroupInheritanceTest.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/inheritance/GroupInheritanceTest.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,56 @@
+/*
+ * 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.    
+ */
+package org.apache.bval.jsr.groups.inheritance;
+
+import junit.framework.TestCase;
+import org.apache.bval.jsr.ApacheValidatorFactory;
+import org.apache.bval.jsr.util.TestUtils;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.Validator;
+import java.util.Set;
+
+/**
+ * Description: <br/>
+ */
+public class GroupInheritanceTest extends TestCase {
+    private Validator validator;
+
+    @Override
+    protected void setUp() {
+        validator = ApacheValidatorFactory.getDefault().getValidator();
+    }
+
+    /**
+     * validating the group BuyInOneClick will lead to the following constraints checking:
+     *<pre>
+     *  * @NotNull on firstname and lastname
+     *  * @NotNull on defaultCreditCard</pre>
+     * because Default and Billable are superinterfaces of BuyInOneClick.
+     */
+    public void testValidGroupBuyInOneClick() {
+        BillableUser user = new BillableUser();
+
+        Set<ConstraintViolation<BillableUser>> violations = validator.validate(user, BuyInOneClick.class);
+        assertEquals(3, violations.size());
+        assertNotNull(TestUtils.getViolation(violations, "firstname"));
+        assertNotNull(TestUtils.getViolation(violations, "lastname"));
+        assertNotNull(TestUtils.getViolation(violations, "defaultCreditCard"));
+    }
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/Address.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/Address.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/Address.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/Address.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,87 @@
+/*
+ * 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.
+ */
+package org.apache.bval.jsr.groups.redefining;
+
+import org.apache.bval.constraints.ZipCodeCityCoherence;
+import org.apache.bval.jsr.example.ZipCodeCityCarrier;
+
+import javax.validation.GroupSequence;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+/**
+ * Example 3.6. Redefining Default group for Address:
+ * To redefine Default for a class, place a @GroupSequence annotation on the class ; 
+ * this sequence expresses the sequence of groups that does
+ * substitute Default for this class.
+ */
+@GroupSequence({ Address.class, Address.HighLevelCoherence.class, Address.ExtraCareful.class })
+@ZipCodeCityCoherence(groups = Address.HighLevelCoherence.class)
+public class Address implements ZipCodeCityCarrier {
+
+    /**
+     * check coherence on the overall object
+     * Needs basic checking to be green first
+     */
+    public interface HighLevelCoherence {
+    }
+
+    /**
+     * Extra-careful validation group.
+     */
+    public interface ExtraCareful {
+    }
+
+    @NotNull
+    @Size(max = 50, min = 1, groups = ExtraCareful.class)
+    private String street1;
+
+    @NotNull
+    private String zipCode;
+
+    @NotNull
+    @Size(max = 30)
+    private String city;
+
+    public String getStreet1() {
+        return street1;
+    }
+
+    public void setStreet1(String street1) {
+        this.street1 = street1;
+    }
+
+    @Override
+    public String getZipCode() {
+        return zipCode;
+    }
+
+    public void setZipCode(String zipCode) {
+        this.zipCode = zipCode;
+    }
+
+    @Override
+    public String getCity() {
+        return city;
+    }
+
+    public void setCity(String city) {
+        this.city = city;
+    }
+}
\ No newline at end of file

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/InvalidRedefinedDefaultGroupAddress.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/InvalidRedefinedDefaultGroupAddress.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/InvalidRedefinedDefaultGroupAddress.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/InvalidRedefinedDefaultGroupAddress.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,44 @@
+/*
+ * 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.
+ */
+package org.apache.bval.jsr.groups.redefining;
+
+import javax.validation.GroupSequence;
+import javax.validation.constraints.NotNull;
+
+/**
+ * If a @GroupSequence redefining the Default group for a class A does not
+ * contain the group A, a GroupDefinitionException is raised when the class is
+ * validated or when its metadata is requested.
+ */
+@GroupSequence({ Address.class, Address.HighLevelCoherence.class })
+public class InvalidRedefinedDefaultGroupAddress {
+    @NotNull(groups = Address.HighLevelCoherence.class)
+    private String street;
+
+    @NotNull
+    private String city;
+
+    /**
+     * check coherence on the overall object
+     * Needs basic checking to be green first
+     */
+    public interface HighLevelCoherence {
+    }
+
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/RedefiningDefaultGroupTest.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/RedefiningDefaultGroupTest.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/RedefiningDefaultGroupTest.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/groups/redefining/RedefiningDefaultGroupTest.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,97 @@
+/*
+ * 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.
+ */
+package org.apache.bval.jsr.groups.redefining;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Set;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.GroupDefinitionException;
+
+import org.apache.bval.jsr.ValidationTestBase;
+import org.apache.bval.jsr.util.TestUtils;
+import org.junit.Test;
+
+/**
+ * Description: test Redefining the Default group for a class (spec. chapter 3.4.3)<br/>
+ */
+public class RedefiningDefaultGroupTest extends ValidationTestBase {
+
+    /**
+     * when an address object is validated for the group Default,
+     * all constraints belonging to the group Default and hosted on Address are evaluated
+     */
+    @Test
+    public void testValidateDefaultGroup() {
+        Address address = new Address();
+        Set<ConstraintViolation<Address>> violations = validator.validate(address);
+        assertEquals(3, violations.size());
+        assertNotNull(TestUtils.getViolation(violations, "street1"));
+        assertNotNull(TestUtils.getViolation(violations, "zipCode"));
+        assertNotNull(TestUtils.getViolation(violations, "city"));
+
+        address.setStreet1("Elmstreet");
+        address.setZipCode("1234");
+        address.setCity("Gotham City");
+        violations = validator.validate(address);
+        assertTrue(violations.isEmpty());
+
+        violations = validator.validate(address, Address.HighLevelCoherence.class);
+        assertTrue(violations.isEmpty());
+
+        address.setCity("error");
+        violations = validator.validate(address, Address.HighLevelCoherence.class);
+        assertEquals(1, violations.size());
+
+        /**
+         * If none fails, all HighLevelCoherence constraints present on Address are evaluated.
+         *
+         * In other words, when validating the Default group for Address,
+         * the group sequence defined on the Address class is used.
+         */
+        violations = validator.validate(address);
+        assertEquals("redefined default group for Address must also validate HighLevelCoherence", 1, violations.size());
+    }
+
+    @Test
+    public void testValidateProperty() {
+        Address address = new Address();
+        address.setStreet1("");
+        Set<ConstraintViolation<Address>> violations = validator.validateProperty(address, "street1");
+        //prove that ExtraCareful group was validated:
+        assertEquals(1, violations.size());
+        assertNotNull(TestUtils.getViolation(violations, "street1"));
+    }
+
+    @Test
+    public void testValidateValue() {
+        Set<ConstraintViolation<Address>> violations = validator.validateValue(Address.class, "street1", "");
+        //prove that ExtraCareful group was validated:
+        assertEquals(1, violations.size());
+        assertNotNull(TestUtils.getViolation(violations, "street1"));
+    }
+
+    @Test(expected = GroupDefinitionException.class)
+    public void testRaiseGroupDefinitionException() {
+        validator.validate(new InvalidRedefinedDefaultGroupAddress());
+    }
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/metadata/ContainerElementKeyTest.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/metadata/ContainerElementKeyTest.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/metadata/ContainerElementKeyTest.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/metadata/ContainerElementKeyTest.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,118 @@
+/*
+ * 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.
+ */
+package org.apache.bval.jsr.metadata;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.TypeVariable;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class ContainerElementKeyTest {
+    public static abstract class HasList {
+        public List<String> strings;
+    }
+
+    public static abstract class BoundListType implements List<String> {
+    }
+
+    private Field stringsField;
+
+    @Before
+    public void setup() throws Exception {
+        stringsField = HasList.class.getField("strings");
+    }
+
+    @Test
+    public void testBasic() {
+        final ContainerElementKey containerElementKey =
+            new ContainerElementKey(stringsField.getAnnotatedType(), Integer.valueOf(0));
+
+        assertEquals(List.class, containerElementKey.getContainerClass());
+        assertEquals(0, containerElementKey.getTypeArgumentIndex().intValue());
+        assertEquals(String.class, containerElementKey.getAnnotatedType().getType());
+    }
+
+    @Test
+    public void testAssignableKeys() {
+        final ContainerElementKey containerElementKey =
+            new ContainerElementKey(stringsField.getAnnotatedType(), Integer.valueOf(0));
+
+        final Iterator<ContainerElementKey> iterator = containerElementKey.getAssignableKeys().iterator();
+        {
+            assertTrue(iterator.hasNext());
+            final ContainerElementKey assignableKey = iterator.next();
+            assertEquals(Collection.class, assignableKey.getContainerClass());
+            assertEquals(0, assignableKey.getTypeArgumentIndex().intValue());
+            assertTrue(assignableKey.getAnnotatedType().getType() instanceof TypeVariable<?>);
+        }
+        {
+            assertTrue(iterator.hasNext());
+            final ContainerElementKey assignableKey = iterator.next();
+            assertEquals(Iterable.class, assignableKey.getContainerClass());
+            assertEquals(0, assignableKey.getTypeArgumentIndex().intValue());
+            assertTrue(assignableKey.getAnnotatedType().getType() instanceof TypeVariable<?>);
+        }
+        assertFalse(iterator.hasNext());
+    }
+
+    @Test
+    public void testAssignableKeysWithExplicitBinding() {
+        final ContainerElementKey containerElementKey = new ContainerElementKey(BoundListType.class, null);
+
+        final Iterator<ContainerElementKey> iterator = containerElementKey.getAssignableKeys().iterator();
+        {
+            assertTrue(iterator.hasNext());
+            final ContainerElementKey assignableKey = iterator.next();
+            assertEquals(List.class, assignableKey.getContainerClass());
+            assertEquals(0, assignableKey.getTypeArgumentIndex().intValue());
+        }
+        {
+            assertTrue(iterator.hasNext());
+            final ContainerElementKey assignableKey = iterator.next();
+            assertEquals(Collection.class, assignableKey.getContainerClass());
+            assertEquals(0, assignableKey.getTypeArgumentIndex().intValue());
+        }
+        {
+            assertTrue(iterator.hasNext());
+            final ContainerElementKey assignableKey = iterator.next();
+            assertEquals(Iterable.class, assignableKey.getContainerClass());
+            assertEquals(0, assignableKey.getTypeArgumentIndex().intValue());
+            assertTrue(assignableKey.getAnnotatedType().getType() instanceof TypeVariable<?>);
+        }
+        assertFalse(iterator.hasNext());
+    }
+
+    @Test
+    public void testTypeVariableInheritance() {
+        final ContainerElementKey containerElementKey =
+            new ContainerElementKey(stringsField.getAnnotatedType(), Integer.valueOf(0));
+
+        assertTrue(containerElementKey.represents(List.class.getTypeParameters()[0]));
+        assertTrue(containerElementKey.represents(Collection.class.getTypeParameters()[0]));
+        assertTrue(containerElementKey.represents(Iterable.class.getTypeParameters()[0]));
+    }
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/util/PathImplTest.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/util/PathImplTest.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/util/PathImplTest.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/util/PathImplTest.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,201 @@
+/*
+ * 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.    
+ */
+package org.apache.bval.jsr.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Iterator;
+
+import javax.validation.Path;
+import javax.validation.ValidationException;
+
+import org.junit.Test;
+
+/**
+ * PathImpl Tester.
+ *
+ * @version 1.0
+ * @since <pre>10/01/2009</pre>
+ */
+public class PathImplTest {
+    @Test
+    public void testParsing() {
+        String property = "order[3].deliveryAddress.addressline[1]";
+        Path path = PathImpl.createPathFromString(property);
+        assertEquals(property, path.toString());
+
+        Iterator<Path.Node> propIter = path.iterator();
+
+        assertTrue(propIter.hasNext());
+        Path.Node elem = propIter.next();
+        assertFalse(elem.isInIterable());
+        assertEquals("order", elem.getName());
+
+        assertTrue(propIter.hasNext());
+        elem = propIter.next();
+        assertTrue(elem.isInIterable());
+        assertEquals(new Integer(3), elem.getIndex());
+        assertEquals("deliveryAddress", elem.getName());
+
+        assertTrue(propIter.hasNext());
+        elem = propIter.next();
+        assertFalse(elem.isInIterable());
+        assertEquals(null, elem.getIndex());
+        assertEquals("addressline", elem.getName());
+
+        assertTrue(propIter.hasNext());
+        elem = propIter.next();
+        assertTrue(elem.isInIterable());
+        assertEquals(new Integer(1), elem.getIndex());
+        assertNull(elem.getName());
+
+        assertFalse(propIter.hasNext());
+    }
+
+    @Test
+    public void testParseMapBasedProperty() {
+        String property = "order[foo].deliveryAddress";
+        Path path = PathImpl.createPathFromString(property);
+        Iterator<Path.Node> propIter = path.iterator();
+
+        assertTrue(propIter.hasNext());
+        Path.Node elem = propIter.next();
+        assertFalse(elem.isInIterable());
+        assertEquals("order", elem.getName());
+
+        assertTrue(propIter.hasNext());
+        elem = propIter.next();
+        assertTrue(elem.isInIterable());
+        assertEquals("foo", elem.getKey());
+        assertEquals("deliveryAddress", elem.getName());
+
+        assertFalse(propIter.hasNext());
+    }
+
+    //some of the examples from the 1.0 bean validation spec, section 4.2
+    @Test
+    public void testSpecExamples() {
+        String fourthAuthor = "authors[3]";
+        Path path = PathImpl.createPathFromString(fourthAuthor);
+        Iterator<Path.Node> propIter = path.iterator();
+
+        assertTrue(propIter.hasNext());
+        Path.Node elem = propIter.next();
+        assertFalse(elem.isInIterable());
+        assertEquals("authors", elem.getName());
+
+        assertTrue(propIter.hasNext());
+        elem = propIter.next();
+        assertTrue(elem.isInIterable());
+        assertEquals(3, elem.getIndex().intValue());
+        assertNull(elem.getName());
+        assertFalse(propIter.hasNext());
+
+        String firstAuthorCompany = "authors[0].company";
+        path = PathImpl.createPathFromString(firstAuthorCompany);
+        propIter = path.iterator();
+
+        assertTrue(propIter.hasNext());
+        elem = propIter.next();
+        assertFalse(elem.isInIterable());
+        assertEquals("authors", elem.getName());
+
+        assertTrue(propIter.hasNext());
+        elem = propIter.next();
+        assertTrue(elem.isInIterable());
+        assertEquals(0, elem.getIndex().intValue());
+        assertEquals("company", elem.getName());
+        assertFalse(propIter.hasNext());
+    }
+
+    @Test
+    public void testNull() {
+        assertEquals(PathImpl.createPathFromString(null), PathImpl.create());
+
+        assertEquals("", PathImpl.create().toString());
+        Path path = PathImpl.create();
+        Path.Node node = path.iterator().next();
+        assertEquals(null, node.getName());
+    }
+
+    @Test(expected = ValidationException.class)
+    public void testUnbalancedBraces() {
+        PathImpl.createPathFromString("foo[.bar");
+    }
+
+    @Test(expected = ValidationException.class)
+    public void testIndexInMiddleOfProperty() {
+        PathImpl.createPathFromString("f[1]oo.bar");
+    }
+
+    @Test(expected = ValidationException.class)
+    public void testTrailingPathSeparator() {
+        PathImpl.createPathFromString("foo.bar.");
+    }
+
+    @Test(expected = ValidationException.class)
+    public void testLeadingPathSeparator() {
+        PathImpl.createPathFromString(".foo.bar");
+    }
+
+    @Test
+    public void testEmptyString() {
+        Path path = PathImpl.createPathFromString("");
+        assertEquals(null, path.iterator().next().getName());
+    }
+
+    @Test
+    public void testToString() {
+        PathImpl path = PathImpl.create();
+        path.addNode(new NodeImpl.PropertyNodeImpl("firstName"));
+        assertEquals("firstName", path.toString());
+
+        path = PathImpl.create();
+        path.getLeafNode().setIndex(2);
+        assertEquals("[2]", path.toString());
+        path.addNode(new NodeImpl.PropertyNodeImpl("firstName"));
+        assertEquals("[2].firstName", path.toString());
+    }
+
+    @Test
+    public void testAddRemoveNodes() {
+        PathImpl path = PathImpl.createPathFromString("");
+        assertTrue(path.isRootPath());
+        assertEquals(1, countNodes(path));
+        path.addNode(new NodeImpl.PropertyNodeImpl("foo"));
+        assertFalse(path.isRootPath());
+        assertEquals(1, countNodes(path));
+        path.removeLeafNode();
+        assertTrue(path.isRootPath());
+        assertEquals(1, countNodes(path));
+    }
+
+    private int countNodes(Path path) {
+        int result = 0;
+        for (Iterator<Path.Node> iter = path.iterator(); iter.hasNext();) {
+            iter.next();
+            result++;
+        }
+        return result;
+    }
+
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/util/TestUtils.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/util/TestUtils.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/util/TestUtils.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/util/TestUtils.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,118 @@
+/*
+ * 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.    
+ */
+package org.apache.bval.jsr.util;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.fail;
+
+import java.lang.annotation.Annotation;
+import java.util.Collection;
+import java.util.Set;
+
+import javax.enterprise.inject.Vetoed;
+import javax.validation.ConstraintViolation;
+import javax.validation.metadata.ConstraintDescriptor;
+import javax.validation.metadata.ElementDescriptor.ConstraintFinder;
+
+/**
+ * Description: <br/>
+ */
+public class TestUtils {
+    /**
+     * @param violations
+     * @param propertyPath
+     *            - string format of a propertyPath
+     * @return the constraintViolation with the propertyPath's string
+     *         representation given
+     */
+    public static <T> ConstraintViolation<T> getViolation(Set<ConstraintViolation<T>> violations, String propertyPath) {
+        for (ConstraintViolation<T> each : violations) {
+            if (each.getPropertyPath().toString().equals(propertyPath)) {
+                return each;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * @param violations
+     * @param propertyPath
+     * @return count of violations
+     */
+    public static <T> int countViolations(Set<ConstraintViolation<T>> violations, String propertyPath) {
+        int result = 0;
+        for (ConstraintViolation<T> each : violations) {
+            if (each.getPropertyPath().toString().equals(propertyPath)) {
+                result++;
+            }
+        }
+        return result;
+    }
+
+    /**
+     * @param <T>
+     * @param violations
+     * @param message
+     * @return the constraint violation with the specified message found, if any
+     */
+    public static <T> ConstraintViolation<T> getViolationWithMessage(Set<ConstraintViolation<T>> violations,
+        String message) {
+        for (ConstraintViolation<T> each : violations) {
+            if (each.getMessage().equals(message)) {
+                return each;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * assume set addition either does nothing, returning false per collection
+     * contract, or throws an Exception; in either case size should remain
+     * unchanged
+     * 
+     * @param collection
+     */
+    public static void failOnModifiable(Collection<?> collection, String description) {
+        int size = collection.size();
+        try {
+            assertFalse(String.format("should not permit modification to %s", description), collection.add(null));
+        } catch (Exception e) {
+            // okay
+        }
+        assertEquals("constraint descriptor set size changed", size, collection.size());
+    }
+
+    /**
+     * Assert that the specified ConstraintFinder provides constraints of each of the specified types.
+     * @param constraintFinder
+     * @param types
+     */
+    public static void assertConstraintTypesFound(ConstraintFinder constraintFinder,
+        Class<? extends Annotation>... types) {
+        outer: for (Class<? extends Annotation> type : types) {
+            for (ConstraintDescriptor<?> descriptor : constraintFinder.getConstraintDescriptors()) {
+                if (descriptor.getAnnotation().annotationType().equals(type)) {
+                    continue outer;
+                }
+            }
+            fail(String.format("Missing expected constraint descriptor of type %s", type));
+        }
+    }
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/Demo.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/Demo.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/Demo.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/Demo.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,55 @@
+/*
+ *  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.
+ */
+package org.apache.bval.jsr.xml;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.UnmarshallerHandler;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.junit.Test;
+import org.xml.sax.InputSource;
+import org.xml.sax.XMLReader;
+
+public class Demo {
+
+    @Test
+    public void test1() throws Exception {
+        JAXBContext jc = JAXBContext.newInstance(ObjectFactory.class);
+
+        // Set the parent XMLReader on the XMLFilter
+        SAXParserFactory spf = SAXParserFactory.newInstance();
+        spf.setNamespaceAware(true);
+        SAXParser sp = spf.newSAXParser();
+        XMLReader xr = sp.getXMLReader();
+
+        // Set UnmarshallerHandler as ContentHandler on XMLFilter
+        
+        Unmarshaller unmarshaller = jc.createUnmarshaller();
+        
+        UnmarshallerHandler unmarshallerHandler = unmarshaller.getUnmarshallerHandler();
+        xr.setContentHandler(unmarshallerHandler);
+
+        // Parse the XML
+        InputSource xml = new InputSource(getClass().getResourceAsStream("/sample-validation2.xml"));
+        xr.parse(xml);
+        JAXBElement<ValidationConfigType> result = (JAXBElement<ValidationConfigType>) unmarshallerHandler.getResult();
+        System.out.println(result.getValue());
+    }
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/TestConstraintValidatorFactory.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/TestConstraintValidatorFactory.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/TestConstraintValidatorFactory.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/TestConstraintValidatorFactory.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+package org.apache.bval.jsr.xml;
+
+import org.apache.bval.jsr.DefaultConstraintValidatorFactory;
+
+/**
+ * Description: <br/>
+ */
+public class TestConstraintValidatorFactory extends DefaultConstraintValidatorFactory {
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/TestMessageInterpolator.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/TestMessageInterpolator.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/TestMessageInterpolator.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/TestMessageInterpolator.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,27 @@
+/*
+ * 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.
+ */
+package org.apache.bval.jsr.xml;
+
+import org.apache.bval.jsr.DefaultMessageInterpolator;
+
+/**
+ * Description: <br/>
+ */
+public class TestMessageInterpolator extends DefaultMessageInterpolator {
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/ValidationParserTest.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/ValidationParserTest.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/ValidationParserTest.java (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/java/org/apache/bval/jsr/xml/ValidationParserTest.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,132 @@
+/*
+ * 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.
+ */
+package org.apache.bval.jsr.xml;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assume.assumeTrue;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.Set;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.Validation;
+import javax.validation.ValidationException;
+import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
+
+import org.apache.bval.jsr.ApacheValidationProvider;
+import org.apache.bval.jsr.ApacheValidatorConfiguration;
+import org.apache.bval.jsr.ConfigurationImpl;
+import org.apache.bval.jsr.example.XmlEntitySampleBean;
+import org.apache.bval.jsr.resolver.SimpleTraversableResolver;
+import org.apache.bval.util.reflection.Reflection;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+
+/**
+ * ValidationParser Tester.
+ *
+ * @author <Authors name>
+ * @version 1.0
+ * @since <pre>11/25/2009</pre>
+ */
+public class ValidationParserTest implements ApacheValidatorConfiguration.Properties {
+
+    @Rule
+    public ExpectedException thrown = ExpectedException.none();
+
+    @Test
+    public void testGetInputStream() throws IOException {
+        assertNotNull(ValidationParser.getInputStream("sample-validation.xml"));
+
+        // make sure there are duplicate resources on the classpath before the next checks:
+        final Enumeration<URL> resources =
+            Reflection.getClassLoader(ValidationParser.class).getResources("META-INF/MANIFEST.MF");
+
+        assumeTrue(resources.hasMoreElements());
+        resources.nextElement();
+        assumeTrue(resources.hasMoreElements());
+    }
+
+    @Test
+    public void testGetNonUniqueInputStream() throws IOException {
+        thrown.expect(ValidationException.class);
+        thrown.expectMessage("More than ");
+        ValidationParser.getInputStream("META-INF/MANIFEST.MF"); // this is available in multiple jars hopefully
+    }
+
+    @Test
+    public void testParse() {
+        ConfigurationImpl config = new ConfigurationImpl(null, new ApacheValidationProvider());
+        ValidationParser.processValidationConfig("sample-validation.xml", config);
+    }
+
+    @Test
+    public void testParseV11() {
+        ConfigurationImpl config = new ConfigurationImpl(null, new ApacheValidationProvider());
+        ValidationParser.processValidationConfig("sample-validation11.xml", config);
+    }
+
+    @Test
+    public void testParseV20() {
+        ConfigurationImpl config = new ConfigurationImpl(null, new ApacheValidationProvider());
+        ValidationParser.processValidationConfig("sample-validation2.xml", config);
+    }
+
+    @Test
+    public void testConfigureFromXml() {
+        ValidatorFactory factory = getFactory();
+        assertThat(factory.getMessageInterpolator(), instanceOf(TestMessageInterpolator.class));
+        assertThat(factory.getConstraintValidatorFactory(), instanceOf(TestConstraintValidatorFactory.class));
+        assertThat(factory.getTraversableResolver(), instanceOf(SimpleTraversableResolver.class));
+        assertNotNull(factory.getValidator());
+    }
+
+    private ValidatorFactory getFactory() {
+        ApacheValidatorConfiguration config = Validation.byProvider(ApacheValidationProvider.class).configure();
+        config.addProperty(VALIDATION_XML_PATH, "sample-validation.xml");
+        return config.buildValidatorFactory();
+    }
+
+    @Test
+    public void testXmlEntitySample() {
+        XmlEntitySampleBean bean = new XmlEntitySampleBean();
+        bean.setFirstName("tooooooooooooooooooooooooooo long");
+        bean.setValueCode("illegal");
+        Validator validator = getFactory().getValidator();
+        Set<ConstraintViolation<XmlEntitySampleBean>> results = validator.validate(bean);
+        assertFalse(results.isEmpty());
+        assertEquals(3, results.size());
+
+        bean.setZipCode("123");
+        bean.setValueCode("20");
+        bean.setFirstName("valid");
+        results = validator.validate(bean);
+        assertTrue(results.isEmpty());
+    }
+
+}

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/resources/ValidationMessages.properties
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/resources/ValidationMessages.properties?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/resources/ValidationMessages.properties (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/resources/ValidationMessages.properties Fri Oct 12 15:00:48 2018
@@ -0,0 +1,26 @@
+# 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.
+
+# standard messages
+javax.validation.constraints.Pattern.message=must match "{regexp}"
+
+# custom messages (examples) for validation-api-1.0.Beta4
+test.validator.creditcard=credit card is not valid
+
+# custom messages (examples) for validation-api-1.0.CR1
+validator.creditcard=credit card is not valid
+

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/resources/java.policy
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/resources/java.policy?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/resources/java.policy (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/resources/java.policy Fri Oct 12 15:00:48 2018
@@ -0,0 +1,94 @@
+// 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.
+//
+// Allows unit tests to run with a Java Security Manager
+//
+
+grant
+{
+  // let everyone read target dir
+  permission java.io.FilePermission "${project.build.directory}${/}-", "read";
+};
+
+// we don't care about the permissions of the testing infrastructure,
+// including maven;
+grant codeBase "file://${user.home}/.m2/repository/org/apache/maven/-"
+{
+  permission java.security.AllPermission;
+};
+
+// junit;
+grant codeBase "file://${user.home}/.m2/repository/junit/-"
+{
+  permission java.security.AllPermission;
+};
+
+// mockito;
+grant codeBase "file://${user.home}/.m2/repository/org/mockito/-"
+{
+  permission java.security.AllPermission;
+};
+
+// objenesis (via mockito);
+grant codeBase "file://${user.home}/.m2/repository/org/objenesis/-"
+{
+  permission java.security.AllPermission;
+};
+
+// jaxb impl
+grant codeBase "file://${user.home}/.m2/repository/com/sun/xml/bind/jaxb-impl/-"
+{
+  permission java.security.AllPermission;
+};
+
+// Geronimo specs
+grant codeBase "file://${user.home}/.m2/repository/org/apache/geronimo/specs/-"
+{
+  permission java.lang.RuntimePermission "accessDeclaredMembers";
+  permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
+  permission java.io.FilePermission "${user.home}/.m2/repository/-", "read";
+};
+
+// RI specs
+grant codeBase "file://${user.home}/.m2/repository/javax/validation/-"
+{
+  permission java.lang.RuntimePermission "accessDeclaredMembers";
+  permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
+  permission java.io.FilePermission "${user.home}/.m2/repository/-", "read";
+};
+
+grant codeBase "file://${user.home}/.m2/repository/org/apache/bval/-"
+{
+  permission java.lang.RuntimePermission "accessDeclaredMembers";
+  permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
+};
+
+// test classes
+grant codeBase "file://${project.build.testOutputDirectory}/-"
+{
+  permission java.security.AllPermission;
+};
+
+// classes under test
+grant codeBase "file://${project.build.outputDirectory}/-"
+{
+  permission java.lang.RuntimePermission "accessClassInPackage.com.sun.xml.internal.bind.*";
+  permission java.lang.RuntimePermission "accessDeclaredMembers";
+  permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
+  permission java.io.FilePermission "${user.home}/.m2/repository/-", "read";
+  permission java.util.PropertyPermission "*", "read";
+};

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-constraints.xml
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-constraints.xml?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-constraints.xml (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-constraints.xml Fri Oct 12 15:00:48 2018
@@ -0,0 +1,73 @@
+<?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.
+-->
+<constraint-mappings
+    xmlns="http://jboss.org/xml/ns/javax/validation/mapping"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation=
+        "http://jboss.org/xml/ns/javax/validation/mapping validation-mapping-1.0.xsd">
+  <default-package>org.apache.bval.jsr.example</default-package>
+
+  <bean class="XmlEntitySampleBean" ignore-annotations="false">
+    <class ignore-annotations="true"/>
+    <field name="zipCode">
+      <!--@FrenchZipCode(size=3)-->
+      <constraint annotation="org.apache.bval.constraints.FrenchZipCode">
+        <element name="size">
+          <value>3</value>
+        </element>
+      </constraint>
+
+    </field>
+    <field name="valueCode">
+      <!--<valid/>-->
+      <!-- @HasValue({ 0, 20 }) -->
+      <constraint annotation="org.apache.bval.constraints.HasValue">
+        <element name="value">
+          <value>0</value>
+          <value>20</value>
+        </element>
+      </constraint>
+
+    </field>
+    <getter name="firstName">
+      <!--<valid/>-->
+      <!-- @Size(message="Size is limited",
+                 groups={First.class, Default.class},
+                 max=10
+           )
+      -->
+      <constraint annotation="javax.validation.constraints.Size">
+        <message>Size is limited</message>
+        <groups>
+          <value>org.apache.bval.jsr.example.First</value>
+          <value>javax.validation.groups.Default</value>
+        </groups>
+        <element name="max">10</element>
+      </constraint>
+
+    </getter>
+
+  </bean>
+
+  <constraint-definition annotation="javax.validation.constraints.Size">
+      <validated-by include-existing-validators="false">
+          <value>org.apache.bval.constraints.SizeValidator$ForCharSequence</value>
+      </validated-by>
+  </constraint-definition>
+
+</constraint-mappings>

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation.xml
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation.xml?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation.xml (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation.xml Fri Oct 12 15:00:48 2018
@@ -0,0 +1,29 @@
+<?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.
+-->
+<validation-config
+    xmlns="http://jboss.org/xml/ns/javax/validation/configuration"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation=
+        "http://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.0.xsd">
+  <default-provider>org.apache.bval.jsr.ApacheValidationProvider</default-provider>
+  <message-interpolator>org.apache.bval.jsr.xml.TestMessageInterpolator</message-interpolator>
+  <traversable-resolver>org.apache.bval.jsr.resolver.SimpleTraversableResolver</traversable-resolver>
+  <constraint-validator-factory>org.apache.bval.jsr.xml.TestConstraintValidatorFactory</constraint-validator-factory>
+  <constraint-mapping>sample-constraints.xml</constraint-mapping>
+  <property name="test-prop">test-prop-value</property>
+</validation-config>

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation11.xml
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation11.xml?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation11.xml (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation11.xml Fri Oct 12 15:00:48 2018
@@ -0,0 +1,30 @@
+<?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.
+-->
+<validation-config
+    xmlns="http://jboss.org/xml/ns/javax/validation/configuration"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation=
+        "http://jboss.org/xml/ns/javax/validation/configuration validation-configuration-1.0.xsd"
+    version="1.1">
+  <default-provider>org.apache.bval.jsr.ApacheValidationProvider</default-provider>
+  <message-interpolator>org.apache.bval.jsr.xml.TestMessageInterpolator</message-interpolator>
+  <traversable-resolver>org.apache.bval.jsr.resolver.SimpleTraversableResolver</traversable-resolver>
+  <constraint-validator-factory>org.apache.bval.jsr.xml.TestConstraintValidatorFactory</constraint-validator-factory>
+  <constraint-mapping>sample-constraints.xml</constraint-mapping>
+  <property name="test-prop">test-prop-value</property>
+</validation-config>

Added: tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation2.xml
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation2.xml?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation2.xml (added)
+++ tomee/deps/branches/bval-2/bval-jsr/src/test/resources/sample-validation2.xml Fri Oct 12 15:00:48 2018
@@ -0,0 +1,30 @@
+<?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.
+-->
+<validation-config
+    xmlns="http://xmlns.jcp.org/xml/ns/validation/configuration"
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+    xsi:schemaLocation=
+        "http://xmlns.jcp.org/xml/ns/validation/configuration validation-configuration-2.0.xsd"
+    version="2.0">
+  <default-provider>org.apache.bval.jsr.ApacheValidationProvider</default-provider>
+  <message-interpolator>org.apache.bval.jsr.xml.TestMessageInterpolator</message-interpolator>
+  <traversable-resolver>org.apache.bval.jsr.resolver.SimpleTraversableResolver</traversable-resolver>
+  <constraint-validator-factory>org.apache.bval.jsr.xml.TestConstraintValidatorFactory</constraint-validator-factory>
+  <constraint-mapping>sample-constraints.xml</constraint-mapping>
+  <property name="test-prop">test-prop-value</property>
+</validation-config>

Added: tomee/deps/branches/bval-2/bval-tck/pom.xml
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-tck/pom.xml?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-tck/pom.xml (added)
+++ tomee/deps/branches/bval-2/bval-tck/pom.xml Fri Oct 12 15:00:48 2018
@@ -0,0 +1,208 @@
+<?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/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <artifactId>bval-parent</artifactId>
+        <groupId>org.apache.bval</groupId>
+        <version>2.0.0-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>bval-tck-runner</artifactId>
+    <name>Apache BVal :: bval-tck (TCK Runner)</name>
+    <description>Aggregates dependencies and runs the JSR-349 TCK</description>
+
+    <properties>
+        <tck.version>2.0.3.Final</tck.version>
+        <owb.version>2.0.4</owb.version>
+        <arquillian.version>1.1.11.Final</arquillian.version>
+        <validation.provider>org.apache.bval.jsr.ApacheValidationProvider</validation.provider>
+    </properties>
+
+    <dependencies>
+        <dependency>
+          <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-validation_2.0_spec</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-atinject_1.0_spec</artifactId>
+            <version>1.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jcdi_2.0_spec</artifactId>
+            <version>1.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-annotation_1.3_spec</artifactId>
+            <version>1.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-interceptor_1.2_spec</artifactId>
+            <version>1.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-ejb_3.1_spec</artifactId>
+            <version>1.0</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-el-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.bval</groupId>
+            <artifactId>bval-jsr</artifactId>
+            <version>${project.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.commons</groupId>
+                    <artifactId>commons-lang3</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.arquillian.container</groupId>
+            <artifactId>arquillian-container-test-spi</artifactId>
+            <version>${arquillian.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.openwebbeans.arquillian</groupId>
+            <artifactId>owb-arquillian-standalone</artifactId>
+            <version>${owb.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.openwebbeans</groupId>
+            <artifactId>openwebbeans-impl</artifactId>
+            <version>${owb.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat</groupId>
+            <artifactId>tomcat-jasper-el</artifactId>
+            <version>9.0.5</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate.beanvalidation.tck</groupId>
+            <artifactId>beanvalidation-tck-tests</artifactId>
+            <version>${tck.version}</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>javax.validation</groupId>
+                    <artifactId>validation-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.jboss.spec.javax.interceptor</groupId>
+                    <artifactId>jboss-interceptors-api_1.2_spec</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.arquillian.testng</groupId>
+            <artifactId>arquillian-testng-container</artifactId>
+            <version>${arquillian.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.jboss.arquillian.protocol</groupId>
+            <artifactId>arquillian-protocol-servlet</artifactId>
+            <version>${arquillian.version}</version>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.testng</groupId>
+            <artifactId>testng</artifactId>
+            <version>6.8.21</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <profiles>
+        <profile>
+            <id>tck</id>
+            <activation>
+                <activeByDefault>true</activeByDefault>
+                <property>
+                    <name>tck</name>
+                </property>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-deploy-plugin</artifactId>
+                        <configuration>
+                            <skip>true</skip>
+                        </configuration>
+                    </plugin>
+
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-plugin</artifactId>
+                        <configuration>
+                            <suiteXmlFiles>
+                                <suiteXmlFile>${basedir}/src/test/beanvalidation-tck-tests-suite.xml</suiteXmlFile>
+                            </suiteXmlFiles>
+                            <systemProperties>
+                                <property>
+                                    <name>validation.provider</name>
+                                    <value>${validation.provider}</value>
+                                </property>
+                            </systemProperties>
+                            <parallel>methods</parallel>
+                            <threadCount>4</threadCount>
+                        </configuration>
+                    </plugin>
+
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-surefire-report-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>generate-test-report</id>
+                                <phase>test</phase>
+                                <goals>
+                                    <goal>report-only</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <outputDirectory>${project.build.directory}/surefire-reports</outputDirectory>
+                            <outputName>test-report</outputName>
+                        </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+    </profiles>
+</project>

Added: tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/BValArquillianExtension.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/BValArquillianExtension.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/BValArquillianExtension.java (added)
+++ tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/BValArquillianExtension.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+package org.apache.bval.arquillian;
+
+import org.jboss.arquillian.core.spi.LoadableExtension;
+import org.jboss.arquillian.test.spi.TestEnricher;
+
+public class BValArquillianExtension implements LoadableExtension {
+    public void register(final ExtensionBuilder builder) {
+        builder.service(TestEnricher.class, EJBEnricher.class);
+    }
+}

Added: tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/EJBEnricher.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/EJBEnricher.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/EJBEnricher.java (added)
+++ tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/EJBEnricher.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,58 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2013, Red Hat, Inc. and/or its affiliates, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed 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.
+*/
+package org.apache.bval.arquillian;
+
+import org.jboss.arquillian.test.spi.TestEnricher;
+
+import javax.annotation.Resource;
+import javax.ejb.EJB;
+import javax.validation.Validation;
+import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+// mock a very very simple EJB container (in fact only local bean @Resource Validator* injections)
+public class EJBEnricher implements TestEnricher {
+    public void enrich(final Object testCase) {
+        for (final Field field : testCase.getClass().getDeclaredFields()) {
+            if (field.getAnnotation(EJB.class) != null) {
+                try {
+                    final Object instance = field.getType().getConstructor().newInstance();
+                    for (final Field f : field.getType().getDeclaredFields()) {
+                        if (f.getAnnotation(Resource.class) != null) {
+                            if (f.getType().equals(Validator.class)) {
+                                f.set(instance,
+                                    Validation.byDefaultProvider().configure().buildValidatorFactory().getValidator());
+                            } else if (f.getType().equals(ValidatorFactory.class)) {
+                                f.set(instance, Validation.byDefaultProvider().configure().buildValidatorFactory());
+                            }
+                        }
+                    }
+                    field.setAccessible(true);
+                    field.set(testCase, instance);
+                } catch (final Exception e) {
+                    // no-op
+                }
+            }
+        }
+    }
+
+    public Object[] resolve(Method method) {
+        return new Object[0];
+    }
+}

Added: tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/jndi/BValJndiFactory.java
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/jndi/BValJndiFactory.java?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/jndi/BValJndiFactory.java (added)
+++ tomee/deps/branches/bval-2/bval-tck/src/main/java/org/apache/bval/arquillian/jndi/BValJndiFactory.java Fri Oct 12 15:00:48 2018
@@ -0,0 +1,55 @@
+/*
+ * 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.
+ */
+package org.apache.bval.arquillian.jndi;
+
+import javax.naming.Context;
+import javax.naming.NamingException;
+import javax.naming.spi.InitialContextFactory;
+import javax.validation.Validation;
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+import java.util.Hashtable;
+import java.util.Locale;
+
+// mock a context to satisfy lookups
+public class BValJndiFactory implements InitialContextFactory {
+    public BValJndiFactory() {
+        // this is an ugly hack, but the TCK expects us to get english validation messages :(
+        Locale.setDefault(Locale.ENGLISH);
+    }
+
+    public Context getInitialContext(final Hashtable<?, ?> environment) throws NamingException {
+        return Context.class.cast(Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(),
+            new Class<?>[] { Context.class }, new InvocationHandler() {
+                public Object invoke(final Object proxy, final Method method, final Object[] args) throws Throwable {
+                    if (method.getName().equals("lookup") && args != null && args.length == 1
+                        && String.class.isInstance(args[0])) {
+                        if ("java:comp/ValidatorFactory".equals(args[0])) {
+                            return Validation.byDefaultProvider().configure().buildValidatorFactory();
+                        }
+                        if ("java:comp/Validator".equals(args[0])) {
+                            return Validation.byDefaultProvider().configure().buildValidatorFactory().getValidator();
+                        }
+                    }
+                    return null;
+                }
+            }));
+    }
+}

Added: tomee/deps/branches/bval-2/bval-tck/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-tck/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-tck/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension (added)
+++ tomee/deps/branches/bval-2/bval-tck/src/main/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension Fri Oct 12 15:00:48 2018
@@ -0,0 +1 @@
+org.apache.bval.arquillian.BValArquillianExtension

Added: tomee/deps/branches/bval-2/bval-tck/src/main/resources/jndi.properties
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-tck/src/main/resources/jndi.properties?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-tck/src/main/resources/jndi.properties (added)
+++ tomee/deps/branches/bval-2/bval-tck/src/main/resources/jndi.properties Fri Oct 12 15:00:48 2018
@@ -0,0 +1,17 @@
+# 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.
+java.naming.factory.initial = org.apache.bval.arquillian.jndi.BValJndiFactory

Added: tomee/deps/branches/bval-2/bval-tck/src/test/beanvalidation-tck-tests-suite.xml
URL: http://svn.apache.org/viewvc/tomee/deps/branches/bval-2/bval-tck/src/test/beanvalidation-tck-tests-suite.xml?rev=1843674&view=auto
==============================================================================
--- tomee/deps/branches/bval-2/bval-tck/src/test/beanvalidation-tck-tests-suite.xml (added)
+++ tomee/deps/branches/bval-2/bval-tck/src/test/beanvalidation-tck-tests-suite.xml Fri Oct 12 15:00:48 2018
@@ -0,0 +1,36 @@
+<!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.
+-->
+
+<suite name="JSR-380-TCK" verbose="2" configfailurepolicy="continue">
+    <test name="JSR-380-TCK">
+
+        <method-selectors>
+            <method-selector>
+                <selector-class name="org.hibernate.beanvalidation.tck.util.IntegrationTestsMethodSelector"/>
+            </method-selector>
+            <method-selector>
+                <selector-class name="org.hibernate.beanvalidation.tck.util.JavaFXTestsMethodSelector"/>
+            </method-selector>
+        </method-selectors>
+
+        <packages>
+            <package name="org.hibernate.beanvalidation.tck.tests"/>
+        </packages>
+    </test>
+</suite>