public String getId() { return delegate.getId(); }
public DataAccessLimits getAccessLimits(Authentication user, LayerInfo layer) { if (user == null) { return null; } final String name = user.getName(); DataAccessLimits limits = (DataAccessLimits) getUserMap(name).get(layer.getId()); if (limits == null) { limits = getAccessLimits(user, layer.getResource()); } return limits; }
public void visit(LayerInfo layer) { // first update the groups, remove the layer, and if no // other layers remained, remove the group as well Filter groupContainsLayer = Predicates.equal("layers.id", layer.getId(), MatchAction.ANY); try (CloseableIterator<LayerGroupInfo> groups = catalog.list(LayerGroupInfo.class, groupContainsLayer)) { while (groups.hasNext()) { LayerGroupInfo group = groups.next(); // parallel remove of layer and styles int index = group.getLayers().indexOf(layer); while (index != -1) { group.getLayers().remove(index); group.getStyles().remove(index); index = group.getLayers().indexOf(layer); } // either update or remove the group if (group.getLayers().size() == 0) { visit(catalog.getLayerGroup(group.getId())); } else { catalog.save(group); } } } // remove the layer and (for the moment) its resource as well // TODO: change this to just remove the resource once the // resource/publish split is done ResourceInfo resource = layer.getResource(); catalog.remove(layer); catalog.remove(resource); }
@Test public void retrieveLayersFromIsolatedWorkspace() { Catalog catalog = getCatalog(); // create two workspaces with the same namespace, one of them is isolated createWorkspace("test_e1", "https://www.test_e.com", false); createWorkspace("test_e2", "https://www.test_e.com", true); WorkspaceInfo workspace1 = catalog.getWorkspaceByName("test_e1"); NamespaceInfo namespace1 = catalog.getNamespaceByPrefix("test_e1"); WorkspaceInfo workspace2 = catalog.getWorkspaceByName("test_e2"); NamespaceInfo namespace2 = catalog.getNamespaceByPrefix("test_e2"); // add a layer with the same name to both workspaces, layers have different content LayerInfo clonedLayer1 = cloneVectorLayerIntoWorkspace(workspace1, namespace1, "Lines", "layer_e"); LayerInfo clonedLayer2 = cloneVectorLayerIntoWorkspace(workspace2, namespace2, "Points", "layer_e"); assertThat(clonedLayer1.getId(), not(clonedLayer2.getId())); // retrieving the layer from the isolated workspace, should fail LayerInfo layer1 = catalog.getLayerByName("test_e1:layer_e"); assertThat(layer1, notNullValue()); assertThat(layer1.getId(), is(clonedLayer1.getId())); LayerInfo layer2 = catalog.getLayerByName("test_e3:layer_e"); assertThat(layer2, nullValue()); } }
List<Filter> layersIdFilters = new ArrayList<>(); for (LayerInfo layer : layers) { layersIdFilters.add(Predicates.equal("id", layer.getId()));
layer.setResource(ft); catalog.add(layer); String id = layer.getId();
layers.add(l); expect(l.getId()).andReturn(lId).anyTimes(); expect(l.getName()).andReturn(name).anyTimes(); expect(l.getType()).andReturn(PublishedType.VECTOR).anyTimes();
@Test public void testGetLayerById() { addLayer(); LayerInfo l2 = catalog.getLayer(l.getId()); assertNotNull(l2); assertNotSame(l, l2); assertEquals(l, l2); }
@Test public void testFullTextSearchAddedKeyword() { ft.getKeywords().add(new Keyword("air_temp")); ft.getKeywords().add(new Keyword("temperatureAir")); l.setResource(ft); addLayer(); LayerInfo lproxy = catalog.getLayer(l.getId()); FeatureTypeInfo ftproxy = (FeatureTypeInfo) lproxy.getResource(); ftproxy.getKeywords().add(new Keyword("newKeyword")); catalog.save(ftproxy); Filter filter = Predicates.fullTextSearch("newKeyword"); assertEquals(newHashSet(ftproxy), asSet(catalog.list(FeatureTypeInfo.class, filter))); assertEquals(newHashSet(lproxy), asSet(catalog.list(LayerInfo.class, filter))); }
layer.setEnabled(true); if (layer.getId() == null) { catalog.add(layer); } else {
layer.setEnabled(true); if (layer.getId() == null) { catalog.add(layer); } else {
public LayerDetachableModel(LayerInfo layer) { super(layer); this.id = layer.getId(); }
public PreviewLayerModel(PreviewLayer pl) { super(pl); id = pl.layerInfo != null ? pl.layerInfo.getId() : pl.groupInfo.getId(); group = pl.groupInfo != null; }
@Override public boolean apply(ImportTask input) { final StoreInfo store = input != null ? input.getStore() : null; final Catalog catalog = store != null ? store.getCatalog() : null; final LayerInfo layer = catalog != null ? catalog.getLayer(input.getLayer().getId()) : null; return (layer == null); } });
public void testPutGoodIdBadLayerName() throws Exception { final String layerName = getLayerId(MockData.BASIC_POLYGONS); final String id = getCatalog().getLayerByName(layerName).getId(); final String url = "gwc/rest/layers/badLayerName.xml"; MockHttpServletResponse response = putLayer(url, id, "badLayerName"); assertEquals(HttpServletResponse.SC_BAD_REQUEST, response.getStatusCode()); // See GWCGeoServerRESTConfigurationProvider$RESTConverterHelper.unmarshal String expected = "Layer with id '" + id + "' found but name does not match: 'badLayerName'/'" + layerName + "'"; assertEquals(expected, response.getOutputStreamContent()); }
public void testPutOverExistingTileLayerFails() throws Exception { final String layerName = getLayerId(MockData.BASIC_POLYGONS); final String id = getCatalog().getLayerByName(layerName).getId(); final String url = "gwc/rest/layers/" + layerName + ".xml"; MockHttpServletResponse response = putLayer(url, id, layerName); assertEquals(HttpServletResponse.SC_BAD_REQUEST, response.getStatusCode()); // See GWC's TileLayerRestlet String expected = "Layer with name " + layerName + " already exists, use POST if you want to replace it."; assertEquals(expected, response.getOutputStreamContent()); }
public void testPutSuccess() throws Exception { final String layerName = getLayerId(MockData.FORESTS); final String id = getCatalog().getLayerByName(layerName).getId(); final GWC mediator = GWC.get(); assertTrue(mediator.tileLayerExists(layerName)); mediator.removeTileLayers(Lists.newArrayList(layerName)); assertFalse(mediator.tileLayerExists(layerName)); final String url = "gwc/rest/layers/" + layerName + ".xml"; MockHttpServletResponse response = putLayer(url, id, layerName); assertEquals(HttpServletResponse.SC_OK, response.getStatusCode()); assertTrue(mediator.tileLayerExists(layerName)); }