1{
2 lib,
3 stdenv,
4 fetchurl,
5 jdk,
6 jre,
7 makeBinaryWrapper,
8 runCommand,
9 python3Packages,
10 writeText,
11}:
12
13stdenv.mkDerivation (finalAttrs: {
14 pname = "elasticmq-server";
15 version = "1.6.12";
16
17 src = fetchurl {
18 url = "https://s3-eu-west-1.amazonaws.com/softwaremill-public/elasticmq-server-${finalAttrs.version}.jar";
19 sha256 = "sha256-1zfsH82BCMBDW5+rXMgsC4p6Sfugak5W7d8z1xMXG9c=";
20 };
21
22 # don't do anything?
23 unpackPhase = "${jdk}/bin/jar xf $src favicon.png";
24
25 nativeBuildInputs = [ makeBinaryWrapper ];
26
27 installPhase = ''
28 mkdir -p $out/bin $out/share/elasticmq-server
29
30 cp $src $out/share/elasticmq-server/elasticmq-server.jar
31
32 # TODO: how to add extraArgs? current workaround is to use JAVA_TOOL_OPTIONS environment to specify properties
33 makeWrapper ${jre}/bin/java $out/bin/elasticmq-server \
34 --add-flags "-jar $out/share/elasticmq-server/elasticmq-server.jar"
35 '';
36
37 passthru.tests.elasticmqTest = import ./elasticmq-test.nix {
38 inherit runCommand python3Packages writeText;
39 elasticmq-server = finalAttrs.finalPackage;
40 };
41
42 meta = with lib; {
43 description = "Message queueing system with Java, Scala and Amazon SQS-compatible interfaces";
44 homepage = "https://github.com/softwaremill/elasticmq";
45 changelog = "https://github.com/softwaremill/elasticmq/releases/tag/v${finalAttrs.version}";
46 sourceProvenance = with sourceTypes; [ binaryBytecode ];
47 license = licenses.asl20;
48 platforms = platforms.unix;
49 maintainers = with maintainers; [ peterromfeldhk ];
50 mainProgram = "elasticmq-server";
51 };
52})