Skip to content

Commit 7c5924c

Browse files
committed
[RELEASE] iText 7 pdfHTML - 2.1.5
https://github.com/itext/i7n-pdfhtml/releases/tag/2.1.5 * release/2.1.5: [RELEASE] 2.1.5-SNAPSHOT -> 2.1.5 Make first letter of resource file small Update port-hash Update autoported files Add configuration file for doxygen tool Add autogenerated configuration file for doxygen tool Update autoported files Do not use paragraph's end tags for separation reasons in Javadoc. Improve flushing of HtmlDocumentRenderer Call equals() for string literal, passing the variable as an argument, to avoid NPE Replace http links in Nuspec file with https ones Add functional ranges tests from html2pdf private Update port-hash Update README.md DEVSIX-3176 Fix a few SpotBugs warnings Add tests for generic font families Fix some typos in javadocs of CssConstants Add missing copyright headers Fix parsing named page size declarations with orientation in @page media Add new unit test for PageSizeParser Add test illustrating the issue Move html tests from FT repository Move test HTML_BlockElements from FT repository Add a test which demonstrates the issue with invalid font size processing. Move tests from FT repository Add .mailmap file Refactor Jenkinsfile Add missing copyright headers Fix counter(pages) calculation in case page is trimmed at the end Move tests from FT repository Add slack notifications to #ci channel Add a Jenkinsfile Update port-hash Move html with svg tests Move HTML_Tables tests Move HTML_Lists tests Move tests from FT repository Update port-hash after release [RELEASE] 2.1.4-SNAPSHOT -> 2.1.5-SNAPSHOT Update port-hash Update port-hash
2 parents 44650df + cb7f408 commit 7c5924c

File tree

274 files changed

+25535
-133
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

274 files changed

+25535
-133
lines changed

