/** * Creates a default tile layer info based on the global defaults, public only for unit testing * purposes. */ public static GeoServerTileLayerInfoImpl create(GWCConfig defaults) { GeoServerTileLayerInfoImpl info = new GeoServerTileLayerInfoImpl(); info.setEnabled(defaults.isCacheLayersByDefault()); info.setAutoCacheStyles(defaults.isCacheNonDefaultStyles()); for (String gsetId : defaults.getDefaultCachingGridSetIds()) { XMLGridSubset subset = new XMLGridSubset(); subset.setGridSetName(gsetId); info.getGridSubsets().add(subset); } info.getMimeFormats().addAll(defaults.getDefaultOtherCacheFormats()); info.setGutter(defaults.getGutter()); info.setMetaTilingX(defaults.getMetaTilingX()); info.setMetaTilingY(defaults.getMetaTilingY()); return info; }
private final Object writeReplace() { parameterFilters = getParameterFilters(); return this; }
/** * XStream initialization of unset fields * * @return {@code this} */ private final Object readResolve() { if (null == metaWidthHeight) { metaWidthHeight = new int[2]; } gridSubsets = nonNull(gridSubsets); mimeFormats = nonNull(mimeFormats); // Convert the deserialized set into a map. parameterFilters = nonNull(parameterFilters); setParameterFilters(parameterFilters); // Apply the old autoCacheStyles flag if it was specified. if (autoCacheStyles != null) { if (autoCacheStyles) { if (!isAutoCacheStyles()) { addParameterFilter(new StyleParameterFilter()); } } else { if (isAutoCacheStyles()) { this.removeParameterFilter("STYLES"); } } autoCacheStyles = null; } return this; }
/** @see java.lang.Object#clone() */ @Override public GeoServerTileLayerInfoImpl clone() { GeoServerTileLayerInfoImpl clone; try { clone = (GeoServerTileLayerInfoImpl) super.clone(); } catch (CloneNotSupportedException e) { throw propagate(e); } clone.metaWidthHeight = metaWidthHeight.clone(); clone.gridSubsets = nonNull((Set<XMLGridSubset>) null); for (XMLGridSubset gs : gridSubsets) { clone.gridSubsets.add(gs.clone()); } clone.mimeFormats = nonNull((Set<String>) null); clone.mimeFormats.addAll(mimeFormats); clone.parameterFiltersMap = nonNull((Map<String, ParameterFilter>) null); for (ParameterFilter pf : parameterFiltersMap.values()) { clone.addParameterFilter(pf.clone()); } return clone; }
@Override protected void setUp() throws Exception { info = new GeoServerTileLayerInfoImpl(); defaults = GWCConfig.getOldDefaults(); defaultVectorInfo = TileLayerInfoUtil.create(defaults); defaultVectorInfo.getMimeFormats().clear(); defaultVectorInfo.getMimeFormats().addAll(defaults.getDefaultVectorCacheFormats()); }
public static GeoServerTileLayerInfoImpl loadOrCreate(final LayerInfo layerInfo, final GWCConfig defaults) { GeoServerTileLayerInfoImpl info = LegacyTileLayerInfoLoader.load(layerInfo); if (info == null) { info = create(defaults); final ResourceInfo resource = layerInfo.getResource(); if (resource instanceof FeatureTypeInfo) { info.getMimeFormats().clear(); info.getMimeFormats().addAll(defaults.getDefaultVectorCacheFormats()); } else if (resource instanceof CoverageInfo) { info.getMimeFormats().clear(); info.getMimeFormats().addAll(defaults.getDefaultCoverageCacheFormats()); } checkAutomaticStyles(layerInfo, info); } info.setName(tileLayerName(layerInfo)); info.setId(layerInfo.getId()); return info; }
public static GeoServerTileLayerInfoImpl load(final LayerInfo layer) { MetadataMap metadataMap = layer.getMetadata(); if (!hasTileLayerDef(metadataMap)) { return null; } GeoServerTileLayerInfoImpl tileLayerInfo = load(metadataMap); if (metadataMap.containsKey(CONFIG_KEY_CACHED_STYLES)) { final String defaultStyle = layer.getDefaultStyle() == null ? "" : layer .getDefaultStyle().getName(); String cachedStylesStr = metadataMap.get(CONFIG_KEY_CACHED_STYLES, String.class); Set<String> cachedStyles = unmarshalSet(cachedStylesStr); TileLayerInfoUtil.setCachedStyles(tileLayerInfo, defaultStyle, cachedStyles); } else if (tileLayerInfo.isAutoCacheStyles()) { if (layer.getStyles() != null && layer.getStyles().size() > 0) { final String defaultStyle = layer.getDefaultStyle() == null ? "" : layer .getDefaultStyle().getName(); Set<String> cachedStyles = new HashSet<String>(); for (StyleInfo style : layer.getStyles()) { cachedStyles.add(style.getName()); } TileLayerInfoUtil.setCachedStyles(tileLayerInfo, defaultStyle, cachedStyles); } } tileLayerInfo.setName(tileLayerName(layer)); tileLayerInfo.setId(layer.getId()); return tileLayerInfo; }
@Override public void setGridSubsets(Set<XMLGridSubset> gridSubsets) { this.gridSubsets = nonNull(gridSubsets); }
public void testRenameAlternateStyle() throws Exception { Set<ParameterFilter> params = new HashSet<ParameterFilter>(); when(mockTileLayerInfo.getParameterFilters()).thenReturn(params); TileLayerInfoUtil.setCachedStyles(mockTileLayerInfo, null, ImmutableSet.of(STYLE_NAME)); assertEquals(1, params.size()); ImmutableSet<String> styles = ImmutableSet.of(STYLE_NAME); when(mockTileLayerInfo.cachedStyles()).thenReturn(styles); listener.handleModifyEvent(styleNameModifyEvent); assertEquals(1, params.size()); ParameterFilter updated = params.iterator().next(); assertTrue(updated instanceof StringParameterFilter); assertEquals(Lists.newArrayList(STYLE_NAME_MODIFIED), ((StringParameterFilter) updated).getValues()); verify(mockTileLayer, times(1)).resetParameterFilters(); verify(mockMediator, times(1)).truncateByLayerAndStyle(eq(PREFIXED_RESOURCE_NAME), eq(STYLE_NAME)); verify(mockMediator, times(1)).save(same(mockTileLayer)); }
public GeoServerTileLayerInfoImpl() { readResolve(); }
layersByName.remove(oldValue.getName());
public void testNoGeometry() throws Exception { org.opengis.feature.type.FeatureType featureTypeWithNoGeometry = mock(org.opengis.feature.type.FeatureType.class); when(featureTypeWithNoGeometry.getGeometryDescriptor()).thenReturn(null); org.geoserver.catalog.FeatureTypeInfo resourceWithNoGeometry = mock(org.geoserver.catalog.FeatureTypeInfo.class); when(resourceWithNoGeometry.getFeatureType()).thenReturn(featureTypeWithNoGeometry); LayerInfo layerWithNoGeometry = mockLayer("layerWithNoGeometry", new String[]{}, LayerInfo.Type.VECTOR); layerWithNoGeometry.setResource(resourceWithNoGeometry); GeoServerTileLayer tl = mock(GeoServerTileLayer.class); GeoServerTileLayerInfo info = new GeoServerTileLayerInfoImpl(); info.setId("layerWithNoGeometry"); info.setName("layerWithNoGeometry"); when(tl.getId()).thenReturn("layerWithNoGeometry"); when(tl.getInfo()).thenReturn(info); when(tl.getLayerInfo()).thenReturn(layerWithNoGeometry); when(catalog.getLayer(layerWithNoGeometry.getId())).thenReturn(layerWithNoGeometry); when(catalog.getLayerByName(eq(tileLayerName(layerWithNoGeometry)))).thenReturn( layerWithNoGeometry); config.addLayer(tl); config.save(); verify(this.tileLayerCatalog, never()).save(info); } }
/** * Creates a cached tile layer from the given Layer * * @param layerInfo the layer to cache * @param defaults default configuration */ public static GeoServerTileLayerInfoImpl loadOrCreate( final LayerInfo layerInfo, final GWCConfig defaults) { GeoServerTileLayerInfoImpl info = LegacyTileLayerInfoLoader.load(layerInfo); if (info == null) { info = create(defaults); final ResourceInfo resource = layerInfo.getResource(); if (resource instanceof FeatureTypeInfo) { info.getMimeFormats().clear(); info.getMimeFormats().addAll(defaults.getDefaultVectorCacheFormats()); } else if (resource instanceof CoverageInfo) { info.getMimeFormats().clear(); info.getMimeFormats().addAll(defaults.getDefaultCoverageCacheFormats()); } checkAutomaticStyles(layerInfo, info); } info.setName(tileLayerName(layerInfo)); info.setId(layerInfo.getId()); return info; }
@Override public void setGridSubsets(Set<XMLGridSubset> gridSubsets) { this.gridSubsets = nonNull(gridSubsets); }
public GeoServerTileLayerInfoImpl() { readResolve(); }
layersByName.remove(oldValue.getName());
/** * Creates a default tile layer info based on the global defaults, public only for unit testing * purposes. */ public static GeoServerTileLayerInfoImpl create(GWCConfig defaults) { GeoServerTileLayerInfoImpl info = new GeoServerTileLayerInfoImpl(); info.setEnabled(defaults.isCacheLayersByDefault()); info.setAutoCacheStyles(defaults.isCacheNonDefaultStyles()); for (String gsetId : defaults.getDefaultCachingGridSetIds()) { XMLGridSubset subset = new XMLGridSubset(); subset.setGridSetName(gsetId); info.getGridSubsets().add(subset); } info.getMimeFormats().addAll(defaults.getDefaultOtherCacheFormats()); info.setGutter(defaults.getGutter()); info.setMetaTilingX(defaults.getMetaTilingX()); info.setMetaTilingY(defaults.getMetaTilingY()); info.setInMemoryCached(true); return info; }
public void testGetLayerByName() { 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); }