]> source.dussan.org Git - dcevm.git/commitdiff
Verify Mercurial is installed
authorIvan Dubrov <idubrov@guidewire.com>
Sun, 5 Jul 2015 23:14:26 +0000 (16:14 -0700)
committerIvan Dubrov <idubrov@guidewire.com>
Sun, 5 Jul 2015 23:14:26 +0000 (16:14 -0700)
Show better error message if Mercurial is not installed or mq extension is not enabled.
Fixes #67

README.md
build.gradle
gradle/wrapper/gradle-wrapper.jar
gradle/wrapper/gradle-wrapper.properties

index e51d0f0fd13f0ef46f71246f54768a85a676aec0..94318f87838a7cf610ad2db5aaf9693f991a8d9b 100644 (file)
--- a/README.md
+++ b/README.md
@@ -10,7 +10,7 @@ You can download binaries [here](https://dcevm.github.io/).
 
 ## Supported versions
 
-[pathes/](hotspot/.hg/patches/) contains patches for all supported versions. Each patch is named by concatenating prefix `full` or `light` with the OpenJDK HotSpot tag. `full` patches support full redefenition capabilities (including removal of superclasses, for example). `light` patches are easier to maintain, but they only support limited functionality (generally, additions to class hierarchies are fine, removals are not).
+[hotspot/.hg/patches/](hotspot/.hg/patches/) contains patches for all supported versions. Each patch is named by concatenating prefix `full` or `light` with the OpenJDK HotSpot tag. `full` patches support full redefenition capabilities (including removal of superclasses, for example). `light` patches are easier to maintain, but they only support limited functionality (generally, additions to class hierarchies are fine, removals are not).
 
 HotSpot tag is the name of the tag in the corresponding HotSpot Mercurial repository ([Java 8](http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot)/[Java 7](http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot)).
 
index d40106d6152078cbd23eb69135548feb39c85d31..3f73ccc0d8163d96de6f550aec6a6848f9caa932 100644 (file)
@@ -33,7 +33,25 @@ project('hotspot') {
         }
     }
 
-    task init(description: 'Initialize HotSpot repository') << {
+    task checkMercurial(description: 'Verify Mercurial is installed') << {
+        def os = new ByteArrayOutputStream()
+        try {
+            exec {
+                executable 'hg'
+                args 'help', 'init'
+                standardOutput = os
+                errorOutput = os
+            }
+        } catch (GradleException e) {
+            throw new GradleException("Failed to execute 'hg'. Make sure you have Mercurial installed!")
+        }
+        def str = os.toString()
+        if (!str.contains('--mq')) {
+            throw new GradleException("Mercurial does not have mq extension installed! Consult README.md for details.")
+        }
+    }
+
+    task init(description: 'Initialize HotSpot repository', dependsOn: checkMercurial) << {
         file('hotspot').mkdir()
         exec {
             executable 'hg'
@@ -45,8 +63,8 @@ project('hotspot') {
     task pull(description: 'Pull OpenJDK HotSpot changes', dependsOn: init) {
         doLast {
             def hotspotRepository = hotspotTag.contains('jdk7') ?
-                'http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot' :
-                'http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot'
+                    'http://hg.openjdk.java.net/jdk7u/jdk7u/hotspot' :
+                    'http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot'
             exec {
                 executable 'hg'
                 args 'pull', hotspotRepository
@@ -93,7 +111,7 @@ project('hotspot') {
         }
     }
 
-    def arguments = ['product':   ['ENABLE_FULL_DEBUG_SYMBOLS=0'],
+    def arguments = ['product'  : ['ENABLE_FULL_DEBUG_SYMBOLS=0'],
                      'fastdebug': ['ENABLE_FULL_DEBUG_SYMBOLS=1', 'STRIP_POLICY=no_strip', 'ZIP_DEBUGINFO_FILES=0']]
 
     ['product', 'fastdebug'].each { k ->
@@ -123,21 +141,14 @@ project('hotspot') {
     }
 }
 
-// Java projects for testing DCEVM
-def setup(prjs, closure) {
-    prjs.each { prj ->
-        project(prj, closure)
-    }
-}
-
-setup(['agent', 'dcevm'], {
+configure([project(':agent'), project(':dcevm')]) {
     apply plugin: 'java'
     apply plugin: 'idea'
 
     repositories {
         mavenCentral()
     }
-})
+}
 
 project('agent') {
     jar {
@@ -162,7 +173,7 @@ project('native') {
                 args "-I${jre}/../include/linux"
                 args '-o'
                 args 'build/libnatives.so'
-                args (arch == Arch.X86 ? '-m32' : '-m64')
+                args(arch == Arch.X86 ? '-m32' : '-m64')
             } else if (os == Os.MAC) {
                 args "-I${jre}/../include/darwin"
                 args '-o'
@@ -213,7 +224,7 @@ project('dcevm') {
         ignoreFailures = true
         outputs.upToDateWhen { false }
         useJUnit {
-            excludeCategories ('com.github.dcevm.test.category.' + (flavor == 'light' ? 'Full' : 'Light'))
+            excludeCategories('com.github.dcevm.test.category.' + (flavor == 'light' ? 'Full' : 'Light'))
         }
     }
 
index 3c7abdf12790879c06b07176de29647f77aa4129..b5166dad4d90021f6a0b45268c0755719f1d5cd4 100644 (file)
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
index 2352d1a68a70c8925932d32d7d5ef4da29d37770..703c33de435b88d81fc6cefceb6f9af2a3613a11 100644 (file)
@@ -1,6 +1,6 @@
-#Thu Apr 24 15:01:45 PDT 2014
+#Sun Jul 05 15:22:09 PDT 2015
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=http\://services.gradle.org/distributions/gradle-1.11-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-bin.zip