List of usage examples for org.apache.commons.configuration DataConfiguration DataConfiguration
public DataConfiguration(Configuration configuration)
DataConfiguration
and sets the wrapped configuration. From source file:com.senseidb.test.TestHttpRestSenseiServiceImpl.java
public void testURIBuilding() throws JSONException, SenseiException, UnsupportedEncodingException, URISyntaxException, MalformedURLException { SenseiRequest aRequest = createNonRandomSenseiRequest(); List<NameValuePair> queryParams = HttpRestSenseiServiceImpl.convertRequestToQueryParams(aRequest); HttpRestSenseiServiceImpl senseiService = createSenseiService(); URI requestURI = senseiService.buildRequestURI(queryParams); assertTrue(requestURI.toURL().toString().length() > 0); // force resolving the URI to a string List<NameValuePair> parsedParams = URLEncodedUtils.parse(requestURI, "UTF-8"); MockServletRequest mockServletRequest = MockServletRequest.create(parsedParams); DataConfiguration params = new DataConfiguration(new ServletRequestConfiguration(mockServletRequest)); SenseiRequest bRequest = DefaultSenseiJSONServlet.convertSenseiRequest(params); assertEquals(aRequest, bRequest);//w w w. j av a 2s .c o m }
From source file:com.senseidb.test.TestHttpRestSenseiServiceImpl.java
public void testConvertSenseiRequest() throws SenseiException, UnsupportedEncodingException, JSONException { SenseiRequest testRequest = createNonRandomSenseiRequest(); List<NameValuePair> list = HttpRestSenseiServiceImpl.convertRequestToQueryParams(testRequest); MockServletRequest mockServletRequest = MockServletRequest.create(list); DataConfiguration params = new DataConfiguration(new ServletRequestConfiguration(mockServletRequest)); SenseiRequest resultRequest = DefaultSenseiJSONServlet.convertSenseiRequest(params); assertEquals(testRequest, resultRequest); }
From source file:com.senseidb.servlet.AbstractSenseiClientServlet.java
private void handleSenseiRequest(HttpServletRequest req, HttpServletResponse resp, Broker<SenseiRequest, SenseiResult> broker) throws ServletException, IOException { long time = System.currentTimeMillis(); int numHits = 0, totalDocs = 0; String query = null;/*from ww w. ja v a 2 s . co m*/ SenseiRequest senseiReq = null; try { JSONObject jsonObj = null; String content = null; if ("post".equalsIgnoreCase(req.getMethod())) { BufferedReader reader = req.getReader(); content = readContent(reader); if (content == null || content.length() == 0) content = "{}"; try { jsonObj = new JSONObject(content); } catch (JSONException jse) { String contentType = req.getHeader("Content-Type"); if (contentType != null && contentType.indexOf("json") >= 0) { logger.error("JSON parsing error", jse); writeEmptyResponse(req, resp, new SenseiError(jse.getMessage(), ErrorType.JsonParsingError)); return; } logger.warn("Old client or json error", jse); // Fall back to the old REST API. In the future, we should // consider reporting JSON exceptions here. senseiReq = DefaultSenseiJSONServlet.convertSenseiRequest( new DataConfiguration(new MapConfiguration(getParameters(content)))); query = content; } } else { content = req.getParameter("json"); if (content != null) { if (content.length() == 0) content = "{}"; try { jsonObj = new JSONObject(content); } catch (JSONException jse) { logger.error("JSON parsing error", jse); writeEmptyResponse(req, resp, new SenseiError(jse.getMessage(), ErrorType.JsonParsingError)); return; } } else { senseiReq = buildSenseiRequest(req); query = URLEncodedUtils.format(HttpRestSenseiServiceImpl.convertRequestToQueryParams(senseiReq), "UTF-8"); } } if (jsonObj != null) { String bqlStmt = jsonObj.optString(BQL_STMT); JSONObject templatesJson = jsonObj.optJSONObject(JsonTemplateProcessor.TEMPLATE_MAPPING_PARAM); JSONObject compiledJson = null; if (bqlStmt.length() > 0) { try { if (jsonObj.length() == 1) query = "bql=" + bqlStmt; else query = "json=" + content; compiledJson = _compiler.compile(bqlStmt); } catch (RecognitionException e) { String errMsg = _compiler.getErrorMessage(e); if (errMsg == null) { errMsg = "Unknown parsing error."; } logger.error("BQL parsing error: " + errMsg + ", BQL: " + bqlStmt); writeEmptyResponse(req, resp, new SenseiError(errMsg, ErrorType.BQLParsingError)); return; } // Handle extra BQL filter if it exists String extraFilter = jsonObj.optString(BQL_EXTRA_FILTER); JSONObject predObj = null; if (extraFilter.length() > 0) { String bql2 = "SELECT * WHERE " + extraFilter; try { predObj = _compiler.compile(bql2); } catch (RecognitionException e) { String errMsg = _compiler.getErrorMessage(e); if (errMsg == null) { errMsg = "Unknown parsing error."; } logger.error("BQL parsing error for additional preds: " + errMsg + ", BQL: " + bql2); writeEmptyResponse(req, resp, new SenseiError( "BQL parsing error for additional preds: " + errMsg + ", BQL: " + bql2, ErrorType.BQLParsingError)); return; } // Combine filters JSONArray filter_list = new JSONArray(); JSONObject currentFilter = compiledJson.optJSONObject("filter"); if (currentFilter != null) { filter_list.put(currentFilter); } JSONArray selections = predObj.optJSONArray("selections"); if (selections != null) { for (int i = 0; i < selections.length(); ++i) { JSONObject pred = selections.getJSONObject(i); if (pred != null) { filter_list.put(pred); } } } JSONObject additionalFilter = predObj.optJSONObject("filter"); if (additionalFilter != null) { filter_list.put(additionalFilter); } if (filter_list.length() > 1) { compiledJson.put("filter", new JSONObject().put("and", filter_list)); } else if (filter_list.length() == 1) { compiledJson.put("filter", filter_list.get(0)); } } JSONObject metaData = compiledJson.optJSONObject("meta"); if (metaData != null) { JSONArray variables = metaData.optJSONArray("variables"); if (variables != null) { for (int i = 0; i < variables.length(); ++i) { String var = variables.getString(i); if (templatesJson == null || templatesJson.opt(var) == null) { writeEmptyResponse(req, resp, new SenseiError("[line:0, col:0] Variable " + var + " is not found.", ErrorType.BQLParsingError)); return; } } } } } else { // This is NOT a BQL statement query = "json=" + content; compiledJson = jsonObj; } if (templatesJson != null) { compiledJson.put(JsonTemplateProcessor.TEMPLATE_MAPPING_PARAM, templatesJson); } senseiReq = SenseiRequest.fromJSON(compiledJson, _facetInfoMap); } SenseiResult res = broker.browse(senseiReq); numHits = res.getNumHits(); totalDocs = res.getTotalDocs(); sendResponse(req, resp, senseiReq, res); } catch (JSONException e) { try { writeEmptyResponse(req, resp, new SenseiError(e.getMessage(), ErrorType.JsonParsingError)); } catch (Exception ex) { throw new ServletException(e); } } catch (Exception e) { try { logger.error(e.getMessage(), e); if (e.getCause() != null && e.getCause() instanceof JSONException) { writeEmptyResponse(req, resp, new SenseiError(e.getMessage(), ErrorType.JsonParsingError)); } else { writeEmptyResponse(req, resp, new SenseiError(e.getMessage(), ErrorType.InternalError)); } } catch (Exception ex) { throw new ServletException(e); } } finally { if (queryLogger.isInfoEnabled() && query != null) { queryLogger.info(String.format("hits(%d/%d) took %dms: %s", numHits, totalDocs, System.currentTimeMillis() - time, query)); } } }
From source file:com.senseidb.test.TestHttpRestSenseiServiceImpl.java
public void testConvertScalarValues() throws SenseiException, UnsupportedEncodingException, JSONException { SenseiRequest aRequest = new SenseiRequest(); aRequest.setCount(EXPECTED_COUNT);//from w ww .j a va 2 s .co m aRequest.setOffset(EXPECTED_OFFSET); aRequest.setFetchStoredFields(EXPECTED_FETCH_STORED_FIELDS); aRequest.setShowExplanation(EXPECTED_SHOW_EXPLANATION); SenseiRequest bRequest = new SenseiRequest(); List<NameValuePair> list = HttpRestSenseiServiceImpl.convertRequestToQueryParams(aRequest); MockServletRequest mockServletRequest = MockServletRequest.create(list); DataConfiguration params = new DataConfiguration(new ServletRequestConfiguration(mockServletRequest)); DefaultSenseiJSONServlet.convertScalarParams(bRequest, params); assertEquals(aRequest, bRequest); }
From source file:com.senseidb.test.TestHttpRestSenseiServiceImpl.java
public void testInitParams() throws UnsupportedEncodingException { SenseiRequest aRequest = new SenseiRequest(); Map<String, FacetHandlerInitializerParam> initParams = createInitParams(); aRequest.putAllFacetHandlerInitializerParams(initParams); SenseiRequest bRequest = new SenseiRequest(); List<NameValuePair> qparams = new ArrayList<NameValuePair>(); HttpRestSenseiServiceImpl.convertFacetInitParams(qparams, initParams); MockServletRequest mockServletRequest = MockServletRequest.create(qparams); DataConfiguration params = new DataConfiguration(new ServletRequestConfiguration(mockServletRequest)); DefaultSenseiJSONServlet.convertInitParams(bRequest, params); assertEquals(aRequest, bRequest);//w ww . j a v a 2s .com }
From source file:com.senseidb.test.TestHttpRestSenseiServiceImpl.java
public void testFacetSpecs() { SenseiRequest aRequest = new SenseiRequest(); Map<String, FacetSpec> facetSpecMap = createFacetSpecMap(); aRequest.setFacetSpecs(facetSpecMap); SenseiRequest bRequest = new SenseiRequest(); List<NameValuePair> list = new ArrayList<NameValuePair>(); HttpRestSenseiServiceImpl.convertFacetSpecs(list, facetSpecMap); MockServletRequest mockServletRequest = MockServletRequest.create(list); DataConfiguration params = new DataConfiguration(new ServletRequestConfiguration(mockServletRequest)); DefaultSenseiJSONServlet.convertFacetParam(bRequest, params); assertEquals(aRequest, bRequest);//from w w w .j ava2 s.c om }
From source file:gda.configuration.properties.JakartaPropertiesConfig.java
@Override public URL getURL(String name, URL defaultValue) { // Use decorator, which can convert to URLs, Locales, Dates, Colours, // etc.//from w w w . ja v a2s. c o m DataConfiguration dataConfig = new DataConfiguration(config); return dataConfig.getURL(name, defaultValue); }
From source file:com.senseidb.test.TestHttpRestSenseiServiceImpl.java
public void testSortFields() { SenseiRequest aRequest = new SenseiRequest(); final SortField[] sortFields = createSortFields(); aRequest.addSortFields(sortFields);/* www. jav a2s . c o m*/ SenseiRequest bRequest = new SenseiRequest(); List<NameValuePair> list = new ArrayList<NameValuePair>(); HttpRestSenseiServiceImpl.convertSortFieldParams(list, sortFields); MockServletRequest mockServletRequest = MockServletRequest.create(list); DataConfiguration params = new DataConfiguration(new ServletRequestConfiguration(mockServletRequest)); DefaultSenseiJSONServlet.convertSortParam(bRequest, params); assertEquals(aRequest, bRequest); }
From source file:com.senseidb.test.TestHttpRestSenseiServiceImpl.java
public void testSenseiQuery() throws SenseiException, JSONException { SenseiRequest aRequest = new SenseiRequest(); SenseiQuery senseiQuery = createSenseiQuery(); aRequest.setQuery(senseiQuery);//from ww w . j ava 2 s .co m SenseiRequest bRequest = new SenseiRequest(); List<NameValuePair> list = new ArrayList<NameValuePair>(); HttpRestSenseiServiceImpl.convertSenseiQuery(list, senseiQuery); MockServletRequest mockServletRequest = MockServletRequest.create(list); DataConfiguration params = new DataConfiguration(new ServletRequestConfiguration(mockServletRequest)); DefaultSenseiJSONServlet.convertSenseiQuery(bRequest, params); assertEquals(aRequest, bRequest); }
From source file:com.senseidb.test.TestHttpRestSenseiServiceImpl.java
public void testPartitions() throws SenseiException, JSONException { SenseiRequest aRequest = new SenseiRequest(); Set<Integer> partitions = createPartitions(); aRequest.setPartitions(partitions);/* w w w. jav a 2s . c o m*/ SenseiRequest bRequest = new SenseiRequest(); List<NameValuePair> list = new ArrayList<NameValuePair>(); HttpRestSenseiServiceImpl.convertPartitionParams(list, partitions); MockServletRequest mockServletRequest = MockServletRequest.create(list); DataConfiguration params = new DataConfiguration(new ServletRequestConfiguration(mockServletRequest)); DefaultSenseiJSONServlet.convertPartitionParams(bRequest, params); assertEquals(aRequest, bRequest); }