[
https://issues.apache.org/jira/browse/LANG-702?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13040842#comment-13040842
]
Matt Benson commented on LANG-702:
----------------------------------
This looks like a nice little set of classes to me, and yes, not wholly unlike
some of the things we have in [lang]. On the other hand, the "customizable
summation strategy" aspect of this makes me think of a redesigned version that
could live in the [functor] component (which is still in the sandbox, but is
really about ready to graduate).
What is the typical pattern for making use of the {{.get()}} results? I would
have expected to see e.g. {{onFlush(callback)}} which would allow the
summarizer to take some action on each timed flush operation. A redesign in
[functor] could specify {{onFlush(UnaryProcedure<T>)}} for this. Also, the
subclassing aspect would be unnecessary in [functor] because the 'summation'
could be supplied externally in the form of a {{BinaryFunction<? super T, ?
super T, ? extends T>}}. IMO removing the subclassing necessity would be quite
cool, and I would add such a rewritten version of this to [functor] in a second.
Regards,
Matt
> New component for lang -- summarizer
> ------------------------------------
>
> Key: LANG-702
> URL: https://issues.apache.org/jira/browse/LANG-702
> Project: Commons Lang
> Issue Type: New Feature
> Components: General
> Affects Versions: 3.0
> Reporter: Liviu Tudor
> Priority: Minor
> Labels: features, newbie
> Fix For: 3.x
>
> Attachments: patch_summarizer.diff
>
>
> Hi, I'm creating this as a patch request but I guess really initially I
> wanted to verify with everyone that commons lang is the place for this class
> hierarchy I'm proposing -- and if not please suggest whether it would be more
> appropriate to submit this to collections or one of the other Commons
> projects. (Or I accept as well the fact that it might not be good enough for
> any of the commons projects in which case please just let me know so I won't
> try to create new issues around this in the future.)
> Basically I've come across a pattern I find myself using a lot in my
> applications where I want a quick (and not so dirty) way of monitoring
> certain things in the application -- for instance, I want as a quick
> healthcheck a page to tell me how many requests we process over a 1 minute
> interval or so. While one can implement complex monitoring systems to achieve
> the same, a lot of the times, simply the fact that the number of successful
> transactions per minute goes down to 50% (after an application upgrade for
> instance) is a clear indicator to me that something isn't right so I can
> start investigating straight away and not wait for our monitoring systems to
> kick in one hour later or so and alert us of this. As such I have developed
> this component which I have called "Summarizer" (purely as my initial request
> was just to sum up some numbers over a period of time and reset it regularly
> -- but as my javadoc comments state, of course this doesn't have to be a
> simple arithmetic sum and can be extended to other operations). The diff I'm
> proposing here contains the base class and an example of the class using
> integers which just sums them up -- which is as I said the kind of
> implementation that I have found myself implementing a lot in my apps. I
> appreciate that the classes are not completely finished and there are no unit
> tests yet -- and that is because as I said at this stage I am trying to
> figure out whether this component would fit into the Commons Lang component
> or it would be more appropriate to commit this somewhere else.
> I would appreciate your input/comments on this so I know whether i'm on the
> right track on committing this here or should I move it elsewhere; I accept
> that perhaps the package names and the class names are not the best, and am
> willing to discuss with your main committers around this -- if this proves to
> be a valid component for commons.
> If you decide this is a good idea to proceed with then I can start adding
> unit tests and more comments/javadocs around it to make this into a usable
> class hierarchy.
> As suggested by your FAQ's I've created a diff from the root of the folder --
> if it helps more if I just provide the 2 classes I can do so too -- just let
> me know and I can send you a zip with the 2 classes alone or so.
> Looking forward to your comments on this,
> Liv
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira