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
cleaning up the handlers -- removing superclass methods.
refactor to use D1RestServlet and D1ResourceHandler for the D1 rest interface
deprecate the old rest servlet in favor of the new D1-specific (CN/MN) versions
MN rest servlet, handler and mappings
share getSystemMetadata (before refactoring the superclass)
share getSystemMetadata (before refactoring this superclass)
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
share the deserializer method with subclasses
add shared operations for authorization
share tempDir method with subclasses
make RestServlet and ResourceHandler extendible for D1 CN and MN handlers
use session member variable now that we actually have it
remove CrudService calls in favor of MNodeService
CNCoreImpl is replaced by CNodeService
include latest D1 common/lib changes
Added support in ResourceHandler for the /formats collection. Added listFormats() and getFormat() method, both of which call CNCoreImpl methods to handle the call.
When calling SystemMetadata.getObjectFormat(), return the string value of the ObjectFormatIdentifier rather than ObjectFormat.toString() (which no longer returns the fmtid string).
organize imports so that it is clearer what dependencies exist on the D1 jars
Merged in the D1_0_6_2_BRANCH changes that include the transition from ObjectFormat calls to ObjectFormatCache calls.
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
do not use XML files for storing SystemMetadata - use DB tables only.
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.
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....
committing changes related to the new restservice update specification (newPid vs. obsoletedGuid)
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.
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.'
Removed hardcoded D1 node type in ResourceHandler and added in a new 'dataone.nodeType' property. Also added 'dataone.coordinatingNodeBaseURL' property which points to the CN that stores the authoritative object format list. If this instance of Metacat is a CN, it may point to itself.
ResourceHandler in Metacat was set to return the KNB site URL as the MN base URL rather than the node Id. Fixed. https://redmine.dataone.org/issues/1390
added file extension for txt or csv files
fixed node response bug
fixed update problem
put the pid in the info section of the url
fixed content type problem where csv files were set as text/xml
removed debug statements
remove httpclient 3.1 and custom-built httpclient.jarrework MetacatClient (and other classes) to use httpclient 4updated build to not create httpclient.jarencoding tests now pass.
some new code for debugging mmp
added more code for new mmp requests
bug fixes
refactor checksum and some other stuff
trying to get the new MMP handler working with ResourceHandler
updating commons-fileupload to 1.2.2
replicate works on metacat now. just waiting for roberts changes to the mmp clients
new mmp code
refactored MMP handling
implementing replicate
updated replicate to only use GET requests. added notes for tomorrows standup
fixed bug with http/https port
adding additional debugging info
undoing last commit
added additional debugging info
adding war version replacement token
fix for member variables but in the request wrapper
adding war version to node response
implemented health api
implemented ping
added url decoding to the filter
use detected document encoding or Metacat's default encoding (UTF-8)
fixed a bug with trailing slashes
fix for paths with semi-colons or other 'reserved' characters in them for D1 rest services
fixed bug where permission would get set to -1 for no good reason
added response type
added the root registry node response
changed d1 url to knb/d1/....
return the identifier object instead of nothing
made delete serialize the identifier
got getChecksum working. working on delete now. all tests in d1clienttest now pass
changes for new d1 schemas
changed date format a bit to get the parser to like it
implemented describeObject
adding getChecksum method
remove temp files after multipart read
got the streaming mime multipart working
still working on mmp stream parsing
working on integrating streaming mmp into resourceHandler
more work on streaming mmp support
getting closer to a non-memory bound solution for mime multipart de/encoding
changes for dataone .5 schema updates
fixing redmine task 738
fixing trac bug 828
added explicit 200 codes to ResourceHandler
added better logging and http code setting
fixed bug where the query cache was not getting reset by a REST insert/query combo.
added a todo
new todos from code review with roger
fixed mime multipart problems so that roger can try to use the d1client
fixed error where insert/update errors were not getting caught as exceptions
set the content type to text/xml for the rest interface
Set content type on listObjects to be XML so that it is recognized by clients.Reformatted method to use original file conventions.
Reformatted code to fix indenting.
fixing another null auth token bug
hudson tests are now running. needed date conversions. still more work to do with systemmetadata date format.
updated for date format that supports time zones correctly.
added some new error handling to work around this issue https://trac.dataone.org/ticket/706
fixed bug in access control where the sessionid was not correctly passed along so changes of privileges were not being made
fixed bug where null session data was not treated properly.
fixed some bugs in time handling for listObjects and getLogRecords
added new exception handling to serialize number format exceptions for rest calls
fixed listObject bugs, added params to the listObjects rest interface, consolidated the date format passed in params
fixed query for listObjects so that paging works as advertised.