Activity
From 06/18/2011 to 07/17/2011
07/15/2011
- 07:11 AM Revision 6353 (metacat): In D1NodeService.getLogRecords(), don't pass in null start and count params - set them to the defaults (0 and 1000).
- 06:52 AM Revision 6352 (metacat): MNResourceHandler.getObject() was making a call to ObjectFormat.getFmtid() when an object format was null. Check that it is not null before trying getFmtid().
07/14/2011
- 09:25 PM Revision 6351 (metacat): In MNodeService.getCapabilities(), update the properties to match those in metacat.properties. Flesh out the NodeHealth object, adding NodeState, Ping, and Status information. Flesh out the Synchronization object information, but for now, use mock values. TODO: This should be determined from configuration and on-the-fly information.
- 08:04 PM Revision 6350 (metacat): Use CamelCaps for properties for better readability.
- 04:27 PM Revision 6349 (metacat): include Mock version of looking up the base url for our own node - for testReplicate().
- still expecting a failure during MN.replicate() since we are trying to add the replica to the same MN from which it c...
- 03:12 PM Revision 6348 (metacat): allow alternative CNode implementations (subclasses) to be returned when D1Client.getCN() is called. The alternative is given in the Settings configuration via the D1Client.cnClassName property.
- MockCNode in Metacat is an example of such an alternative and is used when Metacat requires methods of a CN be presen...
- 02:25 PM Revision 6347 (metacat): In MNodeService.getCapabilities(), set the synchronization and replication properties of the node.
- 02:22 PM Revision 6346 (metacat): Added node synchronization and replication properties.
- 02:06 PM Revision 6345 (metacat): In MNodeService.getCapabilities(), set the serviceAvailable for each service supported.
- 02:01 PM Revision 6344 (metacat): Added service availability properties for each of the MN services.
- 01:20 PM Revision 6343 (metacat): In MNodeService.getCapabilities(), set the serviceVersion for each service supported.
- 01:01 PM Revision 6342 (metacat): Added service version properties for each of the MN services.
- 09:15 AM Revision 6341 (metacat): check reservation before create/update
- 01:52 AM Revision 6340 (metacat): Use D1 properties to set node values, and add the 'WAR VERSION' back into the node name for deployments.
07/13/2011
- 03:09 PM Revision 6339 (metacat): add hasReservation() method (NotImplemented, however)
- 09:02 AM Revision 6338 (metacat): Test that the obsoletes and derivedFrom system metadata fields were set correctly.
07/12/2011
- 03:02 PM Revision 6337 (metacat): use objectFormatIdentifier for listObjects()
- remove provisional system metadata indicator - Metacat will not implement reserveIdentifier()
07/11/2011
- 04:30 PM Revision 6336 (metacat): newer jars with better certificate exception handling as well as additional libclient implementations
- 12:19 PM Revision 6335 (metacat): use correct log name for the class
- 11:46 AM Revision 6334 (metacat): consistently construct username/groups for MetacatHandler calls - also consistently call isAuthorized
07/10/2011
07/08/2011
- 04:48 PM Revision 6332 (metacat): provisional replicate() implementation -- does not check if the session's subject is "allowed" to do this.
- the test also requires 2 servers -- right now it attempts to replicate with itself which will fail because of duplica...
- 04:05 PM Revision 6331 (metacat): provisional version of getOperationStatistics() -- not clear if we are meant to aggregate by hour or by day
- 03:06 PM Revision 6330 (metacat): provisional getCapabilities() implementation. Much of the synchronization information and node health is omitted.
- 02:53 PM Revision 6329 (metacat): include test for replicate() method -- still fails as not implemented
- 02:52 PM Revision 6328 (metacat): allow null objects (use default checksum)
- 02:46 PM Revision 6327 (metacat): wire-up the getCapabilities() and getOperationStatistics() methods for when they are actually implemented (tests fail now)
- 02:30 PM Revision 6326 (metacat): test listObjects()
- 02:23 PM Revision 6325 (metacat): include MNAuthorization tests
- 02:08 PM Revision 6324 (metacat): refactor to use common superclass D1NodeServiceTest for shared methods
- 02:08 PM Revision 6323 (metacat): simplify the get() method -- no need to use temp files for this operation
07/07/2011
- 03:16 PM Revision 6322 (metacat): test for getLogRecords -- with some semi-reasonable expectations on the return that is expected
- 03:14 PM Revision 6321 (metacat): implement d1 paging for the log record results
- 01:56 PM Revision 6320 (metacat): tests for isAuthorized and setAccessPolicy
- 01:36 PM Revision 6319 (metacat): include getLogRecords() test, though it is commented out at the moment
- 01:28 PM Revision 6318 (metacat): Reverting the resultset order in querySystemMetadata(). Thanks Ben.
- 01:17 PM Revision 6317 (metacat): test for CN.getSystemMetadata()
- 01:11 PM Revision 6316 (metacat): 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.
- 01:09 PM Revision 6315 (metacat): test CN.get()
- 01:02 PM Revision 6314 (metacat): Uncommented MNStorage tests.
- 12:51 PM Revision 6313 (metacat): save systemmetadata when create() is called
- 12:31 PM Revision 6312 (metacat): Send the correct Date format in testGetLogRecords(). I've commented out certain tests in the suite until isAuthorized() functionality is working. It is returning a NotFound exception even though the object is clearly in Metacat.
- 12:18 PM Revision 6311 (metacat): allow very minimal system metadata for provisional entries (CN.reserveIdentifier)
- 11:05 AM Revision 6310 (metacat): Fix a NullPointerException issue when the SubjectList in a Session is null.
- 09:46 AM Revision 6309 (metacat): Add MNodeServiceTest tests for MNCore, MNRead, MNStorage, MNAuthorization implementations. MNReplication remains to be tested, as does MNCore.getCapabilities() and getOperationStatistics().
- 05:45 AM Revision 6308 (metacat): Add the missing URL delimiter when building the D1 base service URL.
07/06/2011
- 04:30 PM Revision 6307 (metacat): add the d1_common formats if they do not exist on the server
- 04:29 PM Revision 6306 (metacat): allow the test to read the OFL docid
- 04:29 PM Revision 6305 (metacat): check for null docid from access table -- using guid for many system meta rows
- 03:40 PM Revision 6304 (metacat): 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...
- 01:35 PM Revision 6303 (metacat): remove resolve() test -- not implemented in Metacat
- 12:09 PM Revision 6302 (metacat): handle data objects (not sci meta) and also set the resulting pid so that create() can succeed
- 11:53 AM Revision 6301 (metacat): newer d1_common jar with updated MNCore interface
- 11:52 AM Revision 6300 (metacat): catch exceptions from system meta data query and throw service failure rather than swallowing them with an error msg
- 11:52 AM Revision 6299 (metacat): handle null values from DB better when querying system metadata
- 08:13 AM Revision 6298 (metacat): Update getOperationStatistics() to reflect the change in the signature, using ObjectFormatIdentifier instead of ObjectFormat.
- 08:11 AM Revision 6297 (metacat): Modify monitor() to accept new parameters for getOperationStatisics() (fromDate, toDate) instead of 'period'. Added getDateAsUTC() to parse incoming fromDate and toDate parameter strings.
- 07:59 AM Revision 6296 (metacat): 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.
07/05/2011
- 04:20 PM Revision 6295 (metacat): add methods for testing CNodeService impl. Still some failing tests, but whittling them down
- 04:19 PM Revision 6294 (metacat): use super class' create() method
- use string comparison for assertRelation method
- 04:18 PM Revision 6293 (metacat): beef up isAuthorized method to check for "public" access rules and also for the rights holder
- 04:18 PM Revision 6292 (metacat): do not delete if the sysmeta doesn't exist
- 04:17 PM Revision 6291 (metacat): add "public" user subject
- 04:07 PM Revision 6290 (metacat): make the left panle look exactly the same as the left panel of index.jsp.
- 12:33 PM Revision 6288 (metacat): 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.
- 11:54 AM Revision 6287 (metacat): refactor to test the entire CN service impl
- 10:49 AM Revision 6286 (metacat): return all public objects for the search() method [for now]
- 07:51 AM Revision 6285 (metacat): Changed 'guid' to 'pid' to be in line with the D1 API.
07/01/2011
- 05:23 PM Revision 6284 (metacat): simplify the MN rest servlet mapping to match CN mappings - also streamlined the handler code to share extra path info parsing
- 05:21 PM Revision 6283 (metacat): add space to error message
- 05:03 PM Revision 6282 (metacat): 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
- 05:01 PM Revision 6281 (metacat): add the old ecogrid query code (still commented out) from the old Rest handler
- 03:32 PM Revision 6280 (metacat): allow service implementation method to throw exception when guid parameter is null
- 12:47 PM Revision 6279 (metacat): allow parameters to be omitted in reserveIdentifier handling
- 12:37 PM Revision 6278 (metacat): 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)
- 12:35 PM Revision 6277 (metacat): allow for provisional SystemMetadata records (provisional=true)
- 11:10 AM Revision 6276 (metacat): remove extraneous update() call when create() does the call for us
06/30/2011
- 05:24 PM Revision 6275 (metacat): remove old RestServlet url-mappings
- 05:24 PM Revision 6274 (metacat): use monitor() return value when processing response
- 05:04 PM Revision 6273 (metacat): throw exceptions up the call stack and handle exception reporting/serialization centrally in the handle() method
- 04:44 PM Revision 6272 (metacat): use logging, not system.out
- 04:40 PM Revision 6271 (metacat): consolidate session management and parameter preparation in the superclass
- 04:31 PM Revision 6270 (metacat): throw exceptions up the call stack rather than catching and handling them differently for each possible rest path
- 03:54 PM Revision 6269 (metacat): 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
- 03:05 PM Revision 6268 (metacat): cleaning up the handlers -- removing superclass methods.
- 02:37 PM Revision 6267 (metacat): refactor to use D1RestServlet and D1ResourceHandler for the D1 rest interface
- 02:34 PM Revision 6266 (metacat): remove old RestServlet and it's mappings -- only using D1Servlet subclasses now
- 02:30 PM Revision 6265 (metacat): deprecate the old rest servlet in favor of the new D1-specific (CN/MN) versions
- 02:08 PM Revision 6264 (metacat): MN rest servlet, handler and mappings
- 02:07 PM Revision 6263 (metacat): share getSystemMetadata (before refactoring the superclass)
- 02:07 PM Revision 6262 (metacat): share getSystemMetadata (before refactoring this superclass)
- 06:39 AM Revision 6261 (metacat): Add placeholder NotImplemented exceptions for getOperationsStatistics() and getCapabilities() in MNodeService.
- 06:13 AM Revision 6260 (metacat): Implement MNCore.ping() by testing for a successful database connection.
06/29/2011
- 11:16 PM Revision 6259 (metacat): Minor housekeeping - tabs to spaces.
- 11:15 PM Revision 6258 (metacat): 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.
- 09:41 PM Revision 6257 (metacat): Make isScienceMetadata() protected for access from subclasses.
- 09:36 PM Revision 6256 (metacat): Add insertSystemMetadata() to D1NodeService, wrap the exception handling from calls to IdentifierManager.
- 09:25 PM Revision 6255 (metacat): Add updateSystemMetadata() to D1NodeService as a helper method to wrap the exception handling from calls to IdentifierManager.
- 05:50 PM Revision 6254 (metacat): 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().
- 05:23 PM Revision 6253 (metacat): 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 - 05:17 PM Revision 6252 (metacat): share the deserializer method with subclasses
- 05:07 PM Revision 6251 (metacat): throw NotAllowed in MNodeService.delete() when isAuthorized() returns false.
- 04:59 PM Revision 6250 (metacat): 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.
- 04:13 PM Revision 6249 (metacat): add shared operations for authorization
- 03:08 PM Revision 6248 (metacat): share tempDir method with subclasses
- 02:55 PM Revision 6247 (metacat): make RestServlet and ResourceHandler extendible for D1 CN and MN handlers
- 02:19 PM Revision 6246 (metacat): use session member variable now that we actually have it
- 12:35 PM Revision 6245 (metacat): isAuthorized: check for nulls in Session subjects, catch any unexpected errors and deny access when in doubt
- 12:20 PM Revision 6244 (metacat): remove CrudService calls in favor of MNodeService
- 12:14 PM Revision 6243 (metacat): include commons-configuration jar -- runtime dep for d1_common
- 12:09 PM Revision 6242 (metacat): 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.
- 08:44 AM Revision 6241 (metacat): 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.
- 07:23 AM Revision 6240 (metacat): Add a dataone.serviceName property (set to 'd1') to remove hardcoded 'd1' strings in the codebase.
06/28/2011
- 04:48 PM Revision 6239 (metacat): include URL in resolve() method as well as placeholder for preference
- 04:06 PM Revision 6238 (metacat): Make "Change Access Permission" button work on sanparks scheduler web page.
- Merge the change from 1.9.5 branch to the trunk.
- 02:58 PM Revision 6236 (metacat): newer jars with updated CNRegistry even though we aren't implementing that interface
- 01:46 PM Revision 6235 (metacat): Metacat does not implement CNRegister
- 11:41 AM Revision 6234 (metacat): 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.
- 11:18 AM Revision 6233 (metacat): 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.
- 10:13 AM Revision 6232 (metacat): add missing comma in xml_replication insert
- 08:49 AM Revision 6231 (metacat): include release notes from 1.9.5 branch (includes v 1.9.3 and 1.9.4)
- 08:48 AM Revision 6230 (metacat): Implement MNRead.listObjects() in MNodeService.
- 08:42 AM Revision 6229 (metacat): Implement MNRead.describe() in MNodeService.
- 08:31 AM Revision 6228 (metacat): Implement MNRead.getChecksum() in MNodeService.
- 08:08 AM Revision 6227 (metacat): Minor formatting changes - tabs to spaces, indents, etc.
- 08:04 AM Revision 6226 (metacat): 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.
06/27/2011
- 02:39 PM Revision 6225 (metacat): -use every Subject in the session (alt Ids and Group membership)
- -consolidate to single isAuthorized method
- 02:00 PM Revision 6224 (metacat): oops!
- 01:19 PM Revision 6223 (metacat): throw exception for unimplemented methods
- 12:22 PM Revision 6222 (metacat): implement resolve() method
- 11:56 AM Revision 6221 (metacat): implement assertRelation
- 11:41 AM Revision 6220 (metacat): implement CNReplication.setReplicationStatus() but with a note about selecting which replica's status should be set (right now it is all)
- 11:29 AM Revision 6219 (metacat): implement CNReplication.setReplicationPolicy
- 11:13 AM Revision 6218 (metacat): correction: implementation is CN-specific
- 11:12 AM Revision 6217 (metacat): implement getChecksum() in the superclass
- 11:07 AM Revision 6216 (metacat): implement getChecksum (retrieves from system metadata)
- 10:59 AM Revision 6215 (metacat): use shared get() method from superclass
- 10:55 AM Revision 6214 (metacat): use shared getLogRecords method
- 10:28 AM Revision 6213 (metacat): Remove isAuthorized(), setAccessPolicy(), and getLogRecords() methods since they're implemented in the superclass.
- 10:15 AM Revision 6212 (metacat): use Permission, not Event for isAuthorized() methods
06/24/2011
- 09:33 PM Revision 6211 (metacat): do not use pisco for referral testing (merge from 1.9.5)
- 09:32 PM Revision 6210 (metacat): include different (non pisco) referral account (merge from 1.9.5 branch)
- include upgrade sql scripts
- 09:31 PM Revision 6209 (metacat): merge changes from 1.9.5 branch for upgrade process (1.9.3->1.9.4->1.9.5)
- 09:06 PM Revision 6208 (metacat): merge 1.9.5 changes to trunk (delete now preserves access rules and docs can be read after deletion)
06/23/2011
- 05:16 PM Revision 6197 (metacat): do not delete the access rules when we "archive" the document on "delete" (commented out for now)
- 05:10 PM Revision 6196 (metacat): allow reading from xml_revision table when we are the doc owner
- 04:10 PM Revision 6195 (metacat): CNCoreImpl is replaced by CNodeService
- 03:58 PM Revision 6194 (metacat): implement CNAuthorization
- 02:26 PM Revision 6189 (metacat): Metacat does not implement CNIdentity - it is a stand-alone service
- 02:20 PM Revision 6188 (metacat): implement registerSystemMetadata
- 02:19 PM Revision 6187 (metacat): implement object format methods - using a separate class to do the actual metacat lookup/caching so that teh CN implementation looks cleaner
- 02:17 PM Revision 6186 (metacat): implement getLogRecords
- 01:54 PM Revision 6185 (metacat): include latest D1 common/lib changes
06/22/2011
- 05:21 PM Revision 6184 (metacat): On the fullclean target, add code to delete the entired checked-out utilities directory.
- 05:01 PM Revision 6182 (metacat): add commons-io-2.0.jar dependency to Metacat Client API section
- 11:03 AM Revision 6179 (metacat): 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.
- 08:13 AM Revision 6178 (metacat): Add a static getInstance() method to CNodeService and make CNodeService a singleton.
- 08:06 AM Revision 6177 (metacat): 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.
- 07:50 AM Revision 6176 (metacat): CNAuthorization.isAuthorized() and MNAuthorization.isAuthorized() differ. Removed it from the base class.
- 06:12 AM Revision 6175 (metacat): getChecksum() is intentionally different on the CN vs MN, so I'm removing it as a common method.
06/21/2011
- 03:42 PM Revision 6174 (metacat): 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
get()
getSystemMet...
Also available in: Atom