From 8878af60cc96ffcf24480312c530d1c171f8b695 Mon Sep 17 00:00:00 2001 From: Cleverson Sacramento Date: Mon, 12 Aug 2013 09:49:36 -0300 Subject: [PATCH] Redução no acoplamento entre o external e o internal. --- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AbstractLifecycleBootstrap.java | 14 +++++++------- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/CoreBootstrap.java | 13 ++++++------- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/ContextManager.java | 7 +++---- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AnnotatedMethodProcessor.java | 11 +++++------ impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/DefaultAuthenticator.java | 7 ++++--- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/DefaultAuthorizer.java | 7 ++++--- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/DefaultTransaction.java | 7 ++++--- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/MessageContextImpl.java | 18 +++++++++--------- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityContextImpl.java | 15 ++++++++++++--- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/StrategySelector.java | 20 ++++++++++---------- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/producer/ResourceBundleProducer.java | 6 ++++-- impl/core/src/main/resources/demoiselle-core-bundle.properties | 1 - 12 files changed, 68 insertions(+), 58 deletions(-) diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AbstractLifecycleBootstrap.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AbstractLifecycleBootstrap.java index a441fbd..f8a0634 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AbstractLifecycleBootstrap.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AbstractLifecycleBootstrap.java @@ -41,7 +41,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; -import java.util.Locale; import javax.enterprise.context.ConversationScoped; import javax.enterprise.context.RequestScoped; @@ -60,7 +59,8 @@ import br.gov.frameworkdemoiselle.annotation.ViewScoped; import br.gov.frameworkdemoiselle.internal.context.ContextManager; import br.gov.frameworkdemoiselle.internal.context.ThreadLocalContext; import br.gov.frameworkdemoiselle.internal.implementation.AnnotatedMethodProcessor; -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; +import br.gov.frameworkdemoiselle.util.Beans; +import br.gov.frameworkdemoiselle.util.NameQualifier; import br.gov.frameworkdemoiselle.util.Reflections; import br.gov.frameworkdemoiselle.util.ResourceBundle; @@ -74,16 +74,16 @@ public abstract class AbstractLifecycleBootstrap implement private boolean registered = false; - private ResourceBundle bundle; + private transient static ResourceBundle bundle; protected abstract Logger getLogger(); - protected ResourceBundle getBundle() { - if (this.bundle == null) { - this.bundle = ResourceBundleProducer.create("demoiselle-core-bundle", Locale.getDefault()); + protected static ResourceBundle getBundle() { + if (bundle == null) { + bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-core-bundle")); } - return this.bundle; + return bundle; } protected AnnotatedMethodProcessor newProcessorInstance(AnnotatedMethod annotatedMethod) { diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/CoreBootstrap.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/CoreBootstrap.java index c0255bd..583a2f5 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/CoreBootstrap.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/CoreBootstrap.java @@ -52,7 +52,6 @@ import br.gov.frameworkdemoiselle.annotation.StaticScoped; import br.gov.frameworkdemoiselle.internal.context.ContextManager; import br.gov.frameworkdemoiselle.internal.context.StaticContext; import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; import br.gov.frameworkdemoiselle.util.Beans; import br.gov.frameworkdemoiselle.util.ResourceBundle; @@ -60,7 +59,7 @@ public class CoreBootstrap implements Extension { private Logger logger; - private ResourceBundle bundle; + private static transient ResourceBundle bundle; private Logger getLogger() { if (this.logger == null) { @@ -70,12 +69,12 @@ public class CoreBootstrap implements Extension { return this.logger; } - private ResourceBundle getBundle() { - if (this.bundle == null) { - this.bundle = ResourceBundleProducer.create("demoiselle-core-bundle", Locale.getDefault()); + private static ResourceBundle getBundle() { + if (bundle == null) { + bundle = new ResourceBundle("demoiselle-core-bundle", Locale.getDefault()); } - return this.bundle; + return bundle; } public void engineOn(@Observes final BeforeBeanDiscovery event, BeanManager beanManager) { @@ -91,7 +90,7 @@ public class CoreBootstrap implements Extension { ContextManager.activate(StaticContext.class, StaticScoped.class); } - + public void terminateCustomContexts(@Observes final BeforeShutdown event) { ContextManager.shutdown(); } diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/ContextManager.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/ContextManager.java index ef84186..1fa1c42 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/ContextManager.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/ContextManager.java @@ -16,7 +16,6 @@ import org.slf4j.Logger; import br.gov.frameworkdemoiselle.DemoiselleException; import br.gov.frameworkdemoiselle.annotation.StaticScoped; import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; import br.gov.frameworkdemoiselle.util.Beans; import br.gov.frameworkdemoiselle.util.ResourceBundle; @@ -40,14 +39,14 @@ import br.gov.frameworkdemoiselle.util.ResourceBundle; * * @author serpro */ -public class ContextManager { +public final class ContextManager { private static List contexts = Collections .synchronizedList(new ArrayList()); private static boolean initialized = false; - private static ResourceBundle bundle; + private static transient ResourceBundle bundle; private static Logger logger; @@ -217,7 +216,7 @@ public class ContextManager { static ResourceBundle getBundle() { if (bundle == null) { - bundle = ResourceBundleProducer.create("demoiselle-core-bundle", Locale.getDefault()); + bundle = new ResourceBundle("demoiselle-core-bundle", Locale.getDefault()); } return bundle; diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AnnotatedMethodProcessor.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AnnotatedMethodProcessor.java index 22dd4e2..7fb2752 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AnnotatedMethodProcessor.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AnnotatedMethodProcessor.java @@ -37,7 +37,6 @@ package br.gov.frameworkdemoiselle.internal.implementation; import java.lang.reflect.InvocationTargetException; -import java.util.Locale; import javax.enterprise.inject.spi.AnnotatedMethod; @@ -46,9 +45,9 @@ import org.slf4j.Logger; import br.gov.frameworkdemoiselle.annotation.Priority; import br.gov.frameworkdemoiselle.exception.ApplicationException; import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; import br.gov.frameworkdemoiselle.message.SeverityType; import br.gov.frameworkdemoiselle.util.Beans; +import br.gov.frameworkdemoiselle.util.NameQualifier; import br.gov.frameworkdemoiselle.util.ResourceBundle; /** @@ -61,7 +60,7 @@ public class AnnotatedMethodProcessor implements Comparable annotatedMethod; - private ResourceBundle bundle; + private transient static ResourceBundle bundle; public AnnotatedMethodProcessor(final AnnotatedMethod annotatedMethod) { this.annotatedMethod = annotatedMethod; @@ -132,9 +131,9 @@ public class AnnotatedMethodProcessor implements Comparable messages = new ArrayList(); - private transient static ResourceBundle bundle; private transient static Logger logger; @@ -101,19 +98,22 @@ public class MessageContextImpl implements Serializable, MessageContext { @Override @Deprecated public List getMessages() { - return messages; + throw new DemoiselleException( + "Este método não é mais suportado desde a versão 2.4.0 do Demoiselle Framework. Considere atualizar a sua aplicação ou o componente com uma nova versão que faça uso do " + + MessageAppender.class.getCanonicalName() + "."); } @Override @Deprecated public void clear() { - getLogger().debug(getBundle().getString("cleaning-message-context")); - messages.clear(); + throw new DemoiselleException( + "Este método não é mais suportado desde a versão 2.4.0 do Demoiselle Framework. Considere atualizar a sua aplicação ou o componente com uma nova versão que faça uso do " + + MessageAppender.class.getCanonicalName() + "."); } private static ResourceBundle getBundle() { if (bundle == null) { - bundle = ResourceBundleProducer.create("demoiselle-core-bundle"); + bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-core-bundle")); } return bundle; diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityContextImpl.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityContextImpl.java index 3458c1c..164c20c 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityContextImpl.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityContextImpl.java @@ -43,7 +43,6 @@ import javax.inject.Named; import br.gov.frameworkdemoiselle.DemoiselleException; import br.gov.frameworkdemoiselle.internal.configuration.SecurityConfig; -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; import br.gov.frameworkdemoiselle.security.AfterLoginSuccessful; import br.gov.frameworkdemoiselle.security.AfterLogoutSuccessful; import br.gov.frameworkdemoiselle.security.AuthenticationException; @@ -53,6 +52,7 @@ import br.gov.frameworkdemoiselle.security.NotLoggedInException; import br.gov.frameworkdemoiselle.security.SecurityContext; import br.gov.frameworkdemoiselle.security.User; import br.gov.frameworkdemoiselle.util.Beans; +import br.gov.frameworkdemoiselle.util.NameQualifier; import br.gov.frameworkdemoiselle.util.ResourceBundle; /** @@ -66,6 +66,8 @@ public class SecurityContextImpl implements SecurityContext { private static final long serialVersionUID = 1L; + private transient static ResourceBundle bundle; + private Authenticator authenticator; private Authorizer authorizer; @@ -199,11 +201,18 @@ public class SecurityContextImpl implements SecurityContext { public void checkLoggedIn() throws NotLoggedInException { if (!isLoggedIn()) { - ResourceBundle bundle = ResourceBundleProducer.create("demoiselle-core-bundle"); - throw new NotLoggedInException(bundle.getString("user-not-authenticated")); + throw new NotLoggedInException(getBundle().getString("user-not-authenticated")); } } + private static ResourceBundle getBundle() { + if (bundle == null) { + bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-core-bundle")); + } + + return bundle; + } + private static class EmptyUser implements Principal, Serializable { private static final long serialVersionUID = 1L; diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/StrategySelector.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/StrategySelector.java index 4b51153..4ce29e5 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/StrategySelector.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/StrategySelector.java @@ -50,27 +50,19 @@ import javax.enterprise.inject.spi.Bean; import br.gov.frameworkdemoiselle.DemoiselleException; import br.gov.frameworkdemoiselle.annotation.Priority; -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; import br.gov.frameworkdemoiselle.util.Beans; +import br.gov.frameworkdemoiselle.util.NameQualifier; import br.gov.frameworkdemoiselle.util.ResourceBundle; public final class StrategySelector implements Serializable { private static final long serialVersionUID = 1L; - private static ResourceBundle bundle; + private transient static ResourceBundle bundle; private StrategySelector() { } - private static ResourceBundle getBundle() { - if (bundle == null) { - bundle = ResourceBundleProducer.create("demoiselle-core-bundle"); - } - - return bundle; - } - @SuppressWarnings("unchecked") public static T selectInstance(Class type, Collection options) { @@ -162,4 +154,12 @@ public final class StrategySelector implements Serializable { return result; } + + private static ResourceBundle getBundle() { + if (bundle == null) { + bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-core-bundle")); + } + + return bundle; + } } diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/producer/ResourceBundleProducer.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/producer/ResourceBundleProducer.java index d15009a..167b2b9 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/producer/ResourceBundleProducer.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/producer/ResourceBundleProducer.java @@ -62,6 +62,7 @@ public class ResourceBundleProducer implements Serializable { * @param String * baseName */ + @Deprecated public static ResourceBundle create(String baseName) { return create(baseName, Beans.getReference(Locale.class)); } @@ -72,6 +73,7 @@ public class ResourceBundleProducer implements Serializable { * @param String * baseName */ + @Deprecated public static ResourceBundle create(String baseName, Locale locale) { return new ResourceBundle(baseName, locale); } @@ -83,7 +85,7 @@ public class ResourceBundleProducer implements Serializable { @Default @Produces public ResourceBundle createDefault(InjectionPoint ip) { - return create("messages", Beans.getReference(Locale.class)); + return new ResourceBundle("messages", Beans.getReference(Locale.class)); } /** @@ -94,6 +96,6 @@ public class ResourceBundleProducer implements Serializable { @Produces public ResourceBundle createNamed(InjectionPoint ip) { String baseName = ip.getAnnotated().getAnnotation(Name.class).value(); - return create(baseName, Beans.getReference(Locale.class)); + return new ResourceBundle(baseName, Beans.getReference(Locale.class)); } } diff --git a/impl/core/src/main/resources/demoiselle-core-bundle.properties b/impl/core/src/main/resources/demoiselle-core-bundle.properties index 829646c..1d1f611 100644 --- a/impl/core/src/main/resources/demoiselle-core-bundle.properties +++ b/impl/core/src/main/resources/demoiselle-core-bundle.properties @@ -87,7 +87,6 @@ for= \ para\: file-not-found=O arquivo {0} n\u00E3o foi encontrado adding-message-to-context=Adicionando uma mensagem no contexto: [{0}] -cleaning-message-context=Limpando o contexto de mensagens access-checking=Verificando permiss\u00E3o do usu\u00E1rio {0} para executar a a\u00E7\u00E3o {1} no recurso {2} access-allowed=O usu\u00E1rio {0} acessou o recurso {2} com a a\u00E7\u00E3o {1} access-denied=O usu\u00E1rio {0} n\u00E3o possui permiss\u00E3o para executar a a\u00E7\u00E3o {1} no recurso {2} -- libgit2 0.21.2