You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by gk...@apache.org on 2023/09/15 14:14:19 UTC
svn commit: r1912328 - in /db/torque/trunk: ./ torque-generator/src/main/java/org/apache/torque/generator/configuration/ torque-generator/src/test/java/org/apache/torque/generator/source/jdbc/ torque-runtime/ torque-runtime/src/main/java/org/apache/tor...
Author: gk
Date: Fri Sep 15 14:14:19 2023
New Revision: 1912328
URL: http://svn.apache.org/viewvc?rev=1912328&view=rev
Log:
- Adapt dependencies exclude geronimo-jms_1.1_spec and use javax.jms-api v2.0.1 instead.
- minor version update spotbugs-maven-plugin from 4.5.2.0 to 4.7.2.1 with spotbugs v 4.7.3 as old version was not compatible with newer java (20) version.
- Minor verson update log4J2 to 2.20.0
- Add missing junit dependency and update fulcrum-testcontainer to 2.0.0 in torque-runtime module
- Use getDeclaredConstructor in reflection calls
- allow in mysql ddl default charset
- fix unchanged database-5-0.xsd in module site (from torque-templates, which has an updated version 5.1 in the 5.0 namespace) and provide new database-5-1.xsd (currently identical).
- add (copied from module site) database-5-1-strict.xsd and database-5-1.xsd in module torque-templates.
Added:
db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-5-1-strict.xsd
db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-5-1.xsd
Modified:
db/torque/trunk/pom.xml
db/torque/trunk/torque-generator/src/main/java/org/apache/torque/generator/configuration/ClassHelper.java
db/torque/trunk/torque-generator/src/test/java/org/apache/torque/generator/source/jdbc/JdbcMetadataSourceTest.java
db/torque/trunk/torque-runtime/pom.xml
db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/TorqueInstance.java
db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/adapter/AdapterFactory.java
db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/JndiDataSourceFactory.java
db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/manager/AbstractBaseManager.java
db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-0-strict.xsd
db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-0.xsd
db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-1-strict.xsd
db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-1.xsd
db/torque/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java
db/torque/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformFactory.java
db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/mysql/tableCreateOptions.vm
db/torque/trunk/torque-templates/src/test/java/org/apache/torque/templates/jdbc2schema/Jdbc2SchemaTest.java
db/torque/trunk/torque-test/pom.xml
Modified: db/torque/trunk/pom.xml
URL: http://svn.apache.org/viewvc/db/torque/trunk/pom.xml?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/pom.xml (original)
+++ db/torque/trunk/pom.xml Fri Sep 15 14:14:19 2023
@@ -392,6 +392,13 @@
<groupId>org.apache.avalon.framework</groupId>
<artifactId>avalon-framework-api</artifactId>
<version>4.3.1</version>
+ <!-- not available any more? Instead useing javax.jms -->
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jms_1.1_spec</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
@@ -399,6 +406,13 @@
<artifactId>avalon-framework-impl</artifactId>
<version>4.3.1</version>
<scope>test</scope>
+ <!-- not available any more? Instead useing javax.jms -->
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jms_1.1_spec</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
@@ -430,14 +444,29 @@
<scope>test</scope>
</dependency>
+
<dependency>
<groupId>org.apache.fulcrum</groupId>
<artifactId>fulcrum-yaafi</artifactId>
- <version>1.0.8</version>
+ <version>2.0.0</version>
+ <!-- this is non available any more ? Instead useing javax.jms -->
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-jms_1.1_spec</artifactId>
+ </exclusion>
+ </exclusions>
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>javax.jms</groupId>
+ <artifactId>javax.jms-api</artifactId>
+ <version>2.0.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
<version>2.8.4</version>
@@ -497,7 +526,15 @@
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
- <version>4.5.2.0</version>
+ <version>4.7.2.1</version>
+ <dependencies>
+ <!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
+ <dependency>
+ <groupId>com.github.spotbugs</groupId>
+ <artifactId>spotbugs</artifactId>
+ <version>4.7.3</version>
+ </dependency>
+ </dependencies>
<configuration>
<excludeFilterFile>${basedir}/src/main/plugin-config/findbugs-exclude.xml</excludeFilterFile>
</configuration>
@@ -835,7 +872,7 @@
<junit.jupiter.version>5.8.2</junit.jupiter.version>
<junit.launcher.version>1.8.2</junit.launcher.version>
- <log4j2.version>2.19.0</log4j2.version>
+ <log4j2.version>2.20.0</log4j2.version>
<torque.compiler.fork>false</torque.compiler.fork>
<torque.compiler.compilerVersion>11</torque.compiler.compilerVersion>
Modified: db/torque/trunk/torque-generator/src/main/java/org/apache/torque/generator/configuration/ClassHelper.java
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-generator/src/main/java/org/apache/torque/generator/configuration/ClassHelper.java?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-generator/src/main/java/org/apache/torque/generator/configuration/ClassHelper.java (original)
+++ db/torque/trunk/torque-generator/src/main/java/org/apache/torque/generator/configuration/ClassHelper.java Fri Sep 15 14:14:19 2023
@@ -1,5 +1,7 @@
package org.apache.torque.generator.configuration;
+import java.lang.reflect.InvocationTargetException;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -65,7 +67,7 @@ public final class ClassHelper
classLoader = ClassHelper.class.getClassLoader();
}
Class<?> clazz = Class.forName(className, true, classLoader);
- result = clazz.newInstance();
+ result = clazz.getDeclaredConstructor().newInstance();
}
catch (ClassNotFoundException e)
{
@@ -87,6 +89,12 @@ public final class ClassHelper
+ className
+ " has no standard constructor.",
e);
+ } catch (Exception e)
+ {
+ throw new ConfigurationException("The class "
+ + className
+ + " has an error.",
+ e);
}
if (isInstanceOf != null
&& !(isInstanceOf.isInstance(result)))
Modified: db/torque/trunk/torque-generator/src/test/java/org/apache/torque/generator/source/jdbc/JdbcMetadataSourceTest.java
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-generator/src/test/java/org/apache/torque/generator/source/jdbc/JdbcMetadataSourceTest.java?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-generator/src/test/java/org/apache/torque/generator/source/jdbc/JdbcMetadataSourceTest.java (original)
+++ db/torque/trunk/torque-generator/src/test/java/org/apache/torque/generator/source/jdbc/JdbcMetadataSourceTest.java Fri Sep 15 14:14:19 2023
@@ -56,7 +56,7 @@ public class JdbcMetadataSourceTest
@BeforeClass
public static void beforeClass() throws Exception
{
- Class.forName(DRIVER).newInstance();
+ Class.forName(DRIVER).getDeclaredConstructor().newInstance();
}
@Before
Modified: db/torque/trunk/torque-runtime/pom.xml
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-runtime/pom.xml?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-runtime/pom.xml (original)
+++ db/torque/trunk/torque-runtime/pom.xml Fri Sep 15 14:14:19 2023
@@ -73,7 +73,16 @@
<dependency>
<groupId>org.apache.avalon.framework</groupId>
<artifactId>avalon-framework-api</artifactId>
- <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.avalon.framework</groupId>
+ <artifactId>avalon-framework-impl</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.jms</groupId>
+ <artifactId>javax.jms-api</artifactId>
</dependency>
<dependency>
@@ -96,11 +105,17 @@
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.apache.fulcrum</groupId>
<artifactId>fulcrum-testcontainer</artifactId>
- <version>1.0.9</version>
+ <version>2.0.0</version>
<exclusions>
<exclusion>
<groupId>*</groupId>
Modified: db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/TorqueInstance.java
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/TorqueInstance.java?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/TorqueInstance.java (original)
+++ db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/TorqueInstance.java Fri Sep 15 14:14:19 2023
@@ -241,7 +241,7 @@ public class TorqueInstance
{
Class<?> transactionManagerClass = Class.forName(transactionManagerClassName);
transactionManager = (TransactionManager)
- transactionManagerClass.newInstance();
+ transactionManagerClass.getDeclaredConstructor().newInstance();
if (log.isTraceEnabled())
{
log.trace("Using transaction manager {}", transactionManager.getClass().getName());
Modified: db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/adapter/AdapterFactory.java
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/adapter/AdapterFactory.java?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/adapter/AdapterFactory.java (original)
+++ db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/adapter/AdapterFactory.java Fri Sep 15 14:14:19 2023
@@ -1,5 +1,7 @@
package org.apache.torque.adapter;
+import java.lang.reflect.InvocationTargetException;
+
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
@@ -165,10 +167,10 @@ public final class AdapterFactory
try
{
- Adapter adapter = adapterClass.newInstance();
+ Adapter adapter = adapterClass.getDeclaredConstructor().newInstance();
return adapter;
}
- catch (IllegalAccessException e)
+ catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e)
{
throw new InstantiationException(
"Could not instantiate adapter for key : "
Modified: db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/JndiDataSourceFactory.java
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/JndiDataSourceFactory.java?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/JndiDataSourceFactory.java (original)
+++ db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/dsfactory/JndiDataSourceFactory.java Fri Sep 15 14:14:19 2023
@@ -211,7 +211,7 @@ extends AbstractDataSourceFactory
log.debug("Datasource class: {}", classname);
Class<?> dsClass = Class.forName(classname);
- dataSource = dsClass.newInstance();
+ dataSource = dsClass.getDeclaredConstructor().newInstance();
}
else
{
Modified: db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/manager/AbstractBaseManager.java
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/manager/AbstractBaseManager.java?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/manager/AbstractBaseManager.java (original)
+++ db/torque/trunk/torque-runtime/src/main/java/org/apache/torque/manager/AbstractBaseManager.java Fri Sep 15 14:14:19 2023
@@ -22,6 +22,7 @@ package org.apache.torque.manager;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;
+import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -132,7 +133,7 @@ implements Serializable
{
try
{
- return omClass.newInstance();
+ return omClass.getDeclaredConstructor().newInstance();
}
catch (InstantiationException e)
{
@@ -141,6 +142,14 @@ implements Serializable
catch (IllegalAccessException e)
{
throw new TorqueException("Could not access " + getClassName(), e);
+ }
+ catch (InvocationTargetException e)
+ {
+ throw new TorqueException("Could not instantiate " + getClassName(), e);
+ }
+ catch (Exception e)
+ {
+ throw new TorqueException("Could not invoke constructor " + getClassName(), e);
}
}
Modified: db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-0-strict.xsd
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-0-strict.xsd?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-0-strict.xsd (original)
+++ db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-0-strict.xsd Fri Sep 15 14:14:19 2023
@@ -27,7 +27,7 @@
targetNamespace="http://db.apache.org/torque/5.0/templates/database"
xmlns="http://db.apache.org/torque/5.0/templates/database"
elementFormDefault="qualified"
- version="5.0">
+ version="5.1">
<xs:annotation>
<xs:documentation xml:lang="en">
Modified: db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-0.xsd
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-0.xsd?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-0.xsd (original)
+++ db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-0.xsd Fri Sep 15 14:14:19 2023
@@ -27,7 +27,7 @@
targetNamespace="http://db.apache.org/torque/5.0/templates/database"
xmlns="http://db.apache.org/torque/5.0/templates/database"
elementFormDefault="qualified"
- version="5.0">
+ version="5.1">
<xs:annotation>
<xs:documentation xml:lang="en">
@@ -42,6 +42,9 @@ The basic structure of a model is built
as the root. This will contain references to options, external (include)
models, new SQL Domain definitions, and tables. See the Torque project
home page for more details.
+
+Added in version 5.1: inheritanceType has new optional attributes package.
+
</xs:documentation>
</xs:annotation>
@@ -592,6 +595,13 @@ The class name for the object that will
</xs:documentation>
</xs:annotation>
</xs:attribute>
+ <xs:attribute name="package" type="javaQualifiedNameType" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ The optional package, if starting with a dot ()".") this is a sub package of table package
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
<xs:attribute name="extends" type="javaQualifiedNameType" use="optional" >
<xs:annotation>
<xs:documentation xml:lang="en">
Modified: db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-1-strict.xsd
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-1-strict.xsd?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-1-strict.xsd (original)
+++ db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-1-strict.xsd Fri Sep 15 14:14:19 2023
@@ -24,10 +24,10 @@
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://db.apache.org/torque/5.0/templates/database"
- xmlns="http://db.apache.org/torque/5.0/templates/database"
+ targetNamespace="http://db.apache.org/torque/5.1/templates/database"
+ xmlns="http://db.apache.org/torque/5.1/templates/database"
elementFormDefault="qualified"
- version="5.1">
+ version="1.0">
<xs:annotation>
<xs:documentation xml:lang="en">
@@ -40,7 +40,7 @@ as compared to the standard database.xsd
</xs:documentation>
</xs:annotation>
- <xs:redefine schemaLocation="http://db.apache.org/torque/torque-5.0/documentation/orm-reference/database-5-0.xsd">
+ <xs:redefine schemaLocation="https://db.apache.org/torque/torque-5.1/documentation/orm-reference/database-5-1.xsd">
<xs:simpleType name="javaNameType">
<xs:annotation>
<xs:documentation xml:lang="en">
Modified: db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-1.xsd
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-1.xsd?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-1.xsd (original)
+++ db/torque/trunk/torque-site/src/site/xdoc/documentation/orm-reference/database-5-1.xsd Fri Sep 15 14:14:19 2023
@@ -24,10 +24,10 @@
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
- targetNamespace="http://db.apache.org/torque/5.0/templates/database"
- xmlns="http://db.apache.org/torque/5.0/templates/database"
+ targetNamespace="http://db.apache.org/torque/5.1/templates/database"
+ xmlns="http://db.apache.org/torque/5.1/templates/database"
elementFormDefault="qualified"
- version="5.1">
+ version="1.0">
<xs:annotation>
<xs:documentation xml:lang="en">
@@ -43,8 +43,6 @@ as the root. This will contain referenc
models, new SQL Domain definitions, and tables. See the Torque project
home page for more details.
-Added in version 5.1: inheritanceType has new optional attributes package.
-
</xs:documentation>
</xs:annotation>
Modified: db/torque/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java (original)
+++ db/torque/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java Fri Sep 15 14:14:19 2023
@@ -26,6 +26,8 @@ import org.apache.torque.templates.typem
/**
* Interface for RDBMS platform specific behaviour.
+ *
+ * Which platform actually is used, is determined here: {@link PlatformFactory#getPlatformFor(String)}.
*
* @author <a href="mailto:mpoeschl@marmot.at">Martin Poeschl</a>
* @version $Id$
Modified: db/torque/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformFactory.java
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformFactory.java?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformFactory.java (original)
+++ db/torque/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformFactory.java Fri Sep 15 14:14:19 2023
@@ -67,7 +67,7 @@ public final class PlatformFactory
{
platformName = getClassnameFor(dbms);
Class<?> platformClass = Class.forName(platformName);
- result = (Platform) platformClass.newInstance();
+ result = (Platform) platformClass.getDeclaredConstructor().newInstance();
}
catch (Throwable t)
{
Modified: db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/mysql/tableCreateOptions.vm
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/mysql/tableCreateOptions.vm?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/mysql/tableCreateOptions.vm (original)
+++ db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/mysql/tableCreateOptions.vm Fri Sep 15 14:14:19 2023
@@ -35,6 +35,7 @@
|| $key == "ENGINE"
|| $key == "DATA DIRECTORY"
|| $key == "DEFAULT CHARACTER SET"
+ || $key == "DEFAULT CHARSET"
|| $key == "DEFAULT COLLATE"
|| $key == "DELAY_KEY_WRITE"
|| $key == "INDEX DIRECTORY"
Added: db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-5-1-strict.xsd
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-5-1-strict.xsd?rev=1912328&view=auto
==============================================================================
--- db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-5-1-strict.xsd (added)
+++ db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-5-1-strict.xsd Fri Sep 15 14:14:19 2023
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!--
+ Torque XML database schema DTD
+ $Id: database-4-0-strict.xsd 1622915 2014-09-06 19:21:17Z tfischer $
+-->
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://db.apache.org/torque/5.1/templates/database"
+ xmlns="http://db.apache.org/torque/5.1/templates/database"
+ elementFormDefault="qualified"
+ version="1.0">
+
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The XML schema used by version 5.0 and greater of the Apache Software
+Foundation Torque project(
+<a href="http://db.apache.org/torque">http://db.apache.org/torque</a> )
+to model SQL database information.
+This model restricts the available characters in java names and sql names
+as compared to the standard database.xsd
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:redefine schemaLocation="https://db.apache.org/torque/torque-5.1/documentation/orm-reference/database-5-1.xsd">
+ <xs:simpleType name="javaNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ Java identifiers, e.g. [A-Za-z_$]A-Za-z_$0-9]*
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="javaNameType">
+ <xs:pattern value="[A-Za-z_$][A-Za-z_$0-9]*" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="javaQualifiedNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ Java fully qualified names (e.g. x.y.x)
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="javaQualifiedNameType">
+ <xs:pattern
+ value="([A-Za-z_$][A-Za-z_$0-9]*[.])*[A-Za-z_$][A-Za-z_$0-9]*" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="sqlNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ SQL Standard non-delimited identifiers.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="sqlNameType">
+ <xs:pattern value="[A-Za-z$#][A-Za-z_$#0-9]*" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="sqlQualifiedNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ SQL Standard non-delimited identifiers.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="sqlQualifiedNameType">
+ <xs:pattern value="[A-Za-z$#][A-Za-z_$#0-9]*(\.[A-Za-z$#][A-Za-z_$#0-9]*)?" />
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:redefine>
+
+</xs:schema>
\ No newline at end of file
Added: db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-5-1.xsd
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-5-1.xsd?rev=1912328&view=auto
==============================================================================
--- db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-5-1.xsd (added)
+++ db/torque/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-5-1.xsd Fri Sep 15 14:14:19 2023
@@ -0,0 +1,1165 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+<!--
+ Torque XML database schema DTD
+ $Id: database-4-0.xsd 1629463 2015-00-05 02:11:26Z tfischer $
+-->
+
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://db.apache.org/torque/5.1/templates/database"
+ xmlns="http://db.apache.org/torque/5.1/templates/database"
+ elementFormDefault="qualified"
+ version="1.0">
+
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The XML schema used by version 5.0 and greater of the Apache Software
+Foundation Torque project(
+<a href="http://db.apache.org/torque">http://db.apache.org/torque</a> )
+to model SQL database information. This model is used by various Torque
+utilities for managing the SQL Server info and to build the Java objects
+to access this data.
+
+The basic structure of a model is built using the database element
+as the root. This will contain references to options, external (include)
+models, new SQL Domain definitions, and tables. See the Torque project
+home page for more details.
+
+ </xs:documentation>
+ </xs:annotation>
+
+<!-- =====================================
+ database element definition
+ ===================================== -->
+ <xs:element name="database" type="databaseType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The root element for defining a Torque database schema.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
+ <xs:complexType name="databaseType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The root type definition for a Torque database schema.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="option" type="optionType" minOccurs="0"
+ maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+A set of key/value options to be passed to custom generator templates.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
+ <xs:element name="include-schema" type="includeSchemaType"
+ minOccurs="0" maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Include another schema file in this schema (as if it were a part of this
+schema file).
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="external-schema" type="externalSchemaType"
+ minOccurs="0" maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Reference another schema file from this schema (outbound connections only).
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="domain" type="domainType" minOccurs="0"
+ maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Domains are used to define common attribute sets for columns.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="table" type="tableType" minOccurs="0"
+ maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Defines a database table.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="view" type="viewType" minOccurs="0"
+ maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Defines a database view.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="name" type="javaNameType" use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en" >
+The name used to identify this schema in the generated
+Java objects and as the default JDBC connection pool to use.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="defaultJavaType" use="optional"
+ type="javaReturnType" default="primitive" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Defines if the record object property getter / setters will
+use objects (e.g. Integer) or primitives (e.g. int), defaults
+to primitive.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="defaultIdMethod" use="optional" type="idMethodType"
+ default="none" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Defines the defaultIdMethod to use with tables which do not have an idMethod
+attribute defined. This attribute has 3 possible values, they are:
+
+- idbroker
+ Torque's software based id broker system
+- native
+ The SQL Server's native autoincrement/identifier process
+- none
+ Don't try to auto assign id numbers
+- null
+ Use the value previously set or the default value.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ option element definition
+ ===================================== -->
+ <xs:complexType name="optionType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+These tags allows a set of key/value options to be passed to custom generator
+templates.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="key" type="xs:string" use="required" />
+ <xs:attribute name="value" type="xs:string" use="required" />
+ </xs:complexType>
+
+<!-- =====================================
+ include-schema element definition
+ ===================================== -->
+ <xs:complexType name="includeSchemaType" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Include another schema file in this schema (as if it were a part of this
+schema file).
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="filename" type="xs:string" use="required" />
+ </xs:complexType>
+
+<!-- =====================================
+ external-schema element definition
+ ===================================== -->
+ <xs:complexType name="externalSchemaType" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Includes another schema file.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="filename" type="xs:string" use="required" />
+ </xs:complexType>
+
+<!-- =====================================
+ domain element definition
+ ===================================== -->
+ <xs:complexType name="domainType" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Domains are used to define attributes for columns.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="name" type="xs:string" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The name used to reference this set of column attributes.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="type" use="optional" type="sqlDataType"
+ default="VARCHAR" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The SQL Standard data type for the column
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="size" type="xs:decimal" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The size of the field. E.g. Varchar(size) or Numeric(Size). Note that
+while this still supports the original torque use of using a
+decimal number (5.2) to indicate the precision
+and scale in one attribute. Use of the scale attribute is preferred.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="scale" type="xs:integer" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The scale of the field. E.g.decimal(size, scale)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="default" type="xs:string" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The default column value
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="description" type="xs:string" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The description of this domain for documentation purposes.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ table element definition
+ ===================================== -->
+ <xs:complexType name="tableType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The table element and its relevant attributes.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="option" type="optionType" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:element name="column" type="columnType" maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The column element and its relevant attributes
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:choice minOccurs="0" maxOccurs="unbounded" >
+ <xs:element name="foreign-key" type="foreignKeyType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Define a foreign key constraint for this table.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="index" type="indexType" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Defines an index for this table.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="unique" type="uniqueType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Define a unique value constraint
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ <xs:element name="id-method-parameter" type="idMethodParameterType">
+ </xs:element>
+ </xs:choice>
+ </xs:sequence>
+ <xs:attribute name="name" type="sqlQualifiedNameType" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The table name of the SQL table.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="interface" type="javaQualifiedNameType"
+ use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The interface attribute specifies an interface that should be referenced in
+the implements section of the generated extension class. If this is a fully
+qualified class name (i. e. the string contains dots), the interface will
+simply be implemented by the extension object. If the interface is a simple
+class name (without dots), an empty interface file will be generated in the
+extension object package. When this attribute is used, all methods that
+normally would return the extension object type will now return the interface
+type. This feature allows to use Torque generated classes in the context of
+other applications or APIs.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="peerInterface" type="javaQualifiedNameType"
+ use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The interface attribute specifies an interface that should be referenced in
+the implements section of the generated peer class. If this is a fully
+qualified class name (i. e. the string contains dots), the interface will
+simply be implemented by the peer object. If the interface is a simple
+class name (without dots), an empty interface file will be generated in the
+peer package. This feature allows to use Torque generated peer classes
+in the context of other applications or APIs.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="baseClass" type="javaQualifiedNameType" use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The fully qualified class that the generated Java table
+record objects will extend. This class does not have to extend
+org.apache.torque.om.BaseObject.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="basePeer" type="javaQualifiedNameType" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The fully qualified class that the generated Java Peer objects will extend.
+Unlike baseClass, basePeer should extend BasePeer at some point in the chain,
+i.e. it needs to be the superclass.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="idMethod" use="optional" type="idMethodType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Defines the id method to automatically generate ids for this table.
+This attribute has 3 possible values, they are:
+
+- idbroker
+ Torque's software based id broker system
+- native
+ The SQL Server's native autoincrement / identifier process
+- none
+ Don't try to auto assign id numbers
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="abstract" use="optional" type="xs:boolean"
+ default="false" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Whether or not to generate the class as Abstract or not
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="javaName" type="javaNameType" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+This is the Java class name to use when generating the table. If
+this is missing the Java name is generated from the name attribute.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="skipSql" use="optional" type="xs:boolean"
+ default="false" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Whether or not to skip SQL generation for this reference. Useful for using
+Views or creating a "subset" of columns in an existing table.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="description" type="xs:string" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+A description of this table. Used for documentation and will be included in
+the table generation SQL if the server type supports this.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ column element definition
+ ===================================== -->
+ <xs:complexType name="columnType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The column element and its relevant attributes
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="option" type="optionType" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:element name="enum-value" type="enumValueType" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:element name="inheritance" type="inheritanceType" minOccurs="0"
+ maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Define an inheritance mapping of records to class by a key column. See the
+inheritance How To document.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
+ </xs:sequence>
+ <xs:attribute name="name" type="sqlNameType" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The column name
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="type" use="optional" type="sqlDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The SQL data type for the column. Is required unless a domain is used.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="size" type="xs:decimal" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The size of the field. E.g. Varchar(size) or Numeric(Size). Note that
+while this still supports the original torque use of using a
+decimal number (5.2) to indicate the precision
+and scale in one attribute. Use of the scale attribute is preferred.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="scale" type="xs:integer" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The scale of the field. E.g.decimal(size, scale)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="default" type="xs:string" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The default column value
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="useDatabaseDefaultValue" type="xs:boolean" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Whether to use the database default value if a new object is saved
+and the attribute value is equal to the java default value. Default is false.
+Has no effect on primitive boolean columns.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="primaryKey" use="optional"
+ type="xs:boolean" default="false" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Whether this column is part of the table's primary key.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="autoIncrement" use="optional"
+ type="xs:boolean" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Whether or not to auto-increment this field (true or false, defaults to false)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="required" use="optional" type="xs:boolean"
+ default="false" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Whether a value is required in this column (NULL ALLOWED) (true or false,
+defaults to false)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="javaName" type="javaNameType"
+ use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The Java property name to use for this column in the record objects.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="javaType" use="optional"
+ type="javaReturnType" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Defines if the record object property getter / setters will
+use objects (e.g. Integer) or primitives (e.g. int), defaults
+to database attribute or primitive
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="domain" type="xs:string" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The domain reference name to set common settings.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="inheritance" type="inheritanceAttrType" use="optional"
+ default="false" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The inheritance method used (see inheritance documentation)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="protected" use="optional"
+ type="xs:boolean" default="false" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+If true, the setters and getters for this property will be protected rather
+than public.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="version" use="optional"
+ type="xs:boolean" default="false" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+If true, this column is used as a version number for optimistic locking.
+I.e. for updates, Torque will check that the version number in the database
+is equal to the version number of the supplied object
+and it will automatically increase the version number of the updated row.
+Setting version to true will only work for numeric columns and will produce
+code that does not compile if applied to other column types.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="enumType" use="optional" type="xs:string">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+If this attribute has a value, the java type for the column is an enum.
+The name of the enum type is contained in this attribute. It can be either
+fully qualified or unqualified.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="description" type="xs:string" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The description of this column for documentation purposes.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ inheritance element definition
+ ===================================== -->
+ <xs:complexType name="inheritanceType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Define an inheritance mapping of records to class by a key column. See the
+inheritance How To document.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="key" type="xs:string" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+A value found in the column marked as the inheritance key column
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="class" type="javaNameType" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The class name for the object that will inherit the record values
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="package" type="javaQualifiedNameType" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ The optional package, if starting with a dot ()".") this is a sub package of table package
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="extends" type="javaQualifiedNameType" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The class that the inheritor class will extend
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ enumValue element definition
+ ===================================== -->
+ <xs:complexType name="enumValueType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Defines a possible value for an enum. If any of these elements occurs
+for a column, Torque will generate an enum for this column.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="value" type="xs:string" use="required">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The value for the enum. Must be unique.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="javaName" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The java name for the enum. Must be unique and must not clash
+with automatically determined javaNames for the same enum.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="description" type="xs:string" use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+A description for the enum value.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ foreign-key element definition
+ ===================================== -->
+ <xs:complexType name="foreignKeyType" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Define a foreign key constraint for this table.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="option" type="optionType" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:element name="reference" type="referenceType" maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Define a mapping between a local column containing a foreign key value and
+the foreign table column.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="name" type="sqlNameType" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The name used to create the foreign key constraint.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="foreignTable" type="sqlQualifiedNameType" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The name of the table that contains the foreign key
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="onDelete" use="optional" type="cascadeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The action to take when the referenced value in foreignTable is deleted.
+Note this is handled by the database server and not Torque code. Will not
+work if the DB server does not support this.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="onUpdate" use="optional" type="cascadeType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The action to take when the referenced value in foreignTable is updated.
+Note this is handled by the database server and not Torque code. Will not
+work if the DB server does not support this.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ reference element definition
+ ===================================== -->
+ <xs:complexType name="referenceType" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Define a mapping between a local column containing a foreign key value and
+the foreign table column.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="foreign" type="sqlNameType" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The column in the foreign table that contains the key.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="local" type="sqlNameType" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The column in this table that contains the foreign key.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ index element definition
+ ===================================== -->
+ <xs:complexType name="indexType" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Defines an index for this table.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="option" type="optionType" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:element name="index-column" type="indexColumnType"
+ maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Define a column to use in a table index.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="name" type="sqlNameType" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The name used in creating this index in the database.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ reference element definition
+ ===================================== -->
+ <xs:complexType name="indexColumnType" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Define a column to use in a table index.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="name" type="sqlNameType" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+A column name to use in this index. Must exist in the table.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ unique element definition
+ ===================================== -->
+ <xs:complexType name="uniqueType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Define a unique value constraint
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="option" type="optionType" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:element name="unique-column" type="uniqueColumnType"
+ maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Specify a column to use in the unique constraint.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="name" type="sqlNameType" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The name to use in defining this constraint.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ unique-column element definition
+ ===================================== -->
+ <xs:complexType name="uniqueColumnType" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Specify a column to use in the unique constraint.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:attribute name="name" type="sqlNameType" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The name to use in defining this constraint.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="size" type="xs:decimal" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The size of the field. E.g. columnname(size). Mainly to customize restrictions in bytes/character restrictions without global changes.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ id-method-parameter element definition
+ ===================================== -->
+ <xs:complexType name="idMethodParameterType">
+ <xs:attribute name="name" type="xs:string" use="optional"
+ default="default" />
+ <xs:attribute name="value" type="xs:string"
+ use="required" />
+ </xs:complexType>
+
+<!-- =====================================
+ view element definition
+ ===================================== -->
+ <xs:complexType name="viewType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The view element and its relevant attributes.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="option" type="optionType" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:element name="column" type="viewColumnType" maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The column element and its relevant attributes
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="name" type="sqlNameType" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The name of the SQL view.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="baseClass" type="javaQualifiedNameType" use="optional">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The fully qualified class that the generated Java view
+record objects will extend. This class does not have to extend
+org.apache.torque.om.BaseObject.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="basePeer" type="javaQualifiedNameType" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The fully qualified class that the generated Java Peer objects will extend.
+Unlike baseClass, basePeer should extend BasePeer at some point in the chain,
+i.e. it needs to be the superclass.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="abstract" use="optional" type="xs:boolean"
+ default="false" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Whether or not to generate the class as Abstract or not
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="javaName" type="javaNameType" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+This is the Java class name to use when generating the view. If
+this is missing the Java name is generated from the name attribute.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="sqlSuffix" type="xs:string" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The remainder of the sql for the view after column definitions.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="createSql" type="xs:string" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The complete SQL for creating the view. Overrides all other means
+of generating the SQL for view creation.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="skipSql" use="optional" type="xs:boolean"
+ default="false" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Whether or not to skip SQL generation for this reference.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="description" type="xs:string" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+A description of this view.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+
+<!-- =====================================
+ view column element definition
+ ===================================== -->
+ <xs:complexType name="viewColumnType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The column element and its relevant attributes
+ </xs:documentation>
+ </xs:annotation>
+ <xs:sequence>
+ <xs:element name="option" type="optionType" minOccurs="0"
+ maxOccurs="unbounded" />
+ <xs:element name="inheritance" type="inheritanceType" minOccurs="0"
+ maxOccurs="unbounded" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Define an inheritance mapping of records to class by a key column. See the
+inheritance How To document.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
+
+ </xs:sequence>
+ <xs:attribute name="name" type="sqlNameType" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The column name
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="type" use="required" type="sqlDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The SQL Standard data type for the column
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="size" type="xs:decimal" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The size of the field. E.g. Varchar(size) or Numeric(Size). Note that
+while this still supports the original torque use of using a
+decimal number (5.2) to indicate the precision
+and scale in one attribute. Use of the scale attribute is preferred.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="scale" type="xs:integer" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The scale of the field. E.g.decimal(size, scale)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="javaName" type="javaNameType"
+ use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The Java property name to use for this column in the record objects.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="javaType" use="optional"
+ type="javaReturnType" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Defines if the record object property getter / setters will
+use objects (e.g. Integer) or primitives (e.g. int), defaults
+to database attribute or primitive
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="domain" type="xs:string" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The domain reference name to set common settings.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="select" type="sqlQualifiedNameType" use="required" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The sql snippet which contains the value to select.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="protected" use="optional"
+ type="xs:boolean" default="false" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+If true, the setters and getters for this property will be protected rather
+than public.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="description" type="xs:string" use="optional" >
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+The description of this column for documentation purposes.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ <xs:attribute name="enumType" use="optional" type="xs:string">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+If this attribute has a value, the java type for the column is an enum.
+The name of the enum type is contained in this attribute. It can be either
+fully qualified or unqualified.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
+ </xs:complexType>
+<!-- =====================================
+ Type definitions for attributes
+ ===================================== -->
+
+ <xs:simpleType name="sqlDataType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Standard SQL column data types.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="BIT" />
+ <xs:enumeration value="TINYINT" />
+ <xs:enumeration value="SMALLINT" />
+ <xs:enumeration value="INTEGER" />
+ <xs:enumeration value="BIGINT" />
+ <xs:enumeration value="FLOAT" />
+ <xs:enumeration value="REAL" />
+ <xs:enumeration value="NUMERIC" />
+ <xs:enumeration value="DECIMAL" />
+ <xs:enumeration value="CHAR" />
+ <xs:enumeration value="VARCHAR" />
+ <xs:enumeration value="LONGVARCHAR" />
+ <xs:enumeration value="DATE" />
+ <xs:enumeration value="TIME" />
+ <xs:enumeration value="TIMESTAMP" />
+ <xs:enumeration value="BINARY" />
+ <xs:enumeration value="VARBINARY" />
+ <xs:enumeration value="LONGVARBINARY" />
+ <xs:enumeration value="NULL" />
+ <xs:enumeration value="OTHER" />
+ <xs:enumeration value="JAVA_OBJECT" />
+ <xs:enumeration value="DISTINCT" />
+ <xs:enumeration value="STRUCT" />
+ <xs:enumeration value="ARRAY" />
+ <xs:enumeration value="BLOB" />
+ <xs:enumeration value="CLOB" />
+ <xs:enumeration value="REF" />
+ <xs:enumeration value="BOOLEANINT" />
+ <xs:enumeration value="BOOLEANCHAR" />
+ <xs:enumeration value="DOUBLE" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="idMethodType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+A schema type for methods to create ids automatically.
+
+idbroker = Torque's software based id broker system
+native = The SQL Server's native method, depends on database used
+ (e.g. autoincrement for MySQL, sequence for postgresql...)
+none = Don't try to auto assign id numbers
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="idbroker" />
+ <xs:enumeration value="native" />
+ <xs:enumeration value="none" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="javaReturnType">
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="object" />
+ <xs:enumeration value="primitive" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="cascadeType" >
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="cascade" />
+ <xs:enumeration value="setnull" />
+ <xs:enumeration value="restrict" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="inheritanceAttrType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="single" />
+ <xs:enumeration value="false" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="javaNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Java identifiers, e.g. [A-Za-z_$]A-Za-z_$0-9]*
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+
+ <xs:simpleType name="javaQualifiedNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+Java fully qualified names (e.g. x.y.x)
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string"/>
+ </xs:simpleType>
+
+ <xs:simpleType name="sqlNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+SQL Standard non-delimited identifiers.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+ <xs:simpleType name="sqlQualifiedNameType">
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+SQL Standard non-delimited identifiers.
+ </xs:documentation>
+ </xs:annotation>
+ <xs:restriction base="xs:string" />
+ </xs:simpleType>
+
+</xs:schema>
\ No newline at end of file
Modified: db/torque/trunk/torque-templates/src/test/java/org/apache/torque/templates/jdbc2schema/Jdbc2SchemaTest.java
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-templates/src/test/java/org/apache/torque/templates/jdbc2schema/Jdbc2SchemaTest.java?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-templates/src/test/java/org/apache/torque/templates/jdbc2schema/Jdbc2SchemaTest.java (original)
+++ db/torque/trunk/torque-templates/src/test/java/org/apache/torque/templates/jdbc2schema/Jdbc2SchemaTest.java Fri Sep 15 14:14:19 2023
@@ -75,7 +75,7 @@ public class Jdbc2SchemaTest /* implemen
@BeforeAll
public static void beforeClass() throws Exception
{
- Class.forName(DRIVER).newInstance();
+ Class.forName(DRIVER).getDeclaredConstructor().newInstance();
}
@BeforeEach
Modified: db/torque/trunk/torque-test/pom.xml
URL: http://svn.apache.org/viewvc/db/torque/trunk/torque-test/pom.xml?rev=1912328&r1=1912327&r2=1912328&view=diff
==============================================================================
--- db/torque/trunk/torque-test/pom.xml (original)
+++ db/torque/trunk/torque-test/pom.xml Fri Sep 15 14:14:19 2023
@@ -164,10 +164,10 @@
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>4.13</version>
<scope>test</scope>
</dependency>
+
</dependencies>
<build>
---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org