.mailmap

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
Alan Goo <alangoo@hancom.com> <behumble@hanjava.net>
2+
Alexander Chingarev <alexander.chingarev@duallab.com> <alexander.chingarev@itextpdf.com>
3+
Alexander Chingarev <alexander.chingarev@svaps.com> <alexander.chingarev@gmail.com>
4+
Alexander Chingarev <alexander.chingarev@svaps.com> <alexander.chingarev@svaps.com>
5+
Alexey Subach <alexey.subach@duallab.com> <alexey.subach@gmail.com>
6+
Alexey Subach <alexey.subach@duallab.com> <alexey.subach@itextpdf.com>
7+
Amedee Van Gasse <amedee.vangasse@itextpdf.com> <amedee-github@amedee.be>
8+
Amedee Van Gasse <amedee.vangasse@itextpdf.com> <amedee@vangasse.eu>
9+
Andrew Panfilov <andrew@panfilov.tel> <andrew@panfilov.tel>
10+
Bart De Meyer <bart@bartdemeyer.be> <bart@itextpdf.com>
11+
Benoît Lagae <benoit.lagae@itextpdf.com> <benoit@iText-blagae>
12+
Benoît Lagae <benoit.lagae@itextpdf.com> <benoit.lagae@itextpdf.com>
13+
Benoît Lagae <benoit.lagae@itextpdf.com> <benoit.lagae.s6547@student.hogent.be>
14+
Bruno Lowagie <bruno.lowagie@itextpdf.com> <bruno_000@192.168.1.3>
15+
Bruno Lowagie <bruno.lowagie@itextpdf.com> <bruno.lowagie@itextpdf.com>
16+
Bruno Lowagie <bruno.lowagie@itextpdf.com> <iText@Catullus>
17+
Bryan <bryan@hancom.com> <bryan@192.168.152.124>
18+
Dimitry Alexandrov <dimzon541@gmail.com> <dimzon541@gmail.com>
19+
Dmitry Trusevich <dmitry.trusevich@duallab.com> <dmitry.trusevich@duallab.com>
20+
Dmitry Trusevich <dmitry.trusevich@duallab> <dmitry.trusevich@duallab>
21+
Dominik Helm <dominik.helm@stud.tu-darmstadt.de> <dominik.helm@stud.tu-darmstadt.de>
22+
gothinkfree <tyoh@hancom.com> <tyoh@hancom.com>
23+
Ilya Idamkin <ilya.idamkin@duallab.com> <ilya.idamkin@TeamCity>
24+
iText Software <development@itextpdf.com> <community@itextpdf.com>
25+
iText Software <development@itextpdf.com> <development@itextpdf.com>
26+
iText Software <development@itextpdf.com> <jenkins@itextpdf.com>
27+
iText Software <development@itextpdf.com> <jenkins@jenkins.itextsupport.com>
28+
iText Software <development@itextpdf.com> <leeroy@itextpdf.com>
29+
iText Software <development@itextpdf.com> <teamcity.bot@TeamCity>
30+
iText Software <development@itextpdf.com> <teamcity@duallab.com>
31+
iText Software <development@itextpdf.com> <teamcity@itextpdf.com>
32+
Jeff Monson <jeff@advizr.co> <jeff@advizr.co>
33+
Joris Schellekens <joris.schellekens@itextpdf.com> <joris.schellekens@itextpdf.com>
34+
Kevin Day <kevin@trumpetinc.com> <kevin@melville.trumpetinc.local>
35+
Kevin Day <kevin@trumpetinc.com> <kevin@trumpetinc.com>
36+
Kevin Willems <kevin.willems@itextpdf.com> <kevin.willems1993@gmail.com>
37+
Kevin Willems <kevin.willems@itextpdf.com> <kevin.willems1993@gmail.com>
38+
LaughingMan <LingMan@users.noreply.github.com> <LingMan@users.noreply.github.com>
39+
Markus Wernig <markus.wernig@xfer.ch> <markus.wernig@xfer.ch>
40+
Marvin Wichmann <marvin@fam-wichmann.de> <marvin@fam-wichmann.de>
41+
Marvin Wichmann <marvin.wichmann@fusion-hub.com> <marvin.wichmann@fusion-hub.com>
42+
Marvin Wichmann <marvin.wichmann@unic.com> <marvin.wichmann@unic.com>
43+
Michaël Demey <michael.demey@itextpdf.com> michael.demey <>
44+
Michaël Demey <michael.demey@itextpdf.com> <michael.demey@itextpdf.com>
45+
Michaël Demey <michael.demey@itextpdf.com> <michael.demey@TeamCity>
46+
Michaël Demey <michael.demey@itextpdf.com> <mikkeldemey@gmail.com>
47+
Michael Glazunoff <michael.glazunoff@gmail.com> <michael.glazunoff@gmail.com>
48+
Michael Klink <klink@csi.com> <klink@csi.com>
49+
Michael Klink <mkl@wir-sind-cool.org> <mkl@wir-sind-cool.org>
50+
Nadia Ivaniukovich <nadia.ivaniuckovich@duallab.com> <nadia.ivaniuckovich@duallab.com>
51+
Nadia Ivaniukovich <nadia.ivaniukovich@duallab.com> <nadia.ivaniukovich@duallab.com>
52+
Nadja Sych <nadja.sych@duallab.com> <nadja.sych@duallab.com>
53+
Olivier Blaise <olivier@blaise.name> <olivier@blaise.name>
54+
Orabi Nakhla <orabi.nakhla@itextpdf.com> <orabi.nakhla@itextpdf.com>
55+
Orabi Nakhla <orabi.nakhla@itextpdf.com> <orabi.nakhleh@gmail.com>
56+
Paulo Soares <pgpsoares@gmail.com> <pgpsoares@gmail.com>
57+
Paulo Soares <psoares@gmail.com> <psoares@gmail.com>
58+
Pavel Alay <pavel.alay@duallab.com> pavel.alay <>
59+
Pavel Alay <pavel.alay@duallab.com> <pavel.alay@gmail.com>
60+
Pavel Alay <pavel.alay@duallab.com> <pavel.alay@TeamCity>
61+
Pavel Morozov <pavel.morozov@duallab.com> <pavel.morozov@duallab.com>
62+
Pavel Morozov <pavel.morozov@duallab.com> <p.morozov@i-pnt.ru>
63+
Peter Goodman <pete@petegoo.com> <github@petegoo.com>
64+
Peter Goodman <pete@petegoo.com> <pete@petegoo.com>
65+
Peter Goodman <pete@petegoo.com> <peter.goodman@pushpay.com>
66+
Peter Kjuak <peter.kjuak@itextpdf.com> <peter.kjuak@itextpdf.com>
67+
Richard Cohn <rcohn@adobe.com> <richard@cohns.org>
68+
Richard Schwark <richard.schwark@planet.de> <richard.schwark@planet.de>
69+
Roman Leonov <roman.leonov@duallab.com> <roman.leonov@duallab.com>
70+
Roman Nadvodny <roman.nadvodniuk@duallab.com> <roman.nadvodniuk@duallab.com>
71+
Sasha Kalykhan <alexander.kalykhan@duallab.com> <alexander.kalykhan@duallab.com>
72+
Sasha Kalykhan <alexander.kalykhan@duallab.com> <alexanderkalykhan@gmail.com>
73+
Semen Yakushev <semen.yakushev@duallab.com> <semen.yakushev@duallab.com>
74+
Valera <7691262@mail.ru> <7691262@mail.ru>
75+
Veronika Lisovskaya <veronika.lisovskaya@duallab.com> <veronika.lisovskaya@TeamCity>
76+
Vit Nemecky <vit.nemecky@asseco-ce.com> <vit.nemecky@asseco-ce.com>
77+
Yanina Cheremisina <yanina.cheremisina@svaps.com> <yanina.cheremisina@svaps.com>
78+
Yulian Gaponenko <yulian.gaponenko@duallab.com> <duallab@DESKTOP-PG4L5J1>
79+
Yulian Gaponenko <yulian.gaponenko@duallab.com> <yulian.gaponenko@TeamCity>

