You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by Curt Arnold <ca...@apache.org> on 2007/01/30 23:06:10 UTC

svn commit: r500498 - in logging/log4j/trunk bug 35259

r500498 | eross | 2007-01-27 01:20:49 -0600 (Sat, 27 Jan 2007) | 2 lines

Bug 35259 - Added attribute "sessionJNDI" to the appender
Added negative test, needs positive testing though

Index: src/java/org/apache/log4j/net/SMTPAppender.java
===================================================================
33a34,37
 > import javax.naming.Context;
 > import javax.naming.InitialContext;
 > import javax.naming.NameNotFoundException;
 > import javax.naming.NamingException;
76a81,86
 >    The JavaMail session is obtained through {@link #setSessionJNDI 
(String) JNDI} or by
 >    directly calling {@link Session#getDefaultInstance(Properties)  
and setting
 >    various addressing details on this object.
 >    The former method is preferred for application servers,
 >    the latter for stand-alone usage.
 >    </p>
80a91,96
 >
 >   /**
 >    * JavaMail session.
 >    */
 >   private Session session;
 >
94a111
 >   private String sessionJNDI;
125,126c142,152
<     Session session = createSession();
<     msg = new MimeMessage(session);
---
 >     if (sessionJNDI != null) {
 >       try {
 >         session = lookupSession();
 >         if (session == null)
 >           throw new NameNotFoundException();
 >       } catch (NamingException e) {
 >         throw new IllegalStateException("Failed finding  
javax.mail.Session: " + sessionJNDI + " Reason: " + e);
 >       }
 >     } else {
 >       session = createSession();
 >     }
127a154
 >     msg = new MimeMessage(session);
143d169
<       errorCount++;
150d175
<       errorCount++;
160a186,194
 >   private Session lookupSession() throws NamingException {
 >     Context c = new InitialContext();
 >     try {
 >       return (Session) c.lookup(sessionJNDI);
 >     } finally {
 >       c.close();
 >     }
 >   }
 >
189,190c223
<    *  Create mail session.
<    *  @param mail session, may not be null.
---
 >    * Returns a new mail session, using properties from the system.
601a635,650
 >
 >   /**
 >    * Returns the session JNDI entry name.
 >    * This is useful for application servers.
 >    */
 >   public String getSessionJNDI() {
 >     return sessionJNDI;
 >   }
 >
 >   /**
 >    * Sets the session JNDI entry name.
 >    */
 >   public void setSessionJNDI(String sessionJndiLocation) {
 >     this.sessionJNDI = sessionJndiLocation;
 >   }
 >
Index: tests/src/java/org/apache/log4j/net/SMTPAppenderTest.java
===================================================================
23d22
<
30a30,32
 >
 >   SMTPAppender ca = new SMTPAppender();
 >
32c34
<     return new SMTPAppender();
---
 >     return ca;
36,37d37
<     SMTPAppender ca = new SMTPAppender();
<
46,47c46,61
<   public void testPartiallyConfiguredAppender() {
<
---
 >   public void testBadSessionJNDI() {
 >     ca.setSessionJNDI("/not/here");
 >     try {
 >       ca.activateOptions();
 >       fail("cannot start");
 >     } catch (IllegalStateException e) {
 >     }
 >     ca.setSessionJNDI(null);
 >     ca.setLayout(new DummyLayout());
 >     ca.activateOptions();
 >     /*
 >     LoggingEvent le = new LoggingEvent();
 >     le.setMessage("hi");
 >     le.setLevel(Level.DEBUG);
 >     ca.doAppend(le);
 >     */
48a63,64
 >
 >


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org