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)
public Path file(String path, String content)
PathBaseDirBuilder
All parent directories will be created on demand.
file
in interface BaseDirBuilder
file
in class PathBaseDirBuilder
path
- The relative path to the file to createcontent
- The content to write to the file