Commit Graph

572 Commits

Author SHA1 Message Date
Jean-Sébastien Pédron 1f89569e9f Update rabbitmq-components.mk 2018-04-11 10:51:32 +02:00
Jean-Sébastien Pédron 33d6428f61 Update rabbitmq-components.mk 2018-04-11 10:10:14 +02:00
Jean-Sébastien Pédron 13e2b7d35d Travis CI: Update config from rabbitmq-common 2018-04-10 13:09:55 +02:00
Jean-Sébastien Pédron dc3560d29a Update erlang.mk 2018-03-02 19:10:49 +01:00
Jean-Sébastien Pédron 58b7f00b8d Update rabbitmq-components.mk 2018-01-30 15:24:02 +01:00
Luke Bakken f8c3036c4c Update rabbitmq-components.mk 2018-01-29 16:22:28 -08:00
Jean-Sébastien Pédron bd462d2e55 Update rabbitmq-components.mk 2018-01-23 17:21:51 +01:00
Jean-Sébastien Pédron cf861c7eca Update rabbitmq-components.mk 2018-01-23 15:31:38 +01:00
Diana Corbacho 86860abfa2 Update rabbitmq-components.mk 2018-01-22 22:13:33 +00:00
Jean-Sébastien Pédron 022fca78d8 Travis CI: Update config from rabbitmq-common 2017-12-15 15:18:14 +01:00
Michael Klishin 738f83159e Merge pull request #32 from rabbitmq/rabbitmq-web-dispatch-31
Fix rabbit_cowboy_redirect and remove unused optional callbacks
2017-12-05 11:10:15 -08:00
Loïc Hoguin 22d12124ee Fix rabbit_cowboy_redirect and remove unused optional callbacks
The handler rabbit_cowboy_redirect was apparently not converted
to Cowboy 2. It should work properly now.
2017-12-05 14:02:07 +01:00
Jean-Sébastien Pédron acff2fdcda Update rabbitmq-components.mk 2017-12-01 11:07:12 +01:00
Jean-Sébastien Pédron d9d3658ede Update rabbitmq-components.mk 2017-11-28 14:01:23 +01:00
Jean-Sébastien Pédron 20162b6ab7 Update rabbitmq-components.mk 2017-11-28 13:36:13 +01:00
Jean-Sébastien Pédron 9c7cfe5d30 Travis CI: Update config from rabbitmq-common 2017-11-08 12:29:01 +01:00
Michael Klishin 5b0a75f5a0 Fix Cowboy 1.1 API references spotted by xref 2017-10-25 01:35:29 +03:00
Daniil Fedotov 54e847ee56 Format any HTTP version returned by cowboy. 2017-10-23 14:00:30 +01:00
Luke Bakken 7eea450fde Cowboy 2 consistently uses "stop" now - https://github.com/ninenines/cowboy/blob/master/doc/src/guide/migrating_from_1.0.asciidoc#changed-behaviors 2017-10-23 11:27:10 +01:00
Daniil Fedotov b8aa33f769 Support cowboy2.
Change the dispatch mechanism to cowboy2.
Replace hooks with a stream handler.
Update cowboy APIs.
2017-10-23 11:27:10 +01:00
Jean-Sébastien Pédron c752cad50e Merge branch 'stable' 2017-10-13 15:14:17 +02:00
Jean-Sébastien Pédron f927a01046 Update rabbitmq-components.mk 2017-10-13 14:33:19 +02:00
Jean-Sébastien Pédron 46a780fa2d Update rabbitmq-components.mk 2017-10-13 14:13:39 +02:00
Jean-Sébastien Pédron a06f077537 Update rabbitmq-components.mk 2017-10-13 12:15:55 +02:00
Michael Klishin 3e85955b9e Update rabbitmq-components.mk 2017-09-13 17:54:53 -04:00
Michael Klishin 03f26c2aed Update rabbitmq-components.mk 2017-09-13 17:45:50 -04:00
Michael Klishin 47f6de48f9 Update rabbitmq-components.mk 2017-09-12 19:53:43 -04:00
Michael Klishin 127537763c Update rabbitmq-components.mk 2017-09-12 12:42:09 -04:00
Daniil Fedotov 5271dd12aa Merge branch 'stable' 2017-08-30 19:20:53 +01:00
Daniil Fedotov 70f464a4f6 Update erlang.mk 2017-08-30 18:46:45 +01:00
Michael Klishin 57d08e6b0c Erlang/OTP 19.2 is now the minimum supported version.
Part of rabbitmq/rabbitmq-server#1305.

