| Revision:

# Date Author Comment
10188 03/06/2017 04:22 PM ben leinfelder

extract EML creator[s] and use those names or organizations when registering DOI with EZID.

10186 03/01/2017 02:16 PM Jing Tao

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.

10180 02/28/2017 02:58 PM Jing Tao

Give the users having change-permission to archive an object which is from a v1 node.

10172 01/06/2017 04:36 PM ben leinfelder

Trigger MDQ when inserting or updating metadata documents. and

10147 12/21/2016 02:30 PM Jing Tao

Change the param from the class field to a local variable.

10140 12/16/2016 12:02 PM Jing Tao

Change the condition that remove identifier from the identifier table in the method removeSystemMetaAndIdentifier.

10138 12/16/2016 10:48 AM Jing Tao

Add the pid in a debug statement.

10130 12/15/2016 02:41 PM Jing Tao

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.

10129 12/15/2016 02:40 PM Jing Tao

Change the calling code when the method insertOrUpdateDocument signature is changed.

10118 12/13/2016 02:43 PM Jing Tao

Add some performace debug information.

10106 12/08/2016 02:15 PM Jing Tao

Add methods to check if there are circular obsoletes/obsoletedBy chains in the mn.updateSystemmetadata method.

10104 12/07/2016 04:06 PM Jing Tao

Don't share the same executor in the two classes.

10102 12/07/2016 01:34 PM Jing Tao

Call the cn.synchronize method asynchronously in the mn.updateSystemmetadata method.

10047 11/22/2016 02:55 PM Matt Jones

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.

10041 11/09/2016 05:26 PM Jing Tao

Use the "MNRead" to replace "MNStorage" to determine the version of the MN.

10030 10/26/2016 05:10 PM Jing Tao

Change an exception to more appropriate exception.

10027 10/24/2016 01:36 PM Jing Tao

Add more debug statement for deleting.

10021 10/19/2016 03:29 PM Jing Tao

Add some information about pid on the log statement.

10006 10/05/2016 04:53 PM Jing Tao

Clear the code for the method handleInsertOrUpdate.

9997 09/28/2016 05:42 PM Jing Tao

Add the code to expand the rights holder if it is a group.

9833 07/06/2016 04:52 PM Jing Tao

Replaced the JiBXException by MarshallingException.

9809 05/25/2016 12:18 PM Jing Tao

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.

9783 05/18/2016 01:56 PM ben leinfelder

correct two minor differences from 2.6 merge: formatId parameter for MetacatHandler and using AuthUtils for gathering group membership information.

9781 05/18/2016 09:23 AM Chris Jones

Merge in changes from the 2.6.0 release.

9709 05/02/2016 11:35 AM ben leinfelder

merge from 2.6 branch: use AuthUtils to gather user group subjects

9700 04/30/2016 12:53 PM Chris Jones

Merge changes from the 2.6.0 branch in MNodeService.allowUpdating() so it honors the localhost MN certificate.


9690 04/27/2016 12:14 PM ben leinfelder

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).

9688 04/27/2016 11:56 AM ben leinfelder

merge from 2.6 branch: use group subject (not name) when translating Session.subjectInfo into group list for Metacat's DocumentImpl.

9601 03/30/2016 09:32 AM Jing Tao

Reformat the create and update method.

9600 03/30/2016 09:19 AM Jing Tao

Close the input stream on the create/update method when the code aborts.

9599 03/29/2016 02:01 PM Jing Tao

Close the the input stream from the method parameter in the create method.

9583 03/23/2016 03:57 PM Jing Tao

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.

9544 03/07/2016 01:32 PM Jing Tao

Close the input stream object on the MN.replicate method.

9542 03/04/2016 11:06 AM ben leinfelder

use SM.fileName if we have it.

9541 03/04/2016 10:31 AM ben leinfelder

ensure there is a file extension included for the data files in a package download.

9538 02/29/2016 10:54 AM Jing Tao

Add code to print the the stack trace on the getPackage method in order to help us to identity some tmp file issues.

9523 02/19/2016 12:32 PM Jing Tao

In the isScienceMetacata method, the ServiceFailure exception shouldn't be caught anymore, since the code doesn't throw it.

9494 01/20/2016 11:17 AM Jing Tao

Put a detal code on the InvalidRequest exception in the getPackage method.

