[ 
https://issues.apache.org/jira/browse/PIVOT-743?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13034988#comment-13034988
 ] 

Greg Brown commented on PIVOT-743:
----------------------------------

Fixing the classloader issue is probably worth doing, but I'm still not clear 
on what problem eliminating the use of static fields would solve.


> pivot & static
> --------------
>
>                 Key: PIVOT-743
>                 URL: https://issues.apache.org/jira/browse/PIVOT-743
>             Project: Pivot
>          Issue Type: Improvement
>    Affects Versions: 2.0
>            Reporter: Andrei Pozolotin
>             Fix For: 2.1
>
>
> Greg, hello:
> 1) in this example you say:
> http://pivot.apache.org/tutorials/list-buttons.html
> "Note that this example makes use of the global resource cache to store the 
> loaded images."
> 2) which reminds of the "java evil singleton pattern"
> http://java.sun.com/developer/technicalArticles/Programming/singletons/
> http://www.ibm.com/developerworks/webservices/library/co-single/index.html
> http://beust.com/weblog/2011/03/10/rehabilitating-the-singleton-pattern/
> http://tech.puredanger.com/2007/07/03/pattern-hate-singleton/
> and the consensus seems to be: 
> "Singletons are fine as long as you don't implement them with static" 
> 3) and pivot uses them freely; few examples
> public abstract class ApplicationContext {
>     protected static ArrayList<Display> displays = new ArrayList<Display>();
>     protected static ArrayList<Application> applications = new 
> ArrayList<Application>();
>     private static HashMap<URI, Object> resourceCache = new HashMap<URI, 
> Object>();
>     private static ResourceCacheDictionary resourceCacheDictionary = new 
> ResourceCacheDictionary();
> public abstract class Theme {
>     private static Theme theme = null;
> 4) do you think is it feasible to convert all of pivot into SPI:
>               ServiceLoader<PivotFrameworkFactory> loader = 
> ServiceLoader.load(PivotFrameworkFactory.class);
>               PivotFrameworkFactory factory = loader.iterator().next();
>               Map<String, Object> config = new HashMap<String, Object>();
>               PivotFramework framework = factory.newFramework(config);
> 5) the two use cases that affect me now:
> a) applet reload shares static
> b) pivot + osgi (not sure yet if I can find a workaround; possibly depends on 
> what you do about PIVOT-742 PIVOT-22)
> thank you;
> Andrei

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to