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
00138 ReconfiguredProp reconfiguredProp = new ReconfiguredProp("", null);
00139 reconfiguredProp.setProps(props);
00140
00141 sendReconfigNotification(getSequenceNumber(), getFactoryName(), reconfiguredProp);
00142 }
00143 }