Project

General

Profile

  • svn:eol-style: native

# Date Author Comment
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)

6139 06/15/2011 08:48 AM Chris Jones

Updated CNCoreImpl to implement listFormats() and getFormat(), and changed calls to ObjectFormatCache in IdentifierManager, MetacatHandler to call getInstance(). Removed the ObjectFormatService registration from MetaCatServlet since it is replaced by CNCoreImpl.

6131 06/08/2011 06:22 AM Chris Jones

When calling SystemMetadata.getObjectFormat(), return the value of the ObjectFormatIdentifier rather than ObjectFormat.toString() (which no longer returns the fmtid string).

6124 06/07/2011 09:53 AM Chris Jones

Merged in the D1_0_6_2_BRANCH changes that include the transition from ObjectFormat calls to ObjectFormatCache calls.

6123 06/06/2011 03:56 PM ben leinfelder

check system metadata for the id as well (in cases when we only have system metadata)

6122 06/06/2011 03:28 PM ben leinfelder

include GUID column for xml_access and related methods for storing/retrieving access rules

6118 06/01/2011 01:45 PM ben leinfelder

handle timed replication of system metadata. there are still a few outstanding issues:
-track server location of system metadata-only entries
-replication policy flag for system metadata-only entries?
-locking for replicated entries?
-forced replication of entries

6108 05/27/2011 11:55 AM ben leinfelder

read and write D1 access policy rules from metacat xml_access table.
still TBD: which mechanism takes precedence when there are systemMetadata access rules and EML access rules and other access rules?

6107 05/27/2011 09:45 AM ben leinfelder

persist system metadata replication policy and status using db tables

6104 05/26/2011 10:25 AM ben leinfelder

do not look in systemMetadata for a docid->guid mapping

6099 05/25/2011 11:59 AM ben leinfelder

-remove system metadata guid -> local id mapping (there is no document for system metadata now)
-include system metadata elements when replicating data objects (TODO: transfer all system metadata structures with the docinfo request).
TODO: remove docid+rev from the systemMetadata table definition

6097 05/24/2011 04:18 PM ben leinfelder

do not use XML files for storing SystemMetadata - use DB tables only.

6091 05/18/2011 04:32 PM Chris Jones

In order to sync up with DataONE 0.6.1 changes, I'm backing out ObjectFormatService changes temporarily in Metacat. Most functionality will be rolled back in using the DataONE 0.6.2 tag, but some methods in ObjectFormatService (such as getListFromDisk()) will be moved into d1_libclient_java.