public abstract class AbstractSqlCommentsMojo
extends org.apache.maven.plugin.AbstractMojo
Modifier and Type | Field and Description |
---|---|
protected boolean |
compileWithTestClasses
Indicates whether to use standard or test class path for compilation of generated classes.
|
protected Map<String,DBColumnMetadata> |
databaseColumns
Database metadata.
|
protected String |
databaseDialect
Database dialect class to use.
|
protected String |
databaseUrl
Database URL.
|
protected String |
dbPassword
Database credentials - password.
|
protected String |
dbUserName
Database credentials - username.
|
protected DatabaseDialect |
dialect
Database dialect used to map SQL data types to java classes.
|
protected boolean |
hasErrors
Internal state indicates if execution had errors and should be stopped.
|
protected String |
jdbcDriverClass
JDBC driver class name.
|
protected String[] |
mappingFiles
Table metadata configuration files to use.
|
protected File |
outputDirectory
The output directory where to generate files and java classes.
|
protected org.apache.maven.project.MavenProject |
project
The current Maven project.
|
static String |
TABLE_PROP_CLASS_NAME
Table property name - className.
|
static String |
TABLE_PROP_COLUMN_JAVA_CLASS
Column property suffix - .javaClass.
|
static String |
TABLE_PROP_COLUMN_MAPPER
Column property suffix - .mapper.
|
static String |
TABLE_PROP_INTERFACES
Table property name - className.
|
static String |
TABLE_PROP_PK_GENERATOR
Table property name - pkGenerator.
|
protected Map<String,Properties> |
tableProperties
Parsed table properties.
|
protected Map<String,String> |
tables
Table meta data and a list of tables to include.
|
protected TemplateProcessor |
templateProcessor
Freemarker template processor.
|
Constructor and Description |
---|
AbstractSqlCommentsMojo() |
Modifier and Type | Method and Description |
---|---|
void |
execute() |
protected void |
extractDatabaseMetaData(DatabaseMetaData databaseMetaData)
Extract appropriate metadata from database.
|
protected void |
loadDatabaseMetadata()
Loads database metadata.
|
protected DBColumnMetadata |
mapDBColumnDefinition(ResultSet columnsRS)
Maps column metadata into
DBColumnMetadata . |
protected void |
processFile(File sourceDirectory,
String resource)
Processes SQL file and generates result class, result mapper class and statement configuration class.
|
protected void |
processFile(File sourceDirectory,
String resource,
Map<String,Object> extraTemplateModel)
Processes SQL file and generates result class, result mapper class and statement configuration class.
|
public static final String TABLE_PROP_CLASS_NAME
public static final String TABLE_PROP_INTERFACES
public static final String TABLE_PROP_PK_GENERATOR
public static final String TABLE_PROP_COLUMN_JAVA_CLASS
public static final String TABLE_PROP_COLUMN_MAPPER
@Parameter(defaultValue="${project.build.directory}/generated-sources/sqlcomments") protected File outputDirectory
@Parameter(required=false) protected String databaseDialect
DefaultDatabaseDialect
.@Parameter(required=true) protected String jdbcDriverClass
@Parameter(required=true) protected String databaseUrl
@Parameter(required=false) protected String dbUserName
@Parameter(required=false) protected String dbPassword
@Parameter(required=false) protected boolean compileWithTestClasses
@Parameter(required=false) protected Map<String,String> tables
Map consists of pairs <table name> - <table properties>. Properties are in form Properties
.
Currently supported properties:
IColumnMapper
.@Parameter(required=false) protected String[] mappingFiles
Can contain ant-style wildcards and double wildcards.
Mapping file is a simple XML with root element {code}<sqlcomments>{/code}. Content of root element is the
same as parameter tables in pom.xml. Elements are table names and content represents table metadata in
Properties
format. E.g.
country.javaClass=sk.vracon.sqlcomments.maven.ExampleEnum country.maper=sk.vracon.sqlcomments.core.mappers.EnumMapper
@Parameter(property="project", required=true, readonly=true) protected org.apache.maven.project.MavenProject project
protected boolean hasErrors
protected Map<String,DBColumnMetadata> databaseColumns
protected TemplateProcessor templateProcessor
protected DatabaseDialect dialect
protected Map<String,Properties> tableProperties
tables
public void execute() throws org.apache.maven.plugin.MojoExecutionException, org.apache.maven.plugin.MojoFailureException
org.apache.maven.plugin.MojoExecutionException
org.apache.maven.plugin.MojoFailureException
protected void processFile(File sourceDirectory, String resource)
sourceDirectory
- source directoryresource
- SQL fileprotected void processFile(File sourceDirectory, String resource, Map<String,Object> extraTemplateModel)
sourceDirectory
- source directoryresource
- SQL fileprotected void loadDatabaseMetadata() throws org.apache.maven.plugin.MojoExecutionException
This method just opens connection. Metadata are processed by extractDatabaseMetaData(DatabaseMetaData)
.
org.apache.maven.plugin.MojoExecutionException
#extractDatabaseMetaData(DatabaseMetaData)}
protected void extractDatabaseMetaData(DatabaseMetaData databaseMetaData) throws SQLException
databaseMetaData
- database metadataSQLException
protected DBColumnMetadata mapDBColumnDefinition(ResultSet columnsRS) throws SQLException
DBColumnMetadata
.columnsRS
- SQLException
Copyright © 2014–2015 Vracon s.r.o.. All rights reserved.