So, the result and questions for today: https://github.com/pepijndevos/james-couchdb
What is serialVersionUID? Is UidValidity something else than what is provided by CouchDbUidProvider? I had a look at the InMemory test, and it seems to fail on remainders of the InMemory implementation(mentions of ConcurrentHashmap). I'm not sure what it tests, but I think it's more than just CouchDbMailboxManager. Today I tried to implement ModSeq and Uid. They work fine until you introduce concurrency. I'd be glad if someone would take a look at nextModSeq. I'll try to write a test for it tomorrow. The thing is that the test would need the database, right? How do you handle that? Pepijn On Oct 15, 2011, at 11:41 AM, Pepijn de Vos wrote: > Thanks! :) > > I have no idea what you did with the generics though. I read an article about > them, and thought I understood them. > > Basically they are just statically checked casts, right? So what does it mean > to write X implements Y<Z>? > > The tests are just leftovers from InMemory. I'm not doing TDD, but I rather > see tests as a frozen REPL. I write code, test it in the REPL, if I find > myself repeating pieces in the REPL, I make them into a test. I didn't get to > the stage where I could even compile anything. > > Pepijn > > On Oct 14, 2011, at 8:14 PM, Manuel Carrasco Moñino wrote: > >> You are right, you already sent the github link. >> >> I've checked out the code and I've made some changes to make it >> compile, also I have changed id signature in messages and mailboxes to >> String since couchdb uses string. I have hardcoded a user and password >> in the Utils class, it should go in the configuration files though. >> >> I just have sent you a pull request >> https://github.com/manolo/james-couchdb/commit/2b6b0ebce5c78198b14d1e7ec05c178d56482919 >> >> The unique Test in the tree do no pass, I think you can start fixing >> the test so as it should be easier to follow the code taking a look to >> tests. >> >> - Manolo >> >> >> On Thu, Oct 13, 2011 at 9:54 PM, Pepijn de Vos <pepijnde...@yahoo.com> wrote: >>> I added the github link to the beautifully formatted original email, but I >>> think Google mistreated my message. >>> >>> Her it is again: https://github.com/pepijndevos/james-couchdb >>> >>> Pepijn >>> >>> On Oct 13, 2011, at 9:28 PM, Manuel Carrasco Moñino wrote: >>> >>>> Hi Pepjin, could be possible to share your code anywhere, so as I >>>> could checkout it and take a look? >>>> >>>> Don't worry about if the code is ok or not, I think github could be >>>> ok, but you could send a compressed file via email or whatever you >>>> prefer. >>>> >>>> - Manolo >>>> >>>> >>>> On Thu, Oct 13, 2011 at 8:12 PM, Pepijn de Vos <pepijnde...@yahoo.com> >>>> wrote: >>>>> 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 >>>>>> >>>>> >>>>> >>>> >>>> --------------------------------------------------------------------- >>>> 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