Activity
From 08/28/2011 to 09/26/2011
09/26/2011
- 10:59 PM Revision 6525 (metacat): set date uploaded and date system metadata updated date to current time when calling MN.create() and MN.update()
- 02:46 PM Revision 6524 (metacat): updated d1_common jar (unknown changes)
- 02:45 PM Revision 6523 (metacat): use rfc2253 format when extracting certificate subject
- 12:07 PM Revision 6522 (metacat): do not allow system metadata to have obsoletes or obsoletedBy fields when calling the create() method -- these are only allowed for updates so that we do not subvert object versioning by [un]knowingly submitting system metadata that directs one id to another.
- 11:59 AM Revision 6521 (metacat): set the originating member node on update()
- 11:53 AM Revision 6520 (metacat): set the originating member node on create()
- 11:52 AM Revision 6519 (metacat): -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
- 11:10 AM Revision 6518 (metacat): set sysmeta submitter based on the subject given in the certificate
- 10:48 AM Revision 6517 (metacat): for default Metacat installation we turn off multicast and only enable localhost communication.
- 09:42 AM Revision 6516 (metacat): skip Objects that have null format ids are invalid checksums
09/23/2011
- 10:18 PM Revision 6515 (metacat): MN.setAccess() is a PUT
- 09:54 PM Revision 6514 (metacat): correctly handle incoming "accessPolicy" parameters for the setAccess() method
- 08:46 PM Revision 6513 (metacat): swap the parameters for update: existing pid should be first, and then newPid
- 02:59 PM Revision 6512 (metacat): Modified cron schedule to fix the incorrect crontab entry.
- 01:44 PM Revision 6511 (metacat): do not require ID reservation before create() or update()
- 01:39 PM Revision 6510 (metacat): use "action" parameter instead of "permission"
- 01:38 PM Revision 6509 (metacat): use "action" parameter instead of "permission"
09/22/2011
- 03:57 PM Revision 6508 (metacat): catch datapackage parsing errors as before
- 03:30 PM Revision 6507 (metacat): include checksum algorithm when setting describe
- https://redmine.dataone.org/issues/1799
- 03:30 PM Revision 6506 (metacat): check for null session before logging sync failed
- https://redmine.dataone.org/issues/1798
- 02:58 PM Revision 6505 (metacat): Fixed the D1 URL to the Coordinating Node that had been missing /cn in the path.
- 02:22 PM Revision 6504 (metacat): use an actual data object (bytes of "test") when generating system metadata so that the checksum is a valid checksum
- 02:02 PM Revision 6503 (metacat): use Settings augmentation to customize the D1Client.CN_URL when used in a Metacat deployment.
- 02:01 PM Revision 6502 (metacat): correctly implement MN.describe
- https://redmine.dataone.org/issues/1799
- 01:40 PM Revision 6501 (metacat): return Node not NodeList for getCapabilities
- https://redmine.dataone.org/issues/1800
- 01:32 PM Revision 6500 (metacat): Use setProperty() instead of addProperty() to properly override the Settings property.
- 01:19 PM Revision 6499 (metacat): Modify to set the CN URL before getting a CN instance.
- 01:18 PM Revision 6498 (metacat): Updating CN property to use cn-dev.
- 10:55 AM Revision 6497 (metacat): Pull the certificate path for dataone certificates from the metacat properties file.
- 10:12 AM Revision 6496 (metacat): return null instead of throwing an exception when pid is not found in store
- 10:12 AM Revision 6495 (metacat): log errors on create() and registerSM
- 10:11 AM Revision 6494 (metacat): more stringent NP checking when saving replication policy
- 12:05 AM Revision 6493 (metacat): Register as a MN on the DataONE network as part of the properties setup. This is currently done always, but it needs to be conditional rather than automatically triggered.
- 12:03 AM Revision 6492 (metacat): Added subject field to getCapabilities() call.
09/21/2011
- 07:02 PM Revision 6491 (metacat): Newest D1 0.6.4 jars
- 05:45 PM Revision 6490 (metacat): comment out resynch() method until errors are resolved
- 05:25 PM Revision 6489 (metacat): use default hazelcast config when not configured to use an external one
- 05:25 PM Revision 6488 (metacat): Use multicast in the hazelcast config for local deployments.
- 05:24 PM Revision 6487 (metacat): comment out the external hazelcast config location for default building
- 05:24 PM Revision 6486 (metacat): include default hazelcast.xml in the war build
- 05:03 PM Revision 6485 (metacat): Add in the hzObjectPath map to the hazelcast config file for a local deployment. Enable the MapStore impl for both maps.
- 04:58 PM Revision 6484 (metacat): Don't use the hzNodes map yet (as a hazelcast client). Use D1Client instead to get the node list in isNodeAuthorized().
- 04:51 PM Revision 6483 (metacat): For now, remove the hzClient code connecting to the DataONE process cluster to get the hzNodes map. This will be moved into the storage cluster, but use D1Client to get the node list for now.
- 04:42 PM Revision 6482 (metacat): A default hazelcast config file for metacat.
- 10:54 AM Revision 6481 (metacat): going back to using IDentifier as the key for the ObjectPAthMap.
09/20/2011
- 11:40 PM Revision 6480 (metacat): Removed extraneous comments.
- 11:36 PM Revision 6479 (metacat): Add boolean field for synchronization status.
- 11:03 PM Revision 6478 (metacat): New default properties for dataone MN properties.
- 10:56 PM Revision 6477 (metacat): A configuration section for DataONE Member Node properties.
- 10:20 PM Revision 6476 (metacat): Fix getCapabilities to properly throw ServiceFailure when properties can not be read, rather than failing with a log message. Fix properties in the Node object to reflect their correct values. Set the sync schedule properly to default to 5 minute intervals. Improve documentation.
- 08:52 PM Revision 6475 (metacat): Reformatted to correct indentation to make class readable.
- 02:32 PM Revision 6474 (metacat): newer d1 jars -- contains CN.isNodeAuthorized() method
- 02:12 PM Revision 6473 (metacat): explicitly require java 1.6
- 02:11 PM Revision 6472 (metacat): collect "message" param from multipart request for MN.synchronizationFailed method
- 02:08 PM Revision 6471 (metacat): Reverting previous @Overrides chanrge from r6470, as that is the desired
- behavior under Java 1.6 -- previous versions of Java (e.g., 1.5) will not
comile with this usage of the @Overrides an... - 01:36 PM Revision 6470 (metacat): Removing incorrect @Override annotations that were preventing compilation. The methods marked did not actually override a method in the superclass, so they were not compiling. I think @Overrides was being mistaken for methods that implement an interface but aren't actually in the superclass.
- 11:55 AM Revision 6469 (metacat): use d1_common_java's date serialization utility for parsing parameters
- 10:48 AM Revision 6468 (metacat): catch runtime exceptions that arise from hazelcast storage errors in the system metadata map
- 09:12 AM Revision 6467 (metacat): Lock the system metadata entry in hzSystemMetadata when calling setReplicationPolicy().
- 09:10 AM Revision 6466 (metacat): Lock the system metadata entry in hzSystemMetadata when calling registerSystemMetadata().
- 07:18 AM Revision 6465 (metacat): Remove references to CNReplicationTask.
- 07:17 AM Revision 6464 (metacat): Remove the CNReplicationTask (for now). We will be using Metacat's ForceReplicationHandler to replicate science metadata across CNs, and may explore the use of a 100% evicted hzScienceMetadata map. Either way, the distributed task design won't be needed. When a dropped CN comes back online, we'll catch it up based on last modified dates for PIDs in the hzSystemMetadata map.
- 07:12 AM Revision 6463 (metacat): Change isNodeAuthorized() to query the hzSystemMetadata map rather than the hzPendingreplicationTasks map. The latter isn't needed for authorization since the ReplicationStatus for each Replica in SystemMetadata lists the status of the replica and can be queried.
- 06:42 AM Revision 6462 (metacat): Add getNodesMap() to return the hzNodes map from the process cluster. Remove getPendingReplicationTasks since that structure is being removed. Add minor documentation.
09/19/2011
- 06:29 PM Revision 6461 (metacat): Set the correct cluster name and password for the D1 Hazelcast process cluster. This will likely change for production deployments.
- 03:39 PM Revision 6460 (metacat): only include 0.6.4 schemas for D1. Will also need to update this when we release whatever v1 ends up being.
- 03:26 PM Revision 6459 (metacat): lookup latest system metadata update date for use in synchronizing CN-CN when an offline nodes comes back online
- 12:17 PM Revision 6458 (metacat): changed the key type from Identifier to String for ObjectPathMap. (need a Comparable key).
- 11:48 AM Revision 6457 (metacat): rework this to be MN->MN replication. Should be fleshed out more.
- 11:43 AM Revision 6456 (metacat): throw RuntimeExceptions when store() methods throw declared exceptions -- we want callers to put() to be alerted if there are errors.
- 10:18 AM Revision 6455 (metacat): move CNReplicationTask to the hazelcast package
09/16/2011
- 05:05 PM Revision 6454 (metacat): do not throw exception when checking for system metadata - boolean return is good.
- use ReplicationStatus.valueOf() instead of convert()
- 05:04 PM Revision 6453 (metacat): implicit success for setting accessPolicy - trust that the MapStore persists the updated system metadata
- 05:03 PM Revision 6452 (metacat): test relationship assertion using obsoletes
- 04:42 PM Revision 6451 (metacat): check if system metadata exists rather than just the id mapping (before creating the entry)
- 04:01 PM Revision 6450 (metacat): treat access rules atomically - do not group them together otherwise the intent is subverted
- 03:23 PM Revision 6449 (metacat): only "save" to the shared system metadata map - not directly to the table store.
- 03:17 PM Revision 6448 (metacat): do not send <systemMetadata> with the <docInfo> replication information - this is handled by the Hazelcast shared map
- 03:07 PM Revision 6447 (metacat): rely on Hazelcast to store the SystemMetadata locally for the node. Entry event listeners store the shared system metadata on their local node when alerted. TODO: remove old replication code that included system metadata xml when replicating scimeta and data
- 02:24 PM Revision 6446 (metacat): move bulk of the Hazelcast code into HazelcastService from CNodeService so that it is centrall located - easier to manage and configure
- 01:13 PM Revision 6445 (metacat): verify that the sysmeta checksum value matches the computed checksum value when calling create()
- https://redmine.dataone.org/issues/1795
- 01:08 PM Revision 6444 (metacat): include sysmeta for uploaded BIN data that comes through the legacy Metacat servlet API
- 10:51 AM Revision 6443 (metacat): check for null pointers when adding system metadata/creating records during cn.create()
- 10:42 AM Revision 6442 (metacat): removing unneeded class (never used)
09/15/2011
- 01:57 PM Revision 6441 (metacat): allow urls with "v1" in them
- 01:46 PM Revision 6440 (metacat): cleaned up mock tests on hzObjectPathMap. split out code for mocking a datastore into MockObjectPathMap.
- 12:59 PM Revision 6439 (metacat): remove unused/old D1 SCHEMA downloads and build tasks
- 12:58 PM Revision 6438 (metacat): remove unused/old D1 SCHEMA downloads and build tasks
- 12:57 PM Revision 6437 (metacat): initialize Hazelcast from the custom configuration when initializing the Metacat service.
- 12:56 PM Revision 6436 (metacat): use shared hazelcast properties location on the CN
- 10:40 AM Revision 6435 (metacat): handle entryAdded and entryUpdated the same - update the entry if it exists, otherwise create it
- 10:38 AM Revision 6434 (metacat): handle entryAdded (to hzSystemMetadata) to store sysmeta to local store when it is not already present
- 10:37 AM Revision 6433 (metacat): make isScienceMetadata() method public/static to be called throughout Metacat
- 10:01 AM Revision 6432 (metacat): only create ObjectFormatId when we actually have the parameter (downstream we rely on it being null or not when constructing the query)
09/14/2011
- 05:33 PM Revision 6431 (metacat): exercise the shared hazelecast system metadata map and custom loader/store by inserting normally and also directly into the map. both mechanisms allow up to read the same system metadata (only tested on single local instance)
- 05:30 PM Revision 6430 (metacat): add code to handle new entry when it is not on the local member of the sysmeta cluster
- 04:15 PM Revision 6429 (metacat): clean up imports - randome quicktime package had been included
- 03:18 PM Revision 6428 (metacat): test hzSystemMetadata Map and custom loader
- 03:17 PM Revision 6427 (metacat): comment out processCluster connections that use hzClient until that is finalized
- 03:16 PM Revision 6426 (metacat): use HashMap, HashSet instead of the Tree* classes that require Identifier objects implement Comparable
- 02:41 PM Revision 6425 (metacat): copied default hazelcast configuration from the jar into hazelcast.test.properties.xml, to get instances to talk to each other.
- 01:52 PM Revision 6424 (metacat): configuring hazelcast tests
- 12:07 PM Revision 6423 (metacat): do not add obsoletes and obsoletedBy elements if their values are null (jibx chokes on the emptiness)
- 11:30 AM Revision 6422 (metacat): use both guid and docid when creating access row - then either mechanism can be used when retrieving the access rules
- 11:30 AM Revision 6421 (metacat): check for null session before looking at subject
- 10:02 AM Revision 6420 (metacat): further refactoring and start of unit tests for hazelcast elements
09/13/2011
- 04:13 PM Revision 6419 (metacat): use pending replication task queue to check if node is authorized for replication. moved from old ReplicationService code
- 03:44 PM Revision 6418 (metacat): save system metadata and/or science metadata and/or ORE objects to the local CN if needed.
- 03:29 PM Revision 6417 (metacat): small code cleanup - removed unused instantiations of DBUtils.
- 02:47 PM Revision 6416 (metacat): fixed logic wrt localID and docid. Implemented new method in IdentifierManager to getAllGUIDs from identifier table for implementation of loadAllKeys in ObjectPathMapLoader.
- 11:38 AM Revision 6415 (metacat): further development of ObjectPathMapLoader.
09/12/2011
- 02:48 PM Revision 6414 (metacat): new class for refreshing the hazelcast map with metacat. Initial commit.
- 09:34 AM Revision 6413 (metacat): return the test Identifier so other tests can piggyback
- 09:32 AM Revision 6412 (metacat): check session != null before checking authorization
09/11/2011
- 06:41 PM Revision 6411 (metacat): Add stub methods in CNodeService that implement the Hazelcast EntryListener interface: entryAdded(), entryRemoved(), entryUpdated(), and entryEvicted(). Add a listener to the hzSystemMetadata map so the CNodeService can respond to those events and create appropriate CNReplicationTask objects for distributed execution across the CN cluster. Again, stubs only so far.
- 06:27 PM Revision 6410 (metacat): Minor cleanup - tabs to spaces.
- 06:26 PM Revision 6409 (metacat): Enable CNodeService to access 1) the hzNodes map defined in the DataONE process cluster by becoming a Hazelcast client (hzClient) to that cluster and 2) the hzSystemMetadata map defined in the DataONE storage cluster by becoming a member to that cluster (using direct Hazelcast calls). Added fields for maintaining the DataONE cluster properties.
- 06:16 PM Revision 6408 (metacat): Add properties for strings used to connect to the DataONE storage and process Hazelcast clusters. The storage cluster is defined in the hazelcast.xml config file, and we list the names of the systemMetadataMap and the tasksIdNamespace in order to connect to these structures. When creating CNReplicationTask objects, use the task id generator to get a unique task id.
- 06:12 PM Revision 6407 (metacat): Add in the Hazelcast Id generation namespace and an IdGenerator instance for task ids. Hazelcast will produce cluster-wide unique ids for the "task-ids" namespace, to be used when creating CNreplicationTask objects.
- 05:29 PM Revision 6406 (metacat): Add the hazelcast client jar so Metacat can connect to the DataONE storage cluster that initializes the hzNodes shared node map and other structures as needed.
- 03:28 PM Revision 6405 (metacat): Add a CNReplicationTask class that will be submitted to the CN storage cluster when there are changes to the object store involving system metadata, science metadata, and resource maps. When a new entry is added to the hzSystemMetadata map, a new data, science metadata, or resource map was added to the VO, and all CN cluster members need to be updated with the object and it's system metadata. This task is executed on each CN to replicate the information. If the event is an update to an existing system metadata entry, it may only involve a change to system metadata, or may involve a change to science metadata as well. The task will return with the PID of the object replicated, be it a sysmeta, scimeta, or resource object. Locking of the PID will be handled by the task.
- 12:24 PM Revision 6404 (metacat): Update test for getReplicationStatus to reflect API change.
- 12:22 PM Revision 6403 (metacat): Newest version of the D1 0.6.4 common jar.
- 12:20 PM Revision 6402 (metacat): Catch D1nodeService up to the DataONE 0.6.4 schema where there is no ObjectFormat.isScienceMetadata() method, but rather ObjectFormat.getFormatType() where type is currently one of 'DATA, 'METADATA', or 'RESOURCE'.
- 12:12 PM Revision 6401 (metacat): Modify HazelcastService to read configuration information from an on-disk file (not from a jar file). Added init() to start up the service (was calling doRefresh() before. We still need to decide if this is a refreshable service.
- 12:10 PM Revision 6400 (metacat): Add the dataone.hazelcast.configFilePath property to be used when MetacatServlet becomes a Hazelcast cluster member using HazelcastService. TODO: what are the consequences of restarting the service via doRefresh()? It's set to false for now.
09/08/2011
- 02:23 PM Revision 6399 (metacat): move HazelcastService to D1 package
- 07:27 AM Revision 6398 (metacat): Adding a HazelcastService for Metacat to enable Metacat as a Hazelcast cluster member in DataONE. This will require the hazelcast.xml configuration file used for the DataONE cluster to be on the Metacat classpath.
09/07/2011
- 05:16 PM Revision 6397 (metacat): changes for schema update (d1_common)
- 02:22 PM Revision 6396 (metacat): do not parse from last slash ("/") to the end when processing the request uri - otherwise things like format ids (text/csv) will be handled incorrectly.
- https://redmine.dataone.org/issues/1773
09/06/2011
- 02:33 PM Revision 6395 (metacat): added HazelCast MapStore and MapLoader implementation for SystemMetadata
- 11:55 AM Revision 6394 (metacat): use InvalidRequest when the PID is not found. https://redmine.dataone.org/issues/1768
09/02/2011
- 02:21 PM Revision 6393 (metacat): remove unused dataone properties
- 02:13 PM Revision 6392 (metacat): use 0.6.4 for node capabilities
- 01:57 PM Revision 6391 (metacat): use Permission.REPLICATE not EXECUTE
- 01:41 PM Revision 6390 (metacat): check with the CN if replication is allowed for the object in question for getReplica()
- 12:45 PM Revision 6389 (metacat): add getReplica() implementation. same as get() but with different logging. seems silly, but maybe I missed something important that distinguishes this method.
08/31/2011
- 03:20 PM Revision 6388 (metacat): Rolling back inadvertent commit on test.properties. Doh.
- 03:18 PM Revision 6387 (metacat): Incomplete - task : Getting started with your first Spring web application development project
- 02:39 PM Revision 6386 (metacat): Update MetacatPopulator to use the DataONE 0.6.4 schema and types.
- 02:37 PM Revision 6385 (metacat): Update tests to use the DataONE 0.6.4 schema and types.
- 02:36 PM Revision 6384 (metacat): 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.
- 02:33 PM Revision 6383 (metacat): Update DataONE jar files to 0.6.4. Updated classes to follow.
Also available in: Atom