diff --git a/bin/combiner-test1-input1.csv b/bin/combiner-test1-input1.csv new file mode 100644 index 0000000..52364fa --- /dev/null +++ b/bin/combiner-test1-input1.csv @@ -0,0 +1,5 @@ +"item","itemID","date","state" +info:fedora/nsdl:10013,oai:nsdl.org:nsdl:10011:nsdl:10013,2005-09-20T12:49:14.77,info:fedora/fedora-system:def/model#Active +info:fedora/nsdl:10015,oai:nsdl.org:nsdl:10011:nsdl:10015,2005-09-20T12:49:15.391,info:fedora/fedora-system:def/model#Active +info:fedora/nsdl:2051858,oai:nsdl.org:nsdl:10059:nsdl:2051858,2005-09-20T12:50:01,info:fedora/fedora-system:def/model#Active +info:fedora/nsdl:2052376,oai:nsdl.org:nsdl:10059:nsdl:2052376,2005-09-20T12:50:02.23.123,info:fedora/fedora-system:def/model#Active \ No newline at end of file diff --git a/bin/combiner-test1-input2.csv b/bin/combiner-test1-input2.csv new file mode 100644 index 0000000..4320aee --- /dev/null +++ b/bin/combiner-test1-input2.csv @@ -0,0 +1,5 @@ +"itemID","setSpec" +oai:nsdl.org:nsdl:10059:nsdl:2051858,5101 +oai:nsdl.org:nsdl:10059:nsdl:2051858,set2 +oai:nsdl.org:nsdl:10059:nsdl:2052376,5101 +oai:nsdl.org:nsdl:10059:nsdl:2052420,5101 diff --git a/bin/combiner-test1-input3.csv b/bin/combiner-test1-input3.csv new file mode 100644 index 0000000..d5a6e64 --- /dev/null +++ b/bin/combiner-test1-input3.csv @@ -0,0 +1,5 @@ +"itemID" +oai:nsdl.org:nsdl:10011:nsdl:10013 +oai:nsdl.org:nsdl:10011:nsdl:10015 +oai:nsdl.org:nsdl:10059:nsdl:2051858 +oai:nsdl.org:nsdl:10059:nsdl:2052376 diff --git a/bin/combiner-test1-output.csv b/bin/combiner-test1-output.csv new file mode 100644 index 0000000..b540898 --- /dev/null +++ b/bin/combiner-test1-output.csv @@ -0,0 +1,4 @@ +info:fedora/nsdl:10013,oai:nsdl.org:nsdl:10011:nsdl:10013,2005-09-20T12:49:14.77,info:fedora/fedora-system:def/model#Active,true +info:fedora/nsdl:10015,oai:nsdl.org:nsdl:10011:nsdl:10015,2005-09-20T12:49:15.391,info:fedora/fedora-system:def/model#Active,true +info:fedora/nsdl:2051858,oai:nsdl.org:nsdl:10059:nsdl:2051858,2005-09-20T12:50:01,info:fedora/fedora-system:def/model#Active,true,5101,set2 +info:fedora/nsdl:2052376,oai:nsdl.org:nsdl:10059:nsdl:2052376,2005-09-20T12:50:02.23.123,info:fedora/fedora-system:def/model#Active,true,5101 \ No newline at end of file diff --git a/bin/combiner-test1-output2.csv b/bin/combiner-test1-output2.csv new file mode 100644 index 0000000..8d2c4bd --- /dev/null +++ b/bin/combiner-test1-output2.csv @@ -0,0 +1,4 @@ +info:fedora/nsdl:10013,oai:nsdl.org:nsdl:10011:nsdl:10013,2005-09-20T12:49:14.77,info:fedora/fedora-system:def/model#Active,true +info:fedora/nsdl:10015,oai:nsdl.org:nsdl:10011:nsdl:10015,2005-09-20T12:49:15.391,info:fedora/fedora-system:def/model#Active,true +info:fedora/nsdl:2051858,oai:nsdl.org:nsdl:10059:nsdl:2051858,2005-09-20T12:50:01,info:fedora/fedora-system:def/model#Active,true +info:fedora/nsdl:2052376,oai:nsdl.org:nsdl:10059:nsdl:2052376,2005-09-20T12:50:02.23.123,info:fedora/fedora-system:def/model#Active,true \ No newline at end of file diff --git a/bin/combiner-test1-output3.csv b/bin/combiner-test1-output3.csv new file mode 100644 index 0000000..1c305a4 --- /dev/null +++ b/bin/combiner-test1-output3.csv @@ -0,0 +1,4 @@ +info:fedora/nsdl:10013,oai:nsdl.org:nsdl:10011:nsdl:10013,2005-09-20T12:49:14.77,info:fedora/fedora-system:def/model#Active,false +info:fedora/nsdl:10015,oai:nsdl.org:nsdl:10011:nsdl:10015,2005-09-20T12:49:15.391,info:fedora/fedora-system:def/model#Active,false +info:fedora/nsdl:2051858,oai:nsdl.org:nsdl:10059:nsdl:2051858,2005-09-20T12:50:01,info:fedora/fedora-system:def/model#Active,false,5101,set2 +info:fedora/nsdl:2052376,oai:nsdl.org:nsdl:10059:nsdl:2052376,2005-09-20T12:50:02.23.123,info:fedora/fedora-system:def/model#Active,false,5101 \ No newline at end of file diff --git a/bin/combiner-test1-output4.csv b/bin/combiner-test1-output4.csv new file mode 100644 index 0000000..4506545 --- /dev/null +++ b/bin/combiner-test1-output4.csv @@ -0,0 +1,4 @@ +info:fedora/nsdl:10013,oai:nsdl.org:nsdl:10011:nsdl:10013,2005-09-20T12:49:14.77,info:fedora/fedora-system:def/model#Active,false +info:fedora/nsdl:10015,oai:nsdl.org:nsdl:10011:nsdl:10015,2005-09-20T12:49:15.391,info:fedora/fedora-system:def/model#Active,false +info:fedora/nsdl:2051858,oai:nsdl.org:nsdl:10059:nsdl:2051858,2005-09-20T12:50:01,info:fedora/fedora-system:def/model#Active,false +info:fedora/nsdl:2052376,oai:nsdl.org:nsdl:10059:nsdl:2052376,2005-09-20T12:50:02.23.123,info:fedora/fedora-system:def/model#Active,false \ No newline at end of file diff --git a/bin/fedora/services/oaiprovider/AllLiveTests.class b/bin/fedora/services/oaiprovider/AllLiveTests.class new file mode 100644 index 0000000..1b073a2 Binary files /dev/null and b/bin/fedora/services/oaiprovider/AllLiveTests.class differ diff --git a/bin/fedora/services/oaiprovider/CombinerRecordIterator.class b/bin/fedora/services/oaiprovider/CombinerRecordIterator.class new file mode 100644 index 0000000..4192494 Binary files /dev/null and b/bin/fedora/services/oaiprovider/CombinerRecordIterator.class differ diff --git a/bin/fedora/services/oaiprovider/DateCorrectnessTests.class b/bin/fedora/services/oaiprovider/DateCorrectnessTests.class new file mode 100644 index 0000000..c9e85d6 Binary files /dev/null and b/bin/fedora/services/oaiprovider/DateCorrectnessTests.class differ diff --git a/bin/fedora/services/oaiprovider/FedoraMetadataFormat.class b/bin/fedora/services/oaiprovider/FedoraMetadataFormat.class new file mode 100644 index 0000000..511626c Binary files /dev/null and b/bin/fedora/services/oaiprovider/FedoraMetadataFormat.class differ diff --git a/bin/fedora/services/oaiprovider/FedoraOAIDriver.class b/bin/fedora/services/oaiprovider/FedoraOAIDriver.class new file mode 100644 index 0000000..3efde5f Binary files /dev/null and b/bin/fedora/services/oaiprovider/FedoraOAIDriver.class differ diff --git a/bin/fedora/services/oaiprovider/FedoraOAIDriverTest.class b/bin/fedora/services/oaiprovider/FedoraOAIDriverTest.class new file mode 100644 index 0000000..bfbd16e Binary files /dev/null and b/bin/fedora/services/oaiprovider/FedoraOAIDriverTest.class differ diff --git a/bin/fedora/services/oaiprovider/FedoraRecord.class b/bin/fedora/services/oaiprovider/FedoraRecord.class new file mode 100644 index 0000000..9db7dff Binary files /dev/null and b/bin/fedora/services/oaiprovider/FedoraRecord.class differ diff --git a/bin/fedora/services/oaiprovider/FedoraSetInfo.class b/bin/fedora/services/oaiprovider/FedoraSetInfo.class new file mode 100644 index 0000000..f7a98ce Binary files /dev/null and b/bin/fedora/services/oaiprovider/FedoraSetInfo.class differ diff --git a/bin/fedora/services/oaiprovider/FedoraSetInfoIterator.class b/bin/fedora/services/oaiprovider/FedoraSetInfoIterator.class new file mode 100644 index 0000000..be82989 Binary files /dev/null and b/bin/fedora/services/oaiprovider/FedoraSetInfoIterator.class differ diff --git a/bin/fedora/services/oaiprovider/ITQLQueryFactory.class b/bin/fedora/services/oaiprovider/ITQLQueryFactory.class new file mode 100644 index 0000000..59d796f Binary files /dev/null and b/bin/fedora/services/oaiprovider/ITQLQueryFactory.class differ diff --git a/bin/fedora/services/oaiprovider/InvocationSpec.class b/bin/fedora/services/oaiprovider/InvocationSpec.class new file mode 100644 index 0000000..c2d734a Binary files /dev/null and b/bin/fedora/services/oaiprovider/InvocationSpec.class differ diff --git a/bin/fedora/services/oaiprovider/ListRecordsPermutationTests.class b/bin/fedora/services/oaiprovider/ListRecordsPermutationTests.class new file mode 100644 index 0000000..95b0b5f Binary files /dev/null and b/bin/fedora/services/oaiprovider/ListRecordsPermutationTests.class differ diff --git a/bin/fedora/services/oaiprovider/MPTItemIterator.class b/bin/fedora/services/oaiprovider/MPTItemIterator.class new file mode 100644 index 0000000..2eddcc7 Binary files /dev/null and b/bin/fedora/services/oaiprovider/MPTItemIterator.class differ diff --git a/bin/fedora/services/oaiprovider/MPTQueryFactory.class b/bin/fedora/services/oaiprovider/MPTQueryFactory.class new file mode 100644 index 0000000..cbdb7b2 Binary files /dev/null and b/bin/fedora/services/oaiprovider/MPTQueryFactory.class differ diff --git a/bin/fedora/services/oaiprovider/MPTResultSetsManager.class b/bin/fedora/services/oaiprovider/MPTResultSetsManager.class new file mode 100644 index 0000000..fd9d0a4 Binary files /dev/null and b/bin/fedora/services/oaiprovider/MPTResultSetsManager.class differ diff --git a/bin/fedora/services/oaiprovider/MPTSetInfoIterator.class b/bin/fedora/services/oaiprovider/MPTSetInfoIterator.class new file mode 100644 index 0000000..6ad03dc Binary files /dev/null and b/bin/fedora/services/oaiprovider/MPTSetInfoIterator.class differ diff --git a/bin/fedora/services/oaiprovider/QueryFactory.class b/bin/fedora/services/oaiprovider/QueryFactory.class new file mode 100644 index 0000000..f82aac1 Binary files /dev/null and b/bin/fedora/services/oaiprovider/QueryFactory.class differ diff --git a/bin/fedora/services/oaiprovider/ResultCombiner.class b/bin/fedora/services/oaiprovider/ResultCombiner.class new file mode 100644 index 0000000..195a1e8 Binary files /dev/null and b/bin/fedora/services/oaiprovider/ResultCombiner.class differ diff --git a/bin/fedora/services/oaiprovider/SetInfoTests.class b/bin/fedora/services/oaiprovider/SetInfoTests.class new file mode 100644 index 0000000..5472106 Binary files /dev/null and b/bin/fedora/services/oaiprovider/SetInfoTests.class differ diff --git a/bin/fedora/services/oaiprovider/SetMembershipTests.class b/bin/fedora/services/oaiprovider/SetMembershipTests.class new file mode 100644 index 0000000..e52ed2b Binary files /dev/null and b/bin/fedora/services/oaiprovider/SetMembershipTests.class differ diff --git a/bin/fedora/services/oaiprovider/TestFedoraOAIDriver.class b/bin/fedora/services/oaiprovider/TestFedoraOAIDriver.class new file mode 100644 index 0000000..feb1ce6 Binary files /dev/null and b/bin/fedora/services/oaiprovider/TestFedoraOAIDriver.class differ diff --git a/bin/fedora/services/oaiprovider/TestITQLQueryFactory.class b/bin/fedora/services/oaiprovider/TestITQLQueryFactory.class new file mode 100644 index 0000000..b412413 Binary files /dev/null and b/bin/fedora/services/oaiprovider/TestITQLQueryFactory.class differ diff --git a/bin/fedora/services/oaiprovider/TestResultCombiner.class b/bin/fedora/services/oaiprovider/TestResultCombiner.class new file mode 100644 index 0000000..cfe1fce Binary files /dev/null and b/bin/fedora/services/oaiprovider/TestResultCombiner.class differ diff --git a/bin/fedora/services/oaiprovider/test/DisseminationOrigin.class b/bin/fedora/services/oaiprovider/test/DisseminationOrigin.class new file mode 100644 index 0000000..cf1fb6c Binary files /dev/null and b/bin/fedora/services/oaiprovider/test/DisseminationOrigin.class differ diff --git a/bin/fedora/services/oaiprovider/test/MPTQueryFactoryPropertiesGenerator.class b/bin/fedora/services/oaiprovider/test/MPTQueryFactoryPropertiesGenerator.class new file mode 100644 index 0000000..bb1d898 Binary files /dev/null and b/bin/fedora/services/oaiprovider/test/MPTQueryFactoryPropertiesGenerator.class differ diff --git a/bin/fedora/services/oaiprovider/test/MetadataFormatSpec.class b/bin/fedora/services/oaiprovider/test/MetadataFormatSpec.class new file mode 100644 index 0000000..a1f1292 Binary files /dev/null and b/bin/fedora/services/oaiprovider/test/MetadataFormatSpec.class differ diff --git a/bin/fedora/test/FedoraConfig.class b/bin/fedora/test/FedoraConfig.class new file mode 100644 index 0000000..ff7c2d9 Binary files /dev/null and b/bin/fedora/test/FedoraConfig.class differ diff --git a/bin/fedora/test/LiveSystemTests.class b/bin/fedora/test/LiveSystemTests.class new file mode 100644 index 0000000..fae06e4 Binary files /dev/null and b/bin/fedora/test/LiveSystemTests.class differ diff --git a/bin/fedora/test/LiveTest.class b/bin/fedora/test/LiveTest.class new file mode 100644 index 0000000..5c5d965 Binary files /dev/null and b/bin/fedora/test/LiveTest.class differ diff --git a/bin/fedora/test/SystemConfig$1.class b/bin/fedora/test/SystemConfig$1.class new file mode 100644 index 0000000..e4a14c3 Binary files /dev/null and b/bin/fedora/test/SystemConfig$1.class differ diff --git a/bin/fedora/test/SystemConfig.class b/bin/fedora/test/SystemConfig.class new file mode 100644 index 0000000..b66d235 Binary files /dev/null and b/bin/fedora/test/SystemConfig.class differ diff --git a/bin/fedora/test/TransientFedoraSession$APIMWrapper.class b/bin/fedora/test/TransientFedoraSession$APIMWrapper.class new file mode 100644 index 0000000..d6ca505 Binary files /dev/null and b/bin/fedora/test/TransientFedoraSession$APIMWrapper.class differ diff --git a/bin/fedora/test/TransientFedoraSession$Protocol.class b/bin/fedora/test/TransientFedoraSession$Protocol.class new file mode 100644 index 0000000..c34be37 Binary files /dev/null and b/bin/fedora/test/TransientFedoraSession$Protocol.class differ diff --git a/bin/fedora/test/TransientFedoraSession$WrappedClient.class b/bin/fedora/test/TransientFedoraSession$WrappedClient.class new file mode 100644 index 0000000..8909c3b Binary files /dev/null and b/bin/fedora/test/TransientFedoraSession$WrappedClient.class differ diff --git a/bin/fedora/test/TransientFedoraSession.class b/bin/fedora/test/TransientFedoraSession.class new file mode 100644 index 0000000..d2f65fd Binary files /dev/null and b/bin/fedora/test/TransientFedoraSession.class differ diff --git a/build/classes/fedora/services/oaiprovider/CombinerRecordIterator.class b/build/classes/fedora/services/oaiprovider/CombinerRecordIterator.class new file mode 100644 index 0000000..3505b08 Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/CombinerRecordIterator.class differ diff --git a/build/classes/fedora/services/oaiprovider/FedoraMetadataFormat.class b/build/classes/fedora/services/oaiprovider/FedoraMetadataFormat.class new file mode 100644 index 0000000..facd90c Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/FedoraMetadataFormat.class differ diff --git a/build/classes/fedora/services/oaiprovider/FedoraOAIDriver.class b/build/classes/fedora/services/oaiprovider/FedoraOAIDriver.class new file mode 100644 index 0000000..4d77025 Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/FedoraOAIDriver.class differ diff --git a/build/classes/fedora/services/oaiprovider/FedoraRecord.class b/build/classes/fedora/services/oaiprovider/FedoraRecord.class new file mode 100644 index 0000000..3b6e637 Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/FedoraRecord.class differ diff --git a/build/classes/fedora/services/oaiprovider/FedoraSetInfo.class b/build/classes/fedora/services/oaiprovider/FedoraSetInfo.class new file mode 100644 index 0000000..28ce8a8 Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/FedoraSetInfo.class differ diff --git a/build/classes/fedora/services/oaiprovider/FedoraSetInfoIterator.class b/build/classes/fedora/services/oaiprovider/FedoraSetInfoIterator.class new file mode 100644 index 0000000..0753f9d Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/FedoraSetInfoIterator.class differ diff --git a/build/classes/fedora/services/oaiprovider/ITQLQueryFactory.class b/build/classes/fedora/services/oaiprovider/ITQLQueryFactory.class new file mode 100644 index 0000000..ac9d6f5 Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/ITQLQueryFactory.class differ diff --git a/build/classes/fedora/services/oaiprovider/InvocationSpec.class b/build/classes/fedora/services/oaiprovider/InvocationSpec.class new file mode 100644 index 0000000..2dbca69 Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/InvocationSpec.class differ diff --git a/build/classes/fedora/services/oaiprovider/MPTItemIterator.class b/build/classes/fedora/services/oaiprovider/MPTItemIterator.class new file mode 100644 index 0000000..4edd2d4 Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/MPTItemIterator.class differ diff --git a/build/classes/fedora/services/oaiprovider/MPTQueryFactory.class b/build/classes/fedora/services/oaiprovider/MPTQueryFactory.class new file mode 100644 index 0000000..46005b2 Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/MPTQueryFactory.class differ diff --git a/build/classes/fedora/services/oaiprovider/MPTResultSetsManager.class b/build/classes/fedora/services/oaiprovider/MPTResultSetsManager.class new file mode 100644 index 0000000..0adad25 Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/MPTResultSetsManager.class differ diff --git a/build/classes/fedora/services/oaiprovider/MPTSetInfoIterator.class b/build/classes/fedora/services/oaiprovider/MPTSetInfoIterator.class new file mode 100644 index 0000000..ac41474 Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/MPTSetInfoIterator.class differ diff --git a/build/classes/fedora/services/oaiprovider/QueryFactory.class b/build/classes/fedora/services/oaiprovider/QueryFactory.class new file mode 100644 index 0000000..3d2070d Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/QueryFactory.class differ diff --git a/build/classes/fedora/services/oaiprovider/ResultCombiner.class b/build/classes/fedora/services/oaiprovider/ResultCombiner.class new file mode 100644 index 0000000..69fbe27 Binary files /dev/null and b/build/classes/fedora/services/oaiprovider/ResultCombiner.class differ diff --git a/build/classes/log4j.xml b/build/classes/log4j.xml new file mode 100644 index 0000000..64318ac --- /dev/null +++ b/build/classes/log4j.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/classes/oai2.xsl b/build/classes/oai2.xsl new file mode 100644 index 0000000..c231307 --- /dev/null +++ b/build/classes/oai2.xsl @@ -0,0 +1,659 @@ + + + + + + + + + + + + + + + +td.value { + vertical-align: top; + padding-left: 1em; + padding: 3px; +} +td.key { + background-color: #e0e0ff; + padding: 3px; + text-align: right; + border: 1px solid #c0c0c0; + white-space: nowrap; + font-weight: bold; + vertical-align: top; +} +.dcdata td.key { + background-color: #ffffe0; +} +body { + margin: 1em 2em 1em 2em; +} +h1, h2, h3 { + font-family: sans-serif; + clear: left; +} +h1 { + padding-bottom: 4px; + margin-bottom: 0px; +} +h2 { + margin-bottom: 0.5em; +} +h3 { + margin-bottom: 0.3em; + font-size: medium; +} +.link { + border: 1px outset #88f; + background-color: #c0c0ff; + padding: 1px 4px 1px 4px; + font-size: 80%; + text-decoration: none; + font-weight: bold; + font-family: sans-serif; + color: black; +} +.link:hover { + color: red; +} +.link:active { + color: red; + border: 1px inset #88f; + background-color: #a0a0df; +} +.oaiRecord, .oaiRecordTitle { + background-color: #f0f0ff; + border-style: solid; + border-color: #d0d0d0; +} +h2.oaiRecordTitle { + background-color: #e0e0ff; + font-size: medium; + font-weight: bold; + padding: 10px; + border-width: 2px 2px 0px 2px; + margin: 0px; +} +.oaiRecord { + margin-bottom: 3em; + border-width: 2px; + padding: 10px; +} + +.results { + margin-bottom: 1.5em; +} +ul.quicklinks { + margin-top: 2px; + padding: 4px; + text-align: left; + border-bottom: 2px solid #ccc; + border-top: 2px solid #ccc; + clear: left; +} +ul.quicklinks li { + font-size: 80%; + display: inline; + list-stlye: none; + font-family: sans-serif; +} +p.intro { + font-size: 80%; +} + + + + + + + + + OAI 2.0 Request Results + + + +

