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 d1bd7c5e8 fix Gradle Plugin JavaDocs new e7dda56c8 Merge pull request #514 from Ivan-nikitko/fix_Gradle_Plugin_JavaDocs d1bd7c5e8 is described below commit d1bd7c5e8223150acf7316e1464c4fb5bf6f94dc Author: Ivan-nikitko <70625960+ivan-niki...@users.noreply.github.com> AuthorDate: Thu Aug 11 09:09:22 2022 +0200 fix Gradle Plugin JavaDocs --- .../org/apache/cayenne/tools/BaseCayenneTask.java | 4 + .../java/org/apache/cayenne/tools/CgenTask.java | 86 ++++++++++++++++++++++ .../org/apache/cayenne/tools/DbGenerateTask.java | 34 +++++++++ .../org/apache/cayenne/tools/DbImportTask.java | 14 ++++ 4 files changed, 138 insertions(+) diff --git a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/BaseCayenneTask.java b/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/BaseCayenneTask.java index 74330a25f..ab97244a7 100644 --- a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/BaseCayenneTask.java +++ b/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/BaseCayenneTask.java @@ -30,6 +30,10 @@ import org.gradle.api.tasks.Internal; */ public class BaseCayenneTask extends DefaultTask { + + /** + * DataMap XML file to use as a base for DB importing. + */ @Internal private File map; 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 f30ee36ce..43de45327 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 @@ -46,69 +46,147 @@ public class CgenTask extends BaseCayenneTask { private static final File[] NO_FILES = new File[0]; + /** + * Path to additional DataMap XML files to use for class generation. + */ private File additionalMaps; + /** + * Destination directory for Java classes (ignoring their package names). + */ private File destDir; + /** + * Specify generated file encoding if different from the default on current + * platform. Target encoding must be supported by the JVM running Maven + * build. Standard encodings supported by Java on all platforms are + * US-ASCII, ISO-8859-1, UTF-8, UTF-16BE, UTF-16LE, UTF-16. See Sun Java + * Docs for java.nio.charset.Charset for more information. + */ @Input @Optional private String encoding; + /** + * Entities (expressed as a perl5 regex) to exclude from template + * generation. (Default is to include all entities in the DataMap). + */ @Input @Optional private String excludeEntities; + /** + * Entities (expressed as a perl5 regex) to include in template generation. + * (Default is to include all entities in the DataMap). + */ @Input @Optional private String includeEntities; /** * @since 4.1 + * Embeddables (expressed as a perl5 regex) to exclude from template + * generation. (Default is to include all embeddables in the DataMap). */ @Input @Optional private String excludeEmbeddables; + /** + * If set to <code>true</code>, will generate subclass/superclass pairs, + * with all generated code included in superclass (default is + * <code>true</code>). + */ @Input @Optional private Boolean makePairs; + /** + * 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") + */ @Input @Optional private String mode; + /** + * Name of file for generated output. (Default is "*.java") + */ @Input @Optional private String outputPattern; + /** + * If set to <code>true</code>, will overwrite older versions of generated + * classes. Ignored unless makepairs is set to <code>false</code>. + */ @Input @Optional private Boolean overwrite; + /** + * Java package name of generated superclasses. Ignored unless + * <code>makepairs</code> set to <code>true</code>. If omitted, each + * superclass will be assigned the same package as subclass. Note that + * having superclass in a different package would only make sense when + * <code>usepkgpath</code> is set to <code>true</code>. Otherwise classes + * from different packages will end up in the same directory. + */ @Input @Optional private String superPkg; + /** + * Location of Velocity template file for Entity superclass generation. + * Ignored unless <code>makepairs</code> set to <code>true</code>. If + * omitted, default template is used. + */ @Input @Optional private String superTemplate; + /** + * Location of Velocity template file for Entity class generation. If + * omitted, default template is used. + */ @Input @Optional private String template; + /** + * Location of Velocity template file for Embeddable superclass generation. + * Ignored unless <code>makepairs</code> set to <code>true</code>. If + * omitted, default template is used. + */ @Input @Optional private String embeddableSuperTemplate; + /** + * Location of Velocity template file for Embeddable class generation. If + * omitted, default template is used. + */ @Input @Optional private String embeddableTemplate; + /** + * If set to <code>true</code> (default), a directory tree will be generated + * in "destDir" corresponding to the class package structure, if set to + * <code>false</code>, classes will be generated in "destDir" + * ignoring their package. + */ @Input @Optional private Boolean usePkgPath; + /** + * If set to <code>true</code>, will generate String Property names. + * Default is <code>false</code>. + */ @Input @Optional private Boolean createPropertyNames; @@ -160,6 +238,7 @@ public class CgenTask extends BaseCayenneTask { @Optional private String externalToolConfig; + private String destDirName; private DataChannelMetaData metaData; @@ -210,6 +289,9 @@ public class CgenTask extends BaseCayenneTask { } } + /** + * Loads and returns DataMap based on <code>cgenConfiguration</code> attribute. + */ private File[] convertAdditionalDataMaps() throws Exception { if (additionalMaps == null) { return NO_FILES; @@ -224,6 +306,10 @@ public class CgenTask extends BaseCayenneTask { ); } + /** + * Factory method to create internal class generator. Called from + * constructor. + */ ClassGenerationAction createGenerator(DataMap dataMap) { CgenConfiguration cgenConfiguration = buildConfiguration(dataMap); return injector.getInstance(ClassGenerationActionFactory.class).createAction(cgenConfiguration); diff --git a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbGenerateTask.java b/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbGenerateTask.java index 2049c01fd..08ece239f 100644 --- a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbGenerateTask.java +++ b/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbGenerateTask.java @@ -55,25 +55,55 @@ import javax.sql.DataSource; */ public class DbGenerateTask extends BaseCayenneTask { + /** + * Java class implementing org.apache.cayenne.dba.DbAdapter. While this + * attribute is optional (a generic JdbcAdapter is used if not set), it is + * highly recommended to specify correct target adapter. + */ @Input @Optional private String adapter; + /** + * Connection properties. + * + * @since 4.0 + */ @Internal private DataSourceConfig dataSource = new DataSourceConfig(); + /** + * Defines whether cdbgen should drop the tables before attempting to create + * new ones. Default is <code>false</code>. + */ @Input private boolean dropTables; + /** + * Defines whether cdbgen should drop Cayenne primary key support objects. + * Default is <code>false</code>. + */ @Input private boolean dropPK; + /** + * Defines whether cdbgen should create new tables. Default is + * <code>true</code>. + */ @Input private boolean createTables = true; + /** + * Defines whether cdbgen should create Cayenne-specific auto PK objects. + * Default is <code>true</code>. + */ @Input private boolean createPK = true; + /** + * Defines whether cdbgen should create foreign key copnstraints. Default is + * <code>true</code>. + */ @Input private boolean createFK = true; @@ -85,6 +115,7 @@ public class DbGenerateTask extends BaseCayenneTask { @TaskAction public void generateDb() throws GradleException { + // check missing data source parameter dataSource.validate(); getLogger().info("connection settings - [driver: {}, url: {}, username: {}]", @@ -141,6 +172,9 @@ public class DbGenerateTask extends BaseCayenneTask { .build(); } + /** + * Loads and returns DataMap based on <code>map</code> attribute. + */ DataMap loadDataMap(Injector injector) throws Exception { File dataMapFile = getDataMapFile(); return injector.getInstance(DataMapLoader.class).load(new URLResource(dataMapFile.toURI().toURL())); diff --git a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbImportTask.java b/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbImportTask.java index 9425916cd..876f4cc62 100644 --- a/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbImportTask.java +++ b/cayenne-gradle-plugin/src/main/java/org/apache/cayenne/tools/DbImportTask.java @@ -55,16 +55,29 @@ import org.apache.cayenne.di.spi.DefaultClassLoaderManager; */ public class DbImportTask extends BaseCayenneTask { + /** + * Java class implementing org.apache.cayenne.dba.DbAdapter. This attribute + * is optional, the default is AutoAdapter, i.e. Cayenne would try to guess + * the DB type. + */ @Input @Optional private String adapter; + /** + * Connection properties. + * + * @since 4.0 + */ @Internal private DataSourceConfig dataSource = new DataSourceConfig(); @Internal private DbImportConfig config = new DbImportConfig(); + /** + * An object that contains reverse engineering rules. + */ @Internal private ReverseEngineering reverseEngineering; @@ -77,6 +90,7 @@ public class DbImportTask extends BaseCayenneTask { @TaskAction public void runImport() { + // check missing data source parameters dataSource.validate(); final Injector injector = DIBootstrap.createInjector(new DbSyncModule(), new ToolsModule(getLogger()), new DbImportModule(),