From 89bb008997dca9dc9f807a5acaf4e3ce96ee6c88 Mon Sep 17 00:00:00 2001 From: Jonas Matter Date: Wed, 4 Dec 2024 15:55:47 +0100 Subject: [PATCH 1/2] reformat tabs --- .../tasks/GenerateJooqMetamodelTask.java | 87 +++-- .../adam/gradleplugin/util/AdamDatabase.java | 304 +++++++++--------- .../util/AdamTableDefinition.java | 158 +++++---- .../util/TableSuffixGeneratorStrategy.java | 18 +- 4 files changed, 279 insertions(+), 288 deletions(-) diff --git a/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/tasks/GenerateJooqMetamodelTask.java b/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/tasks/GenerateJooqMetamodelTask.java index e7f0a37..33a011a 100644 --- a/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/tasks/GenerateJooqMetamodelTask.java +++ b/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/tasks/GenerateJooqMetamodelTask.java @@ -1,69 +1,66 @@ package ch.ergon.adam.gradleplugin.tasks; -import java.nio.file.Path; -import java.nio.file.Paths; - +import ch.ergon.adam.gradleplugin.util.AdamJooqMetamodelGenerator; import org.gradle.api.DefaultTask; -import org.gradle.api.file.Directory; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.Optional; import org.gradle.api.tasks.TaskAction; -import ch.ergon.adam.gradleplugin.util.AdamJooqMetamodelGenerator; +import java.nio.file.Path; public class GenerateJooqMetamodelTask extends DefaultTask { - @Input - @Optional - private String jooqConfig; + @Input + @Optional + private String jooqConfig; - @Input - private String packageName; + @Input + private String packageName; - @Input - private String outputPath; + @Input + private String outputPath; - @Input - private String source; + @Input + private String source; - @TaskAction - public void generateJooqMetamodel() throws Exception { - Path output = getProject().getLayout().getProjectDirectory().dir(outputPath).getAsFile().toPath(); - AdamJooqMetamodelGenerator generator = new AdamJooqMetamodelGenerator(packageName, output, getSource(), - jooqConfig); - generator.run(); - } + @TaskAction + public void generateJooqMetamodel() throws Exception { + Path output = getProject().getLayout().getProjectDirectory().dir(outputPath).getAsFile().toPath(); + AdamJooqMetamodelGenerator generator = new AdamJooqMetamodelGenerator(packageName, output, getSource(), + jooqConfig); + generator.run(); + } - public String getJooqConfig() { - return jooqConfig; - } + public String getJooqConfig() { + return jooqConfig; + } - public void setJooqConfig(String jooqConfig) { - this.jooqConfig = jooqConfig; - } + public void setJooqConfig(String jooqConfig) { + this.jooqConfig = jooqConfig; + } - public String getPackageName() { - return packageName; - } + public String getPackageName() { + return packageName; + } - public void setPackageName(String packageName) { - this.packageName = packageName; - } + public void setPackageName(String packageName) { + this.packageName = packageName; + } - public String getOutputPath() { - return outputPath; - } + public String getOutputPath() { + return outputPath; + } - public void setOutputPath(String outputPath) { - this.outputPath = outputPath; - } + public void setOutputPath(String outputPath) { + this.outputPath = outputPath; + } - public String getSource() { - return source; - } + public String getSource() { + return source; + } - public void setSource(String source) { - this.source = source; - } + public void setSource(String source) { + this.source = source; + } } diff --git a/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamDatabase.java b/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamDatabase.java index d943ac9..d018c67 100644 --- a/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamDatabase.java +++ b/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamDatabase.java @@ -31,156 +31,156 @@ import ch.ergon.adam.core.db.schema.Table; public class AdamDatabase extends AbstractDatabase { - public static final String SOURCE_PROPERTY = "source"; - private Schema schema; - private SchemaDefinition schemaDefinition; - - @Override - protected DSLContext create0() { - return DSL.using(getConnection()); - } - - @Override - protected void loadPrimaryKeys(DefaultRelations r) throws SQLException { - handleIndexes(i -> i.isPrimary(), i -> { - TableDefinition td = getTable(i.getTable()); - String name = i.getName(); - for (Field field : i.getFields()) { - r.addPrimaryKey(name, td, td.getColumn(field.getName())); - } - }); - } - - @Override - protected void loadUniqueKeys(DefaultRelations r) throws SQLException { - handleIndexes(i -> i.isUnique() && !i.isPrimary(), i -> { - TableDefinition td = getTable(i.getTable()); - String name = i.getName(); - for (Field field : i.getFields()) { - r.addUniqueKey(name, td, td.getColumn(field.getName())); - } - }); - } - - private void handleIndexes(Predicate filter, Consumer consumer) { - for (Table table : schema.getTables()) { - TableDefinition td = getTable(table); - if (td == null) { - // table is excluded from build - continue; - } - table.getIndexes().stream().filter(filter).forEach(consumer); - } - - } - - @Override - protected void loadForeignKeys(DefaultRelations r) throws SQLException { - for (Table table : schema.getTables()) { - TableDefinition td = getTable(table); - if (td == null) { - // table is excluded from build - continue; - } - for (ForeignKey fkey : table.getForeignKeys()) { - TableDefinition target = getTable(fkey.getTargetIndex().getTable()); - if (target != null) { - r.addForeignKey(fkey.getName(), td, td.getColumn(fkey.getField().getName()), - fkey.getTargetIndex().getName(), target); - } - } - } - } - - @Override - protected void loadCheckConstraints(DefaultRelations r) throws SQLException { - // not supported - } - - @Override - protected List getCatalogs0() throws SQLException { - ensureSchema(); - return mutableList(new CatalogDefinition(this, "", "")); - } - - @Override - protected List getSchemata0() throws SQLException { - ensureSchema(); - return mutableList(new SchemaDefinition(this, "", null)); - } - - @Override - protected List getSequences0() throws SQLException { - // not supported - return List.of(); - } - - @Override - protected List getTables0() throws SQLException { - return schema.getTables().stream().map(t -> (TableDefinition) new AdamTableDefinition(schemaDefinition, t)) - .toList(); - } - - @Override - protected List getRoutines0() throws SQLException { - // not supported - return List.of(); - } - - @Override - protected List getPackages0() throws SQLException { - // not supported - return List.of(); - } - - @Override - protected List getEnums0() throws SQLException { - return schema.getEnums().stream().map(e -> { - DefaultEnumDefinition definition = new DefaultEnumDefinition(schemaDefinition, e.getName(), null); - definition.addLiterals(e.getValues()); - return (EnumDefinition) definition; - }).toList(); - } - - @Override - protected List getDomains0() throws SQLException { - // not supported - return List.of(); - } - - @Override - protected List getXMLSchemaCollections0() throws SQLException { - // not supported - return List.of(); - } - - @Override - protected List getUDTs0() throws SQLException { - // not supported - return List.of(); - } - - @Override - protected List getArrays0() throws SQLException { - // not supported - return List.of(); - } - - private TableDefinition getTable(Table table) { - return getTable(schemaDefinition, table.getName()); - } - - private List mutableList(T value) { - List list = new ArrayList<>(); - list.add(value); - return list; - } - - private void ensureSchema() { - if (schema == null) { - String source = (String) getProperties().get(SOURCE_PROPERTY); - schema = SourceAndSinkFactory.getInstance().getSource(source).getSchema(); - schemaDefinition = new SchemaDefinition(this, "", null); - } - } + public static final String SOURCE_PROPERTY = "source"; + private Schema schema; + private SchemaDefinition schemaDefinition; + + @Override + protected DSLContext create0() { + return DSL.using(getConnection()); + } + + @Override + protected void loadPrimaryKeys(DefaultRelations r) throws SQLException { + handleIndexes(i -> i.isPrimary(), i -> { + TableDefinition td = getTable(i.getTable()); + String name = i.getName(); + for (Field field : i.getFields()) { + r.addPrimaryKey(name, td, td.getColumn(field.getName())); + } + }); + } + + @Override + protected void loadUniqueKeys(DefaultRelations r) throws SQLException { + handleIndexes(i -> i.isUnique() && !i.isPrimary(), i -> { + TableDefinition td = getTable(i.getTable()); + String name = i.getName(); + for (Field field : i.getFields()) { + r.addUniqueKey(name, td, td.getColumn(field.getName())); + } + }); + } + + private void handleIndexes(Predicate filter, Consumer consumer) { + for (Table table : schema.getTables()) { + TableDefinition td = getTable(table); + if (td == null) { + // table is excluded from build + continue; + } + table.getIndexes().stream().filter(filter).forEach(consumer); + } + + } + + @Override + protected void loadForeignKeys(DefaultRelations r) throws SQLException { + for (Table table : schema.getTables()) { + TableDefinition td = getTable(table); + if (td == null) { + // table is excluded from build + continue; + } + for (ForeignKey fkey : table.getForeignKeys()) { + TableDefinition target = getTable(fkey.getTargetIndex().getTable()); + if (target != null) { + r.addForeignKey(fkey.getName(), td, td.getColumn(fkey.getField().getName()), + fkey.getTargetIndex().getName(), target); + } + } + } + } + + @Override + protected void loadCheckConstraints(DefaultRelations r) throws SQLException { + // not supported + } + + @Override + protected List getCatalogs0() throws SQLException { + ensureSchema(); + return mutableList(new CatalogDefinition(this, "", "")); + } + + @Override + protected List getSchemata0() throws SQLException { + ensureSchema(); + return mutableList(new SchemaDefinition(this, "", null)); + } + + @Override + protected List getSequences0() throws SQLException { + // not supported + return List.of(); + } + + @Override + protected List getTables0() throws SQLException { + return schema.getTables().stream().map(t -> (TableDefinition) new AdamTableDefinition(schemaDefinition, t)) + .toList(); + } + + @Override + protected List getRoutines0() throws SQLException { + // not supported + return List.of(); + } + + @Override + protected List getPackages0() throws SQLException { + // not supported + return List.of(); + } + + @Override + protected List getEnums0() throws SQLException { + return schema.getEnums().stream().map(e -> { + DefaultEnumDefinition definition = new DefaultEnumDefinition(schemaDefinition, e.getName(), null); + definition.addLiterals(e.getValues()); + return (EnumDefinition) definition; + }).toList(); + } + + @Override + protected List getDomains0() throws SQLException { + // not supported + return List.of(); + } + + @Override + protected List getXMLSchemaCollections0() throws SQLException { + // not supported + return List.of(); + } + + @Override + protected List getUDTs0() throws SQLException { + // not supported + return List.of(); + } + + @Override + protected List getArrays0() throws SQLException { + // not supported + return List.of(); + } + + private TableDefinition getTable(Table table) { + return getTable(schemaDefinition, table.getName()); + } + + private List mutableList(T value) { + List list = new ArrayList<>(); + list.add(value); + return list; + } + + private void ensureSchema() { + if (schema == null) { + String source = (String) getProperties().get(SOURCE_PROPERTY); + schema = SourceAndSinkFactory.getInstance().getSource(source).getSchema(); + schemaDefinition = new SchemaDefinition(this, "", null); + } + } } diff --git a/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamTableDefinition.java b/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamTableDefinition.java index 2846888..08055ff 100644 --- a/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamTableDefinition.java +++ b/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamTableDefinition.java @@ -1,100 +1,94 @@ package ch.ergon.adam.gradleplugin.util; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - +import ch.ergon.adam.core.db.schema.DataType; +import ch.ergon.adam.core.db.schema.Field; +import ch.ergon.adam.core.db.schema.Table; import org.jooq.Name; import org.jooq.impl.DSL; import org.jooq.impl.SQLDataType; -import org.jooq.meta.AbstractTableDefinition; -import org.jooq.meta.ColumnDefinition; -import org.jooq.meta.DataTypeDefinition; -import org.jooq.meta.DefaultColumnDefinition; -import org.jooq.meta.DefaultDataTypeDefinition; -import org.jooq.meta.SchemaDefinition; +import org.jooq.meta.*; -import ch.ergon.adam.core.db.schema.DataType; -import ch.ergon.adam.core.db.schema.Field; -import ch.ergon.adam.core.db.schema.Table; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; public class AdamTableDefinition extends AbstractTableDefinition { - private final Table table; + private final Table table; - public AdamTableDefinition(SchemaDefinition schema, Table table) { - super(schema, table.getName(), null); - this.table = table; - } + public AdamTableDefinition(SchemaDefinition schema, Table table) { + super(schema, table.getName(), null); + this.table = table; + } - @Override - protected List getElements0() throws SQLException { - List result = new ArrayList(); - for (Field field : table.getFields()) { - result.add(new DefaultColumnDefinition(this, field.getName(), field.getIndex(), dataTypeDefinition(field), - isIdentity(field), null)); - } - return result; - } + @Override + protected List getElements0() throws SQLException { + List result = new ArrayList(); + for (Field field : table.getFields()) { + result.add(new DefaultColumnDefinition(this, field.getName(), field.getIndex(), dataTypeDefinition(field), + isIdentity(field), null)); + } + return result; + } - private DataTypeDefinition dataTypeDefinition(Field field) { + private DataTypeDefinition dataTypeDefinition(Field field) { return new DefaultDataTypeDefinition(getDatabase(), getSchema(), - typeName(field.getDataType()), field.getLength(), field.getPrecision(), field.getScale(), - field.isNullable(), field.getDefaultValue(), getUserType(field)); - } + typeName(field.getDataType()), field.getLength(), field.getPrecision(), field.getScale(), + field.isNullable(), field.getDefaultValue(), getUserType(field)); + } - private String typeName(DataType type) { - var jooqType = switch (type) { - case BIGINT -> SQLDataType.BIGINT; - case BIGINTUNSIGNED -> SQLDataType.BIGINTUNSIGNED; - case BINARY -> SQLDataType.BINARY; - case BIT -> SQLDataType.BIT; - case BLOB -> SQLDataType.BLOB; - case BOOLEAN -> SQLDataType.BOOLEAN; - case CHAR -> SQLDataType.CHAR; - case CLOB -> SQLDataType.CLOB; - case DATE -> SQLDataType.DATE; - case DECIMAL -> SQLDataType.DECIMAL; - case DECIMAL_INTEGER -> SQLDataType.DECIMAL_INTEGER; - case DOUBLE -> SQLDataType.DOUBLE; - case ENUM -> SQLDataType.VARCHAR; - case FLOAT -> SQLDataType.FLOAT; - case INTEGER -> SQLDataType.INTEGER; - case INTEGERUNSIGNED -> SQLDataType.INTEGERUNSIGNED; - case INTERVALDAYTOSECOND -> SQLDataType.INTERVALDAYTOSECOND; - case INTERVALYEARTOMONTH -> SQLDataType.INTERVALYEARTOMONTH; - case INTERVALYEARTOSECOND -> SQLDataType.INTERVAL; - case LOCALDATE -> SQLDataType.LOCALDATE; - case LOCALDATETIME -> SQLDataType.LOCALDATETIME; - case LOCALTIME -> SQLDataType.LOCALTIME; - case LONGNVARCHAR -> SQLDataType.LONGNVARCHAR; - case LONGVARBINARY -> SQLDataType.LONGVARBINARY; - case LONGVARCHAR -> SQLDataType.LONGVARCHAR; - case NCHAR -> SQLDataType.NCHAR; - case NCLOB -> SQLDataType.NCLOB; - case NUMERIC -> SQLDataType.NUMERIC; - case NVARCHAR -> SQLDataType.NVARCHAR; - case OFFSETDATETIME -> SQLDataType.OFFSETDATETIME; - case OFFSETTIME -> SQLDataType.OFFSETTIME; - case REAL -> SQLDataType.REAL; - case SMALLINT -> SQLDataType.SMALLINT; - case SMALLINTUNSIGNED -> SQLDataType.SMALLINTUNSIGNED; - case TIME -> SQLDataType.TIME; - case TIMESTAMP -> SQLDataType.TIMESTAMP; - case TIMESTAMPWITHTIMEZONE -> SQLDataType.TIMESTAMPWITHTIMEZONE; - case TIMEWITHTIMEZONE -> SQLDataType.TIMEWITHTIMEZONE; - case TINYINT -> SQLDataType.TINYINT; - case TINYINTUNSIGNED -> SQLDataType.TINYINTUNSIGNED; - case UUID -> SQLDataType.UUID; - case VARBINARY -> SQLDataType.VARBINARY; - case VARCHAR -> SQLDataType.VARCHAR; - }; - return jooqType.getTypeName(); - } + private String typeName(DataType type) { + var jooqType = switch (type) { + case BIGINT -> SQLDataType.BIGINT; + case BIGINTUNSIGNED -> SQLDataType.BIGINTUNSIGNED; + case BINARY -> SQLDataType.BINARY; + case BIT -> SQLDataType.BIT; + case BLOB -> SQLDataType.BLOB; + case BOOLEAN -> SQLDataType.BOOLEAN; + case CHAR -> SQLDataType.CHAR; + case CLOB -> SQLDataType.CLOB; + case DATE -> SQLDataType.DATE; + case DECIMAL -> SQLDataType.DECIMAL; + case DECIMAL_INTEGER -> SQLDataType.DECIMAL_INTEGER; + case DOUBLE -> SQLDataType.DOUBLE; + case ENUM -> SQLDataType.VARCHAR; + case FLOAT -> SQLDataType.FLOAT; + case INTEGER -> SQLDataType.INTEGER; + case INTEGERUNSIGNED -> SQLDataType.INTEGERUNSIGNED; + case INTERVALDAYTOSECOND -> SQLDataType.INTERVALDAYTOSECOND; + case INTERVALYEARTOMONTH -> SQLDataType.INTERVALYEARTOMONTH; + case INTERVALYEARTOSECOND -> SQLDataType.INTERVAL; + case LOCALDATE -> SQLDataType.LOCALDATE; + case LOCALDATETIME -> SQLDataType.LOCALDATETIME; + case LOCALTIME -> SQLDataType.LOCALTIME; + case LONGNVARCHAR -> SQLDataType.LONGNVARCHAR; + case LONGVARBINARY -> SQLDataType.LONGVARBINARY; + case LONGVARCHAR -> SQLDataType.LONGVARCHAR; + case NCHAR -> SQLDataType.NCHAR; + case NCLOB -> SQLDataType.NCLOB; + case NUMERIC -> SQLDataType.NUMERIC; + case NVARCHAR -> SQLDataType.NVARCHAR; + case OFFSETDATETIME -> SQLDataType.OFFSETDATETIME; + case OFFSETTIME -> SQLDataType.OFFSETTIME; + case REAL -> SQLDataType.REAL; + case SMALLINT -> SQLDataType.SMALLINT; + case SMALLINTUNSIGNED -> SQLDataType.SMALLINTUNSIGNED; + case TIME -> SQLDataType.TIME; + case TIMESTAMP -> SQLDataType.TIMESTAMP; + case TIMESTAMPWITHTIMEZONE -> SQLDataType.TIMESTAMPWITHTIMEZONE; + case TIMEWITHTIMEZONE -> SQLDataType.TIMEWITHTIMEZONE; + case TINYINT -> SQLDataType.TINYINT; + case TINYINTUNSIGNED -> SQLDataType.TINYINTUNSIGNED; + case UUID -> SQLDataType.UUID; + case VARBINARY -> SQLDataType.VARBINARY; + case VARCHAR -> SQLDataType.VARCHAR; + }; + return jooqType.getTypeName(); + } - private boolean isIdentity(Field field) { - return field.isSequence(); - } + private boolean isIdentity(Field field) { + return field.isSequence(); + } private Name getUserType(Field field) { if (field.getDbEnum() != null) { diff --git a/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/TableSuffixGeneratorStrategy.java b/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/TableSuffixGeneratorStrategy.java index d249ebc..951ec25 100644 --- a/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/TableSuffixGeneratorStrategy.java +++ b/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/TableSuffixGeneratorStrategy.java @@ -10,14 +10,14 @@ */ public class TableSuffixGeneratorStrategy extends DefaultGeneratorStrategy { - @Override - public String getJavaClassName(Definition definition, org.jooq.codegen.GeneratorStrategy.Mode mode) { - String defaultName = super.getJavaClassName(definition, mode); - if (mode == org.jooq.codegen.GeneratorStrategy.Mode.DEFAULT && definition instanceof TableDefinition) { - return defaultName + "Table"; - } else { - return defaultName; - } - } + @Override + public String getJavaClassName(Definition definition, org.jooq.codegen.GeneratorStrategy.Mode mode) { + String defaultName = super.getJavaClassName(definition, mode); + if (mode == org.jooq.codegen.GeneratorStrategy.Mode.DEFAULT && definition instanceof TableDefinition) { + return defaultName + "Table"; + } else { + return defaultName; + } + } } From b941fb851bbac243c5780e8a55aa5f7304e0b60d Mon Sep 17 00:00:00 2001 From: Jonas Matter Date: Wed, 4 Dec 2024 16:04:39 +0100 Subject: [PATCH 2/2] support sequences in metamodel generation --- .../adam/gradleplugin/util/AdamDatabase.java | 40 +++++++++++-------- .../main/resources/adam/schema/sequences.yml | 5 +++ .../plugin/GenerateJooqMetamodelTest.java | 3 ++ 3 files changed, 32 insertions(+), 16 deletions(-) create mode 100644 integration-test-db/src/main/resources/adam/schema/sequences.yml diff --git a/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamDatabase.java b/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamDatabase.java index d018c67..c317495 100644 --- a/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamDatabase.java +++ b/gradle-plugin/src/main/java/ch/ergon/adam/gradleplugin/util/AdamDatabase.java @@ -8,20 +8,7 @@ import org.jooq.DSLContext; import org.jooq.impl.DSL; -import org.jooq.meta.AbstractDatabase; -import org.jooq.meta.ArrayDefinition; -import org.jooq.meta.CatalogDefinition; -import org.jooq.meta.DefaultEnumDefinition; -import org.jooq.meta.DefaultRelations; -import org.jooq.meta.DomainDefinition; -import org.jooq.meta.EnumDefinition; -import org.jooq.meta.PackageDefinition; -import org.jooq.meta.RoutineDefinition; -import org.jooq.meta.SchemaDefinition; -import org.jooq.meta.SequenceDefinition; -import org.jooq.meta.TableDefinition; -import org.jooq.meta.UDTDefinition; -import org.jooq.meta.XMLSchemaCollectionDefinition; +import org.jooq.meta.*; import ch.ergon.adam.core.db.SourceAndSinkFactory; import ch.ergon.adam.core.db.schema.Field; @@ -30,6 +17,8 @@ import ch.ergon.adam.core.db.schema.Schema; import ch.ergon.adam.core.db.schema.Table; +import static org.jooq.impl.SQLDataType.BIGINT; + public class AdamDatabase extends AbstractDatabase { public static final String SOURCE_PROPERTY = "source"; private Schema schema; @@ -111,8 +100,27 @@ protected List getSchemata0() throws SQLException { @Override protected List getSequences0() throws SQLException { - // not supported - return List.of(); + return schema.getSequences().stream().map(s -> { + DataTypeDefinition sequenceType = new DefaultDataTypeDefinition(this, + schemaDefinition, + BIGINT.getTypeName(), + null, + null, + null, + false, + null); + DefaultSequenceDefinition definition = new DefaultSequenceDefinition(schemaDefinition, + s.getName(), + sequenceType, + null, + null, + null, + null, + null, + false, + null); + return (SequenceDefinition) definition; + }).toList(); } @Override diff --git a/integration-test-db/src/main/resources/adam/schema/sequences.yml b/integration-test-db/src/main/resources/adam/schema/sequences.yml new file mode 100644 index 0000000..a44030d --- /dev/null +++ b/integration-test-db/src/main/resources/adam/schema/sequences.yml @@ -0,0 +1,5 @@ +--- +- name: "number_id" + startValue: 1 + increment: 1 + diff --git a/integration-test/src/test/java/ch/ergon/adam/integrationtest/plugin/GenerateJooqMetamodelTest.java b/integration-test/src/test/java/ch/ergon/adam/integrationtest/plugin/GenerateJooqMetamodelTest.java index b8595be..6bb861d 100644 --- a/integration-test/src/test/java/ch/ergon/adam/integrationtest/plugin/GenerateJooqMetamodelTest.java +++ b/integration-test/src/test/java/ch/ergon/adam/integrationtest/plugin/GenerateJooqMetamodelTest.java @@ -37,6 +37,9 @@ public void testMetamodelGeneration() { Path enumFilePath = tempFolder.resolve("test").resolve("enums").resolve("TestStatus.java"); assertTrue(enumFilePath.toFile().exists(), "Metamodel for enums must be generated"); + + Path sequencesFilePath = tempFolder.resolve("test").resolve("Sequences.java"); + assertTrue(sequencesFilePath.toFile().exists(), "Metamodel for sequences must be generated"); } catch (Exception e) { e.printStackTrace(); fail(e.getMessage());