Hi all,

I'm working (slowly) on a simple alternate web frontend for DSpace: 
https://github.com/kardeiz/disco.*

I was thinking that it would be nice if DSpace provided some 
implementation-agnostic utilities for a generic HttpServlet context.

For example, XMLUI and JSPUI provide their own wrappers for things like 
browsing, searching, recent submissions, etc., but in many cases the code used 
is very similar and not dependent on the specific framework. It would be 
possible to abstract out a lot of the functionality of these wrappers into 
utility methods that have signatures like `HttpServletRequest req, 
HttpServletResponse resp`.

As a specific example, consider 
RecentSubmissionUtils<https://github.com/DSpace/DSpace/blob/master/dspace-xmlui/src/main/java/org/dspace/app/xmlui/aspect/discovery/recentSubmissions/RecentSubmissionUtils.java>.
 There is no reason this class has to be XMLUI specific; if it was in some 
shared package, JSPUI or any other framework could just use it directly to 
generate a list of recent submissions for a community or collection.

There are already a couple of servlet-related utilities in dspace-api at 
org.dspace.app.util.Util.

I don't know if anything like this has ever been discussed, or if there are 
reasons it wouldn't work. I know it would require a lot of collaboration 
between JSPUI and XMLUI developers. I guess this is something that should go on 
a DSpace "wishlist"; I apologize if this isn't the correct place for that-

Thanks,

Jacob Brown


* In case anyone wants more information: this application is written in Scala 
and uses:


*         the DSpace API (5.x) for working with a local DSpace repository

*         Jersey for request routing (and not much else)

*         Twirl for HTML templating

*         xsbt-web-plugin for running in development and WAR packaging

*         Bower and Gulp for frontend asset management

In a little over 700 lines of Scala and a handful of HTML templates, this 
application provides a good portion (but certainly not all) of the 
non-administrative functionality of a normal XMLUI site, including home, 
community, collection, and item view pages, and search and browse interfaces 
(including sidebar facets).

Getting started should be as easy as:

git clone https://github.com/kardeiz/disco
cd disco
export DSPACE_DIR=/path/to/dspace
./sbt
container:start

Disclaimers:

This application is under active development and is not a finished/polished 
product. Parts of it may be untested or in need of improvement. While this 
application should be mostly "read-only" in relation to your local DSpace 
installation, I would recommend against running it on a production server at 
this point. Use at your own risk.
------------------------------------------------------------------------------
_______________________________________________
DSpace-tech mailing list
DSpace-tech@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dspace-tech
List Etiquette: https://wiki.duraspace.org/display/DSPACE/Mailing+List+Etiquette

Reply via email to