JavaMailResource.java

00001 
00026 package org.objectweb.jonas.mail.factory;
00027 
00028 import java.util.Properties;
00029 
00030 import javax.management.NotificationFilter;
00031 import javax.management.NotificationListener;
00032 
00033 import org.objectweb.jonas.management.ListenerJavaBean;
00034 import org.objectweb.jonas.management.ReconfiguredProp;
00035 import org.objectweb.jonas.management.j2eemanagement.J2EEResource;
00036 import org.objectweb.util.monolog.api.BasicLevel;
00037 
00043 public abstract class JavaMailResource extends J2EEResource {
00044 
00045     JavaMail mailFactory = null;
00046 
00055     public JavaMailResource(String objectName, boolean stateManageable, boolean statisticsProvider, boolean eventProvider, JavaMail mailFactory) {
00056         super(objectName, stateManageable, statisticsProvider, eventProvider);
00057         this.mailFactory = mailFactory;
00058     }
00059 
00064     public String getFactoryName() {
00065         return mailFactory.getFactoryName();
00066     }
00071     public String getName() {
00072         return mailFactory.getName();
00073     }
00078     public void setName(String name) {
00079         mailFactory.setName(name);
00080     }
00085     public String getFactoryType() {
00086         return mailFactory.getType();
00087     }
00088 
00093     public Properties getAuthenticationProperties() {
00094         return mailFactory.getAuthenticationProperties();
00095     }
00096 
00101     public void setAuthenticationProperties(Properties props) {
00102         mailFactory.setAuthenticationProperties(props);
00103         notifyReconfiguration(props);
00104     }
00105 
00110     public Properties getSessionProperties() {
00111         return mailFactory.getSessionProperties();
00112     }
00113 
00118     public void setSessionProperties(Properties props) {
00119         mailFactory.setSessionProperties(props);
00120         notifyReconfiguration(props);
00121     }
00122 
00126     public void saveConfig() {
00127         sendSaveNotification(getSequenceNumber(), getFactoryName());
00128     }
00129 
00134     protected abstract long getSequenceNumber();
00135 
00136     protected void notifyReconfiguration(Properties props) {
00137         // Here we do not reconfigure a sole property, but a group of properties in props
00138         ReconfiguredProp reconfiguredProp = new ReconfiguredProp("", null);
00139         reconfiguredProp.setProps(props);
00140         // Send a reconfiguration notification to the listner MBean
00141         sendReconfigNotification(getSequenceNumber(), getFactoryName(), reconfiguredProp);
00142     }  
00143 }

Generated on Tue Feb 15 15:05:18 2005 for JOnAS by  doxygen 1.3.9.1