Story #7971
Change the behavior of the cn/mn.archive method
0%
Description
Currently, when we call the cn/mn.archive method, Matacat not only set the archive=true in the systemmetadata table, it also call the DocumentImpl.delete method which will move the entries from xml_documents, xml_nodes to xml_revsions xml_node_revsion tables.
I think we don't gain anything by calling DocumentImpl.delete method which is the old Metacat delete method but this call may cause some errors in some unexpected situations.
So I propose:
We only do one thing - set the archive=true in the system metadata table.
History
#1 Updated by Matthew Jones almost 8 years ago
I don't know Jing -- the original Metacat API delete() was the model for how we originally archived things in Metacat -- that's the whole point of the xml_revsions table, which by design should list all obsoleted and archived versions of documents. The only documents designed to be in xml_documents are the current head revision of documents that are not archived. This behavior is relied on in Morpho and and any other tools that display data using the original Metacat API, so if you do what you proposed, then many archived data sets will begin being returned in Morpho searches and file listings.
Is there something broken that necessitates this deep architectural change? I'd rather not do something so severe without a good reason and plenty of time to test across all of our software systems. So, I propose this change not be made.
#2 Updated by Jing Tao over 7 years ago
- Status changed from New to Rejected
#3 Updated by Jing Tao over 7 years ago
- Target version changed from CCI-2.3.2 to CCI-2.4.0