@Override public GeoServerTileLayerInfo delete(final String tileLayerId) { checkInitialized(); try { GeoServerTileLayerInfo info = getLayerById(tileLayerId); if (info != null) { File file = getFile(tileLayerId, false); layersById.remove(tileLayerId); file.delete(); } return info; } catch (IOException notFound) { LOGGER.log(Level.FINEST, "Deleting " + tileLayerId, notFound); return null; } }
private synchronized void checkInitialized() { if (!initialized) { initialize(); } }
@Override public GeoServerTileLayerInfo getLayerByName(String layerName) { checkInitialized(); String id = layersByName.get(layerName); if (id == null) { return null; } return getLayerById(id); }
@Override public GeoServerTileLayerInfo getLayerById(final String id) { checkInitialized(); if (!layersById.containsKey(id)) { return null; } try { GeoServerTileLayerInfo real = loadInternal(id); return real; } catch (IOException e) { LOGGER.finer("GeoServer tile layer does not exist or can't be loaded: " + id); LOGGER.log(Level.FINEST, "Trying to load tile layer " + id, e); } return null; }
@Override public GeoServerTileLayerInfo save(final GeoServerTileLayerInfo newValue) { checkInitialized(); GeoServerTileLayerInfoImpl oldValue = null; oldValue = loadInternal(tileLayerId); } catch (FileNotFoundException ignore) { persist(newValue); layersByName.put(newValue.getName(), newValue.getId()); layersById.put(newValue.getId(), newValue.clone());
private void persist(GeoServerTileLayerInfo real) throws IOException { final String tileLayerId = real.getId(); File file = getFile(tileLayerId, false); boolean cleanup = false; if (file == null) { cleanup = true; file = getFile(tileLayerId, true); depersist(tmp); } catch (Exception e) { LOGGER.log(Level.WARNING, "Persisted version of tile layer " + real.getName() throw propagate(e); rename(tmp, file);
public void testDelete() { GeoServerTileLayerInfo info = new GeoServerTileLayerInfoImpl(); info.setId("id1"); info.setName("name1"); catalog.save(info); GeoServerTileLayerInfo actual = catalog.getLayerByName("name1"); actual = ModificationProxy.unwrap(actual); assertEquals(info, actual); GeoServerTileLayerInfo deleted = catalog.delete("id1"); assertEquals(info, ModificationProxy.unwrap(deleted)); assertNull(catalog.getLayerById("id1")); }
@Override public String getLayerId(String layerName) { checkInitialized(); return layersByName.get(layerName); }
public void testSave() { final GeoServerTileLayerInfo original; { final GeoServerTileLayerInfo info = new GeoServerTileLayerInfoImpl(); info.setId("id1"); info.setName("name1"); info.getMimeFormats().add("image/png"); info.getMimeFormats().add("image/jpeg"); assertNull(catalog.save(info)); original = catalog.getLayerById("id1"); assertEquals(info.getMimeFormats(), original.getMimeFormats()); } original.getMimeFormats().clear(); original.getMimeFormats().add("image/gif"); original.setName("name2"); final GeoServerTileLayerInfo oldValue = catalog.save(original); assertNotNull(oldValue); assertEquals(ImmutableSet.of("image/png", "image/jpeg"), oldValue.getMimeFormats()); assertEquals("name1", oldValue.getName()); assertNull(catalog.getLayerByName("name1")); assertNotNull(catalog.getLayerByName("name2")); GeoServerTileLayerInfo modified = catalog.getLayerById("id1"); assertEquals(ImmutableSet.of("image/gif"), modified.getMimeFormats()); }
public void testGetLayerById() { GeoServerTileLayerInfo info = new GeoServerTileLayerInfoImpl(); info.setId("id1"); info.setName("name1"); catalog.save(info); GeoServerTileLayerInfo actual = catalog.getLayerById("id1"); actual = ModificationProxy.unwrap(actual); assertEquals(info, actual); }
try { File file = new File(baseDir, fileName); info = depersist(file); } catch (Exception e) { LOGGER.log(Level.SEVERE, "Error depersisting tile layer information from file "
protected void setUp() throws Exception { baseDirectory = new File("target", "mockTileLayerCatalog"); FileUtils.deleteDirectory(baseDirectory); baseDirectory.mkdirs(); GeoServerResourceLoader resourceLoader = new GeoServerResourceLoader(baseDirectory); XStream xStream = XMLConfiguration.getConfiguredXStream(new XStream(), null); xStream = new GWCGeoServerConfigurationProvider().getConfiguredXStream(xStream); catalog = new DefaultTileLayerCatalog(resourceLoader, xStream); }
@Override public GeoServerTileLayerInfo save(final GeoServerTileLayerInfo newValue) { checkInitialized(); GeoServerTileLayerInfoImpl oldValue = null; oldValue = loadInternal(tileLayerId); } catch (FileNotFoundException ignore) { persist(newValue); layersById.put(newValue.getId(), newValue.getName());
private void persist(GeoServerTileLayerInfo real) throws IOException { final String tileLayerId = real.getId(); Resource file = getFile(tileLayerId); boolean cleanup = false; if (file.getType() == Type.UNDEFINED) { depersist(tmp); } catch (Exception e) { LOGGER.log( throw propagate(e); rename(tmp, file);
@Override public GeoServerTileLayerInfo getLayerByName(String layerName) { checkInitialized(); String id = layersByName.get(layerName); if (id == null) { return null; } return getLayerById(id); }
@Override public String getLayerName(String layerId) { checkInitialized(); return layersById.get(layerId); }
@Override public GeoServerTileLayerInfo delete(final String tileLayerId) { checkInitialized(); try { GeoServerTileLayerInfo info = getLayerById(tileLayerId); if (info != null) { Resource file = getFile(tileLayerId); layersById.remove(tileLayerId); layersByName.remove(info.getName()); file.delete(); } return info; } catch (IOException notFound) { LOGGER.log(Level.FINEST, "Deleting " + tileLayerId, notFound); return null; } }
@Override public boolean exists(String layerId) { checkInitialized(); return layersById.containsKey(layerId); }