@Override public String getName() { return info.getName(); }
private String getNoPrefixedNameIfVirtualService() { // let's see if this a virtual service request WorkspaceInfo localWorkspace = LocalWorkspace.get(); if (localWorkspace != null) { // yes this is a virtual service request so removing the workspace prefix return CatalogConfiguration.removeWorkspacePrefix(info.getName(), catalog); } // this a normal request so just returning the prefixed layer name return info.getName(); }
@Override public String getLayerName(String layerId) { checkInitialized(); return layersById.get(layerId).getName(); }
private String getLayerId(final String layerName) { String storedName = layerName; // check pending modifs first in case name changed if (!pendingModications.isEmpty()) { for (GeoServerTileLayerInfo info : pendingModications.values()) { String name = info.getName(); if (name.equals(layerName)) { storedName = info.getName(); break; } } } final String layerId = tileLayerCatalog.getLayerId(storedName); if (layerId == null || pendingDeletes.contains(layerId)) { return null; } // name changed? GeoServerTileLayerInfo modifiedState = pendingModications.get(layerId); if (modifiedState != null && !layerName.equals(modifiedState.getName())) { return null; } return layerId; }
@Override public String getName() { // getting the current gwc operation String gwcOperation = GwcServiceDispatcherCallback.GWC_OPERATION.get(); // checking if we are in the context of a get capabilities request if (gwcOperation != null && gwcOperation.equalsIgnoreCase("GetCapabilities")) { // this is a get capabilities request, we need to check if we are in the context of // virtual service return getNoPrefixedNameIfVirtualService(); } return info.getName(); }
private String getLayerId(final String layerName) { String storedName = layerName; // check pending modifs first in case name changed if (!pendingModications.isEmpty()) { for (GeoServerTileLayerInfo info : pendingModications.values()) { String name = info.getName(); if (name.equals(layerName)) { storedName = info.getName(); break; } } } final String layerId = tileLayerCatalog.getLayerId(storedName); if (layerId == null || pendingDeletes.contains(layerId)) { return null; } // name changed? GeoServerTileLayerInfo modifiedState = pendingModications.get(layerId); if (modifiedState != null && !layerName.equals(modifiedState.getName())) { return null; } return layerId; }
/** * @see org.geowebcache.config.Configuration#modifyLayer(org.geowebcache.layer.TileLayer) */ @Override public synchronized void modifyLayer(TileLayer tl) throws NoSuchElementException { checkNotNull(tl, "TileLayer is null"); checkArgument(canSave(tl), "Can't save TileLayer of type ", tl.getClass()); GeoServerTileLayer tileLayer = (GeoServerTileLayer) tl; checkNotNull(tileLayer.getInfo(), "GeoServerTileLayerInfo is null"); checkNotNull(tileLayer.getInfo().getId(), "id is null"); checkNotNull(tileLayer.getInfo().getName(), "name is null"); final GeoServerTileLayerInfo info = tileLayer.getInfo(); lock.writeLock().lock(); try { final String layerId = info.getId(); // check pendingModifications too to catch unsaved adds boolean exists = pendingModications.containsKey(layerId) || tileLayerCatalog.exists(layerId); checkArgument(exists, "No GeoServerTileLayer named '" + info.getName() + "' exists"); pendingModications.put(layerId, info); layerCache.invalidate(layerId); } finally { lock.writeLock().unlock(); } }
private GeoServerTileLayerInfo getTileLayerInfoByName(final String layerName) { GeoServerTileLayerInfo tileLayerInfo = null; // check pending modifs first in case name changed if (!pendingModications.isEmpty()) { for (GeoServerTileLayerInfo info : pendingModications.values()) { String name = info.getName(); if (name.equals(layerName)) { tileLayerInfo = info; break; } } } if (null == tileLayerInfo) { tileLayerInfo = tileLayerCatalog.getLayerByName(layerName); if (null == tileLayerInfo) { return null; } if (pendingDeletes.contains(tileLayerInfo.getId())) { return null; } if (pendingModications.containsKey(tileLayerInfo.getId())) { // found in catalog but not in pending modifications, means name changed return null; } } return tileLayerInfo; }
final String duplicateNameId = layersByName.get(newValue.getName()); if (null != duplicateNameId) { throw new IllegalArgumentException( "TileLayer with same name already exists: " + newValue.getName() + ": <" + duplicateNameId layersByName.put(newValue.getName(), newValue.getId()); layersById.put(newValue.getId(), newValue.clone());
@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; } }
depersist(tmp); } catch (Exception e) { LOGGER.log(Level.WARNING, "Persisted version of tile layer " + real.getName() + " can't be loaded back", e); propagateIfInstanceOf(e, IOException.class);
/** @see TileLayerConfiguration#modifyLayer(TileLayer) */ @Override public synchronized void modifyLayer(TileLayer tl) throws NoSuchElementException { checkNotNull(tl, "TileLayer is null"); checkArgument(canSave(tl), "Can't save TileLayer of type ", tl.getClass()); GeoServerTileLayer tileLayer = (GeoServerTileLayer) tl; checkNotNull(tileLayer.getInfo(), "GeoServerTileLayerInfo is null"); checkNotNull(tileLayer.getInfo().getId(), "id is null"); checkNotNull(tileLayer.getInfo().getName(), "name is null"); final GeoServerTileLayerInfo info = tileLayer.getInfo(); lock.acquireWriteLock(); try { final String layerId = info.getId(); // check pendingModifications too to catch unsaved adds boolean exists = pendingModications.containsKey(layerId) || tileLayerCatalog.exists(layerId); if (!exists) { throw new NoSuchElementException( "No GeoServerTileLayer named '" + info.getName() + "' exists"); } pendingModications.put(layerId, info); layerCache.invalidate(layerId); } finally { lock.releaseWriteLock(); } save(); }
checkNotNull(tileLayer.getInfo(), "GeoServerTileLayerInfo is null"); checkNotNull(tileLayer.getInfo().getId(), "id is null"); checkNotNull(tileLayer.getInfo().getName(), "name is null"); "A GeoServerTileLayer named '" + info.getName() + "' already exists"); if (pendingDeletes.remove(info.getId())) { LOGGER.finer( "Adding a new layer " + info.getName() + " before saving the deleted one with the same id");
public void testSaveRename() { GeoServerTileLayerInfo originalState = layerInfo1; GeoServerTileLayerInfo forceState1 = TileLayerInfoUtil.loadOrCreate(layer1, defaults); when(tileLayerCatalog.save(same(forceState1))).thenReturn(originalState); forceState1.setName("newName"); config.modifyLayer(new GeoServerTileLayer(layer1, gridSetBroker, forceState1)); verify(mockMediator, never()).layerRemoved(anyString()); verify(mockMediator, never()).layerRenamed(anyString(), anyString()); config.save(); verify(tileLayerCatalog, times(1)).save(same(forceState1)); // and gwc has been instructed on the changes verify(mockMediator, times(1)).layerRenamed(eq(layerInfo1.getName()), eq("newName")); }
GeoServerTileLayerInfo savedInfo = saved.getInfo(); assertSame(info, savedInfo); assertEquals(renamedGroupName, savedInfo.getName());
assertSame(info, savedInfo); String tileLayerName = tileLayerName(mockLayerGroupInfo); String actual = savedInfo.getName(); assertEquals(tileLayerName, actual);
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()); }
private void testModifyLayer(GeoServerTileLayer orig) { GeoServerTileLayerInfo newState = TileLayerInfoUtil.create(defaults); newState.setId(orig.getInfo().getId()); newState.setName(orig.getInfo().getName()); assertFalse(orig.equals(newState)); final GeoServerTileLayer modified; if (orig.getLayerInfo() != null) { modified = new GeoServerTileLayer(orig.getLayerInfo(), gridSetBroker, newState); } else { modified = new GeoServerTileLayer(orig.getLayerGroupInfo(), gridSetBroker, newState); } assertEquals(orig.getInfo(), config.getTileLayer(orig.getName()).getInfo()); config.modifyLayer(modified); assertEquals(newState, config.getTileLayer(orig.getName()).getInfo()); final String origName = orig.getName(); modified.getInfo().setName("changed"); config.modifyLayer(modified); assertNull(config.getTileLayer(origName)); assertFalse(config.getTileLayerNames().contains(origName)); }