@ Эдуард, относительно зависимостей от третьих лиц - вы делаете это как упражнение колледжа / университета или что-то, что повлияет на реальных пользователей в производственной среде?
На риск звучит очень претенциозно; не переопределять колесо! Я определенно предпочел бы использовать вызов JCR, так что вы зависите от стандарта, а не от сторонней реализации.
JCR - это четко определенный стандарт (это означает, что многие люди вложили в это коммерческие усилия (т. Е. Деньги и опыт в огромных количествах). Я бы серьезно пересмотрел рассмотрение JCR - воспринимайте его как API, в котором третьи стороны предоставляют реализацию (без блокировки поставщика).
Взгляните на функции, которые вы получите из коробки, я считаю, что 99 - 110% необходимых вам функций доступны в реализации JCR. Кроме того, вы получите пользу от того факта, что код, который вы будете использовать, был протестирован сотнями людей в реальных ситуациях.
Я бы отличался от bmscomp предложением JackRabbit http://jackrabbit.apache.org/