}\r
\r
\r
+ /**\r
+ * Runs the {@link TransmissionEngineDistribution} in a separate Thread and\r
+ * responds with a redirect to a progress monitor REST service end point.\r
+ * <p>\r
+ * <b>NOTE</b> this is still a special implementation for the Euro+Med project.\r
+ * The parameters for the <i>superAreas</i>, the areas to which the subordinate areas should be projected,\r
+ * <i>lowerRank</i>, <i>upperRank</i> are hardcoded to: <code>TDWG_LEVEL3 areas, SUBSPECIES, GENUS</code>\r
+ *\r
+ * @param mode\r
+ * one of <code>byAreas</code>, <code>byRanks</code>,\r
+ * <code>byAreasAndRanks</code>\r
+ * @param frontendBaseUrl\r
+ * the cdm server instance base URL, this is needed for the a\r
+ * proper redirect URL when the service is running behind a\r
+ * reverse HTTP proxy\r
+ * @param priority\r
+ * the priority for the Thread to spawn, see\r
+ * {@link Thread#setPriority(int)}, defaults to 3\r
+ * @param request\r
+ * @param response\r
+ * @return\r
+ * @throws IOException\r
+ */\r
@RequestMapping(value = { "accumulateDistributions" }, method = RequestMethod.GET)\r
public ModelAndView doAccumulateDistributions(\r
@RequestParam(value= "mode", required = true) final AggregationMode mode,\r
* @return\r
* @throws IOException\r
*/\r
- @RequestMapping(value = "/descriptionElement/find", method = RequestMethod.GET)\r
+ @RequestMapping(value = "//descriptionElement/find", method = RequestMethod.GET) // mapped as absolute path, see CdmAntPathMatcher\r
public Pager<DescriptionElementBase> doFindDescriptionElements(\r
@RequestParam(value = "query", required = true) String queryString,\r
@RequestParam(value = "type", required = false) Class<? extends DescriptionElementBase> type,\r
* @return\r
* @throws IOException\r
*/\r
- @RequestMapping(value = "/descriptionElement/byFeature", method = RequestMethod.GET)\r
+ @RequestMapping(value = "//descriptionElement/byFeature", method = RequestMethod.GET) // mapped as absolute path, see CdmAntPathMatcher\r
public Pager<DescriptionElementBase> doPageDescriptionElementsByFeature(\r
@RequestParam(value = "features", required = false) DefinedTermBaseList<Feature> features,\r
@RequestParam(value = "descriptionType", required = true) Class<? extends DescriptionBase> descriptionType,\r
PagerParameters pagerParams = new PagerParameters(pageSize, pageNumber);\r
pagerParams.normalizeAndValidate(response);\r
\r
+ if(features == null){\r
+ features = new DefinedTermBaseList<Feature>();\r
+ }\r
+\r
Pager<DescriptionElementBase> pager = service.pageDescriptionElements(null, descriptionType, features.asSet(),\r
type, pagerParams.getPageSize(), pagerParams.getPageIndex(), getInitializationStrategy());\r
\r
* @return\r
* @throws IOException\r
*/\r
- @RequestMapping(value = "/descriptionElement/byTaxon", method = {RequestMethod.GET, RequestMethod.POST})\r
+ @RequestMapping(value = "//descriptionElement/byTaxon", method = {RequestMethod.GET, RequestMethod.POST}) // mapped as absolute path, see CdmAntPathMatcher\r
public <T extends DescriptionElementBase> Pager<T> getDescriptionElementsForTaxon(\r
@RequestParam(value = "taxon", required = true) UUID taxon_uuid,\r
@RequestParam(value = "features", required = false) DefinedTermBaseList<Feature> features,\r