1 18 19 package sync4j.server.engine.dm.ejb; 20 21 import java.util.logging.Logger ; 22 23 import javax.ejb.CreateException ; 24 import javax.ejb.EJBException ; 25 import javax.ejb.SessionContext ; 26 import javax.naming.InitialContext ; 27 import javax.rmi.PortableRemoteObject ; 28 29 import sync4j.framework.config.Configuration; 30 import sync4j.framework.engine.dm.ManagementException; 31 import sync4j.framework.logging.Sync4jLogger; 32 import sync4j.framework.logging.Sync4jLoggerName; 33 import sync4j.framework.notification.NotificationException; 34 import sync4j.framework.notification.NotificationConstants; 35 36 37 import sync4j.server.admin.ejb.AdminHomeRemote; 38 import sync4j.server.admin.ejb.AdminRemote; 39 import sync4j.server.engine.dm.ManagementEngine; 40 41 47 public class ManagementBean implements javax.ejb.SessionBean { 48 49 51 private static final String ENV_ADMIN_NAME 52 = "java:comp/env/ejb/AdminBean"; 53 54 private transient Logger log = null; 56 private SessionContext sessionContext = null; 57 58 59 61 public void ejbCreate() { 62 log = Sync4jLogger.getLogger(Sync4jLoggerName.SERVER_DM_NOTIFICATION); 63 } 64 65 public void ejbRemove() { 66 } 67 68 public void ejbActivate() { 69 log = Sync4jLogger.getLogger(Sync4jLoggerName.SERVER_DM_NOTIFICATION); 70 } 71 72 public void ejbPassivate() { 73 log = null; 74 } 75 76 public void setSessionContext(SessionContext sessionContext) throws EJBException { 77 this.sessionContext = sessionContext; 78 } 79 80 92 public void bootstrap(int messageType, int transportType, String deviceUri, String phoneNumber, String  93 username, String password, String info) 94 throws ManagementException, NotificationException { 95 96 Configuration conf = loadConfiguration(); 97 98 ManagementEngine mngtEngine = new ManagementEngine(conf); 99 100 101 mngtEngine.bootstrap(messageType, transportType, deviceUri, phoneNumber, username, password, info, false); 102 } 103 104 115 public void sendNotification( int messageType , 116 int transportType, 117 String phoneNumber , 118 String operation , 119 String info ) 120 throws ManagementException, NotificationException { 121 122 Configuration conf = loadConfiguration(); 123 124 ManagementEngine mngtEngine = new ManagementEngine(conf); 125 126 mngtEngine.sendNotification( 127 messageType, 128 transportType, 129 phoneNumber, 130 operation, 131 info 132 ); 133 } 134 135 145 public void executeManagementOperation( String phoneNumber , 146 String operation , 147 String info ) 148 throws ManagementException, NotificationException { 149 150 sendNotification( 151 NotificationConstants.MESSAGE_TYPE_NOTIFICATION_GENERIC, 152 NotificationConstants.TRANSPORT_TYPE_WAP, 153 phoneNumber, 154 operation, 155 info 156 ); 157 } 158 159 160 161 163 168 private Configuration loadConfiguration() 169 throws ManagementException { 170 171 Configuration c = null; 172 try { 173 174 InitialContext ctx = new InitialContext (); 175 176 Object obj = ctx.lookup(ENV_ADMIN_NAME); 177 AdminHomeRemote h = (AdminHomeRemote)PortableRemoteObject.narrow(obj, 178 AdminHomeRemote.class); 179 180 AdminRemote m = h.create(); 181 182 c = m.getConfig(); 183 184 m.remove(); 185 186 } catch (Exception e) { 187 log.throwing("ManagementBean", "loadConfiguration", e); 188 throw new ManagementException("Error reading the configuration", e); 189 } 190 return c; 191 } 192 193 194 195 } 196 | Popular Tags |