Use a singleton class to get the messaging client.
Removed the code to initialize the index task client at the constructor.
Add the client code to submit the index task to the message broker. Now I only added the code for the create method.
Change isAuthorized() to prioritize user authz
Re-order the calls to userHasPermission(), isAdminAuthorized(), and isAuthoritativeMNodeAdmin() such that the user authorization comes first. This should drastically reduce the calls to CN.listNodes() and the resulting NodeList unmarsalling involved in comparing CN and MN Node Subjects to token or certificate Subjects. ...
Convert System.out.println() calls
We've had these calls printing to the log on every REST call. Change them to a logger debug() level so we can filter them out.
Use the EncodingUtilities method to decode a string.
Add the code to handle query and view service.
Add the code to read the MNPackage configuration.
In the delete method, if we got not MdcDocNotFound exception, we will continue to delete the system metadata.
Add the code to add the ldap group information for the given user.
Add a new method to get all groups for a given user.
Make a debug statement clearer.
Modified the query to find the previous version of the ore document in the publish method.
Fixed a bug that the eml object wasn't changed checksum but its content was modified in the publish method.
Add the code to remove the pid from the identifier table if the update method failed.
Add the checksum as the parameter to the method write.
Add the code to computer the checksum.
Add the checksum parameter to the write method.
Move the checking if the checksum exists into the create method.
Add the checksum parameter to the method DocumentImple.write.
Add the checksum as a parameter to the method handleInsertOrUpdate.
Add the checksum parameter to the handleInsertorUpdate method.
Add the checksum parameter to the handleInsertAndUpdate method.
Change the signature of the method handleInsertAndUpdate.
Add code to check the check sum by the DigestOutputStream.
Removed the duplicated code to check the checksum in the replicate method since the method D1Node.create, which is called by the replicate method, has the mechanism.
Add some debug information.
Change MetacatHandler.generateOutputName() to use the SystemMetadata.fileName value when it is available. Needs testing.
Add the code to filter out the pids with white spaces in the query.
Make sure it is same as branch 2.8 except the mdq stuff
Still use syncFailed.getPid to get identifier in the syncFailed method.
Fixed typos in the vairable name.
In the synchronizationFailed method, use syncExcpetion.getIdentifier method to try before the obsoleted method getPid.
Move a statement e.printStactTrace to the logMetacat.error method.
In the expandRightHolder method, we don't use the parameter count=-1 to query the cn. Now we use count=200 and will use the page query to query again if it is necessary.
Add the debug statement.
Add more debug statement on cn.create method.
extract EML creator[s] and use those names or organizations when registering DOI with EZID. https://github.nceas.ucsb.edu/KNB/arctic-data/issues/143
In the archive method, add a new mechanism to check if the local id is in the xml_revision table if it is not in the xml_documents table.
Add a new method to determine if a docid and rev is in the xml_revision table.
Give the users having change-permission to archive an object which is from a v1 node.
Check the change of the access rules on data objects only when we need to write access rules base on the access part of the eml document.
Ensure XML run response from quality engine. Use mock http request to ensure correct save behavior of the resulting run. https://projects.ecoinformatics.org/ecoinfo/issues/7171 and https://github.com/NCEAS/mdqengine/issues/73
Trigger MDQ when inserting or updating metadata documents. https://projects.ecoinformatics.org/ecoinfo/issues/7171 and https://github.com/NCEAS/mdqengine/issues/73
Fixed a typo.
The indexall action will be run on another thread.
Change the param from the class field to a local variable.
Change the condition that remove identifier from the identifier table in the method removeSystemMetaAndIdentifier.
Add the pid in a debug statement.
Add the code to check if the object does exist in the create method. If it doesn't, the system metadata and identifier will be removed.
Change the calling code when the method insertOrUpdateDocument signature is changed.
Add methods to determine if the object does exist with the given local id.
Add some performace debug information.
Add methods to check if there are circular obsoletes/obsoletedBy chains in the mn.updateSystemmetadata method.
Don't share the same executor in the two classes.
Call the cn.synchronize method asynchronously in the mn.updateSystemmetadata method.
Add the version information on a log statement.
Add the version information in a log statement.
Add the class to upgrade the solr schema.
Add a smart test when we set the file name for the header of "content-deposition":When the id doesn't end with the file extention, we set the file to be id+extension.
To set the content-deposition header, the cn will look the file name in the system metadata first.
Fix issue in getDefaultReplicationPolicy.
Previously, under some circumstances, a ReplicationPolicy was created but was missing the optional replicationAllowed and numReplicas attributes. These are critical to the policy, so ensure they are set to sensible defaults even when property parsing errors and other issues might skip them. Added a test of this method, but I note that other methods in SystemMetadataFactory do not have unit tests and should be added if they are modified.
Use the "MNRead" to replace "MNStorage" to determine the version of the MN.
Change an exception to more appropriate exception.
Add more checks to avoid a null exception.
Add more debug statement for deleting.
Add some information about pid on the log statement.
Add a comment.
Removing xml_access table records now is in the removing the pid from hazelcast. So remove the dupicated code.
Check if the object and sysmeta are null before to get the inputstream object.
Clear the code for the method handleInsertOrUpdate.
The deleteSystemmetadata method will delete the records on xml_access as well.
Add the identifier information in the exception when users try to change the access section but they don't have all permission.
Add the guid information in the sax exception when users try to update the access part but they don't have all permission.
Expand the rights holder if it is a group.
Add the code to expand the rights holder if it is a group.
Add more log information.
Add a note to notify users that the reindex action is asynchronized.
Made the class implements the interface LexicalHandler.
Add code to check if a dtd is registered when the parser processes the dtd part.
Fixed a bug that the public id can't be assigned.
Change the debug level from debug to trace.
Change some debug statments from debug to trace.
Down the debug level from debug to trace.
Removed a unused parameter - formatId from method writeReplication.
Add the feature to support the noNamespaceSchemalLocation and refactory the code.
Add the code to throw an exception to tell users that the namespace or format id was not registered in Metacat.
Add the methods to figure out the schema location base on namespace, format id or no-namespace-schema-location uri.
Add a new constant for no-namespace schemas.
Add a method to get the type.
Add a method to get the type of the schema.
Add a new class represent a schema without a namespace.
Add a SAX parser to determine the namespace of a xml object. It only parses the root element, then stops.
Disable the feature of downloading external schemas.
Change the log information a little bit.
use the new rules to validate an xml object base on dtds.
Every time when we modified the metacat.properties file through the PropertyService, the Setting class will be updated as well. Otherwise, the values on the Setting class are still the old one.