Jenkinsfile

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
#!/usr/bin/env groovy
2+
@Library('pipeline-library')_
3+
4+
def schedule = env.BRANCH_NAME.contains('master') ? '@monthly' : env.BRANCH_NAME == 'develop' ? '@midnight' : ''
5+
6+
pipeline {
7+
8+
agent { label 'windows' }
9+
10+
options {
11+
ansiColor('xterm')
12+
buildDiscarder(logRotator(artifactNumToKeepStr: '1'))
13+
parallelsAlwaysFailFast()
14+
retry(1)
15+
skipStagesAfterUnstable()
16+
timeout(time: 60, unit: 'MINUTES')
17+
timestamps()
18+
}
19+
20+
triggers {
21+
cron(schedule)
22+
}
23+
24+
stages {
25+
stage('Clean workspace') {
26+
options {
27+
timeout(time: 5, unit: 'MINUTES')
28+
}
29+
steps {
30+
cleanWs deleteDirs: true, patterns: [
31+
[pattern: 'packages', type: 'INCLUDE'],
32+
[pattern: 'global-packages', type: 'INCLUDE'],
33+
[pattern: 'tmp/NuGetScratch', type: 'INCLUDE'],
34+
[pattern: 'http-cache', type: 'INCLUDE'],
35+
[pattern: 'plugins-cache', type: 'INCLUDE'],
36+
[pattern: '**/obj', type: 'INCLUDE'],
37+
[pattern: '**/bin', type: 'INCLUDE']
38+
]
39+
}
40+
}
41+
stage('Compile') {
42+
options {
43+
timeout(time: 20, unit: 'MINUTES')
44+
}
45+
steps {
46+
withEnv(["NUGET_PACKAGES=${env.WORKSPACE}/global-packages", "temp=${env.WORKSPACE}/tmp/NuGetScratch", "NUGET_HTTP_CACHE_PATH=${env.WORKSPACE}/http-cache", "NUGET_PLUGINS_CACHE_PATH=${env.WORKSPACE}/plugins-cache", "gsExec=${gsExec}", "compareExec=${compareExec}"]) {
47+
bat "\"${env.NuGet}\" restore itext.html2pdf.sln"
48+
bat "dotnet restore itext.html2pdf.sln"
49+
bat "dotnet build itext.html2pdf.sln --configuration Release --source ${env.WORKSPACE}/packages"
50+
script {
51+
createPackAllFile(findFiles(glob: '**/*.nuspec'))
52+
load 'packAll.groovy'
53+
}
54+
}
55+
}
56+
}
57+
stage('Run Tests') {
58+
options {
59+
timeout(time: 60, unit: 'MINUTES')
60+
}
61+
steps {
62+
withEnv(["NUGET_PACKAGES=${env.WORKSPACE}/global-packages", "temp=${env.WORKSPACE}/tmp/NuGetScratch", "NUGET_HTTP_CACHE_PATH=${env.WORKSPACE}/http-cache", "NUGET_PLUGINS_CACHE_PATH=${env.WORKSPACE}/plugins-cache", "gsExec=${gsExec}", "compareExec=${compareExec}"]) {
63+
script {
64+
createRunTestDllsFile(findFiles(glob: '**/itext.*.tests.dll'))
65+
load 'runTestDlls.groovy'
66+
createRunTestCsProjsFile(findFiles(glob: '**/itext.*.tests.netstandard.csproj'))
67+
load 'runTestCsProjs.groovy'
68+
}
69+
}
70+
}
71+
}
72+
stage('Artifactory Deploy') {
73+
options {
74+
timeout(time: 5, unit: 'MINUTES')
75+
}
76+
when {
77+
anyOf {
78+
branch "master"
79+
branch "develop"
80+
branch "7.0"
81+
branch "7.0-master"
82+
}
83+
}
84+
steps {
85+
script {
86+
getAndConfigureJFrogCLI()
87+
findFiles(glob: '*.nupkg').each { item ->
88+
upload(item)
89+
}
90+
}
91+
}
92+
}
93+
stage('Archive Artifacts') {
94+
options {
95+
timeout(time: 5, unit: 'MINUTES')
96+
}
97+
steps {
98+
archiveArtifacts allowEmptyArchive: true, artifacts: '*.nupkg'
99+
}
100+
}
101+
}
102+
103+
post {
104+
always {
105+
echo 'One way or another, I have finished \uD83E\uDD16'
106+
}
107+
success {
108+
echo 'I succeeeded! \u263A'
109+
cleanWs deleteDirs: true
110+
}
111+
unstable {
112+
echo 'I am unstable \uD83D\uDE2E'
113+
}
114+
failure {
115+
echo 'I failed \uD83D\uDCA9'
116+
}
117+
changed {
118+
echo 'Things were different before... \uD83E\uDD14'
119+
}
120+
fixed {
121+
script {
122+
if ((env.BRANCH_NAME == 'master') || (env.BRANCH_NAME == 'develop')) {
123+
slackNotifier("#ci", currentBuild.currentResult, "${env.BRANCH_NAME} - Back to normal")
124+
}
125+
}
126+
}
127+
regression {
128+
script {
129+
if ((env.BRANCH_NAME == 'master') || (env.BRANCH_NAME == 'develop')) {
130+
slackNotifier("#ci", currentBuild.currentResult, "${env.BRANCH_NAME} - First failure")
131+
}
132+
}
133+
}
134+
}
135+
136+
}
137+
138+
@NonCPS // has to be NonCPS or the build breaks on the call to .each
139+
def createPackAllFile(list) {
140+
// creates file because the bat command brakes the loop
141+
def cmd = ''
142+
list.each { item ->
143+
if (!item.path.contains("packages")) {
144+
cmd = cmd + "bat '\"${env.NuGet.replace('\\','\\\\')}\" pack \"${item.path.replace('\\','\\\\')}\"'\n"
145+
}
146+
}
147+
writeFile file: 'packAll.groovy', text: cmd
148+
}
149+
150+
@NonCPS // has to be NonCPS or the build breaks on the call to .each
151+
def createRunTestDllsFile(list) {
152+
// creates file because the bat command brakes the loop
153+
def ws = "${env.WORKSPACE.replace('\\','\\\\')}"
154+
def nunit = "${env.'Nunit3-console'.replace('\\','\\\\')}"
155+
def cmd = ''
156+
list.each { item ->
157+
if (!item.path.contains("netcoreapp1.0") && !item.path.contains("obj")) {
158+
cmd = cmd + "bat '\"${nunit}\" \"${ws}\\\\${item.path.replace('\\','\\\\')}\" --result=${item.name}-TestResult.xml'\n"
159+
}
160+
}
161+
writeFile file: 'runTestDlls.groovy', text: cmd
162+
}
163+
164+
@NonCPS // has to be NonCPS or the build breaks on the call to .each
165+
def createRunTestCsProjsFile(list) {
166+
// creates file because the bat command brakes the loop
167+
def ws = "${env.WORKSPACE.replace('\\','\\\\')}"
168+
def cmd = ''
169+
list.each { item ->
170+
cmd = cmd + "bat 'dotnet test ${ws}\\\\${item.path.replace('\\','\\\\')} --framework netcoreapp1.0 --configuration Release --no-build --logger \"trx;LogFileName=results.trx\"'\n"
171+
}
172+
writeFile file: 'runTestCsProjs.groovy', text: cmd
173+
}
174+
175+
@NonCPS
176+
def upload(item) {
177+
def itemArray = (item =~ /(.*?)(\.[0-9]*\.[0-9]*\.[0-9]*(-SNAPSHOT)?\.nupkg)/)
178+
def dir = itemArray[ 0 ][ 1 ]
179+
sh "./jfrog rt u \"${item.path}\" nuget/${dir}/ --flat=false --build-name="${env.BRANCH_NAME}" --build-number=${env.BUILD_NUMBER}"
180+
}
181+
182+

0 commit comments

Comments
 (0)