user1187135
user1187135

Reputation:

Jooq code generation "excludes" not working with typesafe config

I am trying to exclude two tables created by Liquibase when using TypeSafe Config.

jooq {
    # databasechangelog = Liquibase generated tables
    # databasechangeloglock = Liquibase generated tables
    excludes = "databasechangelog, databasechangeloglock"
  }

When I only supply one excludes such as "databsechangelog", it works.

More than one excludes should be separated by a comma (http://www.jooq.org/doc/2.6/manual/code-generation/codegen-configuration/), but instead it generated both tables.

Doing this is not allowed either.

excludes = "databasechangelog", "databasechangeloglock"

Inside the library, its simplifying calling this (note: getExcludes is a String )

    database.setExcludes(new String[]{StringUtils.defaultString(d1.getExcludes())});

Has anyone else ran into this problem?

Here's my code generation

      new GenerationTool {
        setConnection(connection)
        run(new Configuration {
          withGenerator(new Generator {
            withName(config.jooq.generatorClass)
            withDatabase(new org.jooq.util.jaxb.Database {
              withIncludes(config.jooq.includes)
              withExcludes(config.jooq.excludes)
              withInputSchema(config.jooq.inputSchema)
              withName(config.jooq.databaseClass)
            })
            withTarget(new Target {
              withPackageName(config.jooq.pkg)
              withDirectory(config.jooq.directory)
            })
            withGenerate(new Generate {
              setDaos(true)
            })
          })
        })
      }

Upvotes: 2

Views: 925

Answers (1)

Lukas Eder
Lukas Eder

Reputation: 221031

You're referencing the manual from version 2.6. In the old days, we used comma-separated lists of expressions in includes/excludes - but believe it or not, some people had commas in their table/column names, which is why we dumped the commas. After all, includes / excludes are just regular expressions, and you can separate your individual patterns using the "union operator", the pipe: |

I.e. write:

jooq {
    # databasechangelog = Liquibase generated tables
    # databasechangeloglock = Liquibase generated tables
    excludes = "databasechangelog|databasechangeloglock"
}

This is also documented here in the section "feature removals" (look for "comma-separated"): http://www.jooq.org/doc/latest/manual/reference/migrating-to-3.0

Upvotes: 2

Related Questions