Thx, it works perfectly with only only 7 beans. Just one weird thing, in my J3M2 project which worked perfectly yesterday, I have now a XmlBeanDefinitionStoreException, which specify the spring-beans.xml line number 1770!!?! weird, isn't it?
2011/1/20 Norman Maurer <nor...@apache.org> > Hi there, > > exactly. In fact you will prolly only need to instance the needed > MailboxManager/SubscriptionManager/Authenticator implementation you > want to use in your code or just wire these implementations via > spring. Everything else should not be needed. > > Bye, > Norman > > > 2011/1/20 Luc Saulière <luc.sauli...@gmail.com>: > > Ok it works, I didnt know how to inject beans in my main class... > > It loads all the james app before sending one mail to the bdd, but it > works > > :) In fact I hacked all the spring-bean.xml (from J3M2) without deleting > any > > bean... I just have to select those I need. > > > > Thanks for your help, > > Luc > > > > 2011/1/20 Eric Charles <e...@apache.org> > > > >> Hi, > >> > >> Yes, direct injection does not work in main class because it is not > fetched > >> from spring context. > >> > >> 1. you can create a bean and move the @Resource within, define the bean > in > >> spring xml context, spring should inject the mailboxmanager in your > bean. > >> You can get your bean with context.getBean("mybean") in main class. > >> > >> 2. or simply call from the main class context.getBean("mailboxmanager"), > it > >> should give you the mailboxmanager,... but it seems you had an exception > (if > >> such, could you provide the stack trace ?). > >> > >> Tks, > >> > >> Eric > >> > >> > >> > >> On 20/01/2011 15:42, Luc Saulière wrote: > >> > >>> Hello Eric, > >>> That was quite the code I tested yesterday, but I got still the same > >>> exception, because the MailboxManager is not initialized (null pointer > >>> exception). > >>> I tried the @Resource annotation, I got 'null pointer' and I tried the > >>> BeanFactory way but I got a 'bean creation exception'... > >>> I think the first method is the good one, but I'm still looking after > the > >>> magic method to instantiate my MailboxManager. > >>> > >>> Thx, > >>> Luc. > >>> > >>> > >>> 2011/1/20 Eric Charles<e...@apache.org> > >>> > >>> Hi, > >>>> > >>>> Probably you did not instantiate spring context. > >>>> > >>>> As first shot, you could copy Main to YourMain > >>>> > >>>> > >>>> > https://svn.apache.org/repos/asf/james/server/trunk/container-spring/src/main/java/org/apache/james/container/spring/Main.java > >>>> > >>>> and hack it with for example with code sample in [1]. > >>>> > >>>> You can also hack the spring context xml files if you don't want to > load > >>>> all the beans, but you will still need a few of them to access the > >>>> mailbox. > >>>> > >>>> Obviously, we could discuss the following: > >>>> 1. Add some code simple samples for basic operations on mailbox. > >>>> 2. Have a spring context for mailbox that could be used as a > stand-alone > >>>> (and also be imported in server). > >>>> > >>>> Tks, > >>>> > >>>> Eric > >>>> > >>>> [1] code sample (non compiling). > >>>> > >>>> public class YourMain { > >>>> > >>>> private static Log log = LogFactory.getLog(Main.class.getName()); > >>>> > >>>> @Ressource(name="mailboxmanager") > >>>> private static MailboxManager; > >>>> > >>>> public static void main(String[] args) throws IOException { > >>>> > >>>> final JamesServerApplicationContext context = new > >>>> JamesServerApplicationContext(new String[] { > >>>> "context/james-server-context.xml" }); > >>>> context.registerShutdownHook(); > >>>> > >>>> // Bad code practice - Refactor it!!! > >>>> > >>>> MailboxPath mailboxPath = MailboxPath.inbox("userName"); > >>>> > >>>> MailboxSession mailboxSession = > >>>> mailboxManager.createSystemSession(userName30, log) > >>>> mailboxManager.startProcessingRequest(mailboxSession); > >>>> try { > >>>> mailboxManager.createMailbox(mailboxPath, > mailboxSession); > >>>> } > >>>> catch (MailboxExistsException e) { > >>>> // Do nothing, the mailbox already exists. > >>>> } > >>>> > >>>> mailboxManager.endProcessingRequest(mailboxSession); > >>>> > >>>> > >>>> MessageManager messageManager = > >>>> mailboxManager.getMailbox("mailboxPath", mailboxSession); > >>>> > >>>> // instanciate an input stream that contains your email content > >>>> (body, header,...) > >>>> > >>>> messageManager.appendMessage(your-input-stream, > >>>> new Date(), > >>>> mailboxSession, > >>>> isRecent, > >>>> flags); > >>>> mailboxManager.endProcessingRequest(mailboxSession); > >>>> } > >>>> > >>>> } > >>>> > >>>> } > >>>> > >>>> > >>>> > >>>> On 19/01/2011 20:07, Luc Saulière wrote: > >>>> > >>>> Thx for answering so quickly, I tried this in a new package inside > >>>>> james-server-container-spring project... > >>>>> I have a public static void main(String[] args) containing my private > >>>>> staticMailboxManager mailboxManager which > >>>>> > >>>>> is injected with the annotation @Resource(name="mailboxmanager") from > >>>>> the > >>>>> spring-bean.xml. > >>>>> But it does not succeed in initializing the variable and I get a > >>>>> NullPointerException as soon as I use it... > >>>>> How can I initialize my beans without running the entire James app? > >>>>> > >>>>> Tks. > >>>>> > >>>>> > >>>>> 2011/1/19 Eric Charles<e...@apache.org> > >>>>> > >>>>> Hi Luc, > >>>>> > >>>>>> Yes, code has changed in trunk since M2 (we don't use MailServer > >>>>>> anymore). > >>>>>> In M2, or in trunk, the way to store mail is the same. > >>>>>> If you are deploying the your code/class in the james spring > container, > >>>>>> you > >>>>>> need to inject the mailboxmanager (with > >>>>>> @Resources(name="mailboxmanager") > >>>>>> and have a block of code such as: > >>>>>> > >>>>>> MailboxPath mailboxPath = MailboxPath.inbox(userName30); > >>>>>> MailboxSession mailboxSession = > >>>>>> mailboxManager.createSystemSession(userName30, log) > >>>>>> MessageManager messageManager = > mailboxManager.getMailbox(mailboxPath, > >>>>>> mailboxSession); > >>>>>> messageManager.appendMessage(your-input-stream, > >>>>>> new Date(), > >>>>>> mailboxSession, > >>>>>> isRecent, > >>>>>> flags); > >>>>>> mailboxManager.endProcessingRequest(mailboxSession); > >>>>>> } > >>>>>> > >>>>>> I just realize I can't find a simple test case to in trunk to show > this > >>>>>> (or > >>>>>> maybe I didn't look good). > >>>>>> If we don't have this, maybe you could open a jira so we can further > >>>>>> provide test samples. > >>>>>> (this comes from the fact that all our tests were made from an > "imap > >>>>>> perspective", we moved the imap test to another project, but we > >>>>>> probably > >>>>>> should further enrich the pure mailbox test cases/samples). > >>>>>> > >>>>>> Tks, > >>>>>> > >>>>>> Eric > >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> On 19/01/2011 18:04, Luc Sauličre wrote: > >>>>>> > >>>>>> Hello, > >>>>>> > >>>>>>> I'm developing with Math on the same mail app. We didn't succeed in > >>>>>>> storing > >>>>>>> mail as james3 does. In fact the SieveMailet class does not have a > >>>>>>> setUsersRepo method, I think you're dealing with a newer version of > >>>>>>> James3... > >>>>>>> We are developing with the M2 one and SieveMailet have a > setMailserver > >>>>>>> method instead. > >>>>>>> So, is there any way to store a mail (from another IMAP connection > for > >>>>>>> instance) in the James3 mySQL db, as James3 does (i.e. filling > >>>>>>> correctly > >>>>>>> all > >>>>>>> the appropriate tables...)? > >>>>>>> > >>>>>>> Thx for helping. > >>>>>>> Luc. > >>>>>>> > >>>>>>> 2011/1/17 Eric Charles<e...@apache.org> > >>>>>>> > >>>>>>> Hi, > >>>>>>> > >>>>>>> The mails store magic occurs in LocalDelivery where the > >>>>>>>> MailboxManager > >>>>>>>> is > >>>>>>>> injected. > >>>>>>>> (more precise, LocalDelivery uses the SieveMailet initialized with > >>>>>>>> the > >>>>>>>> MailboxManager) > >>>>>>>> sieveMailet.setUsersRepository(usersRepository); > >>>>>>>> sieveMailet.setMailboxManager(mailboxManager); > >>>>>>>> sieveMailet.init(m); > >>>>>>>> sieveMailet.setQuiet(true); > >>>>>>>> ... > >>>>>>>> if (mail.getState() != Mail.GHOST) { > >>>>>>>> sieveMailet.service(mail); > >>>>>>>> } > >>>>>>>> > >>>>>>>> You only need to know that *MailRepository is not for users' mail > >>>>>>>> storage > >>>>>>>> http://james.apache.org/server/3/feature-persistence.html > >>>>>>>> > >>>>>>>> Both topics (mailet usage for delivery + separate mail stores) are > >>>>>>>> subject > >>>>>>>> to discussion will certainly change. > >>>>>>>> > >>>>>>>> Tks, > >>>>>>>> > >>>>>>>> Eric > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> On 17/01/2011 11:43, math math wrote: > >>>>>>>> > >>>>>>>> Hello everybody, > >>>>>>>> > >>>>>>>> I am developping a web mail project using james 3M2. I'm trying > to > >>>>>>>>> store > >>>>>>>>> mails in a "james3" way with an external application using MySql > DB. > >>>>>>>>> I've > >>>>>>>>> tried to store mails using mysq database repositories for a few > days > >>>>>>>>> now > >>>>>>>>> but > >>>>>>>>> i didn't succeed to do so... I 've traced the store method of > >>>>>>>>> JDBCMailRepository class and also the ToRepository one. But still > >>>>>>>>> don't > >>>>>>>>> know > >>>>>>>>> how James 3 is storing mails in the DB. > >>>>>>>>> > >>>>>>>>> I would be very glad if someone could help me in this task. > >>>>>>>>> > >>>>>>>>> Thanks, > >>>>>>>>> Mat > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > --------------------------------------------------------------------- > >>>>>>>>> > >>>>>>>>> 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 > >