[#2690] Inaccurate runtime xsd versions in 3.1 manual
This commit is contained in:
parent
94f1bd7b10
commit
d7e1811eaa
@ -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<String> codegenXSDVersions = new ArrayList<String>();
|
||||
List<String> exportXSDVersions = new ArrayList<String>();
|
||||
List<String> runtimeXSDVersions = new ArrayList<String>();
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
383
jOOQ-website/xsd/jooq-codegen-3.2.0.xsd
Normal file
383
jOOQ-website/xsd/jooq-codegen-3.2.0.xsd
Normal file
@ -0,0 +1,383 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||
xmlns:tns="http://www.jooq.org/xsd/jooq-codegen-3.2.0.xsd"
|
||||
targetNamespace="http://www.jooq.org/xsd/jooq-codegen-3.2.0.xsd"
|
||||
elementFormDefault="qualified">
|
||||
|
||||
<element name="configuration">
|
||||
<complexType>
|
||||
<all>
|
||||
<!--
|
||||
The JDBC configuration element contains information about how
|
||||
to set up the database connection used for source code generation
|
||||
-->
|
||||
<element name="jdbc" type="tns:Jdbc" minOccurs="1"
|
||||
maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
The GENERATOR configuration element contains information about
|
||||
source code generation itself
|
||||
-->
|
||||
<element name="generator" type="tns:Generator" minOccurs="1"
|
||||
maxOccurs="1" />
|
||||
</all>
|
||||
</complexType>
|
||||
</element>
|
||||
|
||||
<complexType name="Jdbc">
|
||||
<all>
|
||||
<!-- The JDBC driver -->
|
||||
<element name="driver" type="string" minOccurs="1" maxOccurs="1" />
|
||||
|
||||
<!-- The JDBC connection URL -->
|
||||
<element name="url" type="string" minOccurs="1" maxOccurs="1" />
|
||||
|
||||
<!-- Deprecated. Use database schema configuration elements instead -->
|
||||
<element name="schema" type="string" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
The JDBC connection user. Be sure this user has all required
|
||||
GRANTs to the dictionary views/tables to generate the desired artefacts
|
||||
-->
|
||||
<element name="user" type="string" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!-- The JDBC connection password -->
|
||||
<element name="password" type="string" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Enlist custom JDBC driver properties that are provided to the
|
||||
java.sql.DriverManager when fetching a connection
|
||||
-->
|
||||
<element name="properties" type="tns:Properties" minOccurs="0" maxOccurs="1" />
|
||||
</all>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Properties">
|
||||
<sequence>
|
||||
<element name="property" type="tns:Property" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Property">
|
||||
<all>
|
||||
<element name="key" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
<element name="value" type="string" minOccurs="1" maxOccurs="1"/>
|
||||
</all>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Generator">
|
||||
<all>
|
||||
<!--
|
||||
The class used to generate source code. You may override this with
|
||||
your custom source code generator
|
||||
-->
|
||||
<element name="name" type="string" default="org.jooq.util.DefaultGenerator"
|
||||
minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!-- The naming strategy used for class and field names -->
|
||||
<element name="strategy" type="tns:Strategy" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!-- The jooq-meta configuration -->
|
||||
<element name="database" type="tns:Database" minOccurs="1" maxOccurs="1" />
|
||||
|
||||
<!-- The jooq-codegen configuration -->
|
||||
<element name="generate" type="tns:Generate" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!-- Some information about generation output -->
|
||||
<element name="target" type="tns:Target" minOccurs="0" maxOccurs="1" />
|
||||
</all>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Strategy">
|
||||
<all>
|
||||
<!--
|
||||
The class used to provide a naming strategy for generated source
|
||||
code. You may override this with your custom naming strategy
|
||||
-->
|
||||
<element name="name" type="string" minOccurs="0" maxOccurs="1"
|
||||
default="org.jooq.util.DefaultGeneratorStrategy" />
|
||||
</all>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Database">
|
||||
<all>
|
||||
<!--
|
||||
The database dialect from jooq-meta. Available dialects are
|
||||
named org.util.[database].[database]Database. Known values are:
|
||||
|
||||
org.jooq.util.ase.ASEDatabase
|
||||
org.jooq.util.cubrid.CUBRIDDatabase
|
||||
org.jooq.util.db2.DB2Database
|
||||
org.jooq.util.derby.DerbyDatabase
|
||||
org.jooq.util.h2.H2Database
|
||||
org.jooq.util.hsqldb.HSQLDBDatabase
|
||||
org.jooq.util.ingres.IngresDatabase
|
||||
org.jooq.util.mysql.MySQLDatabase
|
||||
org.jooq.util.oracle.OracleDatabase
|
||||
org.jooq.util.postgres.PostgresDatabase
|
||||
org.jooq.util.sqlite.SQLiteDatabaes
|
||||
org.jooq.util.sqlserver.SQLServerDatabase
|
||||
org.jooq.util.sybase.SybaseDatabase
|
||||
|
||||
You can also provide your own org.jooq.util.Database implementation
|
||||
here, if your database is currently not supported
|
||||
-->
|
||||
<element name="name" type="string" minOccurs="1" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
All elements that are generated from your schema (A Java regular expression.
|
||||
Use the pipe to separate several expressions) Watch out for
|
||||
case-sensitivity. Depending on your database, this might be
|
||||
important! You can create case-insensitive regular expressions
|
||||
using this syntax: (?i:expr)A comma-separated list of regular
|
||||
expressions
|
||||
-->
|
||||
<element name="includes" type="string" default=".*" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
All elements that are excluded from your schema (A Java regular expression.
|
||||
Use the pipe to separate several expressions). Excludes match before
|
||||
includes
|
||||
-->
|
||||
<element name="excludes" type="string" default="" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
All table and view columns that are used as "version" fields for
|
||||
optimistic locking (A Java regular expression. Use the pipe to separate several expressions).
|
||||
See UpdatableRecord.store() and UpdatableRecord.delete() for details
|
||||
-->
|
||||
<element name="recordVersionFields" type="string" default="" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
All table and view columns that are used as "timestamp" fields for
|
||||
optimistic locking (A Java regular expression. Use the pipe to separate several expressions).
|
||||
See UpdatableRecord.store() and UpdatableRecord.delete() for details
|
||||
-->
|
||||
<element name="recordTimestampFields" type="string" default="" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate java.sql.Timestamp fields for DATE columns. This is
|
||||
particularly useful for Oracle databases
|
||||
-->
|
||||
<element name="dateAsTimestamp" type="boolean" default="false" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate jOOU data types for your unsigned data types, which are
|
||||
not natively supported in Java
|
||||
-->
|
||||
<element name="unsignedTypes" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
The schema that is used locally as a source for meta information.
|
||||
This could be your development schema or the production schema, etc
|
||||
This cannot be combined with the schemata element.
|
||||
If left empty (and without any schemata element), jOOQ will generate all available schemata.
|
||||
For backwards compatibility, this defaults to jdbc/schema
|
||||
-->
|
||||
<element name="inputSchema" type="string" default="" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
The schema that is used in generated source code. This will be the
|
||||
production schema. Use this to override your local development
|
||||
schema name for source code generation. If not specified, this
|
||||
will be the same as the input-schema.
|
||||
-->
|
||||
<element name="outputSchema" type="string" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
A configuration element to configure several input and/or output
|
||||
schemata for jooq-meta, in case you're using jooq-meta in a multi-
|
||||
schema environment
|
||||
-->
|
||||
<element name="schemata" type="tns:Schemata" minOccurs="0" maxOccurs="1"/>
|
||||
|
||||
<!--
|
||||
A configuration element to configure custom types introduced to jOOQ
|
||||
using converters
|
||||
-->
|
||||
<element name="customTypes" type="tns:CustomTypes" minOccurs="0" maxOccurs="1"/>
|
||||
|
||||
<!--
|
||||
A configuration element to configure synthetic enum types
|
||||
This is EXPERIMENTAL / DEPRECATED functionality. Do not re-use
|
||||
-->
|
||||
<element name="enumTypes" type="tns:EnumTypes" minOccurs="0" maxOccurs="1"/>
|
||||
|
||||
<!--
|
||||
A configuration element to configure type overrides for generated
|
||||
artefacts (e.g. in combination with enumTypes)
|
||||
-->
|
||||
<element name="forcedTypes" type="tns:ForcedTypes" minOccurs="0" maxOccurs="1"/>
|
||||
</all>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Schemata">
|
||||
<sequence>
|
||||
<!--
|
||||
A configuration element for a single schema in multi-schema
|
||||
environments
|
||||
-->
|
||||
<element name="schema" type="tns:Schema" minOccurs="1" maxOccurs="unbounded"/>
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Schema">
|
||||
<all>
|
||||
<!-- See also database/inputSchema -->
|
||||
<element name="inputSchema" type="string" default="" minOccurs="1" maxOccurs="1" />
|
||||
|
||||
<!-- See also database/outputSchema -->
|
||||
<element name="outputSchema" type="string" minOccurs="0" maxOccurs="1" />
|
||||
</all>
|
||||
</complexType>
|
||||
|
||||
<complexType name="CustomTypes">
|
||||
<sequence>
|
||||
<!-- A configuration element for a custom type -->
|
||||
<element name="customType" type="tns:CustomType" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="EnumTypes">
|
||||
<sequence>
|
||||
<!-- A configuration element for a synthetic enum type -->
|
||||
<element name="enumType" type="tns:EnumType" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="ForcedTypes">
|
||||
<sequence>
|
||||
<!-- A configuration element for a forced type override -->
|
||||
<element name="forcedType" type="tns:ForcedType" minOccurs="0" maxOccurs="unbounded" />
|
||||
</sequence>
|
||||
</complexType>
|
||||
|
||||
<complexType name="CustomType">
|
||||
<all>
|
||||
<!-- The name of the custom type -->
|
||||
<element name="name" type="string" minOccurs="1" maxOccurs="1" />
|
||||
|
||||
<!-- A converter implementation for the custom type -->
|
||||
<element name="converter" type="string" minOccurs="1" maxOccurs="1" />
|
||||
</all>
|
||||
</complexType>
|
||||
|
||||
<complexType name="EnumType">
|
||||
<all>
|
||||
<!-- The name of the synthetic enum type -->
|
||||
<element name="name" type="string" minOccurs="1" maxOccurs="1" />
|
||||
|
||||
<!-- A comma separated (CSV format) list of enum literals -->
|
||||
<element name="literals" type="string" minOccurs="1" maxOccurs="1" />
|
||||
</all>
|
||||
</complexType>
|
||||
|
||||
<complexType name="ForcedType">
|
||||
<all>
|
||||
<!-- The name of the type to be forced upon various artefacts -->
|
||||
<element name="name" type="string" minOccurs="1" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
A Java regular expression matching columns, parameters, attributes,
|
||||
etc to be forced to have this type
|
||||
-->
|
||||
<element name="expressions" type="string" minOccurs="1" maxOccurs="1" />
|
||||
</all>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Generate">
|
||||
<all>
|
||||
<!--
|
||||
Primary key / foreign key relations should be generated and used.
|
||||
This is a prerequisite for various advanced features
|
||||
-->
|
||||
<element name="relations" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!-- Generate deprecated code for backwards compatibility -->
|
||||
<element name="deprecated" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate instance fields in your tables, as opposed to static
|
||||
fields. This simplifies aliasing
|
||||
-->
|
||||
<element name="instanceFields" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate the javax.annotation.Generated annotation to indicate
|
||||
jOOQ version used for source code
|
||||
-->
|
||||
<element name="generatedAnnotation" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate TableRecord classes. Disable this when you don't
|
||||
need the additional type-safety
|
||||
-->
|
||||
<element name="records" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate POJOs for usage of the ResultQuery.fetchInto(Class) API
|
||||
-->
|
||||
<element name="pojos" type="boolean" default="false" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate immutable POJOs for usage of the ResultQuery.fetchInto(Class) API
|
||||
This overrides any value set in <pojos/>
|
||||
-->
|
||||
<element name="immutablePojos" type="boolean" default="false" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate interfaces that will be implemented by records and/or pojos.
|
||||
You can also use these interfaces in Record.into(Class<?>) and similar
|
||||
methods, to let jOOQ return proxy objects for them.
|
||||
-->
|
||||
<element name="interfaces" type="boolean" default="false" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Generate DAOs in addition to POJO classes
|
||||
-->
|
||||
<element name="daos" type="boolean" default="false" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Annotate POJOs and Records with JPA annotations for increased
|
||||
compatibility and better integration with JPA/Hibernate, etc
|
||||
-->
|
||||
<element name="jpaAnnotations" type="boolean" default="false" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Annotate POJOs and Records with JSR-303 validation annotations
|
||||
-->
|
||||
<element name="validationAnnotations" type="boolean" default="false" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!--
|
||||
Allow to turn off the generation of global object references, which include
|
||||
|
||||
- Tables.java
|
||||
- Sequences.java
|
||||
- UDTs.java
|
||||
|
||||
Turning off the generation of the above files may be necessary for very
|
||||
large schemas, which exceed the amount of allowed constants in a class's
|
||||
constant pool (64k) or, whose static initialiser would exceed 64k of
|
||||
byte code
|
||||
-->
|
||||
<element name="globalObjectReferences" type="boolean" default="true" minOccurs="0" maxOccurs="1" />
|
||||
</all>
|
||||
</complexType>
|
||||
|
||||
<complexType name="Target">
|
||||
<all>
|
||||
<!--
|
||||
The destination package of your generated classes (within the
|
||||
destination directory)
|
||||
|
||||
jOOQ may append the schema name to this package if generating multiple schemas,
|
||||
e.g. org.jooq.generated.schema1
|
||||
org.jooq.generated.schema2
|
||||
-->
|
||||
<element name="packageName" type="string" default="org.jooq.generated" minOccurs="0" maxOccurs="1" />
|
||||
|
||||
<!-- The destination directory of your generated classes -->
|
||||
<element name="directory" type="string" default="target/generated-sources/jooq" />
|
||||
</all>
|
||||
</complexType>
|
||||
</schema>
|
||||
Loading…
Reference in New Issue
Block a user