pivot-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Greg Brown (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PIVOT-743) pivot & static
Date Tue, 17 May 2011 15:07:50 GMT

    [ 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

View raw message