1 package org.kuali.ole.sip2.service.impl;
2
3 import org.apache.commons.lang3.StringUtils;
4 import org.apache.log4j.Logger;
5 import org.kuali.ole.sip2.constants.OLESIP2Constants;
6 import org.kuali.ole.sip2.service.NettyServer;
7 import org.kuali.ole.sip2.service.SIP2HelperService;
8 import org.kuali.rice.core.api.config.property.ConfigContext;
9 import org.kuali.rice.krad.service.BusinessObjectService;
10 import org.kuali.rice.krad.service.KRADServiceLocator;
11
12
13
14
15 public class SIP2HelperServiceImpl implements SIP2HelperService {
16
17 Logger LOG = Logger.getLogger(SIP2HelperServiceImpl.class);
18
19 private BusinessObjectService businessObjectService;
20
21 private BusinessObjectService getBusinessObjectService() {
22 if (null == businessObjectService) {
23 businessObjectService = KRADServiceLocator.getBusinessObjectService();
24 }
25 return businessObjectService;
26 }
27
28 public void setBusinessObjectService(BusinessObjectService businessObjectService) {
29 this.businessObjectService = businessObjectService;
30 }
31
32 @Override
33 public NettyServer startOLESip2Server(StringBuffer responseString, NettyServer olesip2Server) {
34 LOG.info("******** Request for starting OLE Socket server ********");
35 String portNo = ConfigContext.getCurrentContextConfig().getProperty("sip2.port");
36 String serverUrl = ConfigContext.getCurrentContextConfig().getProperty("sip2.url");
37
38 if (StringUtils.isNotBlank(portNo) && StringUtils.isNotBlank(serverUrl)) {
39
40 olesip2Server = new NettyServer(Integer.parseInt(portNo), serverUrl);
41
42 try {
43 Thread thread = new Thread(olesip2Server);
44 thread.start();
45 try {
46 Thread.sleep(5 * 1000);
47 if (olesip2Server.getMessage() != null) {
48 responseString.append(olesip2Server.getMessage());
49 } else {
50 responseString.append(OLESIP2Constants.STARTED_SUCCESSFULLY);
51 LOG.info("******** " + OLESIP2Constants.STARTED_SUCCESSFULLY + " ********");
52 }
53 } catch (Exception e) {
54 e.printStackTrace();
55 responseString.append(OLESIP2Constants.PROBLEM_WITH_SERVER + "\n");
56 responseString.append("Exception: \n" + e);
57 }
58 } catch (Exception e) {
59 e.printStackTrace();
60 responseString.append(OLESIP2Constants.PROBLEM_WITH_SERVER + "\n");
61 responseString.append("Exception: \n" + e);
62 }
63
64
65
66 } else {
67 responseString.append(OLESIP2Constants.FAIL_TO_LOAD + "\n");
68 responseString.append(OLESIP2Constants.PARAMETER_MISSING);
69 LOG.info("******** " + OLESIP2Constants.FAIL_TO_LOAD + " ********");
70 LOG.info("******** " + OLESIP2Constants.PARAMETER_MISSING + " ********");
71 }
72 return olesip2Server;
73
74 }
75
76
77 @Override
78 public void stopOLESip2Server(StringBuffer responseString, NettyServer olesip2Server) {
79 LOG.info("******** Request for stop OLE Socket server ********");
80 if (olesip2Server != null) {
81 olesip2Server.stop();
82 responseString.append(OLESIP2Constants.SERVER_STOPPED);
83 LOG.info("******** " + OLESIP2Constants.SERVER_STOPPED + " ********");
84 }
85
86 }
87
88 @Override
89 public void startOLESip2Server() {
90 boolean onLoadStartup = ConfigContext.getCurrentContextConfig().getBooleanProperty("sip2.startOnLoad");
91 if (onLoadStartup) {
92 StringBuffer responseString = new StringBuffer();
93 OLESIP2Constants.sip2Server = startOLESip2Server(responseString, OLESIP2Constants.sip2Server);
94 LOG.info(responseString.toString());
95 }
96
97 }
98
99 @Override
100 public void stopOLESip2Server() {
101 StringBuffer responseString = new StringBuffer();
102 stopOLESip2Server(responseString, OLESIP2Constants.sip2Server);
103 LOG.info(responseString.toString());
104
105 }
106
107 }