summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2016-06-15 18:06:00 +0200
committerJose <jose@zeroc.com>2016-06-15 18:06:00 +0200
commit99855eefd7419c24e9b204fb851ec95adc581b4e (patch)
tree0d79a68449d770c3c550b43121c0d6d43f602d14 /java
parentAllow java libraries to override pom scm data (diff)
parentStack trace test expec files for Linux (diff)
downloadice-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/Makefile7
-rw-r--r--java/build.gradle20
-rw-r--r--java/gradle.properties23
-rw-r--r--java/gradle/ice.gradle34
-rw-r--r--java/gradle/library.gradle38
-rw-r--r--java/src/IceGridGUI/build.gradle123
-rw-r--r--java/test/build.gradle4
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 {