Commit 682975f98c60483acc213675db125e43b3ba7af8
1 parent
0bac8554
Exists in
master
Resolvido problema onde implementações concretas de
AbstractStaticContext armazenavam beans em uma mesma store (cada implementação deveria representar uma store separada).
Showing
1 changed file
with
11 additions
and
2 deletions
Show diff stats
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/AbstractStaticContext.java
... | ... | @@ -37,6 +37,9 @@ |
37 | 37 | package br.gov.frameworkdemoiselle.internal.context; |
38 | 38 | |
39 | 39 | import java.lang.annotation.Annotation; |
40 | +import java.util.Collections; | |
41 | +import java.util.HashMap; | |
42 | +import java.util.Map; | |
40 | 43 | |
41 | 44 | import br.gov.frameworkdemoiselle.annotation.Priority; |
42 | 45 | import br.gov.frameworkdemoiselle.annotation.StaticScoped; |
... | ... | @@ -58,7 +61,7 @@ import br.gov.frameworkdemoiselle.configuration.Configuration; |
58 | 61 | @Priority(Priority.MIN_PRIORITY) |
59 | 62 | public abstract class AbstractStaticContext extends AbstractCustomContext { |
60 | 63 | |
61 | - private final static Store store = createStore(); | |
64 | + private final static Map<String, Store> staticStore = Collections.synchronizedMap(new HashMap<String, Store>()); | |
62 | 65 | |
63 | 66 | /** |
64 | 67 | * Constructs this context to control the provided scope |
... | ... | @@ -69,11 +72,17 @@ public abstract class AbstractStaticContext extends AbstractCustomContext { |
69 | 72 | |
70 | 73 | @Override |
71 | 74 | protected Store getStore() { |
75 | + Store store = staticStore.get( this.getClass().getCanonicalName() ); | |
76 | + if (store==null){ | |
77 | + store = createStore(); | |
78 | + staticStore.put(this.getClass().getCanonicalName(), store); | |
79 | + } | |
80 | + | |
72 | 81 | return store; |
73 | 82 | } |
74 | 83 | |
75 | 84 | @Override |
76 | 85 | protected boolean isStoreInitialized() { |
77 | - return store!=null; | |
86 | + return staticStore!=null; | |
78 | 87 | } |
79 | 88 | } | ... | ... |