public static Directory createNew(File parent) throws IOException { File directory = File.createTempFile("tmp", "", parent); if (!directory.delete() || !directory.mkdir()) throw new IOException("Error creating temp directory at " + directory.getAbsolutePath()); return new Directory(directory); }
public static Directory createNew(File parent) throws IOException { File directory = File.createTempFile("tmp", "", parent); if (!directory.delete() || !directory.mkdir()) throw new IOException( "Error creating temp directory at " + directory.getAbsolutePath()); return new Directory(directory); }
public static Directory createFromArchive(File archive) throws IOException { VFSWorker vfs = new VFSWorker(); if (!vfs.canHandle(archive)) { throw new IOException(archive.getPath() + " is not a recognizable format"); } String basename = FilenameUtils.getBaseName(archive.getName()); File dir = new File(archive.getParentFile(), basename); int i = 0; while (dir.exists()) { dir = new File(archive.getParentFile(), basename + i++); } vfs.extractTo(archive, dir); return new Directory(dir); }
public static Directory createFromArchive(File archive) throws IOException { VFSWorker vfs = new VFSWorker(); if (!vfs.canHandle(archive)) { throw new IOException(archive.getPath() + " is not a recognizable format"); } String basename = FilenameUtils.getBaseName(archive.getName()); File dir = new File(archive.getParentFile(), basename); int i = 0; while (dir.exists()) { dir = new File(archive.getParentFile(), basename + i++); } vfs.extractTo(archive, dir); return new Directory(dir); }
@Override public void cleanup() throws IOException { File[] files = file.listFiles(); if (files != null) { for (File f: files) { if (f.isDirectory()) { new Directory(f).cleanup(); } else { if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("Deleting file " + f.getAbsolutePath()); } if (!f.delete()) { throw new IOException("unable to delete " + f); } } } } super.cleanup(); }
public static FileData createFromFile(File file) throws IOException { if (file.isDirectory()) { return new Directory(file); } if (new VFSWorker().canHandle(file)) { return new Archive(file); } return new SpatialFile(file); } public File getFile() {
public static FileData createFromFile(File file) throws IOException { if (file.isDirectory()) { return new Directory(file); } if (new VFSWorker().canHandle(file)) { return new Archive(file); } return new SpatialFile(file); }
public void testShapefileWithMacOSXDirectory() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); File osxDir = new File(dir, "__MACOSX"); osxDir.mkdir(); new File(osxDir, ".archsites.shp").createNewFile(); new File(osxDir, ".archsites.dbf").createNewFile(); new File(osxDir, ".archsites.prj").createNewFile(); Directory d = new Directory(dir); d.prepare(); assertNotNull(d.getFormat()); assertEquals(DataStoreFormat.class, d.getFormat().getClass()); List<FileData> files = d.getFiles(); assertEquals(1, files.size()); assertEquals(DataStoreFormat.class, files.get(0).getFormat().getClass()); }
public void testShapefileWithExtraFiles() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); // 'extra' files new File(dir, "archsites.shp.xml").createNewFile(); new File(dir, "archsites.sbx").createNewFile(); new File(dir, "archsites.sbn").createNewFile(); new File(dir, "archsites.shp.ed.lock").createNewFile(); Directory d = new Directory(dir); d.prepare(); assertNotNull(d.getFormat()); assertEquals(DataStoreFormat.class, d.getFormat().getClass()); List<FileData> files = d.getFiles(); assertEquals(1, files.size()); assertEquals(DataStoreFormat.class, files.get(0).getFormat().getClass()); }
public void testSingleSpatialFile() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); Directory d = new Directory(dir); d.prepare(); List<FileData> files = d.getFiles(); assertEquals(1, files.size()); assertTrue(files.get(0) instanceof SpatialFile); SpatialFile spatial = (SpatialFile) files.get(0); assertEquals("shp", FilenameUtils.getExtension(spatial.getFile().getName())); assertNotNull(spatial.getPrjFile().getName()); assertEquals("prj", FilenameUtils.getExtension(spatial.getPrjFile().getName())); assertEquals(2, spatial.getSuppFiles().size()); Set<String> exts = new HashSet<String>(Arrays.asList("shx", "dbf")); for (File supp : spatial.getSuppFiles()) { exts.remove(FilenameUtils.getExtension(supp.getName())); } assertTrue(exts.isEmpty()); }
@Test public void testIllegalNames() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); for (File f : dir.listFiles()) { String ext = FilenameUtils.getExtension(f.getName()); String base = FilenameUtils.getBaseName(f.getName()); f.renameTo(new File(dir, "1-." + ext)); } ImportContext imp = importer.createContext(new Directory(dir)); importer.run(imp); ImportTask task = imp.getTasks().get(0); assertEquals("a_1_", task.getLayer().getName()); assertEquals("a_1_", task.getLayer().getResource().getName()); }
@Test public void testCreateContextIgnoreHidden() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); FileUtils.touch(new File(dir, ".DS_Store")); ImportContext context = importer.createContext(new Directory(dir)); assertEquals(1, context.getTasks().size()); }
@Test public void testImportShapefilesWithExtraFiles() throws Exception { File dir = tmpDir(); unpack("shape/archsites_epsg_prj.zip", dir); // make some 'extra' files new File(dir, "archsites.sbn").createNewFile(); new File(dir, "archsites.sbx").createNewFile(); new File(dir, "archsites.shp.xml").createNewFile(); ImportContext context = importer.createContext(new Directory(dir)); assertEquals(1, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(ImportTask.State.READY, task.getState()); assertEquals("archsites", task.getLayer().getResource().getName()); }
public void testMultipleSpatialASpatialFile() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); unpack("shape/bugsites_esri_prj.tar.gz", dir); FileUtils.touch(new File(dir, "foo.txt")); // TODO: don't rely on alphabetical order Directory d = new Directory(dir); d.prepare(); assertEquals(3, d.getFiles().size()); assertTrue(d.getFiles().get(0) instanceof SpatialFile); assertTrue(d.getFiles().get(1) instanceof SpatialFile); assertTrue(d.getFiles().get(2) instanceof ASpatialFile); } }
public void testMultipleSpatialFile() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); unpack("shape/bugsites_esri_prj.tar.gz", dir); Directory d = new Directory(dir); d.prepare(); assertEquals(2, d.getFiles().size()); assertTrue(d.getFiles().get(0) instanceof SpatialFile); assertTrue(d.getFiles().get(1) instanceof SpatialFile); }
@Test public void testCreateContextDirectoryHetero() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); unpack("geotiff/EmissiveCampania.tif.bz2", dir); Directory d = new Directory(dir); ImportContext context = importer.createContext(d); assertEquals(2, context.getTasks().size()); // cannot ensure order of tasks due to hashing HashSet files = new HashSet(); files.add(context.getTasks().get(0).getData()); files.add(context.getTasks().get(1).getData()); assertTrue(files.containsAll(d.getFiles())); }
@Test public void testImportUnknownFile() throws Exception { File dir = new File("./src/test/resources/org/geoserver/importer/test-data/random"); ImportContext context = importer.createContext(new Directory(dir)); assertEquals(1, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(ImportTask.State.NO_FORMAT, task.getState()); assertNull(task.getData().getFormat()); }
@Test public void testImportUnknownFileIndirect() throws Exception { DataStoreInfo ds = createH2DataStore(null, "foo"); File dir = new File("./src/test/resources/org/geoserver/importer/test-data/random"); ImportContext context = importer.createContext(new Directory(dir), ds); assertEquals(1, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(ImportTask.State.NO_FORMAT, task.getState()); assertNull(task.getData().getFormat()); }
StyleInfo writeStyleAndImport(String sld, String filename, File dir) throws IOException { FileUtils.write(new File(dir, filename), sld); ImportContext imp = importer.createContext(new Directory(dir)); importer.run(imp); assertEquals(ImportContext.State.COMPLETE, imp.getState()); checkNoErrors(imp); return getCatalog().getStyle(imp.getTasks().get(0).getLayer().getDefaultStyle().getId()); }
@Test public void testCreateContextDirectoryHomo() throws Exception { File dir = unpack("shape/archsites_epsg_prj.zip"); unpack("shape/bugsites_esri_prj.tar.gz", dir); Directory d = new Directory(dir); ImportContext context = importer.createContext(d); assertEquals(2, context.getTasks().size()); ImportTask task = context.getTasks().get(0); assertEquals(d.part("archsites"), task.getData()); task = context.getTasks().get(1); assertEquals(d.part("bugsites"), task.getData()); }