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
>
>

Reply via email to