1 20 package org.apache.mina.integration.jmx; 21 22 import java.util.Date ; 23 import java.util.List ; 24 25 import org.apache.mina.common.IdleStatus; 26 import org.apache.mina.common.IoFilterChain; 27 import org.apache.mina.common.IoSession; 28 import org.apache.mina.filter.LoggingFilter; 29 import org.apache.mina.management.IoSessionStat; 30 import org.apache.mina.management.StatCollector; 31 32 36 public class IoSessionManager implements IoSessionManagerMBean { 37 38 private IoSession session; 39 40 44 public IoSessionManager(IoSession session) { 45 this.session = session; 46 } 47 48 public boolean isConnected() { 49 return session.isConnected(); 50 } 51 52 public long getReadBytes() { 53 return session.getReadBytes(); 54 } 55 56 public long getWrittenBytes() { 57 return session.getWrittenBytes(); 58 } 59 60 public long getReadMessages() { 61 return session.getReadMessages(); 62 } 63 64 public long getWrittenMessages() { 65 return session.getWrittenMessages(); 66 } 67 68 public void close() throws InterruptedException { 69 session.close().join(); 70 } 71 72 public Date getCreationTime() { 73 return new Date (session.getCreationTime()); 74 } 75 76 public Date getLastIoTime() { 77 return new Date (session.getLastIoTime()); 78 } 79 80 public Date getLastReadTime() { 81 return new Date (session.getLastReadTime()); 82 } 83 84 public Date getLastWriteTime() { 85 return new Date (session.getLastWriteTime()); 86 } 87 88 public String [] getInstalledFilters() { 89 List filters = session.getFilterChain().getAll(); 90 String [] res = new String [filters.size()]; 91 for (int i = 0; i < res.length; i++) { 92 res[i] = ((IoFilterChain.Entry) filters.get(i)).getName(); 93 } 94 return res; 95 } 96 97 public void addLastLoggingFilter() { 98 LoggingFilter f = new LoggingFilter(); 99 session.getFilterChain().addLast("LoggerLast", f); 100 } 101 102 public void removeLastLoggingFilter() { 103 104 session.getFilterChain().remove("LoggerLast"); 105 } 106 107 public void addFirstLoggingFilter() { 108 LoggingFilter f = new LoggingFilter(); 109 session.getFilterChain().addFirst("LoggerFirst", f); 110 } 111 112 public void removeFirstLoggingFilter() { 113 114 session.getFilterChain().remove("LoggerFirst"); 115 } 116 117 119 public long getReadIdleTime() { 120 return session.getIdleTimeInMillis(IdleStatus.READER_IDLE); 121 } 122 123 public long getWriteIdleTime() { 124 return session.getIdleTimeInMillis(IdleStatus.WRITER_IDLE); 125 } 126 127 public long getBothIdleTime() { 128 return session.getIdleTimeInMillis(IdleStatus.BOTH_IDLE); 129 } 130 131 public float getByteReadThroughtput() { 132 IoSessionStat stats = (IoSessionStat) session 133 .getAttribute(StatCollector.KEY); 134 if (stats == null) 135 return Float.NaN; 136 else 137 return stats.getByteReadThroughput(); 138 } 139 140 public float getByteWrittenThroughtput() { 141 IoSessionStat stats = (IoSessionStat) session 142 .getAttribute(StatCollector.KEY); 143 if (stats == null) 144 return Float.NaN; 145 else 146 return stats.getByteWrittenThroughput(); 147 } 148 149 public float getMessageReadThroughtput() { 150 IoSessionStat stats = (IoSessionStat) session 151 .getAttribute(StatCollector.KEY); 152 if (stats == null) 153 return Float.NaN; 154 else 155 return stats.getMessageReadThroughput(); 156 } 157 158 public float getMessageWrittenThroughtput() { 159 IoSessionStat stats = (IoSessionStat) session 160 .getAttribute(StatCollector.KEY); 161 if (stats == null) 162 return Float.NaN; 163 else 164 return stats.getMessageWrittenThroughput(); 165 } 166 } 167 | Popular Tags |