SettingsInfo settings = gs.getFactory().createSettings(); settings.setLocalWorkspaceIncludesPrefix(true); settings.setWorkspace(workspace); gs.add(settings); assertEquals("sf:localGroup", catalog.getLayerGroupByName("localGroup").prefixedName());
@Test public void testAddSettings() throws Exception { testAddWorkspace(); WorkspaceInfo ws = catalog.getWorkspaceByName("acme"); SettingsInfo settings = getGeoServer().getFactory().createSettings(); settings.setTitle("ACME"); settings.setWorkspace(ws); File f = catalog.getResourceLoader().find("workspaces", ws.getName(), "settings.xml"); assertNull(f); getGeoServer().add(settings); f = catalog.getResourceLoader().find("workspaces", ws.getName(), "settings.xml"); assertNotNull(f); Document dom = dom(f); assertXpathEvaluatesTo("ACME", "/settings/title", dom); }
@Test public void testReloadWithLocalServices() throws Exception { // setup a non default workspace WorkspaceInfo ws = getCatalog().getFactory().createWorkspace(); ws.setName("nonDefault"); NamespaceInfo ni = getCatalog().getFactory().createNamespace(); ni.setPrefix("nonDefault"); ni.setURI("http://www.geoserver.org/nonDefault"); getCatalog().add(ws); getCatalog().add(ni); // create a ws specific setting SettingsInfo s = geoServer.getFactory().createSettings(); s.setWorkspace(ws); geoServer.add(s); getGeoServer().reload(); }
@Test public void testModifySettingsChangeWorkspace() throws Exception { testAddSettings(); WorkspaceInfo ws1 = catalog.getWorkspaceByName("acme"); WorkspaceInfo ws2 = catalog.getFactory().createWorkspace(); ws2.setName("foo"); catalog.add(ws2); SettingsInfo settings = getGeoServer().getSettings(ws1); settings.setWorkspace(ws2); getGeoServer().save(settings); File f = catalog.getResourceLoader().find("workspaces", ws1.getName(), "settings.xml"); assertNull(f); f = catalog.getResourceLoader().find("workspaces", ws2.getName(), "settings.xml"); assertNotNull(f); Document dom = dom(f); assertXpathEvaluatesTo(ws2.getId(), "/settings/workspace/id", dom); }
settings = geoServer.getFactory().createSettings(); settings.setWorkspace(ws); settings.getContact().setContactPerson("Andrea Aime"); settings.getContact().setAddressElectronicMailAddress("andrea@geoserver.org");
@Test public void testGetSettings() throws Exception { GeoServerInfo global = geoServer.getFactory().createGlobal(); geoServer.setGlobal(global); SettingsInfo s = geoServer.getSettings(); assertNotNull(s); assertEquals(4, s.getNumDecimals()); WorkspaceInfo ws = geoServer.getCatalog().getFactory().createWorkspace(); ws.setName("acme"); geoServer.getCatalog().add(ws); SettingsInfo t = geoServer.getFactory().createSettings(); t.setNumDecimals(7); t.setWorkspace(ws); geoServer.add(t); assertNotNull(geoServer.getSettings(ws)); assertEquals(7, geoServer.getSettings(ws).getNumDecimals()); assertEquals(4, geoServer.getSettings().getNumDecimals()); LocalWorkspace.set(ws); try { assertNotNull(geoServer.getSettings()); assertEquals(7, geoServer.getSettings().getNumDecimals()); } finally { LocalWorkspace.remove(); } }
@PutMapping( consumes = { MediaType.APPLICATION_JSON_VALUE, MediaTypeExtensions.TEXT_JSON_VALUE, MediaType.APPLICATION_XML_VALUE, MediaType.TEXT_XML_VALUE } ) public void localSettingsPut( @PathVariable String workspaceName, @RequestBody SettingsInfo settingsInfo) { if (workspaceName != null) { WorkspaceInfo workspaceInfo = geoServer.getCatalog().getWorkspaceByName(workspaceName); SettingsInfo original = geoServer.getSettings(workspaceInfo); if (original == null) { settingsInfo.setWorkspace(workspaceInfo); geoServer.add(settingsInfo); geoServer.save(geoServer.getSettings(workspaceInfo)); } else { OwsUtils.copy(settingsInfo, original, SettingsInfo.class); original.setWorkspace(workspaceInfo); geoServer.save(original); } } }
@PostMapping( consumes = { MediaType.APPLICATION_JSON_VALUE, MediaTypeExtensions.TEXT_JSON_VALUE, MediaType.APPLICATION_XML_VALUE, MediaType.TEXT_XML_VALUE } ) @ResponseStatus(HttpStatus.CREATED) public String localSettingsCreate( @PathVariable String workspaceName, @RequestBody SettingsInfo settingsInfo) { String name = ""; if (workspaceName != null) { Catalog catalog = geoServer.getCatalog(); WorkspaceInfo workspaceInfo = catalog.getWorkspaceByName(workspaceName); settingsInfo.setWorkspace(workspaceInfo); geoServer.add(settingsInfo); geoServer.save(geoServer.getSettings(workspaceInfo)); name = settingsInfo.getWorkspace().getName(); } return name; }
@Override protected void handleObjectPut(Object obj) throws Exception { String workspace = getAttribute("workspace"); if (workspace != null) { WorkspaceInfo workspaceInfo = catalog.getWorkspaceByName(workspace); SettingsInfo settingsInfo = (SettingsInfo) obj; SettingsInfo original = geoServer.getSettings(workspaceInfo); if (original == null) { settingsInfo.setWorkspace(workspaceInfo); geoServer.add(settingsInfo); geoServer.save(geoServer.getSettings(workspaceInfo)); } else { OwsUtils.copy(settingsInfo, original, SettingsInfo.class); original.setWorkspace(workspaceInfo); geoServer.save(original); } } }
/** * Return the local SettingsInfo updating its member with the ones coming from the passed JAIInfo * * @param geoServer the local GeoServer instance * @param deserInfo the de-serialized JAIInfo instance * @return the updated and local JAIInfo * * @throws IllegalAccessException {@link BeanUtilsBean.copyProperties} * @throws InvocationTargetException {@link BeanUtilsBean.copyProperties} * @throws IllegalArgumentException if arguments are null */ private static SettingsInfo localizeSettingsInfo(final GeoServer geoServer, final SettingsInfo deserInfo) throws IllegalAccessException, InvocationTargetException { if (geoServer == null || deserInfo == null) throw new IllegalArgumentException("Wrong passed arguments are null"); // get local instance final SettingsInfo info = geoServer.getSettings(); // overwrite all members BeanUtils.copyProperties(info, deserInfo); final WorkspaceInfo workspace = info.getWorkspace(); if (workspace != null) { info.setWorkspace(CatalogUtils.localizeWorkspace(workspace, geoServer.getCatalog())); } final ContactInfo contact = info.getContact(); if (contact != null) { info.setContact(localizeContactInfo(geoServer, contact)); } return info; }
/** * Return the local SettingsInfo updating its member with the ones coming from the passed JAIInfo * * @param geoServer the local GeoServer instance * @param deserInfo the de-serialized JAIInfo instance * @return the updated and local JAIInfo * * @throws IllegalAccessException {@link BeanUtilsBean.copyProperties} * @throws InvocationTargetException {@link BeanUtilsBean.copyProperties} * @throws IllegalArgumentException if arguments are null */ private static SettingsInfo localizeSettingsInfo(final GeoServer geoServer, final SettingsInfo deserInfo) throws IllegalAccessException, InvocationTargetException { if (geoServer == null || deserInfo == null) throw new IllegalArgumentException("Wrong passed arguments are null"); // get local instance final SettingsInfo info = geoServer.getSettings(); // overwrite all members BeanUtils.copyProperties(info, deserInfo); final WorkspaceInfo workspace = info.getWorkspace(); if (workspace != null) { info.setWorkspace(CatalogUtils.localizeWorkspace(workspace, geoServer.getCatalog())); } final ContactInfo contact = info.getContact(); if (contact != null) { info.setContact(localizeContactInfo(geoServer, contact)); } return info; }
@Override protected String handleObjectPost(Object obj) throws Exception { String name = ""; String workspace = getAttribute("workspace"); if (workspace != null) { Catalog catalog = geoServer.getCatalog(); WorkspaceInfo workspaceInfo = catalog.getWorkspaceByName(workspace); SettingsInfo settings = (SettingsInfo) obj; settings.setWorkspace(workspaceInfo); geoServer.add(settings); geoServer.save(geoServer.getSettings(workspaceInfo)); name = settings.getWorkspace().getName(); } return name; }
@Override public SettingsInfo getObject() { if (info == null) { GeoServer gs = GeoServerApplication.get().getGeoServer(); info = gs.getFactory().createSettings(); // initialize from global settings SettingsInfo global = gs.getGlobal().getSettings(); // hack, we need to copy out composite objects separately to get around proxying // madness ContactInfo contact = gs.getFactory().createContact(); OwsUtils.copy(global.getContact(), contact, ContactInfo.class); OwsUtils.copy(global, info, SettingsInfo.class); info.setContact(contact); info.setWorkspace(wsModel.getObject()); } return info; } }
@Override public SettingsInfo getObject() { if (info == null) { GeoServer gs = GeoServerApplication.get().getGeoServer(); info = gs.getFactory().createSettings(); //initialize from global settings SettingsInfo global = gs.getGlobal().getSettings(); //hack, we need to copy out composite objects separately to get around proxying // madness ContactInfo contact = gs.getFactory().createContact(); OwsUtils.copy(global.getContact(), contact, ContactInfo.class); OwsUtils.copy(global, info, SettingsInfo.class); info.setContact(contact); info.setWorkspace(wsModel.getObject()); } return info; } }
SettingsInfo workspaceSettings = new SettingsInfoImpl(); workspaceSettings.setTitle(randomString()); workspaceSettings.setWorkspace(workspace); geoServer.add(workspaceSettings);