Added preliminary support for multiple spatial schemas in the same metacat instance .. bug 2551
Initial architecture for dynamically generating SLD/OGC:Filter documents to control which docids get shown on the map. The sldfactory servlet is in place to handle this but is not fully functional since there is currently no way to quickly and dynamically generate a list of allowable docids with a level of performance acceptable for real-time web mapping.
Merged the spatial web.xml.combined into the default web.xml.tomcat5
Updated MetaCatServlet so that it supports a web-based interface for configuring its own properties the first time it is run (determined by the property "configured" being set to false). Which properties are exposed in the web interface is determined by the list of properties in the 'metacat.properties.metadata' file. This file is managed by the new OptionsMetadata class in the utilities module, and provides information that allows metacat to build a human-readable configuration page for the properties. Still need to finish filling out the information in metacat.properties.metadata for the rest of the properties that we want to be editable. This autoconfiguration process is the first step towards building a turnkey installer for metacat....
Ensure that spatial operations are only triggered when runSpatialOption is set to true.
Modified the configuration classes to allow configuration through the web interface of all of the properties set in the metacat.properties file. The layout of this form still needs work, in particular because java.util.Properties does not maintain any order for the properties, nor does it allow for metadata about each property to be set and saved in the file. We can probably overcome this by creating a shadow file that lists all of the options and their metadata (such as grouping, controlled values, etc).
Began work on a web interface for configuring metacat at runtime. This systemchecks the 'configured' property when metacat starts up. If configured=false, thenit loads an HTML form containing the properties that need to be set. The user configures the properties and they are written into the metacat.properties file. Then metacat needs to be restarted. ...
Eliminated unneeded log information in source code file.
Eliminated the MetacatUtil.printMessage() method in favor of using the Log4J debugging methods.
Removed the release ant token from all files in 'src'.
Changed the filename that is used when data files are downloaded and when XML files are downloaded in XML format. Now, data files use the format "docid-docname". See bug #2566.
Only run spatial cache regeneration once. Plus some fixes to spatial_query action api.
Changed float object handling in spatial components in order to compile on jdk 1.4.2
Ensure that spatial cache respects changed access constraints for updated documents
Correctly cache doc title in the spatial cache
fix to docid overrides to handle an empty result set
Fixed geometry logic to swap north and south if n < s
Reverting to previous QueryTerm.java that uses 'LIKE' for comparisons. Thisallows substring matching to work properly, but prevents the postgres indexfrom being used. As a result, full table scans are done on the tables, causinga major performance hit. Need to determine how to eliminate the use of LIKE...
Modifications to the table definitions to add indices that should be usedwhen searching the database. Added an upgrade script to create theseindices as well. Modified QueryTerm.java to use the '=' comparator ratherthan 'LIKE' so that we can do index scans rather than table scans. This needs...
fixed point centroid calculation to reflect bboxs that cross the dateline
Make spatial query more accurate by actually intersecting geometries in addition to a simple bbox filter. Important for testing intersection of irregular shaped objects or multi-geometries
Added docid override mechanism to DBQuery. Bypasses the queryspec.printSQL method and creates an optimized docid query in cases (like the spatial query) where you know the docids a priori
Updated spatial query to also look at point spatial cache as some documents may only be represented as a single point.
Rewrote spatial query handler to use geotools directly against the spatial cache.
Allow only public readable docs in the spatial cache
Added javadoc comments for all new spatial classes. Optimized the title query in SpatialDocument.
Removed old spatial classes
Fixed polygon generator for cases where bbox crosses the dateline or the poles
refactory java classes for spatial harvester
initial import of changes to metacat source and config files to support spatial option
Fixed parameter order for call to createSpatialQuery and fixed bounding box intersection logic.
added exception handler for normalize function. if StringIndexOutOfBoundsException is thrown then it is reported and nodedata value is forwarded without normalization.
Cleaned up the code with proper debug statements..
Replaced getIdentifyingName and ldapAuthenticate with new code. ldapAuthenticate will first try to form a secure connection. If the secure connection fails then based on the value specifiedin metacat.properties, an insecure connection will be made. authenticate() function first tries to connect using the dn specified with the default ldap base and url. in case that fails,...
Add qformat parameter in call to executeAdvancedSearch() method.
Refactor code to get the relative paths of the resultset XSL and search results JSP from the MetacatHelper class rather than hard-coded.
Change relative path to the login page.
Add new methods getResultsetXSL and getResultsJSP.
Add qformat parameter to runQuery() and executeAdvancedSearch() methods.
Omit unused StringTokenizer objects.
Add qformat parameter to resultsetToHTML() method. Set the qformat paramater in the transformer if it is specified.
Add serialVersionUID class variable to eliminate Eclipse warnings.
Allow admin to update any document
check for nullpointerexception
Fix for a bug in MetacatServlet. Metacat assumed that it is supposed to get the schema information from the second line of the document. This is basedon the assumption that xml decleration will always be present. This is good practice but not required. Hence the fix -> Metacat should ignore the...
Fix for bug# 2371
Modified code so that database is queried just once when a document is read. Currently the read is being done in the constructor and then again inthe function.
Two changes to Metacat Harvester implementation:
(1) Removed call to deprecated Thread.stop() method. Added boolean class variable, Harvester.keepRunning. When the thread is destroyed, set Harvester.keepRunning to false.
(2) Access the harvestList.xsd schema file by finding it locally in the web application rather than via a URL to cvs.ecoinformatics.org.
fixed bugs in teh client that were preventing the lsid service from working right
modified the client so it will work consistently with the web service
updated the client so it throws a DocumentNotFoundException if you attempt to read a docuemnt that doesn't exist
Missed a period.
Patch to make the getLastDocid function actually work on the text node.
Patch for making getlastdocid work when the identifier is a large numbergreater than can be encompassed by an int. Now it uses a long torepresent the number, which doesn't solve the problem but probably doesmake it work for the vast majority of cases.
Added new function getLastDocid to the metacat client so that it isaccessible to clients that need it.
Changes in the spatial query. The spatial query can be generated on the client side in form of an squery rather than specifically creating one on the server side.Commented out the code which creates spatial query based on the coordinates sent to Metacat. Instead of that, a temporary method was added which creates the squery...
iModified code -- the booleans werent really getting tested :(
iModified the switch to turn/off the spatial searching.:wq
Fixed a bug in the query system.
Some style changes and small changes to the spatial querying system.
Fixed the way the text query was written.
Initial support for displaying FGDC metadata documents in metacat.Added new returndoctype and returnfields to all query forms in the knpskin to allow FGDC documents to display in the resultsets. Need to addthese to the other skins as well, and to clean up the FGDC stylesheet to...
Patched to fix regression bug that prevented insertion of documentswithout a DOCTYPE or namespace declaration due to anArrayOutOfBoundsException. Now these documents can be inserted, whichis useful for inserting FGDC documents that frequently do not have a...
Modified the way the results page is displayed.
Fix in getNamespace function. Bug reported by Margaret in testing for cases where no namespace is specified.
This is a utility class for generating a pathquery document from an array of docids that one wants to query for. Its hacked together in that the default query parameters are all hardcoded into the class, which is obviously wrong. Need to figure out where those default params should be derived from.
Integration of new shapefile writers (r. reeves code) with MSO.
Continued integration of the spataial stuff with the metacat servlet.
Integration of the metacat servlet with the spatial option -- rubberbanding is implemented too.
Implementation of the rubber-bad query that PMARK has implemented through the UI.
metacat spatial option code -- code that produces layers depending on themetacat transaction.
Got rid of some debugging.
bugfixes to teh previous commit... cleaner exit for the indexing thread
Added a flag for indexing threads so that they exit once Metacat has unloaded.
Added checks for null pointers and changed the name of the config file
Using java.util.Property instead of Options. Options is a singleton class. Hence it cant be used for reading skin property files without changing it into a non-singleton class
Making changes for passing the params to the xsl for skins.
Remove CR characters from end of line. Formatting changes only, no functional changes.
Modified the lsid code to lookup document type-appropriate stylesheets fromthe lsid prooperties file.
code to handle null pointer exception
Added query for indexing attribute - needed for indexing packageId
Eliminate hard-coding of the knb context from the advanced search code. Advanced search servlet determines the metacat context name by reading the metacat.properties file at servlet initialization.
Reformatted LSID code for consistency.
Added apache commons logging to the LSID servlet using log4j. Remove println statements.
bugfix so that getlastdocid works for postgres
fix for the access control check - earlier only permission 4 and 7 were checked for read. Now the query checks for permissions 5 and 6 also
Modified code to that isModerator param is passed to the xsl which will render the results.
Changing the table name back to xml_index
Minor change to diagnostic output.
Fixed a log bug.
Modify the bean's get() methods that return String values to trim white space off the string prior to returning it. This is so that input fields that contain only white space will not be treated as valid search values.
Cleaned up AccessionNumber class to get rid of unused methods. It seems the entire accession_number table is no longer used but has not been deleted from the build. Will do in subsequent commit.
1. Modified buildIndex() so that only one connection is used for both indexing nodes and indexing paths.2. Modified the indexing algo so that indexing of paths is done while nodes are being indexed. Results in a much faster indexing algo3. Replaced access to NodeRecord.<variable> with NodeRecord.<getVariable>
Change the maximum code level reported to the site contact from "info" to "notice". This is to reduce the amount of diagnostic output generated in the email reports to the site contact. Diagnositcs of type "error", "warning", and "notice" will be sent to the site contact, while messages of type "info" and "debug" will not (but they will still be sent to the Harvester Administrator).
Modified the way checkDocumentTable is accessed. Also removed the while loop from the checkDocumentTable. Now if the document is not found, the thread goes to sleep - instead of checking again. (In hope of a more bugfree code)
Replaced access to NodeRecord.<variable> with NodeRecord.<getVariable>
1. Changed teh access modifier from public to private for variables2. Added a new variable for nodedatanumerical3. added a new constructor
Moved printMessage statements to inside the if loop so that they are not printed each time getInstance is called