Page History
...
The Web UI-related files are located in a variety of directories in the DSpace source tree. Note that as of DSpace version 1.5, the deployment has changed. The build systems has moved to a maven-based system enabling the various projects (JSPUI, XMLUI, etc.) into separate projects. The system still uses the familar 'Ant' to deploy the webapps in later stages.
Location | Description | ||||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="2ce66555-2077-4ea1-bb7e-3e98e1868041"><ac:plain-text-body><![CDATA[ | [dspace-source]/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui | Web UI source files | |||
[dspace-source]]></ac:plain-text-body></ac:structured-macro><ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="3bf23474-5006-4c68-bbdd-eaf31ff03370"><ac:plain-text-body><![CDATA[dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/filters | Servlet Filters (Servlet 2.3 spec) | ||||
[dspace-source]/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/filters | Servlet Filters (Servlet 2.3 spec) | ]]></ac:plain-text-body></ac:structured-macro> | jsptag | Custom JSP tag class files | |
[dspace-source]/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/servlet | Servlets for main Web UI (controllers) <ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="013626d7-6755-4f3d-a11d-54dedc180cc5"><ac:plain-text-body><![CDATA[ | ||||
[dspace-source]/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/servlet/jsptagadmin | Servlets that comprise the administration part of the Web UI | ||||
Custom JSP tag class files | ]]></ac:plain-text-body></ac:structured-macro> | <ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="f1155d04-66c8-4a7b-867e-a652ba1751b5"><ac:plain-text-body><![CDATA[ | [dspace-source]/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/servlet | Servlets for main Web UI (controllers) | ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="e989262a-87b7-40da-9664-d5265ce5e1f2"><ac:plain-text-body><![CDATA[ | [dspace-source]/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/servlet/admin | Servlets that comprise the administration part of the Web UI | ]]></ac:plain-text-body></ac:structured-macro> | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="7192a0fa-ded0-4dd3-95f5-d59318232a4a"><ac:plain-text-body><![CDATA[ | [dspace-source]/dspace-jspui/dspace-jspui-api/src/main/java/org/dspace/app/webui/util/ | Miscellaneous classes used by the servlets and filters | ]]></ac:plain-text-body></ac:structured-macro> | ||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="cbc09c4a-d33e-4317-9ff7-b6470d373bfe"><ac:plain-text-body><![CDATA[ | [dspace-source]/dspace-jspui | The JSP files | ]]></ac:plain-text-body></ac:structured-macro> | ||
util/ | Miscellaneous classes used by the servlets and filters | ||||
[dspace-source]/dspace-jspui | The JSP files <ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="37086d7b-0a36-47f0-8b07-88cfc79fed3c"><ac:plain-text-body><![CDATA[ | ||||
[dspace-source]/dspace/modules/jspui/src/main/webapp | This is where you place customized versions of JSPs—see 6. JSPUI Configuration and Customization | ]]></ac:plain-text-body></ac:structured-macro> | <ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="47c0eb64-adb6-4fff-8884-8f9e051231a8"><ac:plain-text-body><![CDATA[JSPs—see 6. JSPUI Configuration and Customization | ||
[dspace-source]/dspace/modules/xmlui/src/main/webapp | This is where you place customizations for the Manakin interface‚ see 7. Manakin [XMLUI] Configuration and Customization | ]]></ac:plain-text-body></ac:structured-macro> | <ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="2cc24214-95d2-4fff-84dd-63d78d751431"><ac:plain-text-body><![CDATA[the Manakin interface‚ see 7. Manakin [XMLUI] Configuration and Customization | ||
[dspace-source/dspace/modules/jspui/src/main/resources | This is where you can place you customize version of the Messages.properties file. | ]]></ac:plain-text-body></ac:structured-macro> | <ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="dfd4270e-6844-4318-81e8-8befd4294441"><ac:plain-text-body><![CDATA[ | ||
[dspace-source]/dspace-jspui/dspace-jspui-webapp/src/main/webapp/WEB-INF/dspace-tags.tld | Custom DSpace JSP tag descriptor | ]]></ac:plain-text-body></ac:structured-macro> |
The Build Process
...
The DSpace Maven build process constructs a full DSpace installation template directory structure containing a series of web applications. The results are placed in _\[dspace-source\]/dspace/target/dspace-\[version\]-build.dir/_. The process works as follows:
- All the DSpace source code is compiled, and/or automatically downloaded from the Maven Central code/libraries repository.
A full DSpace "installation template" folder is built in {{\Wiki Markup [dspace-source
\]/dspace/target/dspace-
\[version
\]-build.dir/
}}- This DSpace "installation template" folder has a structure identical to the Installed Directory Layout
In order to then install & deploy DSpace from this "installation template" folder, you must run the following from {{\ Wiki Markup [dspace-source
\]/dspace/target/dspace-
\[version
\]-build.dir/
}} :
Code Block |
---|
ant -D [dspace]/config/dspace.cfg update |
...
The JSPManager.showJSP method uses the standard Java servlet forwarding mechanism is then used to forward the HTTP request to the JSP. The JSP is processed by Tomcat and the results sent back to the user's browser.unmigrated-wiki-markup
There is an exception to this servlet/JSP style: _index.jsp_, the 'home page', receives the HTTP request directly from Tomcat without a servlet being invoked first. This is because in the servlet 2.3 specification, there is no way to map a servlet to handle only requests made to '_/_'; such a mapping results in every request being directed to that servlet. By default, Tomcat forwards requests to '_/_' to _index.jsp_. To try and make things as clean as possible, _index.jsp_ contains some simple code that would normally go in a servlet, and then forwards to _home.jsp_ using the _JSPManager.showJSP_ method. This means localized versions of the 'home page' can be created by placing a customized _home.jsp_ in _\[dspace-source\]/jsp/local_, in the same manner as other JSPs.other JSPs.
_\[dspace-source\]/jsp/dspace-admin/index.jsp_, the administration UI index page, is invoked directly by Tomcat and not through a servlet for similar reasons. Wiki Markup
At the top of each JSP file, right after the license and copyright header, is documented the appropriate attributes that a servlet must fill out prior to forwarding to that JSP. No validation is performed; if the servlet does not fill out the necessary attributes, it is likely that an internal server error will occur.
...
The DSpace platform supports the Open Archives Initiative Protocol for Metadata Harvesting (OAI-PMH) version 2.0 as a data provider. This is accomplished using the OAICat framework from OCLC.unmigrated-wiki-markup
The DSpace build process builds a Web application archive, _\[dspace-source\]/build/oai.war_), in much the same way as the Web UI build process described above. The only differences are that the JSPs are not included, and _\[dspace-source\]/etc/oai-web.xml_ is used as the deployment descriptor. This 'webapp' is deployed to receive and respond to OAI-PMH requests via HTTP. Note that typically it should _not_ be deployed on SSL (_https:_ protocol). In a typical configuration, this is deployed at _oai_, for example:
Code Block |
---|
http://dspace.myu.edu/oai/request?verb=Identify |
...
Code Block |
---|
http://dspace.myu.edu/oai/request |
It is this URL that should be registered with [www.openarchives.org|http://www.openarchives. org/|www.openarchives.org]. Note that you can easily change the '_request_' portion of the URL by editing _\[dspace-source\]/etc/oai-web.xml_ and rebuilding and deploying _oai.war_. Wiki Markup
DSpace provides implementations of the OAICat interfaces AbstractCatalog, RecordFactory and Crosswalk that interface with the DSpace content management API and harvesting API (in the search subsystem).
...
In addition to the implementations of the OAICat interfaces, there is one main configuration file relevant to OAI-PMH support:
...
- *oaicat.properties*: This file resides in {{\
[dspace
\]/config
}}. You probably won't need to edit this, as it is pre-configured to meet most needs. You might want to change the {{Identify.earliestDatestamp
}} field to more accurately reflect the oldest datestamp in your local DSpace system. (Note that this is the value of the {{last_modified
}} column in the {{Item
}} database table.)
Sets
OAI-PMH allows repositories to expose an hierarchy of sets in which records may be placed. A record can be in zero or more sets.
...
Introduced in Release 1.6, the DSpace Command Launcher brings together the various command and scripts into a standard-practice for running CLI runtime programs.
Older Versions
Prior to Release 1.6, there were various scripts written that masked a more manual approach to running CLI programs. The user had to issue _\[dspace\]/bin/dsrun_ and then java class that ran that program. With release 1.5, scripts were written to mask the _\[dspace\]/bin/dsrun_ command. We have left the java class in the System Administration section since it does have value for debugging purposes and for those who wish to learn about DSpace
Wiki Markup
programming or wish to customize the code at any time.
Command Launcher Structure
...
There are two components to the command launcher: the dspace script and the launcher.xml. The DSpace command calls a java class which in turn refers to _launcher.xml_ that is stored in the _\[dspace\]/config_ directory
launcher.xml is made of several components:
- <command> begins the stanza for a command
- <name>_name of command_</name> the name of the command that you would use.
- <description>_the description of the command_</description>
- <step> </step> User arguments are parsed and tested.
- <class>_<the java class that is being used to run the CLI program>_</class>
Prior to release 1.5 if one wanted to regenerate the browse index, one would have to issue the following commands manually:
In release 1.5 a script was written and in release 1.6 the command _\[dspace\]/bin/dspace index-init_ replaces the script. The stanza from _launcher.xml_ show us how one can build more commands if needed:Code Block unmigrated-wiki-markup[dspace]/bin/dsrun org.dspace.browse.IndexBrowse -f -r [dspace]/bin/dsrun org.dspace.browse.ItemCounter [dspace]/bin/dsrun org.dspace.search.DSIndexer
.Code Block <command> <name>index-update</name> <description>Update the search and browse indexes</description> <step passuserargs="false"> <class>org.dspace.browse.IndexBrowse</class> <argument>-i</argument> </step> <step passuserargs="false"> <class>org.dspace.browse.ItemCounter</class> </step> <step passuserargs="false"> <class>org.dspace.search.DSIndexer</class> </step> </command>