Add a policy_id in the smReplicationPolicy table to help preserver the order of the nodes list.
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.
In the clean method, the metacatui build directory will be deleted as well.
Add the code to handle the read-only mode.
Add a junit test.
Add a class to determine if the metacat is in the readonly mode.
Add a new property named application.readOnlyMode.
Add the check that only the administrator can shrink the connection pool.
'Change the verion of the production CN from the v1 to the v2.
Add two new test methods to test systemMetadataPIDExists and systemMetadataSIDExists.
Close the sql statements on the four methods - getGUID, getHeadPID, systemMetadataSIDExist and systemMetadataPIDExist.
Close some prepared sql statement in the summarize method.
include expiration configuration option for NCEAS accounts to prevent errors during account registration. https://projects.ecoinformatics.org/ecoinfo/issues/6917
merge from 2.0 branch: use updated node list information from cn-dev so that test will match current state of env. https://redmine.dataone.org/issues/7534
merge from 2.0 branch: initialize mock cn for test to run successfully.
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
include check for d1 rightsholder when checking permissions in original metacat code base. https://redmine.dataone.org/issues/7560
Change the version to 2.6.0
Set the metacat to 2.6.0 and add the db upgrade scripts.
Add the sql file for the upgrading.
merge jing's commit from the 2.5 branch to include the 2.5.1 upgrade utility in properties file.
Removed the jar file since it is replaced by the jar file from the maven.
merge from 2.5.x branch: neglected to replace solr schema during 2.5.0 upgrade - this will do it for 2.5.1.
Escape the user names, group name and other information in the xml format.
Change the metacatui to 1.8.1
Add the keyword "select" into the list.
Reset the xml_catalog_id sequence value to the max value of the table.
merge from branch: use hash for latest solr schema
add checks on archived flag to avoid NPE.
only consult fields to merge if there was an existing referenced doc
remove "al" prefix from subquery since we are only querying one table and do not need to use a prefix.
added 4 new schema fields so need to account for them in the test case.
subclass AnnotatorSubprocessor for use in metacat-index (uses embedded solr server and solrj for retrieving/merging existing documents).
bump trunk to 2.6.0-SNAPSHOT and pull in d1 dependencies at 2.1.0-SNAPSHOT to continue trunk development.
merge from 2.5 branch
add fileName, mediaType and mediaTypeProperties to solr schema and v2 system metadata processor
merge from 2.5 branch: use subquery to do paging before joining to identifier table. https://redmine.dataone.org/issues/7491
Add more statement to debug the query performance.
refactor v2 context bean to use the v1 pattern used in metacat
include seriesId in solr schema and context file (v2 system metadata)
rollback to use entity/attribute id for the tab-pane (so it will work) and include new div id for the annotatable attribute section.
restructure attribute and party sections so that the annotatable div does not have DOM children.
Mrge from 2.5 branch: Clean up the admin and doc page styles, update all the screenshot images, and include a link to the MetacatUI Github
Use conditional method for retrieving server URL (http vs https). When metacat is configured to force SSL communication we get the https url, otherwise we get http. this allows us to use the DBTransform on localhosts that are not using SSL.
add section for CN vs MN endpoints for MetacatUI. https://projects.ecoinformatics.org/ecoinfo/issues/6532
Fixed a bug that the publish method should throw an io exception.
use stable EZID 1.0.1 release tag for dependency. https://projects.ecoinformatics.org/ecoinfo/issues/6440
Move the editScienceMetadata method to the MNodeService class - only update packageId in EML on publish()
update documentation to reference Tomcat 7, Java 7 and newer apache config file name conventions. https://projects.ecoinformatics.org/ecoinfo/issues/6855
Fixed a bug in the condition check for the archive field in the updateSystemMetadata method.
The archived field can't be reset to false if it is true in the systemMetadataChanged method.
Doesn't allow to reset the archived field to be false if the field is true in the updateSystemMetadata method.
In the systemMetadataChanged method, we will update system metadata when the local serial version is less than or equals the comming one.
In order to make jenkins work, switch back to maven.
refs #7453: modified the metacatLog message from mn.synchronizationFailed to include the syncFailed.message field. Also increased the log level to WARN.
Change the maven home to maven2 which is more popular.
Rearrange some test cases.
Add a new test to test the checksum matching for mn.update.
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.
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.
Make the isAuthoritativeNode throw exception if some value is null.
In the updateSystemMetadata method, we avoid to log the event twice for archive=true.
In the hasReservation method, it doesn't throw the IdentifierNotUnqiue exception.
In the setReplicationStatus method, it only notified the replicas when the status is completed. Now we added the status - failed and invalid.
use idFilter for v2 getLogRecords() to match v2 API definition.
include index.tdb.directory property. https://redmine.dataone.org/issues/7442
Add the code to print the exception.
refs #7419: refactored CNodeService implementations to not throw IdentifierNotUnique for hasReservation.
Change the text content for the testing.
Use the create method to replace registerSystemMetadata method.
Use the MN.updateSystemMetadata to replace CN.updateSystemMetadata.
In the reindex method, the error message will be sent back.
In the create method, the modification date is reset only on the objects whose authoritative member node is v1.
In the deleteReplicationMetadata method, the modification date of the system metadata will not be reset.
Modify the text of an exception.
Add contrains for the v1/v2.registerSystemMetadata method. See https://redmine.dataone.org/issues/7380
Adjust the test code base on the new contrains on setRightHolder, archive. The new contrains is they only apply to the objects whose authoriative node is v1.
For the v1/v2 setObsoletedBy and setRightsHolder method, they only apply the objects whose authoriative member node is v1.
Add the constrains that v1/v2.archive only applies the object whose authoritative node is a v1 node.
Adjust code according the change on cn.updateSystemMetadata.
Add the case the mn.updateSystemMetadata and cn.updateSystemMetadata will call the archive method internally.
Refactory the mn.archive and cn.archive method so the mn.update and cn.update can reuse them.
Update the packageId attribute in EML documents on update. Never display the local docid in the rendered EML.
Add the testArchive method.
In the archive method, add the lock.
check for auth before doing asynch call to MN dirtySysMeta implementation
Adjusted the testSetAccessPolicy method.
Only applies the setAccessPolicy method to objects whose authoritative mn is v1.
Adjust the testReplicationPolicy method.
Add a comment to specify that the setReplicationPolicy only applys to v1.
Uncommented some code.
The setReplicationPolicy method only apply to the pids whose authoritative member node has v2 MNStorage.
Add the code to check if the serialVersion object is null before it is saved to the db.
add missing quotation mark
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.