Project

General

Profile

  • svn:eol-style: native
  • svn:mergeinfo: /branches/D1_0_6_2_BRANCH/src/edu/ucsb/nceas/metacat/IdentifierManager.java:6107-6121 /branches/METACAT_2_6_BRANCH/src/edu/ucsb/nceas/metacat/IdentifierManager.java:9560-9776 /tags/METACAT_2_6_0/src/edu/ucsb/nceas/metacat/IdentifierManager.java:9777-9779

# Date Author Comment
10005 10/05/2016 02:51 PM Jing Tao

The deleteSystemmetadata method will delete the records on xml_access as well.

9780 05/18/2016 09:01 AM Chris Jones

Merge changes from the 2.6.0 release.

9638 04/04/2016 03:55 PM Jing Tao

Fixed a bug to use an identifier object to get a value in a vector.

9637 04/04/2016 01:55 PM Jing Tao

Check the chain end if obsoleted by another object.
See ticket https://redmine.dataone.org/issues/7624

9634 04/01/2016 03:50 PM Jing Tao

Use sql command to get some information rather than hazelcast.

9629 04/01/2016 02:51 PM Jing Tao

Use a hashmap to replace a sql query to improve performance in the getHeadPID method.

9628 04/01/2016 01:37 PM Jing Tao

In the getHeadPID method, we got the field obsoletedBy from the systemmetadata table rather than the hazelcast service.

9482 01/06/2016 05:28 PM Jing Tao

Use the "order by" to preserve the nodes order in the replication policy.

9465 12/18/2015 03:40 PM Jing Tao

Close the sql statements on the four methods - getGUID, getHeadPID, systemMetadataSIDExist and systemMetadataPIDExist.

9342 09/30/2015 11:55 AM Jing Tao

Add the code to check if the serialVersion object is null before it is saved to the db.

9308 08/26/2015 04:18 PM Jing Tao

Fixed a bug that when the count is 0, the total is incorrect in the querySystemMetadata method.

9307 08/25/2015 04:44 PM Jing Tao

Fixed a bug the total was not correct in the querySystemMetadata method.

9249 07/15/2015 11:07 AM Jing Tao

Use the NodeReference object to replace the replicaStatus to restrict the listObjects method.

9231 07/08/2015 11:53 AM Jing Tao

Fixed a bug that two columns were missing in the sql command.

9230 07/07/2015 04:35 PM Jing Tao

Add the code to read/write the new system metadata fields - file name, media type and media type properties into the db tables.

9220 05/28/2015 03:11 PM Jing Tao

Throw an exception if the saving system metadata fails.

9128 02/18/2015 05:22 PM Jing Tao

Use the log to the replace system.out.print.

9119 02/13/2015 04:37 PM Jing Tao

Add the code to get the head version.

9072 01/16/2015 05:59 PM Jing Tao

Implemented the feature to support the identifier(both sid and pid) feature in the objectLists method.

9038 12/24/2014 11:41 AM Jing Tao

Add the series id to the system metadata.

9032 12/19/2014 04:59 PM Jing Tao

Modified the get method to handle the sid in the v2 api.

9030 12/19/2014 03:10 PM Jing Tao

Change a method name to use pid rather than guid.

9026 12/17/2014 04:57 PM Jing Tao

Add the code to get the most recent version of a sid which all pids are obsoleted.

9024 12/16/2014 06:50 PM Jing Tao

Fixed a bug that the method getLocalId swallowed an exception incorrectly in the IdentifierManager.

9017 12/11/2014 03:24 PM Jing Tao

1. In the identifierExists method, the code to check if the identifier exist on the serial-id fields of the system metadata table.
2. Fixed a bug on the identifierExists - it considered an identifier didn't exist when the determining process threw an exception.

9016 12/10/2014 04:33 PM Jing Tao

Add a method to check if a serial id exists.

9015 12/09/2014 05:03 PM Jing Tao

Add a method to get the pid of the head version of a sid.

8852 09/12/2014 04:03 PM Jing Tao

Make the deleteSystemmetadata method really roll-backable.

8810 07/23/2014 04:19 PM ben leinfelder

add support for v2 DataONE API.

7639 04/30/2013 09:35 PM ben leinfelder

