public static GeoServerTileLayerInfo loadOrCreate(final CatalogInfo info, final GWCConfig defaults) { if (info instanceof LayerInfo) { return loadOrCreate((LayerInfo) info, defaults); } if (info instanceof LayerGroupInfo) { return loadOrCreate((LayerGroupInfo) info, defaults); } throw new IllegalArgumentException(); }
/** * Creates a cached tile layer from the given Layer or Layer Group * * @param info a Layerinfo or LayerGroupInfo * @param defaults default configuration */ public static GeoServerTileLayerInfo loadOrCreate( final CatalogInfo info, final GWCConfig defaults) { if (info instanceof LayerInfo) { return loadOrCreate((LayerInfo) info, defaults); } if (info instanceof LayerGroupInfo) { return loadOrCreate((LayerGroupInfo) info, defaults); } throw new IllegalArgumentException(); }
public GeoServerTileLayer(final LayerGroupInfo layerGroup, final GWCConfig configDefaults, final GridSetBroker gridsets) { checkNotNull(layerGroup, "layerGroup"); checkNotNull(gridsets, "gridsets"); checkNotNull(configDefaults, "configDefaults"); this.gridSetBroker = gridsets; this.layerInfo = null; this.layerGroupInfo = layerGroup; this.info = TileLayerInfoUtil.loadOrCreate(layerGroup, configDefaults); }
public GeoServerTileLayer(final LayerInfo layerInfo, final GWCConfig configDefaults, final GridSetBroker gridsets) { checkNotNull(layerInfo, "layerInfo"); checkNotNull(gridsets, "gridsets"); checkNotNull(configDefaults, "configDefaults"); this.gridSetBroker = gridsets; this.layerInfo = layerInfo; this.layerGroupInfo = null; this.info = TileLayerInfoUtil.loadOrCreate(layerInfo, configDefaults); }
public GeoServerTileLayer( final PublishedInfo publishedInfo, final GWCConfig configDefaults, final GridSetBroker gridsets) { checkNotNull(publishedInfo, "publishedInfo"); checkNotNull(gridsets, "gridsets"); checkNotNull(configDefaults, "configDefaults"); this.gridSetBroker = gridsets; this.publishedInfo = publishedInfo; this.info = TileLayerInfoUtil.loadOrCreate(getPublishedInfo(), configDefaults); }
public GeoServerTileLayer( final Catalog catalog, final String publishedId, final GWCConfig configDefaults, final GridSetBroker gridsets) { checkNotNull(catalog, "catalog"); checkNotNull(publishedId, "publishedId"); checkNotNull(gridsets, "gridsets"); checkNotNull(configDefaults, "configDefaults"); this.gridSetBroker = gridsets; this.catalog = catalog; this.publishedId = publishedId; this.info = TileLayerInfoUtil.loadOrCreate(getPublishedInfo(), configDefaults); }
public void testInitializeLayersToOldDefaults() throws Exception { // no gwc-gs.xml exists when(configPersister.findConfigFile()).thenReturn(null); // ignore the upgrade of the direct wms integration flag on this test when(geoServer.getService(eq(WMSInfo.class))).thenReturn(null); // let the catalog have something to initialize LayerInfo layer = mockLayer("testLayer", new String[]{}, LayerInfo.Type.RASTER); LayerGroupInfo group = mockGroup("testGroup", layer); when(rawCatalog.getLayers()).thenReturn(Lists.newArrayList(layer)); when(rawCatalog.getLayerGroups()).thenReturn(Lists.newArrayList(group)); // run layer initialization initializer.initialize(geoServer); // make sure default tile layers were created GWCConfig oldDefaults = GWCConfig.getOldDefaults(); GeoServerTileLayerInfo tileLayer = TileLayerInfoUtil.loadOrCreate(layer, oldDefaults); GeoServerTileLayerInfo tileLayerGroup = TileLayerInfoUtil.loadOrCreate(group, oldDefaults); verify(tileLayerCatalog, times(1)).save(eq(tileLayer)); verify(tileLayerCatalog, times(1)).save(eq(tileLayerGroup)); }
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")); }
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)); }
public void testMarshallingDefaults() { GWCConfig oldDefaults = GWCConfig.getOldDefaults(); LayerInfo layerInfo = mockLayer("testLayer", new String[]{}, LayerInfo.Type.RASTER); info = loadOrCreate(layerInfo, oldDefaults); testMarshaling(info); }
@Override protected void setUp() throws Exception { catalog = mock(Catalog.class); layer = mockLayer("testLayer", new String[]{"style1", "style2"}, LayerInfo.Type.RASTER); layerGroup = mockGroup("testGroup", layer); mockCatalog(); defaults = GWCConfig.getOldDefaults(); gwcConfigPersister = mock(GWCConfigPersister.class); when(gwcConfigPersister.getConfig()).thenReturn(defaults); storageBroker = mock(StorageBroker.class); gridSetBroker = new GridSetBroker(true, true); tileLayerInfo = TileLayerInfoUtil.loadOrCreate(layer, defaults); tileLayerGroupInfo = TileLayerInfoUtil.loadOrCreate(layerGroup, defaults); tileLayer = new GeoServerTileLayer(layer, gridSetBroker, tileLayerInfo); tileLayerGroup = new GeoServerTileLayer(layerGroup, gridSetBroker, tileLayerGroupInfo); tld = mock(TileLayerDispatcher.class); mockTileLayerDispatcher(); config = mock(Configuration.class); tileBreeder = mock(TileBreeder.class); quotaStore = mock(QuotaStore.class); diskQuotaMonitor = mock(DiskQuotaMonitor.class); owsDispatcher = mock(Dispatcher.class); mediator = new GWC(gwcConfigPersister, storageBroker, tld, gridSetBroker, tileBreeder, quotaStore, diskQuotaMonitor, owsDispatcher, catalog); GWC.set(mediator); }
when(modifyEvent.getNewValues()).thenReturn(Arrays.asList((Object) renamedGroupName)); GeoServerTileLayerInfo info = TileLayerInfoUtil.loadOrCreate(mockLayerGroupInfo, GWCConfig.getOldDefaults()); GeoServerTileLayer tileLayer = mock(GeoServerTileLayer.class);
when(rawCatalog.getLayerGroups()).thenReturn(Lists.newArrayList(group)); GeoServerTileLayerInfoImpl layerInfo = TileLayerInfoUtil.loadOrCreate(layer, defaults); GeoServerTileLayerInfoImpl groupInfo = TileLayerInfoUtil.loadOrCreate(group, defaults);
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()); }
when(modifyEvent.getNewValues()).thenReturn(Arrays.asList((Object) newNamespace)); GeoServerTileLayerInfo info = TileLayerInfoUtil.loadOrCreate(mockLayerInfo, GWCConfig.getOldDefaults()); GeoServerTileLayer tileLayer = mock(GeoServerTileLayer.class);
public void testCreateLayerGroupInfo() { LayerGroupInfoImpl group = mockGroup("testGroup", mockLayer("testLayer",new String[]{}, LayerInfoImpl.Type.RASTER)); defaults.getDefaultOtherCacheFormats().clear(); defaults.getDefaultOtherCacheFormats().add("image/png8"); defaults.getDefaultOtherCacheFormats().add("image/jpeg"); GeoServerTileLayerInfo expected = TileLayerInfoUtil.create(defaults); expected.setId(group.getId()); expected.setName(GWC.tileLayerName(group)); GeoServerTileLayerInfo info = TileLayerInfoUtil.loadOrCreate(group, defaults); assertNotNull(info); assertEquals(expected, info); }
public void testCreateLayerGroup() { LayerGroupInfoImpl lg = mockGroup("tesGroup", mockLayer("L1",new String[]{}, LayerInfoImpl.Type.RASTER), mockLayer("L2",new String[]{}, LayerInfoImpl.Type.RASTER)); GeoServerTileLayerInfo info = defaultVectorInfo; info.setId(lg.getId()); info.setName(GWC.tileLayerName(lg)); info.getMimeFormats().clear(); info.getMimeFormats().addAll(defaults.getDefaultOtherCacheFormats()); GeoServerTileLayerInfo actual; actual = TileLayerInfoUtil.loadOrCreate(lg, defaults); assertEquals(info, actual); }
public void testCreateLayerInfo() { LayerInfoImpl layer = mockLayer("testLayer",new String[]{}, LayerInfoImpl.Type.RASTER); GeoServerTileLayerInfo info = TileLayerInfoUtil.loadOrCreate(layer, defaults); defaultVectorInfo.setId(layer.getId()); defaultVectorInfo.setName(tileLayerName(layer)); assertNotNull(info); assertEquals(defaultVectorInfo, info); }