How much of JCR is required by Sakai3

10 views
Skip to first unread message

Bindu Wavell

unread,
Aug 26, 2011, 11:34:06 AM8/26/11
to sakai-...@googlegroups.com
I'm interested in switching over to a different content repository. Is there any documentation about how much of JCR is required (level 1, level 2, sql, etc, etc.)?

Erik Froese

unread,
Aug 26, 2011, 1:14:00 PM8/26/11
to sakai-...@googlegroups.com
Bindu,

The JCR is used in Sakai OAE to hold static content contained in the
OSGi bundles. The UX bundle probably makes up for most of it. Other
bundles may have templates or other content to serve.

If a bundle has a src/main/resources/SLING-INF/content folder then the
content of that folder will be added to the JCR when the bundle is
laoded/updated.

All other the content, users, groups, and ACLs is stored in the
SparseMapContent repository.

Which repository were you thinking of switching to?

Erik

> --
> You received this message because you are subscribed to the Google Groups
> "Sakai Nakamura" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/sakai-kernel/-/N08jqkd_aK8J.
> To post to this group, send email to sakai-...@googlegroups.com.
> To unsubscribe from this group, send email to
> sakai-kernel...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/sakai-kernel?hl=en.
>

Carl Hall

unread,
Aug 26, 2011, 2:34:17 PM8/26/11
to sakai-...@googlegroups.com
An interesting point that was raised yesterday about the use of JCR is that not only is static content held there, but any content that is written to the repository that is not in /p or ~<authId>. The UI only writes to areas that are stored in sparse but any external process that authenticates can write to something like /test/random/path and it will get stored in JCR. This will need to be reviewed after v1 to ensure this is what we want to happen.

Our intentions are what Erik pointed out though. Content initially loaded by Sling goes into JCR and user generated content is written to sparse. Things in JCR are UI files and search nodes.

Bindu Wavell

unread,
Aug 26, 2011, 6:04:10 PM8/26/11
to sakai-...@googlegroups.com
Interesting :) I was fully expecting that user provided content would be stored in the JCR repo. I was wondering what it would take to use Alfresco as the JCR store. But that's much less interesting if user content isn't stored there.

Based on your description, I wonder why you use JCR and more specifically JackRabbit at all? For static content it seems you'd have a much simpler system if this content was directly written-to/served-from a file-system... In my mind simpler = less stuff to maintain, test, compile, etc... and less stuff that can break....

The SparseMapContent repo sounds interesting. I found the following page that provided some insight: https://confluence.sakaiproject.org/display/KERNDOC/Sparse+Map+Content+-+Developer+Information

In any case, thanks so much for your speedy response!

Bindu Wavell

unread,
Aug 26, 2011, 6:09:00 PM8/26/11
to sakai-...@googlegroups.com
For what it's worth I don't know what /p is used for :)

I really like how sling Provides a convention based mechanism to transform content/resources in order to produce multiple renditions of the content (xml, json, html, txt, etc, etc)... Do you expose those same sorts of capabilities for content stored in the SparseMapContent repository?

When you say things in JCR are UI files and search nodes, what are search nodes?

Thanks in advance!

Carl Hall

unread,
Aug 29, 2011, 10:32:47 AM8/29/11
to sakai-...@googlegroups.com
/p is for pooled content. This is an area where users can store data that is shared with others in the system but doesn't particularly live in a hierarchical form.

We do expose some of the output renderers you mentioned but not at the sparse level much like this isn't exposed by JackRabbit. Output rendering is handled by Sling so no matter what storage mechanism you use, you  still get the cool output options.

Search nodes are nodes of content that we use to run searches. We have a search framework that handles calling the right query and outputting the results but it takes influence from these search nodes. The node determines what query is to be run, what pre- and post-processing should happen and describes the query. A good is example is here[1].



--
You received this message because you are subscribed to the Google Groups "Sakai Nakamura" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sakai-kernel/-/KdECTYdq_WYJ.

Bindu Wavell

unread,
Aug 31, 2011, 12:48:22 PM8/31/11
to sakai-...@googlegroups.com
Super, thanks Carl!
Reply all
Reply to author
Forward
0 new messages