OAI 2.0 Request Results

+ +

You are viewing an HTML version of the XML OAI response. To see the underlying XML use your web browsers view source option. More information about this XSLT is at the bottom of the page.

+ + +

About the XSLT

+

An XSLT file has converted the OAI-PMH 2.0 responses into XHTML which looks nice in a browser which supports XSLT such as Mozilla, Firebird and Internet Explorer. The XSLT file was created by Christopher Gutteridge at the University of Southampton as part of the GNU EPrints system, and is freely redistributable under the GPL.

If you want to use the XSL file on your own OAI interface you may but due to the way XSLT works you must install the XSL file on the same server as the OAI script, you can't just link to this copy.

For more information or to download the XSL file please see the OAI to XHTML XSLT homepage.

+ + + +
+ + + + + + + + + + + + +
Datestamp of response
Request URL
+ + + +

OAI Error(s)

+

The request could not be completed due to the following error or errors.

+
+ +
+
+ +

Request was of type .

+
+ + + + + + +
+
+
+
+ + + + + + + + +
Error Code
+

+
+ + + + + + + + + + + + + + + + + + +
Repository Name
Base URL
Protocol Version
Earliest Datestamp
Deleted Record Policy
Granularity
+ + +
+ + + Admin Email + + + + + + +

Unsupported Description Type

+

The XSL currently does not support this type of description.

+
+ +
+
+ + + + + +

OAI-Identifier

+ + + + + + + + + +
Scheme
Repository Identifier
Delimiter
Sample OAI Identifier
+
+ + + + + +

EPrints Description

+ +

Content

+ +
+ +

Submission Policy

+ +
+

Metadata Policy

+ +

Data Policy

+ + +
+ + + +

+
+ +
+
+
+ + +

Comment

+
+
+ + + + + +

Friends

+
    + +
+
+ + +
  • + +Identify
  • +
    + + + + + +

    Branding

    + + +
    + + +

    Icon

    + + + {br:title} + + + {br:title} + + +
    + + +

    Metadata Rendering Rule

    + + + + + + + +
    URL
    Namespace
    Mime Type
    +
    + + + + + + +

    Gateway Information

    + + + + + + + + + + + + + + +
    Source
    Description
    URL
    Notes
    +
    + + + Admin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Set

    + + + + +
    setName
    +
    + + + + + + +

    This is a list of metadata formats available for the record "". Use these links to view the metadata:

    +
    + +

    This is a list of metadata formats available from this archive.

    +
    +
    + +
    + + +

    Metadata Format

    + + + + + + + +
    metadataPrefix
    metadataNamespace
    schema
    +
    + + + + + + + + +

    OAI Record:

    +
    + + + +
    +
    + + +

    OAI Record Header

    + + + + + + +
    OAI Identifier + + oai_dc + formats +
    Datestamp
    + +

    This record has been deleted.

    +
    +
    + + + +

    "about" part of record container not supported by the XSL

    +
    + + +   + + + + + + + + + + setSpec + + Identifiers + Records + + + + + + + + +

    There are more results.

    + + + +
    resumptionToken: + +Resume
    +
    + + + + +

    Unknown Metadata Format

    +
    + +
    +
    + + + + +
    +

    Dublin Core Metadata (oai_dc)

    + + +
    +
    +
    + + +Title + + +Author or Creator + + +Subject and Keywords + + +Description + + +Publisher + + +Other Contributor + + +Date + + +Resource Type + + +Format + + +Resource Identifier + + +Source + + +Language + + +Relation + + + + + URL + URL not shown as it is very long. + + + + + + + + + + + + + +Coverage + + +Rights Management + + + + +
    + <></> +
    +
    + + + + + ="" + + + +.xmlSource { + font-size: 70%; + border: solid #c0c0a0 1px; + background-color: #ffffe0; + padding: 2em 2em 2em 0em; +} +.xmlBlock { + padding-left: 2em; +} +.xmlTagName { + color: #800000; + font-weight: bold; +} +.xmlAttrName { + font-weight: bold; +} +.xmlAttrValue { + color: #0000c0; +} + + +
    + diff --git a/build/classes/proai.properties b/build/classes/proai.properties new file mode 100644 index 0000000..fc4284b --- /dev/null +++ b/build/classes/proai.properties @@ -0,0 +1,487 @@ +# +# Proai Configuration +# ================================ + +############################## +# Front-End OAI-PMH Behavior # +############################## + +# For multi-part OAI responses, this specifies the maximum time to wait +# between requests before cleaning up the session. +# +proai.secondsBetweenRequests = 600 + +# The maximum number of records to include in each part of a +# ListRecords response. +# +proai.incompleteRecordListSize = 250 + +# The maximum number of record headers to include in each part of a +# ListIdentifiers response. +# +proai.incompleteIdentifierListSize = 500 + +# The maximum number of sets to include in each part of a +# ListSets response. +# +proai.incompleteSetListSize = 500 + +# If set this will include a processing instruction for stylesheet +# usage into the XML-response. +# Note: For using this a stylesheet has to be accessible via http at +# the location defined by the argument. For instance /oai2.xsl +# means this file should be accessible at +# http://example.org:8080/oai2.xsl +# +proai.stylesheetLocation = /oai2.xsl + +############################ +# Back-End Update Behavior # +############################ + +# How often Proai should poll the driver for updates. +# +proai.driverPollSeconds = 120 + +# Set this to false to start the service without polling enabled. +# Note: You can also change polling behavior while the service is running +# by executing the following SQL against the database: +# +#
    +#     UPDATE rcAdmin SET pollingEnabled = 0 (or 1 to enable it)
    +# 
    +# +# The value configured via this property will always be put into effect +# when the service is started. +# +proai.driverPollingEnabled = true + +# The maximum number of worker threads to use while retrieving new/updated +# OAI records from the driver. +# +proai.maxWorkers = 5 + +# How many requests each worker thread should make before returning the +# batch to the database to be committed. +# +proai.maxWorkBatchSize = 10 + +# If a request of the driver for a specific record fails for any reason, +# this is the maximum number of times that record should be automatically +# retried before giving up on that record. If this is exceeded, the +# record information will remain in the rcFailure table until it is dealt +# with manually. +# +proai.maxFailedRetries = 3 + +# The maximum size the in-memory record commit queue is allowed to reach. +# If this threshold is reached, it means that worker threads are returning +# results faster than they can be committed to the database by the commit +# thread. If this occurs, workers will have to wait until more items have +# been committed before they can add any more to the queue. +# +proai.maxCommitQueueSize = 120 + +# The maximum number of record updates (from the in-memory commit queue) +# that should be committed to the database at one time. +# +proai.maxRecordsPerTransaction = 60 + +# Whether to run schema validation during the update process. +# This defaults to true. +# +proai.validateUpdates = true + +########################## +# File Storage Locations # +########################## + +# The directory where cache files should be stored. This will be created +# if it doesn't exist. IMPORTANT: You should change this from /tmp to +# a permanent directory of your choosing. The default value here is +# just used for testing. +# +proai.cacheBaseDir = /tmp/proai/cache + +# Where OAI-PMH session data will be stored when needed. +# This directory will be created at startup if it doesn't already exist. +# +# Each session consists of a series of small data files in a uniquely-named +# subdirectory beneath this one. They are automatically created and +# removed as needed. +# +proai.sessionBaseDir = /tmp/proai/sessions + +# Where to store schema files if validation is enabled. +# +proai.schemaDir = /tmp/proai/schemas + +################################## +# Primary Database Configuration # +################################## + +# The JDBC connection URL for the database that will be used by the cache. +# +#

    Embedded McKoi example:
    +# jdbc:mckoi:local://build/test/mckoi/mckoi.conf?create_or_boot=true +#

    +#

    Local McKoi example:
    +# jdbc:mckoi://localhost/ +#

    +#

    Local MySQL example:
    +# jdbc:mysql://localhost/proai?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true +#

    +#

    Local Oracle example:
    +# jdbc:oracle:thin:@localhost:1521:proai +#

    +#

    Local Postgres example:
    +# jdbc:postgresql://localhost/proai +#

    +# +proai.db.url = jdbc:postgresql://localhost/proai + +# The class name of the JDBC driver appropriate for use +# with the connection url. The appropriate library must be +# in the classpath. +# +#

    Mckoi example:
    +# proai.db.driverClassName = com.mckoi.JDBCDriver +#

    +#

    MySQL example:
    +# proai.db.driverClassName = com.mysql.jdbc.Driver +#

    +#

    Oracle example:
    +# proai.db.driverClassName = oracle.jdbc.driver.OracleDriver +#

    +#

    Postgres example:
    +# proai.db.driverClassName = org.postgresql.Driver +#

    +# +proai.db.driverClassName = org.postgresql.Driver + +# If using MySQL, this indicates whether to stream query results +# one-at-a-time from the database to conserve memory. If unspecified, +# this defaults to false. +# +#

    +# Background: For large repositories, MySQL's default behavior of reading +# all results into memory can cause OutOfMemory errors in +# Proai. If this value is set to true, memory requirements for Proai +# will be lower, but query performance will suffer. For more detail, +# please see the +# Connector-J +# Implementation Notes. +#

    +# +proai.db.mySQLResultTrickling = false + +# The database user. This user should already exist in the database +# and must have permission to create, modify, and query tables. +# +proai.db.username = proai + +# The password for the database user. +# +proai.db.password = proai + + +################################### +# Advanced Database Configuration # +################################### + +# The maxiumum number of connections from the pool that may be active +# (leased) at once. If unspecified, this defaults to 8. +# +proai.db.maxActive = 16 + +# The maximum number of milliseconds to wait for a connection from the +# pool if none are available. If unspecified, this defaults to -1, +# which means "indefinite". +# +proai.db.maxWait = 5000 + +# proai.db.* +# +# Any other properties defined by the Apache commons-DBCP project +# can be specified. See the full list (and documentation) at +# http://jakarta.apache.org/commons/dbcp/configuration.html +# +# To use standard DBCP properties, just prefix them with "proai.db." +# here. + +# proai.db.connection.* +# +# To use JDBC driver-specific properties (in DBCP, these +# are called "connectionProperties"), prefix them with +# "proai.db.connection.". + +# The Java class responsible for creating the database tables required +# by Proai's record cache. +# +#

    The name of the property should be the driverClassName of the JDBC +# driver you're using, plus ".ddlConverter".

    +# +com.mckoi.JDBCDriver.ddlConverter = proai.util.McKoiDDLConverter +com.mysql.jdbc.Driver.ddlConverter = proai.util.MySQLDDLConverter +oracle.jdbc.driver.OracleDriver.ddlConverter = proai.util.OracleDDLConverter +org.postgresql.Driver.ddlConverter = proai.util.PostgresDDLConverter + +# Whether the database interprets backslashes in SQL strings as +# escape characters. This is needed to that Proai can formulate +# proper queries against the database. +# +#

    The name of the property should be the driverClassName of the JDBC +# driver you're using plus ".backslashIsEscape". If unspecified, +# backslashIsEscape will be assumed true.

    +# +com.mckoi.JDBCDriver.backslashIsEscape = true +com.mysql.jdbc.Driver.backslashIsEscape = true +oracle.jdbc.driver.OracleDriver.backslashIsEscape = false +org.postgresql.Driver.backslashIsEscape = true + + +################################### +# Fedora Driver: General Settings # +################################### + +# The class name of the proai.driver.OAIDriver implementation to use. +# +# This value should never need changing -- it just informs Proai that +# we're using the Fedora driver. +# +proai.driverClassName = fedora.services.oaiprovider.FedoraOAIDriver + +# The class name of the fedora.services.oaiprovider.QueryFactory +# implementation to use. +# +# This allows the OAI Provider to work with Fedora's Resource Index +# whether it's backed by Kowari or MPTStore. If the RI uses Kowari, +# the value here should be fedora.services.oaiprovider.ITQLQueryFactory +# If it uses MPTStore, the value should be +# fedora.services.oaiprovider.MPTQueryFactory +# +driver.fedora.queryFactory = fedora.services.oaiprovider.ITQLQueryFactory + +# The base URL of the Fedora repository to query and get records from. +# +driver.fedora.baseURL = http://localhost:8080/fedora/ + +# Identifies a Fedora user that has privileges to do a resource index +# query via the risearch interface, and can get all needed disseminations +# that represent OAI records in the Fedora repository. +# +driver.fedora.user = fedoraAdmin + +# Password for the Fedora user. +# +driver.fedora.pass = fedoraAdmin + +# When querying the resource index, the maximum number of seconds to +# wait for the http connection to be established before giving up. +# +driver.fedora.queryConnectionTimeout = 30 + +# When querying the resource index, the maximum number of seconds of +# socket inactivity to allow before giving up. +# +driver.fedora.querySocketTimeout = 600 + +# When getting xml data from Fedora, the maximum number of seconds to +# wait for the http connection to be established before giving up. +# +driver.fedora.disseminationConnectionTimeout = 30 + +# When getting xml data from Fedora, the maximum number of seconds of +# socket inactivity to allow before giving up. +# +driver.fedora.disseminationSocketTimeout = 120 + +# The location of the XML that should be used to respond to OAI +# "Identify" requests. +# +# This can be any URL, but typically it points to a manually-created +# datastream within the same Fedora repository that hosts the OAI records. +# +driver.fedora.identify = http://localhost:8080/fedora/get/demo:MyRepository/Identify.xml + +# The name of the RELS-EXT property whose value (a plain literal) +# contains the OAI item ID for records that are provided by an object. +# +# A value for this property *must* exist in RELS-EXT before any of an +# object's disseminations will be considered to be OAI records. +# +driver.fedora.itemID = http://www.openarchives.org/OAI/2.0/itemID + + +################################################ +# Fedora Driver: Metadata Format Configuration # +################################################ + +# Metadata formats to make available. +# +# This is a space-delimited list of all formats provided, +# identified by OAI metadata prefix. +# +driver.fedora.md.formats = oai_dc test_format formatX formatY + +# The location of the W3C schema for each format. +# +# Example property name: +# driver.fedora.md.format.your_format.loc. +# +driver.fedora.md.format.oai_dc.loc = http://www.openarchives.org/OAI/2.0/oai_dc.xsd +driver.fedora.md.format.test_format.loc = http://example.org/test_format.xsd +driver.fedora.md.format.formatX.loc = http://example.org/formatX.xsd +driver.fedora.md.format.formatY.loc = http://example.org/formatY.xsd + +# The namespace URI for each format. +# +# Example property name: +# driver.fedora.md.format.your_format.uri. +# +driver.fedora.md.format.oai_dc.uri = http://www.openarchives.org/OAI/2.0/oai_dc/ +driver.fedora.md.format.test_format.uri = http://example.org/test_format/ +driver.fedora.md.format.formatX.uri = http://example.org/formatX/ +driver.fedora.md.format.formatY.uri = http://example.org/formatY/ + +# The Fedora dissemination type for each format. +# +#

    A Fedora dissemination type is a URI starting with +# info:fedora/*/ and ending with a datastream ID (such as "DC"), +# a Behavior Definition PID followed by "/methodName", +# or a Behavior Definition PID followed by "/methodName?name=value".

    +# +#

    The dissType is the key to mapping an OAI metadata format to +# a kind of Fedora dissemination. Here are a few examples:

    +# +#
    +# info:fedora/*/DC                  ; identifies the "DC" datastream
    +#
    +# info:fedora/*/demo:1/getDC        ; identifies the "getDC" method of the 
    +#                                   ; demo:1 behavior definition
    +#
    +# info:fedora/*/demo:1/getMD?fmt=dc ; identifies the "getMD" method of the 
    +#                                   ; demo:1 behavior definition, when
    +#                                   ; invoked with the required "fmt"
    +#                                   ; parameter
    +# 
    +# +# When the OAI provider queries Fedora for records in your_format, +# it uses this special value to constrain the query to only those +# disseminations that are in the expected format. +# Thus, all records that the OAI provider considers to be in +# your_format must have this dissemination type. +# +# Example property name: +# driver.fedora.md.format.your_format.dissType. +# +driver.fedora.md.format.oai_dc.dissType = info:fedora/*/oai_dc +driver.fedora.md.format.test_format.dissType = info:fedora/*/test_format +driver.fedora.md.format.formatX.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadata?format=x +driver.fedora.md.format.formatY.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadata?format=y + +# The Fedora dissemination type for each format. +# +# This optional property identifies the OAI "about" dissemination +# type for your_format. If specified for your_format, then the OAI provider +# will attempt to find disseminations of this type for each object +# that has a matching your_format.dissType. If such a dissemination +# is found, for that particular object, the information therein +# will be used as the "about" metadata for the record. +# +# Example property name: +# driver.fedora.md.format.your_format.about.dissType. +# +driver.fedora.md.format.oai_dc.about.dissType = info:fedora/*/about_oai_dc +driver.fedora.md.format.formatX.about.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadataAbout?format=x +driver.fedora.md.format.formatY.about.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadataAbout?format=y + + +############################################### +# Fedora Driver: Set Membership Configuration # +############################################### + +# The name of the RELS-EXT property that indicates the unique setSpec +# string of a Fedora object representing an OAI set. +# This property must exist on any Fedora object that should +# represent an OAI set. +# +driver.fedora.setSpec = http://www.openarchives.org/OAI/2.0/setSpec + +# The name of the RELS-EXT property that indicates the name of +# a Fedora object representing an OAI set. +# In addition to setSpec, this property must also exist on any +# Fedora object that should represent an OAI set. +# +driver.fedora.setSpec.name = http://www.openarchives.org/OAI/2.0/setName + +# The dissemination type for the XML that describes a set. +# If a dissemination of this type is available for a Fedora object +# representing an OAI set, the content of the dissemination will +# be used in ListSets responses. +# +driver.fedora.setSpec.desc.dissType = info:fedora/*/SetInfo.xml + +# The "triple pattern" identifying the path from objects to the +# setsSpecs (short names) of sets they are members of. +# +#

    The path must contain $item and $setSpec, with the $item +# variable representing a Fedora object in the resource index, +# and the $setSpec representing the setSpec name.

    +# +driver.fedora.itemSetSpecPath = $item $set $set $setSpec + +######################################### +# Fedora Driver: MPTStore Configuration # +######################################### + +# The values below only need to be configured if using +# MPTQueryFactory (Fedora's Resource Index is backed by MPTStore). +# +NOTE=. + +# The JDBC driver class for connecting to the MPTStore database. +# +driver.fedora.mpt.db.driverClassName = org.postgresql.Driver + +# The database-specific DDLGenerator to use for MPTStore. +# +driver.fedora.mpt.db.ddlGenerator = org.nsdl.mptstore.impl.postgres.PostgresDDLGenerator + +# The JDBC URL for connecting to the MPTStore database. +# +driver.fedora.mpt.jdbc.url = jdbc:postgresql://localhost/riTriples + +# The user to connect to the MPTStore database as. +# +driver.fedora.mpt.jdbc.user = fedoraAdmin + +# The MPTStore database user's password. +# +driver.fedora.mpt.jdbc.password = fedoraAdmin + +# This configuration value is necessary to initialize the MPTStore library, +# and should not need to be changed. +# +driver.fedora.mpt.db.map = tmap + +# This configuration value is necessary to initialize the MPTStore library, +# and should not need to be changed. +# +driver.fedora.mpt.db.prefix = t + + +######################################### +# Fedora Driver: Advanced Configuration # +######################################### + +# driver.fedora.deleted +# This is the name of the RELS-EXT predicate that indicates the state +# of all records within the object. +# +#

    The normal behavior is that the Fedora-controlled "state" property +# of the dissemination (or datastream) itself indicates the oai deleted +# status. This can be used to specify the status via any object +# property, if desired.

    +# +#driver.fedora.deleted = info:fedora/fedora-system:def/model#state diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/CombinerRecordIterator.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/CombinerRecordIterator.class new file mode 100644 index 0000000..3505b08 Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/CombinerRecordIterator.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraMetadataFormat.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraMetadataFormat.class new file mode 100644 index 0000000..facd90c Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraMetadataFormat.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraOAIDriver.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraOAIDriver.class new file mode 100644 index 0000000..4d77025 Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraOAIDriver.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraRecord.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraRecord.class new file mode 100644 index 0000000..3b6e637 Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraRecord.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraSetInfo.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraSetInfo.class new file mode 100644 index 0000000..28ce8a8 Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraSetInfo.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraSetInfoIterator.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraSetInfoIterator.class new file mode 100644 index 0000000..0753f9d Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/FedoraSetInfoIterator.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/ITQLQueryFactory.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/ITQLQueryFactory.class new file mode 100644 index 0000000..ac9d6f5 Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/ITQLQueryFactory.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/InvocationSpec.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/InvocationSpec.class new file mode 100644 index 0000000..2dbca69 Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/InvocationSpec.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTItemIterator.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTItemIterator.class new file mode 100644 index 0000000..4edd2d4 Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTItemIterator.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTQueryFactory.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTQueryFactory.class new file mode 100644 index 0000000..46005b2 Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTQueryFactory.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTResultSetsManager.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTResultSetsManager.class new file mode 100644 index 0000000..0adad25 Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTResultSetsManager.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTSetInfoIterator.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTSetInfoIterator.class new file mode 100644 index 0000000..ac41474 Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/MPTSetInfoIterator.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/QueryFactory.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/QueryFactory.class new file mode 100644 index 0000000..3d2070d Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/QueryFactory.class differ diff --git a/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/ResultCombiner.class b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/ResultCombiner.class new file mode 100644 index 0000000..69fbe27 Binary files /dev/null and b/build/webapp/WEB-INF/classes/fedora/services/oaiprovider/ResultCombiner.class differ diff --git a/build/webapp/WEB-INF/classes/log4j.xml b/build/webapp/WEB-INF/classes/log4j.xml new file mode 100644 index 0000000..64318ac --- /dev/null +++ b/build/webapp/WEB-INF/classes/log4j.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/webapp/WEB-INF/classes/oai2.xsl b/build/webapp/WEB-INF/classes/oai2.xsl new file mode 100644 index 0000000..c231307 --- /dev/null +++ b/build/webapp/WEB-INF/classes/oai2.xsl @@ -0,0 +1,659 @@ + + + + + + + + + + + + + + + +td.value { + vertical-align: top; + padding-left: 1em; + padding: 3px; +} +td.key { + background-color: #e0e0ff; + padding: 3px; + text-align: right; + border: 1px solid #c0c0c0; + white-space: nowrap; + font-weight: bold; + vertical-align: top; +} +.dcdata td.key { + background-color: #ffffe0; +} +body { + margin: 1em 2em 1em 2em; +} +h1, h2, h3 { + font-family: sans-serif; + clear: left; +} +h1 { + padding-bottom: 4px; + margin-bottom: 0px; +} +h2 { + margin-bottom: 0.5em; +} +h3 { + margin-bottom: 0.3em; + font-size: medium; +} +.link { + border: 1px outset #88f; + background-color: #c0c0ff; + padding: 1px 4px 1px 4px; + font-size: 80%; + text-decoration: none; + font-weight: bold; + font-family: sans-serif; + color: black; +} +.link:hover { + color: red; +} +.link:active { + color: red; + border: 1px inset #88f; + background-color: #a0a0df; +} +.oaiRecord, .oaiRecordTitle { + background-color: #f0f0ff; + border-style: solid; + border-color: #d0d0d0; +} +h2.oaiRecordTitle { + background-color: #e0e0ff; + font-size: medium; + font-weight: bold; + padding: 10px; + border-width: 2px 2px 0px 2px; + margin: 0px; +} +.oaiRecord { + margin-bottom: 3em; + border-width: 2px; + padding: 10px; +} + +.results { + margin-bottom: 1.5em; +} +ul.quicklinks { + margin-top: 2px; + padding: 4px; + text-align: left; + border-bottom: 2px solid #ccc; + border-top: 2px solid #ccc; + clear: left; +} +ul.quicklinks li { + font-size: 80%; + display: inline; + list-stlye: none; + font-family: sans-serif; +} +p.intro { + font-size: 80%; +} + + + + + + + + + OAI 2.0 Request Results + + + +

    OAI 2.0 Request Results

    + +

    You are viewing an HTML version of the XML OAI response. To see the underlying XML use your web browsers view source option. More information about this XSLT is at the bottom of the page.

    + + +

    About the XSLT

    +

    An XSLT file has converted the OAI-PMH 2.0 responses into XHTML which looks nice in a browser which supports XSLT such as Mozilla, Firebird and Internet Explorer. The XSLT file was created by Christopher Gutteridge at the University of Southampton as part of the GNU EPrints system, and is freely redistributable under the GPL.

    If you want to use the XSL file on your own OAI interface you may but due to the way XSLT works you must install the XSL file on the same server as the OAI script, you can't just link to this copy.

    For more information or to download the XSL file please see the OAI to XHTML XSLT homepage.

    + + + +
    + + + + + + + + + + + + +
    Datestamp of response
    Request URL
    + + + +

    OAI Error(s)

    +

    The request could not be completed due to the following error or errors.

    +
    + +
    +
    + +

    Request was of type .

    +
    + + + + + + +
    +
    +
    +
    + + + + + + + + +
    Error Code
    +

    +
    + + + + + + + + + + + + + + + + + + +
    Repository Name
    Base URL
    Protocol Version
    Earliest Datestamp
    Deleted Record Policy
    Granularity
    + + +
    + + + Admin Email + + + + + + +

    Unsupported Description Type

    +

    The XSL currently does not support this type of description.

    +
    + +
    +
    + + + + + +

    OAI-Identifier

    + + + + + + + + + +
    Scheme
    Repository Identifier
    Delimiter
    Sample OAI Identifier
    +
    + + + + + +

    EPrints Description

    + +

    Content

    + +
    + +

    Submission Policy

    + +
    +

    Metadata Policy

    + +

    Data Policy

    + + +
    + + + +

    +
    + +
    +
    +
    + + +

    Comment

    +
    +
    + + + + + +

    Friends

    +
      + +
    +
    + + +
  • + +Identify
  • +
    + + + + + +

    Branding

    + + +
    + + +

    Icon

    + + + {br:title} + + + {br:title} + + +
    + + +

    Metadata Rendering Rule

    + + + + + + + +
    URL
    Namespace
    Mime Type
    +
    + + + + + + +

    Gateway Information

    + + + + + + + + + + + + + + +
    Source
    Description
    URL
    Notes
    +
    + + + Admin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Set

    + + + + +
    setName
    +
    + + + + + + +

    This is a list of metadata formats available for the record "". Use these links to view the metadata:

    +
    + +

    This is a list of metadata formats available from this archive.

    +
    +
    + +
    + + +

    Metadata Format

    + + + + + + + +
    metadataPrefix
    metadataNamespace
    schema
    +
    + + + + + + + + +

    OAI Record:

    +
    + + + +
    +
    + + +

    OAI Record Header

    + + + + + + +
    OAI Identifier + + oai_dc + formats +
    Datestamp
    + +

    This record has been deleted.

    +
    +
    + + + +

    "about" part of record container not supported by the XSL

    +
    + + +   + + + + + + + + + + setSpec + + Identifiers + Records + + + + + + + + +

    There are more results.

    + + + +
    resumptionToken: + +Resume
    +
    + + + + +

    Unknown Metadata Format

    +
    + +
    +
    + + + + +
    +

    Dublin Core Metadata (oai_dc)

    + + +
    +
    +
    + + +Title + + +Author or Creator + + +Subject and Keywords + + +Description + + +Publisher + + +Other Contributor + + +Date + + +Resource Type + + +Format + + +Resource Identifier + + +Source + + +Language + + +Relation + + + + + URL + URL not shown as it is very long. + + + + + + + + + + + + + +Coverage + + +Rights Management + + + + +
    + <></> +
    +
    + + + + + ="" + + + +.xmlSource { + font-size: 70%; + border: solid #c0c0a0 1px; + background-color: #ffffe0; + padding: 2em 2em 2em 0em; +} +.xmlBlock { + padding-left: 2em; +} +.xmlTagName { + color: #800000; + font-weight: bold; +} +.xmlAttrName { + font-weight: bold; +} +.xmlAttrValue { + color: #0000c0; +} + + +
    + diff --git a/build/webapp/WEB-INF/classes/proai.properties b/build/webapp/WEB-INF/classes/proai.properties new file mode 100644 index 0000000..fc4284b --- /dev/null +++ b/build/webapp/WEB-INF/classes/proai.properties @@ -0,0 +1,487 @@ +# +# Proai Configuration +# ================================ + +############################## +# Front-End OAI-PMH Behavior # +############################## + +# For multi-part OAI responses, this specifies the maximum time to wait +# between requests before cleaning up the session. +# +proai.secondsBetweenRequests = 600 + +# The maximum number of records to include in each part of a +# ListRecords response. +# +proai.incompleteRecordListSize = 250 + +# The maximum number of record headers to include in each part of a +# ListIdentifiers response. +# +proai.incompleteIdentifierListSize = 500 + +# The maximum number of sets to include in each part of a +# ListSets response. +# +proai.incompleteSetListSize = 500 + +# If set this will include a processing instruction for stylesheet +# usage into the XML-response. +# Note: For using this a stylesheet has to be accessible via http at +# the location defined by the argument. For instance /oai2.xsl +# means this file should be accessible at +# http://example.org:8080/oai2.xsl +# +proai.stylesheetLocation = /oai2.xsl + +############################ +# Back-End Update Behavior # +############################ + +# How often Proai should poll the driver for updates. +# +proai.driverPollSeconds = 120 + +# Set this to false to start the service without polling enabled. +# Note: You can also change polling behavior while the service is running +# by executing the following SQL against the database: +# +#
    +#     UPDATE rcAdmin SET pollingEnabled = 0 (or 1 to enable it)
    +# 
    +# +# The value configured via this property will always be put into effect +# when the service is started. +# +proai.driverPollingEnabled = true + +# The maximum number of worker threads to use while retrieving new/updated +# OAI records from the driver. +# +proai.maxWorkers = 5 + +# How many requests each worker thread should make before returning the +# batch to the database to be committed. +# +proai.maxWorkBatchSize = 10 + +# If a request of the driver for a specific record fails for any reason, +# this is the maximum number of times that record should be automatically +# retried before giving up on that record. If this is exceeded, the +# record information will remain in the rcFailure table until it is dealt +# with manually. +# +proai.maxFailedRetries = 3 + +# The maximum size the in-memory record commit queue is allowed to reach. +# If this threshold is reached, it means that worker threads are returning +# results faster than they can be committed to the database by the commit +# thread. If this occurs, workers will have to wait until more items have +# been committed before they can add any more to the queue. +# +proai.maxCommitQueueSize = 120 + +# The maximum number of record updates (from the in-memory commit queue) +# that should be committed to the database at one time. +# +proai.maxRecordsPerTransaction = 60 + +# Whether to run schema validation during the update process. +# This defaults to true. +# +proai.validateUpdates = true + +########################## +# File Storage Locations # +########################## + +# The directory where cache files should be stored. This will be created +# if it doesn't exist. IMPORTANT: You should change this from /tmp to +# a permanent directory of your choosing. The default value here is +# just used for testing. +# +proai.cacheBaseDir = /tmp/proai/cache + +# Where OAI-PMH session data will be stored when needed. +# This directory will be created at startup if it doesn't already exist. +# +# Each session consists of a series of small data files in a uniquely-named +# subdirectory beneath this one. They are automatically created and +# removed as needed. +# +proai.sessionBaseDir = /tmp/proai/sessions + +# Where to store schema files if validation is enabled. +# +proai.schemaDir = /tmp/proai/schemas + +################################## +# Primary Database Configuration # +################################## + +# The JDBC connection URL for the database that will be used by the cache. +# +#

    Embedded McKoi example:
    +# jdbc:mckoi:local://build/test/mckoi/mckoi.conf?create_or_boot=true +#

    +#

    Local McKoi example:
    +# jdbc:mckoi://localhost/ +#

    +#

    Local MySQL example:
    +# jdbc:mysql://localhost/proai?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true +#

    +#

    Local Oracle example:
    +# jdbc:oracle:thin:@localhost:1521:proai +#

    +#

    Local Postgres example:
    +# jdbc:postgresql://localhost/proai +#

    +# +proai.db.url = jdbc:postgresql://localhost/proai + +# The class name of the JDBC driver appropriate for use +# with the connection url. The appropriate library must be +# in the classpath. +# +#

    Mckoi example:
    +# proai.db.driverClassName = com.mckoi.JDBCDriver +#

    +#

    MySQL example:
    +# proai.db.driverClassName = com.mysql.jdbc.Driver +#

    +#

    Oracle example:
    +# proai.db.driverClassName = oracle.jdbc.driver.OracleDriver +#

    +#

    Postgres example:
    +# proai.db.driverClassName = org.postgresql.Driver +#

    +# +proai.db.driverClassName = org.postgresql.Driver + +# If using MySQL, this indicates whether to stream query results +# one-at-a-time from the database to conserve memory. If unspecified, +# this defaults to false. +# +#

    +# Background: For large repositories, MySQL's default behavior of reading +# all results into memory can cause OutOfMemory errors in +# Proai. If this value is set to true, memory requirements for Proai +# will be lower, but query performance will suffer. For more detail, +# please see the +# Connector-J +# Implementation Notes. +#

    +# +proai.db.mySQLResultTrickling = false + +# The database user. This user should already exist in the database +# and must have permission to create, modify, and query tables. +# +proai.db.username = proai + +# The password for the database user. +# +proai.db.password = proai + + +################################### +# Advanced Database Configuration # +################################### + +# The maxiumum number of connections from the pool that may be active +# (leased) at once. If unspecified, this defaults to 8. +# +proai.db.maxActive = 16 + +# The maximum number of milliseconds to wait for a connection from the +# pool if none are available. If unspecified, this defaults to -1, +# which means "indefinite". +# +proai.db.maxWait = 5000 + +# proai.db.* +# +# Any other properties defined by the Apache commons-DBCP project +# can be specified. See the full list (and documentation) at +# http://jakarta.apache.org/commons/dbcp/configuration.html +# +# To use standard DBCP properties, just prefix them with "proai.db." +# here. + +# proai.db.connection.* +# +# To use JDBC driver-specific properties (in DBCP, these +# are called "connectionProperties"), prefix them with +# "proai.db.connection.". + +# The Java class responsible for creating the database tables required +# by Proai's record cache. +# +#

    The name of the property should be the driverClassName of the JDBC +# driver you're using, plus ".ddlConverter".

    +# +com.mckoi.JDBCDriver.ddlConverter = proai.util.McKoiDDLConverter +com.mysql.jdbc.Driver.ddlConverter = proai.util.MySQLDDLConverter +oracle.jdbc.driver.OracleDriver.ddlConverter = proai.util.OracleDDLConverter +org.postgresql.Driver.ddlConverter = proai.util.PostgresDDLConverter + +# Whether the database interprets backslashes in SQL strings as +# escape characters. This is needed to that Proai can formulate +# proper queries against the database. +# +#

    The name of the property should be the driverClassName of the JDBC +# driver you're using plus ".backslashIsEscape". If unspecified, +# backslashIsEscape will be assumed true.

    +# +com.mckoi.JDBCDriver.backslashIsEscape = true +com.mysql.jdbc.Driver.backslashIsEscape = true +oracle.jdbc.driver.OracleDriver.backslashIsEscape = false +org.postgresql.Driver.backslashIsEscape = true + + +################################### +# Fedora Driver: General Settings # +################################### + +# The class name of the proai.driver.OAIDriver implementation to use. +# +# This value should never need changing -- it just informs Proai that +# we're using the Fedora driver. +# +proai.driverClassName = fedora.services.oaiprovider.FedoraOAIDriver + +# The class name of the fedora.services.oaiprovider.QueryFactory +# implementation to use. +# +# This allows the OAI Provider to work with Fedora's Resource Index +# whether it's backed by Kowari or MPTStore. If the RI uses Kowari, +# the value here should be fedora.services.oaiprovider.ITQLQueryFactory +# If it uses MPTStore, the value should be +# fedora.services.oaiprovider.MPTQueryFactory +# +driver.fedora.queryFactory = fedora.services.oaiprovider.ITQLQueryFactory + +# The base URL of the Fedora repository to query and get records from. +# +driver.fedora.baseURL = http://localhost:8080/fedora/ + +# Identifies a Fedora user that has privileges to do a resource index +# query via the risearch interface, and can get all needed disseminations +# that represent OAI records in the Fedora repository. +# +driver.fedora.user = fedoraAdmin + +# Password for the Fedora user. +# +driver.fedora.pass = fedoraAdmin + +# When querying the resource index, the maximum number of seconds to +# wait for the http connection to be established before giving up. +# +driver.fedora.queryConnectionTimeout = 30 + +# When querying the resource index, the maximum number of seconds of +# socket inactivity to allow before giving up. +# +driver.fedora.querySocketTimeout = 600 + +# When getting xml data from Fedora, the maximum number of seconds to +# wait for the http connection to be established before giving up. +# +driver.fedora.disseminationConnectionTimeout = 30 + +# When getting xml data from Fedora, the maximum number of seconds of +# socket inactivity to allow before giving up. +# +driver.fedora.disseminationSocketTimeout = 120 + +# The location of the XML that should be used to respond to OAI +# "Identify" requests. +# +# This can be any URL, but typically it points to a manually-created +# datastream within the same Fedora repository that hosts the OAI records. +# +driver.fedora.identify = http://localhost:8080/fedora/get/demo:MyRepository/Identify.xml + +# The name of the RELS-EXT property whose value (a plain literal) +# contains the OAI item ID for records that are provided by an object. +# +# A value for this property *must* exist in RELS-EXT before any of an +# object's disseminations will be considered to be OAI records. +# +driver.fedora.itemID = http://www.openarchives.org/OAI/2.0/itemID + + +################################################ +# Fedora Driver: Metadata Format Configuration # +################################################ + +# Metadata formats to make available. +# +# This is a space-delimited list of all formats provided, +# identified by OAI metadata prefix. +# +driver.fedora.md.formats = oai_dc test_format formatX formatY + +# The location of the W3C schema for each format. +# +# Example property name: +# driver.fedora.md.format.your_format.loc. +# +driver.fedora.md.format.oai_dc.loc = http://www.openarchives.org/OAI/2.0/oai_dc.xsd +driver.fedora.md.format.test_format.loc = http://example.org/test_format.xsd +driver.fedora.md.format.formatX.loc = http://example.org/formatX.xsd +driver.fedora.md.format.formatY.loc = http://example.org/formatY.xsd + +# The namespace URI for each format. +# +# Example property name: +# driver.fedora.md.format.your_format.uri. +# +driver.fedora.md.format.oai_dc.uri = http://www.openarchives.org/OAI/2.0/oai_dc/ +driver.fedora.md.format.test_format.uri = http://example.org/test_format/ +driver.fedora.md.format.formatX.uri = http://example.org/formatX/ +driver.fedora.md.format.formatY.uri = http://example.org/formatY/ + +# The Fedora dissemination type for each format. +# +#

    A Fedora dissemination type is a URI starting with +# info:fedora/*/ and ending with a datastream ID (such as "DC"), +# a Behavior Definition PID followed by "/methodName", +# or a Behavior Definition PID followed by "/methodName?name=value".

    +# +#

    The dissType is the key to mapping an OAI metadata format to +# a kind of Fedora dissemination. Here are a few examples:

    +# +#
    +# info:fedora/*/DC                  ; identifies the "DC" datastream
    +#
    +# info:fedora/*/demo:1/getDC        ; identifies the "getDC" method of the 
    +#                                   ; demo:1 behavior definition
    +#
    +# info:fedora/*/demo:1/getMD?fmt=dc ; identifies the "getMD" method of the 
    +#                                   ; demo:1 behavior definition, when
    +#                                   ; invoked with the required "fmt"
    +#                                   ; parameter
    +# 
    +# +# When the OAI provider queries Fedora for records in your_format, +# it uses this special value to constrain the query to only those +# disseminations that are in the expected format. +# Thus, all records that the OAI provider considers to be in +# your_format must have this dissemination type. +# +# Example property name: +# driver.fedora.md.format.your_format.dissType. +# +driver.fedora.md.format.oai_dc.dissType = info:fedora/*/oai_dc +driver.fedora.md.format.test_format.dissType = info:fedora/*/test_format +driver.fedora.md.format.formatX.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadata?format=x +driver.fedora.md.format.formatY.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadata?format=y + +# The Fedora dissemination type for each format. +# +# This optional property identifies the OAI "about" dissemination +# type for your_format. If specified for your_format, then the OAI provider +# will attempt to find disseminations of this type for each object +# that has a matching your_format.dissType. If such a dissemination +# is found, for that particular object, the information therein +# will be used as the "about" metadata for the record. +# +# Example property name: +# driver.fedora.md.format.your_format.about.dissType. +# +driver.fedora.md.format.oai_dc.about.dissType = info:fedora/*/about_oai_dc +driver.fedora.md.format.formatX.about.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadataAbout?format=x +driver.fedora.md.format.formatY.about.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadataAbout?format=y + + +############################################### +# Fedora Driver: Set Membership Configuration # +############################################### + +# The name of the RELS-EXT property that indicates the unique setSpec +# string of a Fedora object representing an OAI set. +# This property must exist on any Fedora object that should +# represent an OAI set. +# +driver.fedora.setSpec = http://www.openarchives.org/OAI/2.0/setSpec + +# The name of the RELS-EXT property that indicates the name of +# a Fedora object representing an OAI set. +# In addition to setSpec, this property must also exist on any +# Fedora object that should represent an OAI set. +# +driver.fedora.setSpec.name = http://www.openarchives.org/OAI/2.0/setName + +# The dissemination type for the XML that describes a set. +# If a dissemination of this type is available for a Fedora object +# representing an OAI set, the content of the dissemination will +# be used in ListSets responses. +# +driver.fedora.setSpec.desc.dissType = info:fedora/*/SetInfo.xml + +# The "triple pattern" identifying the path from objects to the +# setsSpecs (short names) of sets they are members of. +# +#

    The path must contain $item and $setSpec, with the $item +# variable representing a Fedora object in the resource index, +# and the $setSpec representing the setSpec name.

    +# +driver.fedora.itemSetSpecPath = $item $set $set $setSpec + +######################################### +# Fedora Driver: MPTStore Configuration # +######################################### + +# The values below only need to be configured if using +# MPTQueryFactory (Fedora's Resource Index is backed by MPTStore). +# +NOTE=. + +# The JDBC driver class for connecting to the MPTStore database. +# +driver.fedora.mpt.db.driverClassName = org.postgresql.Driver + +# The database-specific DDLGenerator to use for MPTStore. +# +driver.fedora.mpt.db.ddlGenerator = org.nsdl.mptstore.impl.postgres.PostgresDDLGenerator + +# The JDBC URL for connecting to the MPTStore database. +# +driver.fedora.mpt.jdbc.url = jdbc:postgresql://localhost/riTriples + +# The user to connect to the MPTStore database as. +# +driver.fedora.mpt.jdbc.user = fedoraAdmin + +# The MPTStore database user's password. +# +driver.fedora.mpt.jdbc.password = fedoraAdmin + +# This configuration value is necessary to initialize the MPTStore library, +# and should not need to be changed. +# +driver.fedora.mpt.db.map = tmap + +# This configuration value is necessary to initialize the MPTStore library, +# and should not need to be changed. +# +driver.fedora.mpt.db.prefix = t + + +######################################### +# Fedora Driver: Advanced Configuration # +######################################### + +# driver.fedora.deleted +# This is the name of the RELS-EXT predicate that indicates the state +# of all records within the object. +# +#

    The normal behavior is that the Fedora-controlled "state" property +# of the dissemination (or datastream) itself indicates the oai deleted +# status. This can be used to specify the status via any object +# property, if desired.

    +# +#driver.fedora.deleted = info:fedora/fedora-system:def/model#state diff --git a/build/webapp/WEB-INF/lib/PropsToDocs.jar b/build/webapp/WEB-INF/lib/PropsToDocs.jar new file mode 100644 index 0000000..45517d6 Binary files /dev/null and b/build/webapp/WEB-INF/lib/PropsToDocs.jar differ diff --git a/build/webapp/WEB-INF/lib/activation-1.0.2.jar b/build/webapp/WEB-INF/lib/activation-1.0.2.jar new file mode 100644 index 0000000..6f19371 Binary files /dev/null and b/build/webapp/WEB-INF/lib/activation-1.0.2.jar differ diff --git a/build/webapp/WEB-INF/lib/axis.jar b/build/webapp/WEB-INF/lib/axis.jar new file mode 100644 index 0000000..2b8aba5 Binary files /dev/null and b/build/webapp/WEB-INF/lib/axis.jar differ diff --git a/build/webapp/WEB-INF/lib/bvalid-0.8.1.jar b/build/webapp/WEB-INF/lib/bvalid-0.8.1.jar new file mode 100644 index 0000000..57e00aa Binary files /dev/null and b/build/webapp/WEB-INF/lib/bvalid-0.8.1.jar differ diff --git a/build/webapp/WEB-INF/lib/commons-codec-1.3.jar b/build/webapp/WEB-INF/lib/commons-codec-1.3.jar new file mode 100644 index 0000000..957b675 Binary files /dev/null and b/build/webapp/WEB-INF/lib/commons-codec-1.3.jar differ diff --git a/build/webapp/WEB-INF/lib/commons-collections-3.1.jar b/build/webapp/WEB-INF/lib/commons-collections-3.1.jar new file mode 100644 index 0000000..41e230f Binary files /dev/null and b/build/webapp/WEB-INF/lib/commons-collections-3.1.jar differ diff --git a/build/webapp/WEB-INF/lib/commons-dbcp-1.2.1.jar b/build/webapp/WEB-INF/lib/commons-dbcp-1.2.1.jar new file mode 100644 index 0000000..08440c0 Binary files /dev/null and b/build/webapp/WEB-INF/lib/commons-dbcp-1.2.1.jar differ diff --git a/build/webapp/WEB-INF/lib/commons-discovery.jar b/build/webapp/WEB-INF/lib/commons-discovery.jar new file mode 100644 index 0000000..b885548 Binary files /dev/null and b/build/webapp/WEB-INF/lib/commons-discovery.jar differ diff --git a/build/webapp/WEB-INF/lib/commons-httpclient-3.1.jar b/build/webapp/WEB-INF/lib/commons-httpclient-3.1.jar new file mode 100644 index 0000000..7c59774 Binary files /dev/null and b/build/webapp/WEB-INF/lib/commons-httpclient-3.1.jar differ diff --git a/build/webapp/WEB-INF/lib/commons-logging.jar b/build/webapp/WEB-INF/lib/commons-logging.jar new file mode 100644 index 0000000..b73a80f Binary files /dev/null and b/build/webapp/WEB-INF/lib/commons-logging.jar differ diff --git a/build/webapp/WEB-INF/lib/commons-pool-1.2.jar b/build/webapp/WEB-INF/lib/commons-pool-1.2.jar new file mode 100644 index 0000000..4ba534c Binary files /dev/null and b/build/webapp/WEB-INF/lib/commons-pool-1.2.jar differ diff --git a/build/webapp/WEB-INF/lib/fedora-client.jar b/build/webapp/WEB-INF/lib/fedora-client.jar new file mode 100644 index 0000000..7a98ae7 Binary files /dev/null and b/build/webapp/WEB-INF/lib/fedora-client.jar differ diff --git a/build/webapp/WEB-INF/lib/jaxrpc.jar b/build/webapp/WEB-INF/lib/jaxrpc.jar new file mode 100644 index 0000000..180d4ec Binary files /dev/null and b/build/webapp/WEB-INF/lib/jaxrpc.jar differ diff --git a/build/webapp/WEB-INF/lib/jrdf-0.3.3.jar b/build/webapp/WEB-INF/lib/jrdf-0.3.3.jar new file mode 100644 index 0000000..55e63a9 Binary files /dev/null and b/build/webapp/WEB-INF/lib/jrdf-0.3.3.jar differ diff --git a/build/webapp/WEB-INF/lib/junit-4.1.jar b/build/webapp/WEB-INF/lib/junit-4.1.jar new file mode 100644 index 0000000..2c46d67 Binary files /dev/null and b/build/webapp/WEB-INF/lib/junit-4.1.jar differ diff --git a/build/webapp/WEB-INF/lib/log4j-1.2.14.jar b/build/webapp/WEB-INF/lib/log4j-1.2.14.jar new file mode 100644 index 0000000..6251307 Binary files /dev/null and b/build/webapp/WEB-INF/lib/log4j-1.2.14.jar differ diff --git a/build/webapp/WEB-INF/lib/mptstore-0.9.3.jar b/build/webapp/WEB-INF/lib/mptstore-0.9.3.jar new file mode 100644 index 0000000..ca846a4 Binary files /dev/null and b/build/webapp/WEB-INF/lib/mptstore-0.9.3.jar differ diff --git a/build/webapp/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar b/build/webapp/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar new file mode 100644 index 0000000..3609d4b Binary files /dev/null and b/build/webapp/WEB-INF/lib/mysql-connector-java-5.0.4-bin.jar differ diff --git a/build/webapp/WEB-INF/lib/postgresql-8.2-504.jdbc3.jar b/build/webapp/WEB-INF/lib/postgresql-8.2-504.jdbc3.jar new file mode 100644 index 0000000..b450671 Binary files /dev/null and b/build/webapp/WEB-INF/lib/postgresql-8.2-504.jdbc3.jar differ diff --git a/build/webapp/WEB-INF/lib/proai-1.1.3.jar b/build/webapp/WEB-INF/lib/proai-1.1.3.jar new file mode 100644 index 0000000..c88d210 Binary files /dev/null and b/build/webapp/WEB-INF/lib/proai-1.1.3.jar differ diff --git a/build/webapp/WEB-INF/lib/saaj.jar b/build/webapp/WEB-INF/lib/saaj.jar new file mode 100644 index 0000000..f2242ab Binary files /dev/null and b/build/webapp/WEB-INF/lib/saaj.jar differ diff --git a/build/webapp/WEB-INF/lib/trippi-1.1.2-core.jar b/build/webapp/WEB-INF/lib/trippi-1.1.2-core.jar new file mode 100644 index 0000000..08b3e6b Binary files /dev/null and b/build/webapp/WEB-INF/lib/trippi-1.1.2-core.jar differ diff --git a/build/webapp/WEB-INF/lib/wsdl4j-1.5.1.jar b/build/webapp/WEB-INF/lib/wsdl4j-1.5.1.jar new file mode 100644 index 0000000..c6254ee Binary files /dev/null and b/build/webapp/WEB-INF/lib/wsdl4j-1.5.1.jar differ diff --git a/build/webapp/WEB-INF/lib/xercesImpl.jar b/build/webapp/WEB-INF/lib/xercesImpl.jar new file mode 100644 index 0000000..14c3162 Binary files /dev/null and b/build/webapp/WEB-INF/lib/xercesImpl.jar differ diff --git a/build/webapp/WEB-INF/lib/xml-apis.jar b/build/webapp/WEB-INF/lib/xml-apis.jar new file mode 100644 index 0000000..2dd8377 Binary files /dev/null and b/build/webapp/WEB-INF/lib/xml-apis.jar differ diff --git a/build/webapp/WEB-INF/lib/xmlpull_1_1_3_4a.jar b/build/webapp/WEB-INF/lib/xmlpull_1_1_3_4a.jar new file mode 100644 index 0000000..5a70377 Binary files /dev/null and b/build/webapp/WEB-INF/lib/xmlpull_1_1_3_4a.jar differ diff --git a/build/webapp/WEB-INF/lib/xpp3_min-1.1.3.4.K.jar b/build/webapp/WEB-INF/lib/xpp3_min-1.1.3.4.K.jar new file mode 100644 index 0000000..14c67bb Binary files /dev/null and b/build/webapp/WEB-INF/lib/xpp3_min-1.1.3.4.K.jar differ diff --git a/build/webapp/WEB-INF/web.xml b/build/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..2aba145 --- /dev/null +++ b/build/webapp/WEB-INF/web.xml @@ -0,0 +1,19 @@ + + + + Proai Webapp + + + ProviderServlet + proai.service.ProviderServlet + 1 + + + + ProviderServlet + / + + + + + diff --git a/dist/oaiprovider.war b/dist/oaiprovider.war new file mode 100644 index 0000000..f9c6a5f Binary files /dev/null and b/dist/oaiprovider.war differ diff --git a/lib/proai-1.1.3.jar b/lib/proai-1.1.3.jar index 7751840..c88d210 100644 Binary files a/lib/proai-1.1.3.jar and b/lib/proai-1.1.3.jar differ diff --git a/src/config/oai2.xsl b/src/config/oai2.xsl new file mode 100644 index 0000000..c231307 --- /dev/null +++ b/src/config/oai2.xsl @@ -0,0 +1,659 @@ + + + + + + + + + + + + + + + +td.value { + vertical-align: top; + padding-left: 1em; + padding: 3px; +} +td.key { + background-color: #e0e0ff; + padding: 3px; + text-align: right; + border: 1px solid #c0c0c0; + white-space: nowrap; + font-weight: bold; + vertical-align: top; +} +.dcdata td.key { + background-color: #ffffe0; +} +body { + margin: 1em 2em 1em 2em; +} +h1, h2, h3 { + font-family: sans-serif; + clear: left; +} +h1 { + padding-bottom: 4px; + margin-bottom: 0px; +} +h2 { + margin-bottom: 0.5em; +} +h3 { + margin-bottom: 0.3em; + font-size: medium; +} +.link { + border: 1px outset #88f; + background-color: #c0c0ff; + padding: 1px 4px 1px 4px; + font-size: 80%; + text-decoration: none; + font-weight: bold; + font-family: sans-serif; + color: black; +} +.link:hover { + color: red; +} +.link:active { + color: red; + border: 1px inset #88f; + background-color: #a0a0df; +} +.oaiRecord, .oaiRecordTitle { + background-color: #f0f0ff; + border-style: solid; + border-color: #d0d0d0; +} +h2.oaiRecordTitle { + background-color: #e0e0ff; + font-size: medium; + font-weight: bold; + padding: 10px; + border-width: 2px 2px 0px 2px; + margin: 0px; +} +.oaiRecord { + margin-bottom: 3em; + border-width: 2px; + padding: 10px; +} + +.results { + margin-bottom: 1.5em; +} +ul.quicklinks { + margin-top: 2px; + padding: 4px; + text-align: left; + border-bottom: 2px solid #ccc; + border-top: 2px solid #ccc; + clear: left; +} +ul.quicklinks li { + font-size: 80%; + display: inline; + list-stlye: none; + font-family: sans-serif; +} +p.intro { + font-size: 80%; +} + + + + + + + + + OAI 2.0 Request Results + + + +

    OAI 2.0 Request Results

    + +

    You are viewing an HTML version of the XML OAI response. To see the underlying XML use your web browsers view source option. More information about this XSLT is at the bottom of the page.

    + + +

    About the XSLT

    +

    An XSLT file has converted the OAI-PMH 2.0 responses into XHTML which looks nice in a browser which supports XSLT such as Mozilla, Firebird and Internet Explorer. The XSLT file was created by Christopher Gutteridge at the University of Southampton as part of the GNU EPrints system, and is freely redistributable under the GPL.

    If you want to use the XSL file on your own OAI interface you may but due to the way XSLT works you must install the XSL file on the same server as the OAI script, you can't just link to this copy.

    For more information or to download the XSL file please see the OAI to XHTML XSLT homepage.

    + + + +
    + + + + + + + + + + + + +
    Datestamp of response
    Request URL
    + + + +

    OAI Error(s)

    +

    The request could not be completed due to the following error or errors.

    +
    + +
    +
    + +

    Request was of type .

    +
    + + + + + + +
    +
    +
    +
    + + + + + + + + +
    Error Code
    +

    +
    + + + + + + + + + + + + + + + + + + +
    Repository Name
    Base URL
    Protocol Version
    Earliest Datestamp
    Deleted Record Policy
    Granularity
    + + +
    + + + Admin Email + + + + + + +

    Unsupported Description Type

    +

    The XSL currently does not support this type of description.

    +
    + +
    +
    + + + + + +

    OAI-Identifier

    + + + + + + + + + +
    Scheme
    Repository Identifier
    Delimiter
    Sample OAI Identifier
    +
    + + + + + +

    EPrints Description

    + +

    Content

    + +
    + +

    Submission Policy

    + +
    +

    Metadata Policy

    + +

    Data Policy

    + + +
    + + + +

    +
    + +
    +
    +
    + + +

    Comment

    +
    +
    + + + + + +

    Friends

    +
      + +
    +
    + + +
  • + +Identify
  • +
    + + + + + +

    Branding

    + + +
    + + +

    Icon

    + + + {br:title} + + + {br:title} + + +
    + + +

    Metadata Rendering Rule

    + + + + + + + +
    URL
    Namespace
    Mime Type
    +
    + + + + + + +

    Gateway Information

    + + + + + + + + + + + + + + +
    Source
    Description
    URL
    Notes
    +
    + + + Admin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    Set

    + + + + +
    setName
    +
    + + + + + + +

    This is a list of metadata formats available for the record "". Use these links to view the metadata:

    +
    + +

    This is a list of metadata formats available from this archive.

    +
    +
    + +
    + + +

    Metadata Format

    + + + + + + + +
    metadataPrefix
    metadataNamespace
    schema
    +
    + + + + + + + + +

    OAI Record:

    +
    + + + +
    +
    + + +

    OAI Record Header

    + + + + + + +
    OAI Identifier + + oai_dc + formats +
    Datestamp
    + +

    This record has been deleted.

    +
    +
    + + + +

    "about" part of record container not supported by the XSL

    +
    + + +   + + + + + + + + + + setSpec + + Identifiers + Records + + + + + + + + +

    There are more results.

    + + + +
    resumptionToken: + +Resume
    +
    + + + + +

    Unknown Metadata Format

    +
    + +
    +
    + + + + +
    +

    Dublin Core Metadata (oai_dc)

    + + +
    +
    +
    + + +Title + + +Author or Creator + + +Subject and Keywords + + +Description + + +Publisher + + +Other Contributor + + +Date + + +Resource Type + + +Format + + +Resource Identifier + + +Source + + +Language + + +Relation + + + + + URL + URL not shown as it is very long. + + + + + + + + + + + + + +Coverage + + +Rights Management + + + + +
    + <></> +
    +
    + + + + + ="" + + + +.xmlSource { + font-size: 70%; + border: solid #c0c0a0 1px; + background-color: #ffffe0; + padding: 2em 2em 2em 0em; +} +.xmlBlock { + padding-left: 2em; +} +.xmlTagName { + color: #800000; + font-weight: bold; +} +.xmlAttrName { + font-weight: bold; +} +.xmlAttrValue { + color: #0000c0; +} + + +
    + diff --git a/src/config/proai.properties b/src/config/proai.properties index ee64538..fc4284b 100644 --- a/src/config/proai.properties +++ b/src/config/proai.properties @@ -26,6 +26,14 @@ proai.incompleteIdentifierListSize = 500 # proai.incompleteSetListSize = 500 +# If set this will include a processing instruction for stylesheet +# usage into the XML-response. +# Note: For using this a stylesheet has to be accessible via http at +# the location defined by the argument. For instance /oai2.xsl +# means this file should be accessible at +# http://example.org:8080/oai2.xsl +# +proai.stylesheetLocation = /oai2.xsl ############################ # Back-End Update Behavior # diff --git a/src/webapp/WEB-INF/web.xml b/src/webapp/WEB-INF/web.xml index 54702a4..2aba145 100644 --- a/src/webapp/WEB-INF/web.xml +++ b/src/webapp/WEB-INF/web.xml @@ -8,7 +8,7 @@ proai.service.ProviderServlet 1 - + ProviderServlet /