src/jdk.jfr/share/classes/jdk/jfr/internal/consumer/FileAccess.java
author egahlin
Tue, 13 Aug 2019 03:58:29 +0200
branchJEP-349-branch
changeset 57717 4ce66d271065
parent 57690 9316d02dd4a5
child 58112 e7754025004b
permissions -rw-r--r--
Security handling, but two tests fails with driver
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
57690
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     1
package jdk.jfr.internal.consumer;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     2
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     3
import java.io.File;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     4
import java.io.IOException;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     5
import java.io.RandomAccessFile;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     6
import java.nio.file.DirectoryStream;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     7
import java.nio.file.Files;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     8
import java.nio.file.Path;
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
     9
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    10
// Protected by modular boundaries.
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    11
public abstract class FileAccess {
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    12
    public final static FileAccess UNPRIVILIGED = new UnPriviliged();
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    13
57717
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    14
    public abstract RandomAccessFile openRAF(File f, String mode) throws IOException;
57690
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    15
57717
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    16
    public abstract DirectoryStream<Path> newDirectoryStream(Path repository) throws IOException;
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    17
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    18
    public abstract String getAbsolutePath(File f) throws IOException;
57690
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    19
57717
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    20
    public abstract long length(File f) throws IOException;
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    21
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    22
    public abstract long fileSize(Path p) throws IOException;
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    23
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    24
    private static class UnPriviliged extends FileAccess {
57690
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    25
        @Override
57717
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    26
        public RandomAccessFile openRAF(File f, String mode) throws IOException {
57690
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    27
            return new RandomAccessFile(f, mode);
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    28
        }
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    29
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    30
        @Override
57717
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    31
        public DirectoryStream<Path> newDirectoryStream(Path dir) throws IOException {
57690
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    32
            return Files.newDirectoryStream(dir);
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    33
        }
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    34
57717
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    35
        public String getAbsolutePath(File f) throws IOException {
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    36
            return f.getAbsolutePath();
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    37
        }
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    38
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    39
        public long length(File f) throws IOException {
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    40
            return f.length();
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    41
        }
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    42
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    43
        @Override
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    44
        public long fileSize(Path p) throws IOException {
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    45
            return Files.size(p);
4ce66d271065 Security handling, but two tests fails with driver
egahlin
parents: 57690
diff changeset
    46
        }
57690
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    47
    }
9316d02dd4a5 Add EventStream::setEndTime(...) and a first stab at priviliged access to local repository
egahlin
parents:
diff changeset
    48
}