summary refs log tree commit diff
path: root/pkgs/applications/networking/jmeter
diff options
context:
space:
mode:
authorMarkus Hauck <markus1189@gmail.com>2018-02-28 11:59:23 +0100
committerJörg Thalheim <Mic92@users.noreply.github.com>2018-02-28 10:59:23 +0000
commit11de4cf6efa37bb7b634bea0271b2c5603519b57 (patch)
tree994832a1ce2d7ac5f18d137f3f067a1bfc1e5052 /pkgs/applications/networking/jmeter
parent8fe5c2b8c787d75dda528d87390d7e39e54c8968 (diff)
downloadnixpkgs-11de4cf6efa37bb7b634bea0271b2c5603519b57.tar
nixpkgs-11de4cf6efa37bb7b634bea0271b2c5603519b57.tar.gz
nixpkgs-11de4cf6efa37bb7b634bea0271b2c5603519b57.tar.bz2
nixpkgs-11de4cf6efa37bb7b634bea0271b2c5603519b57.tar.lz
nixpkgs-11de4cf6efa37bb7b634bea0271b2c5603519b57.tar.xz
nixpkgs-11de4cf6efa37bb7b634bea0271b2c5603519b57.tar.zst
nixpkgs-11de4cf6efa37bb7b634bea0271b2c5603519b57.zip
jmeter: 3.3 -> 4.0 (#35655)
* jmeter: 3.3 -> 4.0
Diffstat (limited to 'pkgs/applications/networking/jmeter')
-rw-r--r--pkgs/applications/networking/jmeter/default.nix50
1 files changed, 39 insertions, 11 deletions
diff --git a/pkgs/applications/networking/jmeter/default.nix b/pkgs/applications/networking/jmeter/default.nix
index a89898c3739..ec67321400d 100644
--- a/pkgs/applications/networking/jmeter/default.nix
+++ b/pkgs/applications/networking/jmeter/default.nix
@@ -1,22 +1,50 @@
-{ fetchurl, stdenv, jre }:
+{ fetchurl, stdenv, jre, makeWrapper, coreutils }:
 
 stdenv.mkDerivation rec {
-  name = "jmeter-3.3";
+  name = "jmeter-${version}";
+  version = "4.0";
   src = fetchurl {
     url = "http://archive.apache.org/dist/jmeter/binaries/apache-${name}.tgz";
-    sha256 = "190k6yrh5casadphkv4azp4nvf4wf2q85mrfysw67r9d96nb9kk5";
+    sha256 = "1dvngvi6j8qb6nmf5a3gpi5wxck4xisj41qkrj8sjwb1f8jq6nw4";
   };
 
-  buildInputs = [ jre ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
-    substituteInPlace ./bin/jmeter.sh --replace "java $ARGS" "${jre}/bin/java $ARGS"
-    substituteInPlace ./bin/jmeter --replace "java $ARGS" "${jre}/bin/java $ARGS"
     mkdir $out
-    cp ./* $out/ -R
+
+    rm bin/*.bat bin/*.cmd
+
+    cp -R * $out/
+
+    substituteInPlace $out/bin/create-rmi-keystore.sh --replace \
+      "keytool -genkey" \
+      "${jre}/lib/openjdk/jre/bin/keytool -genkey"
+
+    # Prefix some scripts with jmeter to avoid clobbering the namespace
+    for i in heapdump.sh mirror-server mirror-server.sh shutdown.sh stoptest.sh create-rmi-keystore.sh; do
+      mv $out/bin/$i $out/bin/jmeter-$i
+      wrapProgram $out/bin/jmeter-$i \
+        --prefix PATH : "${jre}/bin"
+    done
+
+    wrapProgram $out/bin/jmeter --set JAVA_HOME "${jre}"
+    wrapProgram $out/bin/jmeter.sh --set JAVA_HOME "${jre}"
+  '';
+
+  doInstallCheck = true;
+
+  checkInputs = [ coreutils ];
+
+  installCheckPhase = ''
+    $out/bin/jmeter --version 2>&1 | grep -q "${version}"
+    $out/bin/jmeter-heapdump.sh > /dev/null
+    $out/bin/jmeter-shutdown.sh > /dev/null
+    $out/bin/jmeter-stoptest.sh > /dev/null
+    timeout --kill=1s 1s $out/bin/jmeter-mirror-server.sh || test "$?" = "124"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A 100% pure Java desktop application designed to load test functional behavior and measure performance";
     longDescription = ''
       The Apache JMeter desktop application is open source software, a 100%
@@ -24,9 +52,9 @@ stdenv.mkDerivation rec {
       measure performance. It was originally designed for testing Web
       Applications but has since expanded to other test functions.
     '';
-    license = stdenv.lib.licenses.asl20;
-    maintainers = [ stdenv.lib.maintainers.garbas ];
+    license = licenses.asl20;
+    maintainers = [ maintainers.garbas ];
     priority = 1;
-    platforms = stdenv.lib.platforms.unix;
+    platforms = platforms.unix;
   };
 }