You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "James Sawle (JIRA)" <ji...@apache.org> on 2014/10/11 00:36:34 UTC

[jira] [Updated] (LANG-740) Add a Memoizer class

     [ https://issues.apache.org/jira/browse/LANG-740?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James Sawle updated LANG-740:
-----------------------------
    Attachment: LANG-740.patch

This is a proposed implementation of the Memoizer class for discussion. If agreed then tests will be generated.

The class differs from the implementation by Goetz et al. by allowing the setting of whether failed computations should be cached. This is mentioned as a note in the book. The default behaviour is cache the values.

All checked exceptions thrown by a  given calculation are wrapped as unchecked IllegalStateExceptions, this is to allow for as lightweight an implementation as possible. A checked Exception could be generated as a wrapper for the Computable interface, and then used within the Memoizer as an alternative.

Any comments welcome.

> Add a Memoizer class
> --------------------
>
>                 Key: LANG-740
>                 URL: https://issues.apache.org/jira/browse/LANG-740
>             Project: Commons Lang
>          Issue Type: New Feature
>          Components: lang.concurrent.*
>            Reporter: Gary Gregory
>            Assignee: Gary Gregory
>             Fix For: Patch Needed
>
>         Attachments: LANG-740.patch
>
>
> I am currently using a class like the Memoizer class [1] from "Java
> Concurrency in Practice" [2], a great book.
> It would fit perfectly in org.apache.commons.lang3.concurrent.
> [1] http://jcip.net/listings/Memoizer.java
> [2] http://jcip.net/
> There is no licensing issue because the code is in the public domain:
> {noformat}
> ---------- Forwarded message ----------
> From: Brian Goetz <br...@briangoetz.com>
> Date: Tue, Aug 9, 2011 at 5:40 PM
> Subject: Re: Apache Commons Lang and Memoizer
> To: Gary Gregory <gg...@apache.org>, Tim Peierls <ti...@peierls.net>
> No license issues -- the code is in the public domain:
>    Written by Brian Goetz and Tim Peierls with assistance from members of
>    JCP JSR-166 Expert Group and released to the public domain, as explained at
>    http://creativecommons.org/licenses/publicdomain
> Code for the samples can be downloaded from http://www.jcip.net/listings.html.
> Cheers,
> -Brian
> On 8/9/2011 5:38 PM, Gary Gregory wrote:
> >
> > Hi Brian,
> >
> > I would like to include a Memoizer in the next release of Apache
> > Commons Lang [1].
> >
> > Can we use the Memoizer pattern from "Java Concurrency in Practice"? I
> > think I would reuse the code from the class Memoizer and change names,
> > things like that.
> >
> > We are talking about this on the Lang mailing list and are wondering
> > if there are any licensing issues.
> >
> > [1] https://commons.apache.org/lang/
> >
> -- 
> Thank you,
> Gary
> http://garygregory.wordpress.com/
> http://garygregory.com/
> http://people.apache.org/~ggregory/
> http://twitter.com/GaryGregory
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)