Merged in the D1_0_6_2_BRANCH changes that include the transition from ObjectFormat calls to ObjectFormatCache calls.
handle timed replication of system metadata. there are still a few outstanding issues: -track server location of system metadata-only entries-replication policy flag for system metadata-only entries?-locking for replicated entries?-forced replication of entries
transfer full System Metadata (as XML) during document and data replication
-remove system metadata guid -> local id mapping (there is no document for system metadata now)-include system metadata elements when replicating data objects (TODO: transfer all system metadata structures with the docinfo request).TODO: remove docid+rev from the systemMetadata table definition
do not use XML files for storing SystemMetadata - use DB tables only.
use update method to update the mapping between local and guid (d1) when we get a force replication request that is an "update
use "object_format" element consistently so that it is replicated across instanceshttps://redmine.dataone.org/issues/1514
insert/update documents with null user and null group to circumvent access control restrictions then update the user_owner and user_updated values to reflect what exists on the originating server (pisco)
use 'user_updated' field when writing the replicated document - allows most recent ownership/permissions to be used (in case LDAP groups have shifted) and is more accurate for both updates and initial inserts (hopefully addresses the replication issue we are having with pisco)
DocumentImpl.delete() now throws finer grained exceptions (not a general exception). Consequently, the classes that call it have been updated to handle the thrown exceptions, including CrudService, ReplicationHandler, and ReplicationService.
adding more debuggin and fixing bug with systemmetadata
fixed replication bug where systemmetadata was not getting procssed correctly
fixed typo that prevented replication
fixed bugs in listObjects
added code to do database query for listObjects
add support for EML 2.1.1
reformatting logs for robert
added replicate log statements with the guid and localId
fixing problems with replication and systemmetadata
fixed major bug in replication where the document info was being truncated due to a poorly implemented sax parser
added a DataOneLogger for event notifications on the CN. The logger is called DataOneLogger and can be managed in the log4j.properties file
replication of guids now works. tested this for both forced replication and update/insert/delete triggered replication
Modifications to support the DataONE service API version 0.1.0. For DataONE, the get() andcreate() services are partially complete. Several more functions and checks need to be added tocreate() before it is viable. This DataONE support is not complete, and the current support breaks the MetacatRestClientTest for the time being (this client will eventually be removed).
Pass the doc xml as a string to docImpl.write and writeRepication. This is so a reader can be create for the parsing and for the write to disk. Also created a db access class for xml query result deletion.
Log doc and rev query counts and times. Fix mis-spellings.
change AccessControlForSingleFile to only be instantiated for one file. move ACL methods to AccessControlForSingleFile. Change format of access sections returned to EML 2.1.0.
Move access control source to it's own directory.
Change location of PropertyService to properties directory
Create replication directory. Move replication code there. Use log4j for replication logging (rollingfileappender). Beef up replication logging and error control.
Roll back replication user changes. Fix code that converts access levels to integer and to text.
Introduce replication user. Use the fileutil writer methods instead of writing directly.
Renamed MetaCatUtil to MetacatUtil
check for existing access control rows before inserting (we do not need duplicate rows specifying the same access control)
replicate xml_access entries across servers.see: http://bugzilla.ecoinformatics.org/show_bug.cgi?id=3464note: still needs to be tested...but needed to be checked in for other metacat installations to be updated....
Move the DBAdaptor accessor into a DatabaseService class
qualify xml and eml properties with an xml. prefix
Continue to qualify property names
Use qualified properties
Merge 1.9 changes into Head
Check into cvs head. In handle replication list method, parser will be intialized every time when it handles a list from another server.
Add event log for timed replication.
Somehow the change went to the head rather than branch. So i rollback the change in head.
This commit is for branch. In this commit the correct ip and user name will be stored in access_log table in replication event. However, it only for Forcereplication. And the test isn't completed yet. This commit is only for future use.
Removed the release ant token from all files in 'src'.
release
Fixed a bug in log
Fixed log bug when xml_revision updated failed.
Add more debug info.
Add code to handle replication document in xml_document table.
Replacing MetaCatUtil.debugMessage or MetaCatUtil.logMetacat call with logMetacat (private Logger object) call
Remove some debug message.
Change the code to make sure DocumentImpl class's constructor should have rev attached.
Add date info.
Add code to handle deleted document replication.
Add code to trim server name white space.
Remove output stream from the constructor.
Add some method to setting replication start time.
Add new feature that delete can be broadcasted by force replication.
Add a code to load eml201 parser to fix the bug that couldn't generate access rule for eml201 doc.
Made initial changes for accepting EML version 2.1.0 in Metacat
Change eml2 to eml200
Revise inital value for insert a new server. Change some debug level.
Change the date format from yy-mm-dd to mm/dd/yy.
Get rid of to_date function.
Fixed a bug to checking error.
Add code to get rid of white space in url.
Add a method to write error message into log file.
Add code to handle eml2 replciation.
Add code to handle text node was splited.
Merge cvs branch replication to cvs head.
Merge DBConnection branch to head.
Add the code to handle error in the respone for a update request.
Change code to handle the error message.
In update method, add code to handle if a user couldn't pass a trusting test.
Add a control to accept data or not
Revised update method.
Revise Update method.
Fixed some db connection problem
Fixed a bug in method getHomeServer
Add two methods getHomeServer and getServerLocation. Given a docid, getHomeServer can get the information of its home host. Given a docid, getServerLocation can return server code for it.
In update method, adding some code to handle replicate data file. Fixed the bug in deleting documents.
Add two controls for handle replication server list is empty and updated document list is empty
Fixed the bug that handle force replication
Fixed the getall didn't work. Now local host can insert or update documents from remote host.But still there some problem on force replcation.
changes in replication to use https
fixed the compilation bug about the change of group parameter in DocumentImpl.write()
- 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
fixed some problems with database connections getting a time out error. Also updated some catch statements
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
added support for one way replication
cleaned up code
added additional actions to facilitate a web based interface to the replication servlet.
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
cleaned up code, added more complete documentation of replication algorithms and datastructures.
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.
fixed typo, removed extra print statements
added replication_on_insert handling. Changed replication from date_updated base replication to revision number replication.