- return homeDirectory;
- // if (home != null)
- // return home;
- //
- // try {
- // String osgiData = System.getProperty("osgi.instance.area");
- // if (osgiData != null)
- // osgiData = osgiData.substring("file:".length());
- // String path;
- // if (homeDirectory == null)
- // path = "./jackrabbit";
- // else
- // path = homeDirectory;
- // if (path.startsWith(".") && osgiData != null) {
- // home = new File(osgiData + '/' + path).getCanonicalFile();
- // } else
- // home = new File(path).getCanonicalFile();
- // return home;
- // } catch (Exception e) {
- // throw new ArgeoException("Cannot define Jackrabbit home based on "
- // + homeDirectory, e);
- // }
+ try {
+ if (homeDirectory == null) {
+ if (inMemory) {
+ homeDirectory = new File(
+ System.getProperty("java.io.tmpdir")
+ + File.separator
+ + System.getProperty("user.name")
+ + File.separator + "jackrabbit-"
+ + UUID.randomUUID());
+ homeDirectory.mkdirs();
+ // will it work if directory is not empty?
+ homeDirectory.deleteOnExit();
+ }
+ }
+
+ return homeDirectory.getCanonicalFile();
+ } catch (IOException e) {
+ throw new ArgeoException("Cannot get canonical file for "
+ + homeDirectory, e);
+ }