00001
00022 package org.objectweb.jonas.discovery;
00023
00024 import javax.management.MBeanRegistration;
00025 import javax.management.MBeanServer;
00026 import javax.management.NotificationBroadcasterSupport;
00027 import javax.management.ObjectName;
00028
00036 public class Enroller extends NotificationBroadcasterSupport
00037 implements MBeanRegistration, EnrollerMBean {
00038
00042 private int listeningPort;
00046 private String listeningIp = null;
00050 private MBeanServer mbeanServer;
00051 private ObjectName myOn;
00055 private Thread discoveryListener = null;
00060 private DiscoveryListener dl = null;
00061 private int ttl =1;
00062
00063 public Enroller (int listeningPort, String listeningIp) {
00064 this.listeningIp = listeningIp;
00065 this.listeningPort = listeningPort;
00066 }
00067
00072 public ObjectName preRegister(MBeanServer mbeanServer, ObjectName on)
00073 throws Exception {
00074 this.mbeanServer = mbeanServer;
00075 this.myOn = on;
00076 return myOn;
00077 }
00078
00082 public void postRegister(Boolean arg0) {
00083 start();
00084 }
00085
00090 public void preDeregister() throws Exception {
00091
00092 dl.stopListener();
00093 discoveryListener.interrupt();
00094 discoveryListener= null;
00095 }
00096
00101 public void postDeregister() {
00102
00103 }
00104
00109 public int getListeningPort() {
00110 return listeningPort;
00111 }
00112
00117 public void setListeningPort(int listeningPort) {
00118 this.listeningPort = listeningPort;
00119
00120 }
00121
00126 public String getListeningIp() {
00127 return listeningIp;
00128 }
00129
00134 public void setListeningIp(String listeningIp) {
00135 this.listeningIp = listeningIp;
00136
00137 }
00138
00143 public void setTimeToLive(int ttl) {
00144 this.ttl = ttl;
00145
00146 }
00147
00152 public int getTimeToLive() {
00153 return ttl;
00154 }
00155
00160 public void start() {
00161
00162 dl = new DiscoveryListener(this);
00163
00164 if (discoveryListener == null)
00165 discoveryListener = new Thread(dl, "discoveryListener");
00166 discoveryListener.start();
00167
00168 }
00173 public void stop() {
00174 dl.stopListener();
00175 }
00176 }