Gary Russell 2034dbb6c8 INTEXT-24 Lightweight WebSocket Server
* Add Lightweight WebSocket Server Support
* Run WebSocketServerTests and open ws.html in a browser.
  - Sending 'start' begins sending an incrementing # once per second.
  - 'stop' stops the stream (leaving the socket open), 'start' resumes again.
  - Test terminates after 60 seconds.
* Fixes and Improvements for WebSocket Server
  - fix masking
  - fix bytes sent
  - add error handling to remove dead sockets
  - create new web page instead of using vert.x example
  - add status box
  - automatically update message to send to start/stop appropriately
  - update SI to 2.2.0.RELEASE
  - change test to a main()
* Use Interceptor for Handshake
* Move handshake to an interceptor instead of doing it in the SI flow.
* Add close button to web page.
* Add code to remove state from deserializer on close.
* Implement Orderly Close Per RFC6455
* Rename Packages - org.springframework.integration.x.*
* Change Version to 0.1.0.
* Autbahn Test Suite - All Tests Pass
  - 1.1.x tests from the Autobahn Test Suite.
  - Autobahn 1.2.x Tests (Binary)
  - Autobahn Test 2.* (Ping/Pong)
  - Autobahn Tests 3.* (Reserved Bits)
  - Autobahn Tests 4.* (Invalid Opcodes)
  - Autobahn 5.* (Fragmentation)
  - Autobahn 6.* (UTF-8 Handling)
  - Autobahn Tests 7.* (Close Handling)
* "non-strict" results - fast fail on bad UTF-8. We currently don't detect the bad UTF-8 until all fragments are received.
* Run AutobahnTests.java and add the following to fuzzingclient.json...

    {"agent": "SIServer", "url": "ws://localhost:18080", "options": {"version": 18}}

* Remove sysout
* Replace with logger.debug().
* Remove SockJS Dependencies
  - Project started as a SockJS client; WebSocket classes were incorrectly dependent on some SockJS code.
* Extracted the WebSocket code to its own class hierarchy.
* Test Autobahn with SSL (wss://...)
  - Add trust store and key store.
  - Add config to listen for wss: as well as ws: connections
* To test Autobahn for both ws and wss - In the wstest config file use:

    "servers": [
        {"agent": "SIServer", "url": "ws://localhost:18080", "options": {"version": 18}},
        {"agent": "SIServerSSL", "url": "wss://localhost:28080", "options": {"version": 18}}
              ],

* Polishing + Resequence when Using NIO
  - Improve debug logging
  - Clear fragments
  - Add ResequencingMessageHandler to resequence messages when using NIO (frames can arrive on different threads, out of order; this causes issues with the Autobahn tests.
* Reject Non WS Connections
  - only apply Resequencer if NIO Connection factory is configured with apply-sequence.
  - check protocol version - only 13 is supported.
2013-01-07 16:35:02 -05:00
2012-06-15 21:49:34 -04:00
2012-10-07 20:51:22 -03:00

Spring Integration Extensions

The Spring Integration Extensions project provides extension modules for Spring Integration. This project is part of the SpringSource organization on GitHub.

Available Modules

Getting support

Check out the Spring Integration forums and the spring-integration tag on Stack Overflow. Commercial support is available too.

Issue Tracking

Report issues via the Spring Integration Extensions JIRA.

Building from source

Each module of the Spring Integration Extensions project is hosted as independent project with its own release cycle. For the build process of individual modules we recomend using a Gradle-based build system modelled after the Spring Integration project. Also, the Spring Integration Adapter Template for SpringSource Tool Suite (STS) provides a Gradle-based build system. For more information, please see How to Create New Components.

Therefore, the following build instructions should generally apply for most, if not all, Spring Integration Extensions. In the instructions below, ./gradlew is invoked from the root of the source tree and serves as a cross-platform, self-contained bootstrap mechanism for the build. The only prerequisites are Git and JDK 1.6+.

Check out the sources

git clone git://github.com/SpringSource/spring-integration-extensions.git

Go into the directory of a specific module

cd module-name

Compile and test, build all jars

./gradlew build

Install the modules jars into your local Maven cache

./gradlew install

... and discover more commands with ./gradlew tasks. See also the Gradle build and release FAQ.

Import sources into your IDE

Using Eclipse / STS

When using SpringSource Tool Suite you can directly import Gradle based projects:

File -> Import -> Gradle Project

Just make sure that the Gradle Support for STS is installed. Alternatively, you can also generate the Eclipse metadata (.classpath and .project files) using Gradle:

./gradlew eclipse

Once complete, you may then import the projects into Eclipse as usual:

File -> Import -> Existing projects into workspace

Using IntelliJ IDEA

To generate IDEA metadata (.iml and .ipr files), do the following:

./gradlew idea

Contributing

Pull requests are welcome. Please see the contributor guidelines for details. Additionally, if you are contributing, we recommend following the process for Spring Integration as outlined in the administrator guidelines.

Creating Custom Adapters

In order to simplify the process of writing custom components for Spring Integration, we provide a Template project for SpringSource Tool Suite (STS) version 3.0.0 and greater. This template is part of the [Spring Integation Templates][] project. For more information please read How to Create New Components.

Staying in touch

Follow the Spring Integration team members and contributors on Twitter:

License

The Spring Integration Extensions Framework is released under version 2.0 of the Apache License unless noted differently for individual extension Modules, but this should be the rare exception.

We look forward to your contributions!!

Description
No description provided
Readme 4.1 MiB
Languages
Java 91%
Groovy 5%
CSS 3.5%
HTML 0.5%