Commit Graph

4079 Commits

Author SHA1 Message Date
Paul Schaub 6b84517ce8
Catch NumberFormatException when parsing integer 2019-09-28 01:32:11 +02:00
Paul Schaub c3cc7461f1
Add documentation for IntegrationTest host configs 2019-09-28 01:17:22 +02:00
Paul Schaub 03bde438ce
Fix typos in XmppConnectionManager 2019-09-28 01:12:53 +02:00
Paul Schaub 92e8f81b3c
IntegrationTest: Implement custom host configuration
Added the following possible connection configuration options:

* adminAccountHostname: hostname for the admin account
* adminAccountPort: port for the admin account
* accountOneHostname: hostname for the first test account
* accountTwoPort: port for the first test account

Similar options exist for connection two and three of course.
These configuration options may come in handy when dealing with
an XMPP server that is clustered among different machines.
2019-09-28 01:12:37 +02:00
Florian Schmaus f0300dc906 Remove deprecated "PacketReplyTimeout" methods in SmackConfiguration 2019-09-25 23:45:29 +02:00
Florian Schmaus 35cf094386 sasl-javax: Do not set system properties in SASLGSSAPIMechanism
Smack did this for a long time, since eb56f8a55 ("GSSAPI work by Jay
Kline (SMACK-218)."). Not always in a static block though. But
irregardless this is bad practice as it causes side-effects and may
overrides settings.

For example, one users reports:

java.lang.SecurityException: java.io.IOException: gss.conf (No such file or directory)
    at sun.security.provider.ConfigFile$Spi.<init>(ConfigFile.java:137)
    at sun.security.provider.ConfigFile.<init>(ConfigFile.java:102)
    at sun.reflect.GeneratedConstructorAccessor119.newInstance(Unknown Source)
2019-09-25 23:36:21 +02:00
Florian Schmaus eeb6c52f7e Move SASL logic into AbstractXMPPConnection
Besides the way the transport handles the stream after SASL
<success/>, the SASL logic is independend from the underlying
transport (BOSH, TCP, …). Hence move it up into
AbstractXMPPConnection.

This also has the benefit that we can make some more methods private
or package-private.

Also introduce XmlStringBuilder.optTextChild(), which causes some
associated changes.
2019-09-25 13:49:21 +02:00
Florian Schmaus c3247ef006 Use optElement() instead of optAppend() in StreamInitiation.toXML() 2019-09-24 23:29:26 +02:00
Florian Schmaus cf48f12565 Add INSTANCE shortcut to SmackTestUtil 2019-09-24 23:29:00 +02:00
Florian Schmaus 3ee4dd7b3a Move SASL authentication state into SASLMechanism 2019-09-24 10:19:12 +02:00
Florian Schmaus 1d03cfdc79 checkstyle: Remove redundant whitespace check
The "line contains only whitespace character(s)" check is the same as
the trailing whitespace characters check a few lines below.
2019-09-24 10:12:13 +02:00
Florian Schmaus 93aaf6d8d7 Remove SASLAuthentication.init() 2019-09-23 20:01:10 +02:00
Florian Schmaus bf538129c2 SASL: Add missing InterruptedException to "else if" cascade 2019-09-23 19:54:47 +02:00
Florian Schmaus 5b1d2664af Clear saslException class field before throwing
Thanks to PolFW, who writes:

A SASLErrorException is thrown before we have received the "<success
xmlns='urn:ietf:params:xml:ns:xmpp-sasl'/>". This is because
SASLAuthentication is keeping a reference to a "saslException" so to
clear that after a authentication failure we have to invoke again
connect on the xmpptcpconnection to initialize again the
saslAuthentication. But it doesn't solve the issue because an
AlreadyConnectedException is thrown before the initialisation of the
"this.saslAuthentication.init();"

Note that the user uses one time tokens for authentication.
2019-09-23 19:47:37 +02:00
Florian Schmaus be0830fc8f smack-xmlparser: Improve ISE message 2019-09-23 16:12:48 +02:00
Florian Schmaus 28ef30b4b3 smack-java7: Add missing smack-xmlparser-stax dependency
Since 2f667f95a ("gradle: Remove archives configuration") the

:smack-repl:printXmppNioTcpConnectionStateGraph

JavaExec task failed with

> Task :smack-repl:printXmppNioTcpConnectionStateGraph FAILED
Exception in thread "main" java.lang.ExceptionInInitializerError
        at org.jivesoftware.smack.SmackConfiguration.getVersion(SmackConfiguration.java:108)
        at org.jivesoftware.smack.AbstractXMPPConnection.<clinit>(AbstractXMPPConnection.java:187)
        at org.igniterealtime.smack.smackrepl.StateGraph.main(StateGraph.java:37)
Caused by: java.lang.IllegalStateException: Could not parse Smack configuration file
        at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:100)
        ... 3 more
