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/02 13:51:44 UTC
svn commit: r600277 - in
/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src:
main/java/org/apache/cayenne/tools/ main/resources/org/apache/cayenne/tools/
test/java/org/apache/cayenne/tools/
Author: aadamchik
Date: Sun Dec 2 04:51:43 2007
New Revision: 600277
URL: http://svn.apache.org/viewvc?rev=600277&view=rev
Log:
CAY-926 Refactoring class generator classes
(CayenneGenerator -> CayenneGeneratorTask)
Added:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java
- copied, changed from r600273, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorvTask1_2Test.java
- copied, changed from r600273, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorv1_2Test.java
Removed:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTest.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorv1_2Test.java
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGenerator.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/org/apache/cayenne/tools/antlib.xml
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGenerator.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGenerator.java?rev=600277&r1=600276&r2=600277&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGenerator.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGenerator.java Sun Dec 2 04:51:43 2007
@@ -19,246 +19,14 @@
package org.apache.cayenne.tools;
-import java.io.File;
-
-import org.apache.cayenne.gen.AntClassGenerator;
-import org.apache.cayenne.gen.ClassGenerator;
-import org.apache.cayenne.gen.DefaultClassGenerator;
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.types.Path;
-
-import foundrylogic.vpp.VPPConfig;
/**
* Ant task to perform class generation from data map. This class is an Ant adapter to
* DefaultClassGenerator class.
*
+ * @deprecated since 3.0 renamed to CayenneGeneratorTask
* @author Andrus Adamchik, Kevin Menard
*/
-public class CayenneGenerator extends CayenneTask {
-
- protected String includeEntitiesPattern;
- protected String excludeEntitiesPattern;
- protected VPPConfig vppConfig;
-
- protected File map;
- protected File additionalMaps[];
- protected DefaultClassGenerator generator;
-
- protected CayenneGeneratorUtil generatorUtil;
-
- public CayenneGenerator() {
- generator = createGenerator();
- generatorUtil = new CayenneGeneratorUtil();
- }
-
- /**
- * Factory method to create internal class generator. Called from constructor.
- */
- protected DefaultClassGenerator createGenerator() {
- AntClassGenerator gen = new AntClassGenerator();
- gen.setParentTask(this);
- return gen;
- }
-
- /**
- * Executes the task. It will be called by ant framework.
- */
- public void execute() throws BuildException {
- validateAttributes();
-
- // Take care of setting up VPP for the generator.
- if (false == ClassGenerator.VERSION_1_1.equals(generator.getVersionString())) {
- initializeVppConfig();
- generator.setVppConfig(vppConfig);
- }
-
- // Initialize the util generator state.
- generatorUtil.setAdditionalMaps(additionalMaps);
- generatorUtil.setExcludeEntitiesPattern(excludeEntitiesPattern);
- generatorUtil.setGenerator(generator);
- generatorUtil.setIncludeEntitiesPattern(includeEntitiesPattern);
- generatorUtil.setLogger(new AntTaskLogger(this));
- generatorUtil.setMap(map);
-
- try {
- generatorUtil.execute();
- }
- catch (Exception e) {
- throw new BuildException(e);
- }
- }
-
- /**
- * Validates atttributes that are not related to internal DefaultClassGenerator.
- * Throws BuildException if attributes are invalid.
- */
- protected void validateAttributes() throws BuildException {
- if (map == null && this.getProject() == null) {
- throw new BuildException("either 'map' or 'project' is required.");
- }
- }
-
- /**
- * Sets the map.
- *
- * @param map The map to set
- */
- public void setMap(File map) {
- this.map = map;
- }
-
- /**
- * Sets the additional DataMaps.
- *
- * @param additionalMapsPath The additional DataMaps to set
- */
- public void setAdditionalMaps(Path additionalMapsPath) {
- String additionalMapFilenames[] = additionalMapsPath.list();
- this.additionalMaps = new File[additionalMapFilenames.length];
-
- for (int i = 0; i < additionalMapFilenames.length; i++) {
- additionalMaps[i] = new File(additionalMapFilenames[i]);
- }
- }
-
- /**
- * Sets the destDir.
- */
- public void setDestDir(File destDir) {
- generator.setDestDir(destDir);
- }
-
- /**
- * Sets <code>overwrite</code> property.
- */
- public void setOverwrite(boolean overwrite) {
- generator.setOverwrite(overwrite);
- }
-
- /**
- * Sets <code>makepairs</code> property.
- */
- public void setMakepairs(boolean makepairs) {
- generator.setMakePairs(makepairs);
- }
-
- /**
- * Sets <code>template</code> property.
- */
- public void setTemplate(String template) {
- generator.setTemplate(template);
- }
-
- /**
- * Sets <code>supertemplate</code> property.
- */
- public void setSupertemplate(String supertemplate) {
- generator.setSuperTemplate(supertemplate);
- }
-
- /**
- * Sets <code>usepkgpath</code> property.
- */
- public void setUsepkgpath(boolean usepkgpath) {
- generator.setUsePkgPath(usepkgpath);
- }
-
- /**
- * Sets <code>superpkg</code> property.
- */
- public void setSuperpkg(String superpkg) {
- generator.setSuperPkg(superpkg);
- }
-
- /**
- * Sets <code>client</code> property.
- *
- * @since 1.2
- */
- public void setClient(boolean client) {
- generator.setClient(client);
- }
-
- /**
- * Sets <code>version</code> property.
- *
- * @since 1.2
- */
- public void setVersion(String versionString) {
- try {
- generator.setVersionString(versionString);
- }
- catch (IllegalStateException e) {
- throw new BuildException(e.getMessage(), e);
- }
- }
-
- /**
- * Sets <code>encoding</code> property that allows to generate files using
- * non-default encoding.
- *
- * @since 1.2
- */
- public void setEncoding(String encoding) {
- generator.setEncoding(encoding);
- }
-
- /**
- * Sets <code>excludeEntitiesPattern</code> property.
- *
- * @since 1.2
- */
- public void setExcludeEntities(String excludeEntitiesPattern) {
- this.excludeEntitiesPattern = excludeEntitiesPattern;
- }
-
- /**
- * Sets <code>includeEntitiesPattern</code> property.
- *
- * @since 1.2
- */
- public void setIncludeEntities(String includeEntitiesPattern) {
- this.includeEntitiesPattern = includeEntitiesPattern;
- }
-
- /**
- * Sets <code>outputPattern</code> property.
- *
- * @since 1.2
- */
- public void setOutputPattern(String outputPattern) {
- generator.setOutputPattern(outputPattern);
- }
-
- /**
- * Sets <code>mode</code> property.
- *
- * @since 1.2
- */
- public void setMode(String mode) {
- generator.setMode(mode);
- }
+public class CayenneGenerator extends CayenneGeneratorTask {
- /**
- * Provides a <code>VPPConfig</code> object to configure. (Written with
- * createConfig() instead of addConfig() to avoid run-time dependency on VPP).
- *
- * @since 1.2
- */
- public Object createConfig() {
- this.vppConfig = new VPPConfig();
- return this.vppConfig;
- }
-
- /**
- * If no VppConfig element specified, use the default one.
- *
- * @since 1.2
- */
- private void initializeVppConfig() {
- if (vppConfig == null) {
- vppConfig = VPPConfig.getDefaultConfig(getProject());
- }
- }
}
Added: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java?rev=600277&view=auto
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java (added)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java Sun Dec 2 04:51:43 2007
@@ -0,0 +1,245 @@
+/*****************************************************************
+ * 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.tools;
+
+import java.io.File;
+
+import org.apache.cayenne.gen.AntClassGenerator;
+import org.apache.cayenne.gen.ClassGenerator;
+import org.apache.cayenne.gen.DefaultClassGenerator;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.types.Path;
+
+import foundrylogic.vpp.VPPConfig;
+
+/**
+ * An Ant task to perform class generation based on CayenneDataMap.
+ *
+ * @since 3.0
+ */
+public class CayenneGeneratorTask extends CayenneTask {
+
+ protected String includeEntitiesPattern;
+ protected String excludeEntitiesPattern;
+ protected VPPConfig vppConfig;
+
+ protected File map;
+ protected File additionalMaps[];
+ protected DefaultClassGenerator generator;
+
+ protected CayenneGeneratorUtil generatorUtil;
+
+ public CayenneGeneratorTask() {
+ generator = createGenerator();
+ generatorUtil = new CayenneGeneratorUtil();
+ }
+
+ /**
+ * Factory method to create internal class generator. Called from constructor.
+ */
+ protected DefaultClassGenerator createGenerator() {
+ AntClassGenerator gen = new AntClassGenerator();
+ gen.setParentTask(this);
+ return gen;
+ }
+
+ /**
+ * Executes the task. It will be called by ant framework.
+ */
+ public void execute() throws BuildException {
+ validateAttributes();
+
+ // Take care of setting up VPP for the generator.
+ if (false == ClassGenerator.VERSION_1_1.equals(generator.getVersionString())) {
+ initializeVppConfig();
+ generator.setVppConfig(vppConfig);
+ }
+
+ // Initialize the util generator state.
+ generatorUtil.setAdditionalMaps(additionalMaps);
+ generatorUtil.setExcludeEntitiesPattern(excludeEntitiesPattern);
+ generatorUtil.setGenerator(generator);
+ generatorUtil.setIncludeEntitiesPattern(includeEntitiesPattern);
+ generatorUtil.setLogger(new AntTaskLogger(this));
+ generatorUtil.setMap(map);
+
+ try {
+ generatorUtil.execute();
+ }
+ catch (Exception e) {
+ throw new BuildException(e);
+ }
+ }
+
+ /**
+ * Validates atttributes that are not related to internal DefaultClassGenerator.
+ * Throws BuildException if attributes are invalid.
+ */
+ protected void validateAttributes() throws BuildException {
+ if (map == null && this.getProject() == null) {
+ throw new BuildException("either 'map' or 'project' is required.");
+ }
+ }
+
+ /**
+ * Sets the map.
+ *
+ * @param map The map to set
+ */
+ public void setMap(File map) {
+ this.map = map;
+ }
+
+ /**
+ * Sets the additional DataMaps.
+ *
+ * @param additionalMapsPath The additional DataMaps to set
+ */
+ public void setAdditionalMaps(Path additionalMapsPath) {
+ String additionalMapFilenames[] = additionalMapsPath.list();
+ this.additionalMaps = new File[additionalMapFilenames.length];
+
+ for (int i = 0; i < additionalMapFilenames.length; i++) {
+ additionalMaps[i] = new File(additionalMapFilenames[i]);
+ }
+ }
+
+ /**
+ * Sets the destDir.
+ */
+ public void setDestDir(File destDir) {
+ generator.setDestDir(destDir);
+ }
+
+ /**
+ * Sets <code>overwrite</code> property.
+ */
+ public void setOverwrite(boolean overwrite) {
+ generator.setOverwrite(overwrite);
+ }
+
+ /**
+ * Sets <code>makepairs</code> property.
+ */
+ public void setMakepairs(boolean makepairs) {
+ generator.setMakePairs(makepairs);
+ }
+
+ /**
+ * Sets <code>template</code> property.
+ */
+ public void setTemplate(String template) {
+ generator.setTemplate(template);
+ }
+
+ /**
+ * Sets <code>supertemplate</code> property.
+ */
+ public void setSupertemplate(String supertemplate) {
+ generator.setSuperTemplate(supertemplate);
+ }
+
+ /**
+ * Sets <code>usepkgpath</code> property.
+ */
+ public void setUsepkgpath(boolean usepkgpath) {
+ generator.setUsePkgPath(usepkgpath);
+ }
+
+ /**
+ * Sets <code>superpkg</code> property.
+ */
+ public void setSuperpkg(String superpkg) {
+ generator.setSuperPkg(superpkg);
+ }
+
+ /**
+ * Sets <code>client</code> property.
+ */
+ public void setClient(boolean client) {
+ generator.setClient(client);
+ }
+
+ /**
+ * Sets <code>version</code> property.
+ */
+ public void setVersion(String versionString) {
+ try {
+ generator.setVersionString(versionString);
+ }
+ catch (IllegalStateException e) {
+ throw new BuildException(e.getMessage(), e);
+ }
+ }
+
+ /**
+ * Sets <code>encoding</code> property that allows to generate files using
+ * non-default encoding.
+ */
+ public void setEncoding(String encoding) {
+ generator.setEncoding(encoding);
+ }
+
+ /**
+ * Sets <code>excludeEntitiesPattern</code> property.
+ */
+ public void setExcludeEntities(String excludeEntitiesPattern) {
+ this.excludeEntitiesPattern = excludeEntitiesPattern;
+ }
+
+ /**
+ * Sets <code>includeEntitiesPattern</code> property.
+ */
+ public void setIncludeEntities(String includeEntitiesPattern) {
+ this.includeEntitiesPattern = includeEntitiesPattern;
+ }
+
+ /**
+ * Sets <code>outputPattern</code> property.
+ */
+ public void setOutputPattern(String outputPattern) {
+ generator.setOutputPattern(outputPattern);
+ }
+
+ /**
+ * Sets <code>mode</code> property.
+ */
+ public void setMode(String mode) {
+ generator.setMode(mode);
+ }
+
+ /**
+ * Provides a <code>VPPConfig</code> object to configure. (Written with
+ * createConfig() instead of addConfig() to avoid run-time dependency on VPP).
+ */
+ public Object createConfig() {
+ this.vppConfig = new VPPConfig();
+ return this.vppConfig;
+ }
+
+ /**
+ * If no VppConfig element specified, use the default one.
+ */
+ private void initializeVppConfig() {
+ if (vppConfig == null) {
+ vppConfig = VPPConfig.getDefaultConfig(getProject());
+ }
+ }
+
+}
Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/org/apache/cayenne/tools/antlib.xml
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/org/apache/cayenne/tools/antlib.xml?rev=600277&r1=600276&r2=600277&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/org/apache/cayenne/tools/antlib.xml (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/org/apache/cayenne/tools/antlib.xml Sun Dec 2 04:51:43 2007
@@ -18,7 +18,7 @@
-->
<antlib>
- <taskdef name="cgen" classname="org.apache.cayenne.tools.CayenneGenerator"/>
+ <taskdef name="cgen" classname="org.apache.cayenne.tools.CayenneGeneratorTask"/>
<taskdef name="cdbgen" classname="org.apache.cayenne.tools.DbGeneratorTask"/>
<taskdef name="cdeploy" classname="org.apache.cayenne.tools.DeploymentConfigurator"/>
<taskdef name="cdataport" classname="org.apache.cayenne.tools.DataPortTask"/>
Copied: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java (from r600273, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTest.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java?p2=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java&p1=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTest.java&r1=600273&r2=600277&rev=600277&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorTaskTest.java Sun Dec 2 04:51:43 2007
@@ -25,15 +25,15 @@
import java.io.InputStreamReader;
import java.net.URL;
-import org.apache.oro.text.perl.Perl5Util;
-import org.apache.tools.ant.Location;
-import org.apache.tools.ant.Project;
import org.apache.cayenne.unit.CayenneCase;
import org.apache.cayenne.unit.CayenneResources;
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 CayenneGeneratorTest extends CayenneCase {
+public class CayenneGeneratorTaskTest extends CayenneCase {
private static final Perl5Util regexUtil = new Perl5Util();
private static final Project project = new Project();
@@ -46,7 +46,7 @@
project.setBaseDir(baseDir);
}
- protected CayenneGenerator task;
+ protected CayenneGeneratorTask task;
private static void extractFiles() {
ResourceLocator locator = new ResourceLocator();
@@ -61,8 +61,8 @@
Util.copy(url2, template);
}
- public void setUp() throws java.lang.Exception {
- task = new CayenneGenerator();
+ public void setUp() {
+ task = new CayenneGeneratorTask();
task.setProject(project);
task.setTaskName("Test");
task.setLocation(Location.UNKNOWN_LOCATION);
Copied: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorvTask1_2Test.java (from r600273, cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorv1_2Test.java)
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorvTask1_2Test.java?p2=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorvTask1_2Test.java&p1=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorv1_2Test.java&r1=600273&r2=600277&rev=600277&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorv1_2Test.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/tools/CayenneGeneratorvTask1_2Test.java Sun Dec 2 04:51:43 2007
@@ -26,22 +26,22 @@
import junit.framework.TestCase;
+import org.apache.cayenne.unit.CayenneResources;
import org.apache.oro.text.perl.Perl5Util;
import org.apache.tools.ant.Location;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.types.FileList;
import org.apache.tools.ant.types.Path;
-import org.apache.cayenne.unit.CayenneResources;
-public class CayenneGeneratorv1_2Test extends TestCase {
+public class CayenneGeneratorvTask1_2Test extends TestCase {
private static final Perl5Util regexUtil = new Perl5Util();
private static final Project project = new Project();
- protected CayenneGenerator task;
+ protected CayenneGeneratorTask task;
- public void setUp() throws java.lang.Exception {
- task = new CayenneGenerator();
+ public void setUp() {
+ task = new CayenneGeneratorTask();
task.setProject(project);
task.setTaskName("Test");
task.setLocation(Location.UNKNOWN_LOCATION);
@@ -52,9 +52,7 @@
// prepare destination directory
- File destDir = new File(
- CayenneResources.getResources().getTestDir(),
- "cgen11");
+ File destDir = new File(CayenneResources.getResources().getTestDir(), "cgen11");
// prepare destination directory
if (!destDir.exists()) {
assertTrue(destDir.mkdirs());
@@ -105,9 +103,7 @@
public void testCrossDataMapRelationships() throws Exception {
// prepare destination directory
- File destDir = new File(
- CayenneResources.getResources().getTestDir(),
- "cgen12");
+ File destDir = new File(CayenneResources.getResources().getTestDir(), "cgen12");
// prepare destination directory
if (!destDir.exists()) {
assertTrue(destDir.mkdirs());