got paging working. metacat also now caches resultsets for users' sessions. the paging is a bit slow, due to some xpath statements. i need to get this optimized now.
adding changes to make paged query results possible
Add exception handle code according the change in SpacialHarvest class.
As a fix to http://bugzilla.ecoinformatics.org/show_bug.cgi?id=2748, I'm applyingthe patch sent to me from Mike Frenock when he reported this bug.
This patch changes MetaCatServlet.handleUploadAction() by first settinga boolean flag on whether the file to be uploaded exists already. If it...
added a method to query metacat to see if a particular docid is registered or not
added getalldocids function to get all docids that match a certain scope.
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).
Renamed method.
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 the MetacatUtil.printMessage() method in favor of using the Log4J debugging methods.
Removed the release ant token from all files in 'src'.
release
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
fix to docid overrides to handle an empty result set
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.
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.
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...
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
Some style changes and small changes to the spatial querying system.
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.
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.
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.
code to handle null pointer exception
Added query for indexing attribute - needed for indexing packageId
Fixed a log bug.
Using xml_path_index instead of xml_index to find documents which havnt been indexed.
Replaced hardcoded namespaces with variable defined in metacat.properties
Changed logMetacat to be a local variable in MetaCatServlet to avoid any potential threading issues.
Metacat has had problems with threading issues when accessed from ecogrid. These problems may stem from the use of shared global variables within the servlet that are not protected against threading problems. We used a lot of these, which I am eliminating in this commit. Besides final variables used as constants (which are not a problem), now there are only three unprotected variables (sessionHash, logMetacat, and conn) which are harder to eliminate. I will be discussiong this with Sid tomorrow to see how to eliminate them.
Fixed bug that data file upload failed, record couldn't be deleted.
1. Added code to start the indexing thread.2. Fixed a bug in the query on xml_nodes and xml_index3. Added more debug statements4. Fixed a bug in code which determines namespace
Modification in algo:
1. Find if the root element has prefix (e.g. <eml:eml>). If found, go to step 2, otheriwse go to step 3.
2. Look for xmlns:prefix element to find the ns (e.g.:xmlns:eml="eml://ecoinformatics.org/eml-2.0.0") 2.a If not found go to step 4...
Bugfix for 2091. Removed the function needValidation(). Added function getPrefix which returns the prefix. And use the following steps to find out the namespace
1. Find if the root element has prefix (e.g. <eml:eml>). If found, go to step2, otheriwse go to step 3....
Bugfix to the code which sets parentnodeid in xml_path_index. (Use setInt instead of setFloat)
Added warning to be displayed in the log when document is not inserted.
Added a new action - getloggedinuserinfo - which returns information about the user in the following format.
<user><username>uid=sgarg,o=NCEAS,dc=ecoinformatics,dc=org</username><name>Saurabh Garg</name><isAdministrator/><isMOderator/></user>
Changes in log levels of some commands mentioned in the previos commit.
Replacing MetaCatUtil.debugMessage or MetaCatUtil.logMetacat call with logMetacat (private Logger object) call
Add code to guess the docid's revision in read action.
added code to define LOG_CONFIG_NAME
Change sessionHash to static variable and add a static get method.
Modified MetaCatUtil to read metacat access control lists from metacat.properties. Also coded various methods which can be used to find out if a user is an admin, moderator or on allowed/denied submitter list.
Modified MetaCatServlet to check if a user is allowed to insert/update before insert and update is done.
Formatting cleanup, fixed a missing 'private' declaration. Preparing for LSID integration work.
Added new methods to MetaCatUtil: isAdministrator and isModerator.
These methods are used to check if a given username is part of the admin and moderator list specified in metacat.properties
Modified DocumentImpl and MetaCatServlet to use these functions.
Added the patch provided by Johnoel. Check out the following link to bugzilla for more info: http://bugzilla.ecoinformatics.org/show_bug.cgi?id=2081
Adding a new method to MetaCatServlet for getting the value of paths to be indexed from metacat.properties file and indexing those paths in xml_path_index
Added code to check id document is passed as part of the params. This is done toprevent NullPointerException which results in sending null to the user.
Added in servlet action 'buildindex' for building the XML_index table entriesfor either a set of documents (if one or more docid params are provided) orfor the whole set of documents in the xml_documents table. The buildindexaction is restricted to only be accessible by users who are listed in the...
Add new feature that delete can be broadcasted by force replication.
changed function parameters in accordance with changes in PermissionController
removed errors being generated in handling of qformat when action=insert. If qformat is not specified, xml is assumed as default.
removed a bug which was pointed out by Bing and fixed by Jing.
Fixed a bug in upload function. For online data updates, access was not checked.
Fixed handling of various docid formats.
Code added to handle errors resulting from following urls: http://metacat.nceas.ucsb.edu/knb/metacat?action2 - no action specified http://metacat.nceas.ucsb.edu/knb/metacat?action=insert - no docid specified http://metacat.nceas.ucsb.edu/knb/metacat?action=login - no username specified...
Added check for null condition so that proper error text is returned to user.
Merging in changes made in branch 'dataaccess' by Jing Tao.
Removed some debugging code added in last commit
Added code to read EML2.0.1 into source code.
Made initial changes for accepting EML version 2.1.0 in Metacat
Change eml2 to eml200
Added the EventLog functionality to the servlet as action=getlog. Valid parameters are ipAddress, principal, docid, event, start, end. All parameters can be repeated except start and end.
Added additional logging calls for read, upload, insert, update, delete, andother commands. Now need to get a reporting function working and thisbug 101 will be largely finished.
Modified EventLog to eliminate the separate revision column and instead foldthat into the docid string. Log now includes read events, but need to updatethe data sent there.
Modified SQL scripts to add the new access_log table. I've partially tested this under postgres but have not yet tested under oracle.
Reformatted code for readability and consistency.
Revise the handle query and squery method, not finished yet.
Set content type properly for getversion action.
Added a simple action for finding out the current metacat version. The information is pulled from the property file, so be sure to update the version in the property file before shipping a release.
Moved decision about whether to use xml_index forquery to the metacat.properties as "usexmlindex". Defaultis now false. Still have some refactoring to do to remove afew more uses of the xml_index table.
Removed the "getdataguide" action as it was always experimental and is no longer used in metacat or morpho.
Fixed the bug for sessionid storing, revision couldn't be zero and Ldap DN is case sensitive.
Enabled stylesheet parameters to be passed through metacat even when the'query' function is called. Previously, query would interpret allparameters except a few hardcoded ones to be pathexpressions that should bebuilt into a squery. Now, metacat.properties contains a new configuration...
Moved the metacat.properties file from the jar file to now be located inthe tomcat context directory in WEB-INF. Now the metacat configuration iseditable in place. This change depends on a new Options.java class in theutilities module, so be sure you do a "clean" build in metacat so that you...
If the sessionid is null and user will be treated as public.
Fixed the bug that if path query without xml declaration will cause a non well-formed result doc.
Change string to stringreader to save memory.
got interservlet session handling working.
fixed errors with jing and my merges
changes to make session management between monarch and metacat work.
Revise the code for read from metcat.
Add code to hanlder wirte and update funtion.
Get the file size limit from property rather than hard code.
Revise code to decide use which parser.
Add contenttypeprovider when read a data file.