Allow null SM.submitter (per schema). There were null values in cn-dev (and probably elsewhere since it is technically allowed in the schema. But with a null value, we need to have a null Subject for the SM.submitter field, not a Subject with a null getValue() return. Encountered this when testing for: https://projects.ecoinformatics.org/ecoinfo/issues/5929.

7475 12/12/2012 02:38 PM ben leinfelder

move DocInfo parsing into utilities project so that it can be used by Morpho as well as Metacat.
http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5737

7462 12/05/2012 11:04 AM ben leinfelder

default replicaStatus (aka "show replicas in results") to true rather than false

7461 12/05/2012 10:29 AM ben leinfelder

add debug statements for listObject slice debugging

7452 12/03/2012 12:30 PM ben leinfelder

use dual query for query slicing - one for count, another for the actual records when requested.
https://redmine.dataone.org/issues/3065

7447 11/30/2012 05:19 PM Chris Jones

Fix a minor bug in listObjects() where total was set incorrectly when total was set incorrectly when count=0. The definition of total in the D1 architecture docs says 'The total number of entries in the source list from which the slice was extracted.' With count=0, we assume the total is the total count from the entire object store. Needs testing.

7438 11/29/2012 04:33 PM ben leinfelder

use RDBMS-specific features to limit the resultset for paging the object list -- postgres and oracle have implementations. we don''t really support mssql so I skipped that one.

7428 11/21/2012 04:35 PM ben leinfelder

look up the archived value when retrieving SystemMetadata record.
https://redmine.dataone.org/issues/3405

7410 10/22/2012 01:38 PM ben leinfelder

handle /object?count=0 queries using simpler (quicker) sql
https://redmine.dataone.org/issues/3065

7399 10/12/2012 08:27 AM Chris Jones

Change the set and get methods for the replication verified date to use java.sql.Timestamp rather than java.util.Date via setTimestamp(), not setDate(). The hh:mm:ss.sss was previously getting truncated.

7392 09/24/2012 01:09 PM ben leinfelder

shorten the systemmetadata* table names for Oracle's 30 character limit. move version to 2.0.5. http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5717

7310 07/13/2012 07:57 AM ben leinfelder

order the listObjects() results by identifier to mitigate random paged results
https://redmine.dataone.org/issues/3065

7188 05/23/2012 04:41 PM ben leinfelder

share the same dbConnection when inserting and then updating SystemMetadata objects in the backing store.
any errors encountered during the update will rollback the entire transaction and the SM record will not exist, even in part.

7187 05/23/2012 03:28 PM ben leinfelder

Do not loadAllKeys() for SystemMetadataMap when Metacat first starts up. hzIdentifiers will be populated with a simple SQL statement rather than the serial loading of every single SystemMetadata object. It will remain in synch using the usual entryXXX() methods as before....

7168 05/08/2012 04:30 PM ben leinfelder

only generate system metadata for original objects.
https://redmine.dataone.org/issues/2721

7102 03/28/2012 03:19 PM ben leinfelder

include debug statements for systemMetadataReplicationStatus and systemMetadataReplicationPolicy SQL

7088 03/23/2012 05:22 PM ben leinfelder

handle case where EML access rule "permission" is not in our constrained list (EML 2.0.0 doc showed this with a "none" permission for public principal). we now omit this invalid access rule when interpreting it in system metadata -- effectively dropping that invalid access rule. "none" had been stored as a 0 in the DB xml_access table and would not have given or denied access for the document so I think it can safely be omitted for good. for example, see knb-lter-gce.101.2 with this rule:...

7070 03/15/2012 11:46 AM ben leinfelder

do not allow "Metacat-conforming" identifiers to be used. "test.1.001" is interpreted as "test.1.1" which renders "test.1.002" unusable unless a traditional Metacat "update" is used for that id/revision which contradicts the DataONE use of Identifiers that have no lexical requirements for revisions.

7056 03/12/2012 04:38 PM ben leinfelder

use Timestamp object from results, not a new Date object from that Timestamp object

7045 03/07/2012 02:30 PM ben leinfelder

check whether mapping (

7030 02/24/2012 02:21 PM Chris Jones

Globally change the property 'dataone.memberNodeId' to 'dataone.nodeId'. This is more useful for both MNs and CNs implemented in Metacat. Also, change D1NodeService.getLogRecords() to return log entries with the actual node id rather than the IP address (looks like a cut/paste error)....

7023 02/22/2012 12:47 PM ben leinfelder

do not "lookup" object format when retrieving system metadata -- just return what we have stored as the formatId and don't [erroneously] default it to binary when there's a problem with the lookup (cache or service or otherwise).
https://redmine.dataone.org/issues/2365

7021 02/21/2012 10:55 AM ben leinfelder

actually, let's set the serialVersion during the MN.create() call so that the HZ map and the backing store have the same information immediately. Also, this is how the docs specify it.
http://mule1.dataone.org/ArchitectureDocs-current/design/SystemMetadata.html

7020 02/21/2012 10:08 AM ben leinfelder

if serialVersion is null, use defualt value of 0

7017 02/20/2012 12:38 PM ben leinfelder

remove ID mapping when a create()/"insert" call fails so that subsequent calls do not return an IdentifierNotUnique error. In this case it was due to invalid XML.
https://redmine.dataone.org/issues/2341

7010 02/11/2012 11:36 AM Chris Jones

ObjectFormatCache.getFormat(String formatStr) has been deprecated, and now only takes a formatId instance to get a format from the cache. It also throws Service Failure and NotImplemented, so here just set the format to application/octet-stream in any case.

6997 02/08/2012 10:50 AM ben leinfelder

refactor IdentityManager.createSystemMetadata(sm) to be insertSystemMetadata(sm) so that it is clear that this method inserts the SM object into the backing store. This differentiates it from the "generation" methods we use when we need to create SM about pre-existing objects or objects we get from non-D1 api calls.

6918 01/17/2012 03:20 PM Chris Jones

Remove null field tests in the IdentifierManager class. Schema-level required fields are checked on serialization/deserialization using JibX during the REST resource handler classes. Other required fields are checked in MNodeService and CNodeService, higher in the stack.

6904 01/13/2012 11:17 AM Chris Jones

In IdentifierManager.updateSystemMetadata(), add a check for invalid system metadata (fields that throw a NullPointerException on access) to ensure that system metadata is populated correctly. Updated calling classes to handle the exception.

6892 01/12/2012 01:54 PM Chris Jones

In IdentifierManager, throw SQLExceptions rather than just logging them, and let them be handled higher up in the stack.

6862 01/06/2012 10:45 AM ben leinfelder

update authoritative member node id when we change it (reconfiguration) and when we initially register as a MN with the CN.

6837 01/03/2012 07:32 PM Chris Jones

When the requested count in a call to listObjects() is 0, return an empty object list, not a full one. Fixes https://redmine.dataone.org/issues/2122

6836 01/03/2012 07:30 PM Chris Jones

Minor formatting for querySystemMetadata().

6798 12/16/2011 09:44 AM Chris Jones

Change the query semantics such that we implement the MN.listObjects() where the lower datetime bound is inclusive (greater than or equal to" and the upper datetime bound in exclusive (less than). This allows easier paging in client applications.

6766 12/12/2011 10:50 AM ben leinfelder

include 'archived' system metadata element in backing DB store

6745 12/07/2011 05:02 PM ben leinfelder

use correct "rev" column in xml_revisions table

6744 12/07/2011 12:18 PM ben leinfelder

refactor Metacat access handling to be on a per-revision basis so that it more closely aligns with the DataONE approach
http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5560

6722 12/01/2011 11:53 AM ben leinfelder

for "all" permission, return a list of READ, WRITE, CHANGE_PERMISSION

6720 11/30/2011 05:25 PM ben leinfelder

look up access policy by guid or local id
TODO: resolve the Metacat/EML "all" permission as it relates to DataONE (there is only READ, WRITE, CHANGE_PERMISSION). for now I am using CHANGE_PERMISSION when it is a Metacat "all"

6712 11/29/2011 02:15 PM ben leinfelder

optionally include ORE generation/insertion into Metacat when generating SystemMetadata
https://redmine.dataone.org/issues/2056

6708 11/29/2011 01:05 PM ben leinfelder

use shared method for looking up "docInfo" map -- both in Metacat replication and in D1 system metadata generation

6704 11/29/2011 11:00 AM ben leinfelder

include all document revisions when generating "missing" system metadata
TODO: revision graph captured in obsoletes/obsoletedBy

6648 11/14/2011 03:34 PM ben leinfelder

delete system metadata when MN.delete() is called.

6595 11/02/2011 08:40 PM ben leinfelder

http://bugzilla.ecoinformatics.org/show_bug.cgi?id=5527

6561 10/27/2011 05:51 PM ben leinfelder

move the DataONE 1.0.0-SNAPSHOT

6535 10/14/2011 10:45 AM Chris Jones

Fix a data-typing issue when pulling replicationAllowed from postgres. Use getBoolean(), not getString().

6533 10/12/2011 07:19 PM Chris Jones

IdentifierManager.getSystemMetadata() was missing the number_replicas and replication_allowed fields when building a ReplicationPolicy section of a SystemMetadata document being returned. Add in these two attributes.

6519 09/26/2011 11:52 AM ben leinfelder

-use whatever object format id is stored in the DB
-only set originating node and authoritative node if we have non-null values for them

6516 09/26/2011 09:42 AM ben leinfelder

skip Objects that have null format ids are invalid checksums

6494 09/22/2011 10:11 AM ben leinfelder

more stringent NP checking when saving replication policy

6459 09/19/2011 03:26 PM ben leinfelder

lookup latest system metadata update date for use in synchronizing CN-CN when an offline nodes comes back online

6454 09/16/2011 05:05 PM ben leinfelder

do not throw exception when checking for system metadata - boolean return is good.
use ReplicationStatus.valueOf() instead of convert()

6450 09/16/2011 04:01 PM ben leinfelder

treat access rules atomically - do not group them together otherwise the intent is subverted

6443 09/16/2011 10:51 AM ben leinfelder

check for null pointers when adding system metadata/creating records during cn.create()

6423 09/14/2011 12:07 PM ben leinfelder

do not add obsoletes and obsoletedBy elements if their values are null (jibx chokes on the emptiness)

6416 09/13/2011 02:47 PM rnahf

fixed logic wrt localID and docid. Implemented new method in IdentifierManager to getAllGUIDs from identifier table for implementation of loadAllKeys in ObjectPathMapLoader.

6397 09/07/2011 05:16 PM ben leinfelder

changes for schema update (d1_common)

6384 08/31/2011 02:36 PM Chris Jones

Update classes to use the DataONE 0.6.4 schema and types. Major changes involve using BigInteger vs long in SystemMetadata.size, and using ObjectFormatIdentifier rather than Object format.

6381 08/10/2011 07:04 AM Chris Jones

Fix bug in updateSystemMetadataFields() where guid is set from the wrong parameter in the prepared SQL statement.

6377 07/29/2011 10:40 AM ben leinfelder

remove ORE mapping from system metadata

6375 07/28/2011 05:11 PM ben leinfelder

include obsoletes and obsoletedBy for system metadata
repurpose the "provenance" table as the ORE mapping table for system metadata

6368 07/28/2011 10:11 AM ben leinfelder

use correct enum method

6366 07/27/2011 04:25 PM ben leinfelder

use new "v1" types from DataONE

6337 07/12/2011 03:02 PM ben leinfelder

use objectFormatIdentifier for listObjects()
remove provisional system metadata indicator - Metacat will not implement reserveIdentifier()

6318 07/07/2011 01:28 PM Chris Jones

Reverting the resultset order in querySystemMetadata(). Thanks Ben.

6316 07/07/2011 01:11 PM Chris Jones

Because of the new 'provisional' column, the resultset field order in querySystemMetadata() was out of order. Changed the order to reflect the new table column order.

6311 07/07/2011 12:18 PM ben leinfelder

allow very minimal system metadata for provisional entries (CN.reserveIdentifier)

6299 07/06/2011 11:52 AM ben leinfelder

handle null values from DB better when querying system metadata

6296 07/06/2011 07:59 AM Chris Jones

Fixed problems in IdentifierManager asSystemMetadata(), getSystemMetadata(), and querySystemMetadata() that were using ObjectFormat.toString() rather than ObjectFormat.getFmtid().getValue(). Metacat was storing the string memory pointer rather than the actual format string in the systemmetadata table.

6292 07/05/2011 04:18 PM ben leinfelder

do not delete if the sysmeta doesn't exist

6277 07/01/2011 12:35 PM ben leinfelder

allow for provisional SystemMetadata records (provisional=true)