[hibernate-commits] Hibernate SVN: r16670 - in validator/trunk: hibernate-validator/src/test/java/org/hibernate/validation/engine and 4 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Wed Jun 3 08:25:37 EDT 2009


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 at 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>




More information about the hibernate-commits mailing list