From aa5e8a8d56f5b0f2f6047c501af951c6769d2b8f Mon Sep 17 00:00:00 2001 From: Andreas Kohlbecker Date: Thu, 9 Jul 2009 16:27:17 +0000 Subject: [PATCH] dataportal release v2.0 --- .gitattributes | 1 - cdmlib-remote/pom.xml | 11 ++- .../controller/ExternalGeoController.java | 4 + .../remote/controller/TaxonController.java | 2 +- .../controller/TaxonPortalController.java | 51 ++++++++++-- .../controller/TaxonPortalListController.java | 83 ------------------- .../controller/TaxonomicTreeController.java | 16 ++-- .../src/main/resources/log4j.properties | 2 + .../main/webapp/WEB-INF/datasources/p6spy.xml | 11 ++- .../datasources/routing-datasource.xml | 3 +- cdmlib-remote/src/main/webapp/WEB-INF/web.xml | 38 ++++++--- .../src/test/resources/log4j.properties | 57 ++++++++----- 12 files changed, 137 insertions(+), 142 deletions(-) delete mode 100644 cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalListController.java diff --git a/.gitattributes b/.gitattributes index b0aeed4a45..0931c13b15 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1788,7 +1788,6 @@ cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/ReferencePortalCo cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonController.java -text cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonListController.java -text cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalController.java -text -cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalListController.java -text cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonomicTreeController.java -text cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TermListController.java -text cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/interceptor/ContentNegociationHandlerInterceptor.java -text diff --git a/cdmlib-remote/pom.xml b/cdmlib-remote/pom.xml index 5f422b3d48..2b06b53631 100644 --- a/cdmlib-remote/pom.xml +++ b/cdmlib-remote/pom.xml @@ -158,15 +158,14 @@ - true - tomcat-edit - http://search.biocase.org:8080/manager + + + - + http://160.45.63.201:8080/manager diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/ExternalGeoController.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/ExternalGeoController.java index bd91d919de..fe4c1f183c 100644 --- a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/ExternalGeoController.java +++ b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/ExternalGeoController.java @@ -16,6 +16,7 @@ import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @@ -36,6 +37,8 @@ import eu.etaxonomy.cdm.model.taxon.TaxonBase; @Controller @RequestMapping(value = { "/*/geo/map/distribution/*" }) public class ExternalGeoController extends BaseController { + + public static final Logger logger = Logger.getLogger(ExternalGeoController.class); @Autowired private IEditGeoService geoservice; @@ -62,6 +65,7 @@ public class ExternalGeoController extends BaseController resultset = new HashSet(); if(tb instanceof Taxon){ diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalController.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalController.java index 2d26b607a8..28b36454be 100644 --- a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalController.java +++ b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalController.java @@ -13,6 +13,7 @@ package eu.etaxonomy.cdm.remote.controller; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; import java.util.Hashtable; import java.util.List; import java.util.Map; @@ -24,10 +25,10 @@ import java.util.UUID; import java.util.regex.Matcher; import java.util.regex.Pattern; - import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.apache.commons.lang.ObjectUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -50,15 +51,12 @@ import eu.etaxonomy.cdm.model.description.DescriptionElementBase; import eu.etaxonomy.cdm.model.description.TaxonDescription; import eu.etaxonomy.cdm.model.description.TaxonNameDescription; import eu.etaxonomy.cdm.model.location.NamedArea; -import eu.etaxonomy.cdm.model.media.ImageFile; import eu.etaxonomy.cdm.model.media.Media; import eu.etaxonomy.cdm.model.media.MediaRepresentation; -import eu.etaxonomy.cdm.model.media.MediaRepresentationPart; import eu.etaxonomy.cdm.model.name.NameRelationship; import eu.etaxonomy.cdm.model.name.TaxonNameBase; import eu.etaxonomy.cdm.model.name.TypeDesignationBase; -import eu.etaxonomy.cdm.model.occurrence.Collection; -import eu.etaxonomy.cdm.model.reference.ReferenceBase; +import eu.etaxonomy.cdm.model.taxon.Synonym; import eu.etaxonomy.cdm.model.taxon.Taxon; import eu.etaxonomy.cdm.model.taxon.TaxonBase; import eu.etaxonomy.cdm.model.taxon.TaxonRelationship; @@ -208,6 +206,7 @@ public class TaxonPortalController extends BaseController doFind( @RequestParam(value = "query", required = false) String query, + @RequestParam(value = "tree", required = false) UUID treeUuid, + @RequestParam(value = "area", required = false) Set areas, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "pageSize", required = false) Integer pageSize, @RequestParam(value = "doTaxa", required = false) Boolean doTaxa, @RequestParam(value = "doSynonyms", required = false) Boolean doSynonyms, - @RequestParam(value = "doTaxaByCommonNames", required = false) Boolean doTaxaByCommonNames, - @RequestParam(value = "area", required = false) Set areas, - @RequestParam(value = "treeUuid", required = false) UUID treeUuid) throws IOException { + @RequestParam(value = "doTaxaByCommonNames", required = false) Boolean doTaxaByCommonNames) + throws IOException { + + logger.info("doFind( " + + "query=\"" + ObjectUtils.toString(query) + "\", treeUuid=" + ObjectUtils.toString(treeUuid) + + ", area=" + ObjectUtils.toString(areas) + + ", pageSize=" + ObjectUtils.toString(pageSize) + ", page=" + ObjectUtils.toString(page) + + ", doTaxa=" + ObjectUtils.toString(doTaxa) + ", doSynonyms=" + ObjectUtils.toString(doSynonyms) +")" ); if(page == null){ page = BaseListController.DEFAULT_PAGE;} if(pageSize == null){ pageSize = BaseListController.DEFAULT_PAGESIZE;} @@ -251,6 +257,8 @@ public class TaxonPortalController extends BaseController getAccepted( + @RequestParam(value = "page", required = false) Integer page, + @RequestParam(value = "pageSize", required = false) Integer pageSize, + HttpServletRequest request, HttpServletResponse response) throws IOException { + + logger.info("getAccepted() " + request.getServletPath()); + TaxonBase tb = doGet(request, response); + HashSet resultset = new HashSet(); + if(tb instanceof Taxon){ + //the taxon already is accepted + //FIXME take the current view into account once views are implemented!!! + resultset.add((Taxon)tb); + } else { + Synonym syn = (Synonym)tb; + resultset.addAll(syn.getAcceptedTaxa()); + } + return resultset; + } + @RequestMapping( value = {"/*/portal/taxon/*/taxonRelationships"}, method = RequestMethod.GET) public List doGetTaxonRelations(HttpServletRequest request, HttpServletResponse response)throws IOException { + logger.info("doGetTaxonRelations()" + request.getServletPath()); TaxonBase tb = getCdmBase(request, response, null, Taxon.class); Taxon taxon = (Taxon)tb; List relations = new ArrayList(); @@ -281,6 +310,7 @@ public class TaxonPortalController extends BaseController doGetNameRelations(HttpServletRequest request, HttpServletResponse response)throws IOException { + logger.info("doGetNameRelations()" + request.getServletPath()); TaxonBase tb = getCdmBase(request, response, SIMPLE_TAXON_INIT_STRATEGY, Taxon.class); List list = nameService.listToNameRelationships(tb.getName(), null, null, null, null, NAMERELATIONSHIP_INIT_STRATEGY); return list; @@ -290,6 +320,7 @@ public class TaxonPortalController extends BaseController doGetNameDescriptions(HttpServletRequest request, HttpServletResponse response)throws IOException { + logger.info("doGetNameDescriptions()" + request.getServletPath()); UUID nameUuuid = readValueUuid(request, null); TaxonNameBase tnb = nameService.load(nameUuuid, null); Pager p = descriptionService.getTaxonNameDescriptions(tnb, null, null, NAMEDESCRIPTION_INIT_STRATEGY); @@ -300,6 +331,7 @@ public class TaxonPortalController extends BaseController doGetNameTypeDesignations(HttpServletRequest request, HttpServletResponse response)throws IOException { + logger.info("doGetNameTypeDesignations()" + request.getServletPath()); TaxonBase tb = getCdmBase(request, response, SIMPLE_TAXON_INIT_STRATEGY, Taxon.class); Pager p = nameService.getTypeDesignations(tb.getName(), null, null, null, TYPEDESIGNATION_INIT_STRATEGY); return p.getRecords(); @@ -309,6 +341,7 @@ public class TaxonPortalController extends BaseController doGetDescriptions(HttpServletRequest request, HttpServletResponse response)throws IOException { + logger.info("doGetDescriptions()" + request.getServletPath()); Taxon t = getCdmBase(request, response, null, Taxon.class); Pager p = descriptionService.getTaxonDescriptions(t, null, null, null, null, TAXONDESCRIPTION_INIT_STRATEGY); return p.getRecords(); @@ -339,6 +372,7 @@ public class TaxonPortalController extends BaseController doGetMedia(HttpServletRequest request, HttpServletResponse response)throws IOException { + logger.info("doGetMedia()" + request.getServletPath()); Taxon t = getCdmBase(request, response, null, Taxon.class); Pager p = descriptionService.getTaxonDescriptions(t, null, null, null, null, TAXONDESCRIPTION_INIT_STRATEGY); @@ -426,7 +460,6 @@ public class TaxonPortalController extends BaseController orderMediaRepresentations(Media media, String[] mimeTypeRegexes, Integer size, Integer widthOrDuration, Integer height) { - SortedMap prefRepr = new TreeMap(); for (String mimeTypeRegex : mimeTypeRegexes) { // getRepresentationByMimeType diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalListController.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalListController.java deleted file mode 100644 index 5d42d4ea29..0000000000 --- a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonPortalListController.java +++ /dev/null @@ -1,83 +0,0 @@ -// $Id: TaxonListController.java 5584 2009-04-09 10:04:18Z a.kohlbecker $ -/** - * Copyright (C) 2009 EDIT European Distributed Institute of Taxonomy - * http://www.e-taxonomy.eu - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 See LICENSE.TXT at the top of this package for the full license terms. - */ - -package eu.etaxonomy.cdm.remote.controller; - -import java.util.UUID; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; - -import eu.etaxonomy.cdm.api.service.IReferenceService; -import eu.etaxonomy.cdm.api.service.ITaxonService; -import eu.etaxonomy.cdm.api.service.config.ITaxonServiceConfigurator; -import eu.etaxonomy.cdm.api.service.config.impl.TaxonServiceConfiguratorImpl; -import eu.etaxonomy.cdm.api.service.pager.Pager; -import eu.etaxonomy.cdm.model.common.IdentifiableEntity; -import eu.etaxonomy.cdm.model.reference.ReferenceBase; -import eu.etaxonomy.cdm.model.taxon.TaxonBase; -import eu.etaxonomy.cdm.model.taxon.TaxonomicTree; -import eu.etaxonomy.cdm.persistence.query.MatchMode; - -/** - * @author a.kohlbecker - * @date 20.03.2009 - */ -//@Controller -@RequestMapping(value = {"/*/portal/taxon/"}) -public class TaxonPortalListController extends BaseListController { - - @Autowired - private IReferenceService referenceService; - - /* (non-Javadoc) - * @see eu.etaxonomy.cdm.remote.controller.BaseListController#setService(eu.etaxonomy.cdm.api.service.IService) - */ - @Override - @Autowired - public void setService(ITaxonService service) { - this.service = service; - } - - public Pager doGet() { - return null; - } - - @RequestMapping(method = RequestMethod.GET) - public Pager doFind( //FIXME duplicate method see TaxonPortalController.doFind() - @RequestParam(value = "page", required = false) Integer page, - @RequestParam(value = "pageSize", required = false) Integer pageSize, - @RequestParam(value = "q", required = false) String query, - @RequestParam(value = "doTaxa", required = false) Boolean doTaxa, - @RequestParam(value = "doSynonyms", required = false) Boolean doSynonyms, - @RequestParam(value = "doNamesWithoutTaxa", required = false) Boolean doNamesWithoutTaxa, - @RequestParam(value = "treeUuid", required = false) UUID treeUuid) { - - if(page == null){ page = DEFAULT_PAGE;} - if(pageSize == null){ pageSize = DEFAULT_PAGESIZE;} - - ITaxonServiceConfigurator config = new TaxonServiceConfiguratorImpl(); - config.setPageNumber(page); - config.setPageSize(pageSize); - config.setSearchString(query); - config.setDoTaxa(doTaxa); - config.setDoSynonyms(doSynonyms); - config.setDoNamesWithoutTaxa(doNamesWithoutTaxa); - config.setMatchMode(MatchMode.BEGINNING); - if(treeUuid != null){ - TaxonomicTree taxonomicTree = service.getTaxonomicTreeByUuid(treeUuid); - config.setTaxonomicTree(taxonomicTree); - } - - return (Pager) service.findTaxaAndNames(config); - } -} \ No newline at end of file diff --git a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonomicTreeController.java b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonomicTreeController.java index ce02800a1e..bf4a114a17 100644 --- a/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonomicTreeController.java +++ b/cdmlib-remote/src/main/java/eu/etaxonomy/cdm/remote/controller/TaxonomicTreeController.java @@ -169,11 +169,11 @@ public class TaxonomicTreeController extends AbstractListController getTaxonomicTrees(HttpServletRequest request, HttpServletResponse response) throws IOException { - return service.listTaxonomicTrees(null, null, null, TAXONTREE_INIT_STRATEGY); + @RequestMapping(value = { "/*/taxontree" }, method = RequestMethod.GET) + public List getTaxonomicTrees(HttpServletRequest request, HttpServletResponse response) + throws IOException { + logger.info("getTaxonomicTrees()"); + return service.listTaxonomicTrees(null, null, null, TAXONTREE_INIT_STRATEGY); } @@ -186,7 +186,7 @@ public class TaxonomicTreeController extends AbstractListController getRootTaxa(HttpServletRequest request, HttpServletResponse response) throws IOException { - + logger.info("getRootTaxa()"); List uriParams = readUriParameters(request); TaxonomicTree tree = null; Rank rank = null; @@ -217,7 +217,7 @@ public class TaxonomicTreeController extends AbstractListController getChildTaxa(HttpServletRequest request, HttpServletResponse response) throws IOException { - + logger.info("getChildTaxa()"); List uriParams = readUriParameters(request); if(uriParams.size() <= 1){ response.sendError(400, "At least two uuid parameters expected but found " + uriParams.size()); @@ -251,7 +251,7 @@ public class TaxonomicTreeController extends AbstractListController getPathToRoot(HttpServletRequest request, HttpServletResponse response) throws IOException { - + logger.info("getPathToRoot()"); List pathToRoot = new ArrayList(); List uriParams = readUriParameters(request); if(uriParams.size() <= 1){ diff --git a/cdmlib-remote/src/main/resources/log4j.properties b/cdmlib-remote/src/main/resources/log4j.properties index 8ff532fe9e..b739b65106 100644 --- a/cdmlib-remote/src/main/resources/log4j.properties +++ b/cdmlib-remote/src/main/resources/log4j.properties @@ -28,6 +28,8 @@ log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n # cdm ### log4j.logger.eu.etaxonomy.cdm = INFO +# avoid vast amount of "getCitation not yet implemented" & "getProblems not yet implemented" messages +log4j.logger.eu.etaxonomy.cdm.model.name.TaxonNameBase = ERROR log4j.logger.eu.etaxonomy.cdm.database.UpdatableRoutingDataSource = INFO log4j.logger.eu.etaxonomy.cdm.persistence.dao.AbstractBeanInitializer = ERROR log4j.logger.eu.etaxonomy.cdm.remote.controller = WARN diff --git a/cdmlib-remote/src/main/webapp/WEB-INF/datasources/p6spy.xml b/cdmlib-remote/src/main/webapp/WEB-INF/datasources/p6spy.xml index 567a9fb65f..33f43d2695 100644 --- a/cdmlib-remote/src/main/webapp/WEB-INF/datasources/p6spy.xml +++ b/cdmlib-remote/src/main/webapp/WEB-INF/datasources/p6spy.xml @@ -8,7 +8,16 @@ http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd "> - + diff --git a/cdmlib-remote/src/main/webapp/WEB-INF/datasources/routing-datasource.xml b/cdmlib-remote/src/main/webapp/WEB-INF/datasources/routing-datasource.xml index debe612fa8..b4551ec212 100644 --- a/cdmlib-remote/src/main/webapp/WEB-INF/datasources/routing-datasource.xml +++ b/cdmlib-remote/src/main/webapp/WEB-INF/datasources/routing-datasource.xml @@ -10,7 +10,8 @@ - diff --git a/cdmlib-remote/src/main/webapp/WEB-INF/web.xml b/cdmlib-remote/src/main/webapp/WEB-INF/web.xml index 307e03ea12..1820266dc1 100644 --- a/cdmlib-remote/src/main/webapp/WEB-INF/web.xml +++ b/cdmlib-remote/src/main/webapp/WEB-INF/web.xml @@ -6,21 +6,38 @@ EDIT CDM Community Server CDM Community Server - + + + + + org.springframework.web.context.ContextLoaderListener + + contextConfigLocation /WEB-INF/applicationContext.xml + + + - - + --> + CDM Remote REST API @@ -80,11 +97,6 @@ - - + diff --git a/cdmlib-remote/src/test/resources/log4j.properties b/cdmlib-remote/src/test/resources/log4j.properties index 6529d3783e..8ff532fe9e 100644 --- a/cdmlib-remote/src/test/resources/log4j.properties +++ b/cdmlib-remote/src/test/resources/log4j.properties @@ -1,3 +1,12 @@ +# +# +# If you are having problems with logging you may debug Log4J initialization, +# start the application with a system property log4j.configDebug set to "true". +# E.g.: +# +# java -Dlog4j.configDebug=true +# + log4j.rootLogger=WARN, stdout @@ -8,38 +17,48 @@ log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n log4j.appender.logfile=org.apache.log4j.RollingFileAppender log4j.appender.logfile.File=cdmlib-remote.log log4j.appender.logfile.MaxFileSize=512KB -# Keep three backup files. +# Keep three backup files. log4j.appender.logfile.MaxBackupIndex=3 -# Pattern to output: date priority [category] - message +# Pattern to output: date priority [category] - message log4j.appender.logfile.layout=org.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n - -#log4j.category.org.springframework.web.servlet.mvc.support=DEBUG, stdout -log4j.logger.eu.etaxonomy.cdm = info +### +# cdm +### +log4j.logger.eu.etaxonomy.cdm = INFO +log4j.logger.eu.etaxonomy.cdm.database.UpdatableRoutingDataSource = INFO +log4j.logger.eu.etaxonomy.cdm.persistence.dao.AbstractBeanInitializer = ERROR log4j.logger.eu.etaxonomy.cdm.remote.controller = WARN #log4j.logger.eu.etaxonomy.cdm.remote.json.processor.AbstractCdmBeanProcessor = DEBUG -#log4j.logger.eu.etaxonomy.cdm.persistence.dao.AbstractBeanInitializer = DEBUG -# prevent CdmExceptionResolver from logging errors +log4j.logger.eu.etaxonomy.cdm.remote.controller = INFO +log4j.logger.eu.etaxonomy.cdm.remote.controller.interceptor = WARN +# prevent CdmExceptionResolver from logging errors log4j.logger.eu.etaxonomy.cdm.remote.exception.CdmExceptionResolver = ERROR -log4j.logger.org.hibernate=warn + +### +# springframework +### log4j.logger.org.springframework = warn log4j.logger.org.springframework.web.servlet.DispatcherServlet = WARN log4j.logger.org.springframework.web.servlet.mvc.annotation = WARN +#log4j.category.org.springframework.web.servlet.mvc.support=DEBUG, stdout log4j.logger.org.springframework.web.servlet.view = WARN -### json-lib +### +# json-lib +### log4j.logger.net.sf.json.JSONObject = ERROR -### log just the SQL -log4j.logger.org.hibernate.SQL=warn +### +# Hibernate +### +log4j.logger.org.hibernate=WARN +# log just the SQL +log4j.logger.org.hibernate.SQL=WARN log4j.logger.org.hibernate.search = ERROR - -### log JDBC bind parameters ### -log4j.logger.org.hibernate.type=warn - -### log schema export/update ### -log4j.logger.org.hibernate.tool.hbm2ddl=warn - -log4j.logger.org.mortbay.jetty = info +# log JDBC bind parameters +log4j.logger.org.hibernate.type=WARN +# log schema export/update +log4j.logger.org.hibernate.tool.hbm2ddl=WARN -- 2.34.1