Skip to content

Extension-friendly HttpSource#18

Open
lucarosellini wants to merge 2 commits intoapache:trunkfrom
keedio:customizable_httpsource
Open

Extension-friendly HttpSource#18
lucarosellini wants to merge 2 commits intoapache:trunkfrom
keedio:customizable_httpsource

Conversation

@lucarosellini
Copy link
Copy Markdown

This patch allows third-party to developers extend HttpSource behavior easily, without having to reimplement the whole thing.

More specifically:

  • Adds an hook to customize org.mortbay.jetty.servlet.Context.
  • Delegates the HttpServlet instance creation to a protected factory method.
  • Changes FlumeHttpServlet visibility to protected, to let third party developers extend from it.
  • Adds an hook in FlumeHTTPServlet to customize HttpServletResponse before it is flushed.

We developed this patch because we had to add a custom servlet filter to the Jetty context.

Having this patch applied, a third-party developer could easily extend HttpSource like this:

public class CustomHTTPSource extends HTTPSource {

    @Override
    protected void customizeServletContext(Context context) {
        super.customizeServletContext(context);

        context.addFilter(MyCustomHttpServletFilter.class,"/*",0);
    }

    @Override
    protected HttpServlet getServlet() {
        return new KeedioFlumeHTTPServlet();
    }

    protected class KeedioFlumeHTTPServlet extends FlumeHTTPServlet{
        @Override
        protected void customizeServletResponse(HttpServletRequest request, HttpServletResponse response) {
            super.customizeServletResponse(request, response);

            response.addHeader("Accept-Encoding","...");
        }
    }
} 

@harishreedharan
Copy link
Copy Markdown
Contributor

We don't accept pull requests. Could you please attach the patch to a jira here: https://issues.apache.org/jira/browse/FLUME ? Thanks!

@lucarosellini
Copy link
Copy Markdown
Author

@harishreedharan attached the patch to a new jira issue: https://issues.apache.org/jira/browse/FLUME-2782

@lucarosellini
Copy link
Copy Markdown
Author

Hi @harishreedharan, did you have the chance to take a look at this?

@harishreedharan
Copy link
Copy Markdown
Contributor

This fell of my radar. Sorry! I will look at this next week.

hejiang2000 added a commit to hejiang2000/flume that referenced this pull request Jun 19, 2018
* initial

* +

* =

* +

* *

* +

* PassiveHttpSink passed unit tests

* 支持 内容头字符,尾字符,事件分隔符。

* format style
@asfgit
Copy link
Copy Markdown

asfgit commented Aug 17, 2018

Can one of the admins verify this patch?

waidr pushed a commit to waidr/flume that referenced this pull request Jul 24, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants