cayenne-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aadamc...@apache.org
Subject svn commit: r987731 - in /cayenne/main/branches/STABLE-3.0/framework/cayenne-tools: ./ src/test/java/org/apache/cayenne/access/ src/test/java/org/apache/cayenne/gen/ src/test/java/org/apache/cayenne/test/ src/test/java/org/apache/cayenne/test/file/ src...
Date Sat, 21 Aug 2010 11:42:22 GMT
Author: aadamchik
Date: Sat Aug 21 11:42:21 2010
New Revision: 987731

URL: http://svn.apache.org/viewvc?rev=987731&view=rev
Log:
CAY-1472 Build with -Dmaven.test.skip=true fails on clean repo

* adapting 3.1 trunk commit r987723 to 3.0 - only changing cayenne-tools module

Added:
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/file/
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/file/FileUtil.java
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/resource/
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/resource/ResourceUtil.java
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/alt-cayenne.xml
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/alt-node1.xml
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/cdeploy-test.jar
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/embeddable.map.xml
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testmap-dependent.map.xml
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testmap.map.xml
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testtemplate.vm
Removed:
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClientDataMapGeneratedQueryRunTest.java
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/DataMapGeneratedQueryRunTest.java
Modified:
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/.classpath
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/pom.xml
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/access/AbstractDbLoaderDelegateTest.java
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGenerationActionTest.java
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGeneratorTest.java
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGeneratorTestBase.java
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ImportUtilsTest.java
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskCrossMapRelationshipsTest.java
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/DbGeneratorTaskTest.java
    cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/DeploymentConfiguratorTest.java

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/.classpath
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/.classpath?rev=987731&r1=987730&r2=987731&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/.classpath (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/.classpath Sat Aug 21 11:42:21 2010
@@ -3,6 +3,7 @@
 	<classpathentry kind="src" output="target/classes" path="src/main/java"/>
 	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"/>
 	<classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+	<classpathentry excluding="**/*.java" output="target/test-classes" kind="src" path="src/test/resources"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
 	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
 	<classpathentry kind="output" path="target/classes"/>

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/pom.xml
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/pom.xml?rev=987731&r1=987730&r2=987731&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/pom.xml (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/pom.xml Sat Aug 21 11:42:21 2010
@@ -91,49 +91,16 @@
         </dependency>
 
         <dependency>
-            <groupId>ognl</groupId>
-            <artifactId>ognl</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>foundrylogic.vpp</groupId>
             <artifactId>vpp</artifactId>
         </dependency>
 
         <dependency>
-            <groupId>mockrunner</groupId>
-            <artifactId>mockrunner</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>net.java.dev.inflector</groupId>
             <artifactId>inflector</artifactId>
             <version>0.7.0</version>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.cayenne.unpublished</groupId>
-            <artifactId>cayenne-jdk1.5-unpublished</artifactId>
-            <version>${version}</version>
-            <type>test-jar</type>
-            <scope>test</scope>
-        </dependency>
-
-        <dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-core</artifactId>
-		</dependency>
-        
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-beans</artifactId>
-		</dependency>
-
-        <dependency>
-			<groupId>hsqldb</groupId>
-			<artifactId>hsqldb</artifactId>
-			<scope>test</scope>
-		</dependency>
     </dependencies>
 
     <build>

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/access/AbstractDbLoaderDelegateTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/access/AbstractDbLoaderDelegateTest.java?rev=987731&r1=987730&r2=987731&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/access/AbstractDbLoaderDelegateTest.java (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/access/AbstractDbLoaderDelegateTest.java Sat Aug 21 11:42:21 2010
@@ -37,6 +37,7 @@ public class AbstractDbLoaderDelegateTes
     private DbEntity dbEntity;
     private ObjEntity objEntity;
 
+    @Override
     public void setUp() {
         delegate = new TestDbLoaderDelegate();
         dataMap = new DataMap();

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGenerationActionTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGenerationActionTest.java?rev=987731&r1=987730&r2=987731&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGenerationActionTest.java (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGenerationActionTest.java Sat Aug 21 11:42:21 2010
@@ -23,14 +23,18 @@ import java.io.Writer;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
-import java.util.regex.Pattern;
 
+import junit.framework.TestCase;
 
-import org.apache.cayenne.map.*;
-import org.apache.cayenne.unit.BasicCase;
+import org.apache.cayenne.map.CallbackDescriptor;
+import org.apache.cayenne.map.DataMap;
+import org.apache.cayenne.map.Entity;
+import org.apache.cayenne.map.ObjAttribute;
+import org.apache.cayenne.map.ObjEntity;
+import org.apache.cayenne.map.ObjRelationship;
 import org.apache.cayenne.query.NamedQuery;
 
-public class ClassGenerationActionTest extends BasicCase {
+public class ClassGenerationActionTest extends TestCase {
 
     protected ClassGenerationAction action;
     protected Collection<StringWriter> writers;

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGeneratorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGeneratorTest.java?rev=987731&r1=987730&r2=987731&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGeneratorTest.java (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGeneratorTest.java Sat Aug 21 11:42:21 2010
@@ -19,15 +19,16 @@
 
 package org.apache.cayenne.gen;
 
+import junit.framework.TestCase;
+
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.ObjRelationship;
-import org.apache.cayenne.unit.BasicCase;
 
 /**
  * ClassGenerationInfo tests that are not template-specific.
  * 
  */
-public class ClassGeneratorTest extends BasicCase {
+public class ClassGeneratorTest extends TestCase {
 
     protected ClassGenerationInfo cgen;
 

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGeneratorTestBase.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGeneratorTestBase.java?rev=987731&r1=987730&r2=987731&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGeneratorTestBase.java (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ClassGeneratorTestBase.java Sat Aug 21 11:42:21 2010
@@ -21,14 +21,15 @@ package org.apache.cayenne.gen;
 
 import java.io.StringWriter;
 
+import junit.framework.TestCase;
+
 import org.apache.cayenne.map.ObjEntity;
-import org.apache.cayenne.unit.BasicCase;
 
 /**
  * Superclass of ClassGenerator tests.
  * @deprecated since 3.0
  */
-public abstract class ClassGeneratorTestBase extends BasicCase {
+public abstract class ClassGeneratorTestBase extends TestCase {
 
     protected ClassGenerator cgen;
 

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ImportUtilsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ImportUtilsTest.java?rev=987731&r1=987730&r2=987731&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ImportUtilsTest.java (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/gen/ImportUtilsTest.java Sat Aug 21 11:42:21 2010
@@ -21,8 +21,6 @@ package org.apache.cayenne.gen;
 
 import junit.framework.TestCase;
 
-/**
- */
 public class ImportUtilsTest extends TestCase {
 
     protected ImportUtils importUtils = null;
@@ -32,7 +30,7 @@ public class ImportUtilsTest extends Tes
         super.setUp();
         importUtils = new ImportUtils();
     }
-    
+
     @Override
     protected void tearDown() throws Exception {
         super.tearDown();
@@ -189,13 +187,14 @@ public class ImportUtilsTest extends Tes
     public void testFormatJavaTypeWithPrimitives() throws Exception {
         assertEquals("int", importUtils.formatJavaType("int", true));
         assertEquals("Integer", importUtils.formatJavaType("int", false));
-        
+
         assertEquals("char", importUtils.formatJavaType("char", true));
-        assertEquals("Character", importUtils.formatJavaType("java.lang.Character", false));
-        
+        assertEquals("Character", importUtils
+                .formatJavaType("java.lang.Character", false));
+
         assertEquals("double", importUtils.formatJavaType("java.lang.Double", true));
         assertEquals("Double", importUtils.formatJavaType("java.lang.Double", false));
-        
+
         assertEquals("a.b.C", importUtils.formatJavaType("a.b.C", true));
         assertEquals("a.b.C", importUtils.formatJavaType("a.b.C", false));
     }
@@ -217,7 +216,7 @@ public class ImportUtilsTest extends Tes
 
         assertEquals(baseType, importUtils.formatJavaType(fullyQualifiedType));
     }
-    
+
     public void testFormatJavaType() {
         assertEquals("x.X", importUtils.formatJavaType("x.X"));
         assertEquals("X", importUtils.formatJavaType("java.lang.X"));

Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/file/FileUtil.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/file/FileUtil.java?rev=987731&view=auto
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/file/FileUtil.java (added)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/file/FileUtil.java Sat Aug 21 11:42:21 2010
@@ -0,0 +1,82 @@
+/*****************************************************************
+ *   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.cayenne.test.file;
+
+import java.io.File;
+
+public final class FileUtil {
+
+    static final String TEST_DIR_KEY = "cayenne.test.dir";
+    static final String DEFAULT_TEST_DIR = "target/testrun";
+
+    private static final File baseTestDirectory;
+
+    static {
+        String testDirName = System.getProperty(TEST_DIR_KEY);
+
+        if (testDirName == null) {
+            testDirName = DEFAULT_TEST_DIR;
+        }
+
+        baseTestDirectory = new File(testDirName);
+
+        // delete old tests
+        if (baseTestDirectory.exists()) {
+            if (!FileUtil.delete(testDirName, true)) {
+                throw new RuntimeException("Error deleting test directory: "
+                        + testDirName);
+            }
+        }
+
+        if (!baseTestDirectory.mkdirs()) {
+            throw new RuntimeException("Error creating test directory: " + testDirName);
+        }
+    }
+
+    /**
+     * Returns a test directory that is used as a scratch area.
+     */
+    public static File baseTestDirectory() {
+        return baseTestDirectory;
+    }
+
+    private static boolean delete(String filePath, boolean recursive) {
+        File file = new File(filePath);
+        if (!file.exists()) {
+            return true;
+        }
+
+        if (!recursive || !file.isDirectory())
+            return file.delete();
+
+        String[] contents = file.list();
+
+        // list can be null if directory doesn't have an 'x' permission bit set for the
+        // user
+        if (contents != null) {
+            for (String item : contents) {
+                if (!delete(filePath + File.separator + item, true)) {
+                    return false;
+                }
+            }
+        }
+
+        return file.delete();
+    }
+}

Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/resource/ResourceUtil.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/resource/ResourceUtil.java?rev=987731&view=auto
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/resource/ResourceUtil.java (added)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/test/resource/ResourceUtil.java Sat Aug 21 11:42:21 2010
@@ -0,0 +1,112 @@
+/*****************************************************************
+ *   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.cayenne.test.resource;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+public class ResourceUtil {
+
+    /**
+     * Copies resources to a file, thus making it available to the caller as File.
+     */
+    public static void copyResourceToFile(String resourceName, File file) {
+        URL in = getResource(resourceName);
+
+        if (!copy(in, file)) {
+            throw new RuntimeException("Error copying resource to file : " + file);
+        }
+    }
+
+    /**
+     * Returns a guaranteed non-null resource for a given name.
+     */
+    public static URL getResource(String name) {
+        URL in = Thread.currentThread().getContextClassLoader().getResource(name);
+        
+        if (in == null) {
+            throw new RuntimeException("Resource not found: " + name);
+        }
+
+        // Fix for the issue described at https://issues.apache.org/struts/browse/SB-35
+        // Basically, spaces in filenames make maven cry.
+        try {
+            in = new URL(in.toExternalForm().replaceAll(" ", "%20"));
+        }
+        catch (MalformedURLException e) {
+            throw new RuntimeException("Error constructing URL.", e);
+        }
+
+        return in;
+    }
+
+    private static boolean copy(URL from, File to) {
+        BufferedInputStream urlin = null;
+        BufferedOutputStream fout = null;
+        try {
+            int bufSize = 8 * 1024;
+            urlin = new BufferedInputStream(
+                    from.openConnection().getInputStream(),
+                    bufSize);
+            fout = new BufferedOutputStream(new FileOutputStream(to), bufSize);
+            copyPipe(urlin, fout, bufSize);
+        }
+        catch (IOException ioex) {
+            return false;
+        }
+        catch (SecurityException sx) {
+            return false;
+        }
+        finally {
+            if (urlin != null) {
+                try {
+                    urlin.close();
+                }
+                catch (IOException cioex) {
+                }
+            }
+            if (fout != null) {
+                try {
+                    fout.close();
+                }
+                catch (IOException cioex) {
+                }
+            }
+        }
+        return true;
+    }
+
+    private static void copyPipe(InputStream in, OutputStream out, int bufSizeHint)
+            throws IOException {
+        int read = -1;
+        byte[] buf = new byte[bufSizeHint];
+        while ((read = in.read(buf, 0, bufSizeHint)) >= 0) {
+            out.write(buf, 0, read);
+        }
+        out.flush();
+    }
+
+}

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskCrossMapRelationshipsTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskCrossMapRelationshipsTest.java?rev=987731&r1=987730&r2=987731&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskCrossMapRelationshipsTest.java (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskCrossMapRelationshipsTest.java Sat Aug 21 11:42:21 2010
@@ -26,7 +26,8 @@ import java.io.InputStreamReader;
 
 import junit.framework.TestCase;
 
-import org.apache.cayenne.unit.CayenneResources;
+import org.apache.cayenne.test.file.FileUtil;
+import org.apache.cayenne.test.resource.ResourceUtil;
 import org.apache.oro.text.perl.Perl5Util;
 import org.apache.tools.ant.Location;
 import org.apache.tools.ant.Project;
@@ -47,7 +48,7 @@ public class CayenneGeneratorTaskCrossMa
         task.setTaskName("Test");
         task.setLocation(Location.UNKNOWN_LOCATION);
     }
-    
+
     @Override
     protected void tearDown() throws Exception {
         super.tearDown();
@@ -63,18 +64,18 @@ public class CayenneGeneratorTaskCrossMa
 
         // prepare destination directory
 
-        File destDir = new File(CayenneResources.getResources().getTestDir(), "cgen11");
+        File destDir = new File(FileUtil.baseTestDirectory(), "cgen11");
         // prepare destination directory
         if (!destDir.exists()) {
             assertTrue(destDir.mkdirs());
         }
 
         File map = new File(destDir, "testmap-dependent.map.xml");
-        CayenneResources.copyResourceToFile("testmap-dependent.map.xml", map);
+        ResourceUtil.copyResourceToFile("testmap-dependent.map.xml", map);
 
         File additionalMaps[] = new File[1];
         additionalMaps[0] = new File(destDir, "testmap.map.xml");
-        CayenneResources.copyResourceToFile("testmap.map.xml", additionalMaps[0]);
+        ResourceUtil.copyResourceToFile("testmap.map.xml", additionalMaps[0]);
 
         FileList additionalMapsFilelist = new FileList();
         additionalMapsFilelist.setDir(additionalMaps[0].getParentFile());
@@ -114,18 +115,18 @@ public class CayenneGeneratorTaskCrossMa
     public void testCrossDataMapRelationships() throws Exception {
         // prepare destination directory
 
-        File destDir = new File(CayenneResources.getResources().getTestDir(), "cgen12");
+        File destDir = new File(FileUtil.baseTestDirectory(), "cgen12");
         // prepare destination directory
         if (!destDir.exists()) {
             assertTrue(destDir.mkdirs());
         }
 
         File map = new File(destDir, "testmap-dependent.map.xml");
-        CayenneResources.copyResourceToFile("testmap-dependent.map.xml", map);
+        ResourceUtil.copyResourceToFile("testmap-dependent.map.xml", map);
 
         File additionalMaps[] = new File[1];
         additionalMaps[0] = new File(destDir, "testmap.map.xml");
-        CayenneResources.copyResourceToFile("testmap.map.xml", additionalMaps[0]);
+        ResourceUtil.copyResourceToFile("testmap.map.xml", additionalMaps[0]);
 
         FileList additionalMapsFilelist = new FileList();
         additionalMapsFilelist.setDir(additionalMaps[0].getParentFile());

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java?rev=987731&r1=987730&r2=987731&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java Sat Aug 21 11:42:21 2010
@@ -25,19 +25,20 @@ import java.io.FileInputStream;
 import java.io.InputStreamReader;
 import java.net.URL;
 
-import org.apache.cayenne.unit.BasicCase;
-import org.apache.cayenne.unit.CayenneResources;
+import junit.framework.TestCase;
+
+import org.apache.cayenne.test.file.FileUtil;
 import org.apache.cayenne.util.ResourceLocator;
 import org.apache.cayenne.util.Util;
 import org.apache.oro.text.perl.Perl5Util;
 import org.apache.tools.ant.Location;
 import org.apache.tools.ant.Project;
 
-public class CayenneGeneratorTaskTest extends BasicCase {
+public class CayenneGeneratorTaskTest extends TestCase {
 
     private static final Perl5Util regexUtil = new Perl5Util();
     private static final Project project = new Project();
-    private static final File baseDir = CayenneResources.getResources().getTestDir();
+    private static final File baseDir = FileUtil.baseTestDirectory();
     private static final File map = new File(baseDir, "antmap.xml");
     private static final File mapEmbeddables = new File(baseDir, "antmap-embeddables.xml");
     private static final File template = new File(baseDir, "velotemplate.vm");
@@ -83,7 +84,7 @@ public class CayenneGeneratorTaskTest ex
     public void testSingleClassesCustTemplate() throws Exception {
         // prepare destination directory
         File mapDir = new File(baseDir, "single-classes-custtempl");
-        assertTrue(mapDir.mkdirs());
+        assertTrue(mapDir.mkdirs()); 
 
         // setup task
         task.setDestDir(mapDir);

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/DbGeneratorTaskTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/DbGeneratorTaskTest.java?rev=987731&r1=987730&r2=987731&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/DbGeneratorTaskTest.java (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/DbGeneratorTaskTest.java Sat Aug 21 11:42:21 2010
@@ -19,12 +19,11 @@
 
 package org.apache.cayenne.tools;
 
+import junit.framework.TestCase;
+
 import org.apache.cayenne.dba.sqlserver.SQLServerAdapter;
-import org.apache.cayenne.unit.CayenneCase;
 
-/**
- */
-public class DbGeneratorTaskTest extends CayenneCase {
+public class DbGeneratorTaskTest extends TestCase {
 
     public void testSetUserName() throws Exception {
         DbGeneratorTask task = new DbGeneratorTask();

Modified: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/DeploymentConfiguratorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/DeploymentConfiguratorTest.java?rev=987731&r1=987730&r2=987731&view=diff
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/DeploymentConfiguratorTest.java (original)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/java/org/apache/cayenne/tools/DeploymentConfiguratorTest.java Sat Aug 21 11:42:21 2010
@@ -22,23 +22,22 @@ package org.apache.cayenne.tools;
 import java.io.File;
 import java.net.URL;
 
-import org.apache.tools.ant.Location;
-import org.apache.tools.ant.Project;
+import junit.framework.TestCase;
+
 import org.apache.cayenne.conf.Configuration;
 import org.apache.cayenne.project.DataNodeConfigInfo;
-import org.apache.cayenne.unit.CayenneCase;
-import org.apache.cayenne.unit.CayenneResources;
+import org.apache.cayenne.test.file.FileUtil;
 import org.apache.cayenne.util.ResourceLocator;
 import org.apache.cayenne.util.Util;
 import org.apache.cayenne.util.ZipUtil;
+import org.apache.tools.ant.Location;
+import org.apache.tools.ant.Project;
 
 /**
  */
-public class DeploymentConfiguratorTest extends CayenneCase {
+public class DeploymentConfiguratorTest extends TestCase {
 
-    private static final File baseDir = new File(CayenneResources
-            .getResources()
-            .getTestDir(), "cdeploy");
+    private static final File baseDir = new File(FileUtil.baseTestDirectory(), "cdeploy");
     private static File src = new File(baseDir, "cdeploy-test.jar");
     private static File altFile = new File(baseDir, "alt-cayenne.xml");
     private static File altNodeFile = new File(baseDir, "alt-node1.xml");

Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/alt-cayenne.xml
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/alt-cayenne.xml?rev=987731&view=auto
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/alt-cayenne.xml (added)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/alt-cayenne.xml Sat Aug 21 11:42:21 2010
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<domains project-version="1.0">
+<domain name="domain">
+	<map name="map1" location="map1.map.xml"/>
+	<node name="node3"
+		 datasource="abc/xyz"
+		 adapter="org.apache.cayenne.dba.mysql.MySQLAdapter"
+		 factory="org.apache.cayenne.conf.JNDIDataSourceFactory">
+		 <map-ref name="map1"/>
+	 </node>
+</domain>
+</domains>

Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/alt-node1.xml
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/alt-node1.xml?rev=987731&view=auto
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/alt-node1.xml (added)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/alt-node1.xml Sat Aug 21 11:42:21 2010
@@ -0,0 +1,5 @@
+<driver project-version="1.0" class="another.strange.driver.xyz.abc.1111111">
+	<url value="jdbc:mysql://long-long-host-name/test"/>
+	<connectionPool min="100000" max="1000000000" />
+	<login userName="dummy" password="dummy"/>
+</driver>

Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/cdeploy-test.jar
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/cdeploy-test.jar?rev=987731&view=auto
==============================================================================
Files cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/cdeploy-test.jar (added) and cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/cdeploy/cdeploy-test.jar Sat Aug 21 11:42:21 2010 differ

Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/embeddable.map.xml
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/embeddable.map.xml?rev=987731&view=auto
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/embeddable.map.xml (added)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/embeddable.map.xml Sat Aug 21 11:42:21 2010
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap http://cayenne.apache.org/schema/3.0/modelMap.xsd"
+  project-version="3.0.0.1">
+	<property name="defaultPackage" value="org.apache.cayenne.testdo.embeddable"/>
+	<embeddable className="org.apache.cayenne.testdo.embeddable.Embeddable1">
+		<embeddable-attribute name="embedded10" type="java.lang.String" db-attribute-name="EMBEDDED10"/>
+		<embeddable-attribute name="embedded20" type="java.lang.String" db-attribute-name="EMBEDDED20"/>
+	</embeddable>
+	<db-entity name="EMBED_ENTITY1">
+		<db-attribute name="EMBEDDED10" type="VARCHAR" length="100"/>
+		<db-attribute name="EMBEDDED20" type="VARCHAR" length="100"/>
+		<db-attribute name="EMBEDDED30" type="VARCHAR" length="100"/>
+		<db-attribute name="EMBEDDED40" type="VARCHAR" length="100"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" length="100"/>
+	</db-entity>
+	<obj-entity name="EmbedEntity1" className="org.apache.cayenne.testdo.embeddable.EmbedEntity1" dbEntityName="EMBED_ENTITY1">
+		<embedded-attribute name="embedded1" type="org.apache.cayenne.testdo.embeddable.Embeddable1"/>
+		<embedded-attribute name="embedded2" type="org.apache.cayenne.testdo.embeddable.Embeddable1">
+			<embeddable-attribute-override name="embedded10" db-attribute-path="EMBEDDED30"/>
+			<embeddable-attribute-override name="embedded20" db-attribute-path="EMBEDDED40"/>
+		</embedded-attribute>
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+</data-map>

Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testmap-dependent.map.xml
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testmap-dependent.map.xml?rev=987731&view=auto
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testmap-dependent.map.xml (added)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testmap-dependent.map.xml Sat Aug 21 11:42:21 2010
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap ../../main/resources/org/apache/cayenne/schema/3.0/modelMap.xsd"
+	project-version="1.1">
+	<property name="defaultPackage" value="org.apache.art2"/>
+	<db-entity name="MYARTGROUP">
+		<db-attribute name="MY_GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="CUSTOM" type="VARCHAR" isMandatory="true" length="100"/>
+		<db-attribute name="MY_PARENT_GROUP_ID" type="INTEGER"/>
+	</db-entity>
+	<obj-entity name="MyArtGroup" className="org.apache.art2.MyArtGroup" dbEntityName="MYARTGROUP">
+		<obj-attribute name="custom" type="java.lang.String" db-attribute-path="CUSTOM"/>
+	</obj-entity>
+	<db-relationship name="toParentArtGroup" source="MYARTGROUP" target="ARTGROUP" toMany="false">
+		<db-attribute-pair source="MY_PARENT_GROUP_ID" target="GROUP_ID"/>
+	</db-relationship>
+	<obj-relationship name="toParentGroup" source="MyArtGroup" target="ArtGroup" deleteRule="Nullify" db-relationship-path="toParentArtGroup"/>
+</data-map>
\ No newline at end of file

Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testmap.map.xml
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testmap.map.xml?rev=987731&view=auto
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testmap.map.xml (added)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testmap.map.xml Sat Aug 21 11:42:21 2010
@@ -0,0 +1,660 @@
+<?xml version="1.0" encoding="utf-8"?>
+<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap http://cayenne.apache.org/schema/3.0/modelMap.xsd"
+  project-version="3.0.0.1">
+	<property name="defaultPackage" value="org.apache.art"/>
+	<property name="defaultSuperclass" value="org.apache.cayenne.CayenneDataObject"/>
+	<property name="clientSupported" value="true"/>
+	<property name="defaultClientPackage" value="test.client"/>
+	<property name="defaultClientSuperclass" value="org.apache.cayenne.PersistentObject"/>
+	<procedure name="cayenne_tst_out_proc">
+		<procedure-parameter name="in_param" type="INTEGER" direction="in"/>
+		<procedure-parameter name="out_param" type="INTEGER" direction="out"/>
+	</procedure>
+	<procedure name="cayenne_tst_select_proc">
+		<procedure-parameter name="aName" type="VARCHAR" length="254" direction="in"/>
+		<procedure-parameter name="paintingPrice" type="INTEGER" direction="in"/>
+	</procedure>
+	<procedure name="cayenne_tst_upd_proc">
+		<procedure-parameter name="paintingPrice" type="INTEGER" direction="in"/>
+	</procedure>
+	<procedure name="cayenne_tst_upd_proc2">
+	</procedure>
+	<db-entity name="ARRAYS_ENTITY">
+		<db-attribute name="BYTE_ARRAY" type="VARBINARY" length="200"/>
+		<db-attribute name="BYTE_WRAPPER_ARRAY" type="VARBINARY" length="200"/>
+		<db-attribute name="CHAR_ARRAY" type="VARCHAR" length="200"/>
+		<db-attribute name="CHAR_WRAPPER_ARRAY" type="VARCHAR" length="200"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="ARTGROUP">
+		<db-attribute name="GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" isMandatory="true" length="100"/>
+		<db-attribute name="PARENT_GROUP_ID" type="INTEGER"/>
+	</db-entity>
+	<db-entity name="ARTIST">
+		<db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" length="254"/>
+		<db-attribute name="DATE_OF_BIRTH" type="DATE"/>
+	</db-entity>
+	<db-entity name="ARTIST_CT">
+		<db-attribute name="ARTIST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="ARTIST_NAME" type="CHAR" isMandatory="true" length="254"/>
+		<db-attribute name="DATE_OF_BIRTH" type="DATE"/>
+	</db-entity>
+	<db-entity name="ARTIST_EXHIBIT">
+		<db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="EXHIBIT_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="ARTIST_GROUP">
+		<db-attribute name="ARTIST_ID" type="BIGINT" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="GROUP_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="BIGDECIMAL_ENTITY">
+		<db-attribute name="BIGDECIMAL_FIELD" type="NUMERIC" length="12" scale="2"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="BIGINTEGER_ENTITY">
+		<db-attribute name="BIG_INTEGER_FIELD" type="BIGINT"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="BINARY_PK_TEST1">
+		<db-attribute name="BIN_ID" type="VARBINARY" isPrimaryKey="true" isMandatory="true" length="32"/>
+		<db-attribute name="NAME" type="VARCHAR" length="10"/>
+	</db-entity>
+	<db-entity name="BINARY_PK_TEST2">
+		<db-attribute name="DETAIL_NAME" type="VARCHAR" length="10"/>
+		<db-attribute name="FK_ID" type="VARBINARY" length="32"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="BIT_TEST">
+		<db-attribute name="BIT_COLUMN" type="BIT" isMandatory="true"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="BLOB_TEST">
+		<db-attribute name="BLOB_COL" type="BLOB"/>
+		<db-attribute name="BLOB_TEST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="BOOLEAN_TEST">
+		<db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN" isMandatory="true"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="CALENDAR_TEST">
+		<db-attribute name="CALENDAR_FIELD" type="TIMESTAMP"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="CHARACTER_ENTITY">
+		<db-attribute name="CHARACTER_FIELD" type="CHAR" length="1"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="CHAR_FK_TEST">
+		<db-attribute name="FK_COL" type="CHAR" length="10"/>
+		<db-attribute name="NAME" type="VARCHAR" length="100"/>
+		<db-attribute name="PK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="CHAR_PK_TEST">
+		<db-attribute name="OTHER_COL" type="CHAR" length="10"/>
+		<db-attribute name="PK_COL" type="CHAR" isPrimaryKey="true" isMandatory="true" length="10"/>
+	</db-entity>
+	<db-entity name="CLOB_TEST">
+		<db-attribute name="CLOB_COL" type="CLOB"/>
+		<db-attribute name="CLOB_TEST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="CLOB_TEST_RELATION">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="ID_CLOB" type="INTEGER" isMandatory="true"/>
+		<db-attribute name="VALUE" type="INTEGER"/>
+	</db-entity>
+	<db-entity name="COMPOUND_FK_TEST">
+		<db-attribute name="F_KEY1" type="VARCHAR" length="20"/>
+		<db-attribute name="F_KEY2" type="VARCHAR" length="20"/>
+		<db-attribute name="NAME" type="VARCHAR" length="255"/>
+		<db-attribute name="PKEY" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="COMPOUND_PK_TEST">
+		<db-attribute name="KEY1" type="VARCHAR" isPrimaryKey="true" isMandatory="true" length="20"/>
+		<db-attribute name="KEY2" type="VARCHAR" isPrimaryKey="true" isMandatory="true" length="20"/>
+		<db-attribute name="NAME" type="VARCHAR" length="255"/>
+	</db-entity>
+	<db-entity name="DATE_TEST">
+		<db-attribute name="DATE_COLUMN" type="DATE"/>
+		<db-attribute name="DATE_TEST_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="TIMESTAMP_COLUMN" type="TIMESTAMP"/>
+		<db-attribute name="TIME_COLUMN" type="TIME"/>
+	</db-entity>
+	<db-entity name="DECIMAL_PK_TST">
+		<db-attribute name="DECIMAL_PK" type="DECIMAL" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" length="100"/>
+	</db-entity>
+	<db-entity name="ENUM_ENTITY">
+		<db-attribute name="ENUM_ATTRIBUTE" type="VARCHAR" length="250"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="EXHIBIT">
+		<db-attribute name="CLOSING_DATE" type="TIMESTAMP" isMandatory="true"/>
+		<db-attribute name="EXHIBIT_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="GALLERY_ID" type="INTEGER" isMandatory="true"/>
+		<db-attribute name="OPENING_DATE" type="TIMESTAMP" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="EXTENDED_TYPE_TEST">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" length="200"/>
+	</db-entity>
+	<db-entity name="FLOAT_TEST">
+		<db-attribute name="FLOAT_COL" type="FLOAT"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="GALLERY">
+		<db-attribute name="GALLERY_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="GALLERY_NAME" type="VARCHAR" isMandatory="true" length="100"/>
+	</db-entity>
+	<db-entity name="GENERATED_COLUMN_COMP_KEY">
+		<db-attribute name="AUTO_PK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="GENERATED_COLUMN" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" length="100"/>
+		<db-attribute name="PROPAGATED_PK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="GENERATED_COLUMN_COMP_M">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" length="100"/>
+	</db-entity>
+	<db-entity name="GENERATED_COLUMN_DEP">
+		<db-attribute name="GENERATED_COLUMN_FK" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" length="100"/>
+	</db-entity>
+	<db-entity name="GENERATED_COLUMN_TEST">
+		<db-attribute name="GENERATED_COLUMN" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" length="250"/>
+	</db-entity>
+	<db-entity name="GENERATED_COLUMN_TEST2">
+		<db-attribute name="GENERATED_COLUMN" type="INTEGER" isPrimaryKey="true" isGenerated="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" length="100"/>
+	</db-entity>
+	<db-entity name="LONG_ENTITY">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="LONG_FIELD" type="BIGINT"/>
+	</db-entity>
+	<db-entity name="MEANINGFUL_PK_DEP">
+		<db-attribute name="DESCR" type="VARCHAR" length="50"/>
+		<db-attribute name="MASTER_PK" type="INTEGER"/>
+		<db-attribute name="PK_ATTRIBUTE" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="MEANINGFUL_PK_TEST1">
+		<db-attribute name="DESCR" type="VARCHAR" length="50"/>
+		<db-attribute name="PK_ATTRIBUTE" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+	</db-entity>
+	<db-entity name="MIXED_PERSISTENCE_STRATEGY">
+		<db-attribute name="DESCRIPTION" type="VARCHAR" length="200"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="NAME" type="VARCHAR" length="200"/>
+	</db-entity>
+	<db-entity name="MIXED_PERSISTENCE_STRATEGY2">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="MASTER_ID" type="INTEGER"/>
+		<db-attribute name="NAME" type="VARCHAR" length="200"/>
+	</db-entity>
+	<db-entity name="NO_PK_TEST">
+		<db-attribute name="ATTRIBUTE1" type="INTEGER"/>
+	</db-entity>
+	<db-entity name="PAINTING">
+		<db-attribute name="ARTIST_ID" type="BIGINT"/>
+		<db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" scale="2"/>
+		<db-attribute name="GALLERY_ID" type="INTEGER"/>
+		<db-attribute name="PAINTING_DESCRIPTION" type="VARCHAR" length="255"/>
+		<db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="PAINTING_TITLE" type="VARCHAR" isMandatory="true" length="255"/>
+	</db-entity>
+	<db-entity name="PAINTING1">
+		<db-attribute name="ARTIST_ID" type="BIGINT"/>
+		<db-attribute name="ESTIMATED_PRICE" type="DECIMAL" length="10" scale="2"/>
+		<db-attribute name="GALLERY_ID" type="INTEGER"/>
+		<db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="PAINTING_TITLE" type="VARCHAR" isMandatory="true" length="255"/>
+	</db-entity>
+	<db-entity name="PAINTING_INFO">
+		<db-attribute name="IMAGE_BLOB" type="LONGVARBINARY"/>
+		<db-attribute name="PAINTING_ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="TEXT_REVIEW" type="LONGVARCHAR"/>
+	</db-entity>
+	<db-entity name="PRIMITIVES_TEST">
+		<db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN"/>
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="INT_COLUMN" type="INTEGER"/>
+	</db-entity>
+	<db-entity name="SERIALIZABLE_ENTITY">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="SERIALIZABLE_FIELD" type="BLOB"/>
+	</db-entity>
+	<db-entity name="SMALLINT_TEST">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="SMALLINT_COL" type="SMALLINT"/>
+	</db-entity>
+	<db-entity name="TINYINT_TEST">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="TINYINT_COL" type="TINYINT"/>
+	</db-entity>
+	<db-entity name="UUID_TEST">
+		<db-attribute name="ID" type="INTEGER" isPrimaryKey="true" isMandatory="true"/>
+		<db-attribute name="UUID" type="VARCHAR" length="100"/>
+	</db-entity>
+	<obj-entity name="ArraysEntity" className="org.apache.art.ArraysEntity" dbEntityName="ARRAYS_ENTITY">
+		<obj-attribute name="byteArray" type="byte[]" db-attribute-path="BYTE_ARRAY"/>
+		<obj-attribute name="byteWrapperArray" type="java.lang.Byte[]" db-attribute-path="BYTE_WRAPPER_ARRAY"/>
+		<obj-attribute name="charArray" type="char[]" db-attribute-path="CHAR_ARRAY"/>
+		<obj-attribute name="charWrapperArray" type="java.lang.Character[]" db-attribute-path="CHAR_WRAPPER_ARRAY"/>
+	</obj-entity>
+	<obj-entity name="ArtGroup" className="org.apache.art.ArtGroup" dbEntityName="ARTGROUP">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="Artist" className="org.apache.art.Artist" dbEntityName="ARTIST">
+		<obj-attribute name="artistName" type="java.lang.String" db-attribute-path="ARTIST_NAME"/>
+		<obj-attribute name="dateOfBirth" type="java.util.Date" db-attribute-path="DATE_OF_BIRTH"/>
+	</obj-entity>
+	<obj-entity name="ArtistCallbackTest" className="org.apache.art.ArtistCallbackTest" dbEntityName="ARTIST_CT" exclude-superclass-listeners="true" exclude-default-listeners="true">
+		<obj-attribute name="artistName" type="java.lang.String"/>
+		<obj-attribute name="dateOfBirth" type="java.util.Date"/>
+		<entity-listener class="org.apache.art.EntityListenerObjEntity">
+			<post-add method-name="prePersistEntityListener"/>
+			<post-persist method-name="postPersistEntityListener"/>
+			<pre-update method-name="preUpdateEntityListener"/>
+			<post-update method-name="postUpdateEntityListener"/>
+			<pre-remove method-name="preRemoveEntityListener"/>
+			<post-remove method-name="postRemoveEntityListener"/>
+			<post-load method-name="postLoadEntityListener"/>
+		</entity-listener>
+		<post-add method-name="prePersistEntityObjEntity"/>
+		<post-persist method-name="postPersistEntityObjEntity"/>
+		<pre-update method-name="preUpdateEntityObjEntity"/>
+		<post-update method-name="postUpdateEntityObjEntity"/>
+		<pre-remove method-name="preRemoveEntityObjEntity"/>
+		<post-remove method-name="postRemoveEntityObjEntity"/>
+		<post-load method-name="postLoadEntityObjEntity"/>
+	</obj-entity>
+	<obj-entity name="ArtistExhibit" className="org.apache.art.ArtistExhibit" dbEntityName="ARTIST_EXHIBIT">
+	</obj-entity>
+	<obj-entity name="BigDecimalEntity" className="org.apache.art.BigDecimalEntity" dbEntityName="BIGDECIMAL_ENTITY">
+		<obj-attribute name="bigDecimalField" type="java.math.BigDecimal" db-attribute-path="BIGDECIMAL_FIELD"/>
+	</obj-entity>
+	<obj-entity name="BigIntegerEntity" className="org.apache.art.BigIntegerEntity" dbEntityName="BIGINTEGER_ENTITY">
+		<obj-attribute name="bigIntegerField" type="java.math.BigInteger" db-attribute-path="BIG_INTEGER_FIELD"/>
+	</obj-entity>
+	<obj-entity name="BinaryPKTest1" className="org.apache.art.BinaryPKTest1" dbEntityName="BINARY_PK_TEST1">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="BinaryPKTest2" className="org.apache.art.BinaryPKTest2" dbEntityName="BINARY_PK_TEST2">
+		<obj-attribute name="detailName" type="java.lang.String" db-attribute-path="DETAIL_NAME"/>
+	</obj-entity>
+	<obj-entity name="BitNumberTestEntity" className="org.apache.art.BitNumberTestEntity" dbEntityName="BIT_TEST">
+		<obj-attribute name="bitColumn" type="java.lang.Integer" db-attribute-path="BIT_COLUMN"/>
+	</obj-entity>
+	<obj-entity name="BitTestEntity" className="org.apache.art.BitTestEntity" dbEntityName="BIT_TEST">
+		<obj-attribute name="bitColumn" type="java.lang.Boolean" db-attribute-path="BIT_COLUMN"/>
+	</obj-entity>
+	<obj-entity name="BlobTestEntity" className="org.apache.art.BlobTestEntity" dbEntityName="BLOB_TEST">
+		<obj-attribute name="blobCol" type="byte[]" db-attribute-path="BLOB_COL"/>
+	</obj-entity>
+	<obj-entity name="BooleanTestEntity" className="org.apache.art.BooleanTestEntity" dbEntityName="BOOLEAN_TEST">
+		<obj-attribute name="booleanColumn" type="java.lang.Boolean" db-attribute-path="BOOLEAN_COLUMN"/>
+	</obj-entity>
+	<obj-entity name="CalendarEntity" className="org.apache.art.CalendarEntity" dbEntityName="CALENDAR_TEST">
+		<obj-attribute name="calendarField" type="java.util.Calendar" db-attribute-path="CALENDAR_FIELD"/>
+	</obj-entity>
+	<obj-entity name="CharFkTestEntity" className="org.apache.art.CharFkTestEntity" dbEntityName="CHAR_FK_TEST">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="CharPkTestEntity" className="org.apache.art.CharPkTestEntity" dbEntityName="CHAR_PK_TEST">
+		<obj-attribute name="otherCol" type="java.lang.String" db-attribute-path="OTHER_COL"/>
+		<obj-attribute name="pkCol" type="java.lang.String" db-attribute-path="PK_COL"/>
+	</obj-entity>
+	<obj-entity name="CharacterEntity" className="org.apache.art.CharacterEntity" dbEntityName="CHARACTER_ENTITY">
+		<obj-attribute name="characterField" type="java.lang.Character" db-attribute-path="CHARACTER_FIELD"/>
+	</obj-entity>
+	<obj-entity name="ClobTestEntity" className="org.apache.art.ClobTestEntity" dbEntityName="CLOB_TEST">
+		<obj-attribute name="clobCol" type="java.lang.String" db-attribute-path="CLOB_COL"/>
+	</obj-entity>
+	<obj-entity name="ClobTestRelation" className="org.apache.art.ClobTestRelation" dbEntityName="CLOB_TEST_RELATION">
+		<obj-attribute name="id" type="java.lang.Integer" db-attribute-path="ID"/>
+		<obj-attribute name="value" type="java.lang.Integer" db-attribute-path="VALUE"/>
+	</obj-entity>
+	<obj-entity name="CompoundFkTestEntity" className="org.apache.art.CompoundFkTestEntity" dbEntityName="COMPOUND_FK_TEST">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="CompoundPainting" className="org.apache.art.CompoundPainting" dbEntityName="PAINTING">
+		<obj-attribute name="artistName" type="java.lang.String" db-attribute-path="toArtist.ARTIST_NAME"/>
+		<obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
+		<obj-attribute name="galleryName" type="java.lang.String" db-attribute-path="toGallery.GALLERY_NAME"/>
+		<obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/>
+		<obj-attribute name="textReview" type="java.lang.String" db-attribute-path="toPaintingInfo.TEXT_REVIEW"/>
+	</obj-entity>
+	<obj-entity name="CompoundPkTestEntity" className="org.apache.art.CompoundPkTestEntity" dbEntityName="COMPOUND_PK_TEST">
+		<obj-attribute name="key1" type="java.lang.String" db-attribute-path="KEY1"/>
+		<obj-attribute name="key2" type="java.lang.String" db-attribute-path="KEY2"/>
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="DateTestEntity" className="org.apache.art.DateTestEntity" dbEntityName="DATE_TEST">
+		<obj-attribute name="dateColumn" type="java.util.Date" db-attribute-path="DATE_COLUMN"/>
+		<obj-attribute name="timeColumn" type="java.util.Date" db-attribute-path="TIME_COLUMN"/>
+		<obj-attribute name="timestampColumn" type="java.util.Date" db-attribute-path="TIMESTAMP_COLUMN"/>
+	</obj-entity>
+	<obj-entity name="DecimalPKTest1" className="org.apache.art.DecimalPKTest1" dbEntityName="DECIMAL_PK_TST">
+		<obj-attribute name="decimalPK" type="java.lang.Double" db-attribute-path="DECIMAL_PK"/>
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="DecimalPKTestEntity" className="org.apache.art.DecimalPKTestEntity" dbEntityName="DECIMAL_PK_TST">
+		<obj-attribute name="decimalPK" type="java.math.BigDecimal" db-attribute-path="DECIMAL_PK"/>
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="EnumEntity" className="org.apache.art.EnumEntity" dbEntityName="ENUM_ENTITY">
+		<obj-attribute name="enumAttribute" type="org.apache.art.Enum1" db-attribute-path="ENUM_ATTRIBUTE"/>
+	</obj-entity>
+	<obj-entity name="Exhibit" className="org.apache.art.Exhibit" dbEntityName="EXHIBIT">
+		<obj-attribute name="closingDate" type="java.util.Date" db-attribute-path="CLOSING_DATE"/>
+		<obj-attribute name="openingDate" type="java.util.Date" db-attribute-path="OPENING_DATE"/>
+	</obj-entity>
+	<obj-entity name="ExtendedTypeEntity" className="org.apache.art.ExtendedTypeEntity" dbEntityName="EXTENDED_TYPE_TEST">
+		<obj-attribute name="name" type="org.apache.art.StringET1" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="Gallery" className="org.apache.art.Gallery" dbEntityName="GALLERY">
+		<obj-attribute name="galleryName" type="java.lang.String" db-attribute-path="GALLERY_NAME"/>
+	</obj-entity>
+	<obj-entity name="GeneratedColumnCompKey" className="org.apache.art.GeneratedColumnCompKey" dbEntityName="GENERATED_COLUMN_COMP_KEY">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="GeneratedColumnCompMaster" className="org.apache.art.GeneratedColumnCompMaster" dbEntityName="GENERATED_COLUMN_COMP_M">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="GeneratedColumnDep" className="org.apache.art.GeneratedColumnDep" dbEntityName="GENERATED_COLUMN_DEP">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="GeneratedColumnTest2" className="org.apache.art.GeneratedColumnTest2" dbEntityName="GENERATED_COLUMN_TEST2">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="GeneratedColumnTestEntity" className="org.apache.art.GeneratedColumnTestEntity" dbEntityName="GENERATED_COLUMN_TEST">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="LongEntity" className="org.apache.art.LongEntity" dbEntityName="LONG_ENTITY">
+		<obj-attribute name="longField" type="java.lang.Long" db-attribute-path="LONG_FIELD"/>
+	</obj-entity>
+	<obj-entity name="MeaningfulGeneratedColumnTestEntity" className="org.apache.art.MeaningfulGeneratedColumnTestEntity" dbEntityName="GENERATED_COLUMN_TEST">
+		<obj-attribute name="generatedColumn" type="java.lang.Integer" db-attribute-path="GENERATED_COLUMN"/>
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="MeaningfulPKDep" className="org.apache.art.MeaningfulPKDep" dbEntityName="MEANINGFUL_PK_DEP">
+		<obj-attribute name="descr" type="java.lang.String" db-attribute-path="DESCR"/>
+	</obj-entity>
+	<obj-entity name="MeaningfulPKTest1" className="org.apache.art.MeaningfulPKTest1" dbEntityName="MEANINGFUL_PK_TEST1">
+		<obj-attribute name="descr" type="java.lang.String" db-attribute-path="DESCR"/>
+		<obj-attribute name="pkAttribute" type="java.lang.Integer" db-attribute-path="PK_ATTRIBUTE"/>
+	</obj-entity>
+	<obj-entity name="MixedPersistenceStrategy" className="org.apache.art.MixedPersistenceStrategy" dbEntityName="MIXED_PERSISTENCE_STRATEGY">
+		<obj-attribute name="description" type="java.lang.String" db-attribute-path="DESCRIPTION"/>
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="MixedPersistenceStrategy2" className="org.apache.art.MixedPersistenceStrategy2" dbEntityName="MIXED_PERSISTENCE_STRATEGY2">
+		<obj-attribute name="name" type="java.lang.String" db-attribute-path="NAME"/>
+	</obj-entity>
+	<obj-entity name="NoPkTestEntity" className="org.apache.art.NoPkTestEntity" dbEntityName="NO_PK_TEST">
+		<obj-attribute name="attribute1" type="java.lang.Integer" db-attribute-path="ATTRIBUTE1"/>
+	</obj-entity>
+	<obj-entity name="Painting" className="org.apache.art.Painting" dbEntityName="PAINTING" superClassName="org.apache.art.ArtDataObject">
+		<obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
+		<obj-attribute name="paintingDescription" type="java.lang.String" db-attribute-path="PAINTING_DESCRIPTION"/>
+		<obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/>
+	</obj-entity>
+	<obj-entity name="Painting1" className="org.apache.art.Painting1" dbEntityName="PAINTING1">
+		<obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
+		<obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/>
+	</obj-entity>
+	<obj-entity name="PaintingInfo" className="org.apache.art.PaintingInfo" dbEntityName="PAINTING_INFO">
+		<obj-attribute name="imageBlob" type="byte[]" db-attribute-path="IMAGE_BLOB"/>
+		<obj-attribute name="textReview" type="java.lang.String" db-attribute-path="TEXT_REVIEW"/>
+	</obj-entity>
+	<obj-entity name="PrimitivesTestEntity" className="org.apache.art.PrimitivesTestEntity" dbEntityName="PRIMITIVES_TEST">
+		<obj-attribute name="booleanColumn" type="boolean" db-attribute-path="BOOLEAN_COLUMN"/>
+		<obj-attribute name="intColumn" type="int" db-attribute-path="INT_COLUMN"/>
+	</obj-entity>
+	<obj-entity name="ROArtist" className="org.apache.art.ROArtist" readOnly="true" dbEntityName="ARTIST">
+		<obj-attribute name="artistName" type="java.lang.String" db-attribute-path="ARTIST_NAME"/>
+		<obj-attribute name="dateOfBirth" type="java.sql.Date" db-attribute-path="DATE_OF_BIRTH"/>
+	</obj-entity>
+	<obj-entity name="ROPainting" className="org.apache.art.ROPainting" readOnly="true" dbEntityName="PAINTING">
+		<obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
+		<obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/>
+	</obj-entity>
+	<obj-entity name="RWCompoundPainting" className="org.apache.art.RWCompoundPainting" dbEntityName="PAINTING">
+		<obj-attribute name="estimatedPrice" type="java.math.BigDecimal" db-attribute-path="ESTIMATED_PRICE"/>
+		<obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/>
+		<obj-attribute name="textReview" type="java.lang.String" db-attribute-path="toPaintingInfo.TEXT_REVIEW"/>
+	</obj-entity>
+	<obj-entity name="SerializableEntity" className="org.apache.art.SerializableEntity" dbEntityName="SERIALIZABLE_ENTITY">
+		<obj-attribute name="serializableField" type="org.apache.cayenne.MockSerializable" db-attribute-path="SERIALIZABLE_FIELD"/>
+	</obj-entity>
+	<obj-entity name="SmallintTestEntity" className="org.apache.art.SmallintTestEntity" dbEntityName="SMALLINT_TEST">
+		<obj-attribute name="smallintCol" type="java.lang.Short" db-attribute-path="SMALLINT_COL"/>
+	</obj-entity>
+	<obj-entity name="SubPainting" className="org.apache.art.SubPainting" dbEntityName="PAINTING">
+		<obj-attribute name="paintingTitle" type="java.lang.String" db-attribute-path="PAINTING_TITLE"/>
+	</obj-entity>
+	<obj-entity name="TinyintTestEntity" className="org.apache.art.TinyintTestEntity" dbEntityName="TINYINT_TEST">
+		<obj-attribute name="tinyintCol" type="java.lang.Byte" db-attribute-path="TINYINT_COL"/>
+	</obj-entity>
+	<obj-entity name="UuidTestEntity" className="org.apache.art.UuidTestEntity" dbEntityName="UUID_TEST">
+		<obj-attribute name="uuid" type="java.util.UUID" db-attribute-path="UUID"/>
+	</obj-entity>
+	<db-relationship name="artistGroupArray" source="ARTGROUP" target="ARTIST_GROUP" toMany="true">
+		<db-attribute-pair source="GROUP_ID" target="GROUP_ID"/>
+	</db-relationship>
+	<db-relationship name="toChildGroups" source="ARTGROUP" target="ARTGROUP" toMany="true">
+		<db-attribute-pair source="GROUP_ID" target="PARENT_GROUP_ID"/>
+	</db-relationship>
+	<db-relationship name="toParentGroup" source="ARTGROUP" target="ARTGROUP" toMany="false">
+		<db-attribute-pair source="PARENT_GROUP_ID" target="GROUP_ID"/>
+	</db-relationship>
+	<db-relationship name="artistExhibitArray" source="ARTIST" target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true">
+		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+	</db-relationship>
+	<db-relationship name="artistGroupArray" source="ARTIST" target="ARTIST_GROUP" toMany="true">
+		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+	</db-relationship>
+	<db-relationship name="paintingArray" source="ARTIST" target="PAINTING" toMany="true">
+		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+	</db-relationship>
+	<db-relationship name="toArtist" source="ARTIST_EXHIBIT" target="ARTIST" toMany="false">
+		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+	</db-relationship>
+	<db-relationship name="toExhibit" source="ARTIST_EXHIBIT" target="EXHIBIT" toMany="false">
+		<db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/>
+	</db-relationship>
+	<db-relationship name="toArtist" source="ARTIST_GROUP" target="ARTIST" toMany="false">
+		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+	</db-relationship>
+	<db-relationship name="toGroup" source="ARTIST_GROUP" target="ARTGROUP" toMany="false">
+		<db-attribute-pair source="GROUP_ID" target="GROUP_ID"/>
+	</db-relationship>
+	<db-relationship name="binaryPKDetails" source="BINARY_PK_TEST1" target="BINARY_PK_TEST2" toMany="true">
+		<db-attribute-pair source="BIN_ID" target="FK_ID"/>
+	</db-relationship>
+	<db-relationship name="toBinaryPKMaster" source="BINARY_PK_TEST2" target="BINARY_PK_TEST1" toMany="false">
+		<db-attribute-pair source="FK_ID" target="BIN_ID"/>
+	</db-relationship>
+	<db-relationship name="toCharPK" source="CHAR_FK_TEST" target="CHAR_PK_TEST" toMany="false">
+		<db-attribute-pair source="FK_COL" target="PK_COL"/>
+	</db-relationship>
+	<db-relationship name="charFKs" source="CHAR_PK_TEST" target="CHAR_FK_TEST" toMany="true">
+		<db-attribute-pair source="PK_COL" target="FK_COL"/>
+	</db-relationship>
+	<db-relationship name="clob" source="CLOB_TEST" target="CLOB_TEST_RELATION" toMany="true">
+		<db-attribute-pair source="CLOB_TEST_ID" target="ID_CLOB"/>
+	</db-relationship>
+	<db-relationship name="CLOB_REL" source="CLOB_TEST_RELATION" target="CLOB_TEST" toMany="false">
+		<db-attribute-pair source="ID_CLOB" target="CLOB_TEST_ID"/>
+	</db-relationship>
+	<db-relationship name="toCompoundPk" source="COMPOUND_FK_TEST" target="COMPOUND_PK_TEST" toMany="false">
+		<db-attribute-pair source="F_KEY1" target="KEY1"/>
+		<db-attribute-pair source="F_KEY2" target="KEY2"/>
+	</db-relationship>
+	<db-relationship name="compoundFkArray" source="COMPOUND_PK_TEST" target="COMPOUND_FK_TEST" toMany="true">
+		<db-attribute-pair source="KEY1" target="F_KEY1"/>
+		<db-attribute-pair source="KEY2" target="F_KEY2"/>
+	</db-relationship>
+	<db-relationship name="artistExhibitArray" source="EXHIBIT" target="ARTIST_EXHIBIT" toDependentPK="true" toMany="true">
+		<db-attribute-pair source="EXHIBIT_ID" target="EXHIBIT_ID"/>
+	</db-relationship>
+	<db-relationship name="toGallery" source="EXHIBIT" target="GALLERY" toMany="false">
+		<db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
+	</db-relationship>
+	<db-relationship name="exhibitArray" source="GALLERY" target="EXHIBIT" toMany="true">
+		<db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
+	</db-relationship>
+	<db-relationship name="paintingArray" source="GALLERY" target="PAINTING" toMany="true">
+		<db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
+	</db-relationship>
+	<db-relationship name="toMaster" source="GENERATED_COLUMN_COMP_KEY" target="GENERATED_COLUMN_COMP_M" toMany="false">
+		<db-attribute-pair source="PROPAGATED_PK" target="ID"/>
+	</db-relationship>
+	<db-relationship name="toDetail" source="GENERATED_COLUMN_COMP_M" target="GENERATED_COLUMN_COMP_KEY" toDependentPK="true" toMany="true">
+		<db-attribute-pair source="ID" target="PROPAGATED_PK"/>
+	</db-relationship>
+	<db-relationship name="toMaster" source="GENERATED_COLUMN_DEP" target="GENERATED_COLUMN_TEST" toMany="false">
+		<db-attribute-pair source="GENERATED_COLUMN_FK" target="GENERATED_COLUMN"/>
+	</db-relationship>
+	<db-relationship name="toDep" source="GENERATED_COLUMN_TEST" target="GENERATED_COLUMN_DEP" toDependentPK="true" toMany="false">
+		<db-attribute-pair source="GENERATED_COLUMN" target="GENERATED_COLUMN_FK"/>
+	</db-relationship>
+	<db-relationship name="toMeaningfulPK" source="MEANINGFUL_PK_DEP" target="MEANINGFUL_PK_TEST1" toMany="false">
+		<db-attribute-pair source="MASTER_PK" target="PK_ATTRIBUTE"/>
+	</db-relationship>
+	<db-relationship name="meaningfulPKDepArray" source="MEANINGFUL_PK_TEST1" target="MEANINGFUL_PK_DEP" toMany="true">
+		<db-attribute-pair source="PK_ATTRIBUTE" target="MASTER_PK"/>
+	</db-relationship>
+	<db-relationship name="details" source="MIXED_PERSISTENCE_STRATEGY" target="MIXED_PERSISTENCE_STRATEGY2" toMany="true">
+		<db-attribute-pair source="ID" target="MASTER_ID"/>
+	</db-relationship>
+	<db-relationship name="master" source="MIXED_PERSISTENCE_STRATEGY2" target="MIXED_PERSISTENCE_STRATEGY" toMany="false">
+		<db-attribute-pair source="MASTER_ID" target="ID"/>
+	</db-relationship>
+	<db-relationship name="toArtist" source="PAINTING" target="ARTIST" toMany="false">
+		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+	</db-relationship>
+	<db-relationship name="toGallery" source="PAINTING" target="GALLERY" toMany="false">
+		<db-attribute-pair source="GALLERY_ID" target="GALLERY_ID"/>
+	</db-relationship>
+	<db-relationship name="toPaintingInfo" source="PAINTING" target="PAINTING_INFO" toDependentPK="true" toMany="false">
+		<db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/>
+	</db-relationship>
+	<db-relationship name="toArtist" source="PAINTING1" target="ARTIST" toMany="false">
+		<db-attribute-pair source="ARTIST_ID" target="ARTIST_ID"/>
+	</db-relationship>
+	<db-relationship name="painting" source="PAINTING_INFO" target="PAINTING" toMany="false">
+		<db-attribute-pair source="PAINTING_ID" target="PAINTING_ID"/>
+	</db-relationship>
+	<obj-relationship name="artistArray" source="ArtGroup" target="Artist" deleteRule="Nullify" db-relationship-path="artistGroupArray.toArtist"/>
+	<obj-relationship name="childGroupsArray" source="ArtGroup" target="ArtGroup" deleteRule="Nullify" db-relationship-path="toChildGroups"/>
+	<obj-relationship name="toParentGroup" source="ArtGroup" target="ArtGroup" deleteRule="Nullify" db-relationship-path="toParentGroup"/>
+	<obj-relationship name="artistExhibitArray" source="Artist" target="ArtistExhibit" deleteRule="Cascade" db-relationship-path="artistExhibitArray"/>
+	<obj-relationship name="groupArray" source="Artist" target="ArtGroup" deleteRule="Cascade" db-relationship-path="artistGroupArray.toGroup"/>
+	<obj-relationship name="paintingArray" source="Artist" target="Painting" deleteRule="Cascade" db-relationship-path="paintingArray"/>
+	<obj-relationship name="toArtist" source="ArtistExhibit" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
+	<obj-relationship name="toExhibit" source="ArtistExhibit" target="Exhibit" deleteRule="Nullify" db-relationship-path="toExhibit"/>
+	<obj-relationship name="binaryPKDetails" source="BinaryPKTest1" target="BinaryPKTest2" db-relationship-path="binaryPKDetails"/>
+	<obj-relationship name="toBinaryPKMaster" source="BinaryPKTest2" target="BinaryPKTest1" db-relationship-path="toBinaryPKMaster"/>
+	<obj-relationship name="toCharPK" source="CharFkTestEntity" target="CharPkTestEntity" db-relationship-path="toCharPK"/>
+	<obj-relationship name="charFKs" source="CharPkTestEntity" target="CharFkTestEntity" db-relationship-path="charFKs"/>
+	<obj-relationship name="clobValue" source="ClobTestEntity" target="ClobTestRelation" db-relationship-path="clob"/>
+	<obj-relationship name="clobId" source="ClobTestRelation" target="ClobTestEntity" db-relationship-path="CLOB_REL"/>
+	<obj-relationship name="toCompoundPk" source="CompoundFkTestEntity" target="CompoundPkTestEntity" db-relationship-path="toCompoundPk"/>
+	<obj-relationship name="toArtist" source="CompoundPainting" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
+	<obj-relationship name="toGallery" source="CompoundPainting" target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/>
+	<obj-relationship name="toPaintingInfo" source="CompoundPainting" target="PaintingInfo" deleteRule="Cascade" db-relationship-path="toPaintingInfo"/>
+	<obj-relationship name="compoundFkArray" source="CompoundPkTestEntity" target="CompoundFkTestEntity" db-relationship-path="compoundFkArray"/>
+	<obj-relationship name="artistExhibitArray" source="Exhibit" target="ArtistExhibit" deleteRule="Cascade" db-relationship-path="artistExhibitArray"/>
+	<obj-relationship name="toGallery" source="Exhibit" target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/>
+	<obj-relationship name="exhibitArray" source="Gallery" target="Exhibit" deleteRule="Cascade" db-relationship-path="exhibitArray"/>
+	<obj-relationship name="paintingArray" source="Gallery" target="Painting" deleteRule="Deny" db-relationship-path="paintingArray"/>
+	<obj-relationship name="toMaster" source="GeneratedColumnCompKey" target="GeneratedColumnCompMaster" db-relationship-path="toMaster"/>
+	<obj-relationship name="toDetail" source="GeneratedColumnCompMaster" target="GeneratedColumnCompKey" db-relationship-path="toDetail"/>
+	<obj-relationship name="toMaster" source="GeneratedColumnDep" target="GeneratedColumnTestEntity" db-relationship-path="toMaster"/>
+	<obj-relationship name="toDep" source="GeneratedColumnTestEntity" target="GeneratedColumnDep" db-relationship-path="toDep"/>
+	<obj-relationship name="toMeaningfulPK" source="MeaningfulPKDep" target="MeaningfulPKTest1" db-relationship-path="toMeaningfulPK"/>
+	<obj-relationship name="meaningfulPKDepArray" source="MeaningfulPKTest1" target="MeaningfulPKDep" db-relationship-path="meaningfulPKDepArray"/>
+	<obj-relationship name="details" source="MixedPersistenceStrategy" target="MixedPersistenceStrategy2" db-relationship-path="details"/>
+	<obj-relationship name="master" source="MixedPersistenceStrategy2" target="MixedPersistenceStrategy" db-relationship-path="master"/>
+	<obj-relationship name="toArtist" source="Painting" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
+	<obj-relationship name="toGallery" source="Painting" target="Gallery" deleteRule="Nullify" db-relationship-path="toGallery"/>
+	<obj-relationship name="toPaintingInfo" source="Painting" target="PaintingInfo" deleteRule="Cascade" db-relationship-path="toPaintingInfo"/>
+	<obj-relationship name="toArtist" source="Painting1" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
+	<obj-relationship name="painting" source="PaintingInfo" target="Painting" deleteRule="Nullify" db-relationship-path="painting"/>
+	<obj-relationship name="paintingArray" source="ROArtist" target="Painting" deleteRule="Deny" db-relationship-path="paintingArray"/>
+	<obj-relationship name="toArtist" source="ROPainting" target="Artist" deleteRule="Nullify" db-relationship-path="toArtist"/>
+	<query name="EjbqlQueryTest" factory="org.apache.cayenne.map.EjbqlBuilder">
+		<property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/>
+		<property name="cayenne.GenericSelectQuery.cacheStrategy" value="SHARED_CACHE"/>
+		<ejbql><![CDATA[select a from Artist a]]></ejbql>
+	</query>
+	<query name="NonSelectingQuery" factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" root-name="testmap">
+		<property name="cayenne.SQLTemplate.columnNameCapitalization" value="UPPER"/>
+		<sql><![CDATA[INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE)
+VALUES (512, 'No Painting Like This', 12.5)]]></sql>
+		<sql adapter-class="org.apache.cayenne.dba.db2.DB2Adapter"><![CDATA[INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) VALUES (512, 'No Painting Like This', 12.5)]]></sql>
+	</query>
+	<query name="ObjectQuery" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="Painting">
+		<qualifier><![CDATA[toArtist = $artist]]></qualifier>
+		<ordering><![CDATA[paintingTitle]]></ordering>
+	</query>
+	<query name="ParameterizedNonSelectingQuery" factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" root-name="testmap">
+		<sql><![CDATA[INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE)
+VALUES (#bind($id), #bind($title), #bind($price))]]></sql>
+		<sql adapter-class="org.apache.cayenne.dba.db2.DB2Adapter"><![CDATA[INSERT INTO PAINTING (PAINTING_ID, PAINTING_TITLE, ESTIMATED_PRICE) values (#bind($id), #bind($title), #bind($price))]]></sql>
+	</query>
+	<query name="ParameterizedQueryWithLocalCache" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="Artist">
+		<property name="cayenne.GenericSelectQuery.cacheStrategy" value="LOCAL_CACHE"/>
+		<qualifier><![CDATA[artistName like $name]]></qualifier>
+	</query>
+	<query name="ParameterizedQueryWithSharedCache" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="Artist">
+		<property name="cayenne.GenericSelectQuery.cacheStrategy" value="SHARED_CACHE"/>
+		<qualifier><![CDATA[artistName like $name]]></qualifier>
+	</query>
+	<query name="ProcedureQuery" factory="org.apache.cayenne.map.ProcedureQueryBuilder" root="procedure" root-name="cayenne_tst_select_proc" result-entity="Artist">
+	</query>
+	<query name="QueryWithLocalCache" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="Artist">
+		<property name="cayenne.GenericSelectQuery.cacheStrategy" value="LOCAL_CACHE"/>
+	</query>
+	<query name="QueryWithOrdering" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="Artist">
+		<ordering descending="true" ignore-case="true"><![CDATA[artistName]]></ordering>
+		<ordering><![CDATA[dateOfBirth]]></ordering>
+	</query>
+	<query name="QueryWithPrefetch" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="Gallery">
+		<prefetch>paintingArray</prefetch>
+	</query>
+	<query name="QueryWithQualifier" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="Artist">
+		<qualifier><![CDATA[artistName = $param1]]></qualifier>
+	</query>
+	<query name="QueryWithSharedCache" factory="org.apache.cayenne.map.SelectQueryBuilder" root="obj-entity" root-name="Artist">
+		<property name="cayenne.GenericSelectQuery.cacheStrategy" value="SHARED_CACHE"/>
+	</query>
+	<query name="SelectDateTest" factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" root-name="testmap">
+		<property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/>
+		<sql><![CDATA[SELECT * FROM DATE_TEST]]></sql>
+	</query>
+	<query name="SelectTestLower" factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" root-name="testmap">
+		<property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/>
+		<property name="cayenne.SQLTemplate.columnNameCapitalization" value="LOWER"/>
+		<sql><![CDATA[select * from ARTIST]]></sql>
+	</query>
+	<query name="SelectTestUpper" factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" root-name="testmap">
+		<property name="cayenne.GenericSelectQuery.fetchingDataRows" value="true"/>
+		<property name="cayenne.SQLTemplate.columnNameCapitalization" value="UPPER"/>
+		<sql><![CDATA[select * from ARTIST]]></sql>
+	</query>
+	<entity-listener class="org.apache.art.EntityListenerDataMap">
+		<post-add method-name="prePersistDataMap1"/>
+		<post-add method-name="prePersistDataMap2"/>
+		<post-persist method-name="postPersistDataMap"/>
+		<pre-update method-name="preUpdateDataMap"/>
+		<post-update method-name="postUpdateDataMap"/>
+		<pre-remove method-name="preRemoveDataMap"/>
+		<post-remove method-name="postRemoveDataMap"/>
+		<post-load method-name="postLoadDataMap"/>
+	</entity-listener>
+</data-map>

Added: cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testtemplate.vm
URL: http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testtemplate.vm?rev=987731&view=auto
==============================================================================
--- cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testtemplate.vm (added)
+++ cayenne/main/branches/STABLE-3.0/framework/cayenne-tools/src/test/resources/testtemplate.vm Sat Aug 21 11:42:21 2010
@@ -0,0 +1,13 @@
+## Test Velocity template
+${importUtils.setPackage($entityUtils.subPackageName)}##
+${importUtils.generate()}
+
+import java.util.List;
+import org.apache.cayenne.*;
+
+/** Class ${classGen.superPrefix}${classGen.className} was generated by Cayenne.
+  * It is probably a good idea to avoid changing this class manually, 
+  * since it may be overwritten next time code is regenerated. 
+  * If you need to make any customizations, please use subclass. 
+  */
+public class ${entityUtils.subClassName} extends CayenneDataObject {



Mime
View raw message