Project

General

Profile

Statistics
| Revision:

# Date Author Comment
6305 07/06/2011 04:29 PM ben leinfelder

check for null docid from access table -- using guid for many system meta rows

6304 07/06/2011 03:40 PM ben leinfelder

use docImpl getBytes() to preserve encoding
no need to catch an exception only to throw it (those I was playing around with looking up the fmt from the d1_common lib if it was not found on the server...but this is redundant with other client code)

6303 07/06/2011 01:35 PM ben leinfelder

remove resolve() test -- not implemented in Metacat

6302 07/06/2011 12:09 PM ben leinfelder

handle data objects (not sci meta) and also set the resulting pid so that create() can succeed

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

catch exceptions from system meta data query and throw service failure rather than swallowing them with an error msg

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

handle null values from DB better when querying system metadata

6298 07/06/2011 08:13 AM Chris Jones

Update getOperationStatistics() to reflect the change in the signature, using ObjectFormatIdentifier instead of ObjectFormat.

6297 07/06/2011 08:11 AM Chris Jones

Modify monitor() to accept new parameters for getOperationStatisics() (fromDate, toDate) instead of 'period'. Added getDateAsUTC() to parse incoming fromDate and toDate parameter strings.

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.

6294 07/05/2011 04:19 PM ben leinfelder

use super class' create() method
use string comparison for assertRelation method

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

beef up isAuthorized method to check for "public" access rules and also for the rights holder

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

do not delete if the sysmeta doesn't exist

6288 07/05/2011 12:33 PM Chris Jones

Use 'synchronization_failed' for the event string in synchronizationFailed(), and add a TODO to use the event enum when the 0.6.3 types are updated.

6286 07/05/2011 10:49 AM ben leinfelder

return all public objects for the search() method [for now]

6285 07/05/2011 07:51 AM Chris Jones

Changed 'guid' to 'pid' to be in line with the D1 API.

6284 07/01/2011 05:23 PM ben leinfelder

simplify the MN rest servlet mapping to match CN mappings - also streamlined the handler code to share extra path info parsing

6283 07/01/2011 05:21 PM ben leinfelder

add space to error message

6282 07/01/2011 05:03 PM ben leinfelder

route all /d1/cn/* traffic through the CNRestServlet/Handler -- inspect the pathInfo when deciding what action to take and also strip off any extra parts (like pid).
include query() method pass-through to CNodeService

6281 07/01/2011 05:01 PM ben leinfelder

add the old ecogrid query code (still commented out) from the old Rest handler

6280 07/01/2011 03:32 PM ben leinfelder

allow service implementation method to throw exception when guid parameter is null

6279 07/01/2011 12:47 PM ben leinfelder

allow parameters to be omitted in reserveIdentifier handling

6278 07/01/2011 12:37 PM ben leinfelder

implement reserveIdentifier() and check whether the id is reserved when creating records (only allow the create when the Subject creating matches the Subject who reserved it -- currently stored in rightsHolder)

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

allow for provisional SystemMetadata records (provisional=true)

6276 07/01/2011 11:10 AM ben leinfelder

remove extraneous update() call when create() does the call for us

6274 06/30/2011 05:24 PM ben leinfelder

use monitor() return value when processing response

6273 06/30/2011 05:04 PM ben leinfelder

throw exceptions up the call stack and handle exception reporting/serialization centrally in the handle() method

6272 06/30/2011 04:44 PM ben leinfelder

use logging, not system.out

6271 06/30/2011 04:40 PM ben leinfelder

consolidate session management and parameter preparation in the superclass

6270 06/30/2011 04:31 PM ben leinfelder

throw exceptions up the call stack rather than catching and handling them differently for each possible rest path

6269 06/30/2011 03:54 PM ben leinfelder

consolidate multi part handling in the super class - subclasses need only call the appropriate helper to get access to the needed resources. superclass does some validation to make sure the files are in place in the request

6268 06/30/2011 03:05 PM ben leinfelder

cleaning up the handlers -- removing superclass methods.

6267 06/30/2011 02:37 PM ben leinfelder

refactor to use D1RestServlet and D1ResourceHandler for the D1 rest interface

6265 06/30/2011 02:30 PM ben leinfelder

deprecate the old rest servlet in favor of the new D1-specific (CN/MN) versions

6264 06/30/2011 02:08 PM ben leinfelder

MN rest servlet, handler and mappings

6263 06/30/2011 02:07 PM ben leinfelder

share getSystemMetadata (before refactoring the superclass)

6262 06/30/2011 02:07 PM ben leinfelder

share getSystemMetadata (before refactoring this superclass)

6261 06/30/2011 06:39 AM Chris Jones

Add placeholder NotImplemented exceptions for getOperationsStatistics() and getCapabilities() in MNodeService.

6260 06/30/2011 06:13 AM Chris Jones

Implement MNCore.ping() by testing for a successful database connection.

6259 06/29/2011 11:16 PM Chris Jones

Minor housekeeping - tabs to spaces.

6258 06/29/2011 11:15 PM Chris Jones

Implement update() in MNodeService. Handle both XML science metadata updates and data object updates. Keep system metadata up to date, and log the update event.

6257 06/29/2011 09:41 PM Chris Jones

Make isScienceMetadata() protected for access from subclasses.

6256 06/29/2011 09:36 PM Chris Jones

Add insertSystemMetadata() to D1NodeService, wrap the exception handling from calls to IdentifierManager.

6255 06/29/2011 09:25 PM Chris Jones

Add updateSystemMetadata() to D1NodeService as a helper method to wrap the exception handling from calls to IdentifierManager.

6254 06/29/2011 05:50 PM Chris Jones

At Ben's suggestion, add metacatUrl to D1NodeService and make it available to subclasses. Set the metacatUrl in the constructor using SystemUtil rather than all roll your own PropertyService calls. More concise. Also, log the delete event in MNodeService.delete().

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.

6232 06/28/2011 10:13 AM ben leinfelder

add missing comma in xml_replication insert

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

6209 06/24/2011 09:31 PM ben leinfelder

merge changes from 1.9.5 branch for upgrade process (1.9.3->1.9.4->1.9.5)

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.