Project

General

Profile

Statistics
| Revision:

# Date Author Comment
6253 06/29/2011 05:23 PM ben leinfelder

add CNRestServlet and mappings for urls in the form:
/d1/cn/*
This extends existing code for CN-specific handling. MN handling will be analogous and is forthcoming

6252 06/29/2011 05:17 PM ben leinfelder

share the deserializer method with subclasses

6251 06/29/2011 05:07 PM Chris Jones

throw NotAllowed in MNodeService.delete() when isAuthorized() returns false.

6250 06/29/2011 04:59 PM Chris Jones

Implement the MNStorage.delete() MNodeService. There is debate about what permissions are needed to 'delete' an object (archive it in metacat terms): D1 'WRITE' (metacat 'write') or D1 CHANGE_PERMISSION (metacat 'all'). For now we are using CHANGE_PERMISSION until it is ironed out.

6249 06/29/2011 04:13 PM ben leinfelder

add shared operations for authorization

6248 06/29/2011 03:08 PM ben leinfelder

share tempDir method with subclasses

6247 06/29/2011 02:55 PM ben leinfelder

make RestServlet and ResourceHandler extendible for D1 CN and MN handlers

6246 06/29/2011 02:19 PM ben leinfelder

use session member variable now that we actually have it

6245 06/29/2011 12:35 PM ben leinfelder

isAuthorized: check for nulls in Session subjects, catch any unexpected errors and deny access when in doubt

6244 06/29/2011 12:20 PM ben leinfelder

remove CrudService calls in favor of MNodeService

6242 06/29/2011 12:09 PM Chris Jones

Remove setParamsFromRequest() from D1NodeService. This was called (previously as CrudService) from ResourceHandler, but will be deprecated in favor of manually creating a param map for each method that needs to pass params on to MetacatHandler.

6241 06/29/2011 08:44 AM Chris Jones

Implement [MN|CN]Storage.create() in D1NodeService. Since MetacatHandler requires an IP for event logging, we pass in the metacat URL (hold over from CrudService). To do this in the abstract D1NodeService, change the constructors to take metacatUrl as a parameter and get the URL from the metacat properties file in getInstance() of the subclasses. Needs testing.

6239 06/28/2011 04:48 PM ben leinfelder

include URL in resolve() method as well as placeholder for preference

6235 06/28/2011 01:46 PM ben leinfelder

Metacat does not implement CNRegister

6234 06/28/2011 11:41 AM Chris Jones

Implement CNRead.synchronizationFailed() in MNodeService. Note: The CN URL is not yet available in the SynchronizationFailed exception, but will be once the d1_common_java exception is updated. See https://redmine.dataone.org/issues/1656. Once updated, change this method to explicitly state the CN URL making the call.

6233 06/28/2011 11:18 AM Chris Jones

Change Metacathandler.read() to be public since it's internal to Metacat, and use read() in D1NodeService after isAuthorized() for the calling Subject from the Session object.

6230 06/28/2011 08:48 AM Chris Jones

Implement MNRead.listObjects() in MNodeService.

6229 06/28/2011 08:42 AM Chris Jones

Implement MNRead.describe() in MNodeService.

6228 06/28/2011 08:31 AM Chris Jones

Implement MNRead.getChecksum() in MNodeService.

6227 06/28/2011 08:08 AM Chris Jones

Minor formatting changes - tabs to spaces, indents, etc.

6226 06/28/2011 08:04 AM Chris Jones

Implement [MN|CN]Read.get() in D1NodeService. Added setParamsFromRequest() to pass through parameters from the request object. Since the D1 Authorization API doesn't specify which authentication system a subject belongs to, we don't know if the subject listed is a KNB LDAP DN. isAuthorized() may return true for a mapped identity, but we don't know the DN of the KNB identity per se. This needs to be tested.

6225 06/27/2011 02:39 PM ben leinfelder

-use every Subject in the session (alt Ids and Group membership)
-consolidate to single isAuthorized method

6223 06/27/2011 01:19 PM ben leinfelder

throw exception for unimplemented methods

6222 06/27/2011 12:22 PM ben leinfelder

implement resolve() method

6221 06/27/2011 11:56 AM ben leinfelder

implement assertRelation

6220 06/27/2011 11:41 AM ben leinfelder

implement CNReplication.setReplicationStatus() but with a note about selecting which replica's status should be set (right now it is all)

6219 06/27/2011 11:29 AM ben leinfelder

implement CNReplication.setReplicationPolicy

6218 06/27/2011 11:13 AM ben leinfelder

correction: implementation is CN-specific

6217 06/27/2011 11:12 AM ben leinfelder

implement getChecksum() in the superclass

6216 06/27/2011 11:07 AM ben leinfelder

implement getChecksum (retrieves from system metadata)

6215 06/27/2011 10:59 AM ben leinfelder

use shared get() method from superclass

6214 06/27/2011 10:55 AM ben leinfelder

use shared getLogRecords method

6213 06/27/2011 10:28 AM Chris Jones

Remove isAuthorized(), setAccessPolicy(), and getLogRecords() methods since they're implemented in the superclass.

6212 06/27/2011 10:15 AM ben leinfelder

use Permission, not Event for isAuthorized() methods

6197 06/23/2011 05:16 PM ben leinfelder

do not delete the access rules when we "archive" the document on "delete" (commented out for now)

6196 06/23/2011 05:10 PM ben leinfelder

allow reading from xml_revision table when we are the doc owner

6195 06/23/2011 04:10 PM ben leinfelder

CNCoreImpl is replaced by CNodeService

6194 06/23/2011 03:58 PM ben leinfelder

implement CNAuthorization

6189 06/23/2011 02:26 PM ben leinfelder

Metacat does not implement CNIdentity - it is a stand-alone service

6188 06/23/2011 02:20 PM ben leinfelder

implement registerSystemMetadata

6187 06/23/2011 02:19 PM ben leinfelder

implement object format methods - using a separate class to do the actual metacat lookup/caching so that teh CN implementation looks cleaner

6186 06/23/2011 02:17 PM ben leinfelder

implement getLogRecords

6185 06/23/2011 01:54 PM ben leinfelder

include latest D1 common/lib changes

6179 06/22/2011 11:03 AM Chris Jones

Initial check in of the MNodeService stub methods that implement the D1 MN* interfaces. CrudService methods will be transitioned into this class. The methods follow the D1 0.6.2 API thus far.

Also changed CNodeService to reflect minor changes to the D1NodeService class.

6178 06/22/2011 08:13 AM Chris Jones

Add a static getInstance() method to CNodeService and make CNodeService a singleton.

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

Initial check in of the CNodeService stub methods that implement the D1 CN* interfaces. CNCoreImpl methods will be transitioned into this class. The methods follow the D1 0.6.2 API thus far.

6176 06/22/2011 07:50 AM Chris Jones

CNAuthorization.isAuthorized() and MNAuthorization.isAuthorized() differ. Removed it from the base class.

6175 06/22/2011 06:12 AM Chris Jones

getChecksum() is intentionally different on the CN vs MN, so I'm removing it as a common method.

6174 06/21/2011 03:42 PM Chris Jones

Initial check in of the D1NodeService class that provides methods common to both CNodeService and MNodeService implementation classes. The common API methods are:

Methods common to CNCore and MNCore APIs
getLogRecords()

Methods common to CNRead and MNRead APIs...

6152 06/17/2011 09:41 AM ben leinfelder

placeholder for setting up certificate manager

6151 06/17/2011 09:17 AM ben leinfelder

remove AuthToken (use session). Remove login() call. Use AccessPolicu object to set public read permission

6149 06/16/2011 10:33 AM ben leinfelder

take getLogRecords impl form CrudService and use in CNCoreImpl

6146 06/15/2011 10:44 PM ben leinfelder

escape quotes when processing returnfield with predicates. example:
<returnfield>dataset/dataTable/physical/distribution/online/url[@function='download']</returnfield>

6144 06/15/2011 09:03 AM Chris Jones

Updated MetacatPopulator to now use ObjectFormatCache.getInstance(). Note: problems remain with the authentication API changes - calls to mn.login(), etc. need to be addressed.

6142 06/15/2011 08:56 AM Chris Jones

Removed ObjectFormatService in favor of CNCoreImpl

6140 06/15/2011 08:50 AM Chris Jones

Added support in ResourceHandler for the /formats collection. Added listFormats() and getFormat() method, both of which call CNCoreImpl methods to handle the call.

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.

6135 06/08/2011 05:08 PM ben leinfelder

add option for replicating system metadata (dataone)
https://redmine.dataone.org/issues/1626

6134 06/08/2011 02:35 PM ben leinfelder

use Data Manager Library to parse EML when needed in DataONE classes.
(augmented DML to parse data format elements in EML to estimate MIME type)
https://redmine.dataone.org/issues/1634

6133 06/08/2011 06:25 AM Chris Jones

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

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).

6130 06/07/2011 02:56 PM ben leinfelder

organize imports so that it is clearer what dependencies exist on the D1 jars

6129 06/07/2011 12:08 PM ben leinfelder

include create() and reserveIdentifier() methods

6128 06/07/2011 11:14 AM ben leinfelder

include override annotation for register method

6127 06/07/2011 11:09 AM ben leinfelder

use Date not joda's DateTime

6126 06/07/2011 10:28 AM ben leinfelder

expose spatial cache regeneration option in the admin interface

6125 06/07/2011 10:27 AM ben leinfelder

force replication for newly-registered system metadata

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

6121 06/06/2011 12:08 PM ben leinfelder

implement the old interface for now (until 0.6.2)

6120 06/03/2011 12:51 PM ben leinfelder

include CNCore implementation - only registerSystemMetadata is implemented at the moment. also - updated d1 jar (0.6.2) should be used since that is where the method is defined.
would like to consider making ResourceHandler more modular - seems like it does A LOT of different things

6119 06/02/2011 04:40 PM ben leinfelder

include System Metadata forced replication - just need to figure out when to call it!

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

6105 05/26/2011 11:51 AM ben leinfelder

rework SystemMetadata creation when inserting documents via the Metacat servlet api (in which case there was no client-supplued system metadata)

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

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

6102 05/25/2011 03:53 PM ben leinfelder

transfer full System Metadata (as XML) during document and data replication

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.

6092 05/19/2011 01:52 PM Matt Jones

Modified Metacat to build against the D1_SCHEMA_0_6_1 branch of the dataone schemas by incorporating the 0.6.1-SNAPSHOT version of d1_common and d1_libclient libraries, and refactoring Metacat code references to the d1 schema changed types.

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.

6088 05/17/2011 08:02 PM Chris Jones

Changes in the DataONE ObjectFormat class deprecate the convert() method, and we're now using Metacat's ObjectFormatService to look up object format attributes. The following changes replace ObjectFormat.convert() with ObjectFormatService.getFormat() in several classes....

6079 05/05/2011 03:14 PM ben leinfelder

use update method to update the mapping between local and guid (d1) when we get a force replication request that is an "update

6068 05/05/2011 10:45 AM rnahf

generateMissingSystemMetadata was swallowing Exceptions instead of throwing. Refactored so that specific exceptions are thrown, affecting [create/update]SystemMetadata methods, too.

6067 05/05/2011 10:19 AM rnahf

committing changes related to the new restservice update specification (newPid vs. obsoletedGuid)

6064 05/05/2011 10:00 AM ben leinfelder

replace whitespace in generated docid scope (sanparks patch from 1.9.4 branch)

6059 05/04/2011 12:39 PM ben leinfelder

use outputstream as an object, not a string. relax the Map typing to allow for mixed values. (sanparks patch)

6057 05/03/2011 04:04 PM ben leinfelder

use "object_format" element consistently so that it is replicated across instances
https://redmine.dataone.org/issues/1514

6053 04/28/2011 02:31 PM ben leinfelder

remove very old "metacat webservice" code - as far as i can tell it is never referenced or used. plus we have eocgrid and the new D1 rest services covering this territory now

6051 04/28/2011 01:05 PM rnahf

zero padded date string in DocumentUtil.generateDocumentId() for readability

6050 04/26/2011 08:22 AM Chris Jones

Use SystemUtil.getContextURL() in ResourceHandler to construct the DataONE service URL (rather than direct calls to PropertyService). This handles http and https URLs, and strips the :80 or :443 for the well known ports.

6048 04/25/2011 03:25 PM Chris Jones

Minor changes to MetacatHandler:
- Improved logging where MetaCatServlet.class was used in getLogger() rather than MetacatHandler.class (holdover from the refactor)
- Minor formatting changes, and replacement of 'MetaCatServlet' with 'MetacatHandler' in the logging output as needed.

6045 04/25/2011 11:08 AM rnahf

improved multipart handling (improved logging messages, code, and error checking). Added exception classname to error output when the generic Exception is thrown. Added error check for cases of null value for file parts 'sysmeta' and 'object.'

6044 04/25/2011 10:58 AM rnahf

added a few debugging lines in createSystemMetadata() related to contents of identifier strings

6042 04/24/2011 05:42 PM Chris Jones

Modified IdentifierManager.getDocumentInfo() to include the docid in the returned hash map, since it is useful to be able to obtain the docid and rev separately from a given fullDocidWithRev (e.g. test.1.1).

6041 04/22/2011 01:44 PM rnahf

fixing annoying error message inaccuracy

6037 04/14/2011 03:07 AM Matt Jones

Changed AuthLDAP to deal with cases where getAttributes encounters non-string
attributes (which used to cause a ClassCastException). Now, if an attribute
value can not be cast to string, we catch the class cast exception and just
skip this value. This only typically occurs when an LDAP server is set to send...

6036 04/13/2011 08:03 PM Matt Jones

MOdified MetacatHandler to catch cases where ObjectFormat is not being set properly on data files when
generating SystemMetadata. When the EML document contains a format for an entity that maps to a null
type in ObjectFormat.convert(), then the type ends up being null and an error is generated on insertion...