You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2022/07/20 15:30:09 UTC
[cayenne] branch master updated (21e628fc0 -> c39d93244)
This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
from 21e628fc0 Add generics to FluentSelect to merge identical code in ObjectSelect and ColumnSelect
new 011051ef3 CAY-2752 Rename queryTemplate to dataMapTemplate in the cgen config - rename CgenConfiguration fields - minor code cleanup
new 3925135ca CAY-2752 Rename queryTemplate to dataMapTemplate in the cgen config - update schema
new c39d93244 CAY-2752 Rename queryTemplate to dataMapTemplate in the cgen config - update build tools configs
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../apache/cayenne/tools/CayenneGeneratorTask.java | 30 ++++++------
.../org/apache/cayenne/gen/CgenConfiguration.java | 48 +++++++++++--------
.../apache/cayenne/gen/ClassGenerationAction.java | 6 +--
.../apache/cayenne/gen/xml/CgenConfigHandler.java | 20 ++++----
.../java/org/apache/cayenne/tools/CgenTask.java | 55 +++++++++++++++++-----
.../apache/cayenne/project/FileProjectSaver.java | 2 +-
.../upgrade/handlers/UpgradeHandler_V11.java | 33 ++++++++++++-
.../upgrade/handlers/UpgradeHandler_V11Test.java | 43 ++++++++++++++---
.../project/upgrade/handlers/test-map-v10.map.xml | 2 +
.../org/apache/cayenne/schema/11/cgen.xsd | 4 +-
.../apache/cayenne/tools/CayenneGeneratorMojo.java | 38 +++++++++++----
.../editor/cgen/CodeGeneratorController.java | 6 +--
.../modeler/editor/cgen/CustomModeController.java | 8 ++--
.../modeler/editor/cgen/CustomModePanel.java | 4 +-
14 files changed, 210 insertions(+), 89 deletions(-)
[cayenne] 01/03: CAY-2752 Rename queryTemplate to dataMapTemplate in the cgen config - rename CgenConfiguration fields - minor code cleanup
Posted by nt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 011051ef3624d969bfef059de1ce71ae939274d0
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Wed Jul 20 14:51:51 2022 +0300
CAY-2752 Rename queryTemplate to dataMapTemplate in the cgen config
- rename CgenConfiguration fields
- minor code cleanup
---
.../apache/cayenne/tools/CayenneGeneratorTask.java | 6 +--
.../org/apache/cayenne/gen/CgenConfiguration.java | 48 +++++++++++++---------
.../apache/cayenne/gen/ClassGenerationAction.java | 6 +--
.../apache/cayenne/gen/xml/CgenConfigHandler.java | 4 +-
.../apache/cayenne/project/FileProjectSaver.java | 2 +-
.../apache/cayenne/tools/CayenneGeneratorMojo.java | 6 +--
.../editor/cgen/CodeGeneratorController.java | 6 +--
.../modeler/editor/cgen/CustomModeController.java | 8 ++--
.../modeler/editor/cgen/CustomModePanel.java | 4 +-
9 files changed, 48 insertions(+), 42 deletions(-)
diff --git a/cayenne-ant/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java b/cayenne-ant/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
index 9970ad902..4c75bb484 100644
--- a/cayenne-ant/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
+++ b/cayenne-ant/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
@@ -200,8 +200,8 @@ public class CayenneGeneratorTask extends CayenneTask {
cgenConfiguration.setEmbeddableTemplate(embeddabletemplate != null ? embeddabletemplate : cgenConfiguration.getEmbeddableTemplate());
cgenConfiguration.setUsePkgPath(usepkgpath != null ? usepkgpath : cgenConfiguration.isUsePkgPath());
cgenConfiguration.setCreatePropertyNames(createpropertynames != null ? createpropertynames : cgenConfiguration.isCreatePropertyNames());
- cgenConfiguration.setQueryTemplate(querytemplate != null ? querytemplate : cgenConfiguration.getQueryTemplate());
- cgenConfiguration.setQuerySuperTemplate(querysupertemplate != null ? querysupertemplate : cgenConfiguration.getQuerySuperTemplate());
+ cgenConfiguration.setDataMapTemplate(querytemplate != null ? querytemplate : cgenConfiguration.getDataMapTemplate());
+ cgenConfiguration.setDataMapSuperTemplate(querysupertemplate != null ? querysupertemplate : cgenConfiguration.getDataMapSuperTemplate());
cgenConfiguration.setCreatePKProperties(createpkproperties != null ? createpkproperties : cgenConfiguration.isCreatePKProperties());
cgenConfiguration.setExternalToolConfig(externaltoolconfig != null ? externaltoolconfig : cgenConfiguration.getExternalToolConfig());
if(!cgenConfiguration.isMakePairs()) {
@@ -212,7 +212,7 @@ public class CayenneGeneratorTask extends CayenneTask {
cgenConfiguration.setEmbeddableTemplate(ClassGenerationAction.EMBEDDABLE_SINGLE_CLASS_TEMPLATE);
}
if(querytemplate == null) {
- cgenConfiguration.setQueryTemplate(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
+ cgenConfiguration.setDataMapTemplate(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
}
}
return cgenConfiguration;
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java
index 9f39edc8f..8731b1a8a 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java
@@ -39,10 +39,8 @@ import org.apache.cayenne.util.XMLSerializable;
import org.apache.cayenne.validation.ValidationException;
/**
- * Used to keep config of class generation action.
- * Previously was the part of ClassGeneretionAction class.
- * Now CgenConfiguration is saved in dataMap file.
- * You can reuse it in next cgen actions.
+ * Stores configuration for the code generation tool.
+ * CgenConfiguration is stored in the dataMap xml file and used by Modeler and CLI tools (Maven, Gradle and Ant).
*
* @since 4.1
*/
@@ -69,8 +67,14 @@ public class CgenConfiguration implements Serializable, XMLSerializable {
private String superTemplate;
private String embeddableTemplate;
private String embeddableSuperTemplate;
- private String queryTemplate;
- private String querySuperTemplate;
+ /**
+ * @since 4.3 renamed from queryTemplate
+ */
+ private String dataMapTemplate;
+ /**
+ * @since 4.3 renamed from querySuperTemplate
+ */
+ private String dataMapSuperTemplate;
private long timestamp;
private String outputPattern;
private String encoding;
@@ -105,8 +109,8 @@ public class CgenConfiguration implements Serializable, XMLSerializable {
this.template = ClassGenerationAction.SUBCLASS_TEMPLATE;
this.superTemplate = ClassGenerationAction.SUPERCLASS_TEMPLATE;
- this.queryTemplate = ClassGenerationAction.DATAMAP_SUBCLASS_TEMPLATE;
- this.querySuperTemplate = ClassGenerationAction.DATAMAP_SUPERCLASS_TEMPLATE;
+ this.dataMapTemplate = ClassGenerationAction.DATAMAP_SUBCLASS_TEMPLATE;
+ this.dataMapSuperTemplate = ClassGenerationAction.DATAMAP_SUPERCLASS_TEMPLATE;
this.embeddableTemplate = ClassGenerationAction.EMBEDDABLE_SUBCLASS_TEMPLATE;
this.embeddableSuperTemplate = ClassGenerationAction.EMBEDDABLE_SUPERCLASS_TEMPLATE;
@@ -231,20 +235,20 @@ public class CgenConfiguration implements Serializable, XMLSerializable {
this.embeddableSuperTemplate = embeddableSuperTemplate;
}
- public String getQueryTemplate() {
- return queryTemplate;
+ public String getDataMapTemplate() {
+ return dataMapTemplate;
}
- public void setQueryTemplate(String queryTemplate) {
- this.queryTemplate = queryTemplate;
+ public void setDataMapTemplate(String dataMapTemplate) {
+ this.dataMapTemplate = dataMapTemplate;
}
- public String getQuerySuperTemplate() {
- return querySuperTemplate;
+ public String getDataMapSuperTemplate() {
+ return dataMapSuperTemplate;
}
- public void setQuerySuperTemplate(String querySuperTemplate) {
- this.querySuperTemplate = querySuperTemplate;
+ public void setDataMapSuperTemplate(String dataMapSuperTemplate) {
+ this.dataMapSuperTemplate = dataMapSuperTemplate;
}
public long getTimestamp() {
@@ -331,7 +335,13 @@ public class CgenConfiguration implements Serializable, XMLSerializable {
}
public Path buildPath() {
- return rootPath != null ? relPath != null ? rootPath.resolve(relPath).toAbsolutePath().normalize() : rootPath : relPath;
+ if(rootPath == null) {
+ return relPath;
+ }
+ if(relPath == null) {
+ return rootPath;
+ }
+ return rootPath.resolve(relPath).toAbsolutePath().normalize();
}
public void loadEntity(ObjEntity entity) {
@@ -406,8 +416,8 @@ public class CgenConfiguration implements Serializable, XMLSerializable {
.simpleTag("superTemplate", separatorsToUnix(this.superTemplate))
.simpleTag("embeddableTemplate", separatorsToUnix(this.embeddableTemplate))
.simpleTag("embeddableSuperTemplate", separatorsToUnix(this.embeddableSuperTemplate))
- .simpleTag("queryTemplate", separatorsToUnix(this.queryTemplate))
- .simpleTag("querySuperTemplate", separatorsToUnix(this.querySuperTemplate))
+ .simpleTag("queryTemplate", separatorsToUnix(this.dataMapTemplate))
+ .simpleTag("querySuperTemplate", separatorsToUnix(this.dataMapSuperTemplate))
.simpleTag("outputPattern", this.outputPattern)
.simpleTag("makePairs", Boolean.toString(this.makePairs))
.simpleTag("usePkgPath", Boolean.toString(this.usePkgPath))
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
index cebaab17d..c497153eb 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/ClassGenerationAction.java
@@ -39,7 +39,6 @@ import org.apache.cayenne.map.ObjEntity;
import org.apache.cayenne.map.QueryDescriptor;
import org.apache.velocity.Template;
import org.apache.velocity.VelocityContext;
-import org.apache.velocity.app.Velocity;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.context.Context;
import org.apache.velocity.tools.ToolManager;
@@ -65,7 +64,6 @@ public class ClassGenerationAction {
public static final String SUPERCLASS_PREFIX = "_";
private static final String WILDCARD = "*";
- private static final String CGEN_ROOT_PATH = "cayenne.cgen.rootpath";
/**
* @since 4.1
@@ -147,9 +145,9 @@ public class ClassGenerationAction {
return cgenConfiguration.getEmbeddableSuperTemplate();
case DATAMAP_SINGLE_CLASS:
case DATAMAP_SUBCLASS:
- return cgenConfiguration.getQueryTemplate();
+ return cgenConfiguration.getDataMapTemplate();
case DATAMAP_SUPERCLASS:
- return cgenConfiguration.getQuerySuperTemplate();
+ return cgenConfiguration.getDataMapSuperTemplate();
default:
throw new IllegalArgumentException("Invalid template type: " + type);
}
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java
index a60f8faab..3dea5e115 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java
@@ -195,14 +195,14 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
if(template.trim().length() == 0) {
return;
}
- configuration.setQueryTemplate(template);
+ configuration.setDataMapTemplate(template);
}
private void createQuerySuperTemplate(String template) {
if(template.trim().length() == 0) {
return;
}
- configuration.setQuerySuperTemplate(template);
+ configuration.setDataMapSuperTemplate(template);
}
private void createOutputPattern(String pattern) {
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
index 95f1132b0..a83cf7693 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/FileProjectSaver.java
@@ -356,7 +356,7 @@ public class FileProjectSaver implements ProjectSaver {
}
}
- class SaveUnit {
+ static class SaveUnit {
private ConfigurationNode node;
private SaverDelegate delegate;
diff --git a/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java b/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
index 03eac5a66..846e23ad1 100644
--- a/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
+++ b/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
@@ -344,8 +344,8 @@ public class CayenneGeneratorMojo extends AbstractMojo {
cgenConfiguration.setEmbeddableTemplate(embeddableTemplate != null ? embeddableTemplate : cgenConfiguration.getEmbeddableTemplate());
cgenConfiguration.setUsePkgPath(usePkgPath != null ? usePkgPath : cgenConfiguration.isUsePkgPath());
cgenConfiguration.setCreatePropertyNames(createPropertyNames != null ? createPropertyNames : cgenConfiguration.isCreatePropertyNames());
- cgenConfiguration.setQueryTemplate(queryTemplate != null ? queryTemplate : cgenConfiguration.getQueryTemplate());
- cgenConfiguration.setQuerySuperTemplate(querySuperTemplate != null ? querySuperTemplate : cgenConfiguration.getQuerySuperTemplate());
+ cgenConfiguration.setDataMapTemplate(queryTemplate != null ? queryTemplate : cgenConfiguration.getDataMapTemplate());
+ cgenConfiguration.setDataMapSuperTemplate(querySuperTemplate != null ? querySuperTemplate : cgenConfiguration.getDataMapSuperTemplate());
cgenConfiguration.setCreatePKProperties(createPKProperties != null ? createPKProperties : cgenConfiguration.isCreatePKProperties());
cgenConfiguration.setExternalToolConfig(externalToolConfig != null ? externalToolConfig : cgenConfiguration.getExternalToolConfig());
if(!cgenConfiguration.isMakePairs()) {
@@ -356,7 +356,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
cgenConfiguration.setEmbeddableTemplate(ClassGenerationAction.EMBEDDABLE_SINGLE_CLASS_TEMPLATE);
}
if(queryTemplate == null) {
- cgenConfiguration.setQueryTemplate(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
+ cgenConfiguration.setDataMapTemplate(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
}
}
return cgenConfiguration;
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java
index 2b336798c..624eb6e55 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CodeGeneratorController.java
@@ -36,9 +36,6 @@ import java.util.stream.Collectors;
import org.apache.cayenne.configuration.event.DataMapEvent;
import org.apache.cayenne.configuration.event.DataMapListener;
import org.apache.cayenne.configuration.xml.DataChannelMetaData;
-import org.apache.cayenne.di.DIBootstrap;
-import org.apache.cayenne.di.Module;
-import org.apache.cayenne.di.spi.ModuleLoader;
import org.apache.cayenne.gen.CgenConfiguration;
import org.apache.cayenne.gen.ClassGenerationAction;
import org.apache.cayenne.gen.ClassGenerationActionFactory;
@@ -62,8 +59,9 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
+ * Main controller for the code generation UI.
+ *
* @since 4.1
- * A controller for the class generator dialog.
*/
public class CodeGeneratorController extends CayenneController implements ObjEntityListener, EmbeddableListener, DataMapListener {
private static final Logger LOGGER = LoggerFactory.getLogger(ErrorDebugDialog.class);
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModeController.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModeController.java
index 28d8f3c55..97ecb39a6 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModeController.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModeController.java
@@ -119,9 +119,9 @@ public class CustomModeController extends GeneratorController {
String embeddableSuperTemplateName = getApplication().getCodeTemplateManager().getNameByPath(
cgenConfiguration.getEmbeddableSuperTemplate(), cgenConfiguration.getRootPath());
String queryTemplateName = getApplication().getCodeTemplateManager().getNameByPath(
- cgenConfiguration.getQueryTemplate(), cgenConfiguration.getRootPath());
+ cgenConfiguration.getDataMapTemplate(), cgenConfiguration.getRootPath());
String querySuperTemplateName = getApplication().getCodeTemplateManager().getNameByPath(
- cgenConfiguration.getQuerySuperTemplate(), cgenConfiguration.getRootPath());
+ cgenConfiguration.getDataMapSuperTemplate(), cgenConfiguration.getRootPath());
view.getSubclassTemplate().setItem(templateName);
view.getSuperclassTemplate().setItem(superTemplateName);
@@ -141,11 +141,11 @@ public class CustomModeController extends GeneratorController {
if (!view.getPairs().isSelected()) {
cgenConfiguration.setTemplate(ClassGenerationAction.SINGLE_CLASS_TEMPLATE);
cgenConfiguration.setEmbeddableTemplate(ClassGenerationAction.EMBEDDABLE_SINGLE_CLASS_TEMPLATE);
- cgenConfiguration.setQueryTemplate(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
+ cgenConfiguration.setDataMapTemplate(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
} else {
cgenConfiguration.setTemplate(ClassGenerationAction.SUBCLASS_TEMPLATE);
cgenConfiguration.setEmbeddableTemplate(ClassGenerationAction.EMBEDDABLE_SUBCLASS_TEMPLATE);
- cgenConfiguration.setQueryTemplate(ClassGenerationAction.DATAMAP_SUBCLASS_TEMPLATE);
+ cgenConfiguration.setDataMapTemplate(ClassGenerationAction.DATAMAP_SUBCLASS_TEMPLATE);
}
initForm(cgenConfiguration);
getParentController().checkCgenConfigDirty();
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java
index 32909ef5d..598ddad35 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/editor/cgen/CustomModePanel.java
@@ -110,7 +110,7 @@ public class CustomModePanel extends GeneratorControllerPanel {
@Override
protected void updateModel(String item) throws ValidationException {
CgenConfiguration cgenConfiguration = getCgenConfig();
- cgenConfiguration.setQueryTemplate(Application.getInstance().getCodeTemplateManager().getTemplatePath(item,
+ cgenConfiguration.setDataMapTemplate(Application.getInstance().getCodeTemplateManager().getTemplatePath(item,
cgenConfiguration.getDataMap().getConfigurationSource()));
checkConfigDirty();
}
@@ -121,7 +121,7 @@ public class CustomModePanel extends GeneratorControllerPanel {
@Override
protected void updateModel(String item) throws ValidationException {
CgenConfiguration cgenConfiguration = getCgenConfig();
- cgenConfiguration.setQuerySuperTemplate(Application.getInstance().getCodeTemplateManager().getTemplatePath(item,
+ cgenConfiguration.setDataMapSuperTemplate(Application.getInstance().getCodeTemplateManager().getTemplatePath(item,
cgenConfiguration.getDataMap().getConfigurationSource()));
checkConfigDirty();
}
[cayenne] 03/03: CAY-2752 Rename queryTemplate to dataMapTemplate in the cgen config - update build tools configs
Posted by nt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit c39d93244c9d47fc2a8c37fd59211e43d73469ef
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Wed Jul 20 18:29:59 2022 +0300
CAY-2752 Rename queryTemplate to dataMapTemplate in the cgen config
- update build tools configs
---
.../apache/cayenne/tools/CayenneGeneratorTask.java | 28 ++++++-----
.../java/org/apache/cayenne/tools/CgenTask.java | 55 +++++++++++++++++-----
.../apache/cayenne/tools/CayenneGeneratorMojo.java | 36 ++++++++++----
3 files changed, 85 insertions(+), 34 deletions(-)
diff --git a/cayenne-ant/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java b/cayenne-ant/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
index 4c75bb484..e720c66de 100644
--- a/cayenne-ant/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
+++ b/cayenne-ant/src/main/java/org/apache/cayenne/tools/CayenneGeneratorTask.java
@@ -65,8 +65,8 @@ public class CayenneGeneratorTask extends CayenneTask {
protected String template;
protected String embeddabletemplate;
protected String embeddablesupertemplate;
- protected String querytemplate;
- protected String querysupertemplate;
+ protected String datamaptemplate;
+ protected String datamapsupertemplate;
protected Boolean usepkgpath;
protected Boolean createpropertynames;
@@ -160,8 +160,8 @@ public class CayenneGeneratorTask extends CayenneTask {
return destDir != null || encoding != null || excludeEntitiesPattern != null || excludeEmbeddablesPattern != null || includeEntitiesPattern != null ||
makepairs != null || mode != null || outputPattern != null || overwrite != null || superpkg != null ||
supertemplate != null || template != null || embeddabletemplate != null || embeddablesupertemplate != null ||
- usepkgpath != null || createpropertynames != null || querytemplate != null ||
- querysupertemplate != null || createpkproperties != null || force || externaltoolconfig != null;
+ usepkgpath != null || createpropertynames != null || datamaptemplate != null ||
+ datamapsupertemplate != null || createpkproperties != null || force || externaltoolconfig != null;
}
private CgenConfiguration buildConfiguration(DataMap dataMap) {
@@ -200,8 +200,8 @@ public class CayenneGeneratorTask extends CayenneTask {
cgenConfiguration.setEmbeddableTemplate(embeddabletemplate != null ? embeddabletemplate : cgenConfiguration.getEmbeddableTemplate());
cgenConfiguration.setUsePkgPath(usepkgpath != null ? usepkgpath : cgenConfiguration.isUsePkgPath());
cgenConfiguration.setCreatePropertyNames(createpropertynames != null ? createpropertynames : cgenConfiguration.isCreatePropertyNames());
- cgenConfiguration.setDataMapTemplate(querytemplate != null ? querytemplate : cgenConfiguration.getDataMapTemplate());
- cgenConfiguration.setDataMapSuperTemplate(querysupertemplate != null ? querysupertemplate : cgenConfiguration.getDataMapSuperTemplate());
+ cgenConfiguration.setDataMapTemplate(datamaptemplate != null ? datamaptemplate : cgenConfiguration.getDataMapTemplate());
+ cgenConfiguration.setDataMapSuperTemplate(datamapsupertemplate != null ? datamapsupertemplate : cgenConfiguration.getDataMapSuperTemplate());
cgenConfiguration.setCreatePKProperties(createpkproperties != null ? createpkproperties : cgenConfiguration.isCreatePKProperties());
cgenConfiguration.setExternalToolConfig(externaltoolconfig != null ? externaltoolconfig : cgenConfiguration.getExternalToolConfig());
if(!cgenConfiguration.isMakePairs()) {
@@ -211,7 +211,7 @@ public class CayenneGeneratorTask extends CayenneTask {
if(embeddabletemplate == null) {
cgenConfiguration.setEmbeddableTemplate(ClassGenerationAction.EMBEDDABLE_SINGLE_CLASS_TEMPLATE);
}
- if(querytemplate == null) {
+ if(datamaptemplate == null) {
cgenConfiguration.setDataMapTemplate(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
}
}
@@ -294,17 +294,19 @@ public class CayenneGeneratorTask extends CayenneTask {
}
/**
- * Sets <code>querytemplate</code> property.
+ * Sets <code>datamaptemplate</code> property.
+ * @since 4.3 querytemplate renamed to datamaptemplate
*/
- public void setQueryTemplate(String querytemplate) {
- this.querytemplate = querytemplate;
+ public void setDataMapTemplate(String datamaptemplate) {
+ this.datamaptemplate = datamaptemplate;
}
/**
- * Sets <code>querysupertemplate</code> property.
+ * Sets <code>datamapsupertemplate</code> property.
+ * @since 4.3 querysupertemplate renamed to datamapsupertemplate
*/
- public void setQuerySupertemplate(String querysupertemplate) {
- this.querysupertemplate = querysupertemplate;
+ public void setDataMapSupertemplate(String datamapsupertemplate) {
+ this.datamapsupertemplate = datamapsupertemplate;
}
/**
diff --git a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/CgenTask.java b/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/CgenTask.java
index 7328662dd..f30ee36ce 100644
--- a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/CgenTask.java
+++ b/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/CgenTask.java
@@ -120,13 +120,28 @@ public class CgenTask extends BaseCayenneTask {
@Input
private boolean force;
+ /**
+ * Location of Velocity template file for DataMap class generation.
+ * DataMap class provides utilities for usage of the Cayenne queries stored in the DataMap.
+ * If omitted, default template is used.
+ *
+ * @since 4.3 renamed from queryTemplate
+ */
@Input
@Optional
- private String queryTemplate;
+ private String dataMapTemplate;
+ /**
+ * Location of Velocity template file for DataMap superclass generation.
+ * DataMap class provides utilities for usage of the Cayenne queries stored in the DataMap.
+ * If omitted, default template is used.
+ * Ignored unless <code>makepairs</code> set to <code>true</code>.
+ *
+ * @since 4.3 renamed from querySuperTemplate
+ */
@Input
@Optional
- private String querySuperTemplate;
+ private String dataMapSuperTemplate;
/**
* If set to <code>true</code>, will generate PK attributes as Properties.
@@ -252,8 +267,8 @@ public class CgenTask extends BaseCayenneTask {
cgenConfiguration.setEmbeddableTemplate(embeddableTemplate != null ? embeddableTemplate : cgenConfiguration.getEmbeddableTemplate());
cgenConfiguration.setUsePkgPath(usePkgPath != null ? usePkgPath : cgenConfiguration.isUsePkgPath());
cgenConfiguration.setCreatePropertyNames(createPropertyNames != null ? createPropertyNames : cgenConfiguration.isCreatePropertyNames());
- cgenConfiguration.setQueryTemplate(queryTemplate != null ? queryTemplate : cgenConfiguration.getQueryTemplate());
- cgenConfiguration.setQuerySuperTemplate(querySuperTemplate != null ? querySuperTemplate : cgenConfiguration.getQuerySuperTemplate());
+ cgenConfiguration.setDataMapTemplate(dataMapTemplate != null ? dataMapTemplate : cgenConfiguration.getDataMapTemplate());
+ cgenConfiguration.setDataMapSuperTemplate(dataMapSuperTemplate != null ? dataMapSuperTemplate : cgenConfiguration.getDataMapSuperTemplate());
cgenConfiguration.setCreatePKProperties(createPKProperties != null ? createPKProperties : cgenConfiguration.isCreatePKProperties());
cgenConfiguration.setExternalToolConfig(externalToolConfig != null ? externalToolConfig : cgenConfiguration.getExternalToolConfig());
if(!cgenConfiguration.isMakePairs()) {
@@ -263,8 +278,8 @@ public class CgenTask extends BaseCayenneTask {
if(embeddableTemplate == null) {
cgenConfiguration.setEmbeddableTemplate(ClassGenerationAction.EMBEDDABLE_SINGLE_CLASS_TEMPLATE);
}
- if(queryTemplate == null) {
- cgenConfiguration.setQueryTemplate(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
+ if(dataMapTemplate == null) {
+ cgenConfiguration.setDataMapTemplate(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
}
}
return cgenConfiguration;
@@ -281,8 +296,8 @@ public class CgenTask extends BaseCayenneTask {
return destDir != null || destDirName != null || encoding != null || excludeEntities != null || excludeEmbeddables != null || includeEntities != null ||
makePairs != null || mode != null || outputPattern != null || overwrite != null || superPkg != null ||
superTemplate != null || template != null || embeddableTemplate != null || embeddableSuperTemplate != null ||
- usePkgPath != null || createPropertyNames != null || force || queryTemplate != null ||
- querySuperTemplate != null || createPKProperties != null || externalToolConfig != null;
+ usePkgPath != null || createPropertyNames != null || force || dataMapTemplate != null ||
+ dataMapSuperTemplate != null || createPKProperties != null || externalToolConfig != null;
}
@OutputDirectory
@@ -421,12 +436,28 @@ public class CgenTask extends BaseCayenneTask {
return externalToolConfig;
}
- public String getQueryTemplate() {
- return queryTemplate;
+ public void setDataMapTemplate(String dataMapTemplate) {
+ this.dataMapTemplate = dataMapTemplate;
+ }
+
+ public void dataMapTemplate(String dataMapTemplate) {
+ this.dataMapTemplate = dataMapTemplate;
+ }
+
+ public String getDataMapTemplate() {
+ return dataMapTemplate;
+ }
+
+ public void setDataMapSuperTemplate(String dataMapSuperTemplate) {
+ this.dataMapSuperTemplate = dataMapSuperTemplate;
+ }
+
+ public void dataMapSuperTemplate(String dataMapSuperTemplate) {
+ this.dataMapSuperTemplate = dataMapSuperTemplate;
}
- public String getQuerySuperTemplate() {
- return querySuperTemplate;
+ public String getDataMapSuperTemplate() {
+ return dataMapSuperTemplate;
}
/**
diff --git a/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java b/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
index 846e23ad1..68283dfd9 100644
--- a/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
+++ b/maven-plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/CayenneGeneratorMojo.java
@@ -118,7 +118,8 @@ public class CayenneGeneratorMojo extends AbstractMojo {
* Specifies generator iteration target. "entity" performs one
* iteration for each selected entity. "datamap" performs one
* iteration per datamap (This is always one iteration since cgen currently
- * supports specifying one-and-only-one datamap). (Default is "entity")
+ * supports specifying one-and-only-one datamap).
+ * (Default is "entity")
*/
@Parameter
private String mode;
@@ -202,15 +203,32 @@ public class CayenneGeneratorMojo extends AbstractMojo {
@Parameter(defaultValue = "false", property = "force")
private boolean force;
+ /**
+ * Location of Velocity template file for DataMap class generation.
+ * DataMap class provides utilities for usage of the Cayenne queries stored in the DataMap.
+ * If omitted, default template is used.
+ *
+ * @since 4.3 renamed from queryTemplate
+ */
@Parameter
- private String queryTemplate;
+ private String dataMapTemplate;
+ /**
+ * Location of Velocity template file for DataMap superclass generation.
+ * DataMap class provides utilities for usage of the Cayenne queries stored in the DataMap.
+ * If omitted, default template is used.
+ * Ignored unless <code>makepairs</code> set to <code>true</code>.
+ *
+ * @since 4.3 renamed from querySuperTemplate
+ */
@Parameter
- private String querySuperTemplate;
+ private String dataMapSuperTemplate;
/**
- * If set to <code>true</code>, will generate PK attributes as Properties.
+ * If set to <code>true</code>, will generate Properties for PK attributes.
* Default is <code>false</code>.
+ *
+ * @see org.apache.cayenne.exp.property.IdProperty and its implementations
* @since 4.1
*/
@Parameter
@@ -294,8 +312,8 @@ public class CayenneGeneratorMojo extends AbstractMojo {
return destDir != null || encoding != null || excludeEntities != null || excludeEmbeddables != null || includeEntities != null ||
makePairs != null || mode != null || outputPattern != null || overwrite != null || superPkg != null ||
superTemplate != null || template != null || embeddableTemplate != null || embeddableSuperTemplate != null ||
- usePkgPath != null || createPropertyNames != null || force || queryTemplate != null ||
- querySuperTemplate != null || createPKProperties != null || externalToolConfig != null;
+ usePkgPath != null || createPropertyNames != null || force || dataMapTemplate != null ||
+ dataMapSuperTemplate != null || createPKProperties != null || externalToolConfig != null;
}
/**
@@ -344,8 +362,8 @@ public class CayenneGeneratorMojo extends AbstractMojo {
cgenConfiguration.setEmbeddableTemplate(embeddableTemplate != null ? embeddableTemplate : cgenConfiguration.getEmbeddableTemplate());
cgenConfiguration.setUsePkgPath(usePkgPath != null ? usePkgPath : cgenConfiguration.isUsePkgPath());
cgenConfiguration.setCreatePropertyNames(createPropertyNames != null ? createPropertyNames : cgenConfiguration.isCreatePropertyNames());
- cgenConfiguration.setDataMapTemplate(queryTemplate != null ? queryTemplate : cgenConfiguration.getDataMapTemplate());
- cgenConfiguration.setDataMapSuperTemplate(querySuperTemplate != null ? querySuperTemplate : cgenConfiguration.getDataMapSuperTemplate());
+ cgenConfiguration.setDataMapTemplate(dataMapTemplate != null ? dataMapTemplate : cgenConfiguration.getDataMapTemplate());
+ cgenConfiguration.setDataMapSuperTemplate(dataMapSuperTemplate != null ? dataMapSuperTemplate : cgenConfiguration.getDataMapSuperTemplate());
cgenConfiguration.setCreatePKProperties(createPKProperties != null ? createPKProperties : cgenConfiguration.isCreatePKProperties());
cgenConfiguration.setExternalToolConfig(externalToolConfig != null ? externalToolConfig : cgenConfiguration.getExternalToolConfig());
if(!cgenConfiguration.isMakePairs()) {
@@ -355,7 +373,7 @@ public class CayenneGeneratorMojo extends AbstractMojo {
if(embeddableTemplate == null) {
cgenConfiguration.setEmbeddableTemplate(ClassGenerationAction.EMBEDDABLE_SINGLE_CLASS_TEMPLATE);
}
- if(queryTemplate == null) {
+ if(dataMapTemplate == null) {
cgenConfiguration.setDataMapTemplate(ClassGenerationAction.DATAMAP_SINGLE_CLASS_TEMPLATE);
}
}
[cayenne] 02/03: CAY-2752 Rename queryTemplate to dataMapTemplate in the cgen config - update schema
Posted by nt...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git
commit 3925135ca430a98b285da2832421e199603696d1
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Wed Jul 20 18:10:35 2022 +0300
CAY-2752 Rename queryTemplate to dataMapTemplate in the cgen config
- update schema
---
.../org/apache/cayenne/gen/CgenConfiguration.java | 4 +-
.../apache/cayenne/gen/xml/CgenConfigHandler.java | 16 ++++----
.../upgrade/handlers/UpgradeHandler_V11.java | 33 ++++++++++++++++-
.../upgrade/handlers/UpgradeHandler_V11Test.java | 43 +++++++++++++++++++---
.../project/upgrade/handlers/test-map-v10.map.xml | 2 +
.../org/apache/cayenne/schema/11/cgen.xsd | 4 +-
6 files changed, 83 insertions(+), 19 deletions(-)
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java
index 8731b1a8a..af4062701 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/CgenConfiguration.java
@@ -416,8 +416,8 @@ public class CgenConfiguration implements Serializable, XMLSerializable {
.simpleTag("superTemplate", separatorsToUnix(this.superTemplate))
.simpleTag("embeddableTemplate", separatorsToUnix(this.embeddableTemplate))
.simpleTag("embeddableSuperTemplate", separatorsToUnix(this.embeddableSuperTemplate))
- .simpleTag("queryTemplate", separatorsToUnix(this.dataMapTemplate))
- .simpleTag("querySuperTemplate", separatorsToUnix(this.dataMapSuperTemplate))
+ .simpleTag("dataMapTemplate", separatorsToUnix(this.dataMapTemplate))
+ .simpleTag("dataMapSuperTemplate", separatorsToUnix(this.dataMapSuperTemplate))
.simpleTag("outputPattern", this.outputPattern)
.simpleTag("makePairs", Boolean.toString(this.makePairs))
.simpleTag("usePkgPath", Boolean.toString(this.usePkgPath))
diff --git a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java
index 3dea5e115..599c2959a 100644
--- a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java
+++ b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenConfigHandler.java
@@ -45,8 +45,8 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
private static final String SUPERCLASS_TEMPLATE_TAG = "superTemplate";
private static final String EMBEDDABLE_TEMPLATE_TAG = "embeddableTemplate";
private static final String EMBEDDABLE_SUPER_TEMPLATE_TAG = "embeddableSuperTemplate";
- private static final String QUERY_TEMPLATE_TAG = "queryTemplate";
- private static final String QUERY_SUPER_TEMPLATE_TAG = "querySuperTemplate";
+ private static final String DATAMAP_TEMPLATE_TAG = "dataMapTemplate";
+ private static final String DATAMAP_SUPER_TEMPLATE_TAG = "dataMapSuperTemplate";
private static final String OUTPUT_PATTERN_TAG = "outputPattern";
private static final String MAKE_PAIRS_TAG = "makePairs";
private static final String USE_PKG_PATH_TAG = "usePkgPath";
@@ -105,11 +105,11 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
break;
case EMBEDDABLE_SUPER_TEMPLATE_TAG:
createEmbeddableSuperTemplate(data);
- case QUERY_TEMPLATE_TAG:
- createQueryTemplate(data);
+ case DATAMAP_TEMPLATE_TAG:
+ createDataMapTemplate(data);
break;
- case QUERY_SUPER_TEMPLATE_TAG:
- createQuerySuperTemplate(data);
+ case DATAMAP_SUPER_TEMPLATE_TAG:
+ createDataMapSuperTemplate(data);
break;
case OUTPUT_PATTERN_TAG:
createOutputPattern(data);
@@ -191,14 +191,14 @@ public class CgenConfigHandler extends NamespaceAwareNestedTagHandler{
configuration.setEmbeddableSuperTemplate(template);
}
- private void createQueryTemplate(String template) {
+ private void createDataMapTemplate(String template) {
if(template.trim().length() == 0) {
return;
}
configuration.setDataMapTemplate(template);
}
- private void createQuerySuperTemplate(String template) {
+ private void createDataMapSuperTemplate(String template) {
if(template.trim().length() == 0) {
return;
}
diff --git a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java
index 6e17c6ad2..0cd39e24b 100644
--- a/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java
+++ b/cayenne-project/src/main/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11.java
@@ -25,6 +25,7 @@ import javax.xml.xpath.XPathFactory;
import org.apache.cayenne.project.upgrade.UpgradeUnit;
import org.w3c.dom.Element;
+import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
@@ -32,6 +33,7 @@ import org.w3c.dom.NodeList;
* Changes highlight:
* - schemas version update
* - ROP removal
+ * - cgen schema changes
*
* @since 4.3
*/
@@ -57,7 +59,7 @@ public class UpgradeHandler_V11 implements UpgradeHandler {
dropROPProperties(upgradeUnit);
dropObjEntityClientInfo(upgradeUnit);
- dropCgenClientConfig(upgradeUnit);
+ updateCgenConfig(upgradeUnit);
}
private void upgradeComments(UpgradeUnit upgradeUnit) {
@@ -119,6 +121,35 @@ public class UpgradeHandler_V11 implements UpgradeHandler {
}
}
+ private void updateCgenConfig(UpgradeUnit upgradeUnit) {
+ renameQueryTemplates(upgradeUnit);
+ dropCgenClientConfig(upgradeUnit);
+ }
+
+ private void renameQueryTemplates(UpgradeUnit upgradeUnit) {
+ XPath xpath = XPathFactory.newInstance().newXPath();
+ NodeList queryTemplates;
+ NodeList querySuperTemplates;
+ try {
+ queryTemplates = (NodeList) xpath.evaluate("/data-map/*[local-name()='cgen']/*[local-name()='queryTemplate']",
+ upgradeUnit.getDocument(), XPathConstants.NODESET);
+ querySuperTemplates = (NodeList) xpath.evaluate("/data-map/*[local-name()='cgen']/*[local-name()='querySuperTemplate']",
+ upgradeUnit.getDocument(), XPathConstants.NODESET);
+ } catch (Exception e) {
+ return;
+ }
+
+ for (int j = 0; j < queryTemplates.getLength(); j++) {
+ Node element = queryTemplates.item(j);
+ upgradeUnit.getDocument().renameNode(element, null, "dataMapTemplate");
+ }
+
+ for (int j = 0; j < querySuperTemplates.getLength(); j++) {
+ Node element = querySuperTemplates.item(j);
+ upgradeUnit.getDocument().renameNode(element, null, "dataMapSuperTemplate");
+ }
+ }
+
private void dropCgenClientConfig(UpgradeUnit upgradeUnit) {
XPath xpath = XPathFactory.newInstance().newXPath();
NodeList nodes;
diff --git a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java
index dcc8f5349..4a2d7d5b4 100644
--- a/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java
+++ b/cayenne-project/src/test/java/org/apache/cayenne/project/upgrade/handlers/UpgradeHandler_V11Test.java
@@ -28,6 +28,7 @@ import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verifyZeroInteractions;
@@ -74,21 +75,51 @@ public class UpgradeHandler_V11Test extends BaseUpgradeHandlerTest{
assertEquals("http://cayenne.apache.org/schema/11/info", objEntity.getFirstChild().getNextSibling().getAttributes().getNamedItem("xmlns:info").getNodeValue());
assertEquals(2, root.getElementsByTagName("db-attribute").getLength());
+ }
+
+ @Test
+ public void testCgenDomUpgrade() throws Exception {
+ Document document = processDataMapDom("test-map-v10.map.xml");
+ Element root = document.getDocumentElement();
+ // check cgen config is updated
NodeList cgens = root.getElementsByTagName("cgen");
- assertEquals(1, objEntities.getLength());
+ assertEquals(1, cgens.getLength());
Node cgenConfig = cgens.item(0);
assertEquals("http://cayenne.apache.org/schema/11/cgen", cgenConfig.getAttributes().getNamedItem("xmlns").getNodeValue());
- for(int i=0; i<cgenConfig.getChildNodes().getLength(); i++) {
- Node node = cgenConfig.getChildNodes().item(i);
- if(node.getNodeType() == Node.ELEMENT_NODE && node.getNodeName().equals("client")) {
- fail("<client> tag is still present in the <cgen> config");
+
+ NodeList childNodes = cgenConfig.getChildNodes();
+ boolean dataMapTemplateSeen = false;
+ boolean dataMapSuperTemplateSeen = false;
+ int elements = 0;
+ for(int i = 0; i< childNodes.getLength(); i++) {
+ Node node = childNodes.item(i);
+ if(node.getNodeType() == Node.ELEMENT_NODE) {
+ elements++;
+ switch (node.getNodeName()) {
+ case "client":
+ fail("<client> tag is still present in the <cgen> config");
+ case "queryTemplate":
+ fail("<queryTemplate> tag is still present in the <cgen> config");
+ case "querySuperTemplate":
+ fail("<querySuperTemplate> tag is still present in the <cgen> config");
+ case "dataMapTemplate":
+ dataMapTemplateSeen = true;
+ break;
+ case "dataMapSuperTemplate":
+ dataMapSuperTemplateSeen = true;
+ break;
+ }
}
}
+
+ assertEquals(4, elements);
+ assertTrue(dataMapTemplateSeen);
+ assertTrue(dataMapSuperTemplateSeen);
}
@Test
- public void testModelUpgrade() throws Exception {
+ public void testModelUpgrade() {
DataChannelDescriptor descriptor = mock(DataChannelDescriptor.class);
handler.processModel(descriptor);
verifyZeroInteractions(descriptor);
diff --git a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v10.map.xml b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v10.map.xml
index bafd4987f..e2db08d71 100644
--- a/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v10.map.xml
+++ b/cayenne-project/src/test/resources/org/apache/cayenne/project/upgrade/handlers/test-map-v10.map.xml
@@ -17,6 +17,8 @@
<cgen xmlns="http://cayenne.apache.org/schema/10/cgen">
<destDir>../../../../target/cgenClasses</destDir>
<mode>entity</mode>
+ <queryTemplate>test_query_template</queryTemplate>
+ <querySuperTemplate>test_query_super_template</querySuperTemplate>
<client>true</client>
</cgen>
<dbimport xmlns="http://cayenne.apache.org/schema/10/dbimport">
diff --git a/cayenne-server/src/main/resources/org/apache/cayenne/schema/11/cgen.xsd b/cayenne-server/src/main/resources/org/apache/cayenne/schema/11/cgen.xsd
index 2fe707089..f41e23c9a 100644
--- a/cayenne-server/src/main/resources/org/apache/cayenne/schema/11/cgen.xsd
+++ b/cayenne-server/src/main/resources/org/apache/cayenne/schema/11/cgen.xsd
@@ -34,8 +34,8 @@
<xs:element name="superTemplate" minOccurs="0" type="xs:string"/>
<xs:element name="embeddableTemplate" minOccurs="0" type="xs:string"/>
<xs:element name="embeddableSuperTemplate" minOccurs="0" type="xs:string"/>
- <xs:element name="queryTemplate" minOccurs="0" type="xs:string"/>
- <xs:element name="querySuperTemplate" minOccurs="0" type="xs:string"/>
+ <xs:element name="dataMapTemplate" minOccurs="0" type="xs:string"/>
+ <xs:element name="dataMapSuperTemplate" minOccurs="0" type="xs:string"/>
<xs:element name="outputPattern" minOccurs="0" type="xs:string"/>
<xs:element name="makePairs" minOccurs="0" type="xs:boolean"/>
<xs:element name="skipRelationshipsLoading" minOccurs="0" type="xs:boolean"/>