diff --git a/CHANGELOG.md b/CHANGELOG.md index dd3c6e6e..5252b97d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ A preview of the next release can be installed from ## Unreleased +- [#1776] Add java.nio.file.attribute.PosixFileAttributes - [#1761] Support calling `clojure.lang.RT/iter` - [#1760] For compatibility with [Fireworks v0.10.3](https://github.com/paintparty/fireworks), added the following to `:instance-checks` entry in `babashka.impl.classes/classes`([@paintparty](https://github.com/paintparty)) - `clojure.lang.PersistentArrayMap$TransientArrayMap` diff --git a/src/babashka/impl/classes.clj b/src/babashka/impl/classes.clj index 595274c6..35ce12d4 100644 --- a/src/babashka/impl/classes.clj +++ b/src/babashka/impl/classes.clj @@ -408,6 +408,7 @@ java.nio.file.attribute.BasicFileAttributes java.nio.file.attribute.FileAttribute java.nio.file.attribute.FileTime + java.nio.file.attribute.PosixFileAttributes java.nio.file.attribute.PosixFilePermission java.nio.file.attribute.PosixFilePermissions]) java.security.DigestInputStream @@ -760,6 +761,8 @@ java.net.URLClassLoader (instance? java.lang.ClassLoader v) java.lang.ClassLoader + (instance? java.nio.file.attribute.PosixFileAttributes v) + java.nio.file.attribute.PosixFileAttributes (instance? java.nio.file.attribute.BasicFileAttributes v) java.nio.file.attribute.BasicFileAttributes (instance? java.util.concurrent.Future v) diff --git a/test-resources/posix-file-attributes.txt b/test-resources/posix-file-attributes.txt new file mode 100644 index 00000000..d81cc071 --- /dev/null +++ b/test-resources/posix-file-attributes.txt @@ -0,0 +1 @@ +42 diff --git a/test/babashka/interop_test.clj b/test/babashka/interop_test.clj index 297309ae..71fe2708 100644 --- a/test/babashka/interop_test.clj +++ b/test/babashka/interop_test.clj @@ -193,3 +193,18 @@ (bb nil '(do (ns test (:import [clojure.lang RT])) (iterator-seq (clojure.lang.RT/iter [1 2 3]))))))) + +(deftest posix-file-attributes + (= 'java.util.HashSet + (bb nil + '(do + (import + [java.nio.file Files LinkOption Path] + [java.nio.file.attribute PosixFileAttributes]) + (-> (Files/readAttributes (Path/of "test-resources/posix-file-attributes.txt" + (into-array String [])) + PosixFileAttributes + ^"[Ljava.nio.file.LinkOption;" + (into-array LinkOption [])) + .permissions + type)))))