Made initial changes for accepting EML version 2.1.0 in Metacat
Change eml2 to eml200
Change the code when Eml parser name changed.
Fixed a bug if a document already has index, but now metacat doesn't use index. If you try to delete this one, will cause error.
Excluded the update of the xml_index table in insert,update, and delete if the usexmlindex option is set to false.
Fixed the bug for sessionid storing, revision couldn't be zero and Ldap DN is case sensitive.
Fixed bug that version could not be zero in replication.
in toxml method, add new code to handle dtd.
If xml document uploading failed, the inline data file will be deleted either.
Change a array size from 4*10(testing) to 4*1024.
Using reader to replace string to read inline data.
Change the year from YY to YYYY
Revise inital value for insert a new server. Change some debug level.
Fixed a bug in registryDataFile.
Get rid of to_date function.
Add some debug message.
Add delete access subtree in delete method.
Move the code that writes triple to db to DBSAXHandler class.
Change a method from private to public and it can be shared by other class.
Add relation handler and access handler here.
Change eml2namespace variable from private to public.
Get eml2 name space from peroperty file.
Move a methods
Add code handle if put inline data into xml document or not.
Fixed a bug in reading data file.
Fixed a bug that when reading a inline file, there is null at the end.
Add code to put back inline data from file system.
Fixed bug the no matter the xml is base on schema or dtd, the output will add a line for doctype. This will cause eml document invalidate.
Add code to handle read part of tree. Now the subtree access control for reading works.
Fixed a bug that access control couldn't write into db.
Add the code to handle subtree control for reading(but finished yet).
Does not setting namepaces-prefix feature true for sax parser. If set it true, namespace will be treat as both namespace and attribute.
Change the code to handle permission checking.
Set up an eml parser.
Add code to call SchemaLocationResolver.
Set mutiple external schema locations for parser.
Make the paser knew namespace and schema validation.
Merge cvs branch replication to cvs head.
Merge DBConnection branch to head.
Add a access control for MetaCatServlet to update a document which home server is not local metacat.
In writeDocumentToDB method, during insert action, rev value can be assigned too. It is useful for replication.
Revised the method writeDataFile, writeReplication and writeToDB
Fixed some DB connection bug.
Add the feature to get doc home server into method getDocumentInfo.Add a method to return docHomeServer.
Add three methods into this class. One is named getServerCode, to given a server name, it return server code in xml_replication table.One named insertServerIntoReplicationTable, if a server is not in the server list, it will insert it.One is named WriteReplication, this method will be used in forceReplication. It delete the replication code in it.
Add a hub control in write and writeData method. If hub==super, metacat can replicate any document in its database to any server in server list. If it is not super, metacat only replicate local documents to any server in server list. If a document' home host is not itself, metacat only force replicate the document to the document's home host.
In writeDataFile method, using getDataFileLockGrant(docid) replace getDataFileLockGrant(docid, serverCode). The latter will cause a problem
Add a method named writeDataFile. This method will register data file into xml_documents table and save a input stream to a file.
Add method getDataFileLockGrant(). This method will check if xml-document of data file can be store into database.
Add a new method named unRegisterDocument. This method will delete the record in xml_document table which is for a data file
Fixed the bug metacat will set server location to 1, no matter it is.
In order to increase data file docid, method registerDocument was revised. Now it not only insert a new data file record to xml_documents table, but also can update the data file documents. Moreover, it can archieve the old version to xml_revisions table. Two other private methods were added to handl these futures: deleteXMLDocuments and getLatestRevisionNumber.
Add a throwing exception in hasPermission and hasReadPermission methods.
A constructor for this class was added. In the new constructor, user can specify the revision number he want to update. In method writeDocumentToDB, when a update action happend, the rev number would not automatictlly to add one, but it can go to specified number. This is for bug 417.
A method named hasReadPermission was added. The method will check if a user has permission toread a xml document.
made a ton of changes related to keeping oracle SQL code out of the main classes. fixed a bug where the timing of the index thread was off so when it went to index a document, the document was not already in xml_documents thus breaking the FK relation between xml_documents and xml_index. I think that bug might be the reason for the blank resultset screens in morpho. made the postgres implementation much more robust.
changes in replication to use https
fixed error:writing on the replication server required the whole acc# (including the rev#)
changes to store namespace prefixes separately from the local names of nodes (elements and attributes)in xml_nodes.nodeprefix column
added support for Namespaces.Metacat now can store and retrieve XML documents with Namespaces.Namespace is stored as separate record in xml_nodes table with type "NAMESPACE" where nodename is the prefix and nodedata is the uri of the namespace.
fixed error with out of cursors error because pstmts were not getting closed in DBQuery
added support for multiple group membership
Changed the constructors so that the nodeRecordList is automaticallyretrieved by the DocumentImpl(Connection,String) constructor. thisrestores its earlier behavior, but the implementation is totallydone by DocumentImpl(Connection,String,boolean).
Added fix to DocumentImpl that showed problems when the DocumentImpl(conn)constructor was called. Now there is a new constructor: DocumentImpl(Connection, String, boolean)where the boolean value is used to determine if the nodeset should beread a t the time the cosntructor is called. if false, then...
Modified Metacat to support large data file uploads. This is accomplishedby supporting a new content type for data sent to metacat: multipart/form-datawhich allows multiple files to be sent in a standard MIME format. TheMetacatServlet.handleGetOrPost() method now checks the incoming content...
added constructor in DocumentImpl for use in DBQuery.findDocuments();this new constructor is used with getDocumentInfo() to get the doc info only;because the other constructor builds the whole xml doc which is not needed here and time consuming;this happens on backtracking only.
moved delete from xml_relation before delete from xml_documentsbecause of the parent-child relation b/w these 2 tables
changes according to bug# 234 - metacat accession # handling, done
changed all mentions of DBAdapter to the new name AbstractDatabase
excluded revisionid from the insert statement for xml_revisions.It is identity column for SQL Server or filled by sequence for db as Oracle or Postgres
changed ... WHERE ... LIKE ? ...to ... WHERE ... = ? ...
change the call from getDateFunction() to getDateTimeFunction()
change the call from getDateString() to getDateFunction()
- changed to use the DBAdapter uniform interface for all apperance of "sysdate" and uniqueid generation from sequenceMetaCatUtil:- reads from metacat.properties the dbadapter class implemented the interfaceand creates an instance of that class (in static public variable named dbAdapter) for use....
fix in the return of the last revisionid on UPDATE instead of the previous one
- changes to expect revisionid to come from the client on INSERT/UPDATE/DELETE;now the client should send accession# as:sitecode.uniqueid.revisionidINSERT checks if sitecode.uniqueid part does not exist in xml_documents and xml_revisions and revisionid=1...
- fixed missing replication of public_access- new attribute catalog_id added in xml_documents and xml_revisionsas a FK to xml_catalog; catalog_id is replicated also
Included check up for <!DOCTYPE ... PUBLIC/SYSTEM ... >in order to set the validation parser at runtimeIn case of:- no DOCTYPE declaration- <!DOCTYPE docname>validation is turned "off" In case of:- <!DOCTYPE ... PUBLIC ...>- <!DOCTYPE ... SYSTEM ...>...
there were more mentions of DOCTITLE attr - cleared them
cleared DOCTITLE attribute in xml_documents and xml_revisionscleared all mentions of doctitle
added new "getaccesscontrol" action for a given docid
fixed white space problem in toXML that was preventing in line end tags from being popped from the stack.
included new servlet parameter "public" specifing public read access for the submitted documentthe expected values are "yes" or "no" public parameter is optional and if it is not specified, means "no"
added precise location information (class.method) to each catch statement so that errors are more easily traced.
Added license terms to source code files, and cleaned up some javadocdocumentation in a few places.
closed all preparedStatement variables
- turned on the validation in order only valid xml docs comformed to the specified dtd (if any) to be submitted in metacat- with validation "on" white spaces are reported from ignorableWhitespace() callback, not from characters() (as with validation "off")...
- appling acl through access files only- clearing around update/delete of access files - to delete the related records from both xml_access and xml_relation tables- included check for user permissions for setting acl on the resources in the access file- moved RelationHandler.deleteRelations(docid) down in RelationHandler obj just before the write of the new relations
included support for submition of access files+ storing the acl info in xml_access table and relationship records in xml_relation table like<aclfile, "isaclfilefor", recourceIdentifier> for every resource included in the access file
updating a package file now updates the relations that are created from it. Also, if you delete a package file, it will delete the relations associated with it.
added revision support to the delete function
cleaned up code
changed accession number schema to <sitecode>.<serialnumber>.<revisionnumber>. DocumentIdentifier.java parses docids into parts for easy manipulation. You can now specifiy a specific revision by asking for document <sitecode>.<serialnumber>.<revisionnumber> or you can get the newest revision by asking for <sitecode>.<serialnumber> or by asking for <sitecode>.<serialnumber>.newest.
one more write() method was needed
DBEntityResolver: - added new parameter dtd for upload on Metacat file system; optional; Reader - new routines to upload dtd if provided - systemID of metadata document is used to exctract the filename of new dtd; - the new dtd is uploaded on Metacat file system as specified by dtdPath property;...
added replication for the xml_catalog table. Right now it is only replicated when the deltaT handler is called. I will add more replication times later.
added a logging system for replication. The log file location is set in metacat.properties
made replication on insert or update us. Also made a method in AccessionNumber public so that you can tell if an accession number has already been used.e place be
updated file locking mechanisms to use revisions instead of dates.
added replication_on_insert handling. Changed replication from date_updated base replication to revision number replication.