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,6 +37,9 @@ | ||
| 37 | package br.gov.frameworkdemoiselle.internal.context; | 37 | package br.gov.frameworkdemoiselle.internal.context; |
| 38 | 38 | ||
| 39 | import java.lang.annotation.Annotation; | 39 | import java.lang.annotation.Annotation; |
| 40 | +import java.util.Collections; | ||
| 41 | +import java.util.HashMap; | ||
| 42 | +import java.util.Map; | ||
| 40 | 43 | ||
| 41 | import br.gov.frameworkdemoiselle.annotation.Priority; | 44 | import br.gov.frameworkdemoiselle.annotation.Priority; |
| 42 | import br.gov.frameworkdemoiselle.annotation.StaticScoped; | 45 | import br.gov.frameworkdemoiselle.annotation.StaticScoped; |
| @@ -58,7 +61,7 @@ import br.gov.frameworkdemoiselle.configuration.Configuration; | @@ -58,7 +61,7 @@ import br.gov.frameworkdemoiselle.configuration.Configuration; | ||
| 58 | @Priority(Priority.MIN_PRIORITY) | 61 | @Priority(Priority.MIN_PRIORITY) |
| 59 | public abstract class AbstractStaticContext extends AbstractCustomContext { | 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 | * Constructs this context to control the provided scope | 67 | * Constructs this context to control the provided scope |
| @@ -69,11 +72,17 @@ public abstract class AbstractStaticContext extends AbstractCustomContext { | @@ -69,11 +72,17 @@ public abstract class AbstractStaticContext extends AbstractCustomContext { | ||
| 69 | 72 | ||
| 70 | @Override | 73 | @Override |
| 71 | protected Store getStore() { | 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 | return store; | 81 | return store; |
| 73 | } | 82 | } |
| 74 | 83 | ||
| 75 | @Override | 84 | @Override |
| 76 | protected boolean isStoreInitialized() { | 85 | protected boolean isStoreInitialized() { |
| 77 | - return store!=null; | 86 | + return staticStore!=null; |
| 78 | } | 87 | } |
| 79 | } | 88 | } |