It worked, that was a weird eclipse behaviour...
You are very helpful, may I bother you one more time? maybe the last...
maybe not :)

Now I can easily store my messages in the db, ok, but the source of my
messages is an inputStream.
I don't know how to make an Inputstream from a mail message (as javax.Mail,
MimeMessage or Message...) cause each try I made gave me a "bad header
message...".
I see in James code the MessageResultImpl class which looks like a Message
def but with Content type instead of MimeMessage...
I will try to parse every ppty of the message and make a new MessageResult
and find a way to extract the damned InputStream I need...

Thx



2011/1/21 Norman Maurer <nor...@apache.org>

> Maybe some nice classpath problem with eclipse or something like
> that.. maybe just rename your beans config to something else and use
> it in the Main class. Just to be sure it not use the wrong one..
>
> Bye,
> Norman
>
>
> 2011/1/21 Luc Saulière <luc.sauli...@gmail.com>:
> > 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
> >>
> >>
> >
>
> ---------------------------------------------------------------------
> 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