Okay, I put up the result for the day.
I made a CouchDbMailbox with Ektorp @annotations.
I made an attempt to make the MailboxMapper, but I got stuck at the <type> 
casting sugar which I don't grok. My IDE keeps complaining it can't resolve the 
incompatible types, while both are just Mailboxes.
I stuffed the CouchDB connection in a class, not happy with it.
I'm not sure how to implement the findMailboxWithPathLike and hasChildren 
methods.
Any help appreciated, especially with the... <> things. list() is the only one 
that's red wiggly lines, the others are just unchecked casts. I've been adding 
random casts and <> left and right.

https://github.com/pepijndevos/james-couchdb

Pepijn

On Oct 13, 2011, at 6:23 PM, Pepijn de Vos wrote:

> More questions. I started hacking!
> 
> I'm going with Ektorp. I figured out most of it, I think. Except that I don't 
> understand the configuration. It does have a Spring module. Any pointers on 
> how to organize the config and connections?
> 
> What does findMailboxWithPathLike do? The implementations seem to do weird 
> things with regexes. Preferably I make that into a nice CouchDB view. CouchDB 
> can't do fulltext search. As far as I can tell, the IMAP RFC doesn't say 
> anything about it.
> 
> To have custom message and mailbox classes, do I need to do anything else 
> besides subclassing the corresponding *Manager class to return one?
> 
> I'm getting there!
> 
> Pepijn
> 
> On Oct 12, 2011, at 9:35 PM, Manuel Carrasco Moñino wrote:
> 
>> Actually Ektorp is not a full implementation of JPA, but it provides a
>> JPA like API with support to many of its annotations etc.
>> 
>> Anyway, based on my experience, Ektorp simplifies the access from java
>> to couchdb and the bootstrap of couchdb, so as theoretically when
>> James starts the first time, the database, views, design, mapreduce,
>> etc should be created.
>> 
>> - Manolo
>> 
>> On Wed, Oct 12, 2011 at 1:05 PM, Pepijn de Vos <pepijnde...@yahoo.com> wrote:
>>> Ektorp seems nice, but I'm more comfortable just using something that 
>>> resembles the HTTP API, since I'm not familiar with JPA. Haven't decided 
>>> yet.
>>> 
>>> Pepijn
>>> 
>>> On Oct 11, 2011, at 5:08 PM, Manuel Carrasco Moñino wrote:
>>> 
>>>> Hi Pepijn
>>>> 
>>>> Which java library are you considering to use to connect with couchdb?
>>>> I'm using [1] ektorp and makes really easy to map domain models.
>>>> 
>>>> - Manolo
>>>> 
>>>> [1] http://www.ektorp.org/reference_documentation.html#d0e532
>>>> 
>>>> On Mon, Oct 10, 2011 at 10:44 PM, Pepijn de Vos <pepijnde...@yahoo.com> 
>>>> wrote:
>>>>> 
>>>>> Thanks a lot.
>>>>> 
>>>>> On Oct 10, 2011, at 8:24 PM, Ioan Eugen Stan wrote:
>>>>> 
>>>>>> Have patience. You will need it if you wish to complete something.
>>>>>> Patience and perseverance or else you'll be just another one who
>>>>>> tried.
>>>>> 
>>>>> I don't expect to have it finished by the end of the week, but if I'm 
>>>>> still completely clueless by then, it's just not worth the effort.
>>>>> I don't have the ambition to become a James commiter or even a Java dev, 
>>>>> I just thought it would be nice to use CouchDB for my application.
>>>>> Somewhere is a point where pragmatism beats learning. There isn't any 
>>>>> technical reason why I can't use JPA.
>>>>>> 
>>>>>>> Can I just copy an existing one and rename stuff? In other words, how 
>>>>>>> are the modules glued into the whole? How does the server know which 
>>>>>>> class to load? It's not in the pom.xml, afaict.
>>>>>> 
>>>>>> Not sure what you mean by that. It uses dependency injection provided
>>>>>> by Spring framework (and soon Guice) to inject object references into
>>>>>> other objects at runtime.
>>>>> 
>>>>> Ah, dependency injection. *googles* So just the fact that I implement the 
>>>>> interface is enough to @autowire it into James?
>>>>>> 
>>>>>>> The sample config is gone btw: 
>>>>>>> http://james.apache.org/server/3/config-mailbox.html
>>>>>>> Do I inherit tests as well? I would imagine that a lot of tests are 
>>>>>>> common to all mailbox implementations.
>>>>>> 
>>>>>> I think this is because the configuration changed and now it's spring
>>>>>> based, and more modular. I see you are very ambitious but I sense you
>>>>>> have a lot of catching up. James is complex so give it time, if you
>>>>>> expect too much from yourself and fail you will probably be too
>>>>>> disappointed.
>>>>> Yea, I read a Java book long ago, never did any big projects with it.
>>>>>> 
>>>>>> Make a public repo, commit something and ask if you get stuck. I will
>>>>>> try to help when/if I can. I suggest you start with simple
>>>>>> implementation that passes some unit tests.
>>>>> 
>>>>> So If I take any mailbox impl, put it in a separate repo, will it work? 
>>>>> All sorts of things refer to the parent pom. I'll put something on github 
>>>>> once I figure it out. I think it'll work out once I get to the point 
>>>>> where I can write some code.
>>>>>> 
>>>>>> See for example the unit tests I did for Mailbox interface in HBase
>>>>>> implementation:
>>>>>> http://svn.apache.org/repos/asf/james/mailbox/trunk/hbase/src/test/java/org/apache/james/mailbox/hbase/mail/model/HBaseMailboxTest.java
>>>>> What I mean with inheriting tests is that these all look very generic. 
>>>>> They look like they could test any mailbox implementation.
>>>>> 
>>>>> Pepijn
>>>>>> 
>>>>>> 
>>>>>> --
>>>>>> Ioan Eugen Stan
>>>>>> http://ieugen.blogspot.com/
>>>>>> 
>>>>>> ---------------------------------------------------------------------
>>>>>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
>>>>>> For additional commands, e-mail: server-dev-h...@james.apache.org
>>>>>> 
>>>>> 
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
>>>>> For additional commands, e-mail: server-dev-h...@james.apache.org
>>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
>>>> For additional commands, e-mail: server-dev-h...@james.apache.org
>>>> 
>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
>>> For additional commands, e-mail: server-dev-h...@james.apache.org
>>> 
>>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
>> For additional commands, e-mail: server-dev-h...@james.apache.org
>> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
> For additional commands, e-mail: server-dev-h...@james.apache.org
> 

Reply via email to