From c98ea00dffa6f8eaf7d78411435df77e64f5f2cd Mon Sep 17 00:00:00 2001 From: Christian Maierhofer Date: Fri, 1 Jul 2016 13:36:51 +0200 Subject: build tasks for pdfbox2 --- pdf-as-cli/build.gradle | 90 ++++++++- .../configuration/cfg/advancedconfig.properties | 3 +- pdf-as-lib/src/main/resources/config/config.zip | Bin 1276515 -> 1276538 bytes pdf-as-pdfbox-2/build.gradle | 11 +- pdf-as-web/build.gradle | 216 +++++++++++++++++---- 5 files changed, 271 insertions(+), 49 deletions(-) diff --git a/pdf-as-cli/build.gradle b/pdf-as-cli/build.gradle index 8cc9ef0f..51bdbe13 100644 --- a/pdf-as-cli/build.gradle +++ b/pdf-as-cli/build.gradle @@ -15,17 +15,29 @@ task releases(type: Copy) { into rootDir.toString() + "/releases/" + version } -releases.dependsOn jar -releases.dependsOn sourcesJar -releases.dependsOn distZip -releases.dependsOn distTar +configurations { + pdfBox2Compile + pdfBox1Compile + } +sourceSets{ + pdfBox2{ + compileClasspath = configurations.pdfBox2Compile + runtimeClasspath= configurations.pdfBox2Compile + } + pdfBox1{ + compileClasspath = configurations.pdfBox1Compile + runtimeClasspath= configurations.pdfBox1Compile + } +} + dependencies { compile project (':pdf-as-lib') compile project (':signature-standards:sigs-pkcs7detached') compile project (':signature-standards:sigs-pades') compile project (':pdf-as-moa') - compile project (':pdf-as-pdfbox') + pdfBox1Compile project (':pdf-as-pdfbox') + pdfBox2Compile project (':pdf-as-pdfbox-2') compile group: 'commons-collections', name: 'commons-collections', version: '3.2' compile group: 'commons-cli', name: 'commons-cli', version: '1.2' compile 'ch.qos.logback:logback-classic:1.1.2' @@ -33,6 +45,74 @@ dependencies { testCompile group: 'junit', name: 'junit', version: '4.+' } + +startScripts{ + classpath+=sourceSets.pdfBox1.compileClasspath +} + +compileJava{ + classpath=sourceSets.main.compileClasspath + classpath+=sourceSets.pdfBox1.compileClasspath + classpath+=sourceSets.pdfBox2.compileClasspath +} + + +task pdfbox2Startscript(type: CreateStartScripts) { + description "Creates OS specific scripts to call the 'other' entry point" + + classpath = startScripts.classpath.minus(configurations.pdfBox1Compile) + sourceSets.pdfBox2.compileClasspath + outputDir = startScripts.outputDir + mainClassName = startScripts.mainClassName + applicationName = startScripts.applicationName+"-pdfbox2" +} + +distZip { + + doFirst{ + baseName = archivesBaseName + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + + into("${baseName}-${version}/lib") { + from startScripts.classpath + } + into("${baseName}-${version}/lib") { + from pdfbox2Startscript.classpath + } + into("${baseName}-${version}/bin") { + from pdfbox2Startscript + } + } +} + +distTar { + doFirst{ + baseName = archivesBaseName + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + + into("${baseName}-${version}/lib") { + from startScripts.classpath + } + into("${baseName}-${version}/lib") { + from pdfbox2Startscript.classpath + } + into("${baseName}-${version}/bin") { + from pdfbox2Startscript + } + } +} + + +releases.dependsOn jar +releases.dependsOn sourcesJar +releases.dependsOn distZip +releases.dependsOn distTar + +distZip.dependsOn startScripts +startScripts.dependsOn pdfbox2Startscript + + + test { systemProperties 'property': 'value' } + diff --git a/pdf-as-lib/src/configuration/cfg/advancedconfig.properties b/pdf-as-lib/src/configuration/cfg/advancedconfig.properties index 7cdb87b2..89e9ed1e 100644 --- a/pdf-as-lib/src/configuration/cfg/advancedconfig.properties +++ b/pdf-as-lib/src/configuration/cfg/advancedconfig.properties @@ -97,4 +97,5 @@ default.verifier.01=at.gv.egiz.pdfas.sigs.pades.PAdESVerifier #Enable background color detection #sigblock.placement.bgcolor.detection.enabled=true -#sigblock.placement.debug.file=/home/cmaierhofer/temp/debugImg.png \ No newline at end of file +#sigblock.placement.debug.file=/home/cmaierhofer/temp/debugImg.png +#runtime.backend=PDFBOX_2_BACKEND \ No newline at end of file diff --git a/pdf-as-lib/src/main/resources/config/config.zip b/pdf-as-lib/src/main/resources/config/config.zip index 37416895..fb9dd1c6 100644 Binary files a/pdf-as-lib/src/main/resources/config/config.zip and b/pdf-as-lib/src/main/resources/config/config.zip differ diff --git a/pdf-as-pdfbox-2/build.gradle b/pdf-as-pdfbox-2/build.gradle index f62604a3..c4e51f5c 100644 --- a/pdf-as-pdfbox-2/build.gradle +++ b/pdf-as-pdfbox-2/build.gradle @@ -5,7 +5,15 @@ jar { manifest { attributes 'Implementation-Title': 'PDF-AS-4 PDFBOX 2 Backend' } -} + +// from { +// configurations.compile.collect{it} + +// }{ +// include "pdfbox*" +// } + } + repositories { mavenCentral() @@ -14,6 +22,7 @@ repositories { task releases(type: Copy) { from jar.outputs into rootDir.toString() + "/releases/" + version + } releases.dependsOn jar diff --git a/pdf-as-web/build.gradle b/pdf-as-web/build.gradle index f8e33ba0..de3cb96b 100644 --- a/pdf-as-web/build.gradle +++ b/pdf-as-web/build.gradle @@ -17,10 +17,16 @@ buildscript { apply plugin: 'org.akhikhl.gretty' +configurations { providedCompile + pdfbox2 + pdfbox1 + } + jar { manifest { attributes 'Implementation-Title': 'PDF-AS-WEB' } + } repositories { @@ -28,18 +34,18 @@ repositories { mavenCentral() } -configurations { providedCompile } sourceSets.main.compileClasspath += configurations.providedCompile sourceSets.test.compileClasspath += configurations.providedCompile sourceSets.test.runtimeClasspath += configurations.providedCompile + dependencies { compile project (':pdf-as-lib') compile project (':pdf-as-moa') compile project (':signature-standards:sigs-pkcs7detached') compile project (':signature-standards:sigs-pades') - compile project (':pdf-as-pdfbox-2') + pdfbox1 project (':pdf-as-pdfbox') compile project (':pdf-as-web-status') compile project (':pdf-as-web-statistic-api') compile group: 'commons-fileupload', name: 'commons-fileupload', version: '1.3.1' @@ -53,6 +59,8 @@ dependencies { compile 'ch.qos.logback:logback-core:1.1.3' compile 'org.json:json:20160212' + pdfbox2 project (':pdf-as-pdfbox-2') + providedCompile 'javax.servlet:javax.servlet-api:3.0.1' testCompile group: 'junit', name: 'junit', version: '4.+' } @@ -71,6 +79,10 @@ test { } task downloadTomcat << { + if(!project.buildDir.exists()){ + project.buildDir.mkdirs() + } + String url = "http://repo1.maven.org/maven2/org/apache/tomcat/tomcat/##VERSION##/tomcat-##VERSION##.zip" String filename = project.buildDir.toString() + "/tomcat-##VERSION##.zip"; @@ -105,46 +117,72 @@ task extractTomcat(dependsOn: downloadTomcat, type: Copy) { into outputDir } -task cleanWebAppsInTomcat(dependsOn: extractTomcat) << { - String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##/apache-tomcat-##VERSION##/webapps/"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - - def webappDir = new File(targetDir); - println "Removing: " + webappDir.toString() - def result = webappDir.deleteDir() // Returns true if all goes well, false otherwise. - println result.toString() - - assert result - - webappDir.mkdirs() +def deployVersions=['','-pdfbox2'] + +task copyTomcat(dependsOn: extractTomcat)<<{ + deployVersions.each{ + String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##"+it; + targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); + println "copiing to "+targetDir + copy{ + with extractTomcat + into targetDir + } + } } -task putTemplateIntoTomcat(dependsOn: cleanWebAppsInTomcat, type: Copy) { - String source = project.projectDir.toString() + "/"; - - String targetDir = "build/tomcat-##VERSION##/apache-tomcat-##VERSION##"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - - from 'src/main/assembly/tomcat' - into targetDir +task cleanWebAppsInTomcat(dependsOn: copyTomcat) << { + deployVersions.each{ + String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##"+it+"/apache-tomcat-##VERSION##/webapps/"; + targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); + + def webappDir = new File(targetDir); + println "Removing: " + webappDir.toString() + def result = webappDir.deleteDir() // Returns true if all goes well, false otherwise. + println result.toString() + + assert result + + webappDir.mkdirs() + } } -task putConfigIntoTomcat(dependsOn: putTemplateIntoTomcat, type: Copy) { - String source = "../pdf-as-lib/build/resources/main/config/config.zip"; - - String targetDir = "build/tomcat-##VERSION##/apache-tomcat-##VERSION##/conf/pdf-as"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - - from zipTree(source) - into targetDir +task putTemplateIntoTomcat(dependsOn: cleanWebAppsInTomcat)<<{ + deployVersions.each{ + String source = project.projectDir.toString() + "/"; + + String targetDir = "build/tomcat-##VERSION##"+it+"/apache-tomcat-##VERSION##"; + targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); + copy{ + from "src/main/assembly/tomcat" + into targetDir + } + } } -task putWebConfigIntoTomcat(dependsOn: putConfigIntoTomcat, type: Copy) { - String targetDir = "build/tomcat-##VERSION##/apache-tomcat-##VERSION##/conf/pdf-as"; - targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); - - from 'src/main/configuration/' - into targetDir +task putConfigIntoTomcat(dependsOn: putTemplateIntoTomcat)<<{ + deployVersions.each{ + String source = "../pdf-as-lib/build/resources/main/config/config.zip"; + + String targetDir = "build/tomcat-##VERSION##"+it+"/apache-tomcat-##VERSION##/conf/pdf-as"; + targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); + copy{ + from zipTree(source) + into targetDir + } + } +} + +task putWebConfigIntoTomcat(dependsOn: putConfigIntoTomcat)<<{ + deployVersions.each{ + String targetDir = "build/tomcat-##VERSION##/apache-tomcat-##VERSION##/conf/pdf-as"; + targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); + + copy{ + from 'src/main/configuration/' + into targetDir + } + } } task injectPdfAsWebApp(dependsOn: putWebConfigIntoTomcat, type: Copy) { @@ -157,9 +195,34 @@ task injectPdfAsWebApp(dependsOn: putWebConfigIntoTomcat, type: Copy) { into targetDir rename '.*.war', 'pdf-as-web.war' } - injectPdfAsWebApp.dependsOn war +task createPdfbox2War(type:War){ + destinationDir = file("$buildDir/libs/pdfbox2") + + doFirst{ + sourceSets.main.compileClasspath -= configurations.pdfbox1 + sourceSets.test.compileClasspath -= configurations.pdfbox1 + sourceSets.main.compileClasspath += configurations.pdfbox2 + sourceSets.test.compileClasspath += configurations.pdfbox2 + classpath=sourceSets.main.compileClasspath + } +} + + + +task injectPdfAsWebAppPdfbox2(dependsOn: putWebConfigIntoTomcat, type: Copy) { + //war.execute(); + + String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##"+deployVersions[1]+"/apache-tomcat-##VERSION##/webapps/"; + targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); + + from createPdfbox2War.outputs + into targetDir + rename '.*.war', 'pdf-as-web.war' +} +injectPdfAsWebAppPdfbox2.dependsOn createPdfbox2War + task buildTomcat(dependsOn: injectPdfAsWebApp, type: Zip) { String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##/apache-tomcat-##VERSION##"; targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); @@ -172,8 +235,21 @@ task buildTomcat(dependsOn: injectPdfAsWebApp, type: Zip) { archiveName archive destinationDir project.buildDir } +task buildTomcatPdfbox2(dependsOn: injectPdfAsWebAppPdfbox2, type: Zip) { + String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##"+deployVersions[1]+"/apache-tomcat-##VERSION##"; + targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); + + String archive = "apache-tomcat-##VERSION##"+deployVersions[1]+"-pdf-as-web-##PVERSION##.zip"; + archive = archive.replaceAll("##VERSION##", project.tomcatVersion); + archive = archive.replaceAll("##PVERSION##", project.version); + + from targetDir + archiveName archive + destinationDir project.buildDir +} task buildTomcatTar(dependsOn: injectPdfAsWebApp, type: Tar) { + String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##/apache-tomcat-##VERSION##"; targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); @@ -186,6 +262,40 @@ task buildTomcatTar(dependsOn: injectPdfAsWebApp, type: Tar) { destinationDir project.buildDir } +task buildTomcatTarPdfbox2(dependsOn: injectPdfAsWebAppPdfbox2, type: Tar) { + + String targetDir = project.buildDir.toString() + "/tomcat-##VERSION##"+deployVersions[1]+"/apache-tomcat-##VERSION##"; + targetDir = targetDir.replaceAll("##VERSION##", project.tomcatVersion); + + String archive = "apache-tomcat-##VERSION##"+deployVersions[1]+"-pdf-as-web-##PVERSION##.tar"; + archive = archive.replaceAll("##VERSION##", project.tomcatVersion); + archive = archive.replaceAll("##PVERSION##", project.version); + + from targetDir + archiveName archive + destinationDir project.buildDir +} + + + +task releaseConfig(type: Copy) { + from 'src/main/configuration/pdf-as-web.properties' + into rootDir.toString() + "/releases/" + version + "/cfg" +} + + + + +war{ + doFirst{ + sourceSets.main.compileClasspath -= configurations.pdfbox2 + sourceSets.test.compileClasspath -= configurations.pdfbox2 + sourceSets.main.compileClasspath += configurations.pdfbox1 + sourceSets.test.compileClasspath += configurations.pdfbox1 + classpath=sourceSets.main.compileClasspath + } +} + task releases(dependsOn: buildTomcat, type: Copy) { String archive = project.buildDir.toString() + "/apache-tomcat-##VERSION##-pdf-as-web-##PVERSION##.zip"; archive = archive.replaceAll("##VERSION##", project.tomcatVersion); @@ -195,19 +305,41 @@ task releases(dependsOn: buildTomcat, type: Copy) { tararchive = tararchive.replaceAll("##VERSION##", project.tomcatVersion); tararchive = tararchive.replaceAll("##PVERSION##", project.version); - from war.outputs + + from war from archive - from tararchive + from tararchive into rootDir.toString() + "/releases/" + version + + + } -task releaseConfig(type: Copy) { - from 'src/main/configuration/pdf-as-web.properties' - into rootDir.toString() + "/releases/" + version + "/cfg" +task releaseCopyPdfbox2(type: Copy){ + String archive = project.buildDir.toString() + "/apache-tomcat-##VERSION##"+deployVersions[1]+"-pdf-as-web-##PVERSION##.zip"; + archive = archive.replaceAll("##VERSION##", project.tomcatVersion); + archive = archive.replaceAll("##PVERSION##", project.version); + + String tararchive = project.buildDir.toString() + "/apache-tomcat-##VERSION##"+deployVersions[1]+"-pdf-as-web-##PVERSION##.tar"; + tararchive = tararchive.replaceAll("##VERSION##", project.tomcatVersion); + tararchive = tararchive.replaceAll("##PVERSION##", project.version); + + from archive + from tararchive + from createPdfbox2War + into rootDir.toString() + "/releases/" + version+"/pdf-as-web-pdfbox2" } + releases.dependsOn jar releases.dependsOn sourcesJar releases.dependsOn war releases.dependsOn releaseConfig releases.dependsOn buildTomcatTar +releases.dependsOn createPdfbox2War +releases.dependsOn releaseCopyPdfbox2 +releases.dependsOn buildTomcatPdfbox2 +releases.dependsOn buildTomcatTarPdfbox2 + +war.dependsOn createPdfbox2War + -- cgit v1.2.3