aboutsummaryrefslogtreecommitdiff
path: root/test cases
diff options
context:
space:
mode:
authorTristan Partin <tristan@partin.io>2022-03-01 12:05:28 -0600
committerJussi Pakkanen <jpakkane@gmail.com>2022-03-22 13:21:26 +0200
commit39f1d52e4a82cc75a4a3a41c3cc17fe2dabdb30b (patch)
treeec8855a6f7ea0c937736f366258ae8ca2629ea9d /test cases
parenta559dbe70d113ebaa9bab406e371e54251d66e71 (diff)
downloadmeson-39f1d52e4a82cc75a4a3a41c3cc17fe2dabdb30b.zip
meson-39f1d52e4a82cc75a4a3a41c3cc17fe2dabdb30b.tar.gz
meson-39f1d52e4a82cc75a4a3a41c3cc17fe2dabdb30b.tar.bz2
Add ability to add resources to jars
Previously Meson lacked the ability to add resources to jar files. Fixes #9945
Diffstat (limited to 'test cases')
-rw-r--r--test cases/java/10 resources/meson.build7
-rw-r--r--test cases/java/10 resources/src/com/mesonbuild/Resources.java26
-rw-r--r--test cases/java/10 resources/src/meson.build13
-rw-r--r--test cases/java/10 resources/src/resources/resource1.txt1
-rw-r--r--test cases/java/10 resources/src/resources/subdir/resource2.txt1
5 files changed, 48 insertions, 0 deletions
diff --git a/test cases/java/10 resources/meson.build b/test cases/java/10 resources/meson.build
new file mode 100644
index 0000000..3b87219
--- /dev/null
+++ b/test cases/java/10 resources/meson.build
@@ -0,0 +1,7 @@
+project('resources', ['java'])
+
+if meson.backend() != 'ninja'
+ error('MESON_SKIP_TEST: only valid on backends which support jar()')
+endif
+
+subdir('src')
diff --git a/test cases/java/10 resources/src/com/mesonbuild/Resources.java b/test cases/java/10 resources/src/com/mesonbuild/Resources.java
new file mode 100644
index 0000000..de1b7d6
--- /dev/null
+++ b/test cases/java/10 resources/src/com/mesonbuild/Resources.java
@@ -0,0 +1,26 @@
+package com.mesonbuild;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
+
+public class Resources {
+ public static void main(String[] args) throws IOException {
+ try (InputStreamReader reader = new InputStreamReader(
+ Resources.class.getResourceAsStream("/resource1.txt"),
+ StandardCharsets.UTF_8)) {
+ final BufferedReader buffered = new BufferedReader(reader);
+
+ assert buffered.readLine() == "1";
+ }
+
+ try (InputStreamReader reader = new InputStreamReader(
+ Resources.class.getResourceAsStream("/subdir/resource2.txt"),
+ StandardCharsets.UTF_8)) {
+ final BufferedReader buffered = new BufferedReader(reader);
+
+ assert buffered.readLine() == "2";
+ }
+ }
+}
diff --git a/test cases/java/10 resources/src/meson.build b/test cases/java/10 resources/src/meson.build
new file mode 100644
index 0000000..51f7d75
--- /dev/null
+++ b/test cases/java/10 resources/src/meson.build
@@ -0,0 +1,13 @@
+sources = files('com/mesonbuild/Resources.java')
+
+resources = jar(
+ meson.project_name(),
+ sources,
+ main_class: 'com.mesonbuild.Resources',
+ java_resources: structured_sources(
+ files('resources/resource1.txt'),
+ {
+ 'subdir': files('resources/subdir/resource2.txt'),
+ }
+ )
+)
diff --git a/test cases/java/10 resources/src/resources/resource1.txt b/test cases/java/10 resources/src/resources/resource1.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/test cases/java/10 resources/src/resources/resource1.txt
@@ -0,0 +1 @@
+1
diff --git a/test cases/java/10 resources/src/resources/subdir/resource2.txt b/test cases/java/10 resources/src/resources/subdir/resource2.txt
new file mode 100644
index 0000000..0cfbf08
--- /dev/null
+++ b/test cases/java/10 resources/src/resources/subdir/resource2.txt
@@ -0,0 +1 @@
+2