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
The following commit(s) were added to refs/heads/master by this push:
new bfafbab80 CAY-2785 Modeler: improve folder selection for cgen -
JavaDocs - some more refactoring
bfafbab80 is described below
commit bfafbab802d693a1eda611b98d3d1b334c48a295
Author: Nikita Timofeev <[email protected]>
AuthorDate: Thu Dec 8 09:58:28 2022 +0300
CAY-2785 Modeler: improve folder selection for cgen
- JavaDocs
- some more refactoring
---
.../org/apache/cayenne/gen/CgenConfiguration.java | 39 ++++++++++++----------
.../apache/cayenne/gen/xml/CgenSaverDelegate.java | 4 +--
.../apache/cayenne/gen/CgenConfigurationTest.java | 32 +++++++++---------
.../cayenne/gen/xml/CgenSaverDelegateTest.java | 8 ++---
4 files changed, 44 insertions(+), 39 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 a0bbd5214..111f030dd 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
@@ -56,7 +56,7 @@ public class CgenConfiguration implements Serializable,
XMLSerializable {
* Target directory for generated classes, relative to the {@code
rootProjectPath}
* (if root path is set, and it's possible to relativize).
*/
- private Path cgenOutputRelativePath;
+ private Path cgenOutputPath;
private Collection<Artifact> artifacts;
private Set<String> entityArtifacts;
@@ -194,42 +194,47 @@ public class CgenConfiguration implements Serializable,
XMLSerializable {
}
/**
+ * Method returns output path as is, without any processing.
* @return cgen output relative path
+ * @see #buildOutputPath()
+ * @since 5.0 renamed from {@code getRelPath()}
*/
- public Path getRelPath() {
- return cgenOutputRelativePath;
+ public Path getRawOutputPath() {
+ return cgenOutputPath;
}
/**
- * Method that calculates output path based on provided {@code Path} and
{@code rootProjectPath}
- * @param path to update relative path with
+ * Method that updates output path based on provided {@code Path} and
{@code rootProjectPath}
+ *
+ * @param path to update output path with, could be an absolute path or a
path
+ * relative to the {@code rootProjectPath} or cgen tool
environment
* @see #setRootPath(Path)
* @since 5.0
*/
public void updateOutputPath(Path path) {
if (rootProjectPath != null) {
if (path.isAbsolute() &&
rootProjectPath.getRoot().equals(path.getRoot())) {
- this.cgenOutputRelativePath = rootProjectPath.relativize(path);
+ this.cgenOutputPath = rootProjectPath.relativize(path);
return;
}
}
- this.cgenOutputRelativePath = path;
+ this.cgenOutputPath = path;
}
/**
* @return normalized relative path
* @since 5.0 renamed from {@code buildRelPath()} and made package private
*/
- String getNormalizedRelativePath() {
- if (cgenOutputRelativePath == null ||
cgenOutputRelativePath.toString().isEmpty()) {
+ String getNormalizedOutputPath() {
+ if (cgenOutputPath == null || cgenOutputPath.toString().isEmpty()) {
return ".";
}
- return cgenOutputRelativePath.toString();
+ return cgenOutputPath.toString();
}
/**
* This method calculates effective output directory for the class
generator.
- * It uses {@code rootProjectPath} and {@code cgenOutputRelativePath}.
+ * It uses {@code cgenOutputPath} and {@code rootProjectPath} (if set).
*
* @return calculated output directory
* @see #setRootPath(Path)
@@ -239,18 +244,18 @@ public class CgenConfiguration implements Serializable,
XMLSerializable {
public Path buildOutputPath() {
if (rootProjectPath == null) {
// this could be an unsaved project or direct usage in tools (Ant,
Maven or Gradle)
- return cgenOutputRelativePath;
+ return cgenOutputPath;
}
- if(cgenOutputRelativePath == null) {
+ if(cgenOutputPath == null) {
// this case should be invalid, but let the caller deal with it
return null;
}
- if(cgenOutputRelativePath.isAbsolute()) {
- return cgenOutputRelativePath.normalize();
+ if(cgenOutputPath.isAbsolute()) {
+ return cgenOutputPath.normalize();
} else {
- return
rootProjectPath.resolve(cgenOutputRelativePath).toAbsolutePath().normalize();
+ return
rootProjectPath.resolve(cgenOutputPath).toAbsolutePath().normalize();
}
}
@@ -457,7 +462,7 @@ public class CgenConfiguration implements Serializable,
XMLSerializable {
.simpleTag("name", this.name)
.simpleTag("excludeEntities", getExcludeEntites())
.simpleTag("excludeEmbeddables", getExcludeEmbeddables())
- .simpleTag("destDir",
separatorsToUnix(getNormalizedRelativePath()))
+ .simpleTag("destDir",
separatorsToUnix(getNormalizedOutputPath()))
.simpleTag("mode", this.artifactsGenerationMode.getLabel())
.start("template").cdata(this.template.getData(),
!this.template.isFile()).end()
.start("superTemplate").cdata(this.superTemplate.getData(),
!this.superTemplate.isFile()).end()
diff --git
a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenSaverDelegate.java
b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenSaverDelegate.java
index 1839f89f1..4e774502b 100644
---
a/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenSaverDelegate.java
+++
b/cayenne-cgen/src/main/java/org/apache/cayenne/gen/xml/CgenSaverDelegate.java
@@ -78,9 +78,9 @@ public class CgenSaverDelegate extends BaseSaverDelegate {
if(prevOutputPath != null) {
// Update relative path to match with the new root
cgenConfiguration.updateOutputPath(prevOutputPath);
- } else if(cgenConfiguration.getRelPath() == null) {
+ } else if(cgenConfiguration.buildOutputPath() == null) {
// No path was set, and we are not in the Maven tree.
- // Set output dir match with the root, nothing else we could do
here
+ // Set output dir match with the root, nothing else we could do
here.
cgenConfiguration.updateOutputPath(baseDirectory);
}
}
diff --git
a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/CgenConfigurationTest.java
b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/CgenConfigurationTest.java
index 55b5b3a99..319a74f4e 100644
---
a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/CgenConfigurationTest.java
+++
b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/CgenConfigurationTest.java
@@ -56,7 +56,7 @@ public class CgenConfigurationTest {
Path relPath = Paths.get("C:\\test1\\test2\\test3");
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get(""), configuration.getRelPath());
+ assertEquals(Paths.get(""), configuration.getRawOutputPath());
assertEquals(relPath, configuration.buildOutputPath());
}
@@ -66,7 +66,7 @@ public class CgenConfigurationTest {
Path relPath = Paths.get("C:\\test1\\test2\\testAnother");
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get("..\\testAnother"),
configuration.getRelPath());
+ assertEquals(Paths.get("..\\testAnother"),
configuration.getRawOutputPath());
assertEquals(relPath, configuration.buildOutputPath());
}
@@ -76,7 +76,7 @@ public class CgenConfigurationTest {
Path relPath = Paths.get("C:\\");
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get(""), configuration.getRelPath());
+ assertEquals(Paths.get(""), configuration.getRawOutputPath());
assertEquals(relPath, configuration.buildOutputPath());
}
@@ -86,7 +86,7 @@ public class CgenConfigurationTest {
Path relPath = Paths.get("E:\\test1\\test2\\test3");
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get("E:\\test1\\test2\\test3"),
configuration.getRelPath());
+ assertEquals(Paths.get("E:\\test1\\test2\\test3"),
configuration.getRawOutputPath());
assertEquals(relPath, configuration.buildOutputPath());
}
@@ -96,7 +96,7 @@ public class CgenConfigurationTest {
Path relPath = Paths.get("E:\\test1\\test2\\testAnother");
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get("E:\\test1\\test2\\testAnother"),
configuration.getRelPath());
+ assertEquals(Paths.get("E:\\test1\\test2\\testAnother"),
configuration.getRawOutputPath());
assertEquals(relPath, configuration.buildOutputPath());
}
@@ -106,7 +106,7 @@ public class CgenConfigurationTest {
Path relPath = Paths.get("E:\\");
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get("E:\\"), configuration.getRelPath());
+ assertEquals(Paths.get("E:\\"), configuration.getRawOutputPath());
assertEquals(relPath, configuration.buildOutputPath());
}
@@ -116,7 +116,7 @@ public class CgenConfigurationTest {
Path relPath = Paths.get("E:\\");
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get("E:\\"), configuration.getRelPath());
+ assertEquals(Paths.get("E:\\"), configuration.getRawOutputPath());
assertEquals(relPath, configuration.buildOutputPath());
}
@@ -127,7 +127,7 @@ public class CgenConfigurationTest {
configuration.updateOutputPath(relPath);
- assertEquals(relPath, configuration.getRelPath());
+ assertEquals(relPath, configuration.getRawOutputPath());
assertEquals(Paths.get("E:\\"), configuration.buildOutputPath());
}
@@ -139,7 +139,7 @@ public class CgenConfigurationTest {
@Test
public void nullRootPath() {
configuration.updateOutputPath(Path.of("C:\\test1\\test2\\test3"));
- assertEquals(Paths.get("C:\\test1\\test2\\test3"),
configuration.getRelPath());
+ assertEquals(Paths.get("C:\\test1\\test2\\test3"),
configuration.getRawOutputPath());
assertEquals(Paths.get("C:\\test1\\test2\\test3"),
configuration.buildOutputPath());
}
}
@@ -165,7 +165,7 @@ public class CgenConfigurationTest {
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get(""), configuration.getRelPath());
+ assertEquals(Paths.get(""), configuration.getRawOutputPath());
assertEquals(relPath, configuration.buildOutputPath());
}
@@ -175,7 +175,7 @@ public class CgenConfigurationTest {
Path relPath = Paths.get("/test1/test2/testAnother");
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get("../testAnother"),
configuration.getRelPath());
+ assertEquals(Paths.get("../testAnother"),
configuration.getRawOutputPath());
assertEquals(relPath, configuration.buildOutputPath());
}
@@ -185,7 +185,7 @@ public class CgenConfigurationTest {
Path relPath = Paths.get("/");
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get(""), configuration.getRelPath());
+ assertEquals(Paths.get(""), configuration.getRawOutputPath());
assertEquals(relPath, configuration.buildOutputPath());
}
@@ -195,7 +195,7 @@ public class CgenConfigurationTest {
Path relPath = Paths.get("test1/test2/test3");
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get("test1/test2/test3"),
configuration.getRelPath());
+ assertEquals(Paths.get("test1/test2/test3"),
configuration.getRawOutputPath());
assertEquals(Paths.get("/test1/test2/test3/test1/test2/test3"),
configuration.buildOutputPath());
}
@@ -205,7 +205,7 @@ public class CgenConfigurationTest {
Path relPath = Paths.get("/");
configuration.updateOutputPath(relPath);
- assertEquals(Paths.get("/"), configuration.getRelPath());
+ assertEquals(Paths.get("/"), configuration.getRawOutputPath());
assertEquals(relPath, configuration.buildOutputPath());
}
@@ -214,7 +214,7 @@ public class CgenConfigurationTest {
configuration.setRootPath(Paths.get("/"));
configuration.updateOutputPath(Paths.get(""));
- assertEquals(Paths.get(""), configuration.getRelPath());
+ assertEquals(Paths.get(""), configuration.getRawOutputPath());
assertEquals(Paths.get("/"), configuration.buildOutputPath());
}
@@ -233,7 +233,7 @@ public class CgenConfigurationTest {
@Test
public void nullRootPath() {
configuration.updateOutputPath(Paths.get("/test1/test2/test3"));
- assertEquals(Paths.get("/test1/test2/test3"),
configuration.getRelPath());
+ assertEquals(Paths.get("/test1/test2/test3"),
configuration.getRawOutputPath());
assertEquals(Paths.get("/test1/test2/test3"),
configuration.buildOutputPath());
}
}
diff --git
a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/xml/CgenSaverDelegateTest.java
b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/xml/CgenSaverDelegateTest.java
index 8e5ee5e84..628ae8180 100644
---
a/cayenne-cgen/src/test/java/org/apache/cayenne/gen/xml/CgenSaverDelegateTest.java
+++
b/cayenne-cgen/src/test/java/org/apache/cayenne/gen/xml/CgenSaverDelegateTest.java
@@ -42,7 +42,7 @@ public class CgenSaverDelegateTest {
CgenSaverDelegate.resolveOutputDir(baseURL, config);
assertEquals(Paths.get("/tmp/src/main/resources").toAbsolutePath(),
config.getRootPath());
- assertEquals(Paths.get(""), config.getRelPath()); // TODO: do we care
about this case?
+ assertEquals(Paths.get(""), config.getRawOutputPath()); // TODO: do we
care about this case?
}
@Test
@@ -57,7 +57,7 @@ public class CgenSaverDelegateTest {
CgenSaverDelegate.resolveOutputDir(baseURL, config);
assertEquals(Paths.get("/tmp/src/main/resources").toAbsolutePath(),
config.getRootPath());
- assertEquals(Paths.get("../java"), config.getRelPath());
+ assertEquals(Paths.get("../java"), config.getRawOutputPath());
}
@Test
@@ -69,7 +69,7 @@ public class CgenSaverDelegateTest {
CgenSaverDelegate.resolveOutputDir(baseURL, config);
assertEquals(Paths.get("/tmp/src/main/resources").toAbsolutePath(),
config.getRootPath());
- assertEquals(Paths.get("../java"), config.getRelPath());
+ assertEquals(Paths.get("../java"), config.getRawOutputPath());
}
@Test
@@ -81,6 +81,6 @@ public class CgenSaverDelegateTest {
CgenSaverDelegate.resolveOutputDir(baseURL, config);
assertEquals(Paths.get("/tmp/somefolder").toAbsolutePath(),
config.getRootPath());
- assertEquals(Paths.get(""), config.getRelPath());
+ assertEquals(Paths.get(""), config.getRawOutputPath());
}
}
\ No newline at end of file