From: <ku...@us...> - 2011-11-21 10:54:45
|
Revision: 3419 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3419&view=rev Author: kurzum Date: 2011-11-21 10:54:36 +0000 (Mon, 21 Nov 2011) Log Message: ----------- changed rest interface Modified Paths: -------------- trunk/interfaces/src/main/java/org/dllearner/server/Rest.java trunk/interfaces/src/main/webapp/WEB-INF/web.xml Modified: trunk/interfaces/src/main/java/org/dllearner/server/Rest.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/server/Rest.java 2011-11-18 15:35:17 UTC (rev 3418) +++ trunk/interfaces/src/main/java/org/dllearner/server/Rest.java 2011-11-21 10:54:36 UTC (rev 3419) @@ -2,6 +2,7 @@ import com.jamonapi.Monitor; import com.jamonapi.MonitorFactory; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,6 +14,8 @@ import java.io.PrintWriter; import java.net.URLEncoder; import java.security.InvalidParameterException; +import java.util.HashMap; +import java.util.Map; public class Rest extends HttpServlet { @@ -38,39 +41,33 @@ * @throws java.io.IOException */ private void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException { - Monitor mon = MonitorFactory.getTimeMonitor("NIFParameters.getInstance").start(); - String result = ""; try { - //check parameters - String conf = ""; - if (isSet(httpServletRequest, "conf")) { + String conf = null; + if (!isSet("conf", httpServletRequest)) { + throw new IllegalArgumentException("Missing parameter: conf is required. "); + } else { conf = httpServletRequest.getParameter("conf"); - } else { - throw new InvalidParameterException("No parameter 'conf' found. " + getDocumentation(httpServletRequest.getRequestURL().toString())); } - //output default is json - String output = "json"; - if (isSet(httpServletRequest, "output")) { - output = httpServletRequest.getParameter("output"); - //use the function one of - if (!oneOf(output, "json", "xml")) { - throw new InvalidParameterException("Wrong parameter value for \"output\", must be one of ( json, xml ) " + getDocumentation(httpServletRequest.getRequestURL().toString())); - } - } + /*todo learn + Description d = learn (conf); + String concept = d.getConceptAsString (); + String sparql = new SPARLQConverter().convert(d); - /** - * Do the magic here - */ - result = conf; + */ + String concept = "hasCar some (ClosedCar and ShortCar)"; + String sparql = "SELECT ?instances { ?instances :hasCar ?o . ?o rdf:type :ClosedCar. ?o2 rdf:type :ShortCar "; - PrintWriter pw = httpServletResponse.getWriter(); - log.debug("Request handled: " + logMonitor(mon.stop())); - pw.print(result); - pw.close(); + String result="{\"concept\": \""+concept+"\", \"SPARQL\":\""+sparql+"\"}"; + result+="\n\nconf was:\n"+conf; + httpServletResponse.setContentType("text/plain"); + PrintWriter out = httpServletResponse.getWriter(); + out.println(result); + out.close(); + } catch (IllegalArgumentException e) { - String msg = e.getMessage() + printParameterMap(httpServletRequest); + String msg = e.getMessage();// + printParameterMap(httpServletRequest); log.error(msg); httpServletResponse.setContentType("text/plain"); PrintWriter out = httpServletResponse.getWriter(); @@ -78,7 +75,7 @@ out.close(); } catch (Exception e) { - String msg = "An error occured: " + e.getMessage() + printParameterMap(httpServletRequest); + String msg = "An error occured: " + e.getMessage(); //+ printParameterMap(httpServletRequest); log.error(msg, e); httpServletResponse.setContentType("text/plain"); PrintWriter out = httpServletResponse.getWriter(); @@ -90,12 +87,23 @@ } - /** - * Examples are from NIF - * - * @param serviceUrl - * @return - */ + public static String requiredParameter(String parameterName, HttpServletRequest hsr) { + + if (!isSet(parameterName, hsr)) { + throw new IllegalArgumentException("Missing parameter: " + parameterName + " is required. "); + } + return hsr.getParameter(parameterName); + } + + public static String requiredParameter(String parameterName, HttpServletRequest hsr, String... requiredValues) { + String value = requiredParameter(parameterName, hsr); + if (!oneOf(value, requiredValues)) { + throw new InvalidParameterException("Wrong value for parameter " + parameterName + ", value was: " + value + ", but must be one of ( " + StringUtils.join(requiredValues, ", ") + " ) "); + } + return value; + } + + public static String getDocumentation(String serviceUrl) { String doc = ""; try { @@ -107,12 +115,6 @@ return doc; } - public static boolean isSet(HttpServletRequest httpServletRequest, String name) { - log.trace("isSet(" + name + ")"); - log.trace(httpServletRequest.getParameterValues(name) + ""); - return httpServletRequest.getParameterValues(name) != null && httpServletRequest.getParameterValues(name).length == 1 && httpServletRequest.getParameter(name).length() > 0; - } - public static boolean oneOf(String value, String... possibleValues) { for (String s : possibleValues) { if (s.equals(value)) { @@ -122,19 +124,21 @@ return false; } - protected static String logMonitor(Monitor m) { - return "needed: " + m.getLastValue() + " ms. (" + m.getTotal() + " total)"; + public static boolean isSet(String parameterName, HttpServletRequest hsr) { + boolean retVal = hsr.getParameterValues(parameterName) != null && hsr.getParameterValues(parameterName).length == 1 && hsr.getParameter(parameterName).length() > 0; + if (log.isTraceEnabled()) { + log.trace("Parameter " + parameterName + " isSet: " + retVal + " with value: " + hsr.getParameter(parameterName) + ")"); + } + return retVal; } - public static String printParameterMap(HttpServletRequest httpServletRequest) { - StringBuffer buf = new StringBuffer(); + public static Map<String, String> copyParameterMap(HttpServletRequest httpServletRequest) { + Map<String, String> ret = new HashMap<String, String>(); for (Object key : httpServletRequest.getParameterMap().keySet()) { - buf.append("\nParameter: " + key + " Values: "); - for (String s : httpServletRequest.getParameterValues((String) key)) { - buf.append(((s.length() > 200) ? s.substring(0, 200) + "..." : s) + " "); - } + ret.put((String) key, httpServletRequest.getParameter((String) key)); } - return buf.toString(); + return ret; } + } Modified: trunk/interfaces/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/interfaces/src/main/webapp/WEB-INF/web.xml 2011-11-18 15:35:17 UTC (rev 3418) +++ trunk/interfaces/src/main/webapp/WEB-INF/web.xml 2011-11-21 10:54:36 UTC (rev 3419) @@ -10,7 +10,13 @@ <servlet-class>org.dllearner.server.Rest</servlet-class> </servlet> - <servlet> + <servlet-mapping> + <servlet-name>rest</servlet-name> + <url-pattern>/rest</url-pattern> + </servlet-mapping> + + + <servlet> <servlet-name>NKEGeizhals</servlet-name> <servlet-class>org.dllearner.server.NKEGeizhals</servlet-class> </servlet> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |