Author: hardy.ferentschik
Date: 2009-06-03 08:25:37 -0400 (Wed, 03 Jun 2009)
New Revision: 16670
Added:
validator/trunk/hibernate-validator-tck-runner/src/jboss-as/maven-ant-tasks.jar
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/Bar.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/Foo.java
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/InheritanceTest.java
Modified:
validator/trunk/hibernate-validator-tck-runner/pom.xml
validator/trunk/hibernate-validator-tck-runner/src/jboss-as/
validator/trunk/hibernate-validator-tck-runner/src/jboss-as/build.xml
validator/trunk/hibernate-validator-tck-runner/src/main/java/org/hibernate/validation/test/StandaloneContainersImpl.java
validator/trunk/pom.xml
Log:
Getting ready for test refactoring for tck
Added:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/Bar.java
===================================================================
---
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/Bar.java
(rev 0)
+++
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/Bar.java 2009-06-03
12:25:37 UTC (rev 16670)
@@ -0,0 +1,24 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, 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.hibernate.validation.engine.inheritance;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class Bar extends Foo {
+}
Property changes on:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/Bar.java
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Added:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/Foo.java
===================================================================
---
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/Foo.java
(rev 0)
+++
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/Foo.java 2009-06-03
12:25:37 UTC (rev 16670)
@@ -0,0 +1,36 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, 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.hibernate.validation.engine.inheritance;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class Foo {
+ @NotNull
+ private String foo;
+
+ public String getFoo() {
+ return foo;
+ }
+
+ public void setFoo(String foo) {
+ this.foo = foo;
+ }
+}
Property changes on:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/Foo.java
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Added:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/InheritanceTest.java
===================================================================
---
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/InheritanceTest.java
(rev 0)
+++
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/InheritanceTest.java 2009-06-03
12:25:37 UTC (rev 16670)
@@ -0,0 +1,58 @@
+// $Id:$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, 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.hibernate.validation.engine.inheritance;
+
+import java.lang.annotation.Annotation;
+import javax.validation.BeanDescriptor;
+import javax.validation.PropertyDescriptor;
+import javax.validation.Validator;
+import javax.validation.constraints.NotNull;
+
+import org.slf4j.Logger;
+import static org.testng.Assert.assertFalse;
+import static org.testng.Assert.assertTrue;
+import org.testng.annotations.Test;
+
+import org.hibernate.validation.util.LoggerFactory;
+import org.hibernate.validation.util.TestUtil;
+
+/**
+ * @author Hardy Ferentschik
+ */
+public class InheritanceTest {
+
+ private static final Logger log = LoggerFactory.make();
+
+ @Test
+ public void testIsBeanConstrained() {
+ Validator validator = TestUtil.getValidator();
+ BeanDescriptor beanDescriptor = validator.getConstraintsForClass( Bar.class );
+
+ assertFalse( beanDescriptor.hasConstraints(), "There should be no direct
constraints on the specified bean." );
+ assertTrue( beanDescriptor.isBeanConstrained(), "Bean should be constrainted
" );
+
+ assertTrue( beanDescriptor.getConstraintsForProperty( "foo" ) != null );
+ PropertyDescriptor propDescriptor = beanDescriptor.getConstraintsForProperty(
"foo" );
+ Annotation constraintAnnotation = (Annotation)
propDescriptor.getConstraintDescriptors()
+ .iterator()
+ .next().getAnnotation();
+ assertTrue(
+ constraintAnnotation.annotationType() == NotNull.class
+ );
+ }
+}
Property changes on:
validator/trunk/hibernate-validator/src/test/java/org/hibernate/validation/engine/inheritance/InheritanceTest.java
___________________________________________________________________
Name: svn:keywords
+ Id
Name: svn:eol-style
+ native
Modified: validator/trunk/hibernate-validator-tck-runner/pom.xml
===================================================================
--- validator/trunk/hibernate-validator-tck-runner/pom.xml 2009-06-03 12:19:14 UTC (rev
16669)
+++ validator/trunk/hibernate-validator-tck-runner/pom.xml 2009-06-03 12:25:37 UTC (rev
16670)
@@ -37,7 +37,7 @@
<dependency>
<groupId>org.jboss.test-harness</groupId>
<artifactId>jboss-test-harness-jboss-as-50</artifactId>
- <version>1.0.0.BETA2</version>
+ <version>1.0.0.BETA3-SNAPSHOT</version>
</dependency>
</dependencies>
Property changes on: validator/trunk/hibernate-validator-tck-runner/src/jboss-as
___________________________________________________________________
Name: svn:ignore
+ target
Modified: validator/trunk/hibernate-validator-tck-runner/src/jboss-as/build.xml
===================================================================
--- validator/trunk/hibernate-validator-tck-runner/src/jboss-as/build.xml 2009-06-03
12:19:14 UTC (rev 16669)
+++ validator/trunk/hibernate-validator-tck-runner/src/jboss-as/build.xml 2009-06-03
12:25:37 UTC (rev 16670)
@@ -1,7 +1,7 @@
<?xml version="1.0"?>
<project name="JBoss5DeployerInstall" default="update"
basedir="." xmlns:artifact="urn:maven-artifact-ant">
- <path id="maven-ant-tasks.classpath"
path="../lib/maven-ant-tasks.jar" />
+ <path id="maven-ant-tasks.classpath" path="./maven-ant-tasks.jar"
/>
<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
uri="urn:maven-artifact-ant" classpathref="maven-ant-tasks.classpath"
/>
<property name="maven.dir" location="${basedir}/lib/maven" />
Added: validator/trunk/hibernate-validator-tck-runner/src/jboss-as/maven-ant-tasks.jar
===================================================================
(Binary files differ)
Property changes on:
validator/trunk/hibernate-validator-tck-runner/src/jboss-as/maven-ant-tasks.jar
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified:
validator/trunk/hibernate-validator-tck-runner/src/main/java/org/hibernate/validation/test/StandaloneContainersImpl.java
===================================================================
---
validator/trunk/hibernate-validator-tck-runner/src/main/java/org/hibernate/validation/test/StandaloneContainersImpl.java 2009-06-03
12:19:14 UTC (rev 16669)
+++
validator/trunk/hibernate-validator-tck-runner/src/main/java/org/hibernate/validation/test/StandaloneContainersImpl.java 2009-06-03
12:25:37 UTC (rev 16670)
@@ -1,28 +1,97 @@
package org.hibernate.validation.test;
+import java.io.BufferedInputStream;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
import java.net.URL;
import org.jboss.testharness.api.DeploymentException;
import org.jboss.testharness.spi.StandaloneContainers;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class StandaloneContainersImpl implements StandaloneContainers {
+ private static Logger log = LoggerFactory.getLogger( StandaloneContainersImpl.class );
+
public void deploy(Iterable<Class<?>> classes) throws DeploymentException {
- //To change body of implemented methods use File | Settings | File Templates.
}
public void undeploy() {
- //To change body of implemented methods use File | Settings | File Templates.
}
public void setup() {
- //To change body of implemented methods use File | Settings | File Templates.
}
public void cleanup() {
- //To change body of implemented methods use File | Settings | File Templates.
}
- public void deploy(Iterable<Class<?>> classes, Iterable<URL>
beansXmls) throws DeploymentException {
- //To change body of implemented methods use File | Settings | File Templates.
+ public void deploy(Iterable<Class<?>> classes, Iterable<URL>
validationXmls) throws DeploymentException {
+ if ( validationXmls == null || !validationXmls.iterator().hasNext() ) {
+ Thread.currentThread()
+ .setContextClassLoader( new IgnoringValidationXmlClassLoader() );
+ return;
+ }
+
+ URL validationXmlUrl = validationXmls.iterator().next();
+ log.info( "Using {} as validation.xml", validationXmlUrl.toString() );
+ Thread.currentThread()
+ .setContextClassLoader( new CustomValidationXmlClassLoader(
validationXmlUrl.getPath() ) );
}
+
+
+ private static class CustomValidationXmlClassLoader extends ClassLoader {
+ private final String customValidationXmlPath;
+
+ CustomValidationXmlClassLoader(String pathToCustomValidationXml) {
+ super( CustomValidationXmlClassLoader.class.getClassLoader() );
+ customValidationXmlPath = pathToCustomValidationXml;
+ }
+
+ public InputStream getResourceAsStream(String path) {
+ InputStream in;
+ if ( "META-INF/validation.xml".equals( path ) ) {
+ log.info( "Using {} as validation.xml", customValidationXmlPath );
+ if ( customValidationXmlPath.contains( ".jar!" ) ) {
+ path = customValidationXmlPath.substring( customValidationXmlPath.indexOf(
"!" ) + 2 );
+ in = super.getResourceAsStream( path );
+ }
+ else {
+ in = loadFromDisk();
+ }
+ }
+ else {
+ in = super.getResourceAsStream( path );
+ }
+ return in;
+ }
+
+ private InputStream loadFromDisk() {
+ InputStream in;
+ try {
+ in = new BufferedInputStream( new FileInputStream( customValidationXmlPath ) );
+ }
+ catch ( IOException ioe ) {
+ String msg = "Unble to load " + customValidationXmlPath + " from
disk";
+ log.error( msg );
+ throw new RuntimeException( msg );
+ }
+ return in;
+ }
+ }
+
+ private static class IgnoringValidationXmlClassLoader extends ClassLoader {
+ IgnoringValidationXmlClassLoader() {
+ super( IgnoringValidationXmlClassLoader.class.getClassLoader() );
+ }
+
+ public InputStream getResourceAsStream(String path) {
+ if ( "META-INF/validation.xml".equals( path ) ) {
+ log.info( "Ignoring call to load validation.xml" );
+ return null;
+ }
+ return super.getResourceAsStream( path );
+ }
+ }
}
+
Modified: validator/trunk/pom.xml
===================================================================
--- validator/trunk/pom.xml 2009-06-03 12:19:14 UTC (rev 16669)
+++ validator/trunk/pom.xml 2009-06-03 12:25:37 UTC (rev 16670)
@@ -23,7 +23,7 @@
<id>hardy.ferentschik</id>
<name>Hardy Ferentschik</name>
<email>hferents(a)redhat.com</email>
- <organization>JBoss, a division of Red Hat</organization>
+ <organization>JBoss, a division of Red Hat</organization>
<url>http://in.relation.to/Bloggers/Hardy</url>
</developer>
</developers>