Troubleshooting

If things don't just work as described in the readme.

Getting the content graph manually:
- curl -u admin:admin -H "Accept: application/n-triples" http://localhost:8080/graph?name=urn:x-localinstance:/content.graph > graph.nt

Manually deploying:
- retrieve a zipped offline version from http://localhost:8080/admin/offline/download?baseUri=http://localhost:8080/&targetUri=http://incubator.apache.org/clerezza/&formatExtension=xhtml&formatExtension=rdf&formatExtension=png&formatExtension=html&formatExtension=js&formatExtension=jpeg&rootLinkPrefix=/clerezza
- scp site<id>.zip  people.apache.org:/www/incubator.apache.org/clerezza
- on people.apache.org: unzip -o site<id>.zip


NOTES:
- as the documentation at /documentation is not a resource in rdf it wasn't
contained in the oflline site, so I added a resource with that URI
- to have the content of index-resources displayed on localhost you need to create the respective collection, otherwise the resource can only be accessed with the URI ending with "/index". This can be done on the clerzza shell as follows:


import rdf.core._
import rdf.core.impl._
import rdf.ontologies._
import platform.graphprovider.content.ContentGraphProvider
val cgp = $[ContentGraphProvider]
val cg = cgp.getContentGraph
cg.add(new TripleImpl(new UriRef("http://localhost:8080/downloads/"), RDF.`type`, HIERARCHY.Collection))

