fixed bug that caused a nullPointerException when a null resultset was returned.
Changed to prevent the insertion if the provided Accession# is in use as Dan suggested.
removed system.out.printlns
added support for urls of the form "metacat://server.xyz.com?docid=XXX:yy"
Separate thread used for writing into xml_index table.This cut the time of the response on insert almost in half.The tread is started afterwards(on end of document parsing and inserting into xml_nodes) fromDBSAXHandler and uses new(separate) db connection....
This class syncronously indexes any package file that is loaded into the database.r
Added backtrack functionality. Backtracking works by passing a returndoc parameter. There can be more than one. If a document that is hit by a query is not of type returndoc then it searches the database for a related file of type returndoc. If one is found it is displayed, if no relation is found, the original is displayed....
included new method getPoolSize()
added extra timing information to the main() driver method.
fix the small bug with output like:Fatal processing error<success> <docid>null</docid></success>on hadleInsertOrUpdateAction()
writeDocID() not needed any morethrow SAXException from everywhere
on character(cbuf, start, len) included:if currentNode.getTagName().equals("title") currentDocument.setTitle(cbuf)instead of using:currentDocument.setTitleFromChildElement() in endDocument() call
change Assession# generation to use the same db connection
Updated the download data function. the download data function now pulls a document from the database, zips it up and sends the zip stream to the client. It also zips up any related files. a relation parameter is used to pass related files to the servlet. If only one document should be zipped and sent, a single docid in the param hashtable is sufficient.
changes related to decrease the time of INSERT of document.With these changes I inserted 200KB file for 3 minutes, 50KB for 50sec.This is mainly simplifing the DBSAXNode class andusing batching feature of Oracle JDBC driver.
This allows for the easy handling of metacat:// urls. The documentation in the source code explains the specification for the url in detail.
Added functionality for package specifications. metacatservlet now contains a new action called getrelateddocument that handles retrieving related documents using the metacatURL specification (metacatURL.java). DBQuery contains new code in runQuery that embeds relation tags in the returned hashtable describing the documents related to each docid. querySpecification contains a new method which prints the sql that does the relation query.
store generated Access# in meta_file_id tag if there are any
fix bug in toXML() about getting output of XML document like:<paragraph
added parentnodeid to xml_index
fix for "Document not found" err message on "getdocument" action
fix for "public" authentication
removed print statments
fixed xml tag error in squer
fixed bug in handleSQuery that returned the tag in the <query> tag of a resultset.BugID:Submitted by:Reviewed by:
added check from "read" permission on "query" and "squery" actionsfor connected user or for "public" connection
added support for getabstract action
Added a method called getNodeContent which retrieves the content of a node in a document. If there are more than one nodes with the same name returned, it returns an array with all of the data.
no message
Modified MetaCatServlet to use the new DocumentImpl.toXml() method forefficiency of reading documents. See bugzilla bug #111 for an explanation.
Fixed document reading bug (bugzilla bug #111) so that reading documentsis no longer a power function of the number of nodes in the document(which used to be the case). Now, reading a document occurs entirelywithin DocumentImpl, by making a single SQL call to get the document data,...
change the 2 executions in archiveDocRevision()with 1 statement:"insert into xml_revisionsselect ... from xml_documents where docid = ..."
small changes on hasWritePermission()
storing user_owner and user_updated where needednew function in DocumentImpl checking for "write" perm on UPDATE or DELETEadded delete from xml_index of the old version of docid on UPDATE
this file is no longer used.
changed xslf for new returnfield scheme. the returnfields are now returned as <param name="<returnfield>"> tags.hThe sql for the returnfield query was redone to fix a previous problem with slow queries
cleared static methods in AccessionNumber classes for fixing bug foundwhen multiple requests to the servlet at a time.
Minor update to remove unneeded constructor in DocumentImpl class.
for getDoctypes() addedWHERE entry_type='DTD' condition in the select statement
Changes with Srb authentication: including quering of Srb/MCAT during the Srb connection for:- groupname of connected user- list of groups and users in MCAT for ACL function for MetaCat
Continued code redesign for the DocumentImpl class. Now the "delete" and"write" methods are static, so a DocumentImpl objject need not be createdin order to initiate a INSERT, UPDATE, or DELETE action (it is createdimplicitly by the DBSAXHandler). When doing a "READ" action, one still...
Folded the functionality from DBWriter into DocumentImpl, continuing thework started earlir to create a more DOM-like model for the classes, inwhich a single DocumentImpl class handles both reading and writing ofdocuments to the database. Modified shell scripts and MetaCatServlet to...
changed the field names to be case-sensitive in the returnfields
added support for the returnfield parameter-QuerySpecification now sets a flag (containsExtendedSQL) when there are returnfield items in the pathquery document.the accessor method containsExtendedSQL() can be called by other classes to check for extended return parameters...
added support for the returnfield parameter-added the dynamic parameters to the returned hash table of documents
added support for the returnfield parameter
Folded the functionality from DBSAXDocument into the DocumentImpl class.Now DocumentImpl handles both the reads and the writes to the database.Eventually, it will implment the full DOM Document interface. Eliminatedthe DBSAXDocument.java file as it is no longer relevant....
Removed DBReader.java because the functionality of that class has beenreplaced by the more efficient DocumentImpl class.
Created new class "DocumentImpl" which represents an XML Document. Thisdocument will eventually implment the DOM Document interface. For now,it implments all of the functionality that was present in DBReader, pluscuts down on the number of database calls required to read a document. And...
Updated documentation for NodeComparator.java.
Modified the DBReader and ElementNode classes to more efficiently readdocuments from the database. In the old implementation, a db connectionwas opened for each and every node in a document, recursively fromthe rootnode. In the new implementation, all of the data from xml_nodes is...
marineServlet now overrides the transformQuery() function to allow it to put the values back into the text boxes of the xsl stylesheet rendered form.
-fixed the bug where a pathquery document was not valid inside of the <query> tags in a resultset document.-provided override support for a new function called transformQuery() which allows specific applications to customize what is returned in the <query> tag
Fixed small bug in transforming the document to HTML. If there wasno stylesheet for a given doctype, and so the transformation couldn'toccur, the XML doc was returned, but the content-type was still set(incorrectly) to html. Now it is not set to text/html when an xml doc is...
removed extraneous protected tags and replaced them with private tags
Modified behavior of handleSQuery() to now send the resultset documentback to the client application -- this was a bug introduced by recentchanges to the servlet. Also, generally cleaned up the servlet toproduce cleaner documentation and removed some extraneous code and remarks....
changed to work with the new MetaCatServlet model. marineServlet now only overwrites one method in MetaCatServlet.
changed the prototype of overwritable functions to "protected" instead of "private".
change the resultset format for DataGuide
Changed the flow of query and SQuery. SQuery now only handles a preformatted pathquery document as input (in the "query" parameter).HandleQuery now handles all structured queries derived by CGI parameters.
Made changes to createSQuery to allow for multiple parameters of the same name. Also changed the param list to include only "Hashtable params" without a "String doctype" since the doctype is already contained in the params.
fixed bug with handleSQuery() that kept DMan from access the squery functionality
- created transformResultset() which transforms an xml resultset document and displays it to the client useing DBTransform- renamed transformDocument() to createResultDocument() and modified its functionality to only return a restultset xml document- changed handleSQuery() and handleQuery() to use the new methods
remove handleQueryAction() in favor of directly calling handleQuery() and handleSQuery() from doGetOrPost()
Cleared hardcoded paths for the location of .html files and usethe new "htmlpath" property from metacat.properties file
Added decodeMouseAction(Hashtable) to decode the mouse click action outside of handleGetOrPost to allow for easy modification of images in a different application.
added new constructor to allow the creation of a metacatutil object that uses a properties file other than edu.ucsb.nceas.metacat.metacat.
Broke up handleQueryAction into handleQuery, handleSQuery, runQuery and transformDocument. handleQueryAction is now a base function which makes calls to each of these functions to create, run and transform a query from CGI parameters.
Added createSQuery() to handle structured queries of an arbitrary number of parameters. Also modified createQuery() to handle a null query in a graceful manner.
Added "release" keyword to all metacat source files so that the releasenumber will be evident in software distributions.
Updated build process to now use a copy of the source files so that keywordsubstitution can ocur before the build. This allows for substitution ofhardcoded values into the source before the compile. Currently, I amusing this feature to do the following:...
added Logout handling
clear lib dir from paths like xmltodb/lib/something.html
on "DELETE" added delete from xml_index table for a given docidbefore delete from xml_documents, b' of foreign key in xml_index(docid)to xml_documents(docid)
Changed exception handling mechanisms for DBReader
added createSQuery
broke up handleQueryAction into handleQuery, handleSQuery, runQuery and transformDocument
changed getRootNode method from public to private
replaced some deprecated methods with the new v2.2 of Java Servlet API
changed paths, b' of new dev server
added HTTPSession.setMaxInactiveInterval(-1)for every new Session - never to expire
added "anonymous" user connection
-Reorganized xmltodb module to support new install process for the newlinux server (dev.nceas.ucsb.edu). Added "build.sh" shell script thatcalls ant withthe proper umask set for installation. Use:
./build.sh install
to post a new copy of the servlet and its supporting files to the install...
rearrange html pages for login and metacat access
more precise handling of the Connection Pool
Changes related to "getdataguide" action
doctype attr in xml_index table has been addedso changed the getDataGuide routine to select for paths by given doctype
DBSAXNode constructor simplified
Call to DBSAXNode constructor simplified
Added public method to return the rootnodeid of the document
Added support for "anonymous" user
added Pool of ConnectionsDBQuery, DBReader, DBTransform, DBUtil are created on every request and use the connections from the Poolsame with DBWriter and DBValidate
Added "getdoctypes" and "getdataguide" action handlers
utility class for reading various of data from db