Return-Path: Delivered-To: apmail-jackrabbit-users-archive@minotaur.apache.org Received: (qmail 80112 invoked from network); 13 Sep 2010 13:17:35 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 13 Sep 2010 13:17:35 -0000 Received: (qmail 15430 invoked by uid 500); 13 Sep 2010 13:17:34 -0000 Delivered-To: apmail-jackrabbit-users-archive@jackrabbit.apache.org Received: (qmail 15284 invoked by uid 500); 13 Sep 2010 13:17:32 -0000 Mailing-List: contact users-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: users@jackrabbit.apache.org Delivered-To: mailing list users@jackrabbit.apache.org Received: (qmail 15275 invoked by uid 99); 13 Sep 2010 13:17:32 -0000 Received: from Unknown (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 13 Sep 2010 13:17:32 +0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of justinedelson@gmail.com designates 209.85.212.42 as permitted sender) Received: from [209.85.212.42] (HELO mail-vw0-f42.google.com) (209.85.212.42) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 13 Sep 2010 13:17:07 +0000 Received: by vws18 with SMTP id 18so8570345vws.1 for ; Mon, 13 Sep 2010 06:16:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:reply-to :user-agent:mime-version:to:subject:references:in-reply-to :content-type:content-transfer-encoding; bh=K4LThXHAX46xYeL6ejZvA7/dyJGt+O7LKjIZIkrB5DQ=; b=dpGMoF08T8YwN2pVJ2Mz3f0J1XcQ19nWW8eVr89XC1Fkqh6rIV/WE31vRXOOBP/Pbj ytR7DCpvMueoEgcG7yY94+uyIY5tBrDGB6I6jkZsqDv6s5ESRoDzi8aykJ45/lMQ6znj Xdj25O+ZZrx+rPL1ASDPD+BzdxyIvrGquYcKc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:reply-to:user-agent:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; b=kX8F+nQV8E/sg42FNXOHMgg5R+ifI7iu4FvqCCIRNbQFJe/h9BjFE9MeVsKXP6ArAC auGe7NskeXT78tQD467gkXKNJdwztmcqxCzbKnuN1XC2gzbksF9sQgLJCRsRbCrrLrF7 vqKw5WmL6mYoHD0iRuZUZeFp+uT6j5HECUis8= Received: by 10.220.47.162 with SMTP id n34mr2121069vcf.6.1284383804115; Mon, 13 Sep 2010 06:16:44 -0700 (PDT) Received: from Justin-Edelsons-iMac.local (ool-44c6554e.dyn.optonline.net [68.198.85.78]) by mx.google.com with ESMTPS id m30sm3611045vbr.19.2010.09.13.06.16.42 (version=SSLv3 cipher=RC4-MD5); Mon, 13 Sep 2010 06:16:43 -0700 (PDT) Message-ID: <4C8E2439.3010004@gmail.com> Date: Mon, 13 Sep 2010 09:16:41 -0400 From: Justin Edelson Reply-To: justin@justinedelson.com User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.9) Gecko/20100825 Thunderbird/3.1.3 MIME-Version: 1.0 To: users@jackrabbit.apache.org Subject: Re: Spring configuration? References: In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Checked: Checked by ClamAV on apache.org On 9/13/10 8:37 AM, Joseph Ottinger wrote: > On Mon, Sep 13, 2010 at 8:29 AM, Thomas M�ller wrote: > >> Hi, >> >>> Well, I want to use a FileSystem which is configured via Spring >> >> What is your use case? Why do you want to use a FileSystem which is >> configured via Spring? Why do you need to use your own FileSystem >> implementation? >> >> My use case is that I have a distributed datastore (persistent IMDG) and I > don't want the speed problems an RDMS has (plus, I don't want to run a DB at > all.) Plus, it'd be fun. It sounds like you'll want to implement both a PersistenceManager and a FileSystem. The FileSystem is used primarily to store configuration files, both at the repository level and per-workspace. The PersistenceManager is what actually stores the node and property data. In terms of wiring these via Spring, the problem I see with this is that Jackrabbit needs to be able to create newly configured FileSystem and PersistenceManager instances per workspace, i.e. what's in the repository.xml is merely a template which Jackrabbit populates with the appropriate substitution variables when a new workspace is needed. Your best bet is probably to expose your ApplicationContext as a Singleton, create some facade implementations of the FileSystem and PersistenceManager interfaces and then using the Singleton in the init() methods of those facade implementations to look up component factories from Spring and then use those component factories to get a workspace-specific instance of File System or PersistenceManager. This is probably less code than it sounds like. Justin > > As far as why configured via Spring: primarily transaction propagation. It's > also to centralize configuration. > > I have to say that I'm not sure if I should be using a FileSystem or a > PersistenceManager. I went with FileSystem because that's what the > repository configuration specified first, and that seemed like the first > logical thing to get rid of (and locate in the IMDG.) > > > >>> When is JackRabbit 3 likely to be finalized? >> >> I'm afraid it will take quite a while until it contains as much >> features as the current Jackrabbit. >> >> *nod* Well, I look forward to it, then - but I would rather work on > something other than vaporware. If it's not "near completion" then I don't > want to postpone development for it. > > >>> How will it manage data storage? >> >> That's not yet completely decided. Most likely it will have less >> storage components. Possibly everything will be stored in one place by >> default. That means no external / separate data store, no Lucene index >> (again, by default), no configuration file, and no FileSystem or >> similar mechanism. Everything stored in one (SQL- or NoSQL-) storage. >> My guess is that the first storage implementation will be JDBC. >> >> > If you want NoSQL help, let me know. :) > > >>> Can I see it now? >> >> What we have is a prototype I wrote a while ago, but it's far from >> being usable or complete. Unfortunately I didn't have time to work on >> it for quite some time now: >> http://wiki.apache.org/jackrabbit/MicroKernelPrototype >> >>> Is it documented? (If it is, that's a first for JCR... :) >> >> In my view, the JCR specification is well written. Jackrabbit >> documentation is here: http://wiki.apache.org/jackrabbit/FrontPage - >> if anything is missing please let us know >> >> I've found the specification to be all right, but the references on USING > the specification tend to be sparse. > > In other words, it satisfies the language lawyers, but not the users. (In MY > experience. I'm sure other users have fewer issues.) > >