mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-11-22 22:32:06 +01:00
"Smackify" HOXT code: Use Smack programming idioms
This commit is contained in:
parent
4d57848a0f
commit
9ea5c0a2ce
9 changed files with 102 additions and 104 deletions
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Copyright 2014 Florian Schmaus
|
* Copyright 2014-2015 Florian Schmaus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -328,6 +328,13 @@ public class XmlStringBuilder implements Appendable, CharSequence {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public XmlStringBuilder optBooleanAttributeDefaultTrue(String name, boolean bool) {
|
||||||
|
if (!bool) {
|
||||||
|
sb.append(' ').append(name).append("='false'");
|
||||||
|
}
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public XmlStringBuilder xmlnsAttribute(String value) {
|
public XmlStringBuilder xmlnsAttribute(String value) {
|
||||||
optAttribute("xmlns", value);
|
optAttribute("xmlns", value);
|
||||||
return this;
|
return this;
|
||||||
|
|
|
@ -18,6 +18,7 @@ package org.jivesoftware.smackx.hoxt.packet;
|
||||||
|
|
||||||
import org.jivesoftware.smack.packet.IQ;
|
import org.jivesoftware.smack.packet.IQ;
|
||||||
import org.jivesoftware.smack.packet.NamedElement;
|
import org.jivesoftware.smack.packet.NamedElement;
|
||||||
|
import org.jivesoftware.smack.util.Objects;
|
||||||
import org.jivesoftware.smack.util.XmlStringBuilder;
|
import org.jivesoftware.smack.util.XmlStringBuilder;
|
||||||
import org.jivesoftware.smackx.shim.packet.HeadersExtension;
|
import org.jivesoftware.smackx.shim.packet.HeadersExtension;
|
||||||
|
|
||||||
|
@ -31,25 +32,22 @@ public abstract class AbstractHttpOverXmpp extends IQ {
|
||||||
|
|
||||||
public static final String NAMESPACE = "urn:xmpp:http";
|
public static final String NAMESPACE = "urn:xmpp:http";
|
||||||
|
|
||||||
private HeadersExtension headers;
|
private final HeadersExtension headers;
|
||||||
private Data data;
|
private final Data data;
|
||||||
|
|
||||||
protected String version;
|
private final String version;
|
||||||
|
|
||||||
protected AbstractHttpOverXmpp(String element, Builder<?, ?> builder) {
|
protected AbstractHttpOverXmpp(String element, Builder<?, ?> builder) {
|
||||||
super(element, NAMESPACE);
|
super(element, NAMESPACE);
|
||||||
this.headers = builder.headers;
|
this.headers = builder.headers;
|
||||||
this.data = builder.data;
|
this.data = builder.data;
|
||||||
this.version = builder.version;
|
this.version = Objects.requireNonNull(builder.version, "version must not be null");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) {
|
protected IQChildElementXmlStringBuilder getIQChildElementBuilder(IQChildElementXmlStringBuilder xml) {
|
||||||
IQChildElementXmlStringBuilder builder = getIQHoxtChildElementBuilder(xml);
|
IQChildElementXmlStringBuilder builder = getIQHoxtChildElementBuilder(xml);
|
||||||
builder.optAppend(headers);
|
builder.optAppend(headers);
|
||||||
/* data cannot be fed to optAppend */
|
builder.optAppend(data);
|
||||||
if (data != null) {
|
|
||||||
builder.optAppend(data.toXML());
|
|
||||||
}
|
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -149,7 +147,9 @@ public abstract class AbstractHttpOverXmpp extends IQ {
|
||||||
* <p>
|
* <p>
|
||||||
* This class is immutable.
|
* This class is immutable.
|
||||||
*/
|
*/
|
||||||
public static class Data {
|
public static class Data implements NamedElement {
|
||||||
|
|
||||||
|
public static final String ELEMENT = "data";
|
||||||
|
|
||||||
private final NamedElement child;
|
private final NamedElement child;
|
||||||
|
|
||||||
|
@ -167,12 +167,13 @@ public abstract class AbstractHttpOverXmpp extends IQ {
|
||||||
*
|
*
|
||||||
* @return xml representation of this object
|
* @return xml representation of this object
|
||||||
*/
|
*/
|
||||||
public String toXML() {
|
@Override
|
||||||
StringBuilder builder = new StringBuilder();
|
public XmlStringBuilder toXML() {
|
||||||
builder.append("<data>");
|
XmlStringBuilder xml = new XmlStringBuilder(this);
|
||||||
builder.append(child.toXML());
|
xml.rightAngleBracket();
|
||||||
builder.append("</data>");
|
xml.element(child);
|
||||||
return builder.toString();
|
xml.closeElement(this);
|
||||||
|
return xml;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -183,6 +184,11 @@ public abstract class AbstractHttpOverXmpp extends IQ {
|
||||||
public NamedElement getChild() {
|
public NamedElement getChild() {
|
||||||
return child;
|
return child;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getElementName() {
|
||||||
|
return ELEMENT;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Copyright 2014 Andriy Tsykholyas
|
* Copyright 2014 Andriy Tsykholyas, 2015 Florian Schmaus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -17,6 +17,8 @@
|
||||||
package org.jivesoftware.smackx.hoxt.packet;
|
package org.jivesoftware.smackx.hoxt.packet;
|
||||||
|
|
||||||
import org.jivesoftware.smack.packet.ExtensionElement;
|
import org.jivesoftware.smack.packet.ExtensionElement;
|
||||||
|
import org.jivesoftware.smack.util.Objects;
|
||||||
|
import org.jivesoftware.smack.util.XmlStringBuilder;
|
||||||
import org.jivesoftware.smackx.hoxt.HOXTManager;
|
import org.jivesoftware.smackx.hoxt.HOXTManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -47,8 +49,11 @@ public class Base64BinaryChunk implements ExtensionElement {
|
||||||
* @param last value of last attribute
|
* @param last value of last attribute
|
||||||
*/
|
*/
|
||||||
public Base64BinaryChunk(String text, String streamId, int nr, boolean last) {
|
public Base64BinaryChunk(String text, String streamId, int nr, boolean last) {
|
||||||
this.text = text;
|
this.text = Objects.requireNonNull(text, "text must not be null");
|
||||||
this.streamId = streamId;
|
this.streamId = Objects.requireNonNull(streamId, "streamId must not be null");
|
||||||
|
if (nr < 0) {
|
||||||
|
throw new IllegalArgumentException("nr must be a non negative integer");
|
||||||
|
}
|
||||||
this.nr = nr;
|
this.nr = nr;
|
||||||
this.last = last;
|
this.last = last;
|
||||||
}
|
}
|
||||||
|
@ -111,17 +116,14 @@ public class Base64BinaryChunk implements ExtensionElement {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toXML() {
|
public XmlStringBuilder toXML() {
|
||||||
StringBuilder builder = new StringBuilder();
|
XmlStringBuilder xml = new XmlStringBuilder(this);
|
||||||
builder.append("<chunk xmlns='urn:xmpp:http' streamId='");
|
xml.attribute("streamId", streamId);
|
||||||
builder.append(streamId);
|
xml.attribute("nr", nr);
|
||||||
builder.append("' nr='");
|
xml.optBooleanAttribute("last", last);
|
||||||
builder.append(nr);
|
xml.rightAngleBracket();
|
||||||
builder.append("' last='");
|
xml.append(text);
|
||||||
builder.append(Boolean.toString(last));
|
xml.closeElement(this);
|
||||||
builder.append("'>");
|
return xml;
|
||||||
builder.append(text);
|
|
||||||
builder.append("</chunk>");
|
|
||||||
return builder.toString();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Copyright 2014 Andriy Tsykholyas
|
* Copyright 2014 Andriy Tsykholyas, 2015 Florian Schmaus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -16,8 +16,6 @@
|
||||||
*/
|
*/
|
||||||
package org.jivesoftware.smackx.hoxt.packet;
|
package org.jivesoftware.smackx.hoxt.packet;
|
||||||
|
|
||||||
import org.jivesoftware.smack.util.StringUtils;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents Req IQ packet.
|
* Represents Req IQ packet.
|
||||||
*
|
*
|
||||||
|
@ -39,36 +37,26 @@ public final class HttpOverXmppReq extends AbstractHttpOverXmpp {
|
||||||
setType(Type.set);
|
setType(Type.set);
|
||||||
}
|
}
|
||||||
|
|
||||||
private HttpMethod method;
|
private final HttpMethod method;
|
||||||
private String resource;
|
private final String resource;
|
||||||
|
|
||||||
// TODO: validate: xs:minInclusive value='256' xs:maxInclusive value='65536'
|
private final int maxChunkSize;
|
||||||
private int maxChunkSize; // 0 means not set
|
|
||||||
|
|
||||||
private boolean sipub;
|
private final boolean sipub;
|
||||||
|
|
||||||
private boolean ibb;
|
private final boolean ibb;
|
||||||
private boolean jingle;
|
private final boolean jingle;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected IQChildElementXmlStringBuilder getIQHoxtChildElementBuilder(IQChildElementXmlStringBuilder builder) {
|
protected IQChildElementXmlStringBuilder getIQHoxtChildElementBuilder(IQChildElementXmlStringBuilder builder) {
|
||||||
builder.append(" ");
|
builder.attribute("method", method);
|
||||||
builder.append("method='").append(method.toString()).append("'");
|
builder.attribute("resource", resource);
|
||||||
builder.append(" ");
|
builder.attribute("version", getVersion());
|
||||||
builder.append("resource='").append(StringUtils.escapeForXML(resource)).append("'");
|
builder.optIntAttribute("maxChunkSize", maxChunkSize);
|
||||||
builder.append(" ");
|
builder.optBooleanAttributeDefaultTrue("sipub", sipub);
|
||||||
builder.append("version='").append(StringUtils.escapeForXML(version)).append("'");
|
builder.optBooleanAttributeDefaultTrue("ibb", ibb);
|
||||||
if (maxChunkSize != 0) {
|
builder.optBooleanAttributeDefaultTrue("jingle", jingle);
|
||||||
builder.append(" ");
|
builder.rightAngleBracket();
|
||||||
builder.append("maxChunkSize='").append(Integer.toString(maxChunkSize)).append("'");
|
|
||||||
}
|
|
||||||
builder.append(" ");
|
|
||||||
builder.append("sipub='").append(Boolean.toString(sipub)).append("'");
|
|
||||||
builder.append(" ");
|
|
||||||
builder.append("ibb='").append(Boolean.toString(ibb)).append("'");
|
|
||||||
builder.append(" ");
|
|
||||||
builder.append("jingle='").append(Boolean.toString(jingle)).append("'");
|
|
||||||
builder.append(">");
|
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -139,9 +127,7 @@ public final class HttpOverXmppReq extends AbstractHttpOverXmpp {
|
||||||
private HttpMethod method;
|
private HttpMethod method;
|
||||||
private String resource;
|
private String resource;
|
||||||
|
|
||||||
// TODO: validate: xs:minInclusive value='256' xs:maxInclusive
|
private int maxChunkSize = -1;
|
||||||
// value='65536'
|
|
||||||
private int maxChunkSize = 0; // 0 means not set
|
|
||||||
|
|
||||||
private boolean sipub = true;
|
private boolean sipub = true;
|
||||||
|
|
||||||
|
@ -149,7 +135,6 @@ public final class HttpOverXmppReq extends AbstractHttpOverXmpp {
|
||||||
private boolean jingle = true;
|
private boolean jingle = true;
|
||||||
|
|
||||||
private Builder() {
|
private Builder() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -220,6 +205,9 @@ public final class HttpOverXmppReq extends AbstractHttpOverXmpp {
|
||||||
* @return the builder
|
* @return the builder
|
||||||
*/
|
*/
|
||||||
public Builder setMaxChunkSize(int maxChunkSize) {
|
public Builder setMaxChunkSize(int maxChunkSize) {
|
||||||
|
if (maxChunkSize < 256 || maxChunkSize > 65536) {
|
||||||
|
throw new IllegalArgumentException("maxChunkSize must be within [256, 65536]");
|
||||||
|
}
|
||||||
this.maxChunkSize = maxChunkSize;
|
this.maxChunkSize = maxChunkSize;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
*/
|
*/
|
||||||
package org.jivesoftware.smackx.hoxt.packet;
|
package org.jivesoftware.smackx.hoxt.packet;
|
||||||
|
|
||||||
import org.jivesoftware.smack.util.StringUtils;
|
import org.jivesoftware.smack.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents Resp IQ packet.
|
* Represents Resp IQ packet.
|
||||||
|
@ -30,24 +30,19 @@ public final class HttpOverXmppResp extends AbstractHttpOverXmpp {
|
||||||
|
|
||||||
private HttpOverXmppResp(Builder builder) {
|
private HttpOverXmppResp(Builder builder) {
|
||||||
super(ELEMENT, builder);
|
super(ELEMENT, builder);
|
||||||
this.statusCode = builder.statusCode;
|
this.statusCode = Objects.requireNonNull(builder.statusCode, "statusCode must not be null");
|
||||||
this.statusMessage = builder.statusMessage;
|
this.statusMessage = builder.statusMessage;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int statusCode;
|
private final int statusCode;
|
||||||
private String statusMessage;
|
private final String statusMessage;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected IQChildElementXmlStringBuilder getIQHoxtChildElementBuilder(IQChildElementXmlStringBuilder builder) {
|
protected IQChildElementXmlStringBuilder getIQHoxtChildElementBuilder(IQChildElementXmlStringBuilder builder) {
|
||||||
builder.append(" ");
|
builder.attribute("version", getVersion());
|
||||||
builder.append("version='").append(StringUtils.escapeForXML(version)).append("'");
|
builder.attribute("statusCode", statusCode);
|
||||||
builder.append(" ");
|
builder.optAttribute("statusMessage", statusMessage);
|
||||||
builder.append("statusCode='").append(Integer.toString(statusCode)).append("'");
|
builder.rightAngleBracket();
|
||||||
if (statusMessage != null) {
|
|
||||||
builder.append(" ");
|
|
||||||
builder.append("statusMessage='").append(StringUtils.escapeForXML(statusMessage)).append("'");
|
|
||||||
}
|
|
||||||
builder.append(">");
|
|
||||||
return builder;
|
return builder;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,6 +77,9 @@ public final class HttpOverXmppResp extends AbstractHttpOverXmpp {
|
||||||
private int statusCode = 200;
|
private int statusCode = 200;
|
||||||
private String statusMessage = null;
|
private String statusMessage = null;
|
||||||
|
|
||||||
|
private Builder() {
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets statusCode attribute.
|
* Sets statusCode attribute.
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Copyright 2014 Andriy Tsykholyas
|
* Copyright 2014 Andriy Tsykholyas, 2015 Florian Schmaus
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -124,7 +124,7 @@ public abstract class AbstractHttpOverXmppProvider<H extends AbstractHttpOverXmp
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
private AbstractHttpOverXmpp.Text parseText(XmlPullParser parser) throws XmlPullParserException, IOException {
|
private static AbstractHttpOverXmpp.Text parseText(XmlPullParser parser) throws XmlPullParserException, IOException {
|
||||||
String text = null;
|
String text = null;
|
||||||
boolean done = false;
|
boolean done = false;
|
||||||
|
|
||||||
|
@ -147,7 +147,8 @@ public abstract class AbstractHttpOverXmppProvider<H extends AbstractHttpOverXmp
|
||||||
return new AbstractHttpOverXmpp.Text(text);
|
return new AbstractHttpOverXmpp.Text(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
private AbstractHttpOverXmpp.Xml parseXml(XmlPullParser parser) throws XmlPullParserException, IOException {
|
private static AbstractHttpOverXmpp.Xml parseXml(XmlPullParser parser)
|
||||||
|
throws XmlPullParserException, IOException {
|
||||||
StringBuilder builder = new StringBuilder();
|
StringBuilder builder = new StringBuilder();
|
||||||
boolean done = false;
|
boolean done = false;
|
||||||
boolean startClosed = true;
|
boolean startClosed = true;
|
||||||
|
@ -195,7 +196,7 @@ public abstract class AbstractHttpOverXmppProvider<H extends AbstractHttpOverXmp
|
||||||
return new AbstractHttpOverXmpp.Xml(builder.toString());
|
return new AbstractHttpOverXmpp.Xml(builder.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void appendXmlAttributes(XmlPullParser parser, StringBuilder builder) {
|
private static void appendXmlAttributes(XmlPullParser parser, StringBuilder builder) {
|
||||||
// NOTE: for now we ignore namespaces
|
// NOTE: for now we ignore namespaces
|
||||||
int count = parser.getAttributeCount();
|
int count = parser.getAttributeCount();
|
||||||
|
|
||||||
|
@ -211,7 +212,8 @@ public abstract class AbstractHttpOverXmppProvider<H extends AbstractHttpOverXmp
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private AbstractHttpOverXmpp.Base64 parseBase64(XmlPullParser parser) throws XmlPullParserException, IOException {
|
private static AbstractHttpOverXmpp.Base64 parseBase64(XmlPullParser parser) throws XmlPullParserException,
|
||||||
|
IOException {
|
||||||
String text = null;
|
String text = null;
|
||||||
boolean done = false;
|
boolean done = false;
|
||||||
|
|
||||||
|
@ -235,7 +237,8 @@ public abstract class AbstractHttpOverXmppProvider<H extends AbstractHttpOverXmp
|
||||||
return new AbstractHttpOverXmpp.Base64(text);
|
return new AbstractHttpOverXmpp.Base64(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
private AbstractHttpOverXmpp.ChunkedBase64 parseChunkedBase64(XmlPullParser parser) throws XmlPullParserException, IOException {
|
private static AbstractHttpOverXmpp.ChunkedBase64 parseChunkedBase64(XmlPullParser parser)
|
||||||
|
throws XmlPullParserException, IOException {
|
||||||
String streamId = parser.getAttributeValue("", ATTRIBUTE_STREAM_ID);
|
String streamId = parser.getAttributeValue("", ATTRIBUTE_STREAM_ID);
|
||||||
AbstractHttpOverXmpp.ChunkedBase64 child = new AbstractHttpOverXmpp.ChunkedBase64(streamId);
|
AbstractHttpOverXmpp.ChunkedBase64 child = new AbstractHttpOverXmpp.ChunkedBase64(streamId);
|
||||||
boolean done = false;
|
boolean done = false;
|
||||||
|
@ -256,7 +259,7 @@ public abstract class AbstractHttpOverXmppProvider<H extends AbstractHttpOverXmp
|
||||||
return child;
|
return child;
|
||||||
}
|
}
|
||||||
|
|
||||||
private AbstractHttpOverXmpp.Ibb parseIbb(XmlPullParser parser) throws XmlPullParserException, IOException {
|
private static AbstractHttpOverXmpp.Ibb parseIbb(XmlPullParser parser) throws XmlPullParserException, IOException {
|
||||||
String sid = parser.getAttributeValue("", ATTRIBUTE_SID);
|
String sid = parser.getAttributeValue("", ATTRIBUTE_SID);
|
||||||
AbstractHttpOverXmpp.Ibb child = new AbstractHttpOverXmpp.Ibb(sid);
|
AbstractHttpOverXmpp.Ibb child = new AbstractHttpOverXmpp.Ibb(sid);
|
||||||
boolean done = false;
|
boolean done = false;
|
||||||
|
|
|
@ -16,10 +16,8 @@
|
||||||
*/
|
*/
|
||||||
package org.jivesoftware.smackx.hoxt.provider;
|
package org.jivesoftware.smackx.hoxt.provider;
|
||||||
|
|
||||||
import org.jivesoftware.smackx.hoxt.packet.AbstractHttpOverXmpp;
|
|
||||||
import org.jivesoftware.smackx.hoxt.packet.HttpMethod;
|
import org.jivesoftware.smackx.hoxt.packet.HttpMethod;
|
||||||
import org.jivesoftware.smackx.hoxt.packet.HttpOverXmppReq;
|
import org.jivesoftware.smackx.hoxt.packet.HttpOverXmppReq;
|
||||||
import org.jivesoftware.smackx.shim.packet.HeadersExtension;
|
|
||||||
import org.xmlpull.v1.XmlPullParser;
|
import org.xmlpull.v1.XmlPullParser;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -36,39 +34,35 @@ public class HttpOverXmppReqProvider extends AbstractHttpOverXmppProvider<HttpOv
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HttpOverXmppReq parse(XmlPullParser parser, int initialDepth) throws Exception {
|
public HttpOverXmppReq parse(XmlPullParser parser, int initialDepth) throws Exception {
|
||||||
|
HttpOverXmppReq.Builder builder = HttpOverXmppReq.builder();
|
||||||
|
builder.setResource(parser.getAttributeValue("", ATTRIBUTE_RESOURCE));
|
||||||
|
builder.setVersion(parser.getAttributeValue("", ATTRIBUTE_VERSION));
|
||||||
|
|
||||||
String method = parser.getAttributeValue("", ATTRIBUTE_METHOD);
|
String method = parser.getAttributeValue("", ATTRIBUTE_METHOD);
|
||||||
String resource = parser.getAttributeValue("", ATTRIBUTE_RESOURCE);
|
builder.setMethod(HttpMethod.valueOf(method));
|
||||||
String version = parser.getAttributeValue("", ATTRIBUTE_VERSION);
|
|
||||||
String maxChunkSize = parser.getAttributeValue("", ATTRIBUTE_MAX_CHUNK_SIZE);
|
|
||||||
|
|
||||||
HttpMethod reqMethod = HttpMethod.valueOf(method);
|
|
||||||
|
|
||||||
Boolean sipub = true;
|
|
||||||
Boolean jingle = true;
|
|
||||||
Boolean ibb = true;
|
|
||||||
|
|
||||||
String sipubStr = parser.getAttributeValue("", AbstractHttpOverXmppProvider.ELEMENT_SIPUB);
|
String sipubStr = parser.getAttributeValue("", AbstractHttpOverXmppProvider.ELEMENT_SIPUB);
|
||||||
String ibbStr = parser.getAttributeValue("", AbstractHttpOverXmppProvider.ELEMENT_IBB);
|
String ibbStr = parser.getAttributeValue("", AbstractHttpOverXmppProvider.ELEMENT_IBB);
|
||||||
String jingleStr = parser.getAttributeValue("", AbstractHttpOverXmppProvider.ELEMENT_JINGLE);
|
String jingleStr = parser.getAttributeValue("", AbstractHttpOverXmppProvider.ELEMENT_JINGLE);
|
||||||
|
|
||||||
if (sipubStr != null) {
|
if (sipubStr != null) {
|
||||||
sipub = Boolean.valueOf(sipubStr);
|
builder.setSipub(Boolean.valueOf(sipubStr));
|
||||||
}
|
}
|
||||||
if (ibbStr != null) {
|
if (ibbStr != null) {
|
||||||
ibb = Boolean.valueOf(ibbStr);
|
builder.setIbb(Boolean.valueOf(ibbStr));
|
||||||
}
|
}
|
||||||
if (jingleStr != null) {
|
if (jingleStr != null) {
|
||||||
jingle = Boolean.valueOf(jingleStr);
|
builder.setJingle(Boolean.valueOf(jingleStr));
|
||||||
}
|
}
|
||||||
|
|
||||||
int maxChunkSizeValue = 0;
|
String maxChunkSize = parser.getAttributeValue("", ATTRIBUTE_MAX_CHUNK_SIZE);
|
||||||
if (maxChunkSize != null) {
|
if (maxChunkSize != null) {
|
||||||
maxChunkSizeValue = Integer.parseInt(maxChunkSize);
|
builder.setMaxChunkSize(Integer.parseInt(maxChunkSize));
|
||||||
}
|
}
|
||||||
|
|
||||||
HeadersExtension headers = parseHeaders(parser);
|
builder.setHeaders(parseHeaders(parser));
|
||||||
AbstractHttpOverXmpp.Data data = parseData(parser);
|
builder.setData(parseData(parser));
|
||||||
|
|
||||||
return HttpOverXmppReq.builder().setMethod(reqMethod).setResource(resource).setIbb(ibb).setSipub(sipub).setJingle(jingle).setMaxChunkSize(maxChunkSizeValue).setData(data).setHeaders(headers).setVersion(version).build();
|
return builder.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -181,7 +181,7 @@ public class AbstractHttpOverXmppProviderTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO The method name makes no sense after the HOXT re-design, change to parseHttpOverXmppResp()
|
// TODO The method name makes no sense after the HOXT re-design, change to parseHttpOverXmppResp()
|
||||||
private HttpOverXmppResp parseAbstractBody(String string, String tag) throws Exception {
|
private static HttpOverXmppResp parseAbstractBody(String string, String tag) throws Exception {
|
||||||
HttpOverXmppRespProvider provider = new HttpOverXmppRespProvider();
|
HttpOverXmppRespProvider provider = new HttpOverXmppRespProvider();
|
||||||
XmlPullParser parser = PacketParserUtils.getParserFor(string, tag);
|
XmlPullParser parser = PacketParserUtils.getParserFor(string, tag);
|
||||||
|
|
||||||
|
@ -190,7 +190,7 @@ public class AbstractHttpOverXmppProviderTest {
|
||||||
return (HttpOverXmppResp) iq;
|
return (HttpOverXmppResp) iq;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void checkHeaders(HeadersExtension headers, Map<String, String> expectedHeaders) {
|
private static void checkHeaders(HeadersExtension headers, Map<String, String> expectedHeaders) {
|
||||||
Collection<Header> collection = headers.getHeaders();
|
Collection<Header> collection = headers.getHeaders();
|
||||||
|
|
||||||
assertEquals(collection.size(), expectedHeaders.size());
|
assertEquals(collection.size(), expectedHeaders.size());
|
||||||
|
|
|
@ -65,7 +65,7 @@ public class HttpOverXmppReqProviderTest {
|
||||||
assertEquals(req.isJingle(), true);
|
assertEquals(req.isJingle(), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private HttpOverXmppReq parseReq(String string) throws Exception {
|
private static HttpOverXmppReq parseReq(String string) throws Exception {
|
||||||
HttpOverXmppReqProvider provider = new HttpOverXmppReqProvider();
|
HttpOverXmppReqProvider provider = new HttpOverXmppReqProvider();
|
||||||
XmlPullParser parser = PacketParserUtils.getParserFor(string);
|
XmlPullParser parser = PacketParserUtils.getParserFor(string);
|
||||||
IQ iq = provider.parse(parser);
|
IQ iq = provider.parse(parser);
|
||||||
|
|
Loading…
Reference in a new issue