[ https://issues.apache.org/jira/browse/PIVOT-743?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13034733#comment-13034733 ]
Greg Brown commented on PIVOT-743: ---------------------------------- The static fields are there by design. Some of them, like the Display list, are used specifically to support applets. The issues you describe could very easily be due to the plugin implementation on Linux. Pivot does not use any native code and so should run the same on all JVM implementations. > 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