private XStreamPersister buildPersister() { List<GeoServerSecurityProvider> all = lookupSecurityProviders(); // create and configure an xstream persister to load the configuration files XStreamPersister xp = new XStreamPersisterFactory().createXMLPersister(); xp.getXStream().alias("security", SecurityManagerConfig.class); for (GeoServerSecurityProvider roleService : all) { roleService.configure(xp); } return xp; }
/** * Get the LoggingInfo used at startup before the regular configuration system is available. * * <p>You probably want {@link org.geoserver.config.GeoServer#getLogging} instead * * @return LoggingInfo loaded directly from logging.xml. Returns null if logging.xml does not * exist */ @Deprecated public static @Nullable LoggingInfo getLogging(ResourceStore store) throws IOException { // Exposing this is a hack to provide JDBCConfig with the information it needs to compute // the "change" between logging.xml and the versions stored in JDBC. KS // TODO find a better solution than re-initializing on JDBCCOnfig startup. Resource f = store.get("logging.xml"); if (f != null) { XStreamPersister xp = new XStreamPersisterFactory().createXMLPersister(); try (BufferedInputStream in = new BufferedInputStream(f.in())) { LoggingInfo loginfo = xp.load(in, LoggingInfo.class); return loginfo; } } else { return null; } }
return (T) cloneSerializable((Serializable) source); } else { XStreamPersister persister = XSTREAM_PERSISTER_FACTORY.createXMLPersister(); XStream xs = persister.getXStream(); String xml = xs.toXML(source);
XStreamPersister createXStreamPersister() { XStreamPersister xp = new XStreamPersisterFactory().createXMLPersister(); xp.setEncryptPasswordFields(false); return xp; }
XStreamPersister xp = xpf.createXMLPersister(); xp.setCatalog(catalog); loadCatalog(catalog, xp); geoserver = (GeoServer) bean; try { XStreamPersister xp = xpf.createXMLPersister(); xp.setCatalog(geoserver.getCatalog()); loadGeoServer(geoserver, xp);
public final void save(T service, GeoServer gs, Resource directory) throws Exception { String filename = getFilename(); Resource resource = directory == null ? resourceLoader.get(filename) : directory.get(filename); // using resource output stream makes sure we write on a temp file and them move try (OutputStream out = resource.out()) { XStreamPersister xp = xpf.createXMLPersister(); initXStreamPersister(xp, gs); xp.save(service, out); } }
@Test public void testMultimapConverter() throws Exception { XStreamPersisterFactory factory = new XStreamPersisterFactory(); XStreamPersister xmlPersister = factory.createXMLPersister(); XStream xs = xmlPersister.getXStream(); Multimap<String, Object> mmap = ArrayListMultimap.create(); mmap.put("one", "abc"); mmap.put("one", Integer.valueOf(2)); mmap.put("two", new NumberRange<Integer>(Integer.class, 10, 20)); ByteArrayOutputStream out = new ByteArrayOutputStream(); persister.save(mmap, out); // print(in(out)); Multimap mmap2 = persister.load(in(out), Multimap.class); assertEquals(mmap, mmap2); }
public void reload() throws Exception { destroy(); // reload catalog, make sure we reload the underlying catalog, not any wrappers Catalog catalog = geoserver.getCatalog(); if (catalog instanceof Wrapper) { catalog = ((Wrapper) geoserver.getCatalog()).unwrap(Catalog.class); } XStreamPersister xp = xpf.createXMLPersister(); xp.setCatalog(catalog); loadCatalog(catalog, xp); loadGeoServer(geoserver, xp); reloadInitializers(geoserver); }
@Test public void testServiceCustomAlias() throws Exception { XStreamPersister p = persister = new XStreamPersisterFactory().createXMLPersister(); p.getXStream().alias("ms", MyServiceInfo.class); MyServiceInfo s1 = new MyServiceInfo(); ByteArrayOutputStream out = out(); p.save(s1, out); Document dom = dom(in(out)); assertEquals("ms", dom.getDocumentElement().getNodeName()); }
@Before public void init() { factory = new GeoServerImpl().getFactory(); persister = new XStreamPersisterFactory().createXMLPersister(); }
public final T load(GeoServer gs, Resource directory) throws Exception { // look for file matching classname Resource file; if (Resources.exists(file = directory.get(getFilename()))) { // xstream it in try (BufferedInputStream in = new BufferedInputStream(file.in())) { XStreamPersister xp = xpf.createXMLPersister(); initXStreamPersister(xp, gs); return initialize(xp.load(in, getServiceClass())); } } else { // create an 'empty' object ServiceInfo service = createServiceFromScratch(gs); return initialize((T) service); } }
@Test public void testGeneratedStyles() throws Exception { XStreamPersisterFactory xpf = new XStreamPersisterFactory(); XStreamPersister xp = xpf.createXMLPersister(); xp.setCatalog(catalog); loader.initializeStyles(catalog, xp); StyleInfo polygon = catalog.getStyleByName(StyleInfo.DEFAULT_POLYGON); assertEquals("default_polygon.sld", polygon.getFilename()); }
@Before public void setUp() { URL url = DefaultGeoServerLoaderTest.class.getResource("/data_dir/nested_layer_groups"); GeoServerResourceLoader resourceLoader = new GeoServerResourceLoader(URLs.urlToFile(url)) { @Override public File createFile(File parentFile, String location) throws IOException { if ("hello.xml".equals(location)) { helloServiceSaved = true; } return super.createFile(parentFile, location); } }; GeoServerExtensionsHelper.singleton( "resourceLoader", resourceLoader, GeoServerResourceLoader.class); loader = new DefaultGeoServerLoader(resourceLoader); catalog = new CatalogImpl(); catalog.setResourceLoader(resourceLoader); XStreamPersisterFactory xpf = new XStreamPersisterFactory(); xp = xpf.createXMLPersister(); XStreamServiceLoader<HelloServiceInfo> helloLoader = new HelloServiceXStreamLoader(resourceLoader, "hello"); GeoServerExtensionsHelper.singleton("helloLoader", helloLoader, XStreamServiceLoader.class); }
Assume.assumeTrue(isOnline()); XStreamPersister xp = new XStreamPersisterFactory().createXMLPersister();
XStreamPersister persister = factory.createXMLPersister();
@Test public void testCoverageStoreReferencedByName() throws Exception { Catalog catalog = new CatalogImpl(); CatalogFactory cFactory = catalog.getFactory(); WorkspaceInfo ws = cFactory.createWorkspace(); ws.setName("foo"); CoverageStoreInfo cs1 = cFactory.createCoverageStore(); cs1.setName("bar"); cs1.setWorkspace(ws); catalog.detach(cs1); ((CoverageStoreInfoImpl) cs1).setId(null); ByteArrayOutputStream out = out(); XStreamPersister persister = new XStreamPersisterFactory().createXMLPersister(); persister.setReferenceByName(true); persister.save(cs1, out); CoverageStoreInfo ds2 = persister.load(in(out), CoverageStoreInfo.class); assertEquals("bar", ds2.getName()); assertNotNull(ds2.getWorkspace()); assertEquals("foo", ds2.getWorkspace().getId()); Document dom = dom(in(out)); assertEquals("coverageStore", dom.getDocumentElement().getNodeName()); }
@Test public void testDataStoreReferencedByName() throws Exception { Catalog catalog = new CatalogImpl(); CatalogFactory cFactory = catalog.getFactory(); WorkspaceInfo ws = cFactory.createWorkspace(); ws.setName("foo"); DataStoreInfo ds1 = cFactory.createDataStore(); ds1.setName("bar"); ds1.setWorkspace(ws); catalog.detach(ds1); ((DataStoreInfoImpl) ds1).setId(null); ByteArrayOutputStream out = out(); XStreamPersister persister = new XStreamPersisterFactory().createXMLPersister(); persister.setReferenceByName(true); persister.save(ds1, out); DataStoreInfo ds2 = persister.load(in(out), DataStoreInfo.class); assertEquals("bar", ds2.getName()); assertNotNull(ds2.getWorkspace()); assertEquals("foo", ds2.getWorkspace().getId()); Document dom = dom(in(out)); assertEquals("dataStore", dom.getDocumentElement().getNodeName()); }
@Test public void testWMSStoreReferencedByName() throws Exception { Catalog catalog = new CatalogImpl(); CatalogFactory cFactory = catalog.getFactory(); WorkspaceInfo ws = cFactory.createWorkspace(); ws.setName("foo"); WMSStoreInfo wms1 = cFactory.createWebMapServer(); wms1.setName("bar"); wms1.setWorkspace(ws); wms1.setCapabilitiesURL("http://fake.host/wms?request=GetCapabilities&service=wms"); catalog.detach(wms1); ((WMSStoreInfoImpl) wms1).setId(null); ByteArrayOutputStream out = out(); XStreamPersister persister = new XStreamPersisterFactory().createXMLPersister(); persister.setReferenceByName(true); persister.save(wms1, out); WMSStoreInfo wms2 = persister.load(in(out), WMSStoreInfo.class); assertEquals("bar", wms2.getName()); assertEquals(WMSStoreInfoImpl.DEFAULT_MAX_CONNECTIONS, wms2.getMaxConnections()); assertEquals(WMSStoreInfoImpl.DEFAULT_CONNECT_TIMEOUT, wms2.getConnectTimeout()); assertEquals(WMSStoreInfoImpl.DEFAULT_READ_TIMEOUT, wms2.getReadTimeout()); assertNotNull(wms2.getWorkspace()); assertEquals("foo", wms2.getWorkspace().getId()); Document dom = dom(in(out)); assertEquals("wmsStore", dom.getDocumentElement().getNodeName()); }
protected DimensionInfo unmarshallFromXML(Document doc) throws Exception { TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DOMSource source = new DOMSource(doc); ByteArrayOutputStream baos = new ByteArrayOutputStream(); StreamResult result = new StreamResult(baos); transformer.transform(source, result); XStreamPersisterFactory xpf = GeoServerExtensions.bean(XStreamPersisterFactory.class); XStreamPersister persister = xpf.createXMLPersister(); ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); return persister.load(bais, DimensionInfo.class); } }
@Test public void testLoadWatermark() throws Exception { XStreamPersisterFactory factory = GeoServerExtensions.bean(XStreamPersisterFactory.class); XStreamPersister xp = factory.createXMLPersister(); try (InputStream is = getClass().getResourceAsStream("xstream-featuretype.xml")) { xp.load(is, FeatureTypeInfo.class); } } }