[jOOQ/jOOQ#9520] Log info message when a forcedType never matches
This commit is contained in:
parent
6eac9739f1
commit
941bf0ed4a
@ -69,6 +69,7 @@ import org.jooq.meta.Definition;
|
||||
import org.jooq.meta.SchemaVersionProvider;
|
||||
import org.jooq.meta.jaxb.CatalogMappingType;
|
||||
import org.jooq.meta.jaxb.Configuration;
|
||||
import org.jooq.meta.jaxb.ForcedType;
|
||||
import org.jooq.meta.jaxb.Generate;
|
||||
import org.jooq.meta.jaxb.Jdbc;
|
||||
import org.jooq.meta.jaxb.Logging;
|
||||
@ -803,6 +804,13 @@ public class GenerationTool {
|
||||
|
||||
|
||||
generator.generate(database);
|
||||
|
||||
if (!database.getUnusedForcedTypes().isEmpty()) {
|
||||
log.info("Unused ForcedTypes", "There are unused forced types, which have not been used by this generation run. This can be because of misconfigurations (e.g. bad regular expressions, which do not take into account case sensitivity or object qualification) or because the forced type is obsolete.");
|
||||
|
||||
for (ForcedType f : database.getUnusedForcedTypes())
|
||||
log.info("Unused ForcedType", f);
|
||||
}
|
||||
}
|
||||
finally {
|
||||
if (database != null)
|
||||
|
||||
@ -55,6 +55,7 @@ import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
@ -154,6 +155,7 @@ public abstract class AbstractDatabase implements Database {
|
||||
private List<CustomType> configuredCustomTypes;
|
||||
private List<EnumType> configuredEnumTypes;
|
||||
private List<ForcedType> configuredForcedTypes;
|
||||
private Set<ForcedType> unusedForcedTypes;
|
||||
private List<Embeddable> configuredEmbeddables;
|
||||
private SchemaVersionProvider schemaVersionProvider;
|
||||
private CatalogVersionProvider catalogVersionProvider;
|
||||
@ -223,6 +225,7 @@ public abstract class AbstractDatabase implements Database {
|
||||
all = new ArrayList<>();
|
||||
included = new ArrayList<>();
|
||||
excluded = new ArrayList<>();
|
||||
unusedForcedTypes = new HashSet<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -1255,6 +1258,16 @@ public abstract class AbstractDatabase implements Database {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void markUsed(ForcedType forcedType) {
|
||||
unusedForcedTypes.remove(forcedType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ForcedType> getUnusedForcedTypes() {
|
||||
return new ArrayList<>(unusedForcedTypes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void setConfiguredForcedTypes(List<ForcedType> configuredForcedTypes) {
|
||||
|
||||
@ -1262,6 +1275,7 @@ public abstract class AbstractDatabase implements Database {
|
||||
// a forced type programmatically, so we must not set the list but
|
||||
// append it.
|
||||
getConfiguredForcedTypes().addAll(configuredForcedTypes);
|
||||
unusedForcedTypes.addAll(configuredForcedTypes);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -246,6 +246,7 @@ public abstract class AbstractTypedElementDefinition<T extends Definition>
|
||||
}
|
||||
|
||||
if (uType != null) {
|
||||
db.markUsed(forcedType);
|
||||
log.info("Forcing type", child + " to " + forcedType);
|
||||
|
||||
DataType<?> forcedDataType = null;
|
||||
|
||||
@ -798,6 +798,16 @@ public interface Database extends AutoCloseable {
|
||||
*/
|
||||
void setOrderProvider(Comparator<Definition> provider);
|
||||
|
||||
/**
|
||||
* Mark a forced type as used.
|
||||
*/
|
||||
void markUsed(ForcedType forcedType);
|
||||
|
||||
/**
|
||||
* Retrieve the not-yet used forced types.
|
||||
*/
|
||||
List<ForcedType> getUnusedForcedTypes();
|
||||
|
||||
/**
|
||||
* Database objects matching any of these field names will be generated as
|
||||
* forced types.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user