Caused by: java.lang.IllegalStateException: Could not load a XmlPullParserFactory via Service Provider Interface (SPI)
        at org.jivesoftware.smack.xml.SmackXmlParser.getXmlPullParserFactory(SmackXmlParser.java:34)
        at org.jivesoftware.smack.xml.SmackXmlParser.newXmlParser(SmackXmlParser.java:53)
        at org.jivesoftware.smack.util.PacketParserUtils.getParserFor(PacketParserUtils.java:76)
        at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:144)
        at org.jivesoftware.smack.SmackInitialization.processConfigFile(SmackInitialization.java:139)
        at org.jivesoftware.smack.SmackInitialization.<clinit>(SmackInitialization.java:97)
        ... 3 more

because no XmlPullParser was registered via SPI. The 'archives'
configuration which was removed with 2f667f95a ("gradle: Remove
archives configuration"), previously pulled in the parser.

Just like smack-android delcares a dependency on smack-xmlparser-xpp3,
smack-java7 should declare a dependency on smack-xmlparser-stax.
2019-09-23 16:12:48 +02:00
Florian Schmaus b1a5509927 smack-tcp: Split dot to png into two makefile steps
Since using a pipe, as we did previously would not error the target if
the first command in the pipe fails.

It is still far from ideal, since the dot file is also generated if
the gradle command fails. At some point, this should probably become
part of gradle build step instead of shelling out to a Makefile.
2019-09-23 16:12:48 +02:00
Florian Schmaus bd4b91fc26 Introduce AbstractXMPPConnection.outgoingStreamXmlEnvironment 2019-09-23 16:12:48 +02:00
Florian Schmaus 002d060584 XmlStringBuilder: Map all XML serialization to appendXmlTo()
this is now the single place where serializatin happens.
2019-09-23 16:12:48 +02:00
Florian Schmaus 6d7b2b70e8 Add util.Consumer and use it in StateDescriptorGraph 2019-09-23 16:12:48 +02:00
Florian Schmaus b83dacc60a Merge branch 'master' of github.com:igniterealtime/Smack 2019-09-18 09:59:57 +02:00
Florian Schmaus 3318a44016 XmlStringBuilder: Declare actual return type instead of supertype 2019-09-18 09:01:04 +02:00
Florian Schmaus 5483e95920 LazyStringBuilder: Wrap NPE in RuntimeException
instead of using a Logger.
2019-09-18 09:01:04 +02:00
Florian Schmaus 8086a11c6c XmlStringBuilder: Use potential length for target StringBuilder 2019-09-18 08:55:51 +02:00
Florian Schmaus fb3a71a14d Fix ConcurrentModificationException in XmlStringBuilder.appendToXml()
We want to append to appendable, not sb, the LazyStringBuilder we are
currently iterating over,
2019-09-18 08:48:39 +02:00
Florian Schmaus afd61670a4 pubsub: Add removal comment in ConfigureForm 2019-09-16 22:04:57 +02:00
Florian Schmaus 65b6a7bfa2
Merge pull request #330 from ge0rg/errlang
Errors: language selection for error description
2019-09-16 17:42:45 +02:00
Florian Schmaus a2acb7b66e
Merge pull request #345 from vanitasvitae/enableStanzaId
Make adding originId by default configurable
2019-09-16 17:40:16 +02:00
Florian Schmaus effe82a9c9
Merge pull request #346 from vanitasvitae/fixAndroid
Don't compile android.jar contents into smack-android jar
2019-09-16 09:53:55 +02:00
Florian Schmaus 2f667f95a8 gradle: Remove archives configuration
and FileTestUtil in favor of commons-io. This is required because
Eclipse won't put src/test code into the classpath of src/main
code (even though gradle was configured with an according
dependency).
2019-09-16 00:04:47 +02:00
Florian Schmaus 89cb3f679b gradle: Switch to 'maven-publish' plugin 2019-09-15 23:21:21 +02:00
Paul Schaub 4ed4e8f71c
Don't compile android.jar contents into smack-android jar
gradles compile command (which is deprecated and should be replaced with implementation) includes the arguments resources into the result jar.
That means that smack-android will contain resources found at the android boot classpath.

This results in a +~11mb increase in size of the resulting apk when including Smack as a composite build. The increase comes from 11mb of Android resources, mainly drawables.

compileOnly (formerly provided) on the other hand will assert that the android.jar classes are provided by the system, which is probably what we want in this case.
2019-09-13 14:33:58 +02:00
Florian Schmaus f2e1d7ddd5 Add XmlEnvironment conscious ParserUtils.getXmlLang()
and unify parsing of common stanza attributes where this new method is
used.
2019-09-12 15:15:57 +02:00
Florian Schmaus 86c28e9d13 Use XmlEnvironment.EMPTY instead of null in PacketParserUtils 2019-09-12 15:15:57 +02:00
Florian Schmaus 9b186f2541 Add support for XEP-0328: JID Prep
Fixes SMACK-878.
2019-09-08 18:29:46 +02:00
Florian Schmaus 09e7368313 Delete unused IQ(String) constructor 2019-09-08 18:17:35 +02:00
Florian Schmaus a6a1142255 Improve OX's PubkeyElement
there is no reason why we want to store the bytes of the base64
encoded string. Simply store the string itself.

Also add a convenience method to get the decoded bytes of the PubKey.
2019-09-07 23:27:36 +02:00
Florian Schmaus 34f1c2b79e errorprone: Enable MethodCanBeStatic 2019-09-07 23:01:39 +02:00
Florian Schmaus 870d1a7238 build.gradle: Bump gradle-errorprone-plugin to 0.8.1 2019-09-07 23:00:16 +02:00
Florian Schmaus 65576cf3c2 Rework XML Element hierarchy and XmlStringBuilder
- Reduce the amount of types that are subtypes of NamedElement. See
javadoc of NamedElement for rationale.
- Work more with XmlEnvironment in XmlStringBuilder.
- Some minor changes to XmlStringBuilder API.
2019-09-07 18:17:08 +02:00
Florian Schmaus e9bcdf3e6d QueryArchiveTest: Call assertsEquals with the correct order of arguments
first expected, then actual.
2019-09-07 17:05:37 +02:00
Florian Schmaus e8819d31dd PagingTest: Call assertsEquals with the correct order of arguments
first expected, then actual.
2019-09-07 10:11:32 +02:00
Florian Schmaus dd4df0a5ef Improve how XmlStringBuilder handles enclosing XML environments
to avoid emitting unnecessary attributes like xmlns.

Also add a test for MediaElement that checks that <uri/> does not
carry a xmlns attribute.
2019-09-04 10:22:56 +02:00
Florian Schmaus 935465a11b Remove duplicate code in XmlStringBuilder 2019-09-04 10:22:55 +02:00
Florian Schmaus 85ef149c83 Make XmlStringBuilder.prelude() protected
as the user should never be required to call it.
2019-09-04 10:22:55 +02:00
Paul Schaub 80793910b8
Make adding originId by default configurable 2019-09-02 17:39:27 +02:00
Florian Schmaus a36e74832e
Merge pull request #344 from vanitasvitae/fixStanzaIDs
XEP-0359: Fix filtering of messages applicable to SIDs.
2019-09-02 13:18:27 +02:00
Florian Schmaus ff8d1b8299 travis: Add javadocAll to 'script' gradle targets
to ensure that javadocAll works correctly. A nice side-effect, this
also ensures that the package-info.java symbolic links are still
correct and haven't been replaced by some IDE or editor with the
content of the link target.
2019-09-01 23:13:20 +02:00
Florian Schmaus 1a7e2c1510 javadocAll: Set source to sourceCompatibility to work around bug
in JDK 11. See https://bugs.openjdk.java.net/browse/JDK-8217177
2019-09-01 23:13:20 +02:00
Florian Schmaus 75625283ef Make "duplicate" package-info.java files symbolic links
This is needed for javadocAll since otherwhise there will be

smack-core/src/main/java/org/jivesoftware/smack/package-info.java:21:
	warning: a package-info.java file has already been seen for
	package org.jivesoftware.smack

warnings.
2019-09-01 23:13:20 +02:00