diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
index cf7d0a563d..d3253a7383 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
@@ -53,6 +53,7 @@ import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.regex.Pattern;
import org.jooq.AggregateFunction;
import org.jooq.Configuration;
@@ -1856,9 +1857,11 @@ public class JavaGenerator extends AbstractGenerator {
// if properly configured
if (updatable) {
patternLoop: for (String pattern : database.getRecordVersionFields()) {
+ Pattern p = Pattern.compile(pattern, Pattern.COMMENTS);
+
for (ColumnDefinition column : table.getColumns()) {
- if ((column.getName().matches(pattern.trim()) ||
- column.getQualifiedName().matches(pattern.trim()))) {
+ if ((p.matcher(column.getName()).matches() ||
+ p.matcher(column.getQualifiedName()).matches())) {
final String columnType = getJavaType(column.getType());
final String columnId = getStrategy().getFullJavaIdentifier(column);
@@ -1875,9 +1878,11 @@ public class JavaGenerator extends AbstractGenerator {
}
timestampLoop: for (String pattern : database.getRecordTimestampFields()) {
+ Pattern p = Pattern.compile(pattern, Pattern.COMMENTS);
+
for (ColumnDefinition column : table.getColumns()) {
- if ((column.getName().matches(pattern.trim()) ||
- column.getQualifiedName().matches(pattern.trim()))) {
+ if ((p.matcher(column.getName()).matches() ||
+ p.matcher(column.getQualifiedName()).matches())) {
final String columnType = getJavaType(column.getType());
final String columnId = getStrategy().getFullJavaIdentifier(column);
diff --git a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java
index 82feafcc79..b37acc1cee 100644
--- a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java
+++ b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java
@@ -54,6 +54,7 @@ import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.regex.Pattern;
import org.jooq.DSLContext;
import org.jooq.SQLDialect;
@@ -798,9 +799,11 @@ public abstract class AbstractDatabase implements Database {
definitionsLoop: for (T definition : definitions) {
if (excludes != null) {
for (String exclude : excludes) {
+ Pattern p = Pattern.compile(exclude, Pattern.COMMENTS);
+
if (exclude != null &&
- (definition.getName().matches(exclude.trim()) ||
- definition.getQualifiedName().matches(exclude.trim()))) {
+ (p.matcher(definition.getName()).matches() ||
+ p.matcher(definition.getQualifiedName()).matches())) {
continue definitionsLoop;
}
@@ -809,9 +812,11 @@ public abstract class AbstractDatabase implements Database {
if (includes != null) {
for (String include : includes) {
+ Pattern p = Pattern.compile(include, Pattern.COMMENTS);
+
if (include != null &&
- (definition.getName().matches(include.trim()) ||
- definition.getQualifiedName().matches(include.trim()))) {
+ (p.matcher(definition.getName()).matches() ||
+ p.matcher(definition.getQualifiedName()).matches())) {
result.add(definition);
continue definitionsLoop;
diff --git a/jOOQ-test/configuration/org/jooq/configuration/lukas/h2/library.xml b/jOOQ-test/configuration/org/jooq/configuration/lukas/h2/library.xml
index c02ddf9848..5ae0bcf5e7 100644
--- a/jOOQ-test/configuration/org/jooq/configuration/lukas/h2/library.xml
+++ b/jOOQ-test/configuration/org/jooq/configuration/lukas/h2/library.xml
@@ -10,10 +10,22 @@
org.jooq.util.DefaultGenerator
.*
- T_BOOK_DETAILS|SYSTEM_SEQUENCE.*|.*\.COL2|COL3
+
+ T_BOOK_DETAILS # Check if dependent objects (e.g. foreign keys) are not generated
+ | SYSTEM_SEQUENCE.* # who knows where this came from (sample comment)
+ | .*\.COL2 # v_2603 contains some columns that we don't want to generate
+ | COL3 # v_2603 contains some columns that we don't want to generate
+
true
- REC_VERSION
- REC_TIMESTAMP
+
+ REC_VERSION
+ | ASDF_ASDF_ASDF # This should not have any effect
+
+
+ REC_TIMESTAMP
+ | ASDF_ASDF_ASDF # This should not have any effect
+ | ASDF_ASDF_ASDF # This should not have any effect
+
false
true
PUBLIC