2021-04-07 17:40:33 -04:00
|
|
|
import java.util.regex.Pattern
|
|
|
|
|
|
|
|
/* ====================================================================
|
|
|
|
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.
|
|
|
|
==================================================================== */
|
|
|
|
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
id 'java'
|
|
|
|
id 'maven-publish'
|
|
|
|
id 'java-library'
|
|
|
|
}
|
|
|
|
|
|
|
|
final String MODULE_NAME = 'org.apache.poi.ooxml.schemas'
|
|
|
|
final String JAVA9_SRC = 'src/main/java9'
|
|
|
|
final String JAVA9_OUT = "${buildDir}/classes/java9/main/"
|
|
|
|
final String VERSIONS9 = 'META-INF/versions/9'
|
|
|
|
final String BEANS_SRC = "${buildDir}/generated-sources"
|
|
|
|
final String BEANS_RES = "${buildDir}/generated-resources"
|
|
|
|
|
|
|
|
sourceSets {
|
|
|
|
main {
|
|
|
|
// TypeSystemHolder.class is in the resources
|
|
|
|
output.dir(BEANS_RES, builtBy: 'generate_beans')
|
|
|
|
compileClasspath += files(BEANS_RES)
|
|
|
|
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
|
|
|
|
output.dir(JAVA9_OUT, builtBy: 'cacheJava9')
|
|
|
|
}
|
|
|
|
java {
|
|
|
|
srcDirs = [BEANS_SRC]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
api "org.apache.xmlbeans:xmlbeans:${xmlbeansVersion}"
|
|
|
|
// implementation "org.apache.logging.log4j:log4j-api:${log4jVersion}"
|
|
|
|
runtimeOnly "org.apache.logging.log4j:log4j-core:${log4jVersion}"
|
|
|
|
}
|
|
|
|
|
|
|
|
final Pattern MODULE_REGEX = ~'\\.jar$'
|
|
|
|
final List MAIN_MODULE_PATH = sourceSets.main.runtimeClasspath.findAll{ it.path =~ MODULE_REGEX }.collect{ it.parent }.unique()
|
|
|
|
|
|
|
|
compileJava {
|
|
|
|
dependsOn 'generate_beans'
|
|
|
|
sourceCompatibility = 8
|
|
|
|
targetCompatibility = 8
|
|
|
|
}
|
|
|
|
|
|
|
|
task compileJava9(type: JavaCompile) {
|
|
|
|
dependsOn 'compileJava'
|
|
|
|
|
|
|
|
sourceCompatibility = 9
|
|
|
|
targetCompatibility = 9
|
|
|
|
destinationDirectory = file(JAVA9_OUT + VERSIONS9)
|
|
|
|
source = file(JAVA9_SRC)
|
|
|
|
classpath = files()
|
|
|
|
options.compilerArgs = [
|
|
|
|
'--patch-module', "${MODULE_NAME}=${sourceSets.main.output.asPath}",
|
|
|
|
'--module-path', files(MAIN_MODULE_PATH).asPath
|
|
|
|
]
|
|
|
|
}
|
|
|
|
|
|
|
|
task cacheJava9(type: Copy) {
|
|
|
|
dependsOn 'compileJava9'
|
|
|
|
|
|
|
|
from(file(JAVA9_OUT + VERSIONS9))
|
|
|
|
into(JAVA9_SRC)
|
|
|
|
}
|
|
|
|
|
|
|
|
task copy_xsds(type: Copy) {
|
|
|
|
from ('src/main/xmlschema/org/apache/poi/xdgf')
|
|
|
|
from ('src/main/xmlschema/org/apache/poi/schemas') {
|
|
|
|
include 'XAdES*.xsd', '*.xsdconfig', 'xmldsig*.xsd', 'ooxmlSchemas.xsdconfig', 'markup-compatibility.xsd', 'vmlDrawing.xsd'
|
|
|
|
exclude '*.zip'
|
|
|
|
}
|
|
|
|
from ('src/main/xmlschema/org/apache/poi/poifs/crypt') {
|
|
|
|
include 'signatureInfo.xsd'
|
|
|
|
}
|
|
|
|
from (zipTree('src/main/xmlschema/org/apache/poi/schemas/OfficeOpenXML-XMLSchema-Transitional.zip'))
|
|
|
|
from (zipTree('src/main/xmlschema/org/apache/poi/schemas/OpenPackagingConventions-XMLSchema.zip')) {
|
|
|
|
include 'opc-digSig.xsd', 'opc-relationships.xsd'
|
|
|
|
}
|
|
|
|
into 'build/xsds'
|
|
|
|
}
|
|
|
|
|
|
|
|
task generate_beans(dependsOn: copy_xsds) {
|
|
|
|
// incremental feature is not working ...
|
|
|
|
inputs.files fileTree(dir: 'build/xsds', include: '*.xsd')
|
|
|
|
outputs.file 'build/generated-resources/org/apache/poi/schemas/ooxml/system/ooxml/TypeSystemHolder.class'
|
|
|
|
|
|
|
|
doLast {
|
|
|
|
ant.uptodate(
|
|
|
|
property: 'xmlbeans_uptodate',
|
|
|
|
targetfile: 'build/generated-resources/org/apache/poi/schemas/ooxml/system/ooxml/TypeSystemHolder.class'
|
|
|
|
) {
|
|
|
|
srcFiles(dir: 'build/xsds', includes: '*.xsd')
|
|
|
|
}
|
|
|
|
|
|
|
|
ant.taskdef(
|
|
|
|
name: 'xmlbean',
|
|
|
|
classname: 'org.apache.xmlbeans.impl.tool.XMLBean',
|
|
|
|
classpath: sourceSets.main.runtimeClasspath.asPath
|
|
|
|
)
|
|
|
|
|
|
|
|
if (!ant.properties.xmlbeans_uptodate) {
|
|
|
|
ant.xmlbean(
|
|
|
|
schema: 'build/xsds',
|
|
|
|
srcgendir: 'build/generated-sources',
|
|
|
|
classgendir: 'build/generated-resources',
|
|
|
|
destfile: 'build/xsds.jar',
|
|
|
|
srconly: true,
|
|
|
|
failonerror: true,
|
|
|
|
fork: true,
|
|
|
|
memoryMaximumSize: '1536m',
|
|
|
|
typesystemname: 'ooxml',
|
|
|
|
repackage: 'org.apache.xmlbeans.metadata:org.apache.poi.schemas.ooxml'
|
|
|
|
) {
|
|
|
|
classpath = sourceSets.main.runtimeClasspath.asPath
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.withType(Jar) {
|
|
|
|
destinationDirectory = file("../build/dist/maven/${project.archivesBaseName}")
|
|
|
|
}
|
|
|
|
|
2021-04-14 18:53:33 -04:00
|
|
|
javadoc {
|
|
|
|
failOnError = true
|
|
|
|
maxMemory = "1024M"
|
|
|
|
doFirst {
|
|
|
|
options {
|
|
|
|
if (JavaVersion.current().isJava9Compatible()) {
|
|
|
|
addBooleanOption('html5', true)
|
|
|
|
}
|
|
|
|
links 'https://xmlbeans.apache.org/docs/5.0.0/'
|
|
|
|
use = true
|
|
|
|
splitIndex = true
|
|
|
|
source = "1.8"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-04-07 17:40:33 -04:00
|
|
|
task sourceJar(type: Jar) {
|
|
|
|
classifier 'sources'
|
|
|
|
from sourceSets.main.allJava
|
|
|
|
}
|
|
|
|
|
|
|
|
jar {
|
|
|
|
dependsOn 'sourceJar'
|
|
|
|
|
|
|
|
if (JavaVersion.current() == JavaVersion.VERSION_1_8) {
|
|
|
|
into('META-INF/versions/9') {
|
|
|
|
from JAVA9_SRC include '*.class'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
manifest {
|
|
|
|
attributes ('Automatic-Module-Name': MODULE_NAME, 'Multi-Release': 'true')
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
publishing {
|
|
|
|
publications {
|
|
|
|
POI(MavenPublication) {
|
|
|
|
artifactId "${project.archivesBaseName}"
|
|
|
|
|
|
|
|
from components.java
|
|
|
|
artifact tasks.sourceJar
|
|
|
|
|
|
|
|
pom {
|
|
|
|
name = 'Apache POI - OOXML schemas (full)'
|
|
|
|
description =
|
|
|
|
'XmlBeans generated from the Ecma supplied xsds (since POI 5.0.0, the 5th edition is used):\n' +
|
|
|
|
' https://www.ecma-international.org/publications/standards/Ecma-376.htm'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
generatePomFileForPOIPublication.destination = "../build/dist/maven/${project.archivesBaseName}/${project.archivesBaseName}-${project.version}.pom"
|