[MAGNOLIA-321] Allow use of single repository Created: 21/Mar/05  Updated: 23/Jan/13  Resolved: 16/Sep/05

Status: Closed
Project: Magnolia
Component/s: core
Affects Version/s: 2.1 Final
Fix Version/s: 3.0 Beta 1

Type: Improvement Priority: Minor
Reporter: Sameer Charles Assignee: Sameer Charles
Resolution: Fixed Votes: 1
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)

 Description   

Giancarlo :
just got a hint from boris about kyle's project setup and read it. not only do i agree completely to setting up two different instances for authoring and publish, but i strongly would recommend doing so.

but he does not talk about repositories! and since i am confused as well, why magnolia uses more than one repository, i drop a note to discuss on:

JSR 170 defines how to access a repository. it also defines, what a repository is. basically the idea is that a repository "manages" different data sources (e.g. ldap, fs, rdbms, etc.). so that's why i am confused about why having more than one repository.
i suppose, that magnolia wants to offer the liberty of e.g. managing users through an ldap server. this idea is a perfect scenario for a jsr 170 compliant repository! see, the developer writes "getProperty...", but does not care, where it comes from. the repository is responsable for reading/writing (like the sql syntax for a rdbms).
within a repository you configure workspaces, which all have at least one default "persistency manager". each persistency manager is responsible for reading/writing to a data source.
so if for example you want your users to be managed over ldap, you *configure* the ldap persistancy manager within a workspace (sets root node). all read/write events based on a child of that workspace root node will be managed by the ldap persistency manager.

the real, real brilliant idea is that the templater's jsp/java script does not care where the repository gets the information from. like in a rdbms, were you use "Select ...", in a jsr 170 compliant repository you use "getProperty...". so if one day you want to manage content in a rdbms (why would you do that anyway?) you simply (re-)configure a workspace with an according "persistency manager" and you do not touch your great and exciting web application at all!

IMHO, i would suggest that magnolia uses one repository, but offers 3 persistency managers (fs, rdbms and ldap). in april i think i could help on that.

----------------------------------------------------------------------------------------------------

1. with current magnolia implementation it allows you to use repository from any "vendor" not only jackrabbit.

2. you are talking about persistence managers, so you would write a persistence manager for jackrabbit to write on to LDAP, what if
I wanna use IBM jcr repository for that?

IMHO, i would suggest that magnolia uses one repository, but offers 3 persistency managers (fs, rdbms and ldap). in april i think i could help on that.

I am not opposing this but magnolia should not be dependent on repository and how it persist data.



 Comments   
Comment by Sameer Charles [ 16/Sep/05 ]

Done!

updated on current trunk, you need to update uncluding config to make it work

check config/repositories.xml, now you can configure if you would like to use single or multiple repositories
there is an example configuration
http://svn.magnolia.info/svn/magnolia/trunk/src/webapp/WEB-INF/config/repositories.xml

Generated at Mon Feb 12 03:16:16 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.