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

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

> I verified this page...and confirmed that "counter still goes up"

That is the correct behavior. As you note below, when applets share a common VM 
instance and classloader, all static values are also shared.

> the perferred way you use to start all your pivot apps...which is so called 
> "legacy plugin mode", will share all static fields between applet invocations

There is no "preferred" way to start Pivot applets. You are free to use the 
separate_jvm parameter if you want.

Also, to my knowledge, there is no such thing as "legacy" plugin mode. If you 
set separate_jvm to true, the plugin should create a separate JVM instance, 
though it may not. If you omit separate_jvm or set it to false, you get a 
shared VM. Both modes are supported by the plugin and by the Pivot runtime.



> 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