9493 01/20/2016 09:59 AM Jing Tao

If the pid it is a package id in the getPackage method, the method will throw an InvalidRequest exception.

9490 01/14/2016 01:28 PM ben leinfelder

add warning when exception encountered loading SM into map.

9486 01/12/2016 10:22 AM ben leinfelder

set authoritative MN to origin MN if the client did not set it on mn.create.

9481 01/05/2016 02:06 PM Jing Tao

Use the ServiceFailure to replace the InvalidRequest when it is the read-only mode (CN throws the exception).

9480 01/05/2016 09:42 AM Jing Tao

In the replicate method, the checking of the read-only mode was moved from MNodeService class to the MNResourceHandler class since it is asynchronized.

9479 01/04/2016 05:23 PM Jing Tao

The systemmetadataChanged method is asynchronized, so we put the read-only checking on the ResourceHandler class.

9478 01/04/2016 03:09 PM Jing Tao

Add the code to check if the mn is on the read-only mode.

9452 12/16/2015 09:58 AM ben leinfelder

include check for d1 rightsholder when checking permissions in original metacat code base.

9389 11/03/2015 11:27 AM Jing Tao

Fixed a bug that the publish method should throw an io exception.

9387 11/02/2015 04:44 PM Lauren Walker

Move the editScienceMetadata method to the MNodeService class - only update packageId in EML on publish()

9385 10/29/2015 06:59 PM Jing Tao

Fixed a bug in the condition check for the archive field in the updateSystemMetadata method.

9384 10/29/2015 04:00 PM Jing Tao

The archived field can't be reset to false if it is true in the systemMetadataChanged method.

9383 10/29/2015 03:56 PM Jing Tao

Doesn't allow to reset the archived field to be false if the field is true in the updateSystemMetadata method.

9382 10/28/2015 11:14 AM Jing Tao

In the systemMetadataChanged method, we will update system metadata when the local serial version is less than or equals the comming one.

9380 10/27/2015 03:42 PM rnahf

refs #7453: modified the metacatLog message from mn.synchronizationFailed to include the syncFailed.message field. Also increased the log level to WARN.

9376 10/22/2015 12:15 PM Jing Tao

Remove the method editScienceMetadata from the update method. This method will add a packageId attribute into the eml document. Lauren will add the method to the publish method.

9375 10/21/2015 04:52 PM Jing Tao

In the systemMetadataChanged method, the object will be archived if the new archive value is true and old value is false.
The log event is recorded in the systemMetadataChanged method as well.

9374 10/21/2015 03:31 PM Jing Tao

Make the isAuthoritativeNode throw exception if some value is null.

9373 10/20/2015 04:11 PM Jing Tao

In the updateSystemMetadata method, we avoid to log the event twice for archive=true.

9371 10/20/2015 02:34 PM Jing Tao

In the setReplicationStatus method, it only notified the replicas when the status is completed. Now we added the status - failed and invalid.

9367 10/14/2015 01:15 PM rnahf

refs #7419: refactored CNodeService implementations to not throw IdentifierNotUnique for hasReservation.

9362 10/02/2015 04:36 PM Jing Tao

In the create method, the modification date is reset only on the objects whose authoritative member node is v1.

9361 10/02/2015 04:16 PM Jing Tao

In the deleteReplicationMetadata method, the modification date of the system metadata will not be reset.

9360 10/02/2015 04:09 PM Jing Tao

Modify the text of an exception.

9359 10/02/2015 03:53 PM Jing Tao

Add contrains for the v1/v2.registerSystemMetadata method. See

9357 10/02/2015 10:20 AM Jing Tao

For the v1/v2 setObsoletedBy and setRightsHolder method, they only apply the objects whose authoriative member node is v1.

9356 10/02/2015 08:55 AM Jing Tao

Add the constrains that v1/v2.archive only applies the object whose authoritative node is a v1 node.

9354 10/01/2015 05:33 PM Jing Tao

Add the case the mn.updateSystemMetadata and cn.updateSystemMetadata will call the archive method internally.

9353 10/01/2015 03:01 PM Jing Tao

Refactory the mn.archive and cn.archive method so the mn.update and cn.update can reuse them.

9352 10/01/2015 02:23 PM Lauren Walker

Update the packageId attribute in EML documents on update. Never display the local docid in the rendered EML.

9350 10/01/2015 12:30 PM Jing Tao

In the archive method, add the lock.

9347 09/30/2015 05:01 PM Jing Tao

Only applies the setAccessPolicy method to objects whose authoritative mn is v1.

9345 09/30/2015 04:38 PM Jing Tao

Add a comment to specify that the setReplicationPolicy only applys to v1.

9343 09/30/2015 04:07 PM Jing Tao

The setReplicationPolicy method only apply to the pids whose authoritative member node has v2 MNStorage.

9340 09/28/2015 01:47 PM Jing Tao

Add a flag on the systemMetadataChanged method. If it is true, the authoritative member node will only accepts the serial version and replica list; the replica node accepts everything. If it is false, it will accept everything.

9339 09/28/2015 10:01 AM Jing Tao

Add a note for the updateSystemMetadata method.

9337 09/25/2015 02:55 PM Jing Tao

CN.updateSystemMetadata will ignore the serial version and replica list in the comming system metadata from the mn.

9335 09/24/2015 04:58 PM Jing Tao

Add the code to check the date of system metadata modification match in MN.updateSystemMetadata only. CN.updateSystemMetadata doesn't check.

9329 09/23/2015 03:35 PM Jing Tao

Commented out the code to check serial version on the updateSystemMetadata method.

9328 09/23/2015 12:00 PM Jing Tao

Add more debug messages for the isCNAdmin method.

9326 09/16/2015 12:57 PM Chris Jones

Change updateReplicationMetadata() and setReplicationStatus() to no longer set the dateSysmetaModified date per our discussion on 9/16/15.

9325 09/16/2015 10:04 AM Jing Tao

Add more debug statement for the updateSystemMetadata method.

9322 09/15/2015 03:15 PM Jing Tao

Add the code to check if we can't get the current system metadata from the node in the mn.systemMetadataChanged method.
If we can't find it, an InvalidRequest will be thrown.

9321 09/10/2015 09:47 AM Jing Tao

Fixed a bug that a client can set the original member node to be null.

9320 09/09/2015 02:09 PM Jing Tao

Change some exceptions from the InvalidSystem to the InvalidRequest in the updateSystemMetadata method.

9317 09/08/2015 03:22 PM Jing Tao

use the TypeFactory to convert the Log and ObjectFormatList objects from the v2 to v1.

9315 09/04/2015 03:05 PM Jing Tao

In the setReplicaStatus method, if the coming status is the same one of the existing one, the system metadata will not be updated.

9314 09/02/2015 11:22 AM Jing Tao

Fixed some incorrect exceptions in the getReplica method.

9309 08/28/2015 09:30 AM Jing Tao

In the isAdminAuthorized method, the faiure of the isNodeAdmin method will not interrupt the next check - if it is a cn.

9305 08/25/2015 03:25 PM Jing Tao

Use the application/bagit-097 to replace application/bagit.

9304 08/25/2015 02:50 PM Jing Tao

Use the TypeFactory to replace the TypeMarshaller according to the change in the d1_common_java.

9295 08/14/2015 04:06 PM Jing Tao

Use the D1NodeVersionChecker to determine the mn's version rather than using ping.

9294 08/14/2015 04:04 PM Jing Tao

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.

9291 08/12/2015 04:27 PM Jing Tao

A new class is used to get the version of service for a given node.

9290 08/10/2015 04:57 PM Jing Tao

Only support the application/bagit format in the getPackage method.

9288 08/07/2015 08:02 AM Jing Tao

Use the status of to guess the version of the source node in the replicate method.

9287 08/06/2015 05:23 PM Jing Tao

In the replicate method, it will use the v1.getReplica method if the source node only supports v1 replication service.

9284 08/06/2015 02:34 PM Jing Tao

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.

9283 08/06/2015 01:57 PM Jing Tao

Increase the version number after updating the existing object's system metadata in the update method.

9280 08/05/2015 04:37 PM Jing Tao

Fixed a possible null exception in the updateSystemmetadata method.

9277 08/05/2015 04:19 PM Jing Tao

In the MN.updateSystemMetadata method, when we set the obsoletedBy and obsoletes method, we will check if those values already exist in other chains.

9275 08/04/2015 03:53 PM Jing Tao

Add the identifier in the message of the exception when a client tries to reset the obsoletes or obsoletedBy fields.