Skip to end of metadata
Go to start of metadata

This page will serve as a place to list tasks that need to be completed as part of the DSpace 4.0 release process.

This page may be out of date

This page is updated manually. Therefore it may be out of date at any given time.

PRs linked to a GitHub Milestone

Tim Donohue has very kindly linked the Pull Requests detailed below in a GitHub Milestone for DSpace 4.0 Feature Freeze. It's a very helpful way to review all the Pull Requests approved for inclusion in DSpace 4.0, and to follow the progress of their merge into the DSpace code base.


4.0 Code Tasks

  • Due to migration to Discovery, mark the DB and Lucene classes it replaces as deprecated. This includes things like IndexBrowse, BrowseCreateDAOPostgres, DSIndexer and others (check their packages).
  • Review all dependecies and determine if we need to increase the version we're using. Here's a list of dependencies with updates.
  • Review recommendations for other software versions we require (i.e. review our recommended stack).

4.0 Documentation Tasks

4.0 Testathon Tasks


Pull Requests reviewed for inclusion in DSpace 4.0

NOTE, this table started out as a Google Doc spreadsheet, here:

Pull requestTitleDescriptionUserCreation dateUpdate dateAssigneeMergeable statusIn 4.0?issue typeNotes Empty dc fields causes page layout issuesFixing a number of issues caused by empty metadata fields in Miragebram-atmire2013-10-08T07:45:30Z2013-10-08T20:53:06Znullcleanskip | bugfixbugfix Improvement of Collection Dropdown helix842013-10-08T00:21:49Z2013-10-08T20:26:03ZnullcleanYES | pre-approved to mergefeature[DS-1657] DSpace REST API built in JERSEYI have built a REST-API for DSpace, built using JAX-RS1 (JERSEY). [DS-1657 Request for Official DSpace REST API]( * It is READ-ONLY * Respects DSpace Authorization * Only lists or shows objects that anonymous user has READ access to. * Hides hidden metadata from Items, i.e. provenance * Should support either DB It has support for endpoints: * / - Index of Endpoints * /communities - Community (list and specific) * /collections - Collection (list and specific) * /items - Item (specific) * /bitstreams - Bitstream (specific, and specific retrieve) * /handle - Handles (can look up a handle to see the internal ID) It gives responses in JSON, XML, and for a rare-few HTML. (Set your Accept header accordingly) In testing I have had: ```Accept: application/xml;q=0.5,application/json;q=0.6```, and tweaked preferences to get different response. ## Whats missing? * Pagination * I'm thinking I'll use ```limit``` and ```offset``` * Search * root-level Item list * root-level Bitstream list * Expand is not complete for Item / Bitstream * Going from an object to its Parent is not consistently implemented * No way to login or authenticate as a specified user * Can't recursively view every sub-sub-resource of a resource, you can see its direct children. ## What are the surprises? * If you don't have READ access to an object it does not show up in list * ~~Looking up a handle does not give you EVERYTHING about that object, but gives you some data, and link to get more data.~~ * Every object has a "link", a very weak attempt at HATEOS, you can always just to children/parent objects * Items have metadata array, that has field key and field value. * I have for some reason touched a few core dspace-api classes to add some sugar or simplify accomplishing things. Perhaps this is unnecessary, but I'd rather do things a right way, as opposed to yet-another-wrong-way. * Item metadata is using the deprecated DCValue[], which I saw no alternative to. * The link to an object type is using a pluralizer of that type, i.e. item -> items. This is all in [dspace-source]/dspace-rest. As this is still code that is being improved from time-to-time, feel free to review, give feedback, or fix it yourself.peterdietz2013-10-07T21:57:44Z2013-10-09T14:40:19ZnullcleanYES | pre-approved to mergefeature[DS-1675] New JSPUI look & feel | pre-approved to mergefeature assign DSpace group based on LDAP attribute value helix842013-10-07T14:34:37Z2013-10-07T14:34:37ZnullcleanYES | pre-approved to mergefeature[DS-1687] Porting Item Versioning to the JSPUIPorting of the item level versioning as is at I'm try to manage the "Exposing version history" issue, in fact you find in this PR that the email of the editor is show only to admin user (Administrators and Collection/Community Administrators). Buttons to create new version and go to the history page has been added on the item splash page (display-item.jsp). PLEASE NOTE: to enable the feature turn on in the versioning.cfg the enabled configuration parameter.lap822013-10-05T18:02:52Z2013-10-05T18:02:52ZnullcleanYES | pre-approved to mergefeature[DS-1688] Add UI support for BTE batch metadata importAdministrative UI support for BTE batch metadata import. The user can select the data file to upload, the type of the datafile (bibtex, csv, etc.) and the collection that the items should be imported to and then the BTE runs to import the data. Mapfile generated by the import is saved and the user is informed via email regarding the status of the import (like the export stuff...) The corresponding service is accessible via the administrative sidebar. This pull request is build based on the PR: Related Jira issue: | discussfeatureBollini proposed to skip until next meeting, wants to understand interaction with all other changes to JSPUI[DS-1686] Support new version of Biblio-Transformation-Engine for the batch importThe new version v0.9 of BTE is out ( The current batch import (from BTE) code (+ the XML Spring configuration) needs to be updated to support this new version. DSpace documentation on batch import (from BTE) will also need an update. Related Jira issue: | pre-approved to merge Spatial Index and Spatial QueryThe following code allows the indexing and querying on "spatial" metadata A resource may refer to a geographic area and this area can be defined in metadata as geographic bounding box (west edge , east edge , north edge , south edge ) ![image]( If an item's bounding box is present in metadata then it can be indexed and users can perform spatial queries (propably by selecting a geographic area on a map) to get results that refers to a specific geographic area. An implementation of this functionality can be found at the following link: How this works: User should create 4 custom metadata fields: [schema].GeographicBoundingBox.EastBoundLongtitude [schema].GeographicBoundingBox.WestBoundLongtitude [schema].GeographicBoundingBox.NorthBoundLongtitude [schema].GeographicBoundingBox.SouthBoundLongtitude (In a more abstract implementation the "spatial" metadata fields could be defined in dspace.cfg.) After an item is submitted Lucene creates Quadtree spatial index for this item. When the user perform a spatial search, he passes a bounding box to lucene which compares this with spatial indexes based on a spatial Operation . For example, if the spatial operation used is "intersect" then Lucene will return all items that their's bounding box intersects with user's passed bounding box. This requests contains modification only in dspace Kernel API. But there is a need for modifications in XMLUI API and stylesheets in order for this functionality to be fully operational Notes: Lucene supports spatial searches from 4 version This code was tested in Lucene 4.3.0 version The coordination System is WGS84bbkopsas2013-10-04T14:46:29Z2013-10-04T14:46:29ZnullcleanNO | needs discussion[DS-1683] Add spell checker to discoveryAdds did you mean functionality to the XMLUI discovery view.KevinVdV2013-10-04T08:40:56Z2013-10-04T08:40:56ZnullcleanYES | pre-approved to merge DOI support for dspace-apiDOI support for DSpace. See and for further information.tuub2013-10-02T17:26:13Z2013-10-07T18:06:08ZmwoodiupuicleanYES | pre-approved to merge see 308 Handle user using the back button to change collection during ingest | bugfixbugfix policy data to METSRIGHTS only if a policy is effect (by date)Test cases 1. No date present 2. Start date and end date present 3. Start date only present 4. End date only presentterrywbrady2013-10-01T14:14:00Z2013-10-01T16:40:11ZnullcleanYES | pre-approved to merge[DS-1678] EZID DOI providerSee also DS-1535, which introduces a DataCite DOI provider. The code for these should be very compatible. I would suggest merging 1535 first and then this, if both are desired.mwoodiupui2013-09-27T17:19:08Z2013-09-27T17:19:08ZmwoodiupuicleanYES | pre-approved to merge While registering a specified identifier IdentifierServiceImpl doesn't check if an IdentifierProvider supports itWe will need this for the DOI support.tuub2013-09-27T15:52:36Z2013-09-27T16:10:33Znullcleanskip | bugfixbugfixpre-requisite for 312 and probably 308[DS-1252] Integrate external bibliographic services in DSpace submission process The PR share the integration with external bibliographic database in the submission process shown at OR2013 (pages: 16 - 21)lap822013-09-27T08:21:43Z2013-09-27T09:20:02Znullcleanskip | in processfeaturebollini is working on integrating BTE framework to this PR having a DOT in handle prefix causes identifier.uri to be cut of......f when being created. Fixes | bugfixbugfix Modified the classes to work with DSpace 3.2jpiscanc2013-09-26T14:46:43Z2013-09-26T14:52:22ZnullunstableNO | build error search box rivaldi82013-09-24T11:58:52Z2013-09-24T12:33:17ZnullcleanYES | pre-approved to merge[DS-1667] Remove deprecated LoadDSpaceLNIConfig servlet mwoodiupui2013-09-23T19:51:43Z2013-09-23T19:51:43ZnullcleanYES | pre-approved to mergebugfix New Input-Type Constant and attribute Maxlength for input-forms.xml | needs discussionfeaturetwo features, possible conflict with 321, Bollini to work with author authentication fails if load-balancer/proxy filters DSpace http requests X-Forwarded-For is not a csv list In this example the IP addresso of the load-balancer/proxy is hard coded. It has to be read from authentication-ip.cfgjpiscanc2013-09-17T15:24:56Z2013-10-02T20:20:53Zaschweercleanskip | bugfixbugfix Support running handle server and application container on separate machines (2nd version) Thanks to the helpful comments on PR #290 I changed the PR. As I don't like to rewrite git history I created a new branch and this new PR.tuub2013-09-04T10:16:21Z2013-09-25T20:45:14ZnullcleanYES | pre-approved to mergefeature[DS-1647] Adds MetadataWebService curation task Adds a curation task to the 'general' set of tasks. MetadataWebService task is used to call web services and utilize data from the response. See documentation in source file.richardrodgers2013-09-03T23:35:43Z2013-09-10T15:09:09ZnullcleanYES | pre-approved to merge the session variable being queried to determine if a forced redirect to https is needed.terrywbrady2013-08-29T16:24:34Z2013-09-27T17:36:40ZnullcleanYES | pre-approved to mergebugfix Solr search accent insensitive (ICU Transliteration)This pull request make use of the ICUFoldingFilterFactory to provide a better default for accent management JIRA issue here: | pre-approved to merge after solving merge conflict/issue[DS-1188] Collection view doesn't show content by default This is a pull request for the XMLUI version. The configuration on wether or not to use recent submissions on a collection home page was added to the discovery configuration spring file. I choose this route to keep all configuration together instead of spreading it out. On all pages where recent submissions are shown a link "show more" is displayed, so even if this option isn't enabled people will be able to browse through recent submission easily. Ps: This solution also required discovery to be enabled, but since it is the default for DSpace 4.0, I don't think this should be an issue (no use in doing double work).KevinVdV2013-08-05T09:49:13Z2013-09-04T20:47:45ZnulldirtyNO | needs rebase Request copy of item for XMLUI Request a copy of a protected item for XMLUI. A reimplementation of JSPUI version of the Universidade do Minho at Note.- This need a new table in the database to work.muelle2013-07-22T10:58:47Z2013-08-19T14:24:35ZnulldirtyNO | needs rebase[DS-1600] Variable "style" is defined twice in and are used by error in its render() method | bugfixbugfix[DS-1599] I18nUtil.getMessage() does not return the intended language's message | bugfixbugfix[DS-1399] Adding supervisor order bug This pull request is a modified version of the patch (in Jira) made by Jonathan Blood. The following one point is different from the original one. 1. Separate the cases when no workspace item exists and no workspace item is selected.zuki2013-07-10T08:37:15Z2013-09-04T20:30:27Znullcleanskip | bugfixbugfix[DS-1597] Browse subjects by collection count bug This pull request has not yet been tested for oracle.KevinVdV2013-07-08T11:58:00Z2013-08-19T14:24:34Znullcleanskip | bugfixbugfix[DS-1212] Export all collections of a community recursively in ItemExport These patches resolve the problems that reported in DS-1212 with adding the following two functions. 1. Export collections of the subcommuniteis of the specific community recursively. 2. Send a email that notify "no collections are export" if the specified community has no collections.zuki2013-07-07T02:25:23Z2013-09-05T08:18:06ZnullcleanYES | pre-approved to mergebugfix 1) DSpace enhancement, mapping author names to registered users with UI options 2) Keeping UI option to choose autor-user wise Collections where the item can be mapped. This commit tries to achieve following things: 1)Currently in DSpace, authors are present as just names. They are not mapped to the users registered to DSpace. If an organization wants to track which authors are which users for a submitted item where multiple authors are there or the submitter is not the author, there is no provision for that. This code would map the authors to the users with name matching. Now basic , first name, last name matching is done. Later it can be extended to add heuristic matchings and or plugging in Authorization control. The mapped users would be shown in submission work flow DescribeStep by checkboxes. The checked ones would be saved in item metadata as chosen-authors. All authors mapped as users would be kept as available-authors in item metadata. 2)The collections where the author-mapped-users have got submit authorization, would then be shown in the submission workflow with check boxes. Say AuthorName1 matched User1 and AuthorName2 mapped User2 and User1 has 3 collections where she can submit, and User2 has 1 collection where he can submit. The collections would then be shown in DescribeStep as User1: Col1 [], Col2 [], Col3 [] . User2: Col4[]. Now submitter can chose Col2 and Col4 as the collections where the Item should be mapped. So those two collection ids would be saved as chosen-collections in Item Metadata. Upon finishing the item submission , in InstallItem step the item would get mapped to chosen collection. The owning collection logic remains intact. To achieve this , new dublin core metadata fields are added and they are used in input-form with specific input-types.alapchari2013-06-29T11:20:11Z2013-09-04T20:27:22ZnullcleanNO | needs more work[DS-1456] "dspace version" command-line script This introduces a new database table: a scratchpad for running webapps' presence records. It was the best I could think of that is visible from all webapp.s and the commandline, and requires no additional daemons or arcane JMX configuration.mwoodiupui2013-06-14T14:46:39Z2013-08-19T14:24:32ZnullcleanYES | pre-approved to merge for Metadata Schema lookup by long namespace and not short name.Sometimes DSpace looks up a schema by the long namespace, and not the short name while serializing metadata for an Item. This causes metadata registered in DSpace through the UI metadata registry and present within an atom+xml document submitted via the Sword2 protocol, unable to be added. This patch fixes this issue. It also throws a RuntimeException (I didn't want to change the signature, so there could be a much better way to express this) when the schema is not available via either method. This alleviates the mystery of why DSpace cant' find a defined symbol when parsing the metadata for an Item, as an Item with a bad reference to internal metadata should be recorded as an error. Sword2 protocol users will then know that something is wrong with the metadata in their document and be able to debug.awaterma2013-06-06T17:42:56Z2013-08-28T20:54:58ZnullcleanNO | rejectedfeature SWORDv2 module (was PR 229)This contribution provides major enhancements to the dspace-swordv2 module: - some general bug fixes including: bitstream url construction, config options, context management and connection pool, ORIGINAL bundle problem - proper METSDSpaceSIP support in both deposit and update proper authentication for accessing actionable bitstreams (i.e. those that can be replaced via sword), tightened security options around mediated actions, and add extra security to the access of descriptive documents (deposit receipts, statements) - more configuration options: bundles to expose in Statements, DepositMO extensions (for individual files), and many more - some general refactoring - addition of 404 responses where necessary - better support for add/replace of metadata, and how metadata updates are handled on archived items - update to latest version of Java Server library - new bitstream formats in the bitstream registry In order to use this module, we also need to push a new version of the Java Server library for SWORDv2 into the central maven repo ( | pre-approved to mergefeatureauthor is committer, and is welcome to merge the code Implementation of CAS (Single Sign-On) authentication for DSpaceThe first patch was formerly implemented by Kaboré Wendin-Malegdé Patrick at JIRA ( This first version was done for DSpace 1.7.2, afterwards user kgunn at JIRA did some arrangements to make it work with DSpace 1.8.2 and CAS 3.1.x and now I've been able to make a 'remix' of both solutions to make it work with DSpace 3.1 and CAS 3.5.x. Hopefully, this patch will be officially implemented in subsequent DSpace versions as an additional authentication method.nkneumann2013-05-22T21:10:21Z2013-10-03T23:45:07ZnullcleanYES | pre-approved to mergefeature[DS-1519] Workflow and submission process selection based on community hierarchyThe main goal of this patch is to be able to define a submission process, a form definition, or a workflow process, based also on community's handles, allowing subcommunities and collections to inherit those definitions. This patch changes the lookup process in order to check for collection's handle first, and then for its parent community's handle if the first didn't match any definition. This is the same for form definitions (input-forms.xml), submission processes (item-submission.xml) and workflow processes (workflow.xml). According to this, it was also modified the attribute's name used to bound a definition to a handle: before it was "collection" or "collection-handle", now it's just "handle" (old attribute names are still supported for compatibility). This would need to be documented properly. I'd like to hear your thoughts on thisnesovi2013-03-13T19:32:36Z2013-08-19T14:24:29ZnullcleanYES | pre-approved to mergefeature help for JSPUI**JIRA**: [DS-1508]( **Documentation**: [Multilingual Help for JSPUI]( **Credits**: [Lyncode]( + [RCAAP]( **NOTE**: It depends on dspace-api-lang changes.lyncodev2013-03-06T16:22:35Z2013-08-19T14:24:29ZnullcleanNO | needs discussionfeature getAttribute first before attempting to check getHeader for the user value. ShibUseHeaders is not enabled by default and is not recommended in official Shibboleth documentation.ottenhoff2013-02-28T23:47:28Z2013-08-19T14:24:29ZhardyoyocleanYESbugfixpre-approved to merge, after confirmation/testing by hpottinger Feedback form breaks when hostname is shortFix for a string index out of bounds error Rebased #193 on the correct branch (master)helix842013-02-28T08:47:21Z2013-08-19T14:24:28Znullcleanskip | bugfixbugfix ensuring that UTF-8 encoding gets enforcedbased on Villu Ruusmann's patch. Simple & straightforward fix.bram-atmire2013-02-27T19:35:45Z2013-08-19T14:24:28Znullcleanskip | bugfixbugfix Sharing Bar and Export to bibtex, RIS and Mendeley*Documentation*: *Jira Ticket*: | unmergeable authentication module - RemoteUserBespoke authentication module 'RemoteUser' uses HTTPServletRequest.getRemoteUser() to acquire username from tomcat after user has been authenticated by SSO. Point your SSO at /repository/remoteuser-login Added files: dspace-api/src/main/java/org/dspace/authenticate/ dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/eperson/ dspace-xmlui/dspace-xmlui-api/src/main/java/org/dspace/app/xmlui/aspect/eperson/ Modified files: dspace-xmlui-api/src/main/resources/aspects/EPerson/sitemap.xmap dspace-xmlui-webapp/src/main/webapp/sitemap.xmap System changes: add the parameter tomcatAuthentication="false" to the ajp connector in /opt/tomcat6/conf/server.xml Tested and working in Dspace 1.8.2iwellaway2013-02-19T16:34:37Z2013-08-19T14:24:27ZnullcleanNO | rejected comments from committers unadressed by author fix for the Mirage theme TODO: fixes for other themes (should be the same)helix842013-02-12T09:55:56Z2013-08-19T14:24:27Znullcleanskip | bugfixbugfix CAS authentication It is currently failing building. I am leaving this here for ideas and tips on trying to get it working. [ERROR] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Compilation failure /home/dspace/dspace-src/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/administrative/eperson/[182,25] cannot find symbol symbol : variable ConfigurationManager location: class to 186featuremhwood and bollini are investigating private items must be excluded in default discovery searchThis pull request is an alternative to the pull request #181abollini2013-01-30T12:23:07Z2013-01-30T12:23:08Znullcleanskip | bugfixbugfix Implementation (Status: 50%) - Community help requestedDocumentation (under construction): Tips (under construction): Jira Ticket (discussion): SpringUI Demo using it: | unmergeablefeature add site-wide facets for /community-list helix842012-12-19T12:01:18Z2013-08-19T14:24:26ZnullcleanNO | rejectedfeature add a link to More Submissions at the bottom of Recent Submissio...DS-1278 add a link to more submissions below the recent submissions on collection and community home pages.ottenhoff2012-10-10T19:04:50Z2013-10-08T11:55:24ZnullcleanNO | obsoleted by PR #247feature Initial contribution: (JSP)UI Import from bibliographics database/formatsThis contribution add to the DSpace the ability to import from the major bibliographic database both online than local (file based). Out-of-box it provides plugins to import from: - DOI via crossref API - PubMedID via webservices - ArXiv - local BibTeX files - local files in ISI Plain text format Support for additional providers can be easily implemented, the import is done via UI (currently only the JSPUI is supported but extension to XMLUI should be an easy task for any XMLUI experts). The feature can be turned on/off in configuration, the available plugins are also configurated via dspace.cfg. Mapping from the import format (CrossRef, PubMed, etc.) to your local DSpace metadata is done in external properties files in config/crosswalk (standard mapping is provided). In mapping files you can define different mapping rule basing on the destination collection (dspace form name) and origin "type" (for example in bibtex you have: @chapter, @book, etc.) Additional hacks for alter the imported values after the initial import or add other values automatically are provided (see the SanitezeImportedMetadata and the EnhanceImportedMetadata interfaces). Please note that the BibTeX importer use the javabib library (GPL) that can be found here: if you want to install them in your local maven repository you can use the following command mvn install:install-file -Dfile=javabib-bin.jar -DgroupId=com.javabib -DartifactId=javabib-bin -Dversion=20040801 -Dpackaging=jarabollini2012-08-29T10:17:17Z2013-08-19T14:24:25ZnulldirtyNO | unmergeablefeature Dynamic DSpace Configuration Manager lyncodev2012-08-12T16:12:01Z2013-08-19T14:24:24ZnulldirtyNO | unmergeablefeature[DS-1238] Display advance search form after an advance searchEKT's extension to support the display advance search form after an advance search and not the simple form with the Lucene query | unmergeablefeature[DS-1237] Allow date range searches in advance searchEKT's extension to DSpace to support date range searches in advance search | unmergeablefeature[DS-1227] Add tag cloud support in home pageEKT's extension to DSpace to add tag cloud support in home page | unmergeablefeature 
  • No labels