*0.0.2 (March 27th, 2009)* * Support for the option for subscribing service automatically to the BLACKBOARD/LAST_REQUEST element, in order to receive messages for the orchestration protocol *0.0.3 (Mai 19th, 2009)* * Global common configuration of properties adopted * No more support for Perl services *0.0.4 (June 4th, 2009)* *no proper service end point reference fixed *contex and epr properties modified *0.0.5 (June 27th, 2009)* *using CNR DateUtils library for handling DS profile dates *0.0.6 (June 28th, 2009)* *Consideration of open/close state of resultset by storing records *Blackboard profile and other profiles utilities moved in to the unibi-commons *0.0.7 (September 25th, 2009)* * bug #787 - not correct order override properties * xml XPathParser moved to unibi-commons * blackboard support moved to the icm-commons * API changed: input parameter 'rsEPR' of method storeMDRecordsFromRS changed from String to W3CEndpointReference *0.0.8 (October 8th, 2009)* * API changed, method deliverMDRecords: - parameter 'mdformat' removed - new parameter 'sortByIdentifer' for sorting results by objectIdentifier introduced *0.1.0 (November 30th, 2009)* * bug #901 for DELETE notification fixed: checking mdstoreID parameter for empty strings, missing BB Failure notifications added. * bug in generating record paths, code cleaned * the algorithm for creating mdstore directories tree has been changed; the mdstores of different formats are not any more stored in different directories; the mdstore format can be identified in the file system through the empty file "format-" stored inside the mdstore directory; the mdstore directory path is build now in the following manner: (1) basicMDStoreDirectory(taken from properties (2) hash code generated from mdstore identifier (limited to the 3 first numbers - maximum) (3) mdstore identifier it means: /(1)/(2)/(3) * the algorithm for creating record paths has NOT been changed: (4) record identifier length (5) hash code generated form record identifier (limited to the 4 first numbers - maximum) (6) record identifier (limited to 255 characters) it means: /(1)/(2)/(3)/(4)/(5)/(6) * Content of mdstore Lucene index changed: - stores 'X' character instead of mdstore id (its enough for searching - returning all records from index) - stores only record hash path instead of absolute record path; the complete records paths are build now during delivering records to the client; *0.1.1 (March 10th, 2010)* * dropping exception in mergeMDRecordKeywords in case if the input field name is defined without the schema. * Lucene index was not closed properly when the exception occurred during feeding mdstore * IndexReader in LuceneStorageReader was not properly closed; now it has been removed at all and replaced directly by IndexSearcher' * locking parallel storing processes on the same mdstore data structure * cleaning data structure process blocked response to the client because it was not inside the thread, now it is. * automatic repairing Lucene indicies and removing index locs * the statistic fields in MDStore profile were not properly cleaned during REFRESHING * API changes: - the return type of storeMDRecords changed from boolean to void, additionally the MDStoreServiceException is returned - option for running storing process via notification (STORE) - new methods createMDStore and deleteMDStore available via IMDStoreServiceDef interface * migration class for transforming mdstore data structures in version 0.0.+ to the version 0.1.+ *0.1.2 (September 23th, 2010)* * Storing mdstore data structures locally * Information Service switch implemented: the communication between the MDStore and Information services can be switched off, it means that Mdstore don't sent any requests on the Information Service and instead of this it uses local profiles.The switch can be configured in service properties file (services.mdstore.is.communication.switch = true|false) * API changes: - IMDStoreServiceDef extended about new function getMDStoreProfile for returning mdstore data structure profile - new storing method storeMDRecordsFromRS2 accepting string epr as an input parameter - new method for creating mdstore with predefined identifier *0.1.3 (, 2010)* * bug #1323 fixed: catching exception by requesting the number of results, in case if the ResultSet is not available, sleep time increased to 5sec * checking for empty profiles before unmarshaling * simple ip authentication implemented: the authentication is switched off as default and it can be activated by changing flag of services.mdstore.authentication.activation.flag parameter;all allowed ip should be written in to the file indicated by services.mdstore.authentication.file.path paramter * API changes: new function eraseMDStoreDataStructure(String mdstoreIdentifier) for cleaning single Data Structures implemented. * Minor Bug fixed in ResultSetIterrator avoiding parsing empty records returned by ResulSet * bug #1606 fixed: updating MDStore profile with the correct number of stored records after exception * API changes: - New function returning the storing status profile for the latest storing action. * API changes: new function multiGet returning ResultSet containing the records from single mdstore data structure where returned records identifiers are included in the list of identifiers given as an input parameter. * multiGet function extended about two date parameters for searching records only in specified date range * minor bug fixed: the number of results delivered for the first page was not correct in case if the client "until parameter" was smaller then service default page size * API changes: New method deliverContentSpecificMDRecords implemented. This method filters delivered records for the filter value given to the method as an input parameter. Method queries mdstore Lucene index only for the records containing filter value in the field specified in properties file as a filter field (services.mdstore.filtering.field.name=//ubi:collection). Methods works only if the filtering activation flag is set on true in properties file (services.mdstore.filtering.activation.flag=true) and if the values of this field have be indexed by Lucene (both parameters set during indexing) * API changes: new function storeMDRecordsFromList added