[#149563549]
2017-07-26 19:03:34 +03:00
Michael Klishin e2f7d2c3ce Update rabbitmq-components.mk 2017-07-26 03:48:44 +03:00
Michael Klishin 759e206c46 Update rabbitmq-components.mk 2017-07-26 02:27:19 +03:00
Michael Klishin 12899f4c03 Merge branch 'stable' 2017-07-20 01:38:07 +03:00
Luke Bakken 58cf964936 Ensure that cowboy_req:peer return values will not crash
Since the type spec for cowboy_req:peer indicates that a two-tuple of {undefined, Req} can be returned
we should handle this as `badmatch` could be the result otherwise.

I also used the returned value of Req as specified in the cowboy docs:

https://ninenines.eu/docs/en/cowboy/1.0/guide/req/

I realize this is pedantic and unnecessary in this case but it ensures that we can handle changes
in cowboy should the API change in the future.
2017-07-19 13:43:30 -07:00
Michael Klishin 97d916f658 Update rabbitmq-components.mk 2017-06-12 20:18:50 +03:00
Michael Klishin 05d3eb0912 Update rabbitmq-components.mk 2017-06-12 18:35:51 +03:00
Michael Klishin 0cb259d7ff Merge branch 'stable' 2017-06-02 18:12:15 +03:00
Michael Klishin c13a037eb8 Update rabbitmq-components.mk 2017-06-02 17:51:38 +03:00
Michael Klishin 8fc29bfc97 Update rabbitmq-components.mk 2017-06-02 00:43:36 +03:00
Michael Klishin 47c939217f Update rabbitmq-components.mk 2017-06-01 18:01:55 +03:00
Jean-Sébastien Pédron e00159a2d5 Merge branch 'stable' 2017-05-16 18:13:40 +02:00
Jean-Sébastien Pédron 0eacb14f90 Makefile: Load the new `rabbitmq-early-plugin.mk` early-stage plugin
See the corresponding commit in rabbitmq-common for an explanation.

[#144697185]
2017-05-16 17:39:30 +02:00
Jean-Sébastien Pédron 1e92b83645 Update erlang.mk 2017-05-16 17:39:30 +02:00
Jean-Sébastien Pédron 6ae6d8a548 Merge branch 'stable' 2017-04-19 16:24:04 +02:00
Jean-Sébastien Pédron 7c49ebd90b Update erlang.mk 2017-04-19 12:06:07 +02:00
Michael Klishin 789198c03a Merge branch 'stable' 2017-04-02 22:04:32 +03:00
Michael Klishin 9d3d536d25 (c) year 2017-04-02 21:49:57 +03:00
Michael Klishin 2185f3c6c9 Update rabbitmq-components.mk 2017-02-11 23:29:44 +03:00
Michael Klishin 309a1b6c1f Update rabbitmq-components.mk 2017-02-10 11:16:46 +03:00
Michael Klishin d12e5094ed Update rabbitmq-components.mk 2017-02-10 03:06:40 +03:00
Michael Klishin 86b55601f1 merge branch 'stable' 2017-02-08 16:58:44 +03:00
Michael Klishin 0097a449a6 Update rabbitmq-components.mk 2017-02-08 16:38:26 +03:00
Michael Klishin 755c461ef7 Make sure we return a tuple of options here, references #25, #26 2017-02-08 11:53:20 +03:00
Michael Klishin 91a709538b Merge branch 'stable'
Conflicts:
	test/rabbit_web_dispatch_SUITE.erl
2017-02-07 13:24:26 +03:00
Loïc Hoguin da5f4ee0f0 Parse the ip option when provided as a string 2017-02-07 11:06:30 +01:00
Michael Klishin f556b2d733 merge branch 'stable' 2017-02-06 19:52:31 +03:00
Michael Klishin 25d436bef9 Update rabbitmq-components.mk 2017-02-06 19:24:05 +03:00
Jean-Sébastien Pédron 36915f9dee Update rabbitmq-components.mk 2017-02-02 17:17:25 +01:00
Michael Klishin 4321a94452 Merge branch 'stable'
Conflicts:
	Makefile
2017-02-01 14:15:57 +03:00
Michael Klishin 20181b74ed Make sure `inets` is listed as a (provided) dependency
Otherwise standalone Mac builds don't include it and the `httpd_util`
module isn't available.

Per discussion with @dumbbell.
2017-02-01 14:14:49 +03:00
Michael Klishin 2844a035d4 merge branch 'stable' 2017-01-31 18:20:29 +03:00
Michael Klishin fdd0a10d3b Update rabbitmq-components.mk 2017-01-31 18:06:39 +03:00
Jean-Sébastien Pédron c7029f604d Use `priv_file` and `priv_dir` cowboy_static options
Before, we computed the absolute path of a file inside an Erlang
application, and used the `file` and `dir` options of cowboy_static.

Now, we also handle the case where the file in the application (owning
the specified module) priv directory. In this case, we rely on the
`priv_file` and `priv_dir` options: cowboy_static will automatically
locate the application's `priv` directory and Do The Right Thing.

In the future, this will allow us to serve static files from Erlang
application .ez archives.

[#138338155]
2017-01-26 15:52:35 +01:00
Jean-Sébastien Pédron bcab5807bc Makefile: Remove Cowboy version pinning
There is a global pinning in rabbitmq-components.mk.
2017-01-25 17:01:15 +01:00
Jean-Sébastien Pédron 38e06ca052 Travis CI: Import changes from rabbitmq-auth-backend-amqp 2016-12-12 15:21:43 +01:00
Jean-Sébastien Pédron 7f36c86327 Merge branch 'stable' 2016-12-09 19:27:59 +01:00
Jean-Sébastien Pédron a4d7bcf136 Update rabbitmq-components.mk 2016-12-08 19:14:54 +01:00
Jean-Sébastien Pédron dfe4227046 Travis CI: Use Ubuntu Trusty image to have access to Elixir
Also, required `sudo` so a VM is used instead of a container. This makes
the test much longer, but allows us to install non-whitelisted packages
such as xsltproc.
2016-12-08 17:54:20 +01:00
Jean-Sébastien Pédron bafef76343 Merge branch 'stable' 2016-12-08 12:41:49 +01:00
Jean-Sébastien Pédron d53219936e rabbit_web_dispatch_registry: Fix variable shadowing
[#135706167]
2016-12-08 12:41:22 +01:00
Michael Klishin b4df1503a4 Merge branch 'stable' 2016-12-07 23:01:48 +03:00
Jean-Sébastien Pédron 04ce5464fd rabbit_web_dispatch_registry: Fix listener (un)registrations
... when a listener is bound to multiple IP addresses.

This is the case when a listener is configured to listen on all
interfaces, and IPv4's `0.0.0.0` and IPv6's `::` are reported
separately. It happens on *BSD and Linux with `net.ipv6.bindv6only=1` at
least.
2016-12-07 17:26:16 +01:00
Jean-Sébastien Pédron 07619d6935 Merge branch 'stable' 2016-12-07 16:07:27 +01:00
Jean-Sébastien Pédron 938b0d401c Move from .app.src to Makefile variables
This is the recommended way with Erlang.mk.

By default, the version is inherited from rabbitmq-server-release when
the source archive is created, or computed from git-describe(1) (see
`rabbitmq-components.mk`). One can override the version from the command
line by setting the `PROJECT_VERSION` variable.

[#130992027]
2016-12-06 17:01:55 +01:00
Michael Klishin 579503dc0b Merge branch 'stable' 2016-12-06 17:48:05 +03:00
Loïc Hoguin a51b59a3f9 Register Web listeners as TCP listeners 2016-12-06 13:23:42 +01:00
Michael Klishin 0dc8d46a7d Merge remote-tracking branch 'origin/rabbitmq-management-236' into stable
Merging to switch to Cowboy REST.
2016-11-30 16:19:09 +03:00
Michael Klishin 4c9901e356 Merge branch 'stable' 2016-11-29 21:21:49 +03:00
Michael Klishin 451ed80b45 Update rabbitmq-components.mk 2016-11-29 20:59:43 +03:00
Jean-Sébastien Pédron ea38718af7 Merge branch 'stable' 2016-11-25 11:50:48 +01:00
Jean-Sébastien Pédron 4db9fef90e Update rabbitmq-components.mk 2016-11-25 10:51:04 +01:00
Jean-Sébastien Pédron c659861c38 Merge branch 'stable' 2016-11-25 10:39:41 +01:00
Jean-Sébastien Pédron 373c2598e9 Update rabbitmq-components.mk 2016-11-25 10:08:25 +01:00
kjnilsson 633d9dc7bb Fix bad content-length on 404 responses 2016-11-24 15:32:07 +00:00
Jean-Sébastien Pédron 2ed6b91e43 Merge branch 'stable' into rabbitmq-management-236 2016-11-24 12:13:05 +01:00
Jean-Sébastien Pédron 1830124ce7 Merge branch 'stable' 2016-11-24 10:43:07 +01:00
Jean-Sébastien Pédron ea6cde2811 Add rabbitmq_ct_client_helpers to TEST_DEPS 2016-11-24 10:42:10 +01:00
Jean-Sébastien Pédron 279f8a86bd Update rabbitmq-components.mk 2016-11-23 18:06:09 +01:00
Gerhard Lazu 3a754f93ba Merge branch 'stable' 2016-11-22 17:04:38 +00:00
Gerhard Lazu 04ae34cb38 Update erlang.mk 2016-11-22 16:20:45 +00:00
Gerhard Lazu 08da25272e Update rabbitmq-components.mk 2016-11-22 16:16:45 +00:00
Loïc Hoguin 83b2f26ca7 Fix bad content-length on 404 responses 2016-11-15 18:09:34 +02:00
Jean-Sébastien Pédron 79cfabd2b3 Update erlang.mk 2016-11-14 11:59:28 +01:00
Jean-Sébastien Pédron 459e450bb5 Update rabbitmq-components.mk 2016-11-10 16:56:57 +01:00
Loïc Hoguin 5830d54f54 Switch JSON library to JSX 2016-11-08 14:27:42 +02:00
Jean-Sébastien Pédron 72b4930a79 Merge branch 'stable' 2016-09-27 16:36:21 +02:00
Jean-Sébastien Pédron 3d80feb9c5 Merge branch 'stable' into rabbitmq-management-236 2016-09-27 16:36:08 +02:00
Jean-Sébastien Pédron d67d90639f rabbit_web_dispatch_SUITE: Run teardown steps at the end of the suite
Also, send notification for testcase start/end.
2016-09-27 16:35:00 +02:00
Jean-Sébastien Pédron 76c64caa50 Merge branch 'stable' into rabbitmq-management-236 2016-09-27 16:23:49 +02:00
Jean-Sébastien Pédron f8ace52fd5 rabbit_web_dispatch_SUITE: Start inets where we need it
Before this patch, inets was started during the suite setup on the
common_test control node, but we used it on the started broker. This
remained unnoticed while the plugin was based on webmachine and mochiweb
which started inets too.

After the move to Cowboy, inets is not started anymore on the broker so
we need to explicitely start it.
2016-09-27 16:21:51 +02:00
Jean-Sébastien Pédron 9d7f649d42 Merge branch 'stable' into rabbitmq-management-236 2016-09-27 12:48:25 +02:00
Jean-Sébastien Pédron 1adc815104 Merge branch 'stable' 2016-09-23 16:32:46 +02:00
Jean-Sébastien Pédron 08c4e72761 Update rabbitmq-components.mk 2016-09-23 11:23:11 +02:00
Jean-Sébastien Pédron e281b67779 Update erlang.mk 2016-09-22 17:57:20 +02:00
Jean-Sébastien Pédron 5943c36c94 rabbitmq_web_dispatch.app: Depend on rabbit_common and rabbit 2016-09-20 12:59:42 +02:00
Jean-Sébastien Pédron b6d713c2b6 Makefile: Explicitely list all DEPS
Sync rabbitmq-components.mk with rabbitmq-common to remove automatic
DEPS handling.

[#130086871]
2016-09-20 12:59:22 +02:00
Jean-Sébastien Pédron 3880629ab5 Update erlang.mk 2016-09-20 12:57:03 +02:00
Jean-Sébastien Pédron 3db68f5948 Merge branch 'stable' 2016-09-15 16:44:04 +02:00
Jean-Sébastien Pédron 907f920881 Update rabbitmq-components.mk 2016-09-15 15:48:03 +02:00
Jean-Sébastien Pédron a7fd9e0eda Merge branch 'stable' 2016-09-07 09:49:43 +02:00
Jean-Sébastien Pédron f20faa8405 Travis CI: Test on Erlang 19.0 2016-09-07 09:49:16 +02:00
Michael Klishin d108058e5d Cosmetics
(cherry picked from commit 11fef3d53d700d457133231fbf4a80d76b63e1b6)
2016-09-06 10:37:59 +02:00
Loïc Hoguin 2ecd4ae119 Fix duplicate content-type in error responses
(cherry picked from commit faf8e494c6b92c7ea8784a58afbecacbe8f16110)
2016-09-06 10:37:59 +02:00
Loïc Hoguin b69f639bfe Enable automatic compression by default
(cherry picked from commit 31c72b55b4d9ba3f10246c46bffd67a79db37d7a)
2016-09-06 10:37:59 +02:00
Loïc Hoguin 3a4dc487f8 Allow configuring Cowboy options with cowboy_opts
Similar to RabbitMQ-Web-STOMP. Allows users to configure the
management plugin to return compressed responses.

(cherry picked from commit 98589f2af7ef0508b90562454d3b04fd263743bc)
2016-09-06 10:37:59 +02:00
Jean-Sébastien Pédron d8297761f8 Makefile: Add Ranch as a BUILD_DEPS to be sure Ranch 1.2.1 is pulled
(cherry picked from commit 339fca6c67ddd694cfa4bddcfffb710316d9cbc5)
2016-09-06 10:37:52 +02:00
Loïc Hoguin 8368cfa701 Use Cowboy instead of Webmachine/Mochiweb for Web plugins
As part of a push to reduce the number of dependencies from the
RabbitMQ project, the management plugin needed to be converted
from Webmachine to Cowboy REST. This plugin provides a convenient
interface to listeners, which had to be converted from Mochiweb's
to Cowboy's also.

Because Cowboy does not have any logging built-in we keep
Webmachine's access logger for now. It has been adapted to use
data coming from Cowboy, as opposed to Mochiweb. The event handler
for logging has also been moved to web dispatch.

The main breaking change in the interface is that contexts do not
take a fun for the main loop anymore, but instead take a dispatch
list of the routes to be served by that context. Routes must be
compiled using cowboy_router:compile(Routes), and will be served
with the context prefix appended.

Some contexts do not require any code change, including the static
contexts and port redirect contexts.

To serve many applications, we use a Cowboy middleware specific
to RabbitMQ which, when receiving a request, checks in the registry
if there is a matching application, and use its dispatch list for
any subsequent operations.

(cherry picked from commit b8b8c06dd2af6034a47372c4b53215d54017c546)
2016-09-06 10:36:53 +02:00
Jean-Sébastien Pédron c4051d0ef0 Merge branch 'stable' 2016-09-02 16:10:49 +02:00
Jean-Sébastien Pédron 163d3d96b3 Update rabbitmq-components.mk 2016-09-02 13:22:28 +02:00
Jean-Sébastien Pédron 076049c6bf Update rabbitmq-components.mk 2016-09-02 12:03:33 +02:00
kjnilsson 25e16c7d69 flter out rabbitmq-test from TEST_DEPS 2016-07-18 11:51:18 +01:00
Michael Klishin 73cdbe50b7 Update rabbitmq-components.mk 2016-07-14 15:44:15 +03:00
Michael Klishin a3ef3b09b9 Update rabbitmq-components.mk 2016-07-14 15:37:37 +03:00
Michael Klishin d08c6a308c Update rabbitmq-components.mk 2016-07-14 13:47:59 +03:00
Michael Klishin 3ef2974adc Update rabbitmq-components.mk 2016-07-14 13:20:05 +03:00
Michael Klishin 914487360a Merge branch 'stable' 2016-06-25 00:21:18 +03:00
kjnilsson dbdef107ba remove some unused code
add travis config
2016-06-22 16:40:38 +01:00
Michael Klishin 4980c63121 Switch test suite to Common Test 2016-06-21 22:46:46 +03:00
Michael Klishin e5a92a27fd Merge branch 'stable' 2016-05-29 23:37:06 +03:00
Michael Klishin 9e1a04a2ac Update rabbitmq-components.mk 2016-05-29 23:21:57 +03:00
Michael Klishin 48244d0177 Update CONTRIBUTING.md, add CODE_OF_CONDUCT.md 2016-05-28 09:57:13 -07:00
Michael Klishin c7dcd38b69 Update CONTRIBUTING.md, add CODE_OF_CONDUCT.md 2016-05-28 14:22:51 +03:00
kjnilsson cec1c5f139 Merge branch 'stable' 2016-05-18 13:22:06 +01:00
Karl Nilsson 30ade813cd Update rabbitmq-components.mk 2016-05-18 12:48:02 +01:00
Michael Klishin c999fce80b Merge pull request #15 from rabbitmq/rabbitmq-server-546
Use erlang 18.3 only in travis
2016-05-17 12:05:54 +03:00
Michael Klishin 96b9a8054f Update rabbitmq-components.mk 2016-05-17 11:17:55 +03:00
Michael Klishin 3001c70c6b Update rabbitmq-components.mk 2016-05-17 10:16:11 +03:00
Daniil Fedotov f55b654a43 Use erlang 18.3 only in travis 2016-05-12 10:58:25 +01:00
Daniil Fedotov 2cea12951d Merge pull request #11 from rabbitmq/rabbitmq-web-dispatch-10
Fix duplicate content-type in error responses
2016-04-28 17:12:11 +01:00
Daniil Fedotov 2de3e615f4 Remove content-encoding header from error responses 2016-04-28 16:07:42 +01:00
Daniil Fedotov ea86cb2a38 Stub for broker version requirements 2016-04-22 15:04:09 +01:00
Michael Klishin be2a2f3c0e Merge branch 'stable' 2016-03-23 17:21:05 +03:00
Michael Klishin d02f337769 Update rabbitmq-components.mk 2016-03-23 17:13:43 +03:00
Michael Klishin c1ffea72e4 Cosmetics 2016-03-19 05:15:32 +03:00
Michael Klishin dccefda4ef Compile from scratch 2016-03-18 19:17:09 +00:00
Loïc Hoguin cb82930ae3 Fix duplicate content-type in error responses 2016-03-14 13:34:30 +01:00
Loïc Hoguin 40e983b68b Enable automatic compression by default 2016-03-14 13:23:59 +01:00
Loïc Hoguin c3adf2ddf7 Remove any content-encoding header from error responses 2016-03-14 12:24:17 +01:00
Loïc Hoguin 0d41a7d1db Allow configuring Cowboy options with cowboy_opts
Similar to RabbitMQ-Web-STOMP. Allows users to configure the
management plugin to return compressed responses.
2016-03-11 12:54:32 +01:00
Michael Klishin 8cf741ea7a Merge pull request #7 from rabbitmq/rabbitmq-server-483
Test that Web Dispatch logs source IP address and path
2016-01-05 19:02:29 +03:00
Joseph Yiasemides 10022118e3 Change path to the Web Dispatch log file for the test
Write log file for HTTP requests/responses to the canonical directory
(when testing). This is set when the test set is run.
2016-01-05 11:26:22 +01:00
Joseph Yiasemides 7b79712478 Test that a given status is logged 2016-01-05 11:16:37 +01:00
Jean-Sébastien Pédron a74650b73d Makefile: Add Ranch as a BUILD_DEPS to be sure Ranch 1.2.1 is pulled 2016-01-05 10:50:49 +01:00
Joseph Yiasemides 4cd8d43376 Test that Web Dispatch logs source IP address and path
This is general enough to test Web Dispatch with every application
that does logging as it's done here. Indeed, the Management plugin
does log like this, so this closes #483.
2016-01-04 16:23:15 +01:00
Michael Klishin 5f0f018e3a Merge branch 'stable' 2016-01-01 13:23:41 +03:00
Michael Klishin ec684d2b8e Update (c) info 2016-01-01 12:59:19 +03:00
Michael Klishin f4e2c46e09 Merge pull request #4 from rabbitmq/rabbitmq-management-63
Use Cowboy instead of Webmachine/Mochiweb for Web plugins
2015-12-29 09:00:43 +03:00
Pierre Fenoll 1c718f6b82 .gitignore: make absolute paths relative 2015-12-28 11:06:32 +01:00
Loïc Hoguin cfc4631f64 Use Cowboy instead of Webmachine/Mochiweb for Web plugins
As part of a push to reduce the number of dependencies from the
RabbitMQ project, the management plugin needed to be converted
from Webmachine to Cowboy REST. This plugin provides a convenient
interface to listeners, which had to be converted from Mochiweb's
to Cowboy's also.

Because Cowboy does not have any logging built-in we keep
Webmachine's access logger for now. It has been adapted to use
data coming from Cowboy, as opposed to Mochiweb. The event handler
for logging has also been moved to web dispatch.

The main breaking change in the interface is that contexts do not
take a fun for the main loop anymore, but instead take a dispatch
list of the routes to be served by that context. Routes must be
compiled using cowboy_router:compile(Routes), and will be served
with the context prefix appended.

Some contexts do not require any code change, including the static
contexts and port redirect contexts.

To serve many applications, we use a Cowboy middleware specific
to RabbitMQ which, when receiving a request, checks in the registry
if there is a matching application, and use its dispatch list for
any subsequent operations.
2015-12-21 18:05:36 +01:00
Jean-Sébastien Pédron 706a3388d2 Update erlang.mk 2015-12-18 20:34:37 +01:00
Jean-Sébastien Pédron a053362992 Sync with upstream build.config 2015-12-18 20:33:04 +01:00
Jean-Sébastien Pédron a8c5b0c131 Update rabbitmq-components.mk 2015-12-18 19:08:10 +01:00
Michael Klishin deaf041986 Update rabbitmq-components.mk 2015-12-18 19:49:32 +03:00
Jean-Sébastien Pédron 73913979af Update rabbitmq-components.mk 2015-12-03 15:38:50 +01:00
Jean-Sébastien Pédron 72d5c58cbc Update rabbitmq-components.mk 2015-12-01 18:36:23 +01:00
Jean-Sébastien Pédron e3a41596ee Update rabbitmq-components.mk 2015-12-01 16:17:20 +01:00
Jean-Sébastien Pédron c5002d6dad Update rabbitmq-components.mk 2015-11-30 09:12:56 +01:00
Jean-Sébastien Pédron 3ceef444a3 Update rabbitmq-components.mk 2015-11-26 08:54:12 +01:00
Jean-Sébastien Pédron 2ed3d20dea Update rabbitmq-components.mk 2015-11-26 08:41:24 +01:00
Jean-Sébastien Pédron a6e3dec97a Update erlang.mk 2015-11-25 10:36:24 +01:00
Jean-Sébastien Pédron c4eef007ff Update rabbitmq-components.mk 2015-11-25 10:35:24 +01:00
Jean-Sébastien Pédron 12db6dd6ed Update rabbitmq-components.mk 2015-11-20 10:52:06 +01:00
Jean-Sébastien Pédron e0bb6e0a9c Update erlang.mk 2015-11-19 14:32:12 +01:00
Jean-Sébastien Pédron 37c30bef65 Update erlang.mk 2015-11-18 19:14:56 +01:00
Jean-Sébastien Pédron c3ec1ab07d Update erlang.mk 2015-11-18 17:40:38 +01:00
Jean-Sébastien Pédron 87d1576319 Update erlang.mk 2015-11-10 13:12:40 +01:00
Jean-Sébastien Pédron 7d787679f8 Update rabbitmq-components.mk 2015-11-10 13:11:18 +01:00
Jean-Sébastien Pédron ddb30accfe Update rabbitmq-components.mk 2015-11-05 20:51:35 +00:00
Jean-Sébastien Pédron ed09eb29fb Update rabbitmq-components.mk 2015-11-03 15:12:31 +01:00
Jean-Sébastien Pédron 838fe64b75 Update rabbitmq-components.mk 2015-11-02 10:20:52 +01:00
Jean-Sébastien Pédron 42662defed Update rabbitmq-components.mk 2015-10-30 17:32:57 +01:00
Jean-Sébastien Pédron 1b5ad292a7 Update erlang.mk 2015-10-28 11:16:24 +01:00
Jean-Sébastien Pédron 85728e9b1a Update rabbitmq-components.mk 2015-10-28 11:10:38 +01:00
Jean-Sébastien Pédron 08f1ed64cb Update erlang.mk 2015-10-26 15:33:50 +01:00
Jean-Sébastien Pédron 90d42587de Update rabbitmq-components.mk 2015-10-26 11:15:36 +01:00
Jean-Sébastien Pédron 45b2250daa Update rabbitmq-components.mk 2015-10-26 10:21:26 +01:00
Jean-Sébastien Pédron f6618d8b99 No need to set -Dpre17_type_specs
This was needed in SockJS instead.
2015-10-23 23:34:50 +02:00
Jean-Sébastien Pédron 4a07f44a30 Define pre17_type_specs when using Erlang R16B 2015-10-23 20:56:12 +02:00
Jean-Sébastien Pédron 15386fe5f0 rabbit_web_dispatch_test: Fix relative path to docroot 2015-10-23 20:38:22 +02:00
Jean-Sébastien Pédron 129a4c98be Add amqp_client as a test dependency 2015-10-23 20:38:01 +02:00
Jean-Sébastien Pédron 3977695237 Update erlang.mk's build.config 2015-10-23 20:32:21 +02:00
Jean-Sébastien Pédron 95ec6f7fc6 Adapt .travis.yml to erlang.mk 2015-10-23 20:12:44 +02:00
Jean-Sébastien Pédron 8dbd3b846c Update erlang.mk 2015-10-23 18:33:16 +02:00
Jean-Sébastien Pédron 1c9285d32f Update rabbitmq-components.mk 2015-10-23 16:05:51 +02:00
Jean-Sébastien Pédron bfc9450628 Update erlang.mk 2015-10-22 18:34:58 +02:00
Jean-Sébastien Pédron 9f6fe091c6 Update rabbitmq-components.mk 2015-10-19 17:35:45 +02:00
Jean-Sébastien Pédron b573d849cb Update erlang.mk 2015-10-19 17:12:56 +02:00
Jean-Sébastien Pédron f8376d25ea Update rabbitmq-components.mk 2015-10-19 17:11:42 +02:00
Jean-Sébastien Pédron 8c2955e081 Update rabbitmq-components.mk 2015-10-16 18:04:03 +02:00