christian@6457: package org.dive4elements.river.artifacts.services; christian@6457: christian@6457: import javax.xml.xpath.XPathConstants; christian@6457: christian@6457: import org.apache.log4j.Logger; christian@6457: import org.dive4elements.artifacts.CallMeta; christian@6457: import org.dive4elements.artifacts.GlobalContext; christian@6457: import org.dive4elements.artifacts.common.ArtifactNamespaceContext; christian@6457: import org.dive4elements.artifacts.common.utils.Config; christian@6457: import org.dive4elements.artifacts.common.utils.XMLUtils; christian@6457: import org.w3c.dom.Document; christian@6457: import org.w3c.dom.Element; christian@6457: christian@6457: /** christian@6457: * Through this service the client can retrieve basic information about or christian@6457: * configuration of the artifact server. christian@6457: * Currently it only returns the help-url (wiki) to the client. christian@6457: * christian@6457: * @author Christian Lins christian@6457: */ christian@6457: public class ServerInfoService extends D4EService { christian@6457: christian@6457: /** The logger used in this service.*/ christian@6457: private static Logger logger = Logger.getLogger(ServerInfoService.class); christian@6457: christian@6457: private static final String XPATH_HELP_URL = "/artifact-database/help-url/text()"; christian@6457: christian@6457: @Override christian@6457: protected Document doProcess(Document data, GlobalContext globalContext, christian@6457: CallMeta callMeta) { christian@6457: logger.debug("ServerInfoService.process"); christian@6457: christian@6457: Document result = XMLUtils.newDocument(); christian@6457: christian@6457: XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator( christian@6457: result, christian@6457: ArtifactNamespaceContext.NAMESPACE_URI, christian@6457: ArtifactNamespaceContext.NAMESPACE_PREFIX); christian@6457: christian@6457: Element serverInfo = ec.create("server"); christian@6457: christian@6457: String helpUrl = (String) XMLUtils.xpath( christian@6457: Config.getConfig(), christian@6457: XPATH_HELP_URL, christian@6457: XPathConstants.STRING); christian@6457: christian@6457: Element info = ec.create("info"); christian@6457: ec.addAttr(info, "key", "help-url", true); christian@6457: ec.addAttr(info, "value", helpUrl, true); christian@6457: christian@6457: result.appendChild(serverInfo); christian@6457: christian@6457: return result; christian@6457: } christian@6457: christian@6457: }