OpdsFeed(metadata=OpdsFeedMetadata(identifier=null, type=null, title=OPDS 2.0 Test Catalog, subtitle=null, modified=null, description=null, itemsPerPage=null, currentPage=null, numberOfItems=null), links=[ReadiumLink(href=https://test.opds.io/2.0/home.json, rel=[self], type=application/opds+json, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], publications=[OpdsPublication(metadata=ReadiumMetadata(type=http://schema.org/Book, title=LangMapStringValue(value=Moby-Dick), sortAs=null, subtitle=null, identifier=http://www.feedbooks.com/book/54/moby-dick, modified=2018-04-23T23:18:00Z, published=1851-01-01, language=[en], author=[ReadiumContributorObject(name=Herman Melville, identifier=null, sortAs=Melville, Herman, links=null)], translator=null, editor=null, artist=null, illustrator=null, letterer=null, penciler=null, colorist=null, inker=null, narrator=null, contributor=null, publisher=[ReadiumContributorStringValue(value=Feedbooks)], imprint=null, subject=null, description=Moby-Dick is an 1851 novel by Herman Melville. The story tells the adventures of the wandering sailor Ishmael and his voyage on the whaling ship Pequod, commanded by Captain Ahab. Ishmael soon learns that Ahab seeks one specific whale, Moby-Dick, a white whale of tremendous size and ferocity. Comparatively few whaling ships know of Moby-Dick, and fewer yet have encountered him. In a previous encounter, the whale destroyed Ahab's boat and bit off his leg. Ahab intends to exact revenge., numberOfPages=null, duration=null), links=[ReadiumLink(href=https://test.opds.io/assets/moby/file.epub, rel=[http://opds-spec.org/acquisition/open-access], type=application/epub+zip, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], images=[ReadiumLink(href=https://test.opds.io/assets/moby/small.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=169, width=110, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/assets/moby/normal.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=400, width=260, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], readingOrder=null, resources=null, toc=null), OpdsPublication(metadata=ReadiumMetadata(type=http://schema.org/Book, title=LangMapStringValue(value=Le Mystère de la chambre jaune), sortAs=LangMapStringValue(value=Mystère de la chambre jaune, Le), subtitle=null, identifier=http://fr.feedbooks.com/book/588/le-myst%C3%A8re-de-la-chambre-jaune, modified=2018-04-23T22:32:00Z, published=1907-01-01, language=[fr], author=[ReadiumContributorObject(name=Gaston Leroux, identifier=null, sortAs=Leroux, Gaston, links=null)], translator=null, editor=null, artist=null, illustrator=null, letterer=null, penciler=null, colorist=null, inker=null, narrator=null, contributor=null, publisher=[ReadiumContributorStringValue(value=Feedbooks)], imprint=null, subject=null, description=Imaginez-vous devant un coffre fort fermé, où vous entendriez quelqu'un crier à l'aide , vous ouvrez et, vous ne trouvez que la victime. Par où l'assassin est-il parti ? C'est le Mystère de la chambre jaune... La plus célèbre des aventures de Rouletabille..., numberOfPages=null, duration=null), links=[ReadiumLink(href=https://test.opds.io/assets/chambrejaune/file.epub, rel=[http://opds-spec.org/acquisition/open-access], type=application/epub+zip, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], images=[ReadiumLink(href=https://test.opds.io/assets/chambrejaune/small.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=169, width=110, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/assets/chambrejaune/normal.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=400, width=260, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], readingOrder=null, resources=null, toc=null)], navigation=[ReadiumLink(href=https://test.opds.io/2.0/navigation.json, rel=null, type=application/opds+json, title=Explore (Navigation Feed), templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/2.0/publications.json, rel=null, type=application/opds+json, title=French Books (Publications Feed), templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/2.0/home.json, rel=null, type=application/opds+json, title=Third Link, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/2.0/home.json, rel=null, type=application/opds+json, title=Fourth Link, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/2.0/home.json, rel=null, type=application/opds+json, title=Fifth Link, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/2.0/home.json, rel=null, type=application/opds+json, title=Sixth Link, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/2.0/home.json, rel=null, type=application/opds+json, title=Seventh Link, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/2.0/home.json, rel=null, type=application/opds+json, title=Eight Link, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], facets=null, groups=[OpdsGroup(metadata=OpdsFeedMetadata(identifier=null, type=null, title=French Classics, subtitle=null, modified=null, description=null, itemsPerPage=null, currentPage=null, numberOfItems=5), links=[ReadiumLink(href=https://test.opds.io/2.0/publications.json, rel=[self], type=application/opds+json, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], navigation=null, publications=[OpdsPublication(metadata=ReadiumMetadata(type=http://schema.org/Book, title=LangMapStringValue(value=Voyage au centre de la Terre), sortAs=null, subtitle=null, identifier=http://fr.feedbooks.com/book/1474/voyage-au-centre-de-la-terre, modified=2018-04-23T22:15:00Z, published=1864-01-01, language=[fr], author=[ReadiumContributorObject(name=Jules Verne, identifier=null, sortAs=Verne, Jules, links=null)], translator=null, editor=null, artist=null, illustrator=null, letterer=null, penciler=null, colorist=null, inker=null, narrator=null, contributor=null, publisher=[ReadiumContributorStringValue(value=Feedbooks)], imprint=null, subject=[ReadiumSubjectObject(name=LangMapStringValue(value=Science Fiction), sortAs=null, code=FBFIC028000, scheme=null, links=null), ReadiumSubjectObject(name=LangMapStringValue(value=Action & Aventure), sortAs=null, code=FBFIC002000, scheme=null, links=null)], description=Le professeur Lidenbrock trouve un document dans lequel il apprend l'existence d'un volcan éteint dont la cheminée pourrait le conduire jusqu'au centre de la Terre. Accompagné de son neveu Axel et du guide Hans, il se rend au volcan Sneffels, en Islande, et s'engouffre dans les entrailles de la Terre. Ils ne tarderont pas à faire d'étonnantes découvertes..., numberOfPages=251, duration=null), links=[ReadiumLink(href=https://test.opds.io/assets/centredelaterre/file.epub, rel=[http://opds-spec.org/acquisition/open-access], type=application/epub+zip, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], images=[ReadiumLink(href=https://test.opds.io/assets/centredelaterre/small.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=110, width=146, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/assets/centredelaterre/normal.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=346, width=260, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], readingOrder=null, resources=null, toc=null), OpdsPublication(metadata=ReadiumMetadata(type=http://schema.org/Book, title=LangMapStringValue(value=Le Rouge et le Noir), sortAs=LangMapStringValue(value=Rouge et le Noir, Le), subtitle=LangMapStringValue(value=Chronique du XIXe siècle), identifier=http://fr.feedbooks.com/book/220/le-rouge-et-le-noir, modified=2018-04-23T22:25:00Z, published=1834-01-01, language=[fr], author=[ReadiumContributorStringValue(value=Stendhal)], translator=null, editor=null, artist=null, illustrator=null, letterer=null, penciler=null, colorist=null, inker=null, narrator=null, contributor=null, publisher=[ReadiumContributorStringValue(value=Feedbooks)], imprint=null, subject=null, description=Au rouge des armes, Julien Sorel préfèrera le noir des ordres. Au cours de son ascension sociale, deux femmes se singularisent, comme pour figurer les deux penchants de son caractère : Madame de Rênal - le rêve, l'aspiration à un bonheur pur et simple - et Mathilde de La Mole - l'énergie, l'action brillante et fébrile. A ces composantes stendhaliennes (conception de la vie qui dépasse la stratégie narrative pour s'étendre à l'existence de l'auteur) correspondent deux facettes stylistiques : la sobriété et la restriction du champ de vision., numberOfPages=null, duration=null), links=[ReadiumLink(href=https://test.opds.io/assets/rougenoir/file.epub, rel=[http://opds-spec.org/acquisition/open-access], type=application/epub+zip, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], images=[ReadiumLink(href=https://test.opds.io/assets/rougenoir/small.jpg, rel=[http://opds-spec.org/image/thumbnail], type=image/jpeg, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/assets/rougenoir/normal.jpg, rel=[http://opds-spec.org/image], type=image/jpeg, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], readingOrder=null, resources=null, toc=null), OpdsPublication(metadata=ReadiumMetadata(type=http://schema.org/Book, title=LangMapStringValue(value=Le Mystère de la chambre jaune), sortAs=LangMapStringValue(value=Mystère de la chambre jaune, Le), subtitle=null, identifier=http://fr.feedbooks.com/book/588/le-myst%C3%A8re-de-la-chambre-jaune, modified=2018-04-23T22:32:00Z, published=1907-01-01, language=[fr], author=[ReadiumContributorObject(name=Gaston Leroux, identifier=null, sortAs=Leroux, Gaston, links=null)], translator=null, editor=null, artist=null, illustrator=null, letterer=null, penciler=null, colorist=null, inker=null, narrator=null, contributor=null, publisher=[ReadiumContributorStringValue(value=Feedbooks)], imprint=null, subject=null, description=Imaginez-vous devant un coffre fort fermé, où vous entendriez quelqu'un crier à l'aide , vous ouvrez et, vous ne trouvez que la victime. Par où l'assassin est-il parti ? C'est le Mystère de la chambre jaune... La plus célèbre des aventures de Rouletabille..., numberOfPages=null, duration=null), links=[ReadiumLink(href=https://test.opds.io/assets/chambrejaune/file.epub, rel=[http://opds-spec.org/acquisition/open-access], type=application/epub+zip, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], images=[ReadiumLink(href=https://test.opds.io/assets/chambrejaune/small.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=169, width=110, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/assets/chambrejaune/normal.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=400, width=260, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], readingOrder=null, resources=null, toc=null), OpdsPublication(metadata=ReadiumMetadata(type=http://schema.org/Book, title=LangMapStringValue(value=Madame Bovary), sortAs=null, subtitle=null, identifier=http://fr.feedbooks.com/book/386/madame-bovary, modified=2018-04-23T22:53:00Z, published=1857-01-01, language=[fr], author=[ReadiumContributorObject(name=Gustave Flaubert, identifier=null, sortAs=Flaubert, Gustave, links=null)], translator=null, editor=null, artist=null, illustrator=null, letterer=null, penciler=null, colorist=null, inker=null, narrator=null, contributor=null, publisher=[ReadiumContributorStringValue(value=Feedbooks)], imprint=null, subject=null, description=Charles Bovary, après avoir suivi ses études dans un lycée de province, s'établit comme officier de santé et se marie à une riche veuve. À la mort de celle-ci, Charles épouse une jeune femme, Emma Rouault, élevée dans un couvent, vivant à la ferme avec son père (un riche fermier, patient du jeune médecin). Emma se laisse séduire par Charles et se marie avec lui. Fascinée par ses lectures romantiques, elle rêve d’une nouvelle vie, en compagnie de son nouveau mari., numberOfPages=null, duration=null), links=[ReadiumLink(href=https://test.opds.io/assets/bovary/file.epub, rel=[http://opds-spec.org/acquisition/open-access], type=application/epub+zip, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], images=[ReadiumLink(href=https://test.opds.io/assets/bovary/small.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=169, width=110, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/assets/bovary/normal.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=400, width=260, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], readingOrder=null, resources=null, toc=null), OpdsPublication(metadata=ReadiumMetadata(type=http://schema.org/Book, title=LangMapStringValue(value=Du côté de chez Swann), sortAs=null, subtitle=null, identifier=http://fr.feedbooks.com/book/4/du-c%C3%B4t%C3%A9-de-chez-swann, modified=2018-04-23T22:56:00Z, published=1913-01-01, language=[fr], author=[ReadiumContributorObject(name=Marcel Proust, identifier=null, sortAs=Proust, Marcel, links=null)], translator=null, editor=null, artist=null, illustrator=null, letterer=null, penciler=null, colorist=null, inker=null, narrator=null, contributor=null, publisher=[ReadiumContributorStringValue(value=Feedbooks)], imprint=null, subject=null, description=Du côté de chez Swann est un roman de Marcel Proust, c'est le premier volume de À la recherche du temps perdu. Il est composé de trois parties, dont les titres sont : Combray, Un amour de Swann et Nom de pays : le nom., numberOfPages=null, duration=null), links=[ReadiumLink(href=https://test.opds.io/assets/swann/file.epub, rel=[http://opds-spec.org/acquisition/open-access], type=application/epub+zip, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], images=[ReadiumLink(href=https://test.opds.io/assets/swann/small.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=169, width=110, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/assets/swann/normal.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=400, width=260, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], readingOrder=null, resources=null, toc=null)]), OpdsGroup(metadata=OpdsFeedMetadata(identifier=null, type=null, title=More Navigation, subtitle=null, modified=null, description=null, itemsPerPage=null, currentPage=null, numberOfItems=null), links=null, navigation=[ReadiumLink(href=https://test.opds.io/2.0/home.json, rel=null, type=application/opds+json, title=French Books, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/2.0/home.json, rel=null, type=application/opds+json, title=English Books, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], publications=null), OpdsGroup(metadata=OpdsFeedMetadata(identifier=null, type=null, title=English Classics, subtitle=null, modified=null, description=null, itemsPerPage=null, currentPage=null, numberOfItems=3), links=null, navigation=null, publications=[OpdsPublication(metadata=ReadiumMetadata(type=http://schema.org/Book, title=LangMapStringValue(value=Moby-Dick), sortAs=null, subtitle=null, identifier=http://www.feedbooks.com/book/54/moby-dick, modified=2018-04-23T23:18:00Z, published=1851-01-01, language=[en], author=[ReadiumContributorObject(name=Herman Melville, identifier=null, sortAs=Melville, Herman, links=null)], translator=null, editor=null, artist=null, illustrator=null, letterer=null, penciler=null, colorist=null, inker=null, narrator=null, contributor=null, publisher=[ReadiumContributorStringValue(value=Feedbooks)], imprint=null, subject=null, description=Moby-Dick is an 1851 novel by Herman Melville. The story tells the adventures of the wandering sailor Ishmael and his voyage on the whaling ship Pequod, commanded by Captain Ahab. Ishmael soon learns that Ahab seeks one specific whale, Moby-Dick, a white whale of tremendous size and ferocity. Comparatively few whaling ships know of Moby-Dick, and fewer yet have encountered him. In a previous encounter, the whale destroyed Ahab's boat and bit off his leg. Ahab intends to exact revenge., numberOfPages=null, duration=null), links=[ReadiumLink(href=https://test.opds.io/assets/moby/file.epub, rel=[http://opds-spec.org/acquisition/open-access], type=application/epub+zip, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], images=[ReadiumLink(href=https://test.opds.io/assets/moby/small.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=169, width=110, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/assets/moby/normal.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=400, width=260, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], readingOrder=null, resources=null, toc=null), OpdsPublication(metadata=ReadiumMetadata(type=http://schema.org/Book, title=LangMapStringValue(value=Romeo and Juliet), sortAs=null, subtitle=null, identifier=http://www.feedbooks.com/book/2936/romeo-and-juliet, modified=2018-05-04T19:28:00Z, published=1597-01-01, language=[en], author=[ReadiumContributorObject(name=William Shakespeare, identifier=null, sortAs=Shakespeare, William, links=null)], translator=null, editor=null, artist=null, illustrator=null, letterer=null, penciler=null, colorist=null, inker=null, narrator=null, contributor=null, publisher=[ReadiumContributorStringValue(value=Feedbooks)], imprint=null, subject=null, description=Romeo and Juliet is a tragic play written early in the career of William Shakespeare about two teenage star-cross'd lovers whose untimely deaths ultimately unite their feuding households. It was among Shakespeare's most popular plays during his lifetime and, along with Hamlet, is one of his most frequently performed plays. Today, the title characters are regarded as archetypal young lovers., numberOfPages=null, duration=null), links=[ReadiumLink(href=https://test.opds.io/assets/romeo/file.epub, rel=[http://opds-spec.org/acquisition/open-access], type=application/epub+zip, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], images=[ReadiumLink(href=https://test.opds.io/assets/romeo/small.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=169, width=110, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/assets/romeo/normal.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=400, width=260, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], readingOrder=null, resources=null, toc=null), OpdsPublication(metadata=ReadiumMetadata(type=http://schema.org/Book, title=LangMapStringValue(value=Jane Eyre), sortAs=null, subtitle=null, identifier=http://www.feedbooks.com/book/144/jane-eyre, modified=2018-05-04T19:32:00Z, published=1847-01-01, language=[en], author=[ReadiumContributorObject(name=Charlotte Brontë, identifier=null, sortAs=Brontë, Charlotte, links=null)], translator=null, editor=null, artist=null, illustrator=null, letterer=null, penciler=null, colorist=null, inker=null, narrator=null, contributor=null, publisher=[ReadiumContributorStringValue(value=Feedbooks)], imprint=null, subject=null, description=Jane Eyre, the story of a young girl and her passage into adulthood, was an immediate commercial success at the time of its original publication in 1847. Its representation of the underside of domestic life and the hypocrisy behind religious enthusiasm drew both praise and bitter criticism, while Charlotte Brontë's striking expose of poor living conditions for children in charity schools as well as her poignant portrayal of the limitations faced by women who worked as governesses sparked great controversy and social debate. Jane Eyre, Brontë's best-known novel, remains an extraordinary coming-of-age narrative, and one of the great classics of literature., numberOfPages=null, duration=null), links=[ReadiumLink(href=https://test.opds.io/assets/eyre/file.epub, rel=[http://opds-spec.org/acquisition/open-access], type=application/epub+zip, title=null, templated=null, properties=null, height=null, width=null, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], images=[ReadiumLink(href=https://test.opds.io/assets/eyre/small.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=169, width=110, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null), ReadiumLink(href=https://test.opds.io/assets/eyre/normal.jpg, rel=null, type=image/jpeg, title=null, templated=null, properties=null, height=400, width=260, size=null, bitrate=null, duration=null, language=null, alternate=null, children=null, subcollections=null)], readingOrder=null, resources=null, toc=null)])]) Test running on port 43509 )SLF4J(W): No SLF4J providers were found. ASLF4J(W): Defaulting to no-operation (NOP) logger implementation PSLF4J(W): See https://www.slf4j.org/codes.html#noProviders for further details. oWARN: http://localhost:43509/resources/index.json Navigation link to grade1/grade1.json SHOULD contain an icon  DEBUG: http://localhost:43509/resources/index.json Skipping link as it has already been visited: http://localhost:43509/resources/index.json  DEBUG: http://localhost:43509/resources/grade1/grade1.json Validating Opds Publication: title "Lesson 001" and identifier: http://example.app/id/lesson001  DEBUG: http://localhost:43509/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:43509/resources/grade1/grade1.json  DEBUG: http://localhost:43509/resources/grade1/lesson001/lesson001.json Validating Opds Publication: title "Lesson 001" and identifier: https://example.app/id/lesson001  DEBUG: http://localhost:43509/resources/grade1/lesson001/lesson001.json Skipping link as it has already been visited: http://localhost:43509/resources/grade1/lesson001/lesson001.json  DEBUG: http://localhost:43509/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:43509/resources/grade1/lesson001/lesson001.html  DEBUG: http://localhost:43509/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:43509/resources/grade1/lesson001/lesson001.json  Test running on port 33685 ERROR: http://localhost:33685/resources/appmanifest.json Link to http://localhost:33685/resources/appmanifest.json: No last-modified or etag header found  ERROR: http://localhost:33685/resources/appmanifest.json Link to http://localhost:33685/resources/app.html: No last-modified or etag header found  ERROR: http://localhost:33685/resources/appmanifest.json Link to http://localhost:33685/resources/index.json: No last-modified or etag header found  ERROR: http://localhost:33685/resources/appmanifest.json Link to http://localhost:33685/resources/index.json: No last-modified or etag header found  oWARN: http://localhost:33685/resources/index.json Navigation link to grade1/grade1.json SHOULD contain an icon  DEBUG: http://localhost:33685/resources/index.json Skipping link as it has already been visited: http://localhost:33685/resources/index.json  ERROR: http://localhost:33685/resources/index.json Link to http://localhost:33685/resources/grade1/grade1.json: No last-modified or etag header found  DEBUG: http://localhost:33685/resources/grade1/grade1.json Validating Opds Publication: title "Lesson 001" and identifier: http://example.app/id/lesson001  ERROR: http://localhost:33685/resources/grade1/grade1.json Link to http://localhost:33685/resources/grade1/lesson001/cover.png: No last-modified or etag header found  ERROR: http://localhost:33685/resources/grade1/grade1.json Link to http://localhost:33685/resources/grade1/lesson001/lesson001.html: No last-modified or etag header found  DEBUG: http://localhost:33685/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:33685/resources/grade1/grade1.json  ERROR: http://localhost:33685/resources/grade1/grade1.json Link to http://localhost:33685/resources/grade1/lesson001/lesson001.json: No last-modified or etag header found  DEBUG: http://localhost:33685/resources/grade1/lesson001/lesson001.json Validating Opds Publication: title "Lesson 001" and identifier: https://example.app/id/lesson001  ERROR: http://localhost:33685/resources/grade1/lesson001/lesson001.json Link to http://localhost:33685/resources/grade1/lesson001/cover.png: No last-modified or etag header found  ERROR: http://localhost:33685/resources/grade1/lesson001/lesson001.json Link to http://localhost:33685/resources/grade1/lesson001/lesson001.html: No last-modified or etag header found  ERROR: http://localhost:33685/resources/grade1/lesson001/lesson001.json Link to http://localhost:33685/resources/grade1/lesson001/audio.ogg: No last-modified or etag header found  ERROR: http://localhost:33685/resources/grade1/lesson001/lesson001.json Link to http://localhost:33685/resources/grade1/lesson001/video.mp4: No last-modified or etag header found  ERROR: http://localhost:33685/resources/grade1/lesson001/lesson001.json Link to http://localhost:33685/resources/grade1/lesson001/script.js: No last-modified or etag header found  DEBUG: http://localhost:33685/resources/grade1/lesson001/lesson001.json Skipping link as it has already been visited: http://localhost:33685/resources/grade1/lesson001/lesson001.json  ERROR: http://localhost:33685/resources/grade1/lesson001/lesson001.json Link to http://localhost:33685/resources/grade1/lesson001/lesson001.html: No last-modified or etag header found  DEBUG: http://localhost:33685/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:33685/resources/grade1/lesson001/lesson001.html  DEBUG: http://localhost:33685/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:33685/resources/grade1/lesson001/lesson001.json   Test running on port 45677  oWARN: http://localhost:45677/resources/index.json Navigation link to grade1/grade1.json SHOULD contain an icon    DEBUG: http://localhost:45677/resources/index.json Skipping link as it has already been visited: http://localhost:45677/resources/index.json    DEBUG: http://localhost:45677/resources/grade1/grade1.json Validating Opds Publication: title "Lesson 001" and identifier: http://example.app/id/lesson001    ERROR: http://localhost:45677/resources/grade1/grade1.json Link to http://localhost:45677/resources/grade1/cover-small.jpg: Response status code not HTTP OK/200. Got: 404    DEBUG: http://localhost:45677/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:45677/resources/grade1/grade1.json    DEBUG: http://localhost:45677/resources/grade1/lesson001/lesson001.json Validating Opds Publication: title "Lesson 001" and identifier: https://example.app/id/lesson001    sERROR: http://localhost:45677/resources/grade1/lesson001/lesson001.json The manifest which is discovered using the  discovery process as per the Readium spec ( https://github.com/readium/webpub-manifest?tab=readme-ov-file#5-discovering-a-manifest )  /MUST contain a list of all resources required.    DEBUG: http://localhost:45677/resources/grade1/lesson001/lesson001.json Skipping link as it has already been visited: http://localhost:45677/resources/grade1/lesson001/lesson001.json    DEBUG: http://localhost:45677/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:45677/resources/grade1/lesson001/lesson001.html    DEBUG: http://localhost:45677/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:45677/resources/grade1/lesson001/lesson001.json    Test running on port 33409  oWARN: http://localhost:33409/resources/index.json Navigation link to grade1/grade1.json SHOULD contain an icon    DEBUG: http://localhost:33409/resources/index.json Skipping link as it has already been visited: http://localhost:33409/resources/index.json    DEBUG: http://localhost:33409/resources/grade1/grade1.json Validating Opds Publication: title "Lesson 001" and identifier: http://example.app/id/lesson001    ERROR: http://localhost:33409/resources/grade1/grade1.json Link to http://localhost:33409/resources/grade1/cover-small.jpg: Response status code not HTTP OK/200. Got: 404    DEBUG: http://localhost:33409/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:33409/resources/grade1/grade1.json    DEBUG: http://localhost:33409/resources/grade1/lesson001/lesson001.json Validating Opds Publication: title "Lesson 001" and identifier: https://example.app/id/lesson001    ERROR: http://localhost:33409/resources/grade1/lesson001/lesson001.json Link to http://localhost:33409/resources/grade1/lesson001/cover.png: Response status code not HTTP OK/200. Got: 404    ERROR: http://localhost:33409/resources/grade1/lesson001/lesson001.json Link to http://localhost:33409/resources/grade1/lesson001/audio.ogg: Response status code not HTTP OK/200. Got: 404    ERROR: http://localhost:33409/resources/grade1/lesson001/lesson001.json Link to http://localhost:33409/resources/grade1/lesson001/video.mp4: Response status code not HTTP OK/200. Got: 404    ERROR: http://localhost:33409/resources/grade1/lesson001/lesson001.json Link to http://localhost:33409/resources/grade1/lesson001/script.js: Response status code not HTTP OK/200. Got: 404    DEBUG: http://localhost:33409/resources/grade1/lesson001/lesson001.json Skipping link as it has already been visited: http://localhost:33409/resources/grade1/lesson001/lesson001.json    DEBUG: http://localhost:33409/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:33409/resources/grade1/lesson001/lesson001.html    DEBUG: http://localhost:33409/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:33409/resources/grade1/lesson001/lesson001.json    Test running on port 33397  oWARN: http://localhost:33397/resources/index.json Navigation link to grade1/grade1.json SHOULD contain an icon    DEBUG: http://localhost:33397/resources/index.json Skipping link as it has already been visited: http://localhost:33397/resources/index.json    DEBUG: http://localhost:33397/resources/grade1/grade1.json Validating Opds Publication: title "Lesson 001" and identifier: http://example.app/id/lesson001    ERROR: http://localhost:33397/resources/grade1/grade1.json Link to http://localhost:33397/resources/grade1/cover-small.jpg: Response status code not HTTP OK/200. Got: 404    ERROR: http://localhost:33397/resources/grade1/grade1.json Manifest not discovered for learning resource ID URL: http://localhost:33397/resources/grade1/lesson001/lesson001.html .Readium publication manifest must be discoverable using a linktag in HTML or Link header for the learning resource ID URL as per https://github.com/readium/webpub-manifest?tab=readme-ov-file#5-discovering-a-manifest    DEBUG: http://localhost:33397/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:33397/resources/grade1/grade1.json    DEBUG: http://localhost:33397/resources/grade1/lesson001/lesson001.json Validating Opds Publication: title "Lesson 001" and identifier: https://example.app/id/lesson001    ERROR: http://localhost:33397/resources/grade1/lesson001/lesson001.json Manifest not discovered for learning resource ID URL: http://localhost:33397/resources/grade1/lesson001/lesson001.html .Readium publication manifest must be discoverable using a linktag in HTML or Link header for the learning resource ID URL as per https://github.com/readium/webpub-manifest?tab=readme-ov-file#5-discovering-a-manifest    DEBUG: http://localhost:33397/resources/grade1/lesson001/lesson001.json Skipping link as it has already been visited: http://localhost:33397/resources/grade1/lesson001/lesson001.json    DEBUG: http://localhost:33397/resources/grade1/grade1.json Skipping link as it has already been visited: http://localhost:33397/resources/grade1/lesson001/lesson001.html