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.
Added the double quotes on the file name of the http header "content-deposition". This can handle the special characters on the file name.https://projects.ecoinformatics.org/ecoinfo/issues/7084
handle redirecting Metacat "shortcut" URLs when docid is given with and without revision. https://projects.ecoinformatics.org/ecoinfo/issues/7063
Replaced the JiBXException by MarshallingException.
Add the code to upgrade the solr schema.
Add the check objectFormat is not null before we try to get the mediaType object from the object in the getObject method.
Don't need to add "." for file name between the identifier and file extention in the getObject method.The v1 getExtension method includes '.'. But the v2 version doesn't include it.
Use the method getContextURL rather than getSecureContextURL in the getCapacities method.So if the server doesn't support sll, the getCapacities will return a baseURL with http.
correct two minor differences from 2.6 merge: formatId parameter for MetacatHandler and using AuthUtils for gathering group membership information.
Merge in changes from the 2.6.0 release.
Merge changes from the 2.6.0 release.
merge from 2.6 branch: add support for EML 2.1.1 to DC crosswalking for OAI provider. https://projects.ecoinformatics.org/ecoinfo/issues/7030
If the client certificate is null, Metacat will throw an exception.
merge from 2.6 branch: use AuthUtils to gather user group subjects
merge to trunk from 2.6 branch: action=validatesession can handle Authorization token
merge to trunk: debugging statements that were added in 2.6 branch
Merge changes from the 2.6.0 branch in MNodeService.allowUpdating() so it honors the localhost MN certificate.
refs https://projects.ecoinformatics.org/ecoinfo/issues/7018
merge from 2.6 branch: use AuthUtils to get group and equivalent identities rather than manually try to extract groups from subject info (can include incorrect groups for given primary subject). https://github.nceas.ucsb.edu/KNB/arctic-data/issues/163
merge from 2.6 branch: use group subject (not name) when translating Session.subjectInfo into group list for Metacat's DocumentImpl. https://github.nceas.ucsb.edu/KNB/arctic-data/issues/163
Add more information on the error message if the client's certificate is not trusted.
Merge the changes from the 2.6 branch into the trunk, fixing filename construction.
refs https://github.nceas.ucsb.edu/KNB/arctic-data/issues/151
merge from 2.6 branch: add support for EML 2.1.1 in OAI-PMH provider. https://projects.ecoinformatics.org/ecoinfo/issues/7009
Fixed a bug to use an identifier object to get a value in a vector.
Check the chain end if obsoleted by another object.See ticket https://redmine.dataone.org/issues/7624
Use sql command to get some information rather than hazelcast.
Use a hashmap to replace a sql query to improve performance in the getHeadPID method.
In the getHeadPID method, we got the field obsoletedBy from the systemmetadata table rather than the hazelcast service.
Reformat the create and update method.
Close the input stream on the create/update method when the code aborts.
Close the the input stream from the method parameter in the create method.
Made the ssl http client not moinitor the stale connections.
Use the new AutoCloseInputStream wrapper for replication. It will close but http client and input stream when the inputStream.close method is called.
If a format id in the system metadata is registered in the xml_catalog table, we will use the schema location for the format id to validate the xml instance;otherwise, we will use our previous way.
Close the input stream object on the MN.replicate method.
use SM.fileName if we have it. https://projects.ecoinformatics.org/ecoinfo/issues/6970
ensure there is a file extension included for the data files in a package download. https://projects.ecoinformatics.org/ecoinfo/issues/6970
Add code to print the the stack trace on the getPackage method in order to help us to identity some tmp file issues.
Also handle authentication tokens when uploading data (action=upload) by using Ben's RequestUtil.getSessionData() changes.
refs https://github.nceas.ucsb.edu/KNB/arctic-data/issues/43
In the isScienceMetacata method, the ServiceFailure exception shouldn't be caught anymore, since the code doesn't throw it.
allow Metacat API calls to be made by clients providing their identity with a DataONE auth token. https://github.nceas.ucsb.edu/KNB/arctic-data/issues/43
Add the java code to handle the ezid configuration.
Put a detal code on the InvalidRequest exception in the getPackage method.
If the pid it is a package id in the getPackage method, the method will throw an InvalidRequest exception.
Make sure to close the prepared statement on the final statement.
Close the result and connection in the finally clause to make sure they being closed.
add warning when exception encountered loading SM into map.
Add the dataone create event mapping to the select clause.
map the metacat log event INSERT, upload and UPLOAD to the dataone log event "create"
set authoritative MN to origin MN if the client did not set it on mn.create. https://projects.ecoinformatics.org/ecoinfo/issues/6938
include metacat context in the redirect after successful harvester registration login. https://projects.ecoinformatics.org/ecoinfo/issues/6936
Use the "order by" to preserve the nodes order in the replication policy.
Use the ServiceFailure to replace the InvalidRequest when it is the read-only mode (CN throws the exception).
In the replicate method, the checking of the read-only mode was moved from MNodeService class to the MNResourceHandler class since it is asynchronized.
The systemmetadataChanged method is asynchronized, so we put the read-only checking on the ResourceHandler class.
Add the code to check if the mn is on the read-only mode.
Add the code to check if the metacat is in the read-only mode.
Add the code to handle the read-only mode.
Add a class to determine if the metacat is in the readonly mode.
Add the check that only the administrator can shrink the connection pool.
Close the sql statements on the four methods - getGUID, getHeadPID, systemMetadataSIDExist and systemMetadataPIDExist.
Close some prepared sql statement in the summarize method.
merge from branch: only check for d1 rightsholder when checking permissions in original metacat code base, otherwise legacy access control tests in metcat begin to fail. https://redmine.dataone.org/issues/7560