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 >