/** Read PROPRIATIARY: .ico file and return Icon Image */ public BufferedImage getIcoImage(URL iconurl) throws IOException { try { InputStream inps = resourceLoader.createInputStream(iconurl); List<BufferedImage> icoImages = ICODecoder.read(inps); BufferedImage biggestImage = null; int biggestSize = 0; for (BufferedImage im : icoImages) { // use surface metrics to get 'biggest' image int size = im.getWidth() * im.getHeight(); if (size > biggestSize) { biggestSize = size; biggestImage = im; } } try { inps.close(); } catch (IOException e) { } ; // ignore return biggestImage; } catch (Exception e) { throw new IOException("Read error:" + iconurl, e); } }
/** * 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; } }