XmlSec/BouncyCastle and Batik are now optional

disable SonarQube build based on ant
remove sonar and maven directory, because POMs are now created via Gradle
remove maven section from seed-build

fix duplicated maven dependencies on POM export

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1893289 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Andreas Beeker 2021-09-12 20:31:43 +00:00
parent 99047b5245
commit 596db31170
34 changed files with 187 additions and 1867 deletions

View File

@ -15,6 +15,13 @@
limitations under the License.
==================================================================== */
import org.w3c.dom.Node
import org.w3c.dom.NodeList
import javax.xml.xpath.XPath
import javax.xml.xpath.XPathConstants
import javax.xml.xpath.XPathFactory
buildscript {
repositories {
maven { url 'https://plugins.gradle.org/m2/' }
@ -124,6 +131,15 @@ subprojects {
NO_SCRATCHPAD = (findProperty("scratchpad.ignore") == "true")
}
configurations {
all {
resolutionStrategy {
force "commons-io:commons-io:${commonsIoVersion}"
force 'org.slf4j:slf4j-api:1.8.0-beta4'
}
}
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
options.compilerArgs << '-Xlint:unchecked'
@ -191,8 +207,23 @@ subprojects {
}
jar {
from("../legal") {
include "NOTICE"
include "LICENSE"
}
rename('^(NOTICE|LICENSE)', 'META-INF/$1')
manifest {
attributes 'Implementation-Title': 'Apache POI', 'Implementation-Version': project.version
attributes(
'Specification-Title': 'Apache POI',
'Specification-Version': project.version,
'Specification-Vendor': 'The Apache Software Foundation',
'Implementation-Title': 'Apache POI',
'Implementation-Version': project.version,
'Implementation-Vendor': 'org.apache.poi',
'Implementation-Vendor-Id': 'The Apache Software Foundation'
)
}
}
@ -384,6 +415,20 @@ subprojects {
// adding ASF header before root node is ignored
// doc.insertBefore(asl, doc.getDocumentElement())
r.insertBefore(asl, r.getFirstChild())
// Replace ooxml-full with ooxml-lite
XPath xpath = XPathFactory.newInstance().newXPath()
NodeList res = (NodeList)xpath.evaluate("//dependency/artifactId[text() = 'poi-ooxml-full']", doc, XPathConstants.NODESET)
for (int i=res.getLength()-1; i>=0; i--) {
res.item(i).setTextContent('poi-ooxml-lite')
}
// remove duplicate entries
res = (NodeList)xpath.evaluate("//dependency[artifactId = ./preceding-sibling::dependency/artifactId]", doc, XPathConstants.NODESET)
for (int i=res.getLength()-1; i>=0; i--) {
Node n = res.item(i)
n.getParentNode().removeChild(n)
}
}
}
}
@ -392,9 +437,14 @@ subprojects {
generatePomFileForPOIPublication.destination = "../build/dist/maven/${project.archivesBaseName}/${project.archivesBaseName}-${project.version}.pom"
tasks.withType(GenerateModuleMetadata) {
enabled = false
}
signing {
sign publishing.publications.POI
}
signPOIPublication.dependsOn('generatePomFileForPOIPublication')
spotbugs {
ignoreFailures = true
@ -402,9 +452,9 @@ subprojects {
}
build {
// disabled until next release build - only works when you've configured the signing key in your
// user gradle.properties file
// dependsOn 'signPOIPublication'
if (project.hasProperty('signing.keyId')) {
dependsOn 'signPOIPublication'
}
}
}
@ -525,8 +575,8 @@ task replaceVersion() {
var version = subprojects[0].version
var tokens = [
[ 'sonar', '**/pom.xml', '(packaging>\\n\\s*<version>)[0-9.]+(?:-SNAPSHOT)?', "\\1${version}" ],
[ 'sonar', '**/pom.xml', '(poi-parent&lt;/artifactId>\\n\\s*<version>)[0-9.]+(?:-SNAPSHOT)?', "\1${version}" ],
// [ 'sonar', '**/pom.xml', '(packaging>\\n\\s*<version>)[0-9.]+(?:-SNAPSHOT)?', "\\1${version}" ],
// [ 'sonar', '**/pom.xml', '(poi-parent&lt;/artifactId>\\n\\s*<version>)[0-9.]+(?:-SNAPSHOT)?', "\1${version}" ],
[ 'osgi', 'pom.xml', '(packaging>\\n\\s*<version>)[0-9.]+(?:-SNAPSHOT)?', "\\1${version}" ]
// [ '.', 'build.gradle', ' version = \'[0-9.]+(?:-SNAPSHOT)?\'', " version = '${version}'" ]
]
@ -582,7 +632,7 @@ distributions {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
eachFile {
var root = "poi-bin-${version}/"
String root = "poi-bin-${version}/"
if (name.startsWith('poi')) {
path = root + name
} else if (poiDep.contains(file)) {

View File

@ -65,11 +65,11 @@ def poijobs = [
],
[ name: 'POI-DSL-no-scratchpad', trigger: triggerSundays, noScratchpad: true, gradle: true
],
[ name: 'POI-DSL-SonarQube', jdk: '1.11', trigger: 'H 7 * * *', maven: true, sonar: true, skipcigame: true,
email: 'kiwiwings@apache.org',
// replaced by Gradle-based build now
disabled: true
],
// [ name: 'POI-DSL-SonarQube', jdk: '1.11', trigger: 'H 7 * * *', maven: true, sonar: true, skipcigame: true,
// email: 'kiwiwings@apache.org',
// // replaced by Gradle-based build now
// disabled: true
// ],
[ name: 'POI-DSL-SonarQube-Gradle', jdk: '1.11', trigger: 'H 7 * * *', gradle: true, sonar: true, skipcigame: true
],
[ name: 'POI-DSL-Windows-1.8', trigger: 'H */12 * * *', windows: true, slaves: 'Windows', gradle: true
@ -339,46 +339,7 @@ poijobs.each { poijob ->
def shellcmds = (poijob.windows ? shellCmdsWin : shellCmdsUnix).replace('POIJOBSHELL', poijob.shell ?: '')
// Create steps and publishers depending on the type of Job that is selected
if(poijob.maven) {
steps {
shellEx(delegate, shellcmds, poijob)
maven {
goals('clean')
rootPOM('sonar/pom.xml')
localRepository(LocalRepositoryLocation.LOCAL_TO_WORKSPACE)
mavenInstallation(defaultMaven)
}
maven {
if (poijob.sonar) {
goals('clean package sonar:sonar')
property('sonar.login', '${POI_SONAR_TOKEN}')
} else {
goals('package')
}
rootPOM('sonar/pom.xml')
mavenOpts('-Xmx2g')
mavenOpts('-Xms256m')
mavenOpts('-XX:-OmitStackTraceInFastThrow')
localRepository(LocalRepositoryLocation.LOCAL_TO_WORKSPACE)
mavenInstallation(defaultMaven)
}
}
publishers {
if (!poijob.skipcigame) {
configure { project ->
project / publishers << 'hudson.plugins.cigame.GamePublisher' {}
}
}
if (!poijob.sonar) {
archiveJunit('sonar/*/target/surefire-reports/TEST-*.xml') {
testDataPublishers {
publishTestStabilityData()
}
}
}
mailer(email, false, false)
}
} else if (poijob.javadoc) {
if (poijob.javadoc) {
steps {
shellEx(delegate, shellcmds, poijob)
ant {

View File

@ -1,78 +0,0 @@
<?xml version="1.0"?>
<!--
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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-examples</artifactId>
<version>@VERSION@</version>
<packaging>jar</packaging>
<name>Apache POI</name>
<url>https://poi.apache.org/</url>
<description>Apache POI Examples</description>
<mailingLists>
<mailingList>
<name>POI Users List</name>
<subscribe>user-subscribe@poi.apache.org</subscribe>
<unsubscribe>user-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-user/</archive>
</mailingList>
<mailingList>
<name>POI Developer List</name>
<subscribe>dev-subscribe@poi.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-dev/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org/</url>
</organization>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>@VERSION@</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>@VERSION@</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>@VERSION@</version>
</dependency>
</dependencies>
</project>

View File

@ -1,78 +0,0 @@
<?xml version="1.0"?>
<!--
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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-excelant</artifactId>
<version>@VERSION@</version>
<packaging>jar</packaging>
<name>Apache POI</name>
<url>https://poi.apache.org/</url>
<description>Apache POI Excel Ant Tasks</description>
<mailingLists>
<mailingList>
<name>POI Users List</name>
<subscribe>user-subscribe@poi.apache.org</subscribe>
<unsubscribe>user-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-user/</archive>
</mailingList>
<mailingList>
<name>POI Developer List</name>
<subscribe>dev-subscribe@poi.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-dev/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org/</url>
</organization>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>@VERSION@</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>@VERSION@</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.10.9</version>
</dependency>
</dependencies>
</project>

View File

@ -1,70 +0,0 @@
<?xml version="1.0"?>
<!--
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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-full</artifactId>
<version>@VERSION@</version>
<packaging>jar</packaging>
<name>Apache POI - OOXML schemas (full)</name>
<description>XmlBeans generated from the Ecma supplied xsds (since POI 5.0.0, the 5th edition is used):
https://www.ecma-international.org/publications/standards/Ecma-376.htm</description>
<url>https://poi.apache.org/</url>
<mailingLists>
<mailingList>
<name>POI Users List</name>
<subscribe>user-subscribe@poi.apache.org</subscribe>
<unsubscribe>user-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-user/</archive>
</mailingList>
<mailingList>
<name>POI Developer List</name>
<subscribe>dev-subscribe@poi.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-dev/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org/</url>
</organization>
<dependencies>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>5.0.1</version>
</dependency>
</dependencies>
</project>

View File

@ -1,76 +0,0 @@
<?xml version="1.0"?>
<!--
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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-lite</artifactId>
<version>@VERSION@</version>
<packaging>jar</packaging>
<name>Apache POI - OOXML Schemas (lite)</name>
<url>https://poi.apache.org/</url>
<description>Apache POI - Java API To Access Microsoft Format Files</description>
<repositories>
<repository>
<id>apache-releases-repo</id>
<name>apache releases repo</name>
<url>https://repository.apache.org/content/repositories/releases</url>
</repository>
</repositories>
<mailingLists>
<mailingList>
<name>POI Users List</name>
<subscribe>user-subscribe@poi.apache.org</subscribe>
<unsubscribe>user-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-user/</archive>
</mailingList>
<mailingList>
<name>POI Developer List</name>
<subscribe>dev-subscribe@poi.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-dev/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org/</url>
</organization>
<dependencies>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>5.0.1</version>
</dependency>
</dependencies>
</project>

View File

@ -1,137 +0,0 @@
<?xml version="1.0"?><!--
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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>@VERSION@</version>
<packaging>jar</packaging>
<name>Apache POI - API based on OPC and OOXML schemas</name>
<url>https://poi.apache.org/</url>
<description>Apache POI - Java API To Access Microsoft Format Files</description>
<mailingLists>
<mailingList>
<name>POI Users List</name>
<subscribe>user-subscribe@poi.apache.org</subscribe>
<unsubscribe>user-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-user/</archive>
</mailingList>
<mailingList>
<name>POI Developer List</name>
<subscribe>dev-subscribe@poi.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-dev/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org/</url>
</organization>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>@VERSION@</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-lite</artifactId>
<version>@VERSION@</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.21</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.github.virtuald</groupId>
<artifactId>curvesapi</artifactId>
<version>1.06</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcutil-jdk15on</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>org.apache.santuario</groupId>
<artifactId>xmlsec</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-svggen</artifactId>
<version>1.14</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-bridge</artifactId>
<version>1.14</version>
<exclusions>
<exclusion>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-script</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-codec</artifactId>
<version>1.14</version>
</dependency>
<dependency>
<groupId>de.rototor.pdfbox</groupId>
<artifactId>graphics2d</artifactId>
<version>0.31</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
</project>

View File

@ -1,68 +0,0 @@
<?xml version="1.0"?>
<!--
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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>@VERSION@</version>
<packaging>jar</packaging>
<name>Apache POI</name>
<url>https://poi.apache.org/</url>
<description>Apache POI - Java API To Access Microsoft Format Files</description>
<mailingLists>
<mailingList>
<name>POI Users List</name>
<subscribe>user-subscribe@poi.apache.org</subscribe>
<unsubscribe>user-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-user/</archive>
</mailingList>
<mailingList>
<name>POI Developer List</name>
<subscribe>dev-subscribe@poi.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-dev/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org/</url>
</organization>
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>@VERSION@</version>
</dependency>
</dependencies>
</project>

View File

@ -1,91 +0,0 @@
<?xml version="1.0"?><!--
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.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>@VERSION@</version>
<packaging>jar</packaging>
<name>Apache POI</name>
<url>https://poi.apache.org/</url>
<description>Apache POI - Java API To Access Microsoft Format Files</description>
<mailingLists>
<mailingList>
<name>POI Users List</name>
<subscribe>user-subscribe@poi.apache.org</subscribe>
<unsubscribe>user-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-user/</archive>
</mailingList>
<mailingList>
<name>POI Developer List</name>
<subscribe>dev-subscribe@poi.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-dev/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org/</url>
</organization>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>SparseBitSet</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
</project>

View File

@ -46,7 +46,7 @@ dependencies {
exclude group: 'org.apache.poi', module: 'poi-scratchpad'
}
testImplementation 'com.google.guava:guava:30.1.1-jre'
testImplementation "org.apache.logging.log4j:log4j-slf4j-impl:${log4jVersion}"
testImplementation "org.apache.logging.log4j:log4j-slf4j18-impl:${log4jVersion}"
}
final String MODULE_NAME = 'org.apache.poi.excelant'

View File

@ -24,6 +24,7 @@ final boolean IBMVM = System.getProperty("java.vendor").contains("IBM")
configurations {
tests
misc
}
sourceSets {
@ -44,7 +45,10 @@ dependencies {
testImplementation 'org.apache.commons:commons-collections4:4.4'
testImplementation 'com.google.guava:guava:30.1.1-jre'
testImplementation(project(':poi-ooxml')) {
misc(project(':poi-ooxml')) {
capabilities {
requireCapability("${project.group}:poi-ooxml-rendersign")
}
if (NO_SCRATCHPAD) {
exclude group: 'org.apache.poi', module: 'poi-scratchpad'
}
@ -73,14 +77,14 @@ dependencies {
}
}
testImplementation project(path: ':poi-ooxml-lite-agent', configuration: 'archives')
testImplementation "org.apache.logging.log4j:log4j-slf4j-impl:${log4jVersion}"
testImplementation "org.apache.logging.log4j:log4j-slf4j18-impl:${log4jVersion}"
}
final String MODULE_NAME = 'org.apache.poi.stress'
final Pattern MODULE_NOT_REGEX = ~'((poi|poi-scratchpad|poi-ooxml)[/\\\\][^/\\\\]+$|batik-script)'
final Pattern MODULE_REGEX = ~'\\.jar$'
final List MODULE_COMPILE_PATH = sourceSets.test.compileClasspath.findAll{ it.path =~ MODULE_REGEX && !(it.path =~ MODULE_NOT_REGEX) }.collect{ it.parent }.unique()
final List MODULE_RUNTIME_PATH = sourceSets.test.runtimeClasspath.findAll{ it.path =~ MODULE_REGEX && !(it.path =~ MODULE_NOT_REGEX) }.collect{ it.parent }.unique()
final List MODULE_COMPILE_PATH = (sourceSets.test.compileClasspath + configurations.misc.files).findAll{ it.path =~ MODULE_REGEX && !(it.path =~ MODULE_NOT_REGEX) }.collect{ it.parent }.unique()
final List MODULE_RUNTIME_PATH = (sourceSets.test.runtimeClasspath + configurations.misc.files).findAll{ it.path =~ MODULE_REGEX && !(it.path =~ MODULE_NOT_REGEX) }.collect{ it.parent }.unique()
final String OOXML_LITE_AGENT = "../build/dist/maven/poi-ooxml-lite-agent/poi-ooxml-lite-agent-${project.version}.jar"
final String OOXML_LITE_REPORT = '../build/ooxml-lite-report'
@ -178,4 +182,4 @@ javadocJar.onlyIf { false }
sourcesJar.onlyIf { false }
generateMetadataFileForPOIPublication.enabled = false
generateMetadataFileForPOIPublication.enabled = false

View File

@ -24,7 +24,14 @@ module org.apache.poi.stress {
requires org.apache.commons.collections4;
requires org.apache.poi.examples;
requires static org.apache.poi.scratchpad;
requires org.apache.poi.scratchpad;
requires org.apache.santuario.xmlsec;
requires org.bouncycastle.provider;
requires org.bouncycastle.pkix;
requires org.codehaus.stax2;
exports org.apache.poi.stress;

View File

@ -18,12 +18,20 @@
import java.util.regex.Pattern
configurations {
all {
runtimeClasspath {
exclude group: 'xalan', module: 'xalan'
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
exclude group: 'xml-apis', module: 'xml-apis'
}
}
compileClasspath {
exclude group: 'xalan', module: 'xalan'
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
exclude group: 'xml-apis', module: 'xml-apis'
}
}
broken
tests
javadocs
@ -42,27 +50,80 @@ sourceSets {
}
}
java {
registerFeature('signing') {
usingSourceSet(sourceSets.main)
}
registerFeature('render') {
usingSourceSet(sourceSets.main)
}
registerFeature('rendersign') {
usingSourceSet(sourceSets.main)
}
}
dependencies {
api project(':poi')
api project(':poi-ooxml-full')
api project(path: ':poi-ooxml-full', configuration: 'archives')
implementation 'org.apache.commons:commons-collections4:4.4'
api "org.apache.xmlbeans:xmlbeans:${xmlbeansVersion}"
api "org.apache.commons:commons-compress:${commonsCompressVersion}"
api "commons-io:commons-io:${commonsIoVersion}"
api 'org.apache.santuario:xmlsec:2.2.2'
api "org.bouncycastle:bcpkix-jdk15on:${bouncyCastleVersion}"
api "org.bouncycastle:bcutil-jdk15on:${bouncyCastleVersion}"
api 'com.github.virtuald:curvesapi:1.06'
implementation "org.apache.logging.log4j:log4j-api:${log4jVersion}"
api "org.apache.logging.log4j:log4j-api:${log4jVersion}"
api 'org.apache.commons:commons-collections4:4.4'
implementation "org.apache.xmlgraphics:batik-svggen:${batikVersion}"
implementation "org.apache.xmlgraphics:batik-bridge:${batikVersion}"
implementation "org.apache.xmlgraphics:batik-codec:${batikVersion}"
implementation "org.apache.xmlgraphics:batik-svgrasterizer:${batikVersion}"
signingImplementation 'org.apache.santuario:xmlsec:2.2.2'
signingImplementation "org.bouncycastle:bcpkix-jdk15on:${bouncyCastleVersion}"
signingImplementation "org.bouncycastle:bcutil-jdk15on:${bouncyCastleVersion}"
rendersignImplementation 'org.apache.santuario:xmlsec:2.2.2'
rendersignImplementation "org.bouncycastle:bcpkix-jdk15on:${bouncyCastleVersion}"
rendersignImplementation "org.bouncycastle:bcutil-jdk15on:${bouncyCastleVersion}"
renderImplementation 'de.rototor.pdfbox:graphics2d:0.32'
renderImplementation "org.apache.xmlgraphics:batik-svggen:${batikVersion}"
renderImplementation("org.apache.xmlgraphics:batik-svgrasterizer:${batikVersion}") {
exclude group: 'xalan', module: 'xalan'
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
exclude group: 'xml-apis', module: 'xml-apis'
}
}
renderImplementation("org.apache.xmlgraphics:batik-codec:${batikVersion}") {
exclude group: 'xalan', module: 'xalan'
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
exclude group: 'xml-apis', module: 'xml-apis'
}
}
renderImplementation("org.apache.xmlgraphics:batik-bridge:${batikVersion}") {
exclude group: 'xalan', module: 'xalan'
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
exclude group: 'xml-apis', module: 'xml-apis'
}
}
rendersignImplementation 'de.rototor.pdfbox:graphics2d:0.32'
rendersignImplementation "org.apache.xmlgraphics:batik-svggen:${batikVersion}"
rendersignImplementation("org.apache.xmlgraphics:batik-svgrasterizer:${batikVersion}") {
exclude group: 'xalan', module: 'xalan'
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
exclude group: 'xml-apis', module: 'xml-apis'
}
}
rendersignImplementation("org.apache.xmlgraphics:batik-codec:${batikVersion}") {
exclude group: 'xalan', module: 'xalan'
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
exclude group: 'xml-apis', module: 'xml-apis'
}
}
rendersignImplementation("org.apache.xmlgraphics:batik-bridge:${batikVersion}") {
exclude group: 'xalan', module: 'xalan'
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
exclude group: 'xml-apis', module: 'xml-apis'
}
}
api 'de.rototor.pdfbox:graphics2d:0.32'
if (!NO_SCRATCHPAD) {
testImplementation project(':poi-scratchpad')
@ -78,10 +139,15 @@ dependencies {
// prevent slf4j warnings coming from xmlsec -> slf4j-api 1.7.32 dependency
// see https://logging.apache.org/log4j/2.x/log4j-slf4j-impl/
testImplementation "org.apache.logging.log4j:log4j-slf4j-impl:${log4jVersion}"
testImplementation "org.apache.logging.log4j:log4j-slf4j18-impl:${log4jVersion}"
broken "org.apache.xmlgraphics:batik-script:${batikVersion}"
broken("org.apache.xmlgraphics:batik-script:${batikVersion}"){
exclude group: 'xalan', module: 'xalan'
if (JavaVersion.current() != JavaVersion.VERSION_1_8) {
exclude group: 'xml-apis', module: 'xml-apis'
}
}
javadocs project(':poi')
javadocs project(':poi-scratchpad')
@ -245,19 +311,13 @@ publishing {
pom {
name = 'Apache POI - API based on OPC and OOXML schemas'
description = 'Apache POI - Java API To Access Microsoft Format Files'
withXml {
// Update dependencies with resolved versions
def hasDependencies = !asNode().dependencies.isEmpty()
if (hasDependencies) {
asNode().dependencies.first().each {
String artifactId = it.get("artifactId").first().value().first()
String modifiedName = artifactId.equals("poi-ooxml-full") ? "poi-ooxml-lite" : artifactId
it.get("artifactId").first().value = modifiedName
}
}
}
}
suppressPomMetadataWarningsFor('renderApiElements')
suppressPomMetadataWarningsFor('renderRuntimeElements')
suppressPomMetadataWarningsFor('signingApiElements')
suppressPomMetadataWarningsFor('signingRuntimeElements')
suppressPomMetadataWarningsFor('rendersignApiElements')
suppressPomMetadataWarningsFor('rendersignRuntimeElements')
}
}
}

View File

@ -86,9 +86,10 @@ module org.apache.poi.ooxml {
/* optional dependencies for xml signatures - you need to add a require entry to your module-info
* or add them via the --add-modules JVM argument */
requires java.xml.crypto;
requires org.apache.santuario.xmlsec;
requires org.bouncycastle.provider;
requires org.bouncycastle.pkix;
requires static org.apache.santuario.xmlsec;
requires static org.bouncycastle.provider;
requires static org.bouncycastle.pkix;
requires static org.codehaus.stax2;
/* optional dependencies for slideshow rendering via PPTX2PNG */
requires static batik.anim;
@ -112,7 +113,7 @@ module org.apache.poi.ooxml {
requires static batik.xml;
requires static xmlgraphics.commons;
requires org.apache.pdfbox;
requires org.apache.fontbox;
requires de.rototor.pdfbox.graphics2d;
requires static org.apache.pdfbox;
requires static org.apache.fontbox;
requires static de.rototor.pdfbox.graphics2d;
}

View File

@ -84,9 +84,10 @@ module org.apache.poi.ooxml {
/* optional dependencies for xml signatures - you need to add a require entry your module-info
* or add them via the --add-modules JVM argument */
requires java.xml.crypto;
requires org.apache.santuario.xmlsec;
requires org.bouncycastle.provider;
requires org.bouncycastle.pkix;
requires static org.apache.santuario.xmlsec;
requires static org.bouncycastle.provider;
requires static org.bouncycastle.pkix;
requires static org.codehaus.stax2;
/* optional dependencies for slideshow rendering via PPTX2PNG */
@ -111,9 +112,9 @@ module org.apache.poi.ooxml {
requires static batik.xml;
requires static xmlgraphics.commons;
requires org.apache.pdfbox;
requires org.apache.fontbox;
requires de.rototor.pdfbox.graphics2d;
requires static org.apache.pdfbox;
requires static org.apache.fontbox;
requires static de.rototor.pdfbox.graphics2d;
// test specific exports

View File

@ -38,9 +38,9 @@ sourceSets {
dependencies {
api project(':poi')
api project(path:':poi', configuration: 'archives')
implementation "commons-codec:commons-codec:${commonsCodecVersion}"
implementation "org.apache.commons:commons-math3:${commonsMathVersion}"
implementation "org.apache.logging.log4j:log4j-api:${log4jVersion}"
api "org.apache.logging.log4j:log4j-api:${log4jVersion}"
api "org.apache.commons:commons-math3:${commonsMathVersion}"
api "commons-codec:commons-codec:${commonsCodecVersion}"
testImplementation project(path: ':poi', configuration: 'tests')
testImplementation "org.junit.jupiter:junit-jupiter-api:${junitVersion}"

View File

@ -20,6 +20,7 @@ module org.apache.poi.scratchpad {
requires java.desktop;
requires commons.math3;
requires org.apache.commons.io;
requires org.apache.commons.codec;
requires org.apache.logging.log4j;
provides org.apache.poi.extractor.ExtractorProvider with org.apache.poi.extractor.ole2.OLE2ScratchpadExtractorFactory;

View File

@ -41,8 +41,8 @@ dependencies {
api "org.apache.commons:commons-math3:${commonsMathVersion}"
api "commons-io:commons-io:${commonsIoVersion}"
api 'com.zaxxer:SparseBitSet:1.2'
implementation "org.apache.logging.log4j:log4j-api:${log4jVersion}"
implementation 'javax.activation:activation:1.1.1'
api "org.apache.logging.log4j:log4j-api:${log4jVersion}"
// implementation 'javax.activation:activation:1.1.1'
testImplementation 'org.reflections:reflections:0.9.12'
testImplementation 'org.apache.ant:ant:1.10.11'

Binary file not shown.

Binary file not shown.

View File

@ -1,74 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.poi</groupId>
<artifactId>poi-parent</artifactId>
<version>5.1.1-SNAPSHOT</version>
</parent>
<artifactId>poi-examples</artifactId>
<packaging>jar</packaging>
<name>Apache POI Examples package</name>
<properties>
<!-- There are no junit tests in the examples module -->
<maven.test.skip>true</maven.test.skip>
</properties>
<build>
<plugins>
<!-- copy sources, resources and tests in place as otherwise Sonar does not pick them up correctly! -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.plugin.resources.version}</version>
<executions>
<execution>
<id>copy-sources</id>
<!-- here the phase you need -->
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/java</outputDirectory>
<resources>
<resource>
<directory>../../poi-examples/src/main/java</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- clean copied sources afterwards -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.plugin.clean.version}</version>
<configuration>
<filesets>
<fileset>
<directory>src</directory>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-main</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</project>

View File

@ -1,117 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.poi</groupId>
<artifactId>poi-parent</artifactId>
<version>5.1.1-SNAPSHOT</version>
</parent>
<artifactId>poi-excelant</artifactId>
<packaging>jar</packaging>
<name>Apache POI ExcelAnt package</name>
<build>
<plugins>
<!-- copy sources, resources and tests in place as otherwise Sonar does not pick them up correctly! -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.plugin.resources.version}</version>
<executions>
<execution>
<id>copy-sources</id>
<!-- here the phase you need -->
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/java</outputDirectory>
<resources>
<resource>
<directory>../../poi-excelant/src/main/java</directory>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/resources</outputDirectory>
<resources>
<resource>
<directory>../../poi-excelant/src/main/resources</directory>
</resource>
<resource>
<directory>../../poi-excelant/src/test/resources</directory>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-tests</id>
<!-- here the phase you need -->
<phase>generate-test-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/test/java</outputDirectory>
<resources>
<resource>
<directory>../../poi-excelant/src/test/java</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- clean copied sources afterwards -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.plugin.clean.version}</version>
<configuration>
<filesets>
<fileset>
<directory>src</directory>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-main</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-main</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.10.9</version>
</dependency>
</dependencies>
</project>

View File

@ -1,126 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.poi</groupId>
<artifactId>poi-parent</artifactId>
<version>5.1.1-SNAPSHOT</version>
</parent>
<artifactId>integration-test</artifactId>
<packaging>jar</packaging>
<name>Apache POI integration test</name>
<build>
<plugins>
<!-- copy sources, resources and tests in place as otherwise Sonar does not pick them up correctly! -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.plugin.resources.version}</version>
<executions>
<execution>
<id>copy-tests</id>
<phase>generate-test-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/test/java</outputDirectory>
<resources>
<resource>
<directory>../../poi-integration/src/test/java</directory>
</resource>
<resource>
<directory>../../poi/src/test/java</directory>
<includes>
<include>org/apache/poi/POIDataSamples.java</include>
<include>org/apache/poi/util/NullPrintStream.java</include>
<include>org/apache/poi/util/NullOutputStream.java</include>
<include>org/apache/poi/hssf/HSSFTestDataSamples.java</include>
</includes>
</resource>
<resource>
<directory>../../poi-integration/src/test/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- clean copied sources afterwards -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.plugin.clean.version}</version>
<configuration>
<filesets>
<fileset>
<directory>src</directory>
<followSymlinks>false</followSymlinks>
</fileset>
<fileset>
<directory>build</directory>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
<!-- set jvm parameters for surefire plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.plugin.surefire.version}</version>
<configuration>
<argLine>@{argLine} -Duser.language=en -Duser.country=US -Xmx1024m -Djava.io.tmpdir=${basedir}/target/tmp -XX:-OmitStackTraceInFastThrow</argLine>
<workingDirectory>../..</workingDirectory>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-examples</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.27</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.10.9</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -1,143 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.poi</groupId>
<artifactId>poi-parent</artifactId>
<version>5.1.1-SNAPSHOT</version>
</parent>
<artifactId>poi-main</artifactId>
<packaging>jar</packaging>
<name>Apache POI Main package</name>
<build>
<plugins>
<!-- copy sources, resources and tests in place as otherwise Sonar does not pick them up correctly! -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.plugin.resources.version}</version>
<executions>
<execution>
<id>copy-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/java</outputDirectory>
<resources>
<resource>
<directory>../../poi/src/main/java</directory>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/resources</outputDirectory>
<resources>
<resource>
<directory>../../poi/src/main/resources</directory>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-tests</id>
<!-- here the phase you need -->
<phase>generate-test-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/test/java</outputDirectory>
<resources>
<resource>
<directory>../../poi/src/test/java</directory>
</resource>
<resource>
<directory>../../poi/src/test/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- clean copied sources afterwards -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.plugin.clean.version}</version>
<configuration>
<filesets>
<fileset>
<directory>src</directory>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
<!-- provide the test-jar for other modules -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven.plugin.jar.version}</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>SparseBitSet</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.10.9</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -1,151 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.poi</groupId>
<artifactId>poi-parent</artifactId>
<version>5.1.1-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>poi-ooxml-lite</artifactId>
<packaging>jar</packaging>
<name>Apache POI - Openxmlformats Schema package</name>
<properties>
<!-- see http://docs.codehaus.org/display/SONAR/Narrowing+the+Focus for details of this property -->
<sonar.exclusions>target/generated-sources/*</sonar.exclusions>
<maven.compiler.fork>true</maven.compiler.fork>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven.plugin.antrun.version}</version>
<executions>
<execution>
<id>copy-xmltype-and-xsdconfig</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<property name="xsdir" value="${basedir}/../../poi-ooxml-full/src/main/xmlschema/org/apache/poi"/>
<copy todir="${basedir}/target/schemas">
<zipfileset src="${xsdir}/schemas/OfficeOpenXML-XMLSchema-Transitional.zip"/>
<zipfileset src="${xsdir}/schemas/OpenPackagingConventions-XMLSchema.zip" includes="opc-digSig.xsd,opc-relationships.xsd"/>
<fileset dir="${xsdir}/xdgf" includes="*.xsd,*.xsdconfig"/>
<fileset dir="${xsdir}/schemas" includes="*.xsd,*.xsdconfig"/>
<fileset dir="${xsdir}/poifs/crypt" includes="signatureInfo.xsd"/>
</copy>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>process-sources</phase>
<goals>
<!-- need to use exec instead of java, because SchemaCompiler calls System.exit() -->
<goal>exec</goal>
</goals>
</execution>
</executions>
<configuration>
<executable>java</executable>
<arguments>
<argument>-classpath</argument>
<!-- automatically creates the classpath using all project dependencies,
also adding the project build directory -->
<classpath/>
<argument>org.apache.xmlbeans.impl.tool.SchemaCompiler</argument>
<argument>-srconly</argument>
<argument>-name</argument>
<argument>ooxml</argument>
<argument>-repackage</argument>
<argument>org.apache.xmlbeans.metadata:org.apache.poi.schemas.ooxml</argument>
<argument>-d</argument>
<argument>${basedir}/target/generated-resources</argument>
<argument>-src</argument>
<argument>${basedir}/target/generated-sources</argument>
<argument>${basedir}/target/schemas</argument>
</arguments>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>add-source</id>
<goals>
<goal>add-source</goal>
<goal>add-resource</goal>
</goals>
<configuration>
<resources>
<resource>
<directory>${basedir}/target/generated-resources</directory>
</resource>
<resource>
<directory>${basedir}/../../poi-ooxml-full/src/main/java9</directory>
<targetPath>META-INF/versions/9</targetPath>
<includes>
<include>*.class</include>
</includes>
</resource>
</resources>
<sources>
<source>${basedir}/target/generated-sources</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifestEntries>
<Multi-Release>true</Multi-Release>
<Automatic-Module-Name>org.apache.poi.ooxml.schemas</Automatic-Module-Name>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-main</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>${xmlbeans.version}</version>
</dependency>
</dependencies>
</project>

View File

@ -1 +0,0 @@
This purpose of this marker file is solely to activate the xmlbeans maven profile.

View File

@ -1,216 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.poi</groupId>
<artifactId>poi-parent</artifactId>
<version>5.1.1-SNAPSHOT</version>
</parent>
<artifactId>poi-ooxml</artifactId>
<packaging>jar</packaging>
<name>Apache POI OOXML package</name>
<build>
<plugins>
<!-- copy sources, resources and tests in place as otherwise Sonar does not pick them up correctly! -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.plugin.resources.version}</version>
<executions>
<execution>
<id>copy-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/java</outputDirectory>
<resources>
<resource>
<directory>../../poi-ooxml/src/main/java</directory>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/resources</outputDirectory>
<resources>
<resource>
<directory>../../poi-ooxml/src/main/resources</directory>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-tests</id>
<phase>generate-test-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/test/java</outputDirectory>
<resources>
<resource>
<directory>../../poi-ooxml/src/test/java</directory>
</resource>
<resource>
<directory>../../poi-ooxml/src/test/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- clean copied sources afterwards -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.plugin.clean.version}</version>
<configuration>
<filesets>
<fileset>
<directory>src</directory>
<followSymlinks>false</followSymlinks>
</fileset>
<fileset>
<directory>build</directory>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
<!-- set jvm parameters for surefire plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.plugin.surefire.version}</version>
<configuration>
<argLine>@{argLine} -Duser.language=en -Duser.country=US -Xmx1024m
-Djava.io.tmpdir=${basedir}/target/tmp -XX:-OmitStackTraceInFastThrow
</argLine>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-ooxml-lite</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-main</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-main</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>${xmlbeans.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcutil-jdk15on</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>org.apache.santuario</groupId>
<artifactId>xmlsec</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.21</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.github.virtuald</groupId>
<artifactId>curvesapi</artifactId>
<version>1.06</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-svggen</artifactId>
<version>1.14</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-bridge</artifactId>
<version>1.14</version>
<exclusions>
<exclusion>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-script</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-codec</artifactId>
<version>1.14</version>
</dependency>
<dependency>
<groupId>de.rototor.pdfbox</groupId>
<artifactId>graphics2d</artifactId>
<version>0.32</version>
</dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.27</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.27</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.1-jre</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

View File

@ -1,227 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.poi</groupId>
<artifactId>poi-parent</artifactId>
<packaging>pom</packaging>
<version>5.1.1-SNAPSHOT</version>
<name>Apache POI - the Java API for Microsoft Documents</name>
<description>Maven build of Apache POI for Sonar checks</description>
<url>https://poi.apache.org/</url>
<mailingLists>
<mailingList>
<name>POI Users List</name>
<subscribe>user-subscribe@poi.apache.org</subscribe>
<unsubscribe>user-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-user/</archive>
</mailingList>
<mailingList>
<name>POI Developer List</name>
<subscribe>dev-subscribe@poi.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@poi.apache.org</unsubscribe>
<archive>http://mail-archives.apache.org/mod_mbox/poi-dev/</archive>
</mailingList>
</mailingLists>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<organization>
<name>Apache Software Foundation</name>
<url>http://www.apache.org/</url>
</organization>
<issueManagement>
<system>Bugzilla</system>
<url>https://bz.apache.org/bugzilla/</url>
</issueManagement>
<scm>
<connection>scm:svn:https://svn.apache.org/repos/asf/poi/trunk</connection>
<developerConnection>scm:svn:https://svn.apache.org/repos/asf/poi/trunk</developerConnection>
<url>https://svn.apache.org/viewvc/poi</url>
</scm>
<repositories>
<repository>
<id>apache-releases-repo</id>
<name>apache releases repo</name>
<url>https://repository.apache.org/content/repositories/releases</url>
</repository>
</repositories>
<modules>
<module>main</module>
<module>ooxml-full</module>
<module>ooxml</module>
<module>scratchpad</module>
<module>excelant</module>
<module>examples</module>
<module>integration-test</module>
</modules>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- Try to disable running SVN blame as it causes errors here because the source is copied from the actual SVN location here! -->
<sonar.scm.disabled>true</sonar.scm.disabled>
<sonar.organization>apache</sonar.organization>
<sonar.projectKey>poi-parent</sonar.projectKey>
<sonar.moduleKey>${project.artifactId}</sonar.moduleKey>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
<!-- sonar.jacoco.reportPaths>target/jacoco.exec</sonar.jacoco.reportPaths -->
<sonar.coverage.jacoco.xmlReportPaths>target/site/jacoco/jacoco.xml</sonar.coverage.jacoco.xmlReportPaths>
<!-- define some of the third-party or plugin-versions globally to use the same in all modules -->
<xmlbeans.version>5.0.1</xmlbeans.version>
<junit.version>5.7.1</junit.version>
<xmlunit.version>2.8.2</xmlunit.version>
<mockito.version>3.6.28</mockito.version>
<maven.plugin.resources.version>3.2.0</maven.plugin.resources.version>
<maven.plugin.jar.version>3.2.0</maven.plugin.jar.version>
<maven.plugin.clean.version>3.1.0</maven.plugin.clean.version>
<maven.plugin.download.version>1.6.0</maven.plugin.download.version>
<maven.plugin.antrun.version>3.0.0</maven.plugin.antrun.version>
<maven.plugin.surefire.version>3.0.0-M5</maven.plugin.surefire.version>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven.plugin.surefire.version}</version>
<configuration>
<printSummary>false</printSummary>
<systemPropertyVariables>
<POI.testdata.path>${basedir}/../../test-data</POI.testdata.path>
<java.awt.headless>true</java.awt.headless>
</systemPropertyVariables>
<!-- use to following to analyze OOM issues: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -->
<argLine>@{argLine} -Duser.language=en -Duser.country=US -Xmx1024m -Djava.io.tmpdir=${basedir}/target/tmp -XX:-OmitStackTraceInFastThrow</argLine>
<excludes>
<exclude>**/All*Tests.java</exclude>
<exclude>**/TestUnfixedBugs.java</exclude>
<exclude>**/TestcaseRecordInputStream.java</exclude>
<exclude>**/POITestCase.java</exclude>
<!-- TODO: error about no public construct, seems to run with JUnit 3.8... -->
<exclude>**/TestWordToConverterSuite*.java</exclude>
<exclude>**/TestExcelConverterSuite*.java</exclude>
</excludes>
<!--test>TestPPTX2PNG</test-->
<!--parallel>both</parallel>
<threadCount>10</threadCount-->
</configuration>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.6</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.xmlunit</groupId>
<artifactId>xmlunit-core</artifactId>
<version>${xmlunit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>2.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.0</version>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<!-- We need a fair amount of memory to compile the xml schema, -->
<!-- but limit it in case it goes wrong! -->
<!-- Pick the right amount based on 32 vs 64 bit jvm -->
<!-- ********************************************************** -->
<!-- If you are using IntelliJ, you might want to check -->
<!-- http://stackoverflow.com/questions/24115142 -->
<!-- ********************************************************** -->
<profile>
<id>32bitstuff</id>
<activation>
<property>
<name>sun.arch.data.model</name>
<value>32</value>
</property>
</activation>
<properties>
<maven.compiler.maxmem>512m</maven.compiler.maxmem>
<argLine>-Xmx768m</argLine>
</properties>
</profile>
<profile>
<id>64bitstuff</id>
<activation>
<property>
<name>sun.arch.data.model</name>
<value>64</value>
</property>
</activation>
<properties>
<maven.compiler.maxmem>768m</maven.compiler.maxmem>
<argLine>-Xmx1024m</argLine>
</properties>
</profile>
</profiles>
</project>

View File

@ -1,112 +0,0 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.poi</groupId>
<artifactId>poi-parent</artifactId>
<version>5.1.1-SNAPSHOT</version>
</parent>
<artifactId>poi-scratchpad</artifactId>
<packaging>jar</packaging>
<name>Apache POI Scratchpad package</name>
<properties>
<!-- Exclude some generated code from Sonar analysis -->
<sonar.exclusions>src/main/java/org/apache/poi/hwpf/model/types/*,src/main/java/org/apache/poi/hdf/model/hdftypes/definitions/*</sonar.exclusions>
</properties>
<build>
<plugins>
<!-- copy sources, resources and tests in place as otherwise Sonar does not pick them up correctly! -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.plugin.resources.version}</version>
<executions>
<execution>
<id>copy-sources</id>
<!-- here the phase you need -->
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/java</outputDirectory>
<resources>
<resource>
<directory>../../poi-scratchpad/src/main/java</directory>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/main/resources</outputDirectory>
<resources>
<resource>
<directory>../../poi-scratchpad/src/main/resources</directory>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-tests</id>
<!-- here the phase you need -->
<phase>generate-test-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/src/test/java</outputDirectory>
<resources>
<resource>
<directory>../../poi-scratchpad/src/test/java</directory>
</resource>
<resource>
<directory>../../poi-scratchpad/src/test/resources</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<!-- clean copied sources afterwards -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.plugin.clean.version}</version>
<configuration>
<filesets>
<fileset>
<directory>src</directory>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-main</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>poi-main</artifactId>
<version>${project.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
</dependencies>
</project>