diff options
author | Jose <jose@zeroc.com> | 2016-06-15 18:06:00 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2016-06-15 18:06:00 +0200 |
commit | 99855eefd7419c24e9b204fb851ec95adc581b4e (patch) | |
tree | 0d79a68449d770c3c550b43121c0d6d43f602d14 /java | |
parent | Allow java libraries to override pom scm data (diff) | |
parent | Stack trace test expec files for Linux (diff) | |
download | ice-99855eefd7419c24e9b204fb851ec95adc581b4e.tar.bz2 ice-99855eefd7419c24e9b204fb851ec95adc581b4e.tar.xz ice-99855eefd7419c24e9b204fb851ec95adc581b4e.zip |
Merge branch '3.6-stretch' into 3.6
Diffstat (limited to 'java')
-rw-r--r-- | java/Makefile | 7 | ||||
-rw-r--r-- | java/build.gradle | 20 | ||||
-rw-r--r-- | java/gradle.properties | 23 | ||||
-rw-r--r-- | java/gradle/ice.gradle | 34 | ||||
-rw-r--r-- | java/gradle/library.gradle | 38 | ||||
-rw-r--r-- | java/src/IceGridGUI/build.gradle | 123 | ||||
-rw-r--r-- | java/test/build.gradle | 4 |
7 files changed, 184 insertions, 65 deletions
diff --git a/java/Makefile b/java/Makefile index e20eabf69b5..5ec69f9d894 100644 --- a/java/Makefile +++ b/java/Makefile @@ -8,11 +8,11 @@ # ********************************************************************** ifneq ($(prefix),) -INSTALL_FLAGS += -Dorg.gradle.project.prefix=$(prefix) +INSTALL_FLAGS += -Pprefix=$(prefix) endif ifneq ($(DESTDIR),) -INSTALL_FLAGS += -Dorg.gradle.project.DESTDIR=$(DESTDIR) +INSTALL_FLAGS += -PDESTDIR=$(DESTDIR) endif ifeq ($(GRADLE),) @@ -23,8 +23,7 @@ all: $(GRADLE) $(BUILD_FLAGS) build dist: - $(GRADLE) $(BUILD_FLAGS) :Ice:assemble :Freeze:assemble :Glacier2:assemble :IceGrid:assemble \ - :IceBox:assemble :IceDiscovery:assemble :IcePatch2:assemble :IceStorm:assemble :IceGridGUI:assemble + $(GRADLE) $(BUILD_FLAGS) dist clean: $(GRADLE) clean diff --git a/java/build.gradle b/java/build.gradle index 3f4d8db0a28..2befd7009f7 100644 --- a/java/build.gradle +++ b/java/build.gradle @@ -23,6 +23,15 @@ subprojects { dirs slice.jarDir } } + + if(new File("/usr/share/maven-repo").exists()) { + maven { + url "/usr/share/maven-repo" + } + } + + mavenCentral() + maven { url 'https://repo.zeroc.com/nexus/content/repositories/thirdparty' } @@ -44,6 +53,17 @@ subprojects { } } +task dist() +dist.dependsOn(project(":ice").assemble) +dist.dependsOn(project(":freeze").assemble) +dist.dependsOn(project(":glacier2").assemble) +dist.dependsOn(project(":icegrid").assemble) +dist.dependsOn(project(":icebox").assemble) +dist.dependsOn(project(":icediscovery").assemble) +dist.dependsOn(project(":icepatch2").assemble) +dist.dependsOn(project(":icestorm").assemble) +dist.dependsOn(project(":IceGridGUI").assemble) + // // Used to build the gradle wrapper to automatically download and install // the version of gradle needed to build Ice. diff --git a/java/gradle.properties b/java/gradle.properties index f0331eee6c2..d06566a45af 100644 --- a/java/gradle.properties +++ b/java/gradle.properties @@ -28,6 +28,26 @@ dbHome = prefix = // +// Set to true if you want to add Class-Path entries to Ice JAR files +// when installing the JARs. That is mostly usefull when building JAR +// files to be used in system packages. +// +jarsClassPath = false + + +// +// The Jgoodies third party package versions to use with IceGridGUI builds. +// +jgoodiesLooksVersion = 2.7.0 +jgoodiesFormsVersion = 1.9.0 + +// +// Set to true if you want IceGridGUI build to create an standalone jar +// using proguard +// +icegridguiProguard = true + +// // Define debug as true if you want to build with debug information, // false otherwise. // @@ -48,3 +68,6 @@ org.gradle.parallel = true // Package build properties // DESTDIR = + + + diff --git a/java/gradle/ice.gradle b/java/gradle/ice.gradle index 284f6b78a33..96493714c70 100644 --- a/java/gradle/ice.gradle +++ b/java/gradle/ice.gradle @@ -28,13 +28,23 @@ buildscript { } } + if(new File("/usr/share/maven-repo").exists()){ + repositories { + maven { + url "file:///usr/share/maven-repo" + } + } + } + repositories { + mavenCentral() + maven { url "https://${iceMavenRepo}/nexus/content/repositories/releases" } } dependencies { - classpath group: 'com.zeroc.gradle.ice-builder', name: 'slice', version: '1.3.2' + classpath group: 'com.zeroc.gradle.ice-builder', name: 'slice', version: '1.3.6' } } @@ -124,29 +134,7 @@ ext.searchFile = { List<Closure> places, List<String> searchPaths -> } } -def demoJar(name) { - def taskName = name + "Jar" - // Create a jar for the client & server which includes everything in the demo. - def jarTask = tasks.create(name: taskName, type: Jar) { - version = "" - baseName = name - from(sourceSets.main.output) { - include "**" - } - } - jarTask.manifest { - attributes("Main-Class": name.capitalize()) - attributes("Class-Path": configurations.runtime.resolve().collect { it.toURI() }.join(' ')) - } - - artifacts { - archives jarTask - } -} -ext { - demoJar = this.&demoJar -} def localDependency(artifactId) { if (project.slice.srcDist) { diff --git a/java/gradle/library.gradle b/java/gradle/library.gradle index 8299bdc3f0a..3d446c7698c 100644 --- a/java/gradle/library.gradle +++ b/java/gradle/library.gradle @@ -41,7 +41,7 @@ ext.projectPom = { developer { name 'ZeroC Developers' email 'info@zeroc.com' - organization 'ZeroC, Inc.' + organization = 'ZeroC, Inc.' organizationUrl 'https://zeroc.com' } } @@ -120,13 +120,37 @@ uploadArchives { clean { delete("${libDir}/${jar.archiveName}") - delete("${libDir}/${project.name}-${project.version}-source.jar") + delete("${libDir}/${project.name}-${project.version}-javadoc.jar") + delete("${libDir}/${project.name}-${project.version}-sources.jar") delete(pomName) } -task install(type: Copy, dependsOn: jarSources, overwrite: true) { - from "${pomName}" - from "${libDir}/${jar.archiveName}" - from "${libDir}/${project.name}-${project.version}-sources.jar" - into "${DESTDIR}${jarDir}" +// +// Check if we need to update the JARs class-path +// +if(jarsClassPath.toBoolean()){ + task copyJars(type: Copy, dependsOn: [jarSources, javadocJar], overwrite: true) { + from "${pomName}" + from "${libDir}/${jar.archiveName}" + from "${libDir}/${project.name}-${project.version}-sources.jar" + into "${DESTDIR}${jarDir}" + } + + task updateInstallManifest(dependsOn: copyJars) << { + ant.jar(update: true, destfile: "${DESTDIR}${jarDir}/${jar.archiveName}") { + delegate.manifest { + attribute(name: "Built-By", value: "ZeroC, Inc.") + attribute(name: "Class-Path", value: configurations.runtime.resolve().collect { "file://${it.absolutePath}" }.join(' ').replaceAll("${libDir}", "${jarDir}")) + } + } + } + + install.dependsOn(updateInstallManifest) +} else { + task install(type: Copy, dependsOn: jarSources, overwrite: true) { + from "${pomName}" + from "${libDir}/${jar.archiveName}" + from "${libDir}/${project.name}-${project.version}-sources.jar" + into "${DESTDIR}${jarDir}" + } } diff --git a/java/src/IceGridGUI/build.gradle b/java/src/IceGridGUI/build.gradle index bc6e4ae87ac..fa6a55a150f 100644 --- a/java/src/IceGridGUI/build.gradle +++ b/java/src/IceGridGUI/build.gradle @@ -46,14 +46,16 @@ dependencies { compile project(':icestorm') compile project(':glacier2') compile project(':icegrid') - compile 'com.jgoodies:jgoodies-common:1.8.0' - compile 'com.jgoodies:jgoodies-looks:2.6.0' - compile 'com.jgoodies:jgoodies-forms:1.8.0' + compile "com.jgoodies:jgoodies-looks:${jgoodiesLooksVersion}" + compile "com.jgoodies:jgoodies-forms:${jgoodiesFormsVersion}" bundleapp 'com.oracle:appbundler:1.0' } def tmpJarName = "IceGridGUITEMP.jar" def jarName = "icegridgui.jar" +def env = System.getenv() +def keystore = env['JARSIGNER_KEYSTORE'] +def keystore_password = env['JARSIGNER_KEYSTORE_PASSWORD'] jar { archiveName = tmpJarName @@ -65,14 +67,17 @@ jar { } buildscript { - repositories { - maven { - url "https://${iceMavenRepo}/nexus/content/repositories/thirdparty" + repositories { + mavenCentral() + maven { + url "https://${iceMavenRepo}/nexus/content/repositories/thirdparty" + } + } + dependencies { + if(icegridguiProguard.toBoolean()) { + classpath group: 'net.sourceforge', name: 'proguard', version: '5.0' + } } - } - dependencies { - classpath group: 'net.sourceforge', name: 'proguard', version: '5.0' - } } def libJars = [] @@ -88,28 +93,86 @@ if (hasJavaFx) { libJars << javafxJar } -task proguardJar(type: proguard.gradle.ProGuardTask, dependsOn: jar) { - injars configurations.compile.resolve(), filter: '!META-INF/**' - injars "${projectDir}/build/libs/${tmpJarName}" - outjars "${libDir}/${jarName}" - libraryjars libJars - configuration 'icegridgui.pro' -} -task updateManifest(dependsOn: proguardJar) << { - if (hasJavaFx) { +if(icegridguiProguard.toBoolean()) { + + task proguardJar(type: proguard.gradle.ProGuardTask, dependsOn: jar) { + injars configurations.compile.resolve(), filter: "!META-INF/**" + injars "${projectDir}/build/libs/${tmpJarName}" + outjars "${libDir}/${jarName}" + libraryjars libJars + configuration 'icegridgui.pro' + } + + task updateManifest(dependsOn: proguardJar) << { + if (hasJavaFx) { + ant.jar(update: true, destfile: "${libDir}/${jarName}") { + delegate.manifest { + attribute(name: 'Main-Class', value: 'IceGridGUI.MainProxy') + attribute(name: 'Built-By', value: 'Zeroc, Inc.') + } + } + } + } + + task copyJars(type: Copy, dependsOn: updateManifest) { + from new File("${libDir}/${jarName}") + into "${DESTDIR}${jarDir}" + } + +} else { + + task copyTmpJars(type: Copy, dependsOn: jar) { + from new File("${projectDir}/build/libs/${tmpJarName}") + into "${libDir}" + rename("${tmpJarName}", "${jarName}") + + } + + task updateManifest(dependsOn: copyTmpJars) << { ant.jar(update: true, destfile: "${libDir}/${jarName}") { delegate.manifest { - attribute(name: 'Main-Class', value: 'IceGridGUI.MainProxy') - attribute(name: 'Built-By', value: 'Zeroc, Inc.') - attribute(name: 'Class-Path', value: '../resources/') + attribute(name: "Main-Class", value: "IceGridGUI.Main") + attribute(name: "Built-By", value: "ZeroC, Inc.") + attribute(name: "Class-Path", value: configurations.runtime.resolve().collect { "file://${it.absolutePath}" }.join(' ')) } } } -} -def env = System.getenv() -def keystore = env['JARSIGNER_KEYSTORE'] -def keystore_password = env['JARSIGNER_KEYSTORE_PASSWORD'] + // + // Copy JARs to the install location + // + task copyJars(type: Copy, dependsOn: jar) { + from new File("${projectDir}/build/libs/${tmpJarName}") + into "${DESTDIR}${jarDir}" + rename("${tmpJarName}", "${jarName}") + } + + // + // We need to update the manifest of the installed IceGridGUI jar and fix the + // Class-Path to point to the installed JAR files. + // + task updateInstallManifest(dependsOn: copyJars) << { + ant.jar(update: true, destfile: "${DESTDIR}${jarDir}/${jarName}") { + delegate.manifest { + attribute(name: "Main-Class", value: "IceGridGUI.Main") + attribute(name: "Built-By", value: "ZeroC, Inc.") + attribute(name: "Class-Path", value: configurations.runtime.resolve().collect { "file://${it.absolutePath}" }.join(' ').replaceAll("${libDir}", "${jarDir}")) + } + } + } + + // + // We need to sign the install JARs after updating the manifest. + // + task signInstalJar(dependsOn: updateInstallManifest) << { + if(keystore != null && keystore.length() > 0) { + ant.signjar(jar: "${DESTDIR}${jarDir}/${jarName}", + alias: "zeroc.com", + keystore: "${keystore}", + storepass:"${storepass}") + } + } +} task signjar(dependsOn: updateManifest) << { if(keystore != null && keystore.length() > 0) { @@ -165,12 +228,12 @@ clean { delete("${libDir}/IceGrid Admin.app") } -task copyJars(type: Copy, dependsOn: updateManifest) { - from new File("${libDir}/${jarName}") - into "${DESTDIR}${jarDir}" +if(icegridguiProguard.toBoolean()) { + task install(dependsOn: copyJars) +}else{ + task install(dependsOn: signInstalJar) } -task install(dependsOn: copyJars) if(macosx) { install.dependsOn(copyBundle) } diff --git a/java/test/build.gradle b/java/test/build.gradle index 6b6150b644c..f544bbac7f8 100644 --- a/java/test/build.gradle +++ b/java/test/build.gradle @@ -37,7 +37,9 @@ dependencies { compile project(':testPlugins') compile project(':testController') compile files(dbJar) - runtime "org.apache.tools:bzip2:1.0" + if(!gradle.startParameter.isOffline()) { + runtime "org.apache.tools:bzip2:1.0" + } } jar { |