public void parseResourceDescription(String filename) throws ServiceException {
		XMLInputFactory inputFactory = XMLInputFactory.newInstance();
		InputStream is = this.resSrv.getStream(filename);
		
		if (is == null) {
			throw new ServiceException("resource description file not found: " + filename);
		}
		
		XMLStreamReader xmlReader = null;
		try {
			xmlReader = inputFactory.createXMLStreamReader(is);
		} catch (XMLStreamException e) {
			throw new ServiceException("unable to read resource description file: " + filename, e);
		}
		
		try {
			this.logger.logInfo(LOGGING_SOURCE, "parsing resource description from file: " + filename);
			parseResourceDescription(xmlReader);
		} catch (XMLStreamException e) {
			throw new ServiceException("unable to parse resource description file: " + filename, e);
		} finally {
			try {
				xmlReader.close();
			} catch (XMLStreamException e) {
				this.logger.logWarning(LOGGING_SOURCE, "unable to close xml stream reader: " + e.getMessage());
			}
		}
	}