Age | Commit message (Collapse) | Author |
|
Add the missing FileTransfer tests to stroke. When porting the tests
I found some of them were failing and required changes to the classes
being tested to fix. Had to add a DummyNetworkEnvironment as well for
the OutgoingJingleFileTransferTest.
Test-information:
All unit tests pass.
Change-Id: Id511a556ef3a5d66e0e107f36f736db3bbb3a437
|
|
Finish porting S5BTransportSession to Stroke (previously a lot of it had been commented out). To
do so had to introduce a heirachy to the SOCKS5BytestreamSession classes (which were being used as
type parameters for the Transport Session) and refactor some of the onByteSent signals to insure
they were all of the same type (Integer).
Also update PortingProgress.txt to update to give status of some of the porting files.
Test-information:
Ran unit tests they all still pass.
Change-Id: I4295b3a8829c208e65f5a46d19c35090f8c55865
|
|
Adds the CombinedAvatarProviderTest class.
When I was adding the test I noticed that
testProviderUpdateWithAvatarDisappearingTriggersChange kept failing
due to a bug in the CombinedAvatarProvider class and
testRemoveProviderDisconnectsUpdates could not be implemented as the
class was incomplete.
I had to make some changes to CombinedAvatarProvider to fix these
issues.
Test-information:
Ran unit tests they all pass.
Change-Id: I0bfb68dd2b15df0f220f36c136aceadaf6545893
|
|
Add BlockParser and BlockSerializer for the block payload classes.
This required slightly different approach to the Swiften code as C++ templates
are different to Java generics. In short needed to add a type hierachy to the
Block payload classes and to the Parsers and Serilaizers associated with them.
Test-information:
Ran unit tests everything passed ok.
Change-Id: I3ea2d66afd7cb3b5c4c3515be3a1ef99d7dbb566
|
|
Updates the FullPayloadSerializerCollection and
FullPayloadParserSerializerCollection to bring it inline with the Swiften
classes. This included reordering the elements so they are in the same order as
the Swiften class (so its easier to see classes that are missing), and adding
ones that were missing. For ones where no Java implemenation exits yet the line
is added but commented out.
Test-information:
Sanity test, ran unit tests all test still pass.
Change-Id: I318c8da577f638f4d799fabdfc09a3afa7fcb608
|
|
Adds a S5BProxyRequestParser and a S5BProxyRequestSerializer to stroke based on the Swiften classes of the same
name. These has been missed out previous stroke patches for some reason.
Test-information:
Code inspection against the Swifen classes.
Sanity test ran the unit tests for stroke they still all pass (note I could not
find any unit tests for this class to transfer from Swiften).
Change-Id: Ic5463169ada33c72127e87a416d42a650aad6399
|
|
There has been some changes to the file transfer clases in Swiften since Tarun's
patch was written. This patch updates the java classes to bring them in line
with the swiften one.
In details
IBBSendSession - added code to clean up onResponse connection when not needed.
In Swiften this was done by keeping reference to current session using boost
bindings to remove binding. In java we have to keep a reference to the current
onResponse connection and disconnect it when not neeeded.
IncomingFileTransferManager - Remove redundant IQRouter field.
LocalJingeTransportCandidateGenerator - Do not advertise link-local IPv6
addresses in FT candidates
OutgoingSIFileTransfer - File deleted
SOCKS5BytestreamProxiesManager and SOCKS5BytestreamProxyFinder - Search for all
proxies instead of just one.
Test-information:
Ran make and make test to check everything built ok and that the unit tests
still passed.
Change-Id: I696444e5074fe20625243693a44c836306b3a41e
|
|
Some fixes that were required for the File Transfer Patch (see patch notes
on Gerrit).
Test-information:
By code inspection.
Ran against MLC (after modification so it works for stroke interface changes
introduces in a previous patch) it still runs correctly.
Ran unit tests they still all pass.
Change-Id: Ib49d9f9160f5e6b6b578f16695f8e8bc0f96a412
|
|
S5BTransport Session still needs generic T.
FileTransfer, OutgoingFileTransfer and IncomingFileTransfer are made an interface due to the need of multiple inheritance in
IncomingJingleFileTransfer and OutgoingJingleFileTransfer. Corresponding documentation has been updated.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
None.
Change-Id: If44cf387767865c37492d871c12d623f94ebaa3a
|
|
Some fixes to the Jingle classes for the previous patch.
Test-information:
By code inspection.
Ran Unit Tests there were no failures.
Change-Id: I61210dd1ec2c7e0dd11d67a45a0ced63952804c7
|
|
Adds Listenable, JingleSession, JingleContentID, FakeJingleSession, JingleSessionListener,
JingleSessionManager, JingleResponder.
NotifyListeners are not in line with Swiften and have to be corrected.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
None.
Change-Id: I6533b2be02a0843277a63ca115348ff6138a0fc0
|
|
Small changes to PubSubManagerImpl and StanzaAckRequester making them equivalent with Swiften.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Added tests for StanzaAckResponder and StanzaAckRequester, which passes.
Change-Id: I99878fc6552ed18e353848a0cea6584c26b2ba0c
|
|
Some more changes to the Networks classes. Based on comments on the last
patch.
Test-information:
No longer see crash I was seeing when I ran the updated Stroke against MLC.
Ran unit tests.
Change-Id: Id577e5322bab0ec48f0353907f82e72bc93b848a
|
|
Adds ProxyProviders, DomainNameResolvers and DummyConnection.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tests added for ChainedConnector, Connector and HostAddress.
Test also added for ComponentConnector, which needed bits of Network.
Five assertions are commented in ConnectorTest, which fails and will be updated after review.
Change-Id: I8a62841eb2f9c109bc3a94865b7a003b33493e11
|
|
Remove calls to TimeZone.setDefault().
Whatever problem the changes that introduced these calls were supposed
to solve, overriding the system default timezone is not the right
solution.
Change-Id: I626419a1c00fe9d68df0c63472d4433e12502acb
|
|
If a JavaConnection is supplied with a JavaConnection.ActivityWatcher at
creation time, then each of its Worker threads will signal when they
become active and when they potentially go to sleep (on select()).
This allows clients to manage a device's power state or any other
suitable subsystem.
Change-Id: I3c83cb8ce5a087dd6fc5d402c75f830f5deca282
|
|
Given that doRead() ends up populating a SafeByteArray as part of the
result is is more efficient to pass an empty SafeByteArray to doRead()
and push each chunk of data read directly to the it rather than use an
intermediate ByteArrayOutputStream. SafeByteArray.getData() will do any
concatenation necessary.
It is unnecessarily inefficient to use a class instance to return the
connection status from doRead. Remove JavaConnection.ReadResult.
Change-Id: I6c8dc000d9030d3929c71444eb5b489df93f1987
|
|
Refactor JavaConnection to make it fully event-driven via select for
both reads and writes. Remove the 100ms spin when there are pending
writes.
Encapslate all the management of the select mask and the write queue
within Worker and protect via a common lock.
Change-Id: I1a709f9b12a949448923f51c2d434746c9190c9d
|
|
Missing initialisation for client authenticator for SASL external was
causing null pointer exceptions. This patch corrects it by initialising
the authenticator as is done in swiften.
Test-information:
tested using an XMPP admin client that does SASL External
Change-Id: I321b425c1c28e0424effd9cb974980c392e48b68
|
|
The IDNConverter interface now throws java strandard IllegalArg exception
instead of the ICU specific StringPrepParseException. Users of stroke that
are not using ICU will now be able to use it without the icu jar.
Test-information:
Sanity tested by connecting to an XMPP server using an XMPP client
Change-Id: I6999ae0c690b70bc748f131908a758a01dac20b9
|
|
The default, clean finish() method needs to set up no error, not a null
instance of Error.Type (with type field == null).
Change-Id: I6912392b226dd84c411e2369844b9aee656d2e6f
|
|
Change-Id: I2ccf6ae1293859dc8bd49731ee55a90b383d30a8
|
|
Change-Id: I41924cdd6d32deb9d47b47a3fc7ffb3b55947029
|
|
Remove SHA1 and HMACSHA1 from StringCodecs as they are already provided by CryptoProvider,
and is equivalent to Swiften.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Add tests for Base64 and PBKDF2, which passes.
Change-Id: Ife05f185a10a79c9d69a12235f1b0397d022d992
|
|
Updates all bits of Client to be in parity with Swiften.
Some part of code which depends on Network is commented.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tests added for: ClientBlockListManager, ClientSession and NickResolver.
All tests pass.
Change-Id: I5b9b0e5ae5b2df58202e2349ba24e4544d9a4614
|
|
Updates DirectedPresenceSender, PayloadAddingPresenceSender, PresenceOracle and SubscriptionManager.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tests added for: DirectedPresenceSenderTest, PayloadAddingPresenceSenderTest and PresenceOracle.
All tests pass.
Change-Id: I9ad899965f5ac32c6f21805b530c234e391be6ba
|
|
Adds TLSError and TLSOptions.
Updates BasicSessionStream, SessionStream and Session.
Updates Client and Components to accomodate changes in TLS.
Also completes TLSLayer in StreamStack which was pending due to TLS port.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tests added for Certificate and ServerIdentityVerifier.
Test updated for ComponentSession.
All tests pass.
Change-Id: I34a8fe068c1e8af5348cc4ab49d3d1ed118ae833
|
|
The way a VCard is used, pessimistic allocation puts an undue load on
the Java GC.
Change-Id: Ifced03a759783db2de911fc22dd40f6e475e5596
|
|
Clean up imports.
Add @Override annotations as appropraiate to MUCImpl and MockMUC.
Change-Id: Id34849364fe1e4cdd7709b2cc7b397d007c2868c
|
|
Use and ArrayList<byte[]> as the internal storage, instead of
Vector<Byte>.
Constructors and methods that supply a byte[] to add to the instance
will have that value copied, rather than just taking ownership of the
byte[]. There is an argument, on efficiency grounds, for providing
methods that take ownership of the supplied argument.
The earlier discussions about use of synchronization in the class are
revisited. This is a low-level container that should be thread-safe or
take precautions against non-thread-safe use. It is anticipated that the
vast majority of uses will be thread-safe. Use of synchronization
permits occasional deviations from this without imposing any significant
overhead for the normal case - uncontended synchronization is close to
free.
Change-Id: Ifb7b2915d5c96345c53aec8e33673d892c430431
|
|
Most of the time when VCard.getPhoto() is called it is only used to
determine presence or absence of a photo. Thus, it makes no sense to
allocate an empty ByteArray() just for this purpose. Return null
instead, if absent.
Change-Id: I3bae02ffbece5589c74c950bbb4c0db6c0376c76
|
|
Adds DIGESTMD5ClientAuthenticator, DIGESTMD5Properties, ExternalClientAuthenticator, PLAINMessage.
Updates Client, ClientSession, CoreClient, ConnectDisconnect, StrokeGUI to reflect changes made in SASL.
Updates ClientAuthenticator, SCRAMSHA1ClientAuthenticator, PBKDF2.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Added tests for DIGESTMD5ClientAuthenticator, DIGESTMD5Properties, PLAINClientAuthenticator, PLAINMessage.
Update test for SCRAMSHA1ClientAuthenticatorTest.
All tests pass.
Change-Id: I4fd38f922cab7e4c4548d9706f6ad3b9e1506e81
|
|
Adds SingleThreadedEventLoop.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tests for EventLoop and SimpleEventLoop passes.
Change-Id: Ifda63a328e0adfb2da0eb2a1038805042ed0f6fb
|
|
A recent change (9ead0fdcca595df9dc3f4143122776b398dbe405) made MUC an
abstract class, and moved all functionality into MUCImpl (to
correspond with Swiften). The "disconnect()" method was moved to
MUCImpl, which means that any existing application which used it would
break.
The disconnect() method is required in java (although it's not in
Swiften) because it provides a way to disconnect signals that are
connected in the MUC constructor (or MUCImpl constructor now). While
the signals are connected, the MUC object will not be eligible to be
garbage collected, and this can lead to growing memory usage for an
application which creates lots of MUC objects for a given connection.
Adding a call to "disconnect()" in the finalizer for the MUC would not
be effective because the finalizer only gets called when the MUC is
gc'd, and the MUC can't be gc'd until the disconnect() has happened.
Test-information:
Unit tests pass.
Before this change, an application calling "MUC.disconnect()" fails to compile.
After this change, the application compiles.
Tested an app that creates lots of MUC objects, and checked, using the
debugger, to see if the objects were being garbage collected when the
application dropped its reference to the objects.
When not calling "disconnect()", the MUC objects are not garbage
collected until the owning StanzaChannel is closed.
When a call to "disconnect()" was added, the MUC objects are garbage
collected soon after the application finishes using them, even though
the StanzaChannel is still in use.
Change-Id: Icd6c354e34d2124c292ae5d44bc47725a6e73df5
|
|
If synchroniseReads was enabled then if was possible for CancelledKeyExceptions
to occur if the channel closed, whilst data was being procsessed on the event
loop.
I have also made the selectorKey_ reference volatile as this is used by both
threads since my previous change 1afab8c1f2c417b08371bc12569e03171851d785
Change-Id: I48edcab9ef090b8a4561331d6aecc7f95cb8924d
|
|
Adds Component, ComponentConnector, ComponentError, ComponentSession, ComponentXMLTracer, CoreComponent,
ComponentSessionStanzaChannel, ComponentXMTracer, CoreComponent.
Updates CoreClient, StrokeGUI, BasicSessionStream and SessionStream and Client, so that signal definition can be changed.
Updates ComponentHandshake element, Entity.
Updates OutgoingAdHocCommandSession to have feature parity with Swiften.
This patch does not port Client or Session fully, which will be done in separate future patches.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Test added for ComponentSession, which passes.
Test for ComponentConnector cannot be ported right now and will be done in future patches,
as it requires some bits of Network to be ported.
Change-Id: I7138a2041fe28a2be7ac57cb47b15365f9334b24
|
|
TLSLayer could not be updated because it requires TLS to be ported first.
Updates other classes, only for having compatibility with SafeByteArray because of updates in Stream Stack.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tests added for StreamStack and XMPPLayer, which passes.
Change-Id: I8707fc1f16d622d2a90f6f39f671b7e7c46aa170
|
|
Updates Serializers and Parsers along with one minor change in XMPPlayer.
Update Non Payload Serializers to return SafeByteArray.
Updates SafeByteArray to return SafeByteArray on append and plus method.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
None.
Change-Id: I6fe665a26b10cac37b3e3acd9ec15c211ac9b8ab
|
|
Updates MUC to be an abstract class.
Updates MUCBookmark, MUCManager, DirectedPresenceSender.
Adds MUCImpl.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Test updated for MUC, in accordance with Swiften, which passes.
Added MockMUC too.
Change-Id: If5aa672e8adc093162d3c9890c8437d3edadea68
|
|
Updates VCardManager, VCardMemoryStorage and VCardStorage.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Test added for VCardManager, which passes.
Change-Id: I0d4f1dbb647f262ff2a8967807fb798a8181b0b5
|
|
Updates RawXMLPayload Element, SoftwareVersion Element.
Updates IQRouter, Request, Responder, SoftwareVersionResponder.
Updates ErrorSerilaizer access.
Adds RawRequest, GetInBandRegistrationFormRequest, GetSoftwareVersionRequest,
and SetInBandRegistrationRequest.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tests added for: IQRouter, Request and Responder.
Rest, all tests passes.
Change-Id: I22308cc05bd1a6c28f3937a44d997e1da47e2891
|
|
Updates RosterPushResponder, XMPPRoster, XMPPRosterController.
Also adds XMPPRosterSignalHandler.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Adds tests for XMPPRosterController, XMPPRosterImpl.
All tests passes.
Change-Id: Iee3530510342ea5977022237aaa6dfbffa390408
|
|
If the finalize() ever gets called, it should, by convention, invoke
the superclass finalize() method. This change makes it do that.
Test-information:
Unit tests still pass
Change-Id: I0171cb1b6e1cce61a4c3140f669585f14e797dbd
|
|
Adds DiscoServiceWalker, FeatureOracle, JIDDiscoInfoResponder.
Updates CapsInfoGenerator, ClientDiscoManager,
EntityCapsManager, EntityCapsProvider, IQ Element, Request.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Tests added for:
CapsInfoGenerator, CapsManager, DiscoInfoResponder, EntityCapsManager, JIDDiscoInfoResponder.
All tests pass.
Change-Id: Ib7cd08ff6f72b7649e4819943b627459c69a1397
|
|
When run with java 7 class IDNA.getEncoded was throwing a StringIndexOutOfBounds exception if it was passed a String begining with '.isode'. This has the knock on effect of some of one of the isode MLC tests failing. This was caused by IDN.toAscii throwing the exception, when it should only thrown IllegalArgumentException.
Java 7 is no longer supported so I can't raise a bug for this, a fix for stroke is easy though, just add the StringIndexOutOfBoundException to the catch block.
Test-information:
Ran the tests that were failing in eclipse on my machine (which runs java 7) tests now all passed correctly.
Sanity test that tests still passed when run on command line against java 8.
Ran the Stroke JUnit test against the code. Tests all passed when using latest version of java 7 (7_79) and when using java 8.
Change-Id: Ifc9c830be7a0e5c9e5f2330a6782eff2401f18cb
|
|
Stroke was brought in line with swiften as a result of which strong
(certificate based bind) authentication between client and xmpp server
stopped working. This was happening because of missing "=" in the
<auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='EXTERNAL'>=</auth>
The AuthRequestSerialiser was not adding "=" because the ByteArray object
that was passed was null.
This patch fixes the ClientSession class to pass empty ByteArray object as
is done in existing swiften code.
Test-information:
strong bind works using java client to xmpp server
Change-Id: Ide2d61723d92df19a251db7f1eb9f1581329f782
|
|
By default this option is disabled, existing usages will function as normal.
This option stops the JavaConnection from reading data if the previous read
has not been processed by the event loop. Previously constrained devices were
seeing OutOfMemoryErrors, if they were not able to process the incoming data
quick enough.
This change does not affect the write behavour.
Change-Id: I47bc0eafba32336f5bf250ccb1fea530f51d328e
|
|
Implemented as separate classes for Stroke, rather than as single
combined class in Swiften because of type-erasure.
Make VCardSerializer & DiscoInfoSerializer generally visible (public).
Change-Id: I9e93c71377c417949da1c70e4219d3813a066087
|
|
Use the String avatar hash as the general handle for an avatar.
AvatarManager.getAvatar(JID jid) will return null if no
avatar is available.
AvatarManager.getAvatarPath() and AvatarStorage.getAvatarPath() are
deleted.
Make AvatarProvider & AvatarManager abstract classes instead of
interfaces so that their onAvatarChanged Signals are not static fields.
Implement delete() for AvatarManagerImpl and AvatarProvider & subclasses
so that signal connections can be released.
Add @Override annotations as appropriate.
Change-Id: Ia7c9d7607b642bb42c373f81dc6be9a60f0f2134
|
|
Date.
Updates VCard Element, JingleFileTransferFileInfo to allow dates to be null, as a indicator for not a valid date time.
License:
This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Test-Information:
Corresponding tests changed, which passes.
Change-Id: I9c9b4a84b7bebc18e8ef8ba5050e45ac2f13aa65
|