1 package org.ultramonkey.l7.model;
3 import java.io.BufferedReader;
4 import java.io.BufferedWriter;
5 import java.io.InputStream;
6 import java.io.InputStreamReader;
7 import java.io.OutputStream;
8 import java.io.OutputStreamWriter;
10 import org.apache.log4j.Logger;
17 * Copyright(c) NTT COMWARE 2008
22 public class L7SyncSocket {
23 protected Logger debugLogger = Logger
24 .getLogger(LogCategorySet.SYNC_CONNECTION);
26 protected OutputStream outputStream;
28 protected InputStream inputStream;
30 protected BufferedReader bufferedReader;
32 protected BufferedWriter bufferedWriter;
34 protected final String SEPARATOR = "\r\n";
36 protected final int ENTRY_NUMBER = 3;
42 public L7SyncSocket() {
43 // debug log(constructor)
44 if (debugLogger.isDebugEnabled()) {
45 debugLogger.debug("11221 class L7SyncSocket created.");
51 * Sets inputStream and outputastream which got at L7SyncManager.
58 public void openConnection(InputStream inputStream,
59 OutputStream outputStream) throws MessageView {
61 // debug log(in method)
62 if (debugLogger.isDebugEnabled()) {
63 StringBuffer buf = new StringBuffer();
64 buf.append("L7SyncSocket::openConnection(InputStream inputStream, OutputStream outputStream) throws MessageView in ");
66 if (null != inputStream) {
67 buf.append("inputStream= " + inputStream.toString() + ", ");
69 buf.append("inputStream= " + "null, ");
71 if (null != outputStream) {
72 buf.append("outputStream= " + outputStream.toString());
74 buf.append("outputStream= " + "null");
76 debugLogger.debug("11222 " + buf.toString());
79 if ((null == inputStream) || (null == outputStream)) {
80 throw new MessageView(40009, LogCategorySet.SYNC_CONNECTION,
81 Message.SYNC_INVALID_ARGUMENT + " OpenConnection : null");
84 this.inputStream = inputStream;
85 this.outputStream = outputStream;
87 bufferedWriter = new BufferedWriter(new OutputStreamWriter(
90 bufferedReader = new BufferedReader(new InputStreamReader(
93 // debug log(out method)
94 if (debugLogger.isDebugEnabled()) {
95 StringBuffer buf = new StringBuffer();
96 buf.append("L7SyncSocket::openConnection(InputStream inputStream, OutputStream outputStream) throws MessageView out ");
97 debugLogger.debug("11223 " + buf.toString());
109 * @throws MessageView
111 public void sendData(String[] payloadStr) throws MessageView {
112 // debug log(in method)
113 if (debugLogger.isDebugEnabled()) {
114 StringBuffer buf = new StringBuffer();
115 buf.append("L7SyncSocket::sendData(String[] payloadStr) throws MessageView in ");
116 buf.append("payloadStr= ");
117 if (null == payloadStr) {
120 for (int i = 0; i < payloadStr.length; i++) {
121 if (payloadStr.length - 1 == i) {
122 buf.append(payloadStr[i].toString());
125 buf.append(payloadStr[i].toString() + ",");
128 debugLogger.debug("11224 " + buf.toString());
131 if (null == payloadStr) {
132 throw new MessageView(40010, LogCategorySet.SYNC_CONNECTION,
133 Message.SYNC_INVALID_ARGUMENT + " SendData : " + payloadStr);
136 for (int i = 0; i < payloadStr.length; i++) {
137 bufferedWriter.write(payloadStr[i]);
138 bufferedWriter.write(SEPARATOR);
140 bufferedWriter.write(SEPARATOR);
141 bufferedWriter.flush();
142 } catch (Exception e) {
143 throw new MessageView(50001, LogCategorySet.SYNC_CONNECTION,
144 Message.SYNC_SEND_ERROR + " : " + e);
146 // debug log(out method)
147 if (debugLogger.isDebugEnabled()) {
148 StringBuffer buf = new StringBuffer();
149 buf.append("L7SyncSocket::sendData(String[] payloadStr) throws MessageView out ");
150 debugLogger.debug("11225 " + buf.toString());
159 * @return buffer send data
160 * @throws MessageView
162 public String[] recvData() throws MessageView {
163 // debug log(in method)
164 if (debugLogger.isDebugEnabled()) {
165 StringBuffer buf = new StringBuffer();
166 buf.append("L7SyncSocket::recvData() throws MessageView in ");
167 debugLogger.debug("11226 " + buf.toString());
171 String[] readDataArray = null;
174 readDataArray = new String[ENTRY_NUMBER];
177 readStr = bufferedReader.readLine();
178 if (null == readStr) {
182 if ((0 == readStr.length())) {
185 if (i >= ENTRY_NUMBER) {
186 throw new MessageView(40011,
187 LogCategorySet.SYNC_CONNECTION,
188 Message.SYNC_INVALID_RECV_DATA);
190 readDataArray[i] = readStr;
193 } catch (Exception e) {
194 throw new MessageView(50002, LogCategorySet.SYNC_CONNECTION,
195 Message.SYNC_RECV_ERROR + " : " + e);
198 // debug log(out method)
199 if (debugLogger.isDebugEnabled()) {
200 StringBuffer buf = new StringBuffer();
201 buf.append("L7SyncSocket::recvData() throws MessageView out ");
202 buf.append("return= ");
203 if (0 == readDataArray.length) {
206 for (int i = 0; i < readDataArray.length; i++) {
207 if (readDataArray.length - 1 == i) {
208 buf.append(readDataArray[i].toString());
211 buf.append(readDataArray[i].toString() + ",");
214 debugLogger.debug("11227 " + buf.toString());
216 return readDataArray;
221 * Active server closes connection after recieving all results from stand-by
225 * @throws MessageView
227 public void closeConnection() throws MessageView {
228 // debug log(in method)
229 if (debugLogger.isDebugEnabled()) {
230 StringBuffer buf = new StringBuffer();
231 buf.append("L7SyncSocket::closeConnection() throws MessageView in ");
232 debugLogger.debug("11228 " + buf.toString());
235 outputStream.close();
236 } catch (Exception e) {
237 throw new MessageView(50003, LogCategorySet.SYNC_CONNECTION,
238 Message.SYNC_CLOSE_ERROR + " :" + e);
240 // debug log(out method)
241 if (debugLogger.isDebugEnabled()) {
242 StringBuffer buf = new StringBuffer();
243 buf.append("L7SyncSocket::closeConnection() throws MessageView out ");
244 debugLogger.debug("11229 " + buf.toString());