From: <sp...@us...> - 2009-12-01 08:29:28
|
Revision: 5536 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=5536&view=rev Author: sppigot Date: 2009-12-01 08:29:17 +0000 (Tue, 01 Dec 2009) Log Message: ----------- Fix some bugs in processing of Z3950 harvested results Add directories for Thredds and WFS XSLTs that produce fragments Modified Paths: -------------- sandbox/BlueNetMEST/src/org/fao/geonet/kernel/harvest/harvester/z3950/Harvester.java sandbox/BlueNetMEST/src/org/fao/geonet/kernel/harvest/harvester/z3950/Z3950Params.java Added Paths: ----------- sandbox/BlueNetMEST/web/geonetwork/xsl/conversion/ThreddsToFragments/ sandbox/BlueNetMEST/web/geonetwork/xsl/conversion/WFSToFragments/ Modified: sandbox/BlueNetMEST/src/org/fao/geonet/kernel/harvest/harvester/z3950/Harvester.java =================================================================== --- sandbox/BlueNetMEST/src/org/fao/geonet/kernel/harvest/harvester/z3950/Harvester.java 2009-12-01 07:50:24 UTC (rev 5535) +++ sandbox/BlueNetMEST/src/org/fao/geonet/kernel/harvest/harvester/z3950/Harvester.java 2009-12-01 08:29:17 UTC (rev 5536) @@ -30,6 +30,7 @@ import jeeves.resources.dbms.Dbms; import jeeves.server.ServiceConfig; import jeeves.server.context.ServiceContext; +import jeeves.utils.Xml; import org.fao.geonet.GeonetContext; import org.fao.geonet.constants.Edit; @@ -102,14 +103,12 @@ Element request = new Element("request"); - // --- Z39.50 servers - Element servers = new Element(Geonet.SearchResult.SERVERS); + // --- Z39.50 servers from harvest params for (String id : params.getRepositories()) { - servers.addContent(new Element(Geonet.SearchResult.SERVER).setText(id)); + request.addContent(new Element(Geonet.SearchResult.SERVERS).setText(id)); } - request.addContent(servers); - // --- Z39.50 query + // --- Z39.50 query from harvest params request.addContent(new Element(Geonet.SearchResult.ZQUERY) .setText(params.query)); @@ -124,6 +123,12 @@ throw new Exception("Search failed or returned 0 results"); } + // --- return only maximum hits as directed by the harvest params + request.addContent(new Element("from") + .setText("1")); + request.addContent(new Element("to") + .setText(params.maximumHits)); + // --- Loading resutls. Element results = s.present(context, request, config); @@ -132,13 +137,18 @@ localGroups = new GroupMapper(dbms); // --- Store records - results.removeChildren("summary"); List list = results.getChildren(); + + log.debug("There are "+list.size()+" children in the results"); + // --- For each record try to detect schema. If ok, try to extract // --- uuid and load in catalogue. - for (int i = 0; i < list.size(); i++) { - Element md = (Element) list.get(0); - md.detach(); + for (int index = 0; index < list.size(); index++) { + Element md = (Element) list.get(index); + md = (Element)md.clone(); + + if (md.getQualifiedName().equals("summary")) continue; + // -- Remove existing geonet:info children as for example // -- GeoNetwork Z39.50 server return when full mode // -- an extra element with server info not needed Modified: sandbox/BlueNetMEST/src/org/fao/geonet/kernel/harvest/harvester/z3950/Z3950Params.java =================================================================== --- sandbox/BlueNetMEST/src/org/fao/geonet/kernel/harvest/harvester/z3950/Z3950Params.java 2009-12-01 07:50:24 UTC (rev 5535) +++ sandbox/BlueNetMEST/src/org/fao/geonet/kernel/harvest/harvester/z3950/Z3950Params.java 2009-12-01 08:29:17 UTC (rev 5536) @@ -59,6 +59,7 @@ icon = Util.getParam(site, "icon", "default.gif"); query = Util.getParam(site, "query", ""); + maximumHits = Util.getParam(site, "maximumHits", maximumHits); addRepositories(site.getChild("repositories")); } @@ -77,6 +78,7 @@ icon = Util.getParam(site, "icon", icon); query = Util.getParam(site, "query", query); + maximumHits = Util.getParam(site, "maximumHits", maximumHits); Element repos = site.getChild("repositories"); if (repos != null) { @@ -92,6 +94,7 @@ copy.icon = icon; copy.query = query; + copy.maximumHits = maximumHits; for (String s : alRepositories) { copy.alRepositories.add(s); @@ -133,4 +136,5 @@ public String icon; public ArrayList<String> alRepositories = new ArrayList<String>(); public String query; + public String maximumHits = "100"; // default } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |