/** * Saves the ServerInfo Registry if the current configuration allows a persistant Registry ! * * <p>By default this is false, but when MyVle is initialized by the VBrowser the persistant * ServerInfo Registry will be enabled. */ public void save() { // Check new Configuration Manager ! ConfigManager confMan = this.context.getConfigManager(); if (confMan.getUsePersistantUserConfiguration() == false) return; VRL loc = confMan.getServerRegistryLocation(); // is synchronized will return consistant list of configs ArrayList<AttributeSet> sets = this.getInfoAttrSets(); // ResourceLoader loader=new ResourceLoader(context); XMLData xmlifier = new XMLData(); xmlifier.setVAttributeElementName("vlet:ServerInfoProperty"); xmlifier.setVAttributeSetElementName("vlet:ServerInfo"); // xmlifier.setPersistanteNodeElementName("vlet:ServerInfo2"); // No // Nodes! try { // bootstrap warning: use default ResourceLoader here: VRS might not be initialized! ResourceLoader writer = new ResourceLoader(); String xmlString = xmlifier.createXMLString(XML_SERVER_CONFIG_HEADER_TAG, sets, XML_SERVER_CONFIG_HEADER); writer.writeTextTo(loc.toURI(), xmlString); this.isSaved = true; } catch (Exception e) { // check persistant user configuration: logger.logException(ClassLogger.ERROR, e, "Couldn't save ServerInfo registry to:%s\n", loc); // but continue! } }
/** * Load saved server configuration. * * <p>Currently when MyVLe object is initialized the ServerInfoRegistry will be loaded. */ protected void load() throws VrsException { logger.debugPrintf(">>> load() <<<\n"); // // use serverInfo as mutex ! // synchronized (this.serverInfos) { // Use new Configuration Manager ConfigManager confMan = this.context.getConfigManager(); VRL loc = confMan.getServerRegistryLocation(); // is synchronized will return consistant list of configs ArrayList<AttributeSet> sets = this.getInfoAttrSets(); // No Context! ResourceLoader loader = new ResourceLoader(); XMLData xmlifier = new XMLData(); xmlifier.setVAttributeElementName("vlet:ServerInfoProperty"); xmlifier.setVAttributeSetElementName("vlet:ServerInfo"); InputStream inps; try { inps = loader.createInputStream(loc.toURL()); } catch (IOException e) { throw new NestedIOException(e); } catch (Exception e) { throw new VRLSyntaxException(e); } sets = xmlifier.parseVAttributeSets(inps, XML_SERVER_CONFIG_HEADER_TAG); // for (VAttributeSet set:sets) // { // logger.debugPrintln(this,"Adding ServerInfo Set:"+set); // } // === // Do not clear: just merge current with save ones ! // serverInfos.clear(); // === for (AttributeSet set : sets) { ServerInfo info = new ServerInfo(context, set); logger.debugPrintf("Adding Server Config:%s\n", info); // actual store method: put(info); } this.isLoaded = true; } }