/** * @see org.geoserver.catalog.event.CatalogListener#handleModifyEvent(org.geoserver.catalog.event.CatalogModifyEvent) * @see #handlePostModifyEvent */ public void handleModifyEvent(CatalogModifyEvent event) throws CatalogException { CatalogInfo source = event.getSource(); if (source instanceof LayerInfo || source instanceof LayerGroupInfo || source instanceof FeatureTypeInfo || source instanceof CoverageInfo || source instanceof WMSLayerInfo) { PRE_MODIFY_EVENT.set(event); if (mediator.hasTileLayer(source)) { try { GeoServerTileLayer tileLayer = mediator.getTileLayer(source); GeoServerTileLayerInfo tileLayerInfo = tileLayer.getInfo(); PRE_MODIFY_TILELAYER.set(tileLayerInfo); } catch (RuntimeException e) { log.info("Ignoring misconfigured tile layer info for " + source); } } } }
/** * @see * org.geoserver.catalog.event.CatalogListener#handleModifyEvent(org.geoserver.catalog.event.CatalogModifyEvent) * @see #handlePostModifyEvent */ public void handleModifyEvent(CatalogModifyEvent event) throws CatalogException { CatalogInfo source = event.getSource(); if (source instanceof LayerInfo || source instanceof LayerGroupInfo || source instanceof FeatureTypeInfo || source instanceof CoverageInfo || source instanceof WMSLayerInfo || source instanceof WorkspaceInfo) { PRE_MODIFY_EVENT.set(event); if (mediator.hasTileLayer(source)) { try { GeoServerTileLayer tileLayer = mediator.getTileLayer(source); GeoServerTileLayerInfo tileLayerInfo = tileLayer.getInfo(); PRE_MODIFY_TILELAYER.set(tileLayerInfo); } catch (RuntimeException e) { log.info("Ignoring misconfigured tile layer info for " + source); } } } }
/** * @see * org.geoserver.catalog.event.CatalogListener#handleRemoveEvent(org.geoserver.catalog.event.CatalogRemoveEvent) * @see GWC#removeTileLayers(List) */ public void handleRemoveEvent(CatalogRemoveEvent event) throws CatalogException { CatalogInfo obj = event.getSource(); if (!(obj instanceof LayerInfo || obj instanceof LayerGroupInfo)) { return; } if (!mediator.hasTileLayer(obj)) { return; } String prefixedName = null; if (obj instanceof LayerGroupInfo) { LayerGroupInfo lgInfo = (LayerGroupInfo) obj; prefixedName = tileLayerName(lgInfo); } else if (obj instanceof LayerInfo) { LayerInfo layerInfo = (LayerInfo) obj; prefixedName = tileLayerName(layerInfo); } if (null != prefixedName) { // notify the layer has been removed mediator.removeTileLayers(Arrays.asList(prefixedName)); } }
/** * * @see org.geoserver.catalog.event.CatalogListener#handleRemoveEvent(org.geoserver.catalog.event.CatalogRemoveEvent) * @see GWC#removeTileLayers(List) */ public void handleRemoveEvent(CatalogRemoveEvent event) throws CatalogException { CatalogInfo obj = event.getSource(); if (!(obj instanceof LayerInfo || obj instanceof LayerGroupInfo)) { return; } if (!mediator.hasTileLayer(obj)) { return; } String prefixedName = null; if (obj instanceof LayerGroupInfo) { LayerGroupInfo lgInfo = (LayerGroupInfo) obj; prefixedName = tileLayerName(lgInfo); } else if (obj instanceof LayerInfo) { LayerInfo layerInfo = (LayerInfo) obj; prefixedName = tileLayerName(layerInfo); } if (null != prefixedName) { // notify the layer has been removed mediator.removeTileLayers(Arrays.asList(prefixedName)); } }
public void testLayerGroupInfoRemoved() throws Exception { CatalogRemoveEventImpl event = new CatalogRemoveEventImpl(); event.setSource(mockLayerGroupInfo); when(mockMediator.hasTileLayer(same(mockLayerGroupInfo))).thenReturn(true); listener.handleRemoveEvent(event); verify(mockMediator).removeTileLayers( eq(Arrays.asList(GWC.tileLayerName(mockLayerGroupInfo)))); }
public void testLayerInfoRemoved() throws Exception { CatalogRemoveEventImpl event = new CatalogRemoveEventImpl(); event.setSource(mockLayerInfo); when(mockMediator.hasTileLayer(same(mockLayerInfo))).thenReturn(true); listener.handleRemoveEvent(event); verify(mockMediator).removeTileLayers(eq(Arrays.asList(mockResourceInfo.prefixedName()))); }
public void testLayerGroupInfoStylesChanged() throws Exception { CatalogModifyEvent modifyEvent = mock(CatalogModifyEvent.class); when(modifyEvent.getSource()).thenReturn(mockLayerGroupInfo); when(modifyEvent.getPropertyNames()).thenReturn(Arrays.asList("styles")); List<StyleInfo> oldStyles = Collections.emptyList(); StyleInfo newStyle = mock(StyleInfo.class); List<StyleInfo> newStyles = Collections.singletonList(newStyle); when(modifyEvent.getOldValues()).thenReturn(Collections.singletonList((Object) oldStyles)); when(modifyEvent.getNewValues()).thenReturn(Collections.singletonList((Object) newStyles)); // the tile layer must exist on the layer metadata otherwise the event will be ignored GeoServerTileLayerInfo info = TileLayerInfoUtil.loadOrCreate(mockLayerGroupInfo, GWCConfig.getOldDefaults()); GeoServerTileLayer tileLayer = mock(GeoServerTileLayer.class); when(tileLayer.getInfo()).thenReturn(info); when(mockMediator.hasTileLayer(same(mockLayerGroupInfo))).thenReturn(true); when(mockMediator.getTileLayer(same(mockLayerGroupInfo))).thenReturn(tileLayer); listener.handleModifyEvent(modifyEvent); CatalogPostModifyEvent postModifyEvent = mock(CatalogPostModifyEvent.class); when(postModifyEvent.getSource()).thenReturn(mockLayerGroupInfo); listener.handlePostModifyEvent(postModifyEvent); verify(mockMediator).truncate(eq(LAYER_GROUP_NAME)); }
public void testLayerGroupInfoLayersChanged() throws Exception { CatalogModifyEvent modifyEvent = mock(CatalogModifyEvent.class); when(modifyEvent.getSource()).thenReturn(mockLayerGroupInfo); when(modifyEvent.getPropertyNames()).thenReturn(Arrays.asList("layers")); List<LayerInfo> oldLayers = Collections.emptyList(); List<LayerInfo> newLayers = Collections.singletonList(mockLayerInfo); when(modifyEvent.getOldValues()).thenReturn(Collections.singletonList((Object) oldLayers)); when(modifyEvent.getNewValues()).thenReturn(Collections.singletonList((Object) newLayers)); // the tile layer must exist otherwise the event will be ignored GeoServerTileLayerInfo tileLayerInfo = TileLayerInfoUtil.loadOrCreate(mockLayerGroupInfo, mockMediator.getConfig()); GridSetBroker gridsets = new GridSetBroker(true, true); GeoServerTileLayer tileLayer = new GeoServerTileLayer(mockLayerGroupInfo, gridsets, tileLayerInfo); when(mockMediator.hasTileLayer(same(mockLayerGroupInfo))).thenReturn(true); when(mockMediator.getTileLayer(same(mockLayerGroupInfo))).thenReturn(tileLayer); listener.handleModifyEvent(modifyEvent); CatalogPostModifyEvent postModifyEvent = mock(CatalogPostModifyEvent.class); when(postModifyEvent.getSource()).thenReturn(mockLayerGroupInfo); listener.handlePostModifyEvent(postModifyEvent); verify(mockMediator).truncate(eq(LAYER_GROUP_NAME)); }
public void testLayerInfoDefaultStyleChanged() throws Exception { final String oldName = "oldStyle"; final String newName = "newStyle"; StyleInfo oldStyle = mock(StyleInfo.class); when(oldStyle.getName()).thenReturn(oldName); StyleInfo newStyle = mock(StyleInfo.class); when(newStyle.getName()).thenReturn(newName); when(mockLayerInfo.getDefaultStyle()).thenReturn(newStyle); CatalogModifyEvent modifyEvent = mock(CatalogModifyEvent.class); when(modifyEvent.getSource()).thenReturn(mockLayerInfo); when(modifyEvent.getPropertyNames()).thenReturn(Arrays.asList("defaultStyle")); when(modifyEvent.getOldValues()).thenReturn(Collections.singletonList((Object) oldStyle)); when(modifyEvent.getNewValues()).thenReturn(Collections.singletonList((Object) newStyle)); GeoServerTileLayer tileLayer = mock(GeoServerTileLayer.class); when(mockMediator.getTileLayerByName(eq(PREFIXED_RESOURCE_NAME))).thenReturn(tileLayer); // the tile layer must exist on the layer metadata otherwise the event will be ignored GeoServerTileLayerInfo info = TileLayerInfoUtil.loadOrCreate(mockLayerInfo, GWCConfig.getOldDefaults()); when(tileLayer.getInfo()).thenReturn(info); when(mockMediator.hasTileLayer(same(mockLayerInfo))).thenReturn(true); when(mockMediator.getTileLayer(same(mockLayerInfo))).thenReturn(tileLayer); listener.handleModifyEvent(modifyEvent); CatalogPostModifyEvent postModifyEvent = mock(CatalogPostModifyEvent.class); when(postModifyEvent.getSource()).thenReturn(mockLayerInfo); listener.handlePostModifyEvent(postModifyEvent); verify(mockMediator).truncateByLayerAndStyle(eq(PREFIXED_RESOURCE_NAME), eq(oldName)); verify(mockMediator).save(any(GeoServerTileLayer.class)); }
if (!mediator.hasTileLayer(layerInfo)) { continue;
when(tileLayer.getInfo()).thenReturn(info); when(mockMediator.hasTileLayer(any(CatalogInfo.class))).thenReturn(true); when(mockMediator.getTileLayer(any(CatalogInfo.class))).thenReturn(tileLayer);
when(tileLayer.getLayerGroupInfo()).thenReturn(mockLayerGroupInfo); when(mockMediator.hasTileLayer(same(mockLayerGroupInfo))).thenReturn(true); when(mockMediator.getTileLayer(same(mockLayerGroupInfo))).thenReturn(tileLayer); when(mockMediator.getTileLayerByName(eq(oldGroupName))).thenReturn(tileLayer); verify(mockMediator, times(1)).hasTileLayer(same(mockLayerGroupInfo)); verify(mockMediator, times(1)).getTileLayer(same(mockLayerGroupInfo));
GWCConfig.getOldDefaults()); GeoServerTileLayer tileLayer = mock(GeoServerTileLayer.class); when(mockMediator.hasTileLayer(same(mockResourceInfo))).thenReturn(true); when(tileLayer.getInfo()).thenReturn(info); when(tileLayer.getLayerInfo()).thenReturn(mockLayerInfo); verify(mockMediator, times(1)).hasTileLayer(same(mockResourceInfo));
when(tileLayer.getLayerGroupInfo()).thenReturn(mockLayerGroupInfo); when(mockMediator.hasTileLayer(same(mockLayerGroupInfo))).thenReturn(true); when(mockMediator.getTileLayer(same(mockLayerGroupInfo))).thenReturn(tileLayer); final String oldLayerName = tileLayerName(mockLayerGroupInfo); verify(mockMediator, times(1)).hasTileLayer(same(mockLayerGroupInfo)); verify(mockMediator, times(1)).getTileLayer(same(mockLayerGroupInfo));
when(tileLayer.getLayerInfo()).thenReturn(mockLayerInfo); when(mockMediator.hasTileLayer(same(mockResourceInfo))).thenReturn(true); when(mockMediator.getTileLayer(same(mockResourceInfo))).thenReturn(tileLayer); when(mockMediator.getTileLayerByName(eq(oldPrefixedName))).thenReturn(tileLayer);