Use the application/bagit-097 to replace application/bagit.
Use the TypeFactory to replace the TypeMarshaller according to the change in the d1_common_java.
Use the key word "packages" to replace the "package".
Decode the string of the uri after we break the uri into parts base on the "/".
Use the D1NodeVersionChecker to determine the mn's version rather than using ping.
When the cn.notifyReplicaNodes method, if the target MN source code is a v2 mn, we will use v2 api; if it is a v1 node, we will use v1 api.
A new class is used to get the version of service for a given node.
Only support the application/bagit format in the getPackage method.
Use the status of mn.ping to guess the version of the source node in the replicate method.
In the replicate method, it will use the v1.getReplica method if the source node only supports v1 replication service.
The code was added to compare the serial version in the updateSystemMetadata method. If the serial version in the new system metadata is less than or equals previous version, an exception will be thrown.
Increase the version number after updating the existing object's system metadata in the update method.
Fixed a possible null exception in the updateSystemmetadata method.
In the MN.updateSystemMetadata method, when we set the obsoletedBy and obsoletes method, we will check if those values already exist in other chains.
Add the identifier in the message of the exception when a client tries to reset the obsoletes or obsoletedBy fields.
Check the obosoletedBy and Obsoletes only can be set once.
The method of setReplicationstatus can be called by CNs and MNs.
merge from V2 impl: check for optional "failure" param instead of throwing exception when it is missing (often is). https://redmine.dataone.org/issues/7283
For sample Apache config, disable SSLv2 and SSLv3 in favor of TLS. https://projects.ecoinformatics.org/ecoinfo/issues/6827
check for optional "failure" param instead of throwing exception when it is missing (often is). https://redmine.dataone.org/issues/7283
Fixed a possible null pointer exception bug. https://redmine.dataone.org/issues/7280
Only CNs can call those methods:CNCore.registerSystemMetadata()CNCore,updateSystemMetadata()CNReplication.setReplicationStatus()CNReplication.updateReplicationMetadata()CNReplication.deleteReplicationMetadata()
On mn.update and mn.updateSystemMetadata, those clients are allowed:1. CNs.2. Clients with appropriate permission calling the method on the authoritative nodes.
When compare the dateUploaded, now we use sysmetadata.getDateUploaded().getTime(). It used systemmetadata.getDateUploaded() (Date objects) to compare.
Add code to catch the BaseException in the updateSystemMetadata method.
Add the code to handle if the cn is null.
Handle multiple versions (v1 and v2) of a service in getCapacity method.
Use the NodeReference object to replace the replicaStatus to restrict the listObjects method.
[re]register DOI when system metadata is updated (typically access policy). https://projects.ecoinformatics.org/ecoinfo/issues/6796
Change the signature of listObject method - remove replicaStatus and add nodeId.
Add the code to call cn.synchroinize at the method of updateSystemMetadata.
Throw an exception if the request doesn't specify the name of the theme in the view method.
use objectFormat.extension in cases where we need to construct a filename for download. https://redmine.dataone.org/issues/3312
Add the code to insert entries in xml_catalog for the iso119139 objects.
Add the sql command to insert schemas for iso119139.
use v1 and v2 xsl as appropriate for rendering d1 types (object format list, mostly)
use MediaType from v2.SystemMetadata and v2.ObjectFormat to better determine mime-type, charset and filename for the get() method. https://redmine.dataone.org/issues/3309
correct logout method (old change still in workspace)
Fixed a bug that two columns were missing in the sql command.
Add the code to read/write the new system metadata fields - file name, media type and media type properties into the db tables.
Add code to update smmediatypeproperties table.
add logout implementation - calls server and clears cookie jar.
Add the code to create smMediaTypeProperties table.
Add the code to create a new table smMediaTypeProperties.
Change the name of the foreign key on the smMediaTypeProperties.
Add a new table smMediaTypeProperties to store the properties associated with a media type.
Throw an exception if the saving system metadata fails.
Add the code to roll back the saved system metadata if the object can't be saved.
Add the media_type and file_name columns.
Add two columns media_type and file_name.
Add the code to add dataone schema v2 in the xml_catalog table.
Add the code to add dataone schema v2 in the xml_catalog table.Fixed the bug the new column should be series_id rather than guid.
Don't use ssClient as a class field. Now it is a local variable. This fixed an issue that two statements using the client caused the exception - java.net.SocketTimeoutException: Read timed out.
refs: #7092. found another unclosed inputStream, this time in ReplicationService.handleForceReplicationDataFileRequest(...).
fixes #7092: added finally clause to ReplicationHandler.update method to unconditionally close the inputStreams it keeps in a Vector. Needs testing.
Use the wild card in the class path. So it will not be pain if the jar files were changed.
Add the code to check if the client is trying to update an archived object. If it is, reject it.
Add a new method -updateSystemMetadata. It only can be called by CNs.
Refactory the authorize methods on D1NodeService.Add the check for whom can call mn.updatesystemMetadata.
Committed the change which Andreit did. 1. Add the code for synchronize(not implemented)2. Add the code for addForm.
remove portal servlet and configuration - no need for this if we are supporting auth tokens from authentication service.
defer to D1 PortalCertificateManager to pull authentication credentials from the request before defering to old Metacat cookie session
Add the code to check the authorization of the client which is reindexing a pid.
Created the updateSystemMetadata method.
Add the code to check if the current node is the authoritative node for the the given pid.
Add the check of permission to update the system metadata.
add whoami endpoint to make debugging authn/authz easier as we use additional mechanisms for proving identity.
include 2.4.3 upgrade scripts in the trunk (merged from branch)
Remove the code to check sid on create and registerSystemMetadata.
Fixed a bug that put the detail code in a wrong position.
Add the code to check if a user tries to modify an immutable field on system metadata.
If an Event object is null in the v1 log entry, we won't add it to the log.
use singleton for getting JWT token - refactor in d1_portal project
use secure context url for loading XSLTs in db transform
ReplicationServices.getUrlStream(url) callers were not closing the inputstream properly, as was revealed when switching to libclient v2 (a pooling connection manager in HttpClient) and encountering reasource leaks.
remove classes annotator classes that have moved to a different project under dataone's github.
bullet-proofed exception handling in ReplicationService.getURLStream, to make sure client communication exceptions are handled and logged.
fixed getSSLClient method.
fixed class name typo.
fixed private getSSLClient method for HttpClient v4.3 compatibility. Now also caching the RestClient for reuse to save overhead.
Make the REST api work for views.
Add the code to support CNView interface in CNodeService. Both CNodeService and MNodeService share the same code base.
Transform the ObjectFormat from v2 to v1 in getFormat method.
do not require site parameter if registry.show.siteList=false.https://projects.ecoinformatics.org/ecoinfo/issues/6687
Make them executable.
Add a script file to restore knb db from a dumped file.
Add a script to dump the knb database.
Add a read timeout for the connection. See bug https://projects.ecoinformatics.org/ecoinfo/issues/6684:wq
Convert the v2 system metadata object to v1 in the getSystemMetadata method.
Use the log to the replace system.out.print.
The setObsoletedBy only handles PID.