diff --git a/jOOQ-website/src/main/java/Transform.java b/jOOQ-website/src/main/java/Transform.java index 98fa1ec718..68a3ef3d06 100644 --- a/jOOQ-website/src/main/java/Transform.java +++ b/jOOQ-website/src/main/java/Transform.java @@ -42,10 +42,13 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; import java.io.PrintWriter; +import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.xml.transform.Result; import javax.xml.transform.Source; @@ -76,6 +79,48 @@ public class Transform { private static final FopFactory fopFactory = FopFactory.newInstance(); private static final String minorVersion = Constants.MINOR_VERSION; private static final String version = Constants.FULL_VERSION; + private static final String codegenXSDVersion; + private static final String exportXSDVersion; + private static final String runtimeXSDVersion; + + static { + File xsdDir = new File("./xsd"); + String[] files = xsdDir.list(); + + List codegenXSDVersions = new ArrayList(); + List exportXSDVersions = new ArrayList(); + List runtimeXSDVersions = new ArrayList(); + + Pattern p = Pattern.compile("jooq-(\\w+)-(\\d+\\.\\d+\\.\\d+).xsd"); + + for (String file : files) { + Matcher m = p.matcher(file); + + if (m.matches()) { + if ("codegen".equals(m.group(1))) { + codegenXSDVersions.add(m.group(2)); + } + else if ("export".equals(m.group(1))) { + exportXSDVersions.add(m.group(2)); + } + else if ("runtime".equals(m.group(1))) { + runtimeXSDVersions.add(m.group(2)); + } + } + } + + codegenXSDVersions.add(version); + exportXSDVersions.add(version); + runtimeXSDVersions.add(version); + + Collections.sort(codegenXSDVersions); + Collections.sort(exportXSDVersions); + Collections.sort(runtimeXSDVersions); + + codegenXSDVersion = codegenXSDVersions.get(codegenXSDVersions.lastIndexOf(version) - 1); + exportXSDVersion = exportXSDVersions.get(exportXSDVersions.lastIndexOf(version) - 1); + runtimeXSDVersion = runtimeXSDVersions.get(runtimeXSDVersions.lastIndexOf(version) - 1); + } public static void main(String[] args) throws Exception { System.out.println("Transforming manual: " + file("manual.xml")); @@ -146,17 +191,17 @@ public class Transform { } if (content.contains("{codegen-xsd-version}")) { - content = content.replace("{codegen-xsd-version}", "3.2.0"); + content = content.replace("{codegen-xsd-version}", codegenXSDVersion); changed = true; } if (content.contains("{export-xsd-version}")) { - content = content.replace("{export-xsd-version}", "2.6.0"); + content = content.replace("{export-xsd-version}", exportXSDVersion); changed = true; } if (content.contains("{runtime-xsd-version}")) { - content = content.replace("{runtime-xsd-version}", "3.1.0"); + content = content.replace("{runtime-xsd-version}", runtimeXSDVersion); changed = true; } diff --git a/jOOQ-website/xsd/jooq-codegen-3.2.0.xsd b/jOOQ-website/xsd/jooq-codegen-3.2.0.xsd new file mode 100644 index 0000000000..b31e3b4807 --- /dev/null +++ b/jOOQ-website/xsd/jooq-codegen-3.2.0.xsd @@ -0,0 +1,383 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file