Le lundi 19 novembre 2007, Xavier Hanin a écrit :
> On Nov 19, 2007 11:38 AM, Nicolas Lalevée
> <[EMAIL PROTECTED]>
>
> wrote:
> > Hi,
>
> Hi Nicolas,
>
> > I have started to look at IVYDE-39. I sucessfully synchronized it with
> > the ivyde trunk. This was quite easy, just the package names were
> > changed.
>
> First, let me thank you for all the patches you've submitted this week-end!
> I haven't had time to look at them so far, but there are many things I was
> planning to do myself (like IVYDE-62), so your contribution is really
> appreciated!
>
> > But know I try to make it work with the ivy trunk, the 2.0. And now I get
> > quite confuse by the API.
>
> Indeed, the log API has changed recently due to problems related to the use
> of static methods and static references to MessageImpl causing memory
> problems. The new API delegates more work to the MessageLogger (which
> replaces MessageImpl as you've understood) including the tracking of the
> set of problems for a given resolve process. We could discuss if a logger
> is a good place for this, but at least it's better than using static
> variables in the Message class for this :-)
>
> For the integration in IvyDE, I have pending changes in my workspace that I
> should commit to make IvyDE compatible with Ivy trunk. This will hopefully
> fix this problem of logger. I'll try to check your patches and commit my
> changes this afternoon.
>
> Basically the idea is to change the default logger on the Message class, so
> that all Ivy logging will end up beeing handled by IvyConsole within IvyDE.
> Here is the modified IvyConsole constructor:
> public IvyConsole() {
> super("Ivy", IvyPlugin.getImageDescriptor("icons/logo16x16.gif"));
> //$NON-NLS-1$
> consoleManager = ConsolePlugin.getDefault().getConsoleManager();
> document = new ConsoleDocument();
> Message.setDefaultLogger(this);
> }
>
> Obviously IvyConsole has to be modifed to implement the MessageLogger
> interface. You'll see that once I check in my changes.
>
> Hope this will make things clearer and sorry for the trouble related to
> this change.
Thank you for committing this. And as commented in the jira issue, it works
fine now :)
But about jira, I didn't recieved any mail from it. Normally as a reporter I
should be notified on comments and changed status, shouldn't I ? Is it
correctly configured ?
So then I tried to subscribe to the ivy-commit list, where every jira
notification is send, but I get :
<[EMAIL PROTECTED]>: host
mx1.eu.apache.org[192.87.106.230] said: 550 mail to
[EMAIL PROTECTED] not accepted here (in reply to
RCPT TO command)
Is something appening to the mailing list ?
cheers,
Nicolas
> Xavier
>
> > In IvyDE, there is special logger for ivy, the IvyConsole, that log every
> > message in an eclipse console. So now it seem that there is not anymore
> > MessageImpl, but there is a MessageLogger. But as far as I understand,
> > this
> > logger does more that just logging. This apparently have to keep every
> > logged
> > message so they can be retrieved into a resolve report. Which seems to me
> > a
> > different purpose.
> >
> > And then, if I want to set my custom logger, the former code was :
> >
> > if (IvyContext.getContext().getMessageImpl()==null) {
> > IvyContext.getContext().setMessageImpl(ivyconsole);
> > }
> >
> > As there is no setter on the ivy context, either I do :
> >
> > if (!(Messsage.getDefaultLogger() instanceof IvyConsole)) {
> > Messsage.setDefaultLogger(ivyconsole);
> > }
> >
> > which afraid me about the thread safety... Or I could do
> >
> > Ivy ivy = IvyContext.getContext().getIvy();
> > if (!(ivy.getLoggerEngine().peekLogger() instanceof IvyConsole)) {
> > ivy.getLoggerEngine().pushLogger(ivyconsole);
> > }
> >
> > And here I am wondering what is the difference between the beans that are
> > stored into ivy, and the ones into the ivy context.
> >
> > So, how should use the logger API ?
> >
> > cheers,
> > Nicolas
--
Nicolas LALEVÉE
ANYWARE TECHNOLOGIES
Tel : +33 (0)5 61 00 52 90
Fax : +33 (0)5 61 00 51 46
http://www.anyware-tech.com