You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2007/12/07 22:51:38 UTC
svn commit: r602238 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src:
main/resources/dotemplates/v1_2/ test/java/org/apache/cayenne/tools/
Author: aadamchik
Date: Fri Dec 7 13:51:37 2007
New Revision: 602238
URL: http://svn.apache.org/viewvc?rev=602238&view=rev
Log:
CAY-933 Embeddable classes - support class generation
(test environment setup; placeholder templates)
Added:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-subclass.vm
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-superclass.vm
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java
Added: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-subclass.vm
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-subclass.vm?rev=602238&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-subclass.vm (added)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-subclass.vm Fri Dec 7 13:51:37 2007
@@ -0,0 +1,30 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+##Terminology:
+## Base class - super superclass of embeddable, usually java.lang.Object
+## Super class - superclass of embeddable, ie, org.apache.cayenne.art.auto._Embeddable
+## Sub class - class of entity, ie, org.apache.cayenne.art.Embeddable
+##
+## Classes available in template
+## embeddable - the Embeddable class: See org.apache.cayenne.map.Embeddable
+## stringUtils - class for string "helper" functions: See org.apache.cayenne.gen.StringUtils
+## entityUtils - class for entity "helper" functions: See org.apache.cayenne.gen.EntityUtils
+## importUtils - class for import statement management: See org.apache.cayenne.gen.ImportUtils
+##
+##
+// subclass
\ No newline at end of file
Added: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-superclass.vm
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-superclass.vm?rev=602238&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-superclass.vm (added)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/dotemplates/v1_2/embeddable-superclass.vm Fri Dec 7 13:51:37 2007
@@ -0,0 +1,30 @@
+## Licensed to the Apache Software Foundation (ASF) under one
+## or more contributor license agreements. See the NOTICE file
+## distributed with this work for additional information
+## regarding copyright ownership. The ASF licenses this file
+## to you under the Apache License, Version 2.0 (the
+## "License"); you may not use this file except in compliance
+## with the License. You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing,
+## software distributed under the License is distributed on an
+## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+## KIND, either express or implied. See the License for the
+## specific language governing permissions and limitations
+## under the License.
+##
+##Terminology:
+## Base class - super superclass of embeddable, usually java.lang.Object
+## Super class - superclass of embeddable, ie, org.apache.cayenne.art.auto._Embeddable
+## Sub class - class of entity, ie, org.apache.cayenne.art.Embeddable
+##
+## Classes available in template
+## embeddable - the Embeddable class: See org.apache.cayenne.map.Embeddable
+## stringUtils - class for string "helper" functions: See org.apache.cayenne.gen.StringUtils
+## entityUtils - class for entity "helper" functions: See org.apache.cayenne.gen.EntityUtils
+## importUtils - class for import statement management: See org.apache.cayenne.gen.ImportUtils
+##
+##
+// superclass
\ No newline at end of file
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java?rev=602238&r1=602237&r2=602238&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java Fri Dec 7 13:51:37 2007
@@ -25,7 +25,7 @@
import java.io.InputStreamReader;
import java.net.URL;
-import org.apache.cayenne.unit.CayenneCase;
+import org.apache.cayenne.unit.BasicCase;
import org.apache.cayenne.unit.CayenneResources;
import org.apache.cayenne.util.ResourceLocator;
import org.apache.cayenne.util.Util;
@@ -33,12 +33,13 @@
import org.apache.tools.ant.Location;
import org.apache.tools.ant.Project;
-public class CayenneGeneratorTaskTest extends CayenneCase {
+public class CayenneGeneratorTaskTest extends BasicCase {
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 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");
static {
@@ -59,6 +60,9 @@
Util.copy(url1, map);
URL url2 = locator.findResource("testtemplate.vm");
Util.copy(url2, template);
+
+ URL url3 = locator.findResource("embeddable.map.xml");
+ Util.copy(url3, mapEmbeddables);
}
public void setUp() {
@@ -224,6 +228,37 @@
File _a = new File(mapDir, convertPath("org/apache/superart/_Artist.java"));
assertTrue(_a.exists());
assertContents(_a, "_Artist", "org.apache.superart", "CayenneDataObject");
+ }
+
+ public void testPairsEmbeddable3() throws Exception {
+ // prepare destination directory
+ File mapDir = new File(baseDir, "pairs-embeddables3-split");
+ assertTrue(mapDir.mkdirs());
+
+ // setup task
+ task.setDestDir(mapDir);
+ task.setMap(mapEmbeddables);
+ task.setMakepairs(true);
+ task.setUsepkgpath(true);
+ task.setSuperpkg("org.apache.cayenne.testdo.embeddable.auto");
+
+ // run task
+ task.execute();
+
+ // check results
+ File a = new File(
+ mapDir,
+ convertPath("org/apache/cayenne/testdo/embeddable/EmbedEntity1.java"));
+ assertTrue(a.isFile());
+ assertContents(
+ a,
+ "EmbedEntity1",
+ "org.apache.cayenne.testdo.embeddable",
+ "_EmbedEntity1");
+
+ File _a = new File(mapDir, convertPath("org/apache/cayenne/testdo/embeddable/auto/_EmbedEntity1.java"));
+ assertTrue(_a.exists());
+ assertContents(_a, "_EmbedEntity1", "org.apache.cayenne.testdo.embeddable.auto", "CayenneDataObject");
}
private String convertPath(String unixPath) {