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

Tomo Suzuki updated BCEL-321:
-----------------------------
    Description: 
(After implementing [BCEL-320|https://issues.apache.org/jira/browse/BCEL-320])

BCEL has different ClassPathRepository classes with slight modification in its 
underlying cache:

* ClassPathRepository uses HashMap<String, JavaClass> for JavaClass cache
* MemorySensitiveClassPathRepository uses HashMap<String, 
SoftReference<JavaClass>
* BCEL-320 will use LinkedHashMap<String, JavaClass> for JavaClass cache

The logic of loadClass, storeClass, and findClass methods are almost same. I 
think they can leverage an abstraction over the internal cache so that they 
will have less duplicate code.


After BCEL-320, I'm thinking to create a PR for the abstraction.

  was:
(After implementing [BCEL-320|https://issues.apache.org/jira/browse/BCEL-320])

BCEL has different ClassPathRepository classes with slight modification in its 
underlying cache:

* ClassPathRepository uses HashMap<String, JavaClass> for JavaClass cache
* MemorySensitiveClassPathRepository uses HashMap<String, 
SoftReference<JavaClass>
* BCEL-320 will use LinkedHashMap<String, JavaClass> for JavaClass cache


I think they can leverage an abstraction over the internal cache.


After BCEL-320, I'm thinking to create a PR for the abstraction.


> Subclasses of ClassPathRepository only differ by its underlying cache?
> ----------------------------------------------------------------------
>
>                 Key: BCEL-321
>                 URL: https://issues.apache.org/jira/browse/BCEL-321
>             Project: Commons BCEL
>          Issue Type: Improvement
>            Reporter: Tomo Suzuki
>            Priority: Minor
>         Attachments: classpathrepository_code_duplicate.png
>
>
> (After implementing [BCEL-320|https://issues.apache.org/jira/browse/BCEL-320])
> BCEL has different ClassPathRepository classes with slight modification in 
> its underlying cache:
> * ClassPathRepository uses HashMap<String, JavaClass> for JavaClass cache
> * MemorySensitiveClassPathRepository uses HashMap<String, 
> SoftReference<JavaClass>
> * BCEL-320 will use LinkedHashMap<String, JavaClass> for JavaClass cache
> The logic of loadClass, storeClass, and findClass methods are almost same. I 
> think they can leverage an abstraction over the internal cache so that they 
> will have less duplicate code.
> After BCEL-320, I'm thinking to create a PR for the abstraction.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to