public class JarFileBaseDirBuilder extends PathBaseDirBuilder
BaseDirBuilder implementation that uses a Jar file as the base.
Using this base dir builder simulates fat jar deployment. Extensions or add-ons that utilise the file system should test their functionality with this base dir to ensure that they do not assume access to the naked file system.
import ratpack.handling.Context;
import ratpack.handling.Handler;
import ratpack.launch.HandlerFactory;
import ratpack.launch.LaunchConfig;
import ratpack.launch.LaunchConfigBuilder;
import ratpack.test.embed.EmbeddedApplication;
import ratpack.test.embed.LaunchConfigEmbeddedApplication;
import ratpack.test.embed.BaseDirBuilder;
import ratpack.test.embed.JarFileBaseDirBuilder;
import java.io.File;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URLConnection;
import java.nio.file.Files;
File tmp = Files.createTempDirectory("ratpack-test").toFile();
BaseDirBuilder baseDir = new JarFileBaseDirBuilder(new File(tmp, "the.jar"));
EmbeddedApplication application = new LaunchConfigEmbeddedApplication() {
protected LaunchConfig createLaunchConfig() {
return LaunchConfigBuilder.
baseDir(Files.createTempDirectory("ratpack-test")).
port(0).
build(new HandlerFactory() {
public Handler create(LaunchConfig launchConfig) {
return new Handler() {
public void handle(Context context) {
context.getResponse().status(200).send();
}
};
}
});
}
};
URI address = application.getAddress();
HttpURLConnection urlConnection = (HttpURLConnection) address.toURL().openConnection();
urlConnection.connect();
assert urlConnection.getResponseCode() == 200;
application.close();
| Constructor and Description |
|---|
JarFileBaseDirBuilder(File jar) |
public JarFileBaseDirBuilder(File jar)