From: <sp...@us...> - 2011-07-13 07:33:31
|
Revision: 8005 http://geonetwork.svn.sourceforge.net/geonetwork/?rev=8005&view=rev Author: sppigot Date: 2011-07-13 07:33:19 +0000 (Wed, 13 Jul 2011) Log Message: ----------- Bring ANZMEST up to trunk rev 7996 Revision Links: -------------- http://geonetwork.svn.sourceforge.net/geonetwork/?rev=7996&view=rev Modified Paths: -------------- sandbox/BlueNetMEST/ANZMEST/jeeves/src/main/java/jeeves/server/ProfileManager.java sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/Geonetwork.java sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/guiservices/metadata/GetRelated.java sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/KeywordsSearcher.java sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/LuceneQueryBuilder.java sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/LuceneSearcher.java sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/setting/SettingManager.java sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/util/XslUtil.java sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/loc/de/xml/strings.xml sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/scripts/gn_search.js sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xml/schemas/iso19139/process/linked-data-checker.xsl sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xsl/main-page.xsl sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xsl/metadata/layout.xsl sandbox/BlueNetMEST/ANZMEST/web/src/test/java/org/fao/geonet/kernel/search/LuceneQueryTest.java Removed Paths: ------------- sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xml/schemas/iso19139/sample-data/locality_polygons_comprehensive.mef sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xml/schemas/iso19139/sample-data/photographic_session.mef Property Changed: ---------------- sandbox/BlueNetMEST/ANZMEST/installer/ sandbox/BlueNetMEST/ANZMEST/jeeves/ sandbox/BlueNetMEST/ANZMEST/jeeves/src/main/java/jeeves/ sandbox/BlueNetMEST/ANZMEST/web/ sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/ sandbox/BlueNetMEST/ANZMEST/web/src/main/resources/ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/WEB-INF/ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/WEB-INF/classes/setup/ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/WEB-INF/config-summary.xml sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/conversion/ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/geonetwork.css sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/htmlCache/ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/images/ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/index.html sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/loc/ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/modalbox.css sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/scripts/ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xml/ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xsl/ sandbox/BlueNetMEST/ANZMEST/web/src/test/java/org/fao/geonet/kernel/search/LuceneQueryTest.java Property changes on: sandbox/BlueNetMEST/ANZMEST/installer ___________________________________________________________________ Modified: svn:mergeinfo - /trunk/installer:7810-7930 + /trunk/installer:7810-7930,7934 Property changes on: sandbox/BlueNetMEST/ANZMEST/jeeves ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/guiwidgets/jeeves:7471-7570 /trunk/jeeves:7477,7562-7930 + /sandbox/guiwidgets/jeeves:7471-7570 /trunk/jeeves:7477,7562-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/jeeves/src/main/java/jeeves ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/jeeves/src/jeeves:6059 /sandbox/guiwidgets/jeeves/src/main/java/jeeves:7471-7570 /trunk/jeeves/src/main/java/jeeves:7477,7562-7930 + /sandbox/BlueNetMEST/jeeves/src/jeeves:6059 /sandbox/guiwidgets/jeeves/src/main/java/jeeves:7471-7570 /trunk/jeeves/src/main/java/jeeves:7477,7562-7996 Modified: sandbox/BlueNetMEST/ANZMEST/jeeves/src/main/java/jeeves/server/ProfileManager.java =================================================================== --- sandbox/BlueNetMEST/ANZMEST/jeeves/src/main/java/jeeves/server/ProfileManager.java 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/jeeves/src/main/java/jeeves/server/ProfileManager.java 2011-07-13 07:33:19 UTC (rev 8005) @@ -63,8 +63,9 @@ public ProfileManager(JeevesServlet servlet, String profilesFile) throws Exception { Element elProfiles = Xml.loadFile(profilesFile); - ConfigurationOverrides.updateWithOverrides(profilesFile, servlet, elProfiles); - + if (servlet != null) { + ConfigurationOverrides.updateWithOverrides(profilesFile, servlet, elProfiles); + } htProfiles = new Hashtable<String, Element>(50); List<Element> profList = elProfiles.getChildren(Profiles.Elem.PROFILE); Property changes on: sandbox/BlueNetMEST/ANZMEST/web ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/guiwidgets/web:7403-7467,7471-7570 /trunk/web:7350-7401,7403-7467,7471-7930 + /sandbox/guiwidgets/web:7403-7467,7471-7570 /trunk/web:7350-7401,7403-7467,7471-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/src/org:6059 /sandbox/guiwidgets/web/src/main/java/org:7403-7467,7471-7570 /trunk/web/src/main/java/org:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/src/org:6059 /sandbox/guiwidgets/web/src/main/java/org:7403-7467,7471-7570 /trunk/web/src/main/java/org:7350-7401,7403-7467,7471-7996 Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/Geonetwork.java =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/Geonetwork.java 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/Geonetwork.java 2011-07-13 07:33:19 UTC (rev 8005) @@ -686,6 +686,7 @@ params.put(PostgisDataStoreFactory.PASSWD.key, passwd); params.put(PostgisDataStoreFactory.HOST.key, getHost(url, values)); params.put(PostgisDataStoreFactory.PORT.key, getPort(url, values)); + params.put(PostgisDataStoreFactory.VALIDATECONN.key, true); //logger.info("Connecting using "+params); - don't show unless we need it PostgisDataStoreFactory factory = new PostgisDataStoreFactory(); Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/guiservices/metadata/GetRelated.java =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/guiservices/metadata/GetRelated.java 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/guiservices/metadata/GetRelated.java 2011-07-13 07:33:19 UTC (rev 8005) @@ -97,6 +97,8 @@ if (info == null) { String mdId = Utils.getIdentifierFromParameters(params, context); + if (mdId == null) + throw new MetadataNotFoundEx("Metadata not found."); uuid = dm.getMetadataUuid(dbms, mdId); if (uuid == null) Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/KeywordsSearcher.java =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/KeywordsSearcher.java 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/KeywordsSearcher.java 2011-07-13 07:33:19 UTC (rev 8005) @@ -30,8 +30,12 @@ import org.fao.geonet.kernel.ThesaurusManager; import org.jdom.Element; import org.openrdf.model.Value; +import org.openrdf.sesame.config.AccessDeniedException; +import org.openrdf.sesame.query.MalformedQueryException; +import org.openrdf.sesame.query.QueryEvaluationException; import org.openrdf.sesame.query.QueryResultsTable; +import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -39,29 +43,40 @@ import java.util.Hashtable; import java.util.Iterator; import java.util.List; -import java.util.Vector; +/** + * + * Select entries from SKOS thesauri. + * + */ public class KeywordsSearcher { - private ThesaurusManager _tm; - + private ThesaurusManager _thesaurusManager; private String _query; - private String _lang; - + private String _lang; private List<KeywordBean> _results = new ArrayList<KeywordBean>(); - private int _maxResults = 10000; + private int _maxResults = 100000; - - // -------------------------------------------------------------------------------- - // constructor + /** + * TODO javadoc. + * + * @param tm thesaurusmanager + */ public KeywordsSearcher(ThesaurusManager tm) { - _tm = tm; + _thesaurusManager = tm; } - // -------------------------------------------------------------------------------- - public KeywordBean searchById(String id, String sThesaurusName, String lang) - throws Exception { - + /** + * TODO javadoc. + * + * @param id id + * @param sThesaurusName thesaurus name + * @param lang language + * @return keywordbean + * @throws Exception hmm + */ + public KeywordBean searchById(String id, String sThesaurusName, String lang) throws Exception { + //System.out.println("KeywordsSearcher searchById"); _query = "SELECT prefLab, note, id, lowc, uppc " + " FROM {id} rdf:type {skos:Concept}; " + " skos:prefLabel {prefLab};" @@ -73,7 +88,7 @@ + " IGNORE CASE " + " USING NAMESPACE skos=<http://www.w3.org/2004/02/skos/core#>, gml=<http://www.opengis.net/gml#> "; - Thesaurus thesaurus = _tm.getThesaurusByName(sThesaurusName); + Thesaurus thesaurus = _thesaurusManager.getThesaurusByName(sThesaurusName); // Perform request QueryResultsTable resultsTable = thesaurus.performRequest(_query); @@ -82,7 +97,8 @@ if (rowCount == 0){ return null; - }else{ + } + else{ // MUST be one because search by ID // preflab @@ -99,18 +115,23 @@ sUri = uri.toString(); } - KeywordBean kb = new KeywordBean(idKeyword, sValue, - "", sUri, "", "", "", "", - sThesaurusName, false, _lang, thesaurus.getTitle()); + KeywordBean kb = new KeywordBean(idKeyword, sValue, "", sUri, "", "", "", "", sThesaurusName, false, _lang, thesaurus.getTitle()); idKeyword++; return kb; } } - - public void search(ServiceContext srvContext, Element params) - throws Exception { + + /** + * TODO javadoc. + * + * @param srvContext servicecontext + * @param params params + * @throws Exception hmm + */ + public void search(ServiceContext srvContext, Element params) throws Exception { + //System.out.println("KeywordsSearcher search"); // Get params from request and set default String sKeyword = Util.getParam(params, "pKeyword"); @@ -119,169 +140,225 @@ // Type of search int pTypeSearch; - if (params.getChild("pTypeSearch") != null){ // if param pTypeSearch not here - pTypeSearch = Util.getParamAsInt(params, "pTypeSearch"); + // if param pTypeSearch not here + if (params.getChild("pTypeSearch") != null){ + pTypeSearch = Util.getParamAsInt(params, "pTypeSearch"); - // Thesaurus to search in - List listThesauri = new Vector<Element>(); - // Type of thesaurus to search in - String pTypeThesaurus = null; - if (params.getChild("pType") != null) // if param pTypeSearch not here - pTypeThesaurus = Util.getParam(params, "pType"); + // Thesaurus to search in + List<Element> listThesauri = new ArrayList<Element>(); + // Type of thesaurus to search in + String pTypeThesaurus = null; + // if param pType not here + if (params.getChild("pType") != null) { + pTypeThesaurus = Util.getParam(params, "pType"); + } + // whether to search in all thesauri + boolean bAll = true; - boolean bAll = true; + // if param pThesauri not here + if (params.getChild("pThesauri") != null){ + listThesauri = params.getChildren("pThesauri"); + bAll = false; - if (params.getChild("pThesauri") != null){ // if param pThesauri not here - listThesauri = params.getChildren("pThesauri"); - bAll = false; - - // Check empty child and remove empty ones. - for (Iterator<Element> it = listThesauri.iterator(); it.hasNext();) { - Element th = it.next(); - if ("".equals(th.getTextTrim())) - it.remove(); - } + // Check empty child and remove empty ones. + for (Iterator<Element> it = listThesauri.iterator(); it.hasNext();) { + Element th = it.next(); + if ("".equals(th.getTextTrim())) { + it.remove(); + } + } - if (listThesauri.size() == 0) - bAll = true; - } + if (listThesauri.size() == 0) { + bAll = true; + } + } - // If no thesaurus search in all. - if (bAll){ - Hashtable<String, Thesaurus> tt = _tm.getThesauriTable(); + // If no thesaurus search in all. + if (bAll){ + Hashtable<String, Thesaurus> tt = _thesaurusManager.getThesauriTable(); - Enumeration<String> e = tt.keys(); - boolean add = true; - while (e.hasMoreElements()) // Fill the list with all thesauri available - { - Thesaurus thesaurus = tt.get(e.nextElement()); - if (pTypeThesaurus != null){ - add = thesaurus.getDname().equals(pTypeThesaurus); - } + Enumeration<String> e = tt.keys(); + boolean add = true; + // Fill the list with all thesauri available + while (e.hasMoreElements()) { + Thesaurus thesaurus = tt.get(e.nextElement()); + if (pTypeThesaurus != null){ + add = thesaurus.getDname().equals(pTypeThesaurus); + } - if (add){ - Element el = new Element("pThesauri"); - el.addContent(thesaurus.getKey()); - listThesauri.add(el); - } + if (add){ + Element el = new Element("pThesauri"); + el.addContent(thesaurus.getKey()); + listThesauri.add(el); + } + } } - } + // Keyword to look for + if (!sKeyword.equals("")) { + String lang = srvContext.getLanguage(); + createQuery(lang, sKeyword, pTypeSearch); + } + search(listThesauri); + List<KeywordBean> resultsWithLanguage = _results; + // repeat search for language = "#default" + // #default doesn't work in sesame search -- replaced it by 00 + if (!sKeyword.equals("")) { + String lang = "00"; + createQuery(lang, sKeyword, pTypeSearch); + } + search(listThesauri); + List<KeywordBean> resultsWithoutLanguage = _results; - // Keyword to look for - if (!sKeyword.equals("")) { + // end results are results without language except for those that also do have a language + List<KeywordBean> endResults = resultsWithLanguage; - // FIXME : Where to search ? only on term having GUI language or in all ? - // Should be - // - look for a term in all language - // - get prefLab in GUI lang - // This will cause multilingual metadata search quite complex !! - // Quid Lucene and thesaurus ? + for(KeywordBean keywordBeanWithoutLanguage : resultsWithoutLanguage) { + boolean keywordWithLanguagefound = false; + for(KeywordBean keywordBeanWithLanguage: resultsWithLanguage) { + // keyword found with language : no need to add default + if(keywordBeanWithoutLanguage.getValue().equals(keywordBeanWithLanguage.getValue())) { + keywordWithLanguagefound = true; + break; + } + } + // keyword with language not found : use default + if(!keywordWithLanguagefound){ + endResults.add(keywordBeanWithoutLanguage); + } + } + _results = endResults; - String _lang = srvContext.getLanguage(); - _query = "SELECT prefLab, note, id, lowc, uppc " - + " FROM {id} rdf:type {skos:Concept}; " - + " skos:prefLabel {prefLab};" - + " [skos:scopeNote {note} WHERE lang(note) LIKE \""+_lang+"\"]; " - + " [gml:BoundedBy {} gml:lowerCorner {lowc}]; " - + " [gml:BoundedBy {} gml:upperCorner {uppc}] " - + " WHERE lang(prefLab) LIKE \""+_lang+"\"" - + " AND prefLab LIKE "; - - switch (pTypeSearch) { - case 0: // Start with - _query += "\""+ sKeyword+ "*\" "; - break; - case 1: // contains - _query += "\"*"+ sKeyword+ "*\" "; - break; - case 2: // exact match - _query += "\""+ sKeyword+ "\" "; - break; - default: - break; - } - _query += " IGNORE CASE " - + " LIMIT "+ _maxResults - + " USING NAMESPACE skos=<http://www.w3.org/2004/02/skos/core#>, gml=<http://www.opengis.net/gml#> "; - } + } + /** + * Searches. Global _query must have been created before calling this. + * + * @param listThesauri list of thesauri + * @throws MalformedQueryException hmm + * @throws IOException hmm + * @throws QueryEvaluationException hmm + * @throws AccessDeniedException hmm + */ + private void search(List<Element> listThesauri) throws MalformedQueryException, IOException, QueryEvaluationException, AccessDeniedException { + // For each thesaurus, search for keywords in _results + _results = new ArrayList<KeywordBean>(); + int idKeyword = 0; - // For each thesaurus, search for keywords in _results - _results = new ArrayList<KeywordBean>(); - int idKeyword = 0; + // Search in all Thesaurus if none selected + for (Element thesaurusName : listThesauri) { + Thesaurus thesaurus = _thesaurusManager.getThesaurusByName(thesaurusName.getTextTrim()); - for (Object aListThesauri : listThesauri) { // Search in all Thesaurus if none selected - Element el = (Element) aListThesauri; - String sThesaurusName = el.getTextTrim(); + // Perform request + QueryResultsTable resultsTable = thesaurus.performRequest(_query); - Thesaurus thesaurus = _tm.getThesaurusByName(sThesaurusName); + int rowCount = resultsTable.getRowCount(); - // Perform request - QueryResultsTable resultsTable = thesaurus.performRequest(_query); + for (int row = 0; row < rowCount; row++) { + // preflab + Value value = resultsTable.getValue(row, 0); + String sValue = ""; + if (value != null) { + sValue = value.toString(); + } + // definition + Value definition = resultsTable.getValue(row, 1); + String sDefinition = ""; + if (definition != null) { + sDefinition = definition.toString(); + } + // uri (= id in RDF file != id in list) + Value uri = resultsTable.getValue(row, 2); + String sUri = ""; + if (uri != null) { + sUri = uri.toString(); + } - int rowCount = resultsTable.getRowCount(); + Value lowCorner = resultsTable.getValue(row, 3); + Value upperCorner = resultsTable.getValue(row, 4); - for (int row = 0; row < rowCount; row++) { - // preflab - Value value = resultsTable.getValue(row, 0); - String sValue = ""; - if (value != null) { - sValue = value.toString(); - } - // definition - Value definition = resultsTable.getValue(row, 1); - String sDefinition = ""; - if (definition != null) { - sDefinition = definition.toString(); - } - // uri (= id in RDF file != id in list) - Value uri = resultsTable.getValue(row, 2); - String sUri = ""; - if (uri != null) { - sUri = uri.toString(); - } + String sUpperCorner; + String sLowCorner; + String sEast = ""; + String sSouth = ""; + String sWest = ""; + String sNorth = ""; - Value lowCorner = resultsTable.getValue(row, 3); - Value upperCorner = resultsTable.getValue(row, 4); + // lowcorner + if (lowCorner != null) { + sLowCorner = lowCorner.toString(); + sWest = sLowCorner.substring(0, sLowCorner.indexOf(' ')).trim(); + sSouth = sLowCorner.substring(sLowCorner.indexOf(' ')).trim(); + } - String sUpperCorner; - String sLowCorner; + // uppercorner + if (upperCorner != null) { + sUpperCorner = upperCorner.toString(); + sEast = sUpperCorner.substring(0, sUpperCorner.indexOf(' ')).trim(); + sNorth = sUpperCorner.substring(sUpperCorner.indexOf(' ')).trim(); + } - String sEast = ""; - String sSouth = ""; - String sWest = ""; - String sNorth = ""; + KeywordBean kb = new KeywordBean(idKeyword, sValue, sDefinition, sUri, sEast, sWest, sSouth, sNorth, thesaurusName.getTextTrim(), + false, _lang, thesaurus.getTitle()); + _results.add(kb); + idKeyword++; + } + } + //System.out.println("KeywordsSearcher search found # " + _results.size() + " results"); + } + /** + * Creates query for keyword in a language. + * + * @param _lang language + * @param sKeyword keyword + * @param pTypeSearch type of search + */ + private void createQuery(String _lang, String sKeyword, int pTypeSearch){ + // FIXME : Where to search ? only on term having GUI language or in all ? + // Should be + // - look for a term in all language + // - get prefLab in GUI lang + // This will cause multilingual metadata search quite complex !! + // Quid Lucene and thesaurus ? + _query = "SELECT prefLab, note, id, lowc, uppc " + + " FROM {id} rdf:type {skos:Concept}; " + + " skos:prefLabel {prefLab};" + + " [skos:scopeNote {note} WHERE lang(note) LIKE \""+_lang+"\"]; " + + " [gml:BoundedBy {} gml:lowerCorner {lowc}]; " + + " [gml:BoundedBy {} gml:upperCorner {uppc}] " + + " WHERE lang(prefLab) LIKE \""+_lang+"\"" + + " AND prefLab LIKE "; - // lowcorner - if (lowCorner != null) { - sLowCorner = lowCorner.toString(); - sWest = sLowCorner.substring(0, sLowCorner.indexOf(' ')).trim(); - sSouth = sLowCorner.substring(sLowCorner.indexOf(' ')).trim(); - } + switch (pTypeSearch) { + case 0: // Start with + _query += "\""+ sKeyword+ "*\" "; + break; + case 1: // contains + _query += "\"*"+ sKeyword+ "*\" "; + break; + case 2: // exact match + _query += "\""+ sKeyword+ "\" "; + break; + default: + break; + } + _query += " IGNORE CASE " + + " LIMIT "+ _maxResults + + " USING NAMESPACE skos=<http://www.w3.org/2004/02/skos/core#>, gml=<http://www.opengis.net/gml#> "; + } - // uppercorner - if (upperCorner != null) { - sUpperCorner = upperCorner.toString(); - sEast = sUpperCorner.substring(0, sUpperCorner.indexOf(' ')).trim(); - sNorth = sUpperCorner.substring(sUpperCorner.indexOf(' ')) - .trim(); - } - - KeywordBean kb = new KeywordBean(idKeyword, sValue, - sDefinition, sUri, sEast, sWest, sSouth, sNorth, - sThesaurusName, false, _lang, thesaurus.getTitle()); - _results.add(kb); - idKeyword++; - } - } - } - } - - public void searchBN(ServiceContext srvContext, Element params, String request) - throws Exception { + /** + * TODO javadoc. + * + * @param srvContext servicecontext + * @param params parameters + * @param request request + * @throws Exception hmm + */ + public void searchBN(ServiceContext srvContext, Element params, String request) throws Exception { + //System.out.println("KeywordsSearcher searchBN"); // TODO : Add geonetinfo elements. String id = Util.getParam(params, "id"); String sThesaurusName = Util.getParam(params, "thesaurus"); @@ -291,13 +368,20 @@ searchBN(id, sThesaurusName, request, _lang); } - public void searchBN(String id, String sThesaurusName, String request, String _lang) - throws Exception { + /** + * TODO javadoc. + * + * @param id id + * @param sThesaurusName thesaurus name + * @param request request + * @param _lang language + * @throws Exception hmm + */ + public void searchBN(String id, String sThesaurusName, String request, String _lang) throws Exception { + //System.out.println("KeywordsSearcher searchBN 2"); - Thesaurus thesaurus = _tm.getThesaurusByName(sThesaurusName); + Thesaurus thesaurus = _thesaurusManager.getThesaurusByName(sThesaurusName); _results = new ArrayList<KeywordBean>(); - - String _query = "SELECT prefLab, note, id " + " from {id} rdf:type {skos:Concept};" + " skos:prefLabel {prefLab};" @@ -330,32 +414,25 @@ sUri = uri.toString(); } - KeywordBean kb = new KeywordBean(idKeyword, sValue, - "", sUri, "", "", "", "", - sThesaurusName, false, _lang, thesaurus.getTitle()); + KeywordBean kb = new KeywordBean(idKeyword, sValue, "", sUri, "", "", "", "", sThesaurusName, false, _lang, thesaurus.getTitle()); _results.add(kb); idKeyword++; } } - public void findEnclosedGeoKeyword(String sKeywordCode){ - _query = "SELECT prefLab, note, id, lowc, uppc " - + " FROM {id} rdf:type {skos:Concept}; " - + " skos:prefLabel {prefLab};" - + " [skos:scopeNote {note} WHERE lang(note) LIKE \""+_lang+"\"]; " - + " [gml:BoundedBy {} gml:lowerCorner {lowc}]; " - + " [gml:BoundedBy {} gml:upperCorner {uppc}] " - + " WHERE lang(prefLab) LIKE \""+_lang+"\"" - + " AND prefLab LIKE \"" - + sKeywordCode - + "*\" " - + " USING NAMESPACE skos=<http://www.w3.org/2004/02/skos/core#>, gml=<http://www.opengis.net/gml#> "; - } - + /** + * + * @return size of results + */ public int getNbResults() { return _results.size(); } + /** + * TODO javadoc. + * + * @param tri direction + */ public void sortResults(String tri) { if ("label".equals(tri)) { // sort by label @@ -380,6 +457,12 @@ } } + /** + * TODO javadoc. + * + * @return element + * @throws Exception hmm + */ public Element getResults() throws Exception { Element elDescKeys = new Element("descKeys"); @@ -423,6 +506,11 @@ return elDescKeys; } + /** + * TODO javadoc. + * + * @param params parameters + */ public void selectUnselectKeywords(Element params) { List listIdKeywordsSelected = params.getChildren("pIdKeyword"); for (Object aListIdKeywordsSelected : listIdKeywordsSelected) { @@ -439,6 +527,8 @@ } /** + * TODO javadoc. + * * @return an element describing the list of selected keywords */ public Element getSelectedKeywords() { @@ -474,7 +564,7 @@ } /** - * Add bounding box of keyword if one available. + * Adds bounding box of keyword if one available. * * @param kb The keyword to analyze. * @param elKeyword The XML fragment to update. @@ -502,96 +592,14 @@ elKeyword.addContent(elBbox); } } - /** - * @return a collection of descKeys element describing the list of selected keywords - */ - public ArrayList getSelectedKeywordsInDescKeys() { - ArrayList<KeywordBean> listSelectedKeywords = new ArrayList<KeywordBean>(); - ArrayList listElDescKeys = new ArrayList(); - // Get all selected keywords - for (int i=0; i<this.getNbResults(); i++){ - KeywordBean kb = _results.get(i); - if (kb.isSelected()) { - listSelectedKeywords.add(kb); - } - } - - // Sort keywords - Collections.sort(listSelectedKeywords, new Comparator() { - // Compare - public int compare(final Object o1, final Object o2) { - final KeywordBean kw1 = (KeywordBean) o1; - final KeywordBean kw2 = (KeywordBean) o2; - return kw1.getThesaurus().compareToIgnoreCase(kw2.getThesaurus()); - } - }); - - String thesaurusName =""; - Element elDescKeys = null; - Element elKeyTyp = null; - Element elKeyTypCd = null; - Element elThesaName = null; - Element elResTitle = null; - Element elResRefDate = null; - Element elRefDate = null; - Element elRefDateType = null; - Element elDateTypCd = null; - - for (KeywordBean kb : listSelectedKeywords) { - if (!thesaurusName.equals(kb.getThesaurus())) { - if (elDescKeys != null) { - elKeyTyp.addContent(elKeyTypCd); - elDescKeys.addContent(elKeyTyp); - elRefDateType.addContent(elDateTypCd); - elResRefDate.addContent(elRefDateType); - elResRefDate.addContent(elRefDate); - elThesaName.addContent(elResTitle); - elThesaName.addContent(elResRefDate); - elDescKeys.addContent(elThesaName); - listElDescKeys.add(elDescKeys.clone()); - } - elDescKeys = new Element("descKeys"); - String thesaurusType = kb.getThesaurus(); - thesaurusType = thesaurusType.replace('.', '-'); - thesaurusType = thesaurusType.split("-")[1]; - elKeyTyp = new Element("keyTyp"); - elKeyTypCd = new Element("KeyTypCd"); - elKeyTypCd.setAttribute("value", thesaurusType); - elThesaName = new Element("thesaName"); - elResTitle = new Element("resTitle"); - elResTitle.addContent(kb.getThesaurus()); - elResRefDate = new Element("resRefDate"); - elRefDate = new Element("refDate"); - elRefDateType = new Element("refDateType"); - elDateTypCd = new Element("DateTypCd"); - elDateTypCd.setAttribute("value", "nill"); - - thesaurusName = kb.getThesaurus(); - } - Element elKeyword = new Element("keyword"); - elKeyword.addContent(kb.getValue()); - if (elDescKeys != null) { - elDescKeys.addContent(elKeyword); - } - } - // add last item - if (elDescKeys!=null){ - elKeyTyp.addContent(elKeyTypCd); - elDescKeys.addContent(elKeyTyp); - elRefDateType.addContent(elDateTypCd); - elResRefDate.addContent(elRefDateType); - elResRefDate.addContent(elRefDate); - elThesaName.addContent(elResTitle); - elThesaName.addContent(elResRefDate); - elDescKeys.addContent(elThesaName); - listElDescKeys.add(elDescKeys.clone()); - } - return listElDescKeys; - } - + /** + * TODO javadoc. + * + * @return list of keywordbeans + */ public List<KeywordBean> getSelectedKeywordsInList() { - ArrayList<KeywordBean> keywords = new ArrayList<KeywordBean>(); + List<KeywordBean> keywords = new ArrayList<KeywordBean>(); for (int i = 0; i < this.getNbResults(); i++) { KeywordBean kb = _results.get(i); if (kb.isSelected()) { @@ -601,6 +609,12 @@ return keywords; } + /** + * TODO javadoc. + * + * @param id id + * @return keywordbean + */ public KeywordBean existsResult(String id) { KeywordBean keyword = null; for (int i = 0; i < this.getNbResults(); i++) { @@ -613,4 +627,4 @@ return keyword; } -} +} \ No newline at end of file Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/LuceneQueryBuilder.java =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/LuceneQueryBuilder.java 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/LuceneQueryBuilder.java 2011-07-13 07:33:19 UTC (rev 8005) @@ -470,7 +470,9 @@ } } // remove leading * - starsPreserved = starsPreserved.substring(1); + if (!StringUtils.isEmpty(starsPreserved)) { + starsPreserved = starsPreserved.substring(1); + } // restore ending wildcard if (string.endsWith("*")) { Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/LuceneSearcher.java =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/LuceneSearcher.java 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/search/LuceneSearcher.java 2011-07-13 07:33:19 UTC (rev 8005) @@ -740,7 +740,9 @@ } } // remove leading * - starsPreserved = starsPreserved.substring(1); + if (!org.apache.commons.lang.StringUtils.isEmpty(starsPreserved)) { + starsPreserved = starsPreserved.substring(1); + } // restore ending wildcard if (string.endsWith("*")) { Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/setting/SettingManager.java =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/setting/SettingManager.java 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/kernel/setting/SettingManager.java 2011-07-13 07:33:19 UTC (rev 8005) @@ -27,6 +27,9 @@ import jeeves.server.resources.ProviderManager; import jeeves.server.resources.ResourceListener; import jeeves.server.resources.ResourceProvider; +import jeeves.utils.Log; +import jeeves.utils.Xml; + import org.fao.geonet.constants.Geonet; import org.jdom.Element; @@ -229,12 +232,13 @@ { String path = entry.getKey(); String value= makeString(entry.getValue()); + Log.debug(Geonet.SETTINGS, "Set path: " + path + ", value: " + value); Setting s = resolve(path); if (s == null) { success = false; - System.out.println("SettingManager: Unable to find Settings row to save " + path + " to."); + Log.debug(Geonet.SETTINGS, "Unable to find Settings row."); } else { @@ -244,9 +248,7 @@ } return success; - } - finally - { + } finally { lock.writeLock().unlock(); } } Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/util/XslUtil.java =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/util/XslUtil.java 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/java/org/fao/geonet/util/XslUtil.java 2011-07-13 07:33:19 UTC (rev 8005) @@ -1,16 +1,18 @@ package org.fao.geonet.util; -import jeeves.utils.Log; -import org.fao.geonet.constants.Geonet; -import org.fao.geonet.kernel.search.LuceneSearcher; - import java.io.IOException; +import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.regex.Matcher; import java.util.regex.Pattern; +import jeeves.utils.Log; + +import org.fao.geonet.constants.Geonet; +import org.fao.geonet.kernel.search.LuceneSearcher; + /** * These are all extension methods for calling from xsl docs. Note: All * params are objects because it is hard to determine what is passed in from XSLT. @@ -181,18 +183,32 @@ public static String getUrlStatus(String url){ URL u; URLConnection conn; + int connectionTimeout = 500; try { u = new URL(url); conn = u.openConnection(); + conn.setConnectTimeout(connectionTimeout); + // TODO : set proxy - conn.setConnectTimeout(500); - conn.getInputStream().close(); - } catch (MalformedURLException e) { + + if (conn instanceof HttpURLConnection) { + HttpURLConnection httpConnection = (HttpURLConnection) conn; + httpConnection.setInstanceFollowRedirects(true); + httpConnection.connect(); + httpConnection.disconnect(); + // FIXME : some URL return HTTP200 with an empty reply from server + // which trigger SocketException unexpected end of file from server + int code = httpConnection.getResponseCode(); + + if (code == HttpURLConnection.HTTP_OK) { + return ""; + } else { + return "Status: " + code; + } + } // TODO : Other type of URLConnection + } catch (Exception e) { e.printStackTrace(); - return e.getMessage(); - } catch (IOException e) { - e.printStackTrace(); - return e.getMessage(); + return e.toString(); } return ""; Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/resources ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/cachingxslt/src/main/resources:6059 /sandbox/guiwidgets/web/src/main/resources:7403-7467,7471-7570 /trunk/web/src/main/resources:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/cachingxslt/src/main/resources:6059 /sandbox/guiwidgets/web/src/main/resources:7403-7467,7471-7570 /trunk/web/src/main/resources:7350-7401,7403-7467,7471-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/WEB-INF ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/web/geonetwork/WEB-INF:6059 /sandbox/guiwidgets/web/src/main/webapp/WEB-INF:7403-7467,7471-7570 /trunk/web/src/main/webapp/WEB-INF:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/web/geonetwork/WEB-INF:6059 /sandbox/guiwidgets/web/src/main/webapp/WEB-INF:7403-7467,7471-7570 /trunk/web/src/main/webapp/WEB-INF:7350-7401,7403-7467,7471-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/WEB-INF/classes/setup ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/cachingxslt/src/main/resources/setup:6059 /sandbox/guiwidgets/web/src/main/webapp/WEB-INF/classes/setup:7403-7467,7471-7570 /trunk/web/src/main/webapp/WEB-INF/classes/setup:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/cachingxslt/src/main/resources/setup:6059 /sandbox/guiwidgets/web/src/main/webapp/WEB-INF/classes/setup:7403-7467,7471-7570 /trunk/web/src/main/webapp/WEB-INF/classes/setup:7350-7401,7403-7467,7471-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/WEB-INF/config-summary.xml ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/guiwidgets/web/src/main/webapp/WEB-INF/config-summary.xml:7403-7467,7471-7570 /trunk/web/src/main/webapp/WEB-INF/config-summary.xml:7350-7401,7403-7467,7471-7930 + /sandbox/guiwidgets/web/src/main/webapp/WEB-INF/config-summary.xml:7403-7467,7471-7570 /trunk/web/src/main/webapp/WEB-INF/config-summary.xml:7350-7401,7403-7467,7471-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/conversion ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/web/geonetwork/conversion:6059 /sandbox/guiwidgets/web/src/main/webapp/conversion:7403-7467,7471-7570 /trunk/web/src/main/webapp/conversion:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/web/geonetwork/conversion:6059 /sandbox/guiwidgets/web/src/main/webapp/conversion:7403-7467,7471-7570 /trunk/web/src/main/webapp/conversion:7350-7401,7403-7467,7471-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/geonetwork.css ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/web/geonetwork/geonetwork.css:6059 /sandbox/guiwidgets/web/src/main/webapp/geonetwork.css:7403-7467,7471-7570 /trunk/web/src/main/webapp/geonetwork.css:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/web/geonetwork/geonetwork.css:6059 /sandbox/guiwidgets/web/src/main/webapp/geonetwork.css:7403-7467,7471-7570 /trunk/web/src/main/webapp/geonetwork.css:7350-7401,7403-7467,7471-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/htmlCache ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/web/geonetwork/htmlCache:6059 /sandbox/guiwidgets/web/src/main/webapp/htmlCache:7403-7467,7471-7570 /trunk/web/src/main/webapp/htmlCache:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/web/geonetwork/htmlCache:6059 /sandbox/guiwidgets/web/src/main/webapp/htmlCache:7403-7467,7471-7570 /trunk/web/src/main/webapp/htmlCache:7350-7401,7403-7467,7471-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/images ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/web/geonetwork/images:6059 /sandbox/guiwidgets/web/src/main/webapp/images:7403-7467,7471-7570 /trunk/web/src/main/webapp/images:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/web/geonetwork/images:6059 /sandbox/guiwidgets/web/src/main/webapp/images:7403-7467,7471-7570 /trunk/web/src/main/webapp/images:7350-7401,7403-7467,7471-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/index.html ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/web/geonetwork/index.html:6059 /sandbox/guiwidgets/web/src/main/webapp/index.html:7403-7467,7471-7570 /trunk/web/src/main/webapp/index.html:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/web/geonetwork/index.html:6059 /sandbox/guiwidgets/web/src/main/webapp/index.html:7403-7467,7471-7570 /trunk/web/src/main/webapp/index.html:7350-7401,7403-7467,7471-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/loc ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/web/geonetwork/loc:6059 /sandbox/guiwidgets/web/src/main/webapp/loc:7403-7467 /trunk/web/src/main/webapp/loc:7350-7401,7403-7467,7587-7930 + /sandbox/BlueNetMEST/web/geonetwork/loc:6059 /sandbox/guiwidgets/web/src/main/webapp/loc:7403-7467 /trunk/web/src/main/webapp/loc:7350-7401,7403-7467,7587-7996 Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/loc/de/xml/strings.xml =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/loc/de/xml/strings.xml 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/loc/de/xml/strings.xml 2011-07-13 07:33:19 UTC (rev 8005) @@ -559,7 +559,7 @@ <longitude>geographische Länge (zwischen -180 und 180) in Grad</longitude> <longMax>long (max)</longMax> <longMin>long (min)</longMin> - <mainpageTitle>Finden Sie Interaktive Karten, GIS Datensätze und weitere räumliche Daten aus dem D A CH +-Raum</mainpageTitle> + <mainpageTitle>Finden Sie Interaktive Karten, GIS Datensätze und weitere räumliche Daten</mainpageTitle> <maintenanceTab>Maintenance</maintenanceTab> <management>Management</management> <mandatory>verbindlich</mandatory> @@ -837,7 +837,7 @@ <timeoutChoice value="10">nach 10 Sekunden</timeoutChoice> <timeoutChoice value="20">nach 20 Sekunden</timeoutChoice> <timeoutChoice value="30">nach 30 Sekunden</timeoutChoice> - <title>D A CH + - GeoPortal</title> + <title>Geonetwork - Das Portal zu räumlichen Information</title> <to>Nach</to> <toDateSelector>Auswahl des Enddatums</toDateSelector> <tools>Werkzeuge</tools> Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/modalbox.css ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/web/geonetwork/modalbox.css:6059 /sandbox/guiwidgets/web/src/main/webapp/modalbox.css:7403-7467,7471-7570 /trunk/web/src/main/webapp/modalbox.css:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/web/geonetwork/modalbox.css:6059 /sandbox/guiwidgets/web/src/main/webapp/modalbox.css:7403-7467,7471-7570 /trunk/web/src/main/webapp/modalbox.css:7350-7401,7403-7467,7471-7996 Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/scripts ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/web/geonetwork/scripts:6059 /sandbox/guiwidgets/web/src/main/webapp/scripts:7403-7467,7471-7570 /trunk/web/src/main/webapp/scripts:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/web/geonetwork/scripts:6059 /sandbox/guiwidgets/web/src/main/webapp/scripts:7403-7467,7471-7570 /trunk/web/src/main/webapp/scripts:7350-7401,7403-7467,7471-7996 Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/scripts/gn_search.js =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/scripts/gn_search.js 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/scripts/gn_search.js 2011-07-13 07:33:19 UTC (rev 8005) @@ -729,6 +729,7 @@ function gn_showSingleMet(pars) { + if ($("loadingMD")) $("loadingMD").show(); var myAjax = new Ajax.Request( getGNServiceURL('metadata.show.embedded'), @@ -736,6 +737,8 @@ method: 'get', parameters: pars, onSuccess: function (req) { + if ($("loadingMD")) $("loadingMD").hide(); + var parent = $('resultList'); clearNode(parent); // create new element Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xml ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/web/geonetwork/xml:6059 /sandbox/guiwidgets/web/src/main/webapp/xml:7403-7467,7471-7570 /trunk/web/src/main/webapp/xml:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/web/geonetwork/xml:6059 /sandbox/guiwidgets/web/src/main/webapp/xml:7403-7467,7471-7570 /trunk/web/src/main/webapp/xml:7350-7401,7403-7467,7471-7996 Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xml/schemas/iso19139/process/linked-data-checker.xsl =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xml/schemas/iso19139/process/linked-data-checker.xsl 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xml/schemas/iso19139/process/linked-data-checker.xsl 2011-07-13 07:33:19 UTC (rev 8005) @@ -27,11 +27,11 @@ <!-- Check URL --> <xsl:variable name="httpLinks" select="$root//*[starts-with(., 'http') and name(..) != 'geonet:info']"/> - <xsl:for-each select="$httpLinks"> + <xsl:for-each-group select="$httpLinks" group-by="."> <xsl:call-template name="checkUrl"> <xsl:with-param name="url" select="."/> </xsl:call-template> - </xsl:for-each> + </xsl:for-each-group> </xsl:template> <xsl:template name="checkUrl"> @@ -46,7 +46,7 @@ <name xml:lang="en"> <xsl:value-of select="$type"/> <xsl:value-of select="."/> <xsl:value-of select="geonet:i18n($linked-data-checker-loc, 'a', $guiLang)"/> - <xsl:value-of select="."/>:<xsl:value-of select="$status"/> + <xsl:value-of select="$status"/> <xsl:value-of select="geonet:i18n($linked-data-checker-loc, 'b', $guiLang)"/></name> <operational>true</operational> <params>{ linkUrl:{type:'string', defaultValue:'<xsl:value-of select="normalize-space($url)"/>'} Deleted: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xml/schemas/iso19139/sample-data/locality_polygons_comprehensive.mef =================================================================== (Binary files differ) Deleted: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xml/schemas/iso19139/sample-data/photographic_session.mef =================================================================== (Binary files differ) Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xsl ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/web/geonetwork/xsl:6059 /sandbox/guiwidgets/web/src/main/webapp/xsl:7403-7467,7471-7570 /trunk/web/src/main/webapp/xsl:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/web/geonetwork/xsl:6059 /sandbox/guiwidgets/web/src/main/webapp/xsl:7403-7467,7471-7570 /trunk/web/src/main/webapp/xsl:7350-7401,7403-7467,7471-7996 Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xsl/main-page.xsl =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xsl/main-page.xsl 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xsl/main-page.xsl 2011-07-13 07:33:19 UTC (rev 8005) @@ -501,7 +501,7 @@ <xsl:comment>MAIN CONTENT</xsl:comment> <div class="geosearchmain"> - <h1 id="loadingMD" style="text-align: center; display: none; width:100%"><xsl:value-of select="/root/gui/strings/searching"/></h1> + <h1 id="loadingMD" style="text-align: center; display: none; width:100%"> <img src="{/root/gui/url}/images/loading.gif" width="20" height="21" /><xsl:value-of select="/root/gui/strings/searching"/></h1> <!-- This DIV contains a first-time message that will be removed when the first search will be run --> <div id="resultList"> Modified: sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xsl/metadata/layout.xsl =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xsl/metadata/layout.xsl 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/main/webapp/xsl/metadata/layout.xsl 2011-07-13 07:33:19 UTC (rev 8005) @@ -180,12 +180,12 @@ <xsl:choose> <xsl:when test="geonet:choose"> <xsl:value-of - select="concat('doNewORElementAction(',$apos,'/metadata.elem.add.new',$apos,',',$parentName,',',$apos,$name,$apos,',document.mainForm._',$parentName,'_',$qname,'.value,',$apos,$id,$apos,',',$apos,@action,$apos,',',$max,');')" + select="concat('doNewORElementAction(',$apos,'metadata.elem.add.new',$apos,',',$parentName,',',$apos,$name,$apos,',document.mainForm._',$parentName,'_',$qname,'.value,',$apos,$id,$apos,',',$apos,@action,$apos,',',$max,');')" /> </xsl:when> <xsl:otherwise> <xsl:value-of - select="concat('doNewElementAction(',$apos,'/metadata.elem.add.new',$apos,',',$parentName,',',$apos,$name,$apos,',',$apos,$id,$apos,',',$apos,@action,$apos,',',$max,');')" + select="concat('doNewElementAction(',$apos,'metadata.elem.add.new',$apos,',',$parentName,',',$apos,$name,$apos,',',$apos,$id,$apos,',',$apos,@action,$apos,',',$max,');')" /> </xsl:otherwise> </xsl:choose> @@ -425,7 +425,7 @@ <xsl:with-param name="addLink"> <xsl:if test="@add='true'"> <xsl:value-of - select="concat('doNewAttributeAction(',$apos,'/metadata.elem.add.new',$apos,',',../geonet:element/@ref,',',$apos,@name,$apos,',', + select="concat('doNewAttributeAction(',$apos,'metadata.elem.add.new',$apos,',',../geonet:element/@ref,',',$apos,@name,$apos,',', $apos,$id,$apos,',',$apos,'add',$apos,');')" /> </xsl:if> @@ -565,21 +565,21 @@ </xsl:variable> <xsl:variable name="removeLink"> <xsl:value-of - select="concat('doRemoveElementAction(',$apos,'/metadata.elem.delete.new',$apos,',',geonet:element/@ref,',',geonet:element/@parent,',',$apos,$id,$apos,',',geonet:element/@min,');')"/> + select="concat('doRemoveElementAction(',$apos,'metadata.elem.delete.new',$apos,',',geonet:element/@ref,',',geonet:element/@parent,',',$apos,$id,$apos,',',geonet:element/@min,');')"/> <xsl:if test="not(geonet:element/@del='true')"> <xsl:text>!OPTIONAL</xsl:text> </xsl:if> </xsl:variable> <xsl:variable name="upLink"> <xsl:value-of - select="concat('doMoveElementAction(',$apos,'/metadata.elem.up',$apos,',',geonet:element/@ref,',',$apos,$id,$apos,');')"/> + select="concat('doMoveElementAction(',$apos,'metadata.elem.up',$apos,',',geonet:element/@ref,',',$apos,$id,$apos,');')"/> <xsl:if test="not(geonet:element/@up='true')"> <xsl:text>!OPTIONAL</xsl:text> </xsl:if> </xsl:variable> <xsl:variable name="downLink"> <xsl:value-of - select="concat('doMoveElementAction(',$apos,'/metadata.elem.down',$apos,',',geonet:element/@ref,',',$apos,$id,$apos,');')"/> + select="concat('doMoveElementAction(',$apos,'metadata.elem.down',$apos,',',geonet:element/@ref,',',$apos,$id,$apos,');')"/> <xsl:if test="not(geonet:element/@down='true')"> <xsl:text>!OPTIONAL</xsl:text> </xsl:if> @@ -637,20 +637,20 @@ <!-- place + because schema insists ie. next element is geonet:child --> <xsl:when test="$newBrother/* and not($newBrother/*/geonet:choose)"> <xsl:value-of - select="concat('doNewElementAction(',$apos,'/metadata.elem.add.new',$apos,',',geonet:element/@parent,',',$apos,name(.),$apos,',',$apos,$id,$apos,',',$apos,'add',$apos,',',geonet:element/@max,');')" + select="concat('doNewElementAction(',$apos,'metadata.elem.add.new',$apos,',',geonet:element/@parent,',',$apos,name(.),$apos,',',$apos,$id,$apos,',',$apos,'add',$apos,',',geonet:element/@max,');')" /> </xsl:when> <!-- place optional + for use when re-ordering etc --> <xsl:when test="geonet:element/@add='true' and name($nextBrother)=name(.)"> <xsl:value-of - select="concat('doNewElementAction(',$apos,'/metadata.elem.add.new',$apos,',',geonet:element/@parent,',',$apos,name(.),$apos,',',$apos,$id,$apos,',',$apos,'add',$apos,',',geonet:element/@max,');!OPTIONAL')" + select="concat('doNewElementAction(',$apos,'metadata.elem.add.new',$apos,',',geonet:element/@parent,',',$apos,name(.),$apos,',',$apos,$id,$apos,',',$apos,'add',$apos,',',geonet:element/@max,');!OPTIONAL')" /> </xsl:when> <!-- place + because schema insists but no geonet:child nextBrother this case occurs in the javascript handling of the + --> <xsl:when test="geonet:element/@add='true' and not($newBrother/*/geonet:choose)"> <xsl:value-of - select="concat('doNewElementAction(',$apos,'/metadata.elem.add.new',$apos,',',geonet:element/@parent,',',$apos,name(.),$apos,',',$apos,$id,$apos,',',$apos,'add',$apos,',',geonet:element/@max,');')" + select="concat('doNewElementAction(',$apos,'metadata.elem.add.new',$apos,',',geonet:element/@parent,',',$apos,name(.),$apos,',',$apos,$id,$apos,',',$apos,'add',$apos,',',geonet:element/@max,');')" /> </xsl:when> </xsl:choose> @@ -839,21 +839,21 @@ </xsl:variable> <xsl:variable name="removeLink"> <xsl:value-of - select="concat('doRemoveElementAction(',$apos,'/metadata.elem.delete.new',$apos,',',geonet:element/@ref,',',geonet:element/@parent,',',$apos,$id,$apos,',',geonet:element/@min,');')"/> + select="concat('doRemoveElementAction(',$apos,'metadata.elem.delete.new',$apos,',',geonet:element/@ref,',',geonet:element/@parent,',',$apos,$id,$apos,',',geonet:element/@min,');')"/> <xsl:if test="not(geonet:element/@del='true')"> <xsl:text>!OPTIONAL</xsl:text> </xsl:if> </xsl:variable> <xsl:variable name="upLink"> <xsl:value-of - select="concat('doMoveElementAction(',$apos,'/metadata.elem.up',$apos,',',geonet:element/@ref,',',$apos,$id,$apos,');')"/> + select="concat('doMoveElementAction(',$apos,'metadata.elem.up',$apos,',',geonet:element/@ref,',',$apos,$id,$apos,');')"/> <xsl:if test="not(geonet:element/@up='true')"> <xsl:text>!OPTIONAL</xsl:text> </xsl:if> </xsl:variable> <xsl:variable name="downLink"> <xsl:value-of - select="concat('doMoveElementAction(',$apos,'/metadata.elem.down',$apos,',',geonet:element/@ref,',',$apos,$id,$apos,');')"/> + select="concat('doMoveElementAction(',$apos,'metadata.elem.down',$apos,',',geonet:element/@ref,',',$apos,$id,$apos,');')"/> <xsl:if test="not(geonet:element/@down='true')"> <xsl:text>!OPTIONAL</xsl:text> </xsl:if> Modified: sandbox/BlueNetMEST/ANZMEST/web/src/test/java/org/fao/geonet/kernel/search/LuceneQueryTest.java =================================================================== --- sandbox/BlueNetMEST/ANZMEST/web/src/test/java/org/fao/geonet/kernel/search/LuceneQueryTest.java 2011-07-12 14:08:47 UTC (rev 8004) +++ sandbox/BlueNetMEST/ANZMEST/web/src/test/java/org/fao/geonet/kernel/search/LuceneQueryTest.java 2011-07-13 07:33:19 UTC (rev 8005) @@ -113,6 +113,25 @@ } /** + * 'any' parameter with a single token value that has a wildcard. + */ + public void testSingleTokenWildcardWhitespace() { + // create request object + JDOMFactory factory = new DefaultJDOMFactory(); + Element request = factory.element("request"); + Element any = factory.element("any"); + any.addContent("hoeper *"); + request.addContent(any); + // build lucene query input + LuceneQueryInput lQI = new LuceneQueryInput(request); + // build lucene query + Query query = new LuceneQueryBuilder(_tokenizedFieldSet, _numericFieldSet, _analyzer).build(lQI); + // verify query + System.out.println( query.toString()); + assertEquals("+(+any:hoeper +any:*) +_isTemplate:n", query.toString()); + } + + /** * 'any' parameter with a no value. */ public void testNoTokenAny() { Property changes on: sandbox/BlueNetMEST/ANZMEST/web/src/test/java/org/fao/geonet/kernel/search/LuceneQueryTest.java ___________________________________________________________________ Modified: svn:mergeinfo - /sandbox/BlueNetMEST/src/org/fao/geonet/kernel/search/LuceneQueryTest.java:6059 /sandbox/guiwidgets/web/src/test/java/org/fao/geonet/kernel/search/LuceneQueryTest.java:7403-7467,7471-7570 /trunk/web/src/test/java/org/fao/geonet/kernel/search/LuceneQueryTest.java:7350-7401,7403-7467,7471-7930 + /sandbox/BlueNetMEST/src/org/fao/geonet/kernel/search/LuceneQueryTest.java:6059 /sandbox/guiwidgets/web/src/test/java/o... [truncated message content] |