📄 connectqossaxfactory.java
字号:
else if (attrs.getQName(ii).equalsIgnoreCase("clearSessions")) sessionQos.clearSessions((new Boolean(attrs.getValue(ii).trim())).booleanValue()); else if (attrs.getQName(ii).equalsIgnoreCase("reconnectSameClientOnly")) sessionQos.setReconnectSameClientOnly((new Boolean(attrs.getValue(ii).trim())).booleanValue()); else if (attrs.getQName(ii).equalsIgnoreCase("sessionId")) sessionQos.setSecretSessionId(attrs.getValue(ii)); else log.warning("Ignoring unknown attribute '" + attrs.getQName(ii) + "' of <session> element"); } } character.setLength(0); return; } if (name.equalsIgnoreCase("ptp")) { this.connectQosData.setPtpAllowed(true); character.setLength(0); return; } if (name.equalsIgnoreCase("clusterNode")) { this.connectQosData.setClusterNode(true); character.setLength(0); return; } if (name.equalsIgnoreCase("refreshSession")) { this.connectQosData.setRefreshSession(true); character.setLength(0); return; } if (name.equalsIgnoreCase("duplicateUpdates")) { this.connectQosData.setDuplicateUpdates(true); character.setLength(0); return; } if (name.equalsIgnoreCase("reconnected")) { this.connectQosData.setReconnected(true); character.setLength(0); return; } if (name.equalsIgnoreCase("persistent")) { if (!inQos) return; //this.inIsPersistent = true; character.setLength(0); connectQosData.setPersistent(true); return; } if (inSecurityService) { //Collect everything in character buffer character.append("<").append(name); if (attrs != null) { int len = attrs.getLength(); for (int i = 0; i < len; i++) { character.append(" ").append(attrs.getQName(i)).append("=\"").append(attrs.getValue(i)).append("\""); } } character.append(">"); if (name.equalsIgnoreCase("securityService")) character.append("<![CDATA["); } } /** * End element, event from SAX parser. * <p /> * @param name Tag name */ public void endElement(String uri, String localName, String name) throws org.xml.sax.SAXException { endElement(uri, localName, name, this.character); } public void endElement(String uri, String localName, String name, StringBuffer character) throws org.xml.sax.SAXException { if (super.endElementBase(uri, localName, name) == true) { // "clientProperty" and "attribute" must match super.clientPropertyTagNames.contains(name)) if (name.equalsIgnoreCase(ClientProperty.CLIENTPROPERTY_TAG)) { this.connectQosData.addClientProperty(this.clientProperty); } if (name.equalsIgnoreCase(ClientProperty.ATTRIBUTE_TAG)) { if (this.inAddress) this.tmpAddr.addClientProperty(this.clientProperty); else if (this.inCallback) this.tmpCbAddr.addClientProperty(this.clientProperty); } return; } //if (log.isLoggable(Level.FINE)) log.trace(ME, "Entering endElement for " + name); if (name.equalsIgnoreCase("serverRef")) { //this.inServerRef = false; String tmp = character.toString().trim(); // The address (if after inner tags) if (tmpServerRef != null) { if (tmp.length() > 0) tmpServerRef.setAddress(tmp); this.connectQosData.addServerRef(tmpServerRef); } character.setLength(0); return; } if (name.equalsIgnoreCase("queue")) { inQueue = false; character.setLength(0); return; } if (inCallback) { if (name.equalsIgnoreCase("callback")) inCallback = false; tmpCbAddr.endElement(uri, localName, name, character); character.setLength(0); return; } if (inAddress) { if (name.equalsIgnoreCase("address")) inAddress = false; tmpAddr.endElement(uri, localName, name, character); character.setLength(0); return; } if (name.equalsIgnoreCase("ptp")) { String tmp = character.toString().trim(); if (tmp.length() > 0) this.connectQosData.setPtpAllowed(new Boolean(tmp).booleanValue()); character.setLength(0); return; } if (name.equalsIgnoreCase("clusterNode")) { String tmp = character.toString().trim(); if (tmp.length() > 0) this.connectQosData.setClusterNode(new Boolean(tmp).booleanValue()); character.setLength(0); return; } if (name.equalsIgnoreCase("refreshSession")) { String tmp = character.toString().trim(); if (tmp.length() > 0) this.connectQosData.setRefreshSession(new Boolean(tmp).booleanValue()); character.setLength(0); return; } if (name.equalsIgnoreCase("duplicateUpdates")) { String tmp = character.toString().trim(); if (tmp.length() > 0) this.connectQosData.setDuplicateUpdates(new Boolean(tmp).booleanValue()); character.setLength(0); return; } if (name.equalsIgnoreCase("reconnected")) { String tmp = character.toString().trim(); if (tmp.length() > 0) this.connectQosData.setReconnected(new Boolean(tmp).booleanValue()); character.setLength(0); return; } if (name.equalsIgnoreCase("instanceId")) { String tmp = character.toString().trim(); this.connectQosData.setInstanceId(tmp); character.setLength(0); return; } if (name.equalsIgnoreCase("securityService")) { inSecurityService = false; character.append("]]>\n"); character.append("</").append(name).append(">"); String tmp = character.toString().trim(); character.setLength(0); // delegate the collected tags to our security plugin try { I_SecurityQos securityQos = this.connectQosData.getClientPlugin(tmpSecurityPluginType, tmpSecurityPluginVersion).createSecurityQos(); /* "<securityService type=\""+tmpSecurityPluginType+"\" version=\""+tmpSecurityPluginVersion+"\">\n"+ <user>user</user> <passwd>passwd</passwd> "</securityService>"; */ securityQos.parse(tmp); this.connectQosData.setSecurityQos(securityQos); return; } catch(XmlBlasterException e) { log.warning("Can't parse security string - " + e.toString() + "\n Check:\n" + tmp); throw new org.xml.sax.SAXException("Can't parse security string - " + e.toString() + "\n Check:\n" + tmp, e); //throw new StopParseException(); } } if(name.equalsIgnoreCase("persistent")) { //this.inIsPersistent = false; String tmp = character.toString().trim(); if (tmp.length() > 0) connectQosData.setPersistent(new Boolean(tmp).booleanValue()); // if (log.isLoggable(Level.FINE)) log.trace(ME, "Found persistent = " + msgQosData.isPersistent()); character.setLength(0); return; } if (name.equalsIgnoreCase("session")) { //this.inSession = false; } if (inSecurityService) { character.append("</"+name+">"); } } /** * Dump state of this object into a XML ASCII string. * <br> * @param extraOffset indenting of tags for nice output * @return internal state of the ConnectQos as a XML ASCII string *//* public String writeObject(ConnectQosData connectQosData, String extraOffset) { return toXml("qos", connectQosData, extraOffset, (Properties)null); }*/ public String writeObject(ConnectQosData connectQosData, String extraOffset, Properties props) { return toXml("qos", connectQosData, extraOffset, props); } /** * @param flag For example Constants.TOXML_FLAG_NOSECURITY */ public static final String toXml(String rootTag, ConnectQosData data, String extraOffset, Properties props) { StringBuffer sb = new StringBuffer(2000); if (extraOffset == null) extraOffset = ""; String offset = Constants.OFFSET + extraOffset; sb.append(offset).append("<").append(rootTag).append(">"); if (data.getSecurityQos() != null) { // <securityService ... final boolean noSecurity = ((props!=null) && props.containsKey(Constants.TOXML_NOSECURITY)) ? (Boolean.valueOf((String)props.get(Constants.TOXML_NOSECURITY)).booleanValue()) : false; if (!noSecurity) { sb.append(data.getSecurityQos().toXml(extraOffset+Constants.INDENT)); // includes the qos of the ClientSecurityHelper } } if (data.isPtpAllowedProp().isModified()) { if (data.isPtpAllowed()) sb.append(offset).append(" <ptp/>"); else sb.append(offset).append(" <ptp>false</ptp>"); } if (data.getClusterNodeProp().isModified()) { if (data.isClusterNode()) sb.append(offset).append(" <clusterNode/>"); else sb.append(offset).append(" <clusterNode>false</clusterNode>"); } if (data.getRefreshSessionProp().isModified()) { if (data.getRefreshSession()) sb.append(offset).append(" <refreshSession/>"); else sb.append(offset).append(" <refreshSession>false</refreshSession>"); } if (data.duplicateUpdatesProp().isModified()) { if (data.duplicateUpdates()) sb.append(offset).append(" <duplicateUpdates/>"); else sb.append(offset).append(" <duplicateUpdates>false</duplicateUpdates>"); } if (data.getReconnectedProp().isModified()) { if (data.isReconnected()) sb.append(offset).append(" <reconnected/>"); else sb.append(offset).append(" <reconnected>false</reconnected>"); } sb.append(offset).append(" <instanceId>").append(data.getInstanceId()).append("</instanceId>"); if (data.getPersistentProp().isModified()) { if (data.isPersistent()) sb.append(offset).append(" <persistent/>"); else sb.append(offset).append(" <persistent>false</persistent>"); } sb.append(data.getSessionQos().toXml(extraOffset+Constants.INDENT)); { ClientQueueProperty[] arr = data.getClientQueuePropertyArr(); for (int ii=0; arr!=null && ii<arr.length; ii++) { sb.append(arr[ii].toXml(extraOffset+Constants.INDENT)); } } /* NOTE: We can't optimize it away, as we need to check the Global env and args: */ //if (data.hasSubjectQueueProperty()) { sb.append(data.getSubjectQueueProperty().toXml(extraOffset+Constants.INDENT)); //} //if (data.hasSessionCbQueueProperty()) { sb.append(data.getSessionCbQueueProperty().toXml(extraOffset+Constants.INDENT)); //} { ServerRef[] arr = data.getServerRefs(); for (int ii=0; arr!=null && ii<arr.length; ii++) { sb.append(arr[ii].toXml(extraOffset+Constants.INDENT)); } } sb.append(data.writePropertiesXml(extraOffset+Constants.INDENT)); sb.append(offset).append("</").append(rootTag).append(">"); return sb.toString(); } /** * A human readable name of this factory * @return "ConnectQosSaxFactory" */ public String getName() { return "ConnectQosSaxFactory"; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -