/** * Returns the tile layers that refer to the given style, either as the tile layer's * {@link GeoServerTileLayer#getStyles() default style} or one of the * {@link GeoServerTileLayerInfoImpl#cachedStyles() cached styles}. * <p> * The result may be different from {@link #getLayerInfosFor(StyleInfo)} and * {@link #getLayerGroupsFor(StyleInfo)} as the {@link GeoServerTileLayerInfoImpl}'s backing * each {@link GeoServerTileLayer} may have assigned a subset of the layerinfo styles for * caching. * </p> */ public List<GeoServerTileLayer> getTileLayersForStyle(final String styleName) { Iterable<GeoServerTileLayer> tileLayers = getGeoServerTileLayers(); List<GeoServerTileLayer> affected = new ArrayList<GeoServerTileLayer>(); for (GeoServerTileLayer tl : tileLayers) { GeoServerTileLayerInfo info = tl.getInfo(); String defaultStyle = tl.getStyles();// may be null if backed by a LayerGroupInfo Set<String> cachedStyles = info.cachedStyles(); if (styleName.equals(defaultStyle) || cachedStyles.contains(styleName)) { affected.add(tl); } } return affected; }
/** * Returns the tile layers that refer to the given style, either as the tile layer's {@link * GeoServerTileLayer#getStyles() default style} or one of the {@link * GeoServerTileLayerInfoImpl#cachedStyles() cached styles}. * * <p>The result may be different from {@link #getLayerInfosFor(StyleInfo)} and {@link * #getLayerGroupsFor(StyleInfo)} as the {@link GeoServerTileLayerInfoImpl}'s backing each * {@link GeoServerTileLayer} may have assigned a subset of the layerinfo styles for caching. */ public List<GeoServerTileLayer> getTileLayersForStyle(final String styleName) { Iterable<GeoServerTileLayer> tileLayers = getGeoServerTileLayers(); List<GeoServerTileLayer> affected = new ArrayList<GeoServerTileLayer>(); for (GeoServerTileLayer tl : tileLayers) { try { GeoServerTileLayerInfo info = tl.getInfo(); String defaultStyle = tl.getStyles(); // may be null if backed by a LayerGroupInfo Set<String> cachedStyles = info.cachedStyles(); if (styleName.equals(defaultStyle) || cachedStyles.contains(styleName)) { affected.add(tl); } } catch (Exception e) { log.log(Level.SEVERE, "Failed to retrieve style info for layer" + tl.getName(), e); } } return affected; }
if (!newInfo.cachedStyles().equals(oldInfo.cachedStyles())) { Set<String> oldStyles = new HashSet<String>(oldInfo.cachedStyles()); Set<String> newStyles = new HashSet<String>(newInfo.cachedStyles()); oldStyles.removeAll(newStyles); for (String removedStyle : oldStyles) {
Set<String> oldStyles = oldInfo.cachedStyles(); Set<String> newStyles = newInfo.cachedStyles();
private void handleStyleRenamed(final String oldStyleName, final String newStyleName) { if (oldStyleName.equals(newStyleName)) { return; } List<GeoServerTileLayer> affectedLayers; affectedLayers = mediator.getTileLayersForStyle(oldStyleName); for (GeoServerTileLayer tl : affectedLayers) { LayerInfo layerInfo = tl.getLayerInfo(); if (layerInfo == null) { // no extra styles for layer groups continue; } GeoServerTileLayerInfo info = tl.getInfo(); ImmutableSet<String> styleNames = info.cachedStyles(); if (styleNames.contains(oldStyleName)) { tl.resetParameterFilters(); // pity, we don't have a way to just rename a style in GWC mediator.truncateByLayerAndStyle(tl.getName(), oldStyleName); Set<String> newStyles = new HashSet<String>(styleNames); newStyles.remove(oldStyleName); newStyles.add(newStyleName); String defaultStyle = layerInfo.getDefaultStyle() == null ? null : layerInfo.getDefaultStyle().prefixedName(); TileLayerInfoUtil.setCachedStyles(info, defaultStyle, newStyles); mediator.save(tl); } } }
styles.add(s.getName()); ImmutableSet<String> cachedStyles = tileLayerInfo.cachedStyles(); if (!styles.equals(cachedStyles)) {
public void testCreateLayerInfoAutoCacheStyles() { GeoServerTileLayerInfo info = defaultVectorInfo; info.setAutoCacheStyles(true); defaults.setCacheNonDefaultStyles(true); LayerInfoImpl layer = mockLayer("testLayer", new String[]{"style1", "style2"}, LayerInfoImpl.Type.RASTER); GeoServerTileLayerInfo actual; actual = TileLayerInfoUtil.loadOrCreate(layer, defaults); TileLayerInfoUtil.setCachedStyles(info, "default", ImmutableSet.of("style1", "style2")); assertEquals(info.cachedStyles(), actual.cachedStyles()); layer.setDefaultStyle(null); TileLayerInfoUtil.setCachedStyles(info, "", ImmutableSet.of("style1", "style2")); actual = TileLayerInfoUtil.loadOrCreate(layer, defaults); assertEquals(ImmutableSet.of("style1", "style2"), actual.cachedStyles()); }
ImmutableSet<String> styleNames = info.cachedStyles(); if (styleNames.contains(oldStyleName)) { tl.resetParameterFilters();
when(info.cachedStyles()).thenReturn(ImmutableSet.of("remainingStyle", "removedStyleName")); when(info.isAutoCacheStyles()).thenReturn(true);
final Set<String> mimeFormats = source.getMimeFormats(); final Boolean autoCacheStyles = source.isAutoCacheStyles(); final Set<String> cachedStyles = source.cachedStyles();
ImmutableSet<String> cachedStyles = tileLayerInfo.cachedStyles(); if (!styles.equals(cachedStyles)) {
final Set<String> mimeFormats = source.getMimeFormats(); final Boolean autoCacheStyles = source.isAutoCacheStyles(); final Set<String> cachedStyles = source.cachedStyles(); final boolean inMemoryCached = source.isInMemoryCached();
int numStyles = 1/* default */+ tileLayer.getInfo().cachedStyles().size(); final int expected = numGridsets * numFormats * numStyles; verify(tileBreeder, times(expected)).dispatchTasks(any(GWCTask[].class));
public void testLoadLayerInfoAutoCacheStyles() { GeoServerTileLayerInfo info = defaultVectorInfo; info.setAutoCacheStyles(true); LayerInfoImpl layer = mockLayer("testLayer", new String[]{"style1", "style2"}, LayerInfoImpl.Type.RASTER); assertNull(LegacyTileLayerInfoLoader.load(layer)); LegacyTileLayerInfoLoader.save(info, layer.getMetadata()); GeoServerTileLayerInfo actual; actual = LegacyTileLayerInfoLoader.load(layer); TileLayerInfoUtil.setCachedStyles(info, "default", ImmutableSet.of("style1", "style2")); info.setId(layer.getId()); info.setName(tileLayerName(layer)); assertEquals(info, actual); layer.setDefaultStyle(null); TileLayerInfoUtil.setCachedStyles(info, null, ImmutableSet.of("style1", "style2")); actual = LegacyTileLayerInfoLoader.load(layer); assertEquals(ImmutableSet.of("style1", "style2"), actual.cachedStyles()); }
public void testLoadLayerInfoExtraStyles() { GeoServerTileLayerInfo info = defaultVectorInfo; info.setAutoCacheStyles(false); TileLayerInfoUtil.setCachedStyles(info, "default", ImmutableSet.of("style1")); LayerInfoImpl layer = mockLayer("testLayer", new String[]{"style1", "style2"}, LayerInfoImpl.Type.RASTER); assertNull(LegacyTileLayerInfoLoader.load(layer)); LegacyTileLayerInfoLoader.save(info, layer.getMetadata()); GeoServerTileLayerInfo actual; actual = LegacyTileLayerInfoLoader.load(layer); info.setId(layer.getId()); info.setName(tileLayerName(layer)); assertEquals(info, actual); layer.setDefaultStyle(null); TileLayerInfoUtil.setCachedStyles(info, null, ImmutableSet.of("style1")); LegacyTileLayerInfoLoader.save(info, layer.getMetadata()); actual = LegacyTileLayerInfoLoader.load(layer); assertEquals(ImmutableSet.of("style1"), actual.cachedStyles()); }
private void testMarshaling(GeoServerTileLayerInfo info) { XStream xstream = XMLConfiguration.getConfiguredXStream(new XStream(), null); xstream = new GWCGeoServerConfigurationProvider().getConfiguredXStream(xstream); String marshalled = xstream.toXML(info); GeoServerTileLayerInfo unmarshalled = (GeoServerTileLayerInfo) xstream .fromXML(new StringReader(marshalled)); assertNotNull(unmarshalled); assertEquals("enabled", info.isEnabled(), unmarshalled.isEnabled()); assertEquals("autoCacheStyles", info.isAutoCacheStyles(), unmarshalled.isAutoCacheStyles()); assertEquals("gutter", info.getGutter(), unmarshalled.getGutter()); assertEquals("metaTilingX", info.getMetaTilingX(), unmarshalled.getMetaTilingX()); assertEquals("metaTilingY", info.getMetaTilingY(), unmarshalled.getMetaTilingY()); assertEquals("cachedStyles", info.cachedStyles(), unmarshalled.cachedStyles()); assertEquals("gridSubsets", info.getGridSubsets(), unmarshalled.getGridSubsets()); assertEquals("mimeFormats", info.getMimeFormats(), unmarshalled.getMimeFormats()); assertCollection("parameterFilters", info.getParameterFilters(), unmarshalled.getParameterFilters()); assertEquals("info", info, unmarshalled); }
request.setBbox(reqBbox); assertTrue(tileLayer.getInfo().cachedStyles().size() > 0); for (String style : tileLayer.getInfo().cachedStyles()) {