Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge pull request #2 from ox-it/WL-2653

WL-2653 Just tidy up some code.
  • Loading branch information...
commit e903a364e43479aba5bc826afae9aadcbdb16712 2 parents e04cbcf + 6ea10aa
@ColinHebert ColinHebert authored
View
34 .classpath
@@ -1,34 +0,0 @@
-<classpath>
- <classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
- <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
- <classpathentry kind="src" path="src/main/resources" including="**/*.csv" excluding="**/*.java"/>
- <classpathentry kind="output" path="target/classes"/>
- <classpathentry kind="var" path="M2_REPO/javax/jms/jms/1.1/jms-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/javax/servlet/servlet-api/2.3/servlet-api-2.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/asm/asm/3.1/asm-3.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-lang/commons-lang/2.2/commons-lang-2.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1.jar" sourcepath="M2_REPO/commons-logging/commons-logging/1.1/commons-logging-1.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/codehaus/jackson/jackson-core-asl/1.6.2/jackson-core-asl-1.6.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/codehaus/jackson/jackson-jaxrs/1.6.2/jackson-jaxrs-1.6.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/codehaus/jackson/jackson-mapper-asl/1.6.2/jackson-mapper-asl-1.6.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/jdom/jdom/1.1/jdom-1.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-client/1.4/jersey-client-1.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-core/1.4/jersey-core-1.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/com/sun/jersey/jersey-server/1.4/jersey-server-1.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/junit/junit/4.8.2/junit-4.8.2.jar"/>
- <classpathentry kind="var" path="M2_REPO/log4j/log4j/1.2.12/log4j-1.2.12.jar"/>
- <classpathentry kind="var" path="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1.jar" sourcepath="M2_REPO/logkit/logkit/1.0.1/logkit-1.0.1-sources.jar"/>
- <classpathentry kind="var" path="M2_REPO/opensymphony/oscache/2.4/oscache-2.4.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/sakaiproject/kernel/sakai-component-manager/1.0.18/sakai-component-manager-1.0.18.jar" sourcepath="M2_REPO/org/sakaiproject/kernel/sakai-component-manager/1.0.18/sakai-component-manager-1.0.18-sources.jar">
- <attributes>
- <attribute value="jar:file:/home/marc/.m2/repository/org/sakaiproject/kernel/sakai-component-manager/1.0.18/sakai-component-manager-1.0.18-javadoc.jar!/" name="javadoc_location"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="var" path="M2_REPO/org/sakaiproject/kernel/sakai-kernel-api/1.0.18/sakai-kernel-api-1.0.18.jar" sourcepath="M2_REPO/org/sakaiproject/kernel/sakai-kernel-api/1.0.18/sakai-kernel-api-1.0.18-sources.jar">
- <attributes>
- <attribute value="jar:file:/home/marc/.m2/repository/org/sakaiproject/kernel/sakai-kernel-api/1.0.18/sakai-kernel-api-1.0.18-javadoc.jar!/" name="javadoc_location"/>
- </attributes>
- </classpathentry>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-</classpath>
View
3  .gitignore
@@ -0,0 +1,3 @@
+.classpath
+.project
+.settings
View
13 .project
@@ -1,13 +0,0 @@
-<projectDescription>
- <name>library-availability</name>
- <comment>NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
- <projects/>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
View
14 pom.xml
@@ -27,8 +27,8 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
- <source>1.5</source>
- <target>1.5</target>
+ <source>1.6</source>
+ <target>1.6</target>
</configuration>
</plugin>
<plugin>
@@ -68,6 +68,8 @@
<properties>
<sakai.commons.logging.version>1.0.4</sakai.commons.logging.version>
+ <jersey.version>1.17.1</jersey.version>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
@@ -81,23 +83,23 @@
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
- <version>1.5</version>
+ <version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-core</artifactId>
- <version>1.5</version>
+ <version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
- <version>1.5</version>
+ <version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
- <version>1.5</version>
+ <version>${jersey.version}</version>
</dependency>
<dependency>
View
49 src/main/java/uk/ac/ox/oucs/sirlouie/EiasAvailability.java
@@ -26,69 +26,58 @@
import uk.ac.ox.oucs.sirlouie.sfx.SFXService;
import uk.ac.ox.oucs.sirlouie.utils.OpenURI;
-//@Path("/library-availability")
-//@Path("")
@Path("/eias")
public class EiasAvailability {
-
- @Context
- UriInfo uriInfo;
- @Context
- Request request;
- @Context
- ServletContext context;
- @Context
- ServletConfig config;
-
+
private static Log log = LogFactory.getLog(EiasAvailability.class);
@GET
@Produces({"application/x-javascript", MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
- public Response/*String*/ get(
- @QueryParam("id") String openurl,
+ public Response/*String*/ get(
+ @QueryParam("id") String openurl,
@QueryParam("format") @DefaultValue("json") String format,
@QueryParam("callback") @DefaultValue("callback") String callback) {
-
+
log.debug(openurl+":"+format+":"+callback);
-
+
try {
-
+
SFXService service = new SFXService(openurl);
OpenURI uri = new OpenURI(URLEncoder.encode(openurl, "UTF-8"));
ResponseBean bean = service.getResource(uri.getURI().toString());
JSONObject json = bean.toJSON();
-
+
if (format.equals(LibraryAvailability.FORMAT_JSON)) {
- return Response.ok(json).build();
-
+ return Response.ok(json).build();
+
} else if (format.equals(LibraryAvailability.FORMAT_JSONP)) {
return Response.ok(LibraryAvailability.MyJSONWithPadding(json, callback)).build();
-
+
} else if (format.equals(LibraryAvailability.FORMAT_XML)) {
//TODO
return null;
-
- } else {
+
+ } else {
throw new Exception("Response format unknown ["+format+"]");
-
+
}
-
+
} catch (URISyntaxException e) {
log.error("URISyntaxException ["+e.getLocalizedMessage()+"]");
return Response.status(Status.INTERNAL_SERVER_ERROR)
.entity(e.getLocalizedMessage()).type("text/plain").build();
-
+
} catch (UnsupportedEncodingException e) {
log.error("UnsupportedEncodingException ["+e.getLocalizedMessage()+"]");
return Response.status(Status.INTERNAL_SERVER_ERROR)
.entity(e.getLocalizedMessage()).type("text/plain").build();
-
+
} catch (Exception e) {
log.error("Exception ["+e.getLocalizedMessage()+"]");
return Response.status(Status.INTERNAL_SERVER_ERROR)
.entity(e.getLocalizedMessage()).type("text/plain").build();
-
+
}
-
+
}
-}
+}
View
104 src/main/java/uk/ac/ox/oucs/sirlouie/LibraryAvailability.java
@@ -13,9 +13,7 @@
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Request;
import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
import javax.ws.rs.core.Response.Status;
import org.apache.commons.logging.Log;
@@ -27,88 +25,80 @@
import uk.ac.ox.oucs.sirlouie.properties.SirLouieProperties;
import uk.ac.ox.oucs.sirlouie.utils.DaiaURI;
-//@Path("/library-availability")
-//@Path("")
@Path("/library")
public class LibraryAvailability {
-
- @Context
- UriInfo uriInfo;
- @Context
- Request request;
+
@Context
ServletContext context;
@Context
ServletConfig config;
-
- public static String FORMAT_JSON="json";
- public static String FORMAT_JSONP="jsonp";
- public static String FORMAT_XML="xml";
-
+
+
+ public static String FORMAT_JSON = "json";
+ public static String FORMAT_JSONP = "jsonp";
+ public static String FORMAT_XML = "xml";
+
private static Log log = LogFactory.getLog(LibraryAvailability.class);
@GET
- @Produces({"application/x-javascript", MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
- public Response get(
- @QueryParam("id") String id,
- @QueryParam("format") @DefaultValue("json") String format,
+ @Produces({ "application/x-javascript", MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
+ public Response get(@QueryParam("id") String id, @QueryParam("format") @DefaultValue("json") String format,
@QueryParam("callback") @DefaultValue("callback") String callback) {
-
- log.debug(id+":"+format+":"+callback);
-
+
+ log.debug(id + ":" + format + ":" + callback);
+
try {
-
+
PrimoService service = new PrimoService(getProperties().getWebResourseURL());
DaiaURI uri = new DaiaURI(id);
ResponseBean bean = service.getResource(uri.getDoc());
JSONObject json = bean.toJSON();
-
+
if (format.equals(FORMAT_JSON)) {
- return Response.ok(json).build();
-
+ return Response.ok(json).build();
+
} else if (format.equals(FORMAT_JSONP)) {
return Response.ok(LibraryAvailability.MyJSONWithPadding(json, callback)).build();
-
+
} else if (format.equals(FORMAT_XML)) {
- //TODO
+ // TODO
return null;
-
- } else {
- throw new Exception("Response format unknown ["+format+"]");
-
+
+ } else {
+ throw new Exception("Response format unknown [" + format + "]");
+
}
-
+
} catch (URISyntaxException e) {
- log.error("URISyntaxException ["+e.getLocalizedMessage()+"]", e);
- return Response.status(Status.INTERNAL_SERVER_ERROR)
- .entity(e.getLocalizedMessage()).type("text/plain").build();
-
+ log.error("URISyntaxException [" + e.getLocalizedMessage() + "]", e);
+ return Response.status(Status.INTERNAL_SERVER_ERROR).entity(e.getLocalizedMessage()).type("text/plain")
+ .build();
+
} catch (UnsupportedEncodingException e) {
- log.error("UnsupportedEncodingException ["+e.getLocalizedMessage()+"]", e);
- return Response.status(Status.INTERNAL_SERVER_ERROR)
- .entity(e.getLocalizedMessage()).type("text/plain").build();
-
+ log.error("UnsupportedEncodingException [" + e.getLocalizedMessage() + "]", e);
+ return Response.status(Status.INTERNAL_SERVER_ERROR).entity(e.getLocalizedMessage()).type("text/plain")
+ .build();
+
} catch (Exception e) {
- log.error("Exception ["+e.getLocalizedMessage()+"]", e);
- return Response.status(Status.INTERNAL_SERVER_ERROR)
- .entity(e.getLocalizedMessage()).type("text/plain").build();
-
+ log.error("Exception [" + e.getLocalizedMessage() + "]", e);
+ return Response.status(Status.INTERNAL_SERVER_ERROR).entity(e.getLocalizedMessage()).type("text/plain")
+ .build();
+
}
-
+
}
-
- private SirLouieProperties getProperties() throws ClassNotFoundException, IllegalArgumentException,
- SecurityException, InstantiationException, IllegalAccessException,
- InvocationTargetException, NoSuchMethodException {
-
+
+ private SirLouieProperties getProperties() throws ClassNotFoundException, IllegalArgumentException,
+ SecurityException, InstantiationException, IllegalAccessException, InvocationTargetException,
+ NoSuchMethodException {
+
String className = config.getInitParameter("ConfigClass");
-
- Class<?> myClass = Class.forName( className, true,
- Thread.currentThread().getContextClassLoader() );
-
- return (SirLouieProperties)myClass.getConstructor(ServletContext.class).newInstance(context);
+
+ Class<?> myClass = Class.forName(className, true, Thread.currentThread().getContextClassLoader());
+
+ return (SirLouieProperties) myClass.getConstructor(ServletContext.class).newInstance(context);
}
-
+
public static String MyJSONWithPadding(JSONObject json, String callback) {
StringBuffer sb = new StringBuffer();
sb.append(callback);
@@ -117,4 +107,4 @@ public static String MyJSONWithPadding(JSONObject json, String callback) {
sb.append(")");
return sb.toString();
}
-}
+}
View
470 src/test/java/uk/ac/ox/oucs/sirlouie/PrimoServiceTest.java
@@ -8,6 +8,7 @@
import junit.framework.Assert;
import junit.framework.TestCase;
+import org.json.JSONArray;
import org.json.JSONObject;
import org.xml.sax.SAXException;
@@ -19,13 +20,13 @@
import uk.ac.ox.oucs.sirlouie.reply.SearObject;
public class PrimoServiceTest extends TestCase {
-
+
PrimoService service;
-
+
private String nameSpaceURI = "http://www.exlibrisgroup.com/xsd/jaguar/search";
-
+
private String WEBRESOURCE_URL = "http://primo-s-web-2.sers.ox.ac.uk:1701/PrimoWebServices/xservice/getit";
-
+
private String OLIS_XML = "<SEGMENTS xmlns=\"http://www.exlibrisgroup.com/xsd/jaguar/search\">"
+"<JAGROOT>"
+"<RESULT>"
@@ -146,8 +147,8 @@
+"</RESULT>"
+"</JAGROOT>"
+"</SEGMENTS>";
-
- private String ORA_XML = "<SEGMENTS>"
+
+ private String ORA_XML = "<SEGMENTS>"
+"<JAGROOT>"
+"<RESULT>"
+"<DOCSET TOTALHITS=\"1\">"
@@ -274,7 +275,7 @@
+"</RESULT>"
+"</JAGROOT>"
+"</SEGMENTS>";
-
+
private String errorXML = "<SEGMENTS xmlns=\"http://www.exlibrisgroup.com/xsd/jaguar/search\">"
+"<JAGROOT>"
+"<RESULT>"
@@ -291,7 +292,7 @@
+"\"item\":["
+"{\"href\":\"http://ora.ouls.ox.ac.uk/objects/uuid:debe641a-17ca-4196-ab2c-fe7565ced721\"}]}]}";
-
+
private String OLIS_JSON = "{\"version\":\"0.5\",\"schema\":\"http://ws.gbv.de/daia/\","
+"\"timestamp\":\"2009-06-09T15:39:52.831+02:00\","
+"\"institution\":{\"content\":\"University of Oxford\","
@@ -303,189 +304,189 @@
+"\"storage\":{\"content\":\"Main Libr\"}},"
+"{\"department\":{\"id\":\"BLL\",\"content\":\"Balliol College Library\"},"
+"\"storage\":{\"content\":\"Main Libr\"}}]}]}";
-
-
+
+
// After the library upgrade they started returning different XML.
- private String NEW_OLIS_XML = "<SEGMENTS xmlns=\"http://www.exlibrisgroup.com/xsd/jaguar/search\">\n" +
- " <JAGROOT>\n" +
- " <RESULT>\n" +
- " <DOCSET TOTALHITS=\"1\">\n" +
- " <sear:DOC LOCAL=\"true\" xmlns=\"http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib\" xmlns:sear=\"http://www.exlibrisgroup.com/xsd/jaguar/search\">\n" +
- " <PrimoNMBib>\n" +
- " <record>\n" +
- " <control>\n" +
- " <sourcerecordid>017140770</sourcerecordid>\n" +
- " <sourceid>oxfaleph</sourceid>\n" +
- " <recordid>oxfaleph017140770</recordid>\n" +
- " <originalsourceid>BIB01</originalsourceid>\n" +
- " <ilsapiid>BIB01017140770</ilsapiid>\n" +
- " <addsrcrecordid>017140770</addsrcrecordid>\n" +
- " <sourceformat>MARC21</sourceformat>\n" +
- " <sourcesystem>Aleph</sourcesystem>\n" +
- " </control>\n" +
- " <display>\n" +
- " <type>book</type>\n" +
- " <title>Linux in a nutshell</title>\n" +
- " <creator>Siever, Ellen.</creator>\n" +
- " <contributor>Ellen Siever</contributor>\n" +
- " <edition>6th ed..</edition>\n" +
- " <publisher>Sebastopol, Calif. ; Cambridge : O'Reilly</publisher>\n" +
- " <creationdate>c2009</creationdate>\n" +
- " <format>xxii, 917 p. ; 24 cm.</format>\n" +
- " <identifier>$$CISBN$$V9780596154486 ; $$CISBN$$V0596154488</identifier>\n" +
- " <subject>Operating systems (Computers); Linux</subject>\n" +
- " <language>eng</language>\n" +
- " <availlibrary>$$IOX$$LBODBL$$2(Box retrieval please)$$Scheck_holdings$$31$$41$$5N$$60$$XBOD50$$YBODBL</availlibrary>\n" +
- " <lds01>Ellen Siever ... [et al.].</lds01>\n" +
- " <lds02><![CDATA[<br><b>General Note: </b>Previous ed.: 2005.<br><b>General Note: </b>Cover title : Linux in a nutshell : a desktop quick reference.<br><b>General Note: </b>Includes index.]]></lds02>\n" +
- " <lds04>Previous ed.: 2005. -- Cover title : Linux in a nutshell : a desktop quick reference. -- Includes index.</lds04>\n" +
- " <lds06>Cover Title: Linux in a nutshell : a desktop quick reference</lds06>\n" +
- " <lds15>017140770</lds15>\n" +
- " <availinstitution>$$IOX$$Scheck_holdings</availinstitution>\n" +
- " <availpnx>available</availpnx>\n" +
- " <lds09>&lt;br />&lt;br />&lt;b>Short Description:&lt;/b> Focusing on Linux system essentials, this title covers programming tools, system and network administration tools, the shell, editors, LILO and GRUB boot options, and highlights the most important options for using the vast number of Linux commands. It can also help you learn Linux commands for system administration and network management.</lds09>\n" +
- " </display>\n" +
- " <links>\n" +
- " <backlink>$$Taleph_backlink$$DMore bibliographic information</backlink>\n" +
- " <thumbnail>$$Tamazon_thumb</thumbnail>\n" +
- " <thumbnail>$$Tgoogle_thumb</thumbnail>\n" +
- " <linktoholdings>$$Taleph_holdings</linktoholdings>\n" +
- " <linktouc>$$Tamazon_uc$$DThis item in Amazon</linktouc>\n" +
- " <linktouc>$$Tworldcat_isbn$$DThis item in WorldCat¨</linktouc>\n" +
- " <linktoexcerpt>$$Tsyndetics_excerpt$$DExcerpt from item</linktoexcerpt>\n" +
- " <lln03>$$Tgooglebsisbn</lln03>\n" +
- " </links>\n" +
- " <search>\n" +
- " <creatorcontrib>Siever, Ellen.</creatorcontrib>\n" +
- " <creatorcontrib>Ellen Siever ... [et al.].</creatorcontrib>\n" +
- " <creatorcontrib>Ellen</creatorcontrib>\n" +
- " <creatorcontrib>Siever, E</creatorcontrib>\n" +
- " <creatorcontrib>Ellen Siever</creatorcontrib>\n" +
- " <title>Linux in a nutshell /</title>\n" +
- " <subject>Linux.</subject>\n" +
- " <subject>Operating systems (Computers)</subject>\n" +
- " <subject>Computers Operating systems</subject>\n" +
- " <subject>Computer operating systems</subject>\n" +
- " <subject>Disk operating systems</subject>\n" +
- " <general>O'Reilly,</general>\n" +
- " <sourceid>oxfaleph</sourceid>\n" +
- " <recordid>oxfaleph017140770</recordid>\n" +
- " <isbn>9780596154486</isbn>\n" +
- " <isbn>9780596154486 (pbk.)</isbn>\n" +
- " <isbn>0596154488</isbn>\n" +
- " <isbn>0596154488 (pbk.)</isbn>\n" +
- " <rsrctype>book</rsrctype>\n" +
- " <creationdate>2009</creationdate>\n" +
- " <creationdate>l|||</creationdate>\n" +
- " <creationdate>|8</creationdate>\n" +
- " <addsrcrecordid>017140770</addsrcrecordid>\n" +
- " <addsrcrecordid>17140770</addsrcrecordid>\n" +
- " <searchscope>oxfaleph</searchscope>\n" +
- " <searchscope>BOD</searchscope>\n" +
- " <searchscope>OULS</searchscope>\n" +
- " <searchscope>OX</searchscope>\n" +
- " <searchscope>NONOX</searchscope>\n" +
- " <scope>oxfaleph</scope>\n" +
- " <scope>BOD</scope>\n" +
- " <scope>OULS</scope>\n" +
- " <scope>OX</scope>\n" +
- " <scope>NONOX</scope>\n" +
- " <alttitle>Linux in a nutshell : a desktop quick reference</alttitle>\n" +
- " <lsr01>(Box retrieval please)</lsr01>\n" +
- " <lsr02>Previous ed.: 2005. -- Cover title : Linux in a nutshell : a desktop quick reference. -- Includes index.</lsr02>\n" +
- " <lsr13>Sebastopol, Calif. ; Cambridge</lsr13>\n" +
- " <lsr15>O'Reilly,</lsr15>\n" +
- " <lsr09>&lt;br />&lt;br />&lt;b>Short Description:&lt;/b> Focusing on Linux system essentials, this title covers programming tools, system and network administration tools, the shell, editors, LILO and GRUB boot options, and highlights the most important options for using the vast number of Linux commands. It can also help you learn Linux commands for system administration and network management.</lsr09>\n" +
- " </search>\n" +
- " <sort>\n" +
- " <title>Linux in a nutshell /</title>\n" +
- " <creationdate>2009</creationdate>\n" +
- " <author>Siever, Ellen.</author>\n" +
- " <lso01>2009</lso01>\n" +
- " </sort>\n" +
- " <facets>\n" +
- " <language>eng</language>\n" +
- " <creationdate>2009</creationdate>\n" +
- " <topic>Linux</topic>\n" +
- " <topic>Operating systems (Computers)</topic>\n" +
- " <collection>OLIS</collection>\n" +
- " <toplevel>physical_item</toplevel>\n" +
- " <prefilter>books</prefilter>\n" +
- " <rsrctype>books</rsrctype>\n" +
- " <creatorcontrib>Siever, E</creatorcontrib>\n" +
- " <library>BODBL</library>\n" +
- " <frbrgroupid>150606989</frbrgroupid>\n" +
- " <frbrtype>5</frbrtype>\n" +
- " </facets>\n" +
- " <dedup>\n" +
- " <c3>linuxinanutshell</c3>\n" +
- " <c4>2009</c4>\n" +
- " <f3>9780596154486;0596154488</f3>\n" +
- " <f5>linuxinanutshell</f5>\n" +
- " <f6>2009</f6>\n" +
- " <f7>linux in a nutshell</f7>\n" +
- " <f8>cau</f8>\n" +
- " <f9>xxii, 917 p. ;</f9>\n" +
- " <f10>oreilly</f10>\n" +
- " </dedup>\n" +
- " <frbr>\n" +
- " <t>1</t>\n" +
- " <k1>$$Ksiever ellen$$AA</k1>\n" +
- " <k3>$$Klinux in a nutshell$$AT</k3>\n" +
- " </frbr>\n" +
- " <delivery>\n" +
- " <institution>OX</institution>\n" +
- " <institution>NONOX</institution>\n" +
- " <delcategory>Physical Item</delcategory>\n" +
- " </delivery>\n" +
- " <ranking>\n" +
- " <booster1>1</booster1>\n" +
- " <booster2>1</booster2>\n" +
- " </ranking>\n" +
- " <addata>\n" +
- " <aulast>Siever</aulast>\n" +
- " <aufirst>Ellen</aufirst>\n" +
- " <addau>Siever, Ellen</addau>\n" +
- " <btitle>Linux in a nutshell</btitle>\n" +
- " <addtitle>Linux in a nutshell : a desktop quick reference</addtitle>\n" +
- " <date>2009</date>\n" +
- " <risdate>c2009.</risdate>\n" +
- " <isbn>9780596154486</isbn>\n" +
- " <format>book</format>\n" +
- " <genre>book</genre>\n" +
- " <ristype>BOOK</ristype>\n" +
- " <cop>Sebastopol, Calif. ; Cambridge</cop>\n" +
- " <pub>O'Reilly</pub>\n" +
- " </addata>\n" +
- " </record>\n" +
- " </PrimoNMBib>\n" +
- " <sear:GETIT GetIt2=\"http://1.1.1.1?ctx_ver=Z39.88-2004&amp;ctx_enc=info:ofi/enc:UTF-8&amp;ctx_tim=2011-08-12T14%3A00%3A23IST&amp;url_ver=Z39.88-2004&amp;url_ctx_fmt=infofi/fmt:kev:mtx:ctx&amp;rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Journal-oxfaleph&amp;rft_val_fmt=info:ofi/fmt:kev:mtx:book&amp;rft.genre=book&amp;rft.atitle=&amp;rft.jtitle=&amp;rft.btitle=Linux%20in%20a%20nutshell&amp;rft.aulast=Siever&amp;rft.auinit=&amp;rft.auinit1=&amp;rft.auinitm=&amp;rft.ausuffix=&amp;rft.au=&amp;rft.aucorp=&amp;rft.volume=&amp;rft.issue=&amp;rft.part=&amp;rft.quarter=&amp;rft.ssn=&amp;rft.spage=&amp;rft.epage=&amp;rft.pages=&amp;rft.artnum=&amp;rft.issn=&amp;rft.eissn=&amp;rft.isbn=9780596154486&amp;rft.sici=&amp;rft.coden=&amp;rft_id=info:doi/&amp;rft.object_id=&amp;rft_bat=&lt;oxfaleph>017140770&lt;/oxfaleph>&amp;rft.eisbn=&amp;rft_id=info:oai/\" GetIt1=\"OVP\" deliveryCategory=\"Physical Item\"/>\n" +
- " <sear:LIBRARIES>\n" +
- " <sear:LIBRARY>\n" +
- " <sear:institution>OX</sear:institution>\n" +
- " <sear:library>BODBL</sear:library>\n" +
- " <sear:status>check_holdings</sear:status>\n" +
- " <sear:collection/>\n" +
- " <sear:callNumber>(Box retrieval please)</sear:callNumber>\n" +
- " <sear:url>OVP</sear:url>\n" +
- " </sear:LIBRARY>\n" +
- " </sear:LIBRARIES>\n" +
- " <sear:LINKS>\n" +
- " <sear:backlink>http://aleph.sers.ox.ac.uk:8991/F?func=direct&amp;local_base=BIB01&amp;doc_number=017140770&amp;format=999</sear:backlink>\n" +
- " <sear:thumbnail>http://images.amazon.com/images/P/9780596154486.01._SSTHUM_.jpg</sear:thumbnail>\n" +
- " <sear:thumbnail>http://books.google.com/books?bibkeys=ISBN:9780596154486,OCLC:,LCCN:&amp;jscmd=viewapi&amp;callback=updateGBSCover</sear:thumbnail>\n" +
- " <sear:linktoholdings>OVP</sear:linktoholdings>\n" +
- " <sear:linktouc>http://www.amazon.co.uk/gp/search?keywords=9780596154486&amp;index=books</sear:linktouc>\n" +
- " <sear:linktouc>http://www.worldcat.org/search?q=isbn%3A9780596154486</sear:linktouc>\n" +
- " <sear:lln03>http://books.google.com/books?vid=ISBN9780596154486</sear:lln03>\n" +
- " </sear:LINKS>\n" +
- " </sear:DOC>\n" +
- " </DOCSET>\n" +
- " </RESULT>\n" +
- " </JAGROOT>\n" +
- "</SEGMENTS>\n" +
+ private String NEW_OLIS_XML = "<SEGMENTS xmlns=\"http://www.exlibrisgroup.com/xsd/jaguar/search\">\n" +
+ " <JAGROOT>\n" +
+ " <RESULT>\n" +
+ " <DOCSET TOTALHITS=\"1\">\n" +
+ " <sear:DOC LOCAL=\"true\" xmlns=\"http://www.exlibrisgroup.com/xsd/primo/primo_nm_bib\" xmlns:sear=\"http://www.exlibrisgroup.com/xsd/jaguar/search\">\n" +
+ " <PrimoNMBib>\n" +
+ " <record>\n" +
+ " <control>\n" +
+ " <sourcerecordid>017140770</sourcerecordid>\n" +
+ " <sourceid>oxfaleph</sourceid>\n" +
+ " <recordid>oxfaleph017140770</recordid>\n" +
+ " <originalsourceid>BIB01</originalsourceid>\n" +
+ " <ilsapiid>BIB01017140770</ilsapiid>\n" +
+ " <addsrcrecordid>017140770</addsrcrecordid>\n" +
+ " <sourceformat>MARC21</sourceformat>\n" +
+ " <sourcesystem>Aleph</sourcesystem>\n" +
+ " </control>\n" +
+ " <display>\n" +
+ " <type>book</type>\n" +
+ " <title>Linux in a nutshell</title>\n" +
+ " <creator>Siever, Ellen.</creator>\n" +
+ " <contributor>Ellen Siever</contributor>\n" +
+ " <edition>6th ed..</edition>\n" +
+ " <publisher>Sebastopol, Calif. ; Cambridge : O'Reilly</publisher>\n" +
+ " <creationdate>c2009</creationdate>\n" +
+ " <format>xxii, 917 p. ; 24 cm.</format>\n" +
+ " <identifier>$$CISBN$$V9780596154486 ; $$CISBN$$V0596154488</identifier>\n" +
+ " <subject>Operating systems (Computers); Linux</subject>\n" +
+ " <language>eng</language>\n" +
+ " <availlibrary>$$IOX$$LBODBL$$2(Box retrieval please)$$Scheck_holdings$$31$$41$$5N$$60$$XBOD50$$YBODBL</availlibrary>\n" +
+ " <lds01>Ellen Siever ... [et al.].</lds01>\n" +
+ " <lds02><![CDATA[<br><b>General Note: </b>Previous ed.: 2005.<br><b>General Note: </b>Cover title : Linux in a nutshell : a desktop quick reference.<br><b>General Note: </b>Includes index.]]></lds02>\n" +
+ " <lds04>Previous ed.: 2005. -- Cover title : Linux in a nutshell : a desktop quick reference. -- Includes index.</lds04>\n" +
+ " <lds06>Cover Title: Linux in a nutshell : a desktop quick reference</lds06>\n" +
+ " <lds15>017140770</lds15>\n" +
+ " <availinstitution>$$IOX$$Scheck_holdings</availinstitution>\n" +
+ " <availpnx>available</availpnx>\n" +
+ " <lds09>&lt;br />&lt;br />&lt;b>Short Description:&lt;/b> Focusing on Linux system essentials, this title covers programming tools, system and network administration tools, the shell, editors, LILO and GRUB boot options, and highlights the most important options for using the vast number of Linux commands. It can also help you learn Linux commands for system administration and network management.</lds09>\n" +
+ " </display>\n" +
+ " <links>\n" +
+ " <backlink>$$Taleph_backlink$$DMore bibliographic information</backlink>\n" +
+ " <thumbnail>$$Tamazon_thumb</thumbnail>\n" +
+ " <thumbnail>$$Tgoogle_thumb</thumbnail>\n" +
+ " <linktoholdings>$$Taleph_holdings</linktoholdings>\n" +
+ " <linktouc>$$Tamazon_uc$$DThis item in Amazon</linktouc>\n" +
+ " <linktouc>$$Tworldcat_isbn$$DThis item in WorldCat</linktouc>\n" +
+ " <linktoexcerpt>$$Tsyndetics_excerpt$$DExcerpt from item</linktoexcerpt>\n" +
+ " <lln03>$$Tgooglebsisbn</lln03>\n" +
+ " </links>\n" +
+ " <search>\n" +
+ " <creatorcontrib>Siever, Ellen.</creatorcontrib>\n" +
+ " <creatorcontrib>Ellen Siever ... [et al.].</creatorcontrib>\n" +
+ " <creatorcontrib>Ellen</creatorcontrib>\n" +
+ " <creatorcontrib>Siever, E</creatorcontrib>\n" +
+ " <creatorcontrib>Ellen Siever</creatorcontrib>\n" +
+ " <title>Linux in a nutshell /</title>\n" +
+ " <subject>Linux.</subject>\n" +
+ " <subject>Operating systems (Computers)</subject>\n" +
+ " <subject>Computers Operating systems</subject>\n" +
+ " <subject>Computer operating systems</subject>\n" +
+ " <subject>Disk operating systems</subject>\n" +
+ " <general>O'Reilly,</general>\n" +
+ " <sourceid>oxfaleph</sourceid>\n" +
+ " <recordid>oxfaleph017140770</recordid>\n" +
+ " <isbn>9780596154486</isbn>\n" +
+ " <isbn>9780596154486 (pbk.)</isbn>\n" +
+ " <isbn>0596154488</isbn>\n" +
+ " <isbn>0596154488 (pbk.)</isbn>\n" +
+ " <rsrctype>book</rsrctype>\n" +
+ " <creationdate>2009</creationdate>\n" +
+ " <creationdate>l|||</creationdate>\n" +
+ " <creationdate>|8</creationdate>\n" +
+ " <addsrcrecordid>017140770</addsrcrecordid>\n" +
+ " <addsrcrecordid>17140770</addsrcrecordid>\n" +
+ " <searchscope>oxfaleph</searchscope>\n" +
+ " <searchscope>BOD</searchscope>\n" +
+ " <searchscope>OULS</searchscope>\n" +
+ " <searchscope>OX</searchscope>\n" +
+ " <searchscope>NONOX</searchscope>\n" +
+ " <scope>oxfaleph</scope>\n" +
+ " <scope>BOD</scope>\n" +
+ " <scope>OULS</scope>\n" +
+ " <scope>OX</scope>\n" +
+ " <scope>NONOX</scope>\n" +
+ " <alttitle>Linux in a nutshell : a desktop quick reference</alttitle>\n" +
+ " <lsr01>(Box retrieval please)</lsr01>\n" +
+ " <lsr02>Previous ed.: 2005. -- Cover title : Linux in a nutshell : a desktop quick reference. -- Includes index.</lsr02>\n" +
+ " <lsr13>Sebastopol, Calif. ; Cambridge</lsr13>\n" +
+ " <lsr15>O'Reilly,</lsr15>\n" +
+ " <lsr09>&lt;br />&lt;br />&lt;b>Short Description:&lt;/b> Focusing on Linux system essentials, this title covers programming tools, system and network administration tools, the shell, editors, LILO and GRUB boot options, and highlights the most important options for using the vast number of Linux commands. It can also help you learn Linux commands for system administration and network management.</lsr09>\n" +
+ " </search>\n" +
+ " <sort>\n" +
+ " <title>Linux in a nutshell /</title>\n" +
+ " <creationdate>2009</creationdate>\n" +
+ " <author>Siever, Ellen.</author>\n" +
+ " <lso01>2009</lso01>\n" +
+ " </sort>\n" +
+ " <facets>\n" +
+ " <language>eng</language>\n" +
+ " <creationdate>2009</creationdate>\n" +
+ " <topic>Linux</topic>\n" +
+ " <topic>Operating systems (Computers)</topic>\n" +
+ " <collection>OLIS</collection>\n" +
+ " <toplevel>physical_item</toplevel>\n" +
+ " <prefilter>books</prefilter>\n" +
+ " <rsrctype>books</rsrctype>\n" +
+ " <creatorcontrib>Siever, E</creatorcontrib>\n" +
+ " <library>BODBL</library>\n" +
+ " <frbrgroupid>150606989</frbrgroupid>\n" +
+ " <frbrtype>5</frbrtype>\n" +
+ " </facets>\n" +
+ " <dedup>\n" +
+ " <c3>linuxinanutshell</c3>\n" +
+ " <c4>2009</c4>\n" +
+ " <f3>9780596154486;0596154488</f3>\n" +
+ " <f5>linuxinanutshell</f5>\n" +
+ " <f6>2009</f6>\n" +
+ " <f7>linux in a nutshell</f7>\n" +
+ " <f8>cau</f8>\n" +
+ " <f9>xxii, 917 p. ;</f9>\n" +
+ " <f10>oreilly</f10>\n" +
+ " </dedup>\n" +
+ " <frbr>\n" +
+ " <t>1</t>\n" +
+ " <k1>$$Ksiever ellen$$AA</k1>\n" +
+ " <k3>$$Klinux in a nutshell$$AT</k3>\n" +
+ " </frbr>\n" +
+ " <delivery>\n" +
+ " <institution>OX</institution>\n" +
+ " <institution>NONOX</institution>\n" +
+ " <delcategory>Physical Item</delcategory>\n" +
+ " </delivery>\n" +
+ " <ranking>\n" +
+ " <booster1>1</booster1>\n" +
+ " <booster2>1</booster2>\n" +
+ " </ranking>\n" +
+ " <addata>\n" +
+ " <aulast>Siever</aulast>\n" +
+ " <aufirst>Ellen</aufirst>\n" +
+ " <addau>Siever, Ellen</addau>\n" +
+ " <btitle>Linux in a nutshell</btitle>\n" +
+ " <addtitle>Linux in a nutshell : a desktop quick reference</addtitle>\n" +
+ " <date>2009</date>\n" +
+ " <risdate>c2009.</risdate>\n" +
+ " <isbn>9780596154486</isbn>\n" +
+ " <format>book</format>\n" +
+ " <genre>book</genre>\n" +
+ " <ristype>BOOK</ristype>\n" +
+ " <cop>Sebastopol, Calif. ; Cambridge</cop>\n" +
+ " <pub>O'Reilly</pub>\n" +
+ " </addata>\n" +
+ " </record>\n" +
+ " </PrimoNMBib>\n" +
+ " <sear:GETIT GetIt2=\"http://1.1.1.1?ctx_ver=Z39.88-2004&amp;ctx_enc=info:ofi/enc:UTF-8&amp;ctx_tim=2011-08-12T14%3A00%3A23IST&amp;url_ver=Z39.88-2004&amp;url_ctx_fmt=infofi/fmt:kev:mtx:ctx&amp;rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Journal-oxfaleph&amp;rft_val_fmt=info:ofi/fmt:kev:mtx:book&amp;rft.genre=book&amp;rft.atitle=&amp;rft.jtitle=&amp;rft.btitle=Linux%20in%20a%20nutshell&amp;rft.aulast=Siever&amp;rft.auinit=&amp;rft.auinit1=&amp;rft.auinitm=&amp;rft.ausuffix=&amp;rft.au=&amp;rft.aucorp=&amp;rft.volume=&amp;rft.issue=&amp;rft.part=&amp;rft.quarter=&amp;rft.ssn=&amp;rft.spage=&amp;rft.epage=&amp;rft.pages=&amp;rft.artnum=&amp;rft.issn=&amp;rft.eissn=&amp;rft.isbn=9780596154486&amp;rft.sici=&amp;rft.coden=&amp;rft_id=info:doi/&amp;rft.object_id=&amp;rft_bat=&lt;oxfaleph>017140770&lt;/oxfaleph>&amp;rft.eisbn=&amp;rft_id=info:oai/\" GetIt1=\"OVP\" deliveryCategory=\"Physical Item\"/>\n" +
+ " <sear:LIBRARIES>\n" +
+ " <sear:LIBRARY>\n" +
+ " <sear:institution>OX</sear:institution>\n" +
+ " <sear:library>BODBL</sear:library>\n" +
+ " <sear:status>check_holdings</sear:status>\n" +
+ " <sear:collection/>\n" +
+ " <sear:callNumber>(Box retrieval please)</sear:callNumber>\n" +
+ " <sear:url>OVP</sear:url>\n" +
+ " </sear:LIBRARY>\n" +
+ " </sear:LIBRARIES>\n" +
+ " <sear:LINKS>\n" +
+ " <sear:backlink>http://aleph.sers.ox.ac.uk:8991/F?func=direct&amp;local_base=BIB01&amp;doc_number=017140770&amp;format=999</sear:backlink>\n" +
+ " <sear:thumbnail>http://images.amazon.com/images/P/9780596154486.01._SSTHUM_.jpg</sear:thumbnail>\n" +
+ " <sear:thumbnail>http://books.google.com/books?bibkeys=ISBN:9780596154486,OCLC:,LCCN:&amp;jscmd=viewapi&amp;callback=updateGBSCover</sear:thumbnail>\n" +
+ " <sear:linktoholdings>OVP</sear:linktoholdings>\n" +
+ " <sear:linktouc>http://www.amazon.co.uk/gp/search?keywords=9780596154486&amp;index=books</sear:linktouc>\n" +
+ " <sear:linktouc>http://www.worldcat.org/search?q=isbn%3A9780596154486</sear:linktouc>\n" +
+ " <sear:lln03>http://books.google.com/books?vid=ISBN9780596154486</sear:lln03>\n" +
+ " </sear:LINKS>\n" +
+ " </sear:DOC>\n" +
+ " </DOCSET>\n" +
+ " </RESULT>\n" +
+ " </JAGROOT>\n" +
+ "</SEGMENTS>\n" +
"";
-
+
/*
private String OLIS_JSON = "{\"version\":\"0.5\",\"schema\":\"http://ws.gbv.de/daia/\","
+"\"timestamp\":\"2009-06-09T15:39:52.831+02:00\","
@@ -515,30 +516,30 @@ public void testGetOLISResource() {
ResponseBean bean = service.getResource("UkOxUUkOxUb15585873");
System.out.println("testGetResource("+(System.currentTimeMillis()-l)+")");
Assert.assertNotNull(bean);
-
+
JSONObject jsonData = bean.toJSON("2009-06-09T15:39:52.831+02:00");
-
+
Assert.assertEquals(OLIS_JSON, jsonData.toString());
-
+
} catch (Exception e) {
System.out.println("Exception caught ["+e.getLocalizedMessage()+"]");
e.printStackTrace();
Assert.fail("Exception caught ["+e.getLocalizedMessage()+"]");
}
-
+
}
-
+
public void testGetORAResource() {
try {
long l = System.currentTimeMillis();
ResponseBean bean = service.getResource("ORAdebe641a-17ca-4196-ab2c-fe7565ced721");
System.out.println("testGetResource("+(System.currentTimeMillis()-l)+")");
Assert.assertNotNull(bean);
-
+
JSONObject jsonData = bean.toJSON("2009-06-09T15:39:52.831+02:00");
-
+
Assert.assertEquals(ORA_JSON, jsonData.toString());
-
+
} catch (Exception e) {
System.out.println("Exception caught ["+e.getLocalizedMessage()+"]");
e.printStackTrace();
@@ -546,52 +547,52 @@ public void testGetORAResource() {
}
}
*/
-
+
public void testFilterOLISResponse() {
-
+
try {
Collection<SearObject> beans =
PrimoService.filterResponse(nameSpaceURI, OLIS_XML);
Assert.assertEquals(2, beans.size());
-
+
} catch (Exception e) {
System.out.println("Exception caught ["+e.getLocalizedMessage()+"]");
Assert.fail("Exception caught ["+e.getLocalizedMessage()+"]");
}
}
-
+
public void testFilterORAResponse() {
-
+
try {
Collection<SearObject> beans =
PrimoService.filterResponse(nameSpaceURI, ORA_XML);
Assert.assertEquals(1, beans.size());
-
+
} catch (Exception e) {
System.out.println("Exception caught ["+e.getLocalizedMessage()+"]");
e.printStackTrace();
Assert.fail("Exception caught ["+e.getLocalizedMessage()+"]");
}
}
-
+
public void testParser() {
-
- String originalString = "<tag>This string is mine & yours <trouble &amp; strife></tag>";
-
- Pattern pattern = Pattern.compile("&(?!(amp|apos|quot|lt|gt);)");
- Matcher mat = pattern.matcher(originalString);
+
+ String originalString = "<tag>This string is mine & yours <trouble &amp; strife></tag>";
+
+ Pattern pattern = Pattern.compile("&(?!(amp|apos|quot|lt|gt);)");
+ Matcher mat = pattern.matcher(originalString);
String result = mat.replaceAll("&amp;");
System.out.println("parser ["+result+"]");
Assert.assertEquals("<tag>This string is mine &amp; yours <trouble &amp; strife></tag>", result);
}
-
+
public void testFilterErrorResponse() {
-
+
try {
PrimoService.filterResponse(nameSpaceURI, errorXML);
-
+
//Assert.fail("Exception expected");
-
+
} catch (Exception e) {
System.out.println("Exception caught ["+e.getLocalizedMessage()+"]");
Assert.fail("Exception caught ["+e.getLocalizedMessage()+"]");
@@ -604,13 +605,13 @@ public void testOLISToJSON() {
ResponseBean responseBean = new ResponseBean(id);
Collection<SearObject> beans = PrimoService.filterResponse(nameSpaceURI, OLIS_XML);
responseBean.addSearObjects(beans);
-
+
Map<String, Object> jsonData = responseBean.toJSON("2009-06-09T15:39:52.831+02:00");
ObjectMapper mapper = new ObjectMapper();
//mapper.writeValue(new File("response.json"), jsonData);
-
+
Assert.assertEquals(OLIS_JSON, mapper.writeValueAsString(jsonData));
-
+
} catch (Exception e) {
System.out.println("Exception caught ["+e.getLocalizedMessage()+"]");
e.printStackTrace();
@@ -618,23 +619,28 @@ public void testOLISToJSON() {
}
}
*/
- public void testORAoJSON() {
- try {
- String id = "ORAdebe641a-17ca-4196-ab2c-fe7565ced721";
- ResponseBean responseBean = new ResponseBean(id);
- Collection<SearObject> beans = PrimoService.filterResponse(nameSpaceURI, ORA_XML);
- responseBean.addSearObjects(beans);
-
- JSONObject json = responseBean.toJSON("2009-06-09T15:39:52.831+02:00");
- Assert.assertEquals(ORA_JSON.length(), json.toString().length());
-
- } catch (Exception e) {
- System.out.println("Exception caught ["+e.getLocalizedMessage()+"]");
- e.printStackTrace();
- Assert.fail("Exception caught ["+e.getLocalizedMessage()+"]");
- }
+ public void testORAoJSON() throws Exception {
+ String id = "ORAdebe641a-17ca-4196-ab2c-fe7565ced721";
+ ResponseBean responseBean = new ResponseBean(id);
+ Collection<SearObject> beans = PrimoService.filterResponse(nameSpaceURI, ORA_XML);
+ responseBean.addSearObjects(beans);
+
+ JSONObject json = responseBean.toJSON("2009-06-09T15:39:52.831+02:00");
+ // Check the basics
+ assertEquals("0.5", json.getString("version"));
+ assertNotNull(json.get("institution"));
+ assertEquals("http://www.ox.ac.uk", json.getJSONObject("institution").getString("href"));
+ // Check the document
+ JSONArray document = json.getJSONArray("document");
+ assertNotNull(document);
+ JSONObject first = document.getJSONObject(0);
+ assertNotNull(first);
+ assertEquals("ORAdebe641a-17ca-4196-ab2c-fe7565ced721", first.getString("id"));
+ assertNotNull(first.get("item"));
+ assertEquals("http://ora.ouls.ox.ac.uk/objects/uuid:debe641a-17ca-4196-ab2c-fe7565ced721"
+ ,first.getJSONArray("item").getJSONObject(0).getString("href"));
}
-
+
public void testNewXmlResponse() throws SAXException, IOException {
// Test that the library name lookups are working.
Collection<SearObject> beans = PrimoService.filterResponse(nameSpaceURI, NEW_OLIS_XML);
Please sign in to comment.
Something went wrong with that request. Please try again.