29
29
import java .io .IOException ;
30
30
import java .io .UncheckedIOException ;
31
31
import java .net .URI ;
32
+ import java .nio .file .Path ;
33
+ import java .nio .file .Paths ;
34
+ import java .nio .file .attribute .PosixFilePermission ;
35
+ import java .util .EnumSet ;
36
+ import java .util .Set ;
32
37
33
38
import static com .google .common .base .Preconditions .checkState ;
34
39
import static io .airlift .http .client .StaticBodyGenerator .createStaticBodyGenerator ;
35
40
import static io .airlift .http .client .StatusResponseHandler .createStatusResponseHandler ;
36
41
import static io .airlift .http .client .StringResponseHandler .createStringResponseHandler ;
37
- import static io .trino .testing .TestingProperties .getDockerImagesVersion ;
38
42
import static java .nio .charset .StandardCharsets .UTF_8 ;
43
+ import static java .nio .file .attribute .PosixFilePermission .GROUP_EXECUTE ;
44
+ import static java .nio .file .attribute .PosixFilePermission .GROUP_READ ;
45
+ import static java .nio .file .attribute .PosixFilePermission .GROUP_WRITE ;
46
+ import static java .nio .file .attribute .PosixFilePermission .OTHERS_EXECUTE ;
47
+ import static java .nio .file .attribute .PosixFilePermission .OTHERS_READ ;
48
+ import static java .nio .file .attribute .PosixFilePermission .OTHERS_WRITE ;
49
+ import static java .nio .file .attribute .PosixFilePermission .OWNER_EXECUTE ;
50
+ import static java .nio .file .attribute .PosixFilePermission .OWNER_READ ;
51
+ import static java .nio .file .attribute .PosixFilePermission .OWNER_WRITE ;
39
52
import static java .util .Objects .requireNonNull ;
40
53
41
54
public final class TestingPolarisCatalog
@@ -55,9 +68,25 @@ public final class TestingPolarisCatalog
55
68
public TestingPolarisCatalog (String warehouseLocation )
56
69
{
57
70
this .warehouseLocation = requireNonNull (warehouseLocation , "warehouseLocation is null" );
71
+ Path warehousePath = Paths .get (warehouseLocation );
72
+ try {
73
+ Set <PosixFilePermission > permissions = EnumSet .of (
74
+ OWNER_READ ,
75
+ OWNER_WRITE ,
76
+ OWNER_EXECUTE ,
77
+ GROUP_READ ,
78
+ GROUP_WRITE ,
79
+ GROUP_EXECUTE ,
80
+ OTHERS_READ ,
81
+ OTHERS_WRITE ,
82
+ OTHERS_EXECUTE );
83
+ java .nio .file .Files .setPosixFilePermissions (warehousePath , permissions );
84
+ }
85
+ catch (Exception e ) {
86
+ throw new RuntimeException ("Failed to setup warehouse directory" , e );
87
+ }
58
88
59
- // TODO: Use the official docker image once Polaris community provides it
60
- polarisCatalog = new GenericContainer <>("ghcr.io/trinodb/testing/polaris-catalog:" + getDockerImagesVersion ());
89
+ polarisCatalog = new GenericContainer <>("apache/polaris:1.0.0-incubating" );
61
90
polarisCatalog .addExposedPort (POLARIS_PORT );
62
91
polarisCatalog .withFileSystemBind (warehouseLocation , warehouseLocation , BindMode .READ_WRITE );
63
92
polarisCatalog .waitingFor (new LogMessageWaitStrategy ().withRegEx (".*Apache Polaris Server.* started.*" ));
0 commit comments