diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java
index fd785cf3e4..d0badad1e6 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/AbstractGenerator.java
@@ -65,6 +65,7 @@ abstract class AbstractGenerator implements Generator {
boolean generateGeneratedAnnotation = true;
boolean useSchemaVersionProvider = false;
boolean useCatalogVersionProvider = false;
+ boolean generateRoutines = true;
boolean generateRecords = true;
boolean generatePojos = false;
boolean generatePojosEqualsAndHashCode = false;
@@ -238,6 +239,16 @@ abstract class AbstractGenerator implements Generator {
this.useCatalogVersionProvider = useCatalogVersionProvider;
}
+ @Override
+ public boolean generateRoutines() {
+ return generateRoutines;
+ }
+
+ @Override
+ public void setGenerateRoutines(boolean generateRoutines) {
+ this.generateRoutines = generateRoutines;
+ }
+
@Override
public boolean generateRecords() {
diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java
index 2b0530320a..6c5a2278c5 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/GenerationTool.java
@@ -461,6 +461,8 @@ public class GenerationTool {
generator.setGenerateInstanceFields(g.getGenerate().isInstanceFields());
if (g.getGenerate().isGeneratedAnnotation() != null)
generator.setGenerateGeneratedAnnotation(g.getGenerate().isGeneratedAnnotation());
+ if (g.getGenerate().isRoutines() != null)
+ generator.setGenerateRoutines(g.getGenerate().isRoutines());
if (g.getGenerate().isRecords() != null)
generator.setGenerateRecords(g.getGenerate().isRecords());
if (g.getGenerate().isPojos() != null)
diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java b/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java
index 4f04fbac56..540bd85a79 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/Generator.java
@@ -120,6 +120,16 @@ public interface Generator {
boolean useCatalogVersionProvider();
void setUseCatalogVersionProvider(boolean useCatalogVersionProvider);
+ /**
+ * Whether Routines should be generated.
+ */
+ boolean generateRoutines();
+
+ /**
+ * Whether Routines should be generated.
+ */
+ void setGenerateRoutines(boolean generateRoutines);
+
/**
* Whether TableRecords should be generated in addition to tables
*/
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 fade4faf0b..c073710e41 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
@@ -217,6 +217,7 @@ public class JavaGenerator extends AbstractGenerator {
log.info(" JPA annotations", generateJPAAnnotations());
log.info(" validation annotations", generateValidationAnnotations());
log.info(" instance fields", generateInstanceFields());
+ log.info(" routines", generateRoutines());
log.info(" records", generateRecords()
+ ((!generateRecords && generateDaos) ? " (forced to true because of )" : ""));
log.info(" pojos", generatePojos()
@@ -406,7 +407,7 @@ public class JavaGenerator extends AbstractGenerator {
generateUDTInterfaces(schema);
}
- if (database.getUDTs(schema).size() > 0) {
+ if (generateRoutines() && database.getUDTs(schema).size() > 0) {
generateUDTRoutines(schema);
}
@@ -426,7 +427,7 @@ public class JavaGenerator extends AbstractGenerator {
generateDomains(schema);
}
- if (generateGlobalObjectReferences() && generateGlobalRoutineReferences() && database.getRoutines(schema).size() > 0 || hasTableValuedFunctions(schema)) {
+ if (generateRoutines() && (database.getRoutines(schema).size() > 0 || hasTableValuedFunctions(schema))) {
generateRoutines(schema);
}
@@ -2095,35 +2096,39 @@ public class JavaGenerator extends AbstractGenerator {
protected void generateRoutines(SchemaDefinition schema) {
log.info("Generating routines and table-valued functions");
- JavaWriter out = newJavaWriter(new File(getStrategy().getFile(schema).getParentFile(), "Routines.java"));
- printPackage(out, schema);
- printClassJavadoc(out, "Convenience access to all stored procedures and functions in " + schema.getOutputName());
- printClassAnnotations(out, schema);
+ if (generateGlobalObjectReferences() && generateGlobalRoutineReferences()) {
+ JavaWriter out = newJavaWriter(new File(getStrategy().getFile(schema).getParentFile(), "Routines.java"));
+ printPackage(out, schema);
+ printClassJavadoc(out, "Convenience access to all stored procedures and functions in " + schema.getOutputName());
+ printClassAnnotations(out, schema);
- if (scala)
- out.println("object Routines {");
- else
- out.println("public class Routines {");
+ if (scala)
+ out.println("object Routines {");
+ else
+ out.println("public class Routines {");
+
+ for (RoutineDefinition routine : database.getRoutines(schema))
+ printRoutine(out, routine);
+
+ for (TableDefinition table : database.getTables(schema)) {
+ if (table.isTableValuedFunction()) {
+ printTableValuedFunction(out, table, getStrategy().getJavaMethodName(table, Mode.DEFAULT));
+ }
+ }
+
+ out.println("}");
+ closeJavaWriter(out);
+ }
for (RoutineDefinition routine : database.getRoutines(schema)) {
- printRoutine(out, routine);
-
try {
generateRoutine(schema, routine);
- } catch (Exception e) {
+ }
+ catch (Exception e) {
log.error("Error while generating routine " + routine, e);
}
}
- for (TableDefinition table : database.getTables(schema)) {
- if (table.isTableValuedFunction()) {
- printTableValuedFunction(out, table, getStrategy().getJavaMethodName(table, Mode.DEFAULT));
- }
- }
-
- out.println("}");
- closeJavaWriter(out);
-
watch.splitInfo("Routines generated");
}
diff --git a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.9.0.xsd b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.9.0.xsd
index 639f13faa5..bf2bca4cca 100644
--- a/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.9.0.xsd
+++ b/jOOQ-meta/src/main/resources/xsd/jooq-codegen-3.9.0.xsd
@@ -725,6 +725,11 @@
-->
+
+
+