Generates the latest/greatest Maven-based artifacts for the Openfire project, every night.

Build: #1516 was successful Scheduled with changes by daryl herzmann <akrherz@iastate.edu> and Guus der Kinderen

Stages & jobs

  1. Build and Package

  2. Deploy

  3. copy nightlies to website

Code commits

Openfire (master)

  • daryl herzmann <akrherz@iastate.edu>

    daryl herzmann <akrherz@iastate.edu> cf67cfce51f2719c56edac4f44b0b30cd74c4c19

    Merge pull request #1833 from guusdk/OF-2245_HTTP-session-close
    OF-2245, OF-2246, OF-2247, OF-2248, OF-2249, OF-2250 and OF-2251: Various BOSH + backup packet delivery improvements

  • Guus der Kinderen

    Guus der Kinderen 7f1a70d2c282398630b7bf334f6e0a3a0b29d2b1

    OF-2251: Make BOSH threadpools more configurable
    This adds properties for minimum amount of, as well as the TTL for surplus threads in the threadpool used for BOSH network IO.

    An additional property is added for the minumum amount of threads in the pool used for BOSH packet processing (which up to now was hard-coded to use 25% of the max).

    When switching from JiveGlobals to SystemProperty, there's no need to explicitly call 'migrateProperty' anymore.

    • i18n/src/main/resources/openfire_i18n.properties (version 7f1a70d2c282398630b7bf334f6e0a3a0b29d2b1)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindManager.java (version 7f1a70d2c282398630b7bf334f6e0a3a0b29d2b1)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version 7f1a70d2c282398630b7bf334f6e0a3a0b29d2b1)
  • Guus der Kinderen

    Guus der Kinderen b535e93d3de51350758223c5816d881e7cbf0f22

    OF-2247: Improve type-safety of BOSH implementation & improve configurability.
    By using classes from the `java.time` package instead of `long` values, better type-safety is achieved.

    Various getters that directly return a property value have been replaced with a `SystemProperty`, which does a better job of documenting their use in the admin console.

    • i18n/src/main/resources/openfire_i18n.properties (version b535e93d3de51350758223c5816d881e7cbf0f22)
    • xmppserver/src/main/java/org/jivesoftware/openfire/SessionManager.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindBody.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpConnection.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/ResourceServlet.java (version b535e93d3de51350758223c5816d881e7cbf0f22)
  • Guus der Kinderen

    Guus der Kinderen 0b1b80829a3d2944d3222e33c492d111823cd173

    Fixes for OF-2246, OF-2249 and OF-2250
    This commit started off as an implementation of a new feature that allows backup delivery to be disabled (OF-2246). While implementing that, two bugs were discovered with how backup delivery is applied for BOSH and multiplexers (OF-2249, OF-2250) for which the fix has been included in this commit.

    A slight refactoring of the BOSH connection implementation was added, to bring those more in-line with Connection implementations of other connection types.

    • xmppserver/src/main/java/org/jivesoftware/openfire/Connection.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/SessionManager.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/multiplex/MultiplexerPacketDeliverer.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/net/SocketConnection.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/net/VirtualConnection.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/nio/ClientConnectionHandler.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/nio/ComponentConnectionHandler.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/nio/MultiplexerConnectionHandler.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/nio/NIOConnection.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/nio/ServerConnectionHandler.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/session/LocalConnectionMultiplexerSession.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/websocket/WebSocketConnection.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
    • xmppserver/src/main/java/org/jivesoftware/openfire/websocket/XmppWebSocket.java (version 0b1b80829a3d2944d3222e33c492d111823cd173)
  • Guus der Kinderen

    Guus der Kinderen 6faecdc16f9c6c71460993937669b8fda150dac3

    OF-2247: BOSH session config should not be mutable
    Attributes of a BOSH session that cannot change after the session was created should not be mutable, as that will make it harder to reason about certain complexities in the code (like thread-safety).

    • xmppserver/src/main/java/org/jivesoftware/openfire/SessionManager.java (version 6faecdc16f9c6c71460993937669b8fda150dac3)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 6faecdc16f9c6c71460993937669b8fda150dac3)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version 6faecdc16f9c6c71460993937669b8fda150dac3)
  • Guus der Kinderen

    Guus der Kinderen aed3692881212ecc70a05b8cb582538e4b54d10b

    OF-2245: Replace volatile boolean with AtomicBoolean
    It is hard to reason over volatile booleans (or any member, for that matter). With volatile booleans, a compare-and-set strictly speaking isn't atomic, but there's the 'happens-before' guarantee for volatile members, that might make things safe again. In all, I'm not sure if the volatile member tracking the 'isClosed' state of a HTTP session is sufficiently thread safe. Replacing it with AtomicBoolean will ensure it is, and will at the very least remove ambiguity.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version aed3692881212ecc70a05b8cb582538e4b54d10b)
  • Guus der Kinderen

    Guus der Kinderen 9ad77047185248c1183d0c61b4183c7551dd8b94

    OF-2248: Migrate BOSH properties
    Use SystemProperty instead of JiveGlobals, for improved management.

    • i18n/src/main/resources/openfire_i18n.properties (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindManager.java (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindServlet.java (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
    • xmppserver/src/main/java/org/jivesoftware/openfire/spi/ConnectionManagerImpl.java (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
    • xmppserver/src/main/webapp/http-bind.jsp (version 9ad77047185248c1183d0c61b4183c7551dd8b94)
  • Guus der Kinderen

    Guus der Kinderen 87867ad66edb956a4cfa063eea1b390599571282

    OF-2245: Improve thread safety in HttpSession
    This commit adds the `@GuardedBy` annotation to allow for static analysis to verify that the applied locks conform with the design. With that, a couple of improvements have been made to ensure that certain fields are accessed only under the intended lock.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 87867ad66edb956a4cfa063eea1b390599571282)
  • Guus der Kinderen

    Guus der Kinderen 124a8fb17ee535586b42d3d90950ab48bafbb822

    OF-2245: Remove redundant code
    In the last commit (86fb7d63a31717b1d3adfd1d5c58eb33a87bcbd3) the state of a HttpSession was made to be equal to the state as maintained by its (Virtual)Connection. With this change, the behavior around `close()` and `isClosed()` is equal to that of the parent class of `HttpSession`: `ClientSession`. There no longer is a need to override these methods in `HttpSession`.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 124a8fb17ee535586b42d3d90950ab48bafbb822)
  • Guus der Kinderen

    Guus der Kinderen 523e099e0c2e5ef6cb51125c13a20ee1548b0a0f

    Fix error log message.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 523e099e0c2e5ef6cb51125c13a20ee1548b0a0f)
  • Guus der Kinderen

    Guus der Kinderen 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739

    Appying IDE-suggested fixes to BOSH implementation
    These are various, minor fixes, as suggested by the development environment. Mainly related to unneeded (un)boxing, etc.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindBody.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindException.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpBindManager.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpConnection.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSessionManager.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/ResourceServlet.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
    • xmppserver/src/main/java/org/jivesoftware/openfire/http/SessionEventDispatcher.java (version 5ed31b5463c67ef6fac8ec73ef4ed8da4c6a5739)
  • Guus der Kinderen

    Guus der Kinderen 87035a038b4ddfc179456b4705a6d69ea57cba10

    OF-2245: Remove duplicate isClosed flag in HttpSession
    Two different members appear to be used to track the state of a HttpSession:
    - the 'isClosed' member of HttpSession
    - the 'state' member of the (Virtual)Connection that represents the 'physical' connection to the client

    This duplication should not be needed, and might even introduce logic errors. This commit removes the former, and replaces it with the latter.

    • xmppserver/src/main/java/org/jivesoftware/openfire/http/HttpSession.java (version 87035a038b4ddfc179456b4705a6d69ea57cba10)
  • Guus der Kinderen

    Guus der Kinderen ec204744b7f994ef32a6f7794df4baa464f5f89d

    Fix flappy behavior of connectivity tests
    The BOSH-based connectivity tests regularly, but not consistently, fail on Github (but never locally, at least not for me).

    It appears that it's always the first (of many) iteration that fails. Subsequent iterations of the same test seem to work.

    Perhaps the test is starting 'to soon'? It's waiting for Openfire to start listening on port 7070 (which seem appropriate), but perhaps there's a brief period where that socket seems open, but data sent to it isn't properly being processed yet.

    This commit adds an arbitrary 2 second wait between 'socket detected to be open' and the start of the test.

    • runConnectivityIntegrationTests (version ec204744b7f994ef32a6f7794df4baa464f5f89d)