Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HashStore-java 1.1.0 Release #48

Open
wants to merge 583 commits into
base: main
Choose a base branch
from
Open

HashStore-java 1.1.0 Release #48

wants to merge 583 commits into from

Conversation

doulikecookiedough
Copy link
Contributor

@doulikecookiedough doulikecookiedough commented Sep 18, 2023

Summary of Changes:

  • New HashStoreClient.java class which can be used to interact directly with a HashStore (and respective test class).
  • New utility class in filehashstore - FileHashStoreUtility, which contains generic methods and methods shared between FileHashStore and other classes.
  • Expanded functionality to call storeObject without a pid
  • New Public API methods (findObject, tagObject, verifyObject) and updates to HashStore interface for overload methods.
  • Reference system under the hood to manage and keep track of reference files to store, retrieve and delete objects.
  • Refactored existing deleteObject(String pid) to delete an object, its reference files and all associated metadata documents. Plus new overload method deleteObject(String idType, String id) to enable deletion of object, references files and metadata documents - or just the object itself
  • Refactored existing deleteMetadata(String pid) to delete all associated metadata documents for the given pid
  • Refactored storeMetadata to store metadata for a given pid and formatId in a directory formed by calculating the hash of the given pid, with the document name being the hash of the formatId.
  • Refactored 'ObjectMetadata' class to include a pid in its constructor and updated storeObject methods with a pid
  • Updated HashStore interface javadocs and README.md

Hi @taojing2002, when you have scope - can you please help perform a code review for HashStore-java?

@doulikecookiedough
Copy link
Contributor Author

Hi @artntek, can you please also perform a code review when you free up next?

README.md Outdated Show resolved Hide resolved
pom.xml Outdated Show resolved Hide resolved
src/main/java/org/dataone/hashstore/HashStore.java Outdated Show resolved Hide resolved
src/main/java/org/dataone/hashstore/HashStore.java Outdated Show resolved Hide resolved
src/main/java/org/dataone/hashstore/Client.java Outdated Show resolved Hide resolved
@doulikecookiedough
Copy link
Contributor Author

Thank you for your feedback and code review @artntek! I have incorporated most if not all of your suggestions and resolved our conversations. If you have any other comments, please let me know 🙏 .

README.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
src/test/java/org/dataone/hashstore/ClientTest.java Outdated Show resolved Hide resolved
src/test/java/org/dataone/hashstore/HashStoreTest.java Outdated Show resolved Hide resolved
src/test/java/org/dataone/hashstore/ObjectInfoTest.java Outdated Show resolved Hide resolved
@taojing2002
Copy link

taojing2002 commented Oct 20, 2023 via email

@doulikecookiedough
Copy link
Contributor Author

doulikecookiedough commented Oct 20, 2023

Thank you for clarifying and the feedback @taojing2002 (and @mbjones)! I believe I've addressed all your feedback, and have pushed my latest commits to the develop branch. Please let me know if you have any concerns with these changes (or any other feedback).

@doulikecookiedough
Copy link
Contributor Author

doulikecookiedough commented Jan 24, 2024

The necessary changes required to be integrated into the Metacat client have been made. However, after further discussions, we have determined that there is still one missing piece remaining to complete the 1.0.0 release described here: Refactor deleteObject for new requirements.

Additionally, the recent changes have been tested with test data found in knbvm (test.arcticdata.io) with up to 100,000 objects which includes numerous persistent identifiers that reference the same object (cid). Testing is ongoing, with the next steps to test the entire var/metacat/data directory (400,000+ objects).

@doulikecookiedough doulikecookiedough changed the title HashStore-java 1.0.0 Release HashStore-java 1.0.0 Beta Release Jan 30, 2024
…as possible by wrapping relevant code blocks in try-catch statements
…fore proceeding with untagging, and add new junit tests
Bug-97: `tagObject` Produces Orphaned Object
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants