Skip to content

Commit

Permalink
Merge pull request #235 from ndw/cr2
Browse files Browse the repository at this point in the history
DocBook 5.2CR2
  • Loading branch information
ndw committed Jul 22, 2022
2 parents caf8f47 + 6233bd4 commit 11395ac
Show file tree
Hide file tree
Showing 8 changed files with 664 additions and 46 deletions.
4 changes: 2 additions & 2 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:

testbuild:
machine:
image: ubuntu-1604:202004-01
image: ubuntu-2004:202111-02

working_directory: ~/repo

Expand Down Expand Up @@ -47,7 +47,7 @@ jobs:

deploybuild:
machine:
image: ubuntu-1604:202004-01
image: ubuntu-2004:202111-02

working_directory: ~/repo

Expand Down
148 changes: 114 additions & 34 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,17 +1,37 @@
buildscript {
repositories {
mavenLocal()
mavenCentral()
maven { url "https://dev.saxonica.com/maven" }
}

configurations.all {
resolutionStrategy {
force 'xml-apis:xml-apis:1.4.01',
"net.sf.saxon:Saxon-HE:${saxonVersion}",
"org.xmlresolver:xmlresolver:${resolverVersion}",
'com.nwalsh:sinclude:4.1.0'
}
}

dependencies {
classpath group: "net.sf.saxon", name: "Saxon-HE", version: saxonVersion
classpath group: 'org.docbook', name: 'docbook-xslTNG', version: xslTNGversion
}
}

plugins {
id "java"
id "maven-publish"
id "signing"
//id 'com.github.eerohele.saxon-gradle' version '0.9.0-beta1'
id 'com.nwalsh.saxon-gradle' version '0.9.1-beta4'
id 'com.nwalsh.gradle.relaxng.validate' version '0.0.5'
id 'com.nwalsh.gradle.relaxng.translate' version '0.0.5'
id 'com.nwalsh.gradle.saxon.saxon-gradle' version '0.9.3'
id 'com.nwalsh.gradle.relaxng.validate' version '0.0.8'
id 'com.nwalsh.gradle.relaxng.translate' version '0.0.8'
}

import static groovy.io.FileType.FILES
import static groovy.io.FileType.DIRECTORIES
//import com.github.eerohele.SaxonXsltTask
import com.nwalsh.SaxonXsltTask
import com.nwalsh.gradle.saxon.SaxonXsltTask
import com.nwalsh.gradle.relaxng.validate.RelaxNGValidateTask
import com.nwalsh.gradle.relaxng.translate.RelaxNGTranslateTask
import com.nwalsh.gradle.relaxng.util.CollectingErrorHandler
Expand All @@ -30,7 +50,8 @@ configurations.all {
}

configurations {
validateRuntime.extendsFrom(implementation)
validateRuntime.extendsFrom implementation
transform.extendsFrom documentation
}

dependencies {
Expand All @@ -40,6 +61,9 @@ dependencies {
[group: 'org.relaxng', name: 'trang', version: "20181222" ],
[group: 'org.xmlresolver', name: 'xmlresolver', version: resolverVersion]
)
documentation (
[group: 'org.docbook', name: 'docbook-xslTNG', version: xslTNGversion]
)
}

sourceSets {
Expand All @@ -53,13 +77,12 @@ sourceSets {
}
}

relaxng_translate.configure {
classpath configurations.validateRuntime
saxon.configure {
classpath configurations.transform
initializer 'org.docbook.xsltng.extensions.Register'
}

relaxng_validate.configure {
classpath configurations.validateRuntime
}
println("Building with Java version ${System.getProperty('java.version')}")

def nextReleaseVer = dbver
if (nextReleaseVer.indexOf("a") > 0) {
Expand Down Expand Up @@ -130,13 +153,13 @@ def packageMap = [:]
// There's no 'defguide' directory anymore because we can manufacture
// it entirely in the build. But we still need some of the tasks
// created in this loop, so fake it.
def schemaDirectories = ["src/defguide/relaxng/defguide"]
new File("src").traverse([maxDepth: 2, type: DIRECTORIES]) { schema ->
def schemaDirectories = ["${projectDir}/src/defguide/relaxng/defguide"]
new File("${projectDir}/src").traverse([maxDepth: 2, type: DIRECTORIES]) { schema ->
def dirname = schema.toString()
if (!dirname.startsWith("src/test/")) {
if (!dirname.startsWith("${projectDir}/src/test/")) {
def pos = dirname.indexOf("${File.separator}relaxng${File.separator}")
if (pos >= 0) {
packageMap[schema.getName()] = dirname.substring(4, pos)
packageMap[schema.getName()] = dirname.substring("${projectDir}".length()+5, pos)
schemaDirectories.add(dirname)
}
}
Expand All @@ -157,52 +180,52 @@ schemaDirectories.each { dirname ->

t = task "${basename}_rng_include"(type: SaxonXsltTask,
dependsOn: ["${basename}_rng_src"]) {
inputs.file("tools/include.xsl")
inputs.file("${projectDir}/tools/include.xsl")
input "${buildDir}/${basename}/${basename}.rng"
output "${buildDir}/tmp/${basename}_rng_include.xml"
stylesheet "tools/include.xsl"
stylesheet "${projectDir}/tools/include.xsl"
}

t = task "${basename}_rng_augment"(type: SaxonXsltTask,
dependsOn: [ "${basename}_rng_include" ]) {
inputs.file("tools/augment.xsl")
inputs.file("${projectDir}/tools/augment.xsl")
input "${buildDir}/tmp/${basename}_rng_include.xml"
output "${buildDir}/tmp/${basename}_rng_augment.xml"
stylesheet "tools/augment.xsl"
stylesheet "${projectDir}/tools/augment.xsl"
}

t = task "${basename}_rng_cleanup"(type: SaxonXsltTask,
dependsOn: [ "${basename}_rng_augment" ]) {
inputs.file("tools/cleanup.xsl")
inputs.file("${projectDir}/tools/cleanup.xsl")
input "${buildDir}/tmp/${basename}_rng_augment.xml"
output "${buildDir}/tmp/${basename}_rng_cleanup.xml"
stylesheet "tools/cleanup.xsl"
stylesheet "${projectDir}/tools/cleanup.xsl"
}

t = task "${basename}_rng_nodoc"(type: SaxonXsltTask,
dependsOn: [ "${basename}_rng_cleanup" ]) {
inputs.file("tools/removedoc.xsl")
inputs.file("${projectDir}/tools/removedoc.xsl")
input "${buildDir}/tmp/${basename}_rng_cleanup.xml"
output "${buildDir}/tmp/${basename}_rng_nodoc.xml"
stylesheet "tools/removedoc.xsl"
stylesheet "${projectDir}/tools/removedoc.xsl"
parameters (
"remove-schematron": "0"
)
}

t = task "${basename}_sch"(type: SaxonXsltTask,
dependsOn: [ "${basename}_rng_cleanup" ]) {
inputs.file("tools/schematron.xsl")
inputs.file("${projectDir}/tools/schematron.xsl")
input "${buildDir}/tmp/${basename}_rng_cleanup.xml"
output "${buildDir}/schemas/sch/${packageMap[basename]}/${basename}.sch"
stylesheet "tools/schematron.xsl"
stylesheet "${projectDir}/tools/schematron.xsl"
}

t = task "${basename}_compiled"(type: SaxonXsltTask,
dependsOn: ["${basename}_rng_nodoc"]) {
doFirst {
copy {
from "src/${packageMap[basename]}/relaxng/${basename}"
from "${projectDir}/src/${packageMap[basename]}/relaxng/${basename}"
include "copyright.xml"
into "${buildDir}/${basename}"
filter { String line ->
Expand All @@ -217,7 +240,7 @@ schemaDirectories.each { dirname ->

input "${buildDir}/tmp/${basename}_rng_nodoc.xml"
output "${buildDir}/tmp/${basename}_compiled.rng"
stylesheet "tools/attach-copyright.xsl"
stylesheet "${projectDir}/tools/attach-copyright.xsl"
parameters (
"copyright": "${buildDir}/${basename}/copyright.xml"
)
Expand All @@ -243,19 +266,72 @@ schemaDirectories.each { dirname ->
dependsOn: ["${basename}_rng_cleanup"]) {
input "${buildDir}/tmp/${basename}_rng_cleanup.xml"
output "${buildDir}/tmp/${basename}.rnd"
stylesheet "tools/rngdocxml.xsl"
stylesheet "${projectDir}/tools/rngdocxml.xsl"
parameters (
"buildhash": gitRef()
)
}
make_rnd.dependsOn t

if (file("${projectDir}/src/${basename}/xml/release-notes.xml").exists()) {
Task r = task "copy_${basename}_resources"() {
outputs.files
fileTree(dir: "${buildDir}/stage/${basename}-${dbver}/release-notes")
def dbjar = null
configurations.transform.each { path ->
if (path.toString().contains("docbook-xslTNG")) {
dbjar = path
}
}

doLast {
if (dbjar == null) {
throw new GradleException("Failed to locate DocBook xslTNG jar file")
}
copy {
into "${buildDir}/stage/${basename}-${dbver}/release-notes"
from ({ zipTree(dbjar.toString()) }) {
include "org/docbook/xsltng/resources/**"
}
eachFile { fileCopyDetails ->
def originalPath = fileCopyDetails.path
fileCopyDetails.path
= originalPath.replace('org/docbook/xsltng/resources/', '')
}
}
}

doLast {
copy {
into "${buildDir}/stage/${basename}-${dbver}/release-notes"
from "${projectDir}/src/${basename}/xml"
include "release-notes.xml"
}
}

doLast {
delete "${buildDir}/stage/${basename}-${dbver}/release-notes/org"
}
}

t = task "${basename}_release_notes"(
type: SaxonXsltTask
) {
input "${projectDir}/src/${basename}/xml/release-notes.xml"
output "${buildDir}/stage/${basename}-${dbver}/release-notes/index.html"
stylesheet "${projectDir}/tools/docbook.xsl"
parameters (
)
}
t.dependsOn r
}
}

task any_docbook_rng(type: SaxonXsltTask,
dependsOn: [ "docbook_compiled" ]) {
input "${buildDir}/tmp/docbook_compiled.rng"
output "${buildDir}/docbook/any.docbook.rng"
stylesheet "tools/all-patterns.xsl"
stylesheet "${projectDir}/tools/all-patterns.xsl"
}

task defguide_rng_src(dependsOn: ["any_docbook_rng", "assembly_rng", "docbook_rng"]) {
Expand Down Expand Up @@ -286,7 +362,7 @@ task defguide_rng_src(dependsOn: ["any_docbook_rng", "assembly_rng", "docbook_rn
// Create tasks to run all of the tests
def baseTests = [:]
def failResults = [:]
fileTree(dir: "src/test").each { testfile ->
fileTree(dir: "${projectDir}/src/test").each { testfile ->
def pos = projectDir.toString().length() + "/src/test/".length()
def fn = testfile.toString().substring(pos)
if (fn.endsWith(".xml")) {
Expand Down Expand Up @@ -450,20 +526,24 @@ distributions.each { dist, obj ->
catalogParameters['prefix'] = 'publishers'
}

input "tools/catalog.xsl"
input "${projectDir}/tools/catalog.xsl"
output "${path}/catalog.xml"
stylesheet "tools/catalog.xsl"
stylesheet "${projectDir}/tools/catalog.xsl"
parameters catalogParameters
}

task "${dist}_zip"(type: Zip, dependsOn: ["${dist}_catalog"]) {
Task zip = task "${dist}_zip"(type: Zip, dependsOn: ["${dist}_catalog"]) {
from("${buildDir}/stage/${dist}-${dbver}")
into "${dist}-${dbver}"
archiveFileName = "${dist}-${dbver}.zip"
doFirst {
mkdir "${buildDir}/distributions"
}
}

if (tasks.findByName("${dist}_release_notes") != null) {
zip.dependsOn tasks.findByName("${dist}_release_notes")
}
}

// ============================================================
Expand Down
7 changes: 4 additions & 3 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,10 @@ org.gradle.workers.max=3

systemProp.javax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl

saxonVersion = 10.8
resolverVersion = 4.2.0
dbver = 5.2CR1
saxonVersion = 11.3
resolverVersion = 4.4.3
dbver = 5.2CR2
xslTNGversion = 1.7.1

oasisDocBookVersion=5.2
oasisDocBookRelease=wd01
Expand Down
2 changes: 1 addition & 1 deletion src/docbook/java/org/docbook/schemas/docbook/DocBook.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
// some tests to make sure the testing version is correct.

public final class DocBook {
public static final String[] VERSIONS = {"4.5", "5.0", "5.1", "5.2", "5.2CR1"};
public static final String[] VERSIONS = {"4.5", "5.0", "5.1", "5.2", "5.2CR2"};

public static final String DOCBOOK_CATALOG_PATH = "/org/docbook/schemas/docbook/catalog.xml";

Expand Down
15 changes: 10 additions & 5 deletions src/docbook/relaxng/docbook/programming.rnc
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,8 @@ div {
element ooclass {
db.ooclass.attlist,
(db.package|db.modifier)*,
db.classname
db.classname,
db.modifier*
}
}

Expand All @@ -475,7 +476,8 @@ div {
element oointerface {
db.oointerface.attlist,
(db.package|db.modifier)*,
db.interfacename
db.interfacename,
db.modifier*
}
}

Expand All @@ -498,7 +500,8 @@ div {
element ooexception {
db.ooexception.attlist,
(db.package|db.modifier)*,
db.exceptionname
db.exceptionname,
db.modifier*
}
}

Expand Down Expand Up @@ -620,6 +623,7 @@ div {
db.modifier*,
(db.type | db.templatename)*,
db.varname,
db.modifier*,
db.initializer?,
db.synopsisinfo*
}
Expand Down Expand Up @@ -681,6 +685,7 @@ div {
db.modifier*,
db.methodname?,
((db.methodparam|db.group.methodparam)+ | db.void?),
db.modifier*,
db.exceptionname*,
db.synopsisinfo*
}
Expand Down Expand Up @@ -718,6 +723,7 @@ div {
db.modifier*,
db.methodname?,
((db.methodparam|db.group.methodparam)+ | db.void?),
db.modifier*,
db.exceptionname*,
db.synopsisinfo*
}
Expand Down Expand Up @@ -1428,11 +1434,10 @@ div {
db.enumsynopsis.info,
db.synopsisinfo*,
(db.package | db.modifier)*,
db.enumname?,
(db.enumname, db.modifier*)?,
db.enumitem+,
db.synopsisinfo*
}

}

# ======================================================================
Expand Down
Loading

0 comments on commit 11395ac

Please sign in to comment.