📄 deployservers.java
字号:
nodes = heartbeatServersElement.getElementsByTagName("serverGroup"); heartbeatGroupElement = (Element) nodes.item(0); if (heartbeatGroupElement == null) { throw new NoSuchNodeException("heartbeatGroupElement"); } } catch (Exception e) { e.printStackTrace(); return; } } /** * */ public static VPPTransactionWrapper getConnection() { return connection; } /** */ private void processDeployFile() { System.out.println("parsing deployment file"); SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser parser = null; try { parser = spf.newSAXParser(); } catch (ParserConfigurationException parsEx) { parsEx.printStackTrace(); } catch(SAXException saxEx) { saxEx.printStackTrace(); } try { File xmlFile = new File(DEPLOYED_SERVERS_FILE); parser.parse(xmlFile, this); } catch (Exception e) { e.printStackTrace(); } } /** * */ private void handleGlobal(Attributes attrs) throws InvalidRequestException { String multicastHost = attrs.getValue("multicastHost"); String multicastPort = attrs.getValue("multicastPort"); Element multicastHostElement = null; try { multicastHostElement = XMLUtils.getChildByName(globalConfigElement, "multicastHost"); } catch (Exception e) { e.printStackTrace(); return; } if (multicastHost == null) { System.out.println("global lacking multicastHost attribute"); return; } else { multicastHostElement.setAttribute("host", multicastHost); } if (multicastPort == null) { System.out.println("global lacking multicastPort attribute"); return; } else { multicastHostElement.setAttribute("port", multicastPort); } } /** * @throws InvalidRequestException */ private void handleFeatureServer(Attributes attrs) throws InvalidRequestException { String featureType = attrs.getValue("type"); if (featureType == null) { System.out.println("feature lacking type attribute"); return; } Element groupElement = null; if (featureType.equals("ForwardNoAnswerBusy")) { groupElement = forwardNoAnswerBusyGroupElement; } else if (featureType.equals("ForwardAllCalls")) { groupElement = forwardAllCallsGroupElement; } else if (featureType.equals("CallBlocking")) { groupElement = callBlockingGroupElement; } else if (featureType.equals("CallScreening")) { groupElement = callScreeningGroupElement; } else if (featureType.equals("Voicemail")) { groupElement = voicemailGroupElement; FeatureData dataManager = new DataFragment(FEATURE_SERVER, groupElement); dataManager.setHostData(attrs.getValue("host")); dataManager.setPortData(attrs.getValue("port")); dataManager.setUaVMHostData(attrs.getValue("uaVMHost")); dataManager.setUaVMFirstPortData(attrs.getValue("uaVMFirstPort")); dataManager.setUaVMLastPortData(attrs.getValue("uaVMLastPort")); dataManager.saveData(); groupElement.appendChild(dataManager.getFragment()); return; } else if (featureType.equals("CallReturn")) { groupElement = callReturnGroupElement; } else if (featureType.equals("CallerIdBlocking")) { groupElement = callerIdBlockingGroupElement; } else { System.out.println("Unrecognized type: " + featureType); return; } if (groupElement == null) { System.out.println("Error: group element is null"); return; } FeatureData dataManager = new DataFragment(FEATURE_SERVER, groupElement); dataManager.setHostData(attrs.getValue("host")); dataManager.setPortData(attrs.getValue("port")); dataManager.saveData(); groupElement.appendChild(dataManager.getFragment()); } /** * * @param attrs * * @throws InvalidRequestException */ private void handleMarshalServer(Attributes attrs) throws InvalidRequestException { Element groupElement = null; MarshalData dataManager = null; String marshalType = attrs.getValue("type"); if (marshalType == null) { System.out.println("marshalType is null"); return; } if (marshalType.equals("UserAgent")) { groupElement = userAgentGroupElement; dataManager = new DataFragment(MARSHAL_SERVER, groupElement); dataManager.setHostData(attrs.getValue("host")); dataManager.setPortData(attrs.getValue("port")); } else if (marshalType.equals("Gateway")) { groupElement = gatewayGroupElement; dataManager = new DataFragment(MARSHAL_SERVER, groupElement); dataManager.setHostData(attrs.getValue("host")); dataManager.setPortData(attrs.getValue("port")); dataManager.setGatewayHostData(attrs.getValue("gatewayHost")); dataManager.setGatewayPortData(attrs.getValue("gatewayPort")); } else if (marshalType.equals("Internetwork")) { groupElement = internetworkGroupElement; dataManager = new DataFragment(MARSHAL_SERVER, groupElement); dataManager.setHostData(attrs.getValue("host")); dataManager.setPortData(attrs.getValue("port")); dataManager.setGatewayHostData(attrs.getValue("gatewayHost")); dataManager.setGatewayPortData(attrs.getValue("gatewayPort")); } else if (marshalType.equals("ConferenceBridge")) { groupElement = conferenceBridgeGroupElement; dataManager = new DataFragment(MARSHAL_SERVER, groupElement); dataManager.setHostData(attrs.getValue("host")); dataManager.setPortData(attrs.getValue("port")); dataManager.setGatewayHostData(attrs.getValue("gatewayHost")); dataManager.setGatewayPortData(attrs.getValue("gatewayPort")); dataManager.setConferenceBridgeNumberData(attrs.getValue("conferenceBridgeNumber")); dataManager.setConferenceBridgeNumberData(attrs.getValue("conferenceBridgeNumber")); } else { System.out.println("Unrecognized type: " + marshalType); return; } dataManager.saveData(); groupElement.appendChild(dataManager.getFragment()); } /** * * @param attrs * * @throws InvalidRequestException */ private void handleRedirectServer(Attributes attrs) throws InvalidRequestException { RedirectData dataManager = new DataFragment(REDIRECT_SERVER, redirectGroupElement); dataManager.setHostData(attrs.getValue("host")); dataManager.setPortData(attrs.getValue("port")); dataManager.setSyncPortData(attrs.getValue("syncPort")); dataManager.saveData(); redirectGroupElement.appendChild(dataManager.getFragment()); } /** * * @param attrs * * @throws InvalidRequestException */ private void handleCdrServer(Attributes attrs) throws InvalidRequestException { CdrData dataManager = new DataFragment(CDR_SERVER, cdrGroupElement); dataManager.setHostData(attrs.getValue("host")); dataManager.setPortData(attrs.getValue("port")); dataManager.setRadiusHostData(attrs.getValue("radiusServerHost")); dataManager.setRadiusSecretKeyData(attrs.getValue("radiusSecretKey")); dataManager.setBillingDirPathData(attrs.getValue("billingDirPath")); String billForRingtime = attrs.getValue("billForRingtime"); if (billForRingtime.equals("true")) { dataManager.setBillForRingtimeData(true); } else { dataManager.setBillForRingtimeData(false); } dataManager.saveData(); cdrGroupElement.appendChild(dataManager.getFragment()); } /** * * @param attrs * * @throws InvalidRequestException */ private void handlePdpServer(Attributes attrs) throws InvalidRequestException { PDPData dataManager = new DataFragment(PDP_SERVER, pdpGroupElement); dataManager.setHostData(attrs.getValue("host")); dataManager.saveData(); pdpGroupElement.appendChild(dataManager.getFragment()); } /** * * @param attrs * * @throws InvalidRequestException */ private void handleHeartbeatServer(Attributes attrs) throws InvalidRequestException { HeartbeatData dataManager = new DataFragment(HEARTBEAT_SERVER, heartbeatGroupElement); dataManager.setHostData(attrs.getValue("host")); dataManager.saveData(); heartbeatGroupElement.appendChild(dataManager.getFragment()); } /** * * @param namespaceURI * @param localName * @param rawName * @param attrs */ public void startElement(String namespaceURI, String localName, String rawName, Attributes attrs) { System.out.println("Starting element " + rawName); if (rawName.equals("deployedServers")) { return; } try { if (rawName.equals("global")) { handleGlobal(attrs); return; } else if (rawName.equals("featureServer")) { handleFeatureServer(attrs); return; } else if (rawName.equals("marshalServer")) { handleMarshalServer(attrs); return; } else if (rawName.equals("cdrServer")) { handleCdrServer(attrs); return; } else if (rawName.equals("redirectServer")) { handleRedirectServer(attrs); return; } else if (rawName.equals("heartbeatServer")) { handleHeartbeatServer(attrs); return; } else if (rawName.equals("policyServer")) { handlePdpServer(attrs); return; } else { System.out.println("Unrecognized server type: " + rawName); } } catch (InvalidRequestException e) { e.printStackTrace(); } } /** */ public void endDocument() { DOMToFile.writeAllFilesInTree(baseDocument); } /** * * @param args */ public static void main(String args[]) { System.out.println("Starting DeployServers"); if (args.length < 2) { System.out.println("Usage: DeployServers <host> <port>"); return; } String host = args[0]; int port = 0; try { port = Integer.parseInt(args[1]); } catch (NumberFormatException e) { System.out.println("Error: " + args[1] + " must be numeric"); return; } try { connection = new VPPTransactionWrapper(host, port); } catch (VPPException e) { VPPTransactionWrapper.showVPPException(e, "Deployment failed"); } DeployServers deployServers = new DeployServers(); deployServers.processDeployFile(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -