Commit 50cc595e3b0bafe67f98ad82c21e73a3c35daaaa
Exists in
master
Merge remote-tracking branch 'origin/2.4.0' into 2.4.0
Conflicts: impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/OperationType.java
Showing
107 changed files
with
1255 additions
and
1349 deletions
Show diff stats
Too many changes.
To preserve performance only 100 of 107 files displayed.
documentation/reference/pom.xml
... | ... | @@ -45,7 +45,7 @@ |
45 | 45 | <parent> |
46 | 46 | <groupId>br.gov.frameworkdemoiselle</groupId> |
47 | 47 | <artifactId>demoiselle-documentation-parent</artifactId> |
48 | - <version>8</version> | |
48 | + <version>9-SNAPSHOT</version> | |
49 | 49 | <relativePath>../../../internal/parent/documentation</relativePath> |
50 | 50 | </parent> |
51 | 51 | ... | ... |
documentation/reference/pt-BR/gerenciamento.xml
... | ... | @@ -24,6 +24,8 @@ |
24 | 24 | uso o desenvolvedor pode se despreocupar com detalhes de implementação de cada tecnologia individual e facilmente integrar tais tecnologias.</para> |
25 | 25 | </section> |
26 | 26 | |
27 | + | |
28 | + | |
27 | 29 | <section> |
28 | 30 | <title>Introdução ao mecanismo</title> |
29 | 31 | |
... | ... | @@ -136,6 +138,8 @@ |
136 | 138 | |
137 | 139 | </section> |
138 | 140 | |
141 | + | |
142 | + | |
139 | 143 | <section> |
140 | 144 | <title>Expondo aspectos de sua aplicação para monitoração</title> |
141 | 145 | |
... | ... | @@ -169,6 +173,8 @@ |
169 | 173 | a quantidade de logins efetuados no momento da consulta.</para> |
170 | 174 | </section> |
171 | 175 | |
176 | + | |
177 | + | |
172 | 178 | <section> |
173 | 179 | <title>Conectando um cliente de monitoração</title> |
174 | 180 | |
... | ... | @@ -197,7 +203,7 @@ |
197 | 203 | individualmente, as classes monitoradas serão então expostas para todas as extensões escolhidas.</para> |
198 | 204 | </tip> |
199 | 205 | |
200 | - <para>A imagem abaixo mostra como uma classe monitorada na aplicação <emphasis>Bookmark</emphasis> é exibida no <emphasis>JConsole</emphasis>.</para> | |
206 | + <para>A figura <xref linkend="exemplo_jconsole"/> mostra como uma classe monitorada na aplicação <emphasis>Bookmark</emphasis> é exibida no <emphasis>JConsole</emphasis>.</para> | |
201 | 207 | |
202 | 208 | <programlisting role="JAVA"><![CDATA[ |
203 | 209 | @ManagementController |
... | ... | @@ -213,15 +219,14 @@ |
213 | 219 | } |
214 | 220 | ]]></programlisting> |
215 | 221 | |
216 | - <figure> | |
217 | - <title>JConsole acessando a aplicação <emphasis>Bookmark</emphasis></title> | |
222 | + <figure id="exemplo_jconsole"><title>JConsole acessando a aplicação <emphasis>Bookmark</emphasis></title> | |
218 | 223 | <mediaobject> |
219 | 224 | <imageobject> |
220 | - <imagedata fileref="jmx-console-example.jpg" align="center"/> | |
225 | + <imagedata fileref="images/jmx-jconsole-example.png"/> | |
221 | 226 | </imageobject> |
227 | + <textobject><phrase>JConsole acessando a aplicação <emphasis>Bookmark</emphasis></phrase></textobject> | |
222 | 228 | </mediaobject> |
223 | 229 | </figure> |
224 | - | |
225 | 230 | </section> |
226 | 231 | |
227 | 232 | </chapter> |
228 | 233 | \ No newline at end of file | ... | ... |
290 KB
documentation/reference/pt-BR/jmx-jconsole-example.jpg
95.5 KB
documentation/reference/pt-BR/master.xml
... | ... | @@ -5,6 +5,7 @@ |
5 | 5 | |
6 | 6 | <xi:include href="bookinfo.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
7 | 7 | |
8 | + <!-- | |
8 | 9 | <preface> |
9 | 10 | <title>Sobre o Guia de Referência</title> |
10 | 11 | <para> |
... | ... | @@ -38,8 +39,9 @@ |
38 | 39 | <xi:include href="templates.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
39 | 40 | <xi:include href="security.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
40 | 41 | <xi:include href="paginacao.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
42 | + --> | |
41 | 43 | <xi:include href="gerenciamento.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> |
42 | - <xi:include href="properties.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> | |
44 | + <!-- <xi:include href="properties.xml" xmlns:xi="http://www.w3.org/2001/XInclude" /> --> | |
43 | 45 | |
44 | 46 | <!-- parte 1 --> |
45 | 47 | <!-- TODO: dividir melhor os capítulos em seções --> | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/Ignore.java
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/ManagedOperation.java
... | ... | @@ -47,24 +47,28 @@ import javax.enterprise.util.Nonbinding; |
47 | 47 | import br.gov.frameworkdemoiselle.DemoiselleException; |
48 | 48 | |
49 | 49 | /** |
50 | - * <p>Indicates that a method is a <b>managed operation</b>, meaning you can manage some aspect of the application by calling it from a external management client.</p> | |
51 | - * <p>This annotation can't be used together with {@link ManagedProperty}, doing so will throw a {@link DemoiselleException}.</p> | |
50 | + * <p> | |
51 | + * Indicates that a method is a <b>managed operation</b>, meaning you can manage some aspect of the application by | |
52 | + * calling it from a external management client. | |
53 | + * </p> | |
54 | + * <p> | |
55 | + * This annotation can't be used together with {@link ManagedProperty}, doing so will throw a | |
56 | + * {@link DemoiselleException}. | |
57 | + * </p> | |
52 | 58 | * |
53 | 59 | * @author SERPRO |
54 | - * | |
55 | 60 | */ |
56 | 61 | @Documented |
57 | -@Target({ElementType.METHOD}) | |
62 | +@Target({ ElementType.METHOD }) | |
58 | 63 | @Retention(RetentionPolicy.RUNTIME) |
59 | 64 | public @interface ManagedOperation { |
60 | - | |
65 | + | |
61 | 66 | /** |
62 | - * Description that will be used to publish the operation to clients. | |
63 | - * Defaults to an empty description. | |
67 | + * Description that will be used to publish the operation to clients. Defaults to an empty description. | |
64 | 68 | */ |
65 | 69 | @Nonbinding |
66 | 70 | String description() default ""; |
67 | - | |
71 | + | |
68 | 72 | /** |
69 | 73 | * Type of operation. Defaults to {@link OperationType#UNKNOWN}. |
70 | 74 | */ | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/ManagedProperty.java
... | ... | @@ -45,57 +45,65 @@ import java.lang.annotation.Target; |
45 | 45 | import javax.enterprise.util.Nonbinding; |
46 | 46 | |
47 | 47 | /** |
48 | - * <p>Indicates that a field must be exposed as a property to management clients.</p> | |
49 | - * <p>The property will be writable if there's a public setter method | |
50 | - * declared for the field and readable if there's a getter method. You can override this behaviour by passing a value | |
51 | - * to the {@link #accessLevel()} property.</p> | |
52 | - * <p>It's a runtime error to annotate a field with no getter and no setter method.</p> | |
53 | - * <p>It's also a runtime error to declare a field as a property and one or both of it's getter and setter | |
54 | - * methods as an operation using the {@link ManagedOperation} annotation.</p> | |
48 | + * <p> | |
49 | + * Indicates that a field must be exposed as a property to management clients. | |
50 | + * </p> | |
51 | + * <p> | |
52 | + * The property will be writable if there's a public setter method declared for the field and readable if there's a | |
53 | + * getter method. You can override this behaviour by passing a value to the {@link #accessLevel()} property. | |
54 | + * </p> | |
55 | + * <p> | |
56 | + * It's a runtime error to annotate a field with no getter and no setter method. | |
57 | + * </p> | |
58 | + * <p> | |
59 | + * It's also a runtime error to declare a field as a property and one or both of it's getter and setter methods as an | |
60 | + * operation using the {@link ManagedOperation} annotation. | |
61 | + * </p> | |
55 | 62 | * |
56 | 63 | * @author SERPRO |
57 | - * | |
58 | 64 | */ |
59 | 65 | @Documented |
60 | -@Target({ElementType.FIELD}) | |
66 | +@Target({ ElementType.FIELD }) | |
61 | 67 | @Retention(RetentionPolicy.RUNTIME) |
62 | 68 | public @interface ManagedProperty { |
63 | - | |
69 | + | |
64 | 70 | /** |
65 | 71 | * @return The description of this property exposed to management clients. |
66 | 72 | */ |
67 | 73 | @Nonbinding |
68 | 74 | String description() default ""; |
69 | - | |
75 | + | |
70 | 76 | @Nonbinding |
71 | 77 | ManagedPropertyAccess accessLevel() default ManagedPropertyAccess.DEFAULT; |
72 | - | |
78 | + | |
73 | 79 | /** |
74 | - * <p>Access level of a managed property.</p> | |
75 | - * | |
76 | - * <p>These values only affect access via external management clients, the application is still able to inject and use the normal visibility of the property | |
77 | - * by Java standards.</p> | |
80 | + * <p> | |
81 | + * Access level of a managed property. | |
82 | + * </p> | |
83 | + * <p> | |
84 | + * These values only affect access via external management clients, the application is still able to inject and use | |
85 | + * the normal visibility of the property by Java standards. | |
86 | + * </p> | |
78 | 87 | * |
79 | 88 | * @author serpro |
80 | - * | |
81 | 89 | */ |
82 | - enum ManagedPropertyAccess{ | |
83 | - | |
90 | + enum ManagedPropertyAccess { | |
91 | + | |
84 | 92 | /** |
85 | 93 | * Restricts a property to be only readable even if a setter method exists. |
86 | 94 | */ |
87 | 95 | READ_ONLY |
88 | - | |
96 | + | |
89 | 97 | /** |
90 | 98 | * Restricts a property to be only writeable even if a getter method exists. |
91 | 99 | */ |
92 | - ,WRITE_ONLY | |
93 | - | |
100 | + , WRITE_ONLY | |
101 | + | |
94 | 102 | /** |
95 | - * Says that the read or write access will | |
96 | - * be determined by the presence of a getter method <code>(getProperty())</code> or setter method <code>(setProperty(propertyValue))</code> for a property. | |
103 | + * Says that the read or write access will be determined by the presence of a getter method | |
104 | + * <code>(getProperty())</code> or setter method <code>(setProperty(propertyValue))</code> for a property. | |
97 | 105 | */ |
98 | - ,DEFAULT; | |
106 | + , DEFAULT; | |
99 | 107 | } |
100 | 108 | |
101 | 109 | } | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/OperationParameter.java
... | ... | @@ -45,29 +45,31 @@ import java.lang.annotation.Target; |
45 | 45 | import javax.enterprise.util.Nonbinding; |
46 | 46 | |
47 | 47 | /** |
48 | - * <p>Optional annotation to write additional detail about an operation's parameter.</p> | |
49 | - * <p>This annotation is ignored for non-operation methods.</p> | |
48 | + * <p> | |
49 | + * Optional annotation to write additional detail about an operation's parameter. | |
50 | + * </p> | |
51 | + * <p> | |
52 | + * This annotation is ignored for non-operation methods. | |
53 | + * </p> | |
50 | 54 | * |
51 | 55 | * @author SERPRO |
52 | - * | |
53 | 56 | */ |
54 | 57 | @Documented |
55 | -@Target({ElementType.PARAMETER}) | |
58 | +@Target({ ElementType.PARAMETER }) | |
56 | 59 | @Retention(RetentionPolicy.RUNTIME) |
57 | 60 | public @interface OperationParameter { |
58 | - | |
61 | + | |
59 | 62 | /** |
60 | 63 | * Name that will be used to publish this operation's parameter to clients. |
61 | 64 | */ |
62 | 65 | @Nonbinding |
63 | 66 | String name(); |
64 | - | |
67 | + | |
65 | 68 | /** |
66 | - * Optional description that will be used to publish this operation's parameter to clients. | |
67 | - * Defaults to an empty description. | |
69 | + * Optional description that will be used to publish this operation's parameter to clients. Defaults to an empty | |
70 | + * description. | |
68 | 71 | */ |
69 | 72 | @Nonbinding |
70 | 73 | String description() default ""; |
71 | - | |
72 | 74 | |
73 | 75 | } | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/OperationType.java
... | ... | @@ -37,43 +37,42 @@ |
37 | 37 | package br.gov.frameworkdemoiselle.annotation; |
38 | 38 | |
39 | 39 | |
40 | - | |
41 | 40 | /** |
42 | - * <p>Define the operation type for an operation inside a ManagementController class.</p> | |
43 | - * | |
44 | - * <p>This is an optional annotation and it's significanse will change based on the management extension | |
45 | - * used. Most extensions will just publish this information to the client so it can better show to the user the inner | |
46 | - * workings of the annotated operation.</p> | |
47 | - * | |
41 | + * <p> | |
42 | + * Define the operation type for an operation inside a ManagementController class. | |
43 | + * </p> | |
44 | + * <p> | |
45 | + * This is an optional annotation and it's significanse will change based on the management extension used. Most | |
46 | + * extensions will just publish this information to the client so it can better show to the user the inner workings of | |
47 | + * the annotated operation. | |
48 | + * </p> | |
48 | 49 | * |
49 | 50 | * @author SERPRO |
50 | - * | |
51 | 51 | */ |
52 | 52 | public enum OperationType { |
53 | - | |
53 | + | |
54 | 54 | /** |
55 | - * ManagedOperation is write-only, it causes the application | |
56 | - * to change some of it's behaviour but doesn't return any kind of information | |
55 | + * ManagedOperation is write-only, it causes the application to change some of it's behaviour but doesn't return any | |
56 | + * kind of information | |
57 | 57 | */ |
58 | - ACTION | |
59 | - , | |
58 | + ACTION, | |
59 | + | |
60 | 60 | /** |
61 | 61 | * ManagedOperation is read-only, it will operate over data provided by the application and return some information, |
62 | 62 | * but will not change the application in any way. |
63 | 63 | */ |
64 | - INFO | |
65 | - , | |
64 | + INFO, | |
65 | + | |
66 | 66 | /** |
67 | - * ManagedOperation is read-write, it will both change the way the application work and return some information regarding | |
68 | - * the result of the operation. | |
67 | + * ManagedOperation is read-write, it will both change the way the application work and return some information | |
68 | + * regarding the result of the operation. | |
69 | 69 | */ |
70 | - ACTION_INFO | |
71 | - , | |
70 | + ACTION_INFO, | |
71 | + | |
72 | 72 | /** |
73 | - * The effect of calling this operation is unknown. This is the default type and if this type is assigned to an operation, | |
74 | - * the user must rely on the {@link ManagedOperation#description()} attribute to learn about how the operation works. | |
73 | + * The effect of calling this operation is unknown. This is the default type and if this type is assigned to an | |
74 | + * operation, the user must rely on the {@link ManagedOperation#description()} attribute to learn about how the | |
75 | + * operation works. | |
75 | 76 | */ |
76 | 77 | UNKNOWN |
77 | - | |
78 | - | |
79 | 78 | } | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/annotation/Priority.java
... | ... | @@ -60,6 +60,14 @@ public @interface Priority { |
60 | 60 | */ |
61 | 61 | static int MIN_PRIORITY = Integer.MAX_VALUE; |
62 | 62 | |
63 | + static int L1_PRIORITY = MIN_PRIORITY; | |
64 | + | |
65 | + static int L2_PRIORITY = L1_PRIORITY - 100; | |
66 | + | |
67 | + static int L3_PRIORITY = L2_PRIORITY - 100; | |
68 | + | |
69 | + static int L4_PRIORITY = L3_PRIORITY - 100; | |
70 | + | |
63 | 71 | /** |
64 | 72 | * An integer value defines the priority order. |
65 | 73 | */ | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/configuration/ConfigType.java
impl/core/src/main/java/br/gov/frameworkdemoiselle/exception/ExceptionHandlerInterceptor.java
... | ... | @@ -52,9 +52,9 @@ import javax.interceptor.InvocationContext; |
52 | 52 | import org.slf4j.Logger; |
53 | 53 | |
54 | 54 | import br.gov.frameworkdemoiselle.DemoiselleException; |
55 | -import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; | |
56 | -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; | |
57 | 55 | import br.gov.frameworkdemoiselle.stereotype.Controller; |
56 | +import br.gov.frameworkdemoiselle.util.Beans; | |
57 | +import br.gov.frameworkdemoiselle.util.NameQualifier; | |
58 | 58 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
59 | 59 | |
60 | 60 | @Interceptor |
... | ... | @@ -63,9 +63,9 @@ public class ExceptionHandlerInterceptor implements Serializable { |
63 | 63 | |
64 | 64 | private static final long serialVersionUID = 1L; |
65 | 65 | |
66 | - private static ResourceBundle bundle; | |
66 | + private static transient ResourceBundle bundle; | |
67 | 67 | |
68 | - private static Logger logger; | |
68 | + private static transient Logger logger; | |
69 | 69 | |
70 | 70 | private final Map<Class<?>, Map<Class<?>, Method>> cache = new HashMap<Class<?>, Map<Class<?>, Method>>(); |
71 | 71 | |
... | ... | @@ -199,7 +199,7 @@ public class ExceptionHandlerInterceptor implements Serializable { |
199 | 199 | |
200 | 200 | private static ResourceBundle getBundle() { |
201 | 201 | if (bundle == null) { |
202 | - bundle = ResourceBundleProducer.create("demoiselle-core-bundle"); | |
202 | + bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-core-bundle")); | |
203 | 203 | } |
204 | 204 | |
205 | 205 | return bundle; |
... | ... | @@ -207,7 +207,7 @@ public class ExceptionHandlerInterceptor implements Serializable { |
207 | 207 | |
208 | 208 | private static Logger getLogger() { |
209 | 209 | if (logger == null) { |
210 | - logger = LoggerProducer.create(ExceptionHandlerInterceptor.class); | |
210 | + logger = Beans.getReference(Logger.class, new NameQualifier(ExceptionHandlerInterceptor.class.getName())); | |
211 | 211 | } |
212 | 212 | |
213 | 213 | return logger; | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AbstractLifecycleBootstrap.java
... | ... | @@ -98,23 +98,22 @@ public abstract class AbstractLifecycleBootstrap<A extends Annotation> implement |
98 | 98 | return this.annotationClass; |
99 | 99 | } |
100 | 100 | |
101 | + @SuppressWarnings("unchecked") | |
101 | 102 | public <T> void processAnnotatedType(@Observes final ProcessAnnotatedType<T> event) { |
102 | 103 | final AnnotatedType<T> annotatedType = event.getAnnotatedType(); |
103 | 104 | |
104 | 105 | for (AnnotatedMethod<?> am : annotatedType.getMethods()) { |
105 | 106 | if (am.isAnnotationPresent(getAnnotationClass())) { |
106 | - @SuppressWarnings("unchecked") | |
107 | - AnnotatedMethod<T> annotatedMethod = (AnnotatedMethod<T>) am; | |
108 | - processors.add(newProcessorInstance(annotatedMethod)); | |
107 | + processors.add(newProcessorInstance((AnnotatedMethod<T>) am)); | |
109 | 108 | } |
110 | 109 | } |
111 | 110 | } |
112 | 111 | |
113 | 112 | public void loadTempContexts(@Observes final AfterBeanDiscovery event) { |
114 | - //Caso este bootstrap rode antes do CoreBootstrap. Não há problemas em chamar este método várias vezes, ele | |
115 | - //ignora chamadas adicionais. | |
113 | + // Caso este bootstrap rode antes do CoreBootstrap. Não há problemas em chamar este método várias vezes, ele | |
114 | + // ignora chamadas adicionais. | |
116 | 115 | ContextManager.initialize(event); |
117 | - | |
116 | + | |
118 | 117 | // Não registrar o contexto de aplicação pq ele já é registrado pela implementação do CDI |
119 | 118 | ContextManager.add(new ThreadLocalContext(ViewScoped.class), event); |
120 | 119 | ContextManager.add(new ThreadLocalContext(SessionScoped.class), event); | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AuthenticatorBootstrap.java
... | ... | @@ -1,56 +0,0 @@ |
1 | -/* | |
2 | - * Demoiselle Framework | |
3 | - * Copyright (C) 2010 SERPRO | |
4 | - * ---------------------------------------------------------------------------- | |
5 | - * This file is part of Demoiselle Framework. | |
6 | - * | |
7 | - * Demoiselle Framework is free software; you can redistribute it and/or | |
8 | - * modify it under the terms of the GNU Lesser General Public License version 3 | |
9 | - * as published by the Free Software Foundation. | |
10 | - * | |
11 | - * This program is distributed in the hope that it will be useful, | |
12 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | - * GNU General Public License for more details. | |
15 | - * | |
16 | - * You should have received a copy of the GNU Lesser General Public License version 3 | |
17 | - * along with this program; if not, see <http://www.gnu.org/licenses/> | |
18 | - * or write to the Free Software Foundation, Inc., 51 Franklin Street, | |
19 | - * Fifth Floor, Boston, MA 02110-1301, USA. | |
20 | - * ---------------------------------------------------------------------------- | |
21 | - * Este arquivo é parte do Framework Demoiselle. | |
22 | - * | |
23 | - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | |
24 | - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | |
25 | - * do Software Livre (FSF). | |
26 | - * | |
27 | - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | |
28 | - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | |
29 | - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | |
30 | - * para maiores detalhes. | |
31 | - * | |
32 | - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | |
33 | - * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | |
34 | - * ou escreva para a Fundação do Software Livre (FSF) Inc., | |
35 | - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | |
36 | - */ | |
37 | -package br.gov.frameworkdemoiselle.internal.bootstrap; | |
38 | - | |
39 | -import org.slf4j.Logger; | |
40 | - | |
41 | -import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; | |
42 | -import br.gov.frameworkdemoiselle.security.Authenticator; | |
43 | - | |
44 | -public class AuthenticatorBootstrap extends AbstractStrategyBootstrap<Authenticator> { | |
45 | - | |
46 | - private Logger logger; | |
47 | - | |
48 | - @Override | |
49 | - protected Logger getLogger() { | |
50 | - if (logger == null) { | |
51 | - logger = LoggerProducer.create(AuthenticatorBootstrap.class); | |
52 | - } | |
53 | - | |
54 | - return logger; | |
55 | - } | |
56 | -} |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/AuthorizerBootstrap.java
... | ... | @@ -1,56 +0,0 @@ |
1 | -/* | |
2 | - * Demoiselle Framework | |
3 | - * Copyright (C) 2010 SERPRO | |
4 | - * ---------------------------------------------------------------------------- | |
5 | - * This file is part of Demoiselle Framework. | |
6 | - * | |
7 | - * Demoiselle Framework is free software; you can redistribute it and/or | |
8 | - * modify it under the terms of the GNU Lesser General Public License version 3 | |
9 | - * as published by the Free Software Foundation. | |
10 | - * | |
11 | - * This program is distributed in the hope that it will be useful, | |
12 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | - * GNU General Public License for more details. | |
15 | - * | |
16 | - * You should have received a copy of the GNU Lesser General Public License version 3 | |
17 | - * along with this program; if not, see <http://www.gnu.org/licenses/> | |
18 | - * or write to the Free Software Foundation, Inc., 51 Franklin Street, | |
19 | - * Fifth Floor, Boston, MA 02110-1301, USA. | |
20 | - * ---------------------------------------------------------------------------- | |
21 | - * Este arquivo é parte do Framework Demoiselle. | |
22 | - * | |
23 | - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | |
24 | - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | |
25 | - * do Software Livre (FSF). | |
26 | - * | |
27 | - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | |
28 | - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | |
29 | - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | |
30 | - * para maiores detalhes. | |
31 | - * | |
32 | - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | |
33 | - * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | |
34 | - * ou escreva para a Fundação do Software Livre (FSF) Inc., | |
35 | - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | |
36 | - */ | |
37 | -package br.gov.frameworkdemoiselle.internal.bootstrap; | |
38 | - | |
39 | -import org.slf4j.Logger; | |
40 | - | |
41 | -import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; | |
42 | -import br.gov.frameworkdemoiselle.security.Authorizer; | |
43 | - | |
44 | -public class AuthorizerBootstrap extends AbstractStrategyBootstrap<Authorizer> { | |
45 | - | |
46 | - private Logger logger; | |
47 | - | |
48 | - @Override | |
49 | - protected Logger getLogger() { | |
50 | - if (logger == null) { | |
51 | - logger = LoggerProducer.create(AuthorizerBootstrap.class); | |
52 | - } | |
53 | - | |
54 | - return logger; | |
55 | - } | |
56 | -} |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/ConfigurationBootstrap.java
... | ... | @@ -96,7 +96,7 @@ public class ConfigurationBootstrap extends AbstractStrategyBootstrap<Configurat |
96 | 96 | String superClassName = type.getCanonicalName(); |
97 | 97 | String chieldClassName = superClassName + "_$$_DemoiselleProxy"; |
98 | 98 | |
99 | - Map<String, Class<Object>> cacheProxy = Collections.synchronizedMap(new HashMap<String, Class<Object>>());; | |
99 | + Map<String, Class<Object>> cacheProxy = Collections.synchronizedMap(new HashMap<String, Class<Object>>()); | |
100 | 100 | |
101 | 101 | Class<Object> clazzProxy = null; |
102 | 102 | |
... | ... | @@ -139,7 +139,7 @@ public class ConfigurationBootstrap extends AbstractStrategyBootstrap<Configurat |
139 | 139 | @Override |
140 | 140 | protected Logger getLogger() { |
141 | 141 | if (logger == null) { |
142 | - logger = LoggerProducer.create(TransactionBootstrap.class); | |
142 | + logger = LoggerProducer.create(ConfigurationBootstrap.class); | |
143 | 143 | } |
144 | 144 | |
145 | 145 | return logger; | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/CustomInjectionPoint.java
... | ... | @@ -1,136 +0,0 @@ |
1 | -/* | |
2 | - * Demoiselle Framework | |
3 | - * Copyright (C) 2010 SERPRO | |
4 | - * ---------------------------------------------------------------------------- | |
5 | - * This file is part of Demoiselle Framework. | |
6 | - * | |
7 | - * Demoiselle Framework is free software; you can redistribute it and/or | |
8 | - * modify it under the terms of the GNU Lesser General Public License version 3 | |
9 | - * as published by the Free Software Foundation. | |
10 | - * | |
11 | - * This program is distributed in the hope that it will be useful, | |
12 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | - * GNU General Public License for more details. | |
15 | - * | |
16 | - * You should have received a copy of the GNU Lesser General Public License version 3 | |
17 | - * along with this program; if not, see <http://www.gnu.org/licenses/> | |
18 | - * or write to the Free Software Foundation, Inc., 51 Franklin Street, | |
19 | - * Fifth Floor, Boston, MA 02110-1301, USA. | |
20 | - * ---------------------------------------------------------------------------- | |
21 | - * Este arquivo é parte do Framework Demoiselle. | |
22 | - * | |
23 | - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | |
24 | - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | |
25 | - * do Software Livre (FSF). | |
26 | - * | |
27 | - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | |
28 | - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | |
29 | - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | |
30 | - * para maiores detalhes. | |
31 | - * | |
32 | - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | |
33 | - * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | |
34 | - * ou escreva para a Fundação do Software Livre (FSF) Inc., | |
35 | - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | |
36 | - */ | |
37 | -package br.gov.frameworkdemoiselle.internal.bootstrap; | |
38 | - | |
39 | -import java.lang.annotation.Annotation; | |
40 | -import java.lang.reflect.Member; | |
41 | -import java.lang.reflect.Type; | |
42 | -import java.util.Arrays; | |
43 | -import java.util.HashSet; | |
44 | -import java.util.Set; | |
45 | - | |
46 | -import javax.enterprise.inject.spi.Annotated; | |
47 | -import javax.enterprise.inject.spi.Bean; | |
48 | -import javax.enterprise.inject.spi.InjectionPoint; | |
49 | - | |
50 | -public class CustomInjectionPoint implements InjectionPoint { | |
51 | - | |
52 | - private final Bean<?> bean; | |
53 | - | |
54 | - private final Type beanType; | |
55 | - | |
56 | - private final Set<Annotation> qualifiers; | |
57 | - | |
58 | - public CustomInjectionPoint(Bean<?> bean, Type beanType, Annotation... qualifiers) { | |
59 | - this.bean = bean; | |
60 | - this.beanType = beanType; | |
61 | - this.qualifiers = new HashSet<Annotation>(Arrays.asList(qualifiers)); | |
62 | - } | |
63 | - | |
64 | - @Override | |
65 | - public Type getType() { | |
66 | - return this.beanType; | |
67 | - } | |
68 | - | |
69 | - @Override | |
70 | - public Set<Annotation> getQualifiers() { | |
71 | - return this.qualifiers; | |
72 | - } | |
73 | - | |
74 | - @Override | |
75 | - public Bean<?> getBean() { | |
76 | - return this.bean; | |
77 | - } | |
78 | - | |
79 | - @Override | |
80 | - public Member getMember() { | |
81 | - return null; | |
82 | - } | |
83 | - | |
84 | - @Override | |
85 | - public boolean isDelegate() { | |
86 | - return false; | |
87 | - } | |
88 | - | |
89 | - @Override | |
90 | - public boolean isTransient() { | |
91 | - return false; | |
92 | - } | |
93 | - | |
94 | - @Override | |
95 | - public Annotated getAnnotated() { | |
96 | - return new Annotated() { | |
97 | - | |
98 | - @Override | |
99 | - public Type getBaseType() { | |
100 | - // TODO Auto-generated method stub | |
101 | - return null; | |
102 | - } | |
103 | - | |
104 | - @Override | |
105 | - public Set<Type> getTypeClosure() { | |
106 | - // TODO Auto-generated method stub | |
107 | - return null; | |
108 | - } | |
109 | - | |
110 | - @Override | |
111 | - @SuppressWarnings("unchecked") | |
112 | - public <T extends Annotation> T getAnnotation(Class<T> annotationType) { | |
113 | - T result = null; | |
114 | - | |
115 | - for (Annotation annotation : getAnnotations()) { | |
116 | - if (annotation.annotationType() == annotationType) { | |
117 | - result = (T) annotation; | |
118 | - break; | |
119 | - } | |
120 | - } | |
121 | - | |
122 | - return result; | |
123 | - } | |
124 | - | |
125 | - @Override | |
126 | - public Set<Annotation> getAnnotations() { | |
127 | - return qualifiers; | |
128 | - } | |
129 | - | |
130 | - @Override | |
131 | - public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) { | |
132 | - return qualifiers.contains(annotationType); | |
133 | - } | |
134 | - }; | |
135 | - } | |
136 | -} |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/ManagementBootstrap.java
... | ... | @@ -32,8 +32,8 @@ public class ManagementBootstrap implements Extension { |
32 | 32 | |
33 | 33 | protected static List<AnnotatedType<?>> types = Collections.synchronizedList(new ArrayList<AnnotatedType<?>>()); |
34 | 34 | |
35 | - private List<Class<? extends ManagementExtension>> managementExtensionCache = Collections.synchronizedList(new ArrayList<Class<? extends ManagementExtension>>()); | |
36 | - | |
35 | + private List<Class<? extends ManagementExtension>> managementExtensionCache = Collections | |
36 | + .synchronizedList(new ArrayList<Class<? extends ManagementExtension>>()); | |
37 | 37 | |
38 | 38 | public <T> void detectAnnotation(@Observes final ProcessAnnotatedType<T> event, final BeanManager beanManager) { |
39 | 39 | if (event.getAnnotatedType().isAnnotationPresent(ManagementController.class)) { |
... | ... | @@ -47,27 +47,28 @@ public class ManagementBootstrap implements Extension { |
47 | 47 | } |
48 | 48 | |
49 | 49 | @SuppressWarnings("unchecked") |
50 | - public void registerAvailableManagedTypes(@Observes final AfterDeploymentValidation event,BeanManager beanManager) { | |
50 | + public void registerAvailableManagedTypes(@Observes final AfterDeploymentValidation event, BeanManager beanManager) { | |
51 | 51 | ResourceBundle bundle = ResourceBundleProducer.create("demoiselle-core-bundle", Locale.getDefault()); |
52 | 52 | |
53 | 53 | Management monitoringManager = Beans.getReference(Management.class); |
54 | 54 | for (AnnotatedType<?> type : types) { |
55 | - if (type.getJavaClass().isInterface() || Modifier.isAbstract(type.getJavaClass().getModifiers()) ){ | |
56 | - throw new DemoiselleException(bundle.getString("management-abstract-class-defined" , type.getJavaClass().getCanonicalName())); | |
55 | + if (type.getJavaClass().isInterface() || Modifier.isAbstract(type.getJavaClass().getModifiers())) { | |
56 | + throw new DemoiselleException(bundle.getString("management-abstract-class-defined", type.getJavaClass() | |
57 | + .getCanonicalName())); | |
57 | 58 | } |
58 | 59 | |
59 | 60 | ManagedType managedType = new ManagedType(type.getJavaClass()); |
60 | 61 | monitoringManager.addManagedType(managedType); |
61 | 62 | } |
62 | - | |
63 | + | |
63 | 64 | Set<Bean<?>> extensionBeans = beanManager.getBeans(ManagementExtension.class); |
64 | - if (extensionBeans!=null){ | |
65 | - for (Bean<?> bean : extensionBeans){ | |
65 | + if (extensionBeans != null) { | |
66 | + for (Bean<?> bean : extensionBeans) { | |
66 | 67 | Class<?> extensionConcreteClass = bean.getBeanClass(); |
67 | 68 | managementExtensionCache.add((Class<? extends ManagementExtension>) extensionConcreteClass); |
68 | 69 | } |
69 | 70 | } |
70 | - | |
71 | + | |
71 | 72 | monitoringManager.initialize(managementExtensionCache); |
72 | 73 | } |
73 | 74 | |
... | ... | @@ -75,7 +76,7 @@ public class ManagementBootstrap implements Extension { |
75 | 76 | |
76 | 77 | Management manager = Beans.getReference(Management.class); |
77 | 78 | manager.shutdown(managementExtensionCache); |
78 | - | |
79 | + | |
79 | 80 | managementExtensionCache.clear(); |
80 | 81 | types.clear(); |
81 | 82 | } | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/TransactionBootstrap.java
... | ... | @@ -1,56 +0,0 @@ |
1 | -/* | |
2 | - * Demoiselle Framework | |
3 | - * Copyright (C) 2010 SERPRO | |
4 | - * ---------------------------------------------------------------------------- | |
5 | - * This file is part of Demoiselle Framework. | |
6 | - * | |
7 | - * Demoiselle Framework is free software; you can redistribute it and/or | |
8 | - * modify it under the terms of the GNU Lesser General Public License version 3 | |
9 | - * as published by the Free Software Foundation. | |
10 | - * | |
11 | - * This program is distributed in the hope that it will be useful, | |
12 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | - * GNU General Public License for more details. | |
15 | - * | |
16 | - * You should have received a copy of the GNU Lesser General Public License version 3 | |
17 | - * along with this program; if not, see <http://www.gnu.org/licenses/> | |
18 | - * or write to the Free Software Foundation, Inc., 51 Franklin Street, | |
19 | - * Fifth Floor, Boston, MA 02110-1301, USA. | |
20 | - * ---------------------------------------------------------------------------- | |
21 | - * Este arquivo é parte do Framework Demoiselle. | |
22 | - * | |
23 | - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | |
24 | - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | |
25 | - * do Software Livre (FSF). | |
26 | - * | |
27 | - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | |
28 | - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | |
29 | - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | |
30 | - * para maiores detalhes. | |
31 | - * | |
32 | - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | |
33 | - * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | |
34 | - * ou escreva para a Fundação do Software Livre (FSF) Inc., | |
35 | - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | |
36 | - */ | |
37 | -package br.gov.frameworkdemoiselle.internal.bootstrap; | |
38 | - | |
39 | -import org.slf4j.Logger; | |
40 | - | |
41 | -import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; | |
42 | -import br.gov.frameworkdemoiselle.transaction.Transaction; | |
43 | - | |
44 | -public class TransactionBootstrap extends AbstractStrategyBootstrap<Transaction> { | |
45 | - | |
46 | - private Logger logger; | |
47 | - | |
48 | - @Override | |
49 | - protected Logger getLogger() { | |
50 | - if (logger == null) { | |
51 | - logger = LoggerProducer.create(TransactionBootstrap.class); | |
52 | - } | |
53 | - | |
54 | - return logger; | |
55 | - } | |
56 | -} |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/AbstractCustomContext.java
... | ... | @@ -75,7 +75,7 @@ public abstract class AbstractCustomContext implements CustomContext { |
75 | 75 | |
76 | 76 | Class<?> type = getType(contextual); |
77 | 77 | if (getStore().contains(type)) { |
78 | - instance = (T) getStore().get(type); | |
78 | + instance = getStore().get(type); | |
79 | 79 | |
80 | 80 | } else if (creationalContext != null) { |
81 | 81 | instance = contextual.create(creationalContext); |
... | ... | @@ -96,8 +96,8 @@ public abstract class AbstractCustomContext implements CustomContext { |
96 | 96 | } |
97 | 97 | |
98 | 98 | public void setActive(boolean active) { |
99 | - if (!active && this.active){ | |
100 | - //Limpando contexto | |
99 | + if (!active && this.active) { | |
100 | + // Limpando contexto | |
101 | 101 | getStore().clear(); |
102 | 102 | } |
103 | 103 | this.active = active; |
... | ... | @@ -120,13 +120,13 @@ public abstract class AbstractCustomContext implements CustomContext { |
120 | 120 | private Store() { |
121 | 121 | } |
122 | 122 | |
123 | - | |
124 | 123 | private boolean contains(final Class<?> type) { |
125 | 124 | return this.getMap().containsKey(type); |
126 | 125 | } |
127 | 126 | |
128 | - private Object get(final Class<?> type) { | |
129 | - return this.getMap().get(type); | |
127 | + @SuppressWarnings("unchecked") | |
128 | + private <T> T get(final Class<?> type) { | |
129 | + return (T) this.getMap().get(type); | |
130 | 130 | } |
131 | 131 | |
132 | 132 | private void put(final Class<?> type, final Object instance) { |
... | ... | @@ -136,7 +136,7 @@ public abstract class AbstractCustomContext implements CustomContext { |
136 | 136 | public void clear() { |
137 | 137 | cache.clear(); |
138 | 138 | } |
139 | - | |
139 | + | |
140 | 140 | private Map<Class<?>, Object> getMap() { |
141 | 141 | ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); |
142 | 142 | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/ContextManager.java
... | ... | @@ -51,8 +51,9 @@ public class ContextManager { |
51 | 51 | private static ResourceBundle bundle; |
52 | 52 | |
53 | 53 | private static Logger logger; |
54 | - | |
55 | - private ContextManager(){} | |
54 | + | |
55 | + private ContextManager() { | |
56 | + } | |
56 | 57 | |
57 | 58 | /** |
58 | 59 | * <p> |
... | ... | @@ -105,9 +106,9 @@ public class ContextManager { |
105 | 106 | } |
106 | 107 | |
107 | 108 | ContextManager.getLogger().trace( |
108 | - ContextManager.getBundle().getString("bootstrap-context-added", | |
109 | - context.getClass().getCanonicalName(), context.getScope().getCanonicalName())); | |
110 | - | |
109 | + ContextManager.getBundle().getString("bootstrap-context-added", context.getClass().getCanonicalName(), | |
110 | + context.getScope().getCanonicalName())); | |
111 | + | |
111 | 112 | context.setActive(false); |
112 | 113 | event.addContext(context); |
113 | 114 | contexts.add(new CustomContextCounter(context)); |
... | ... | @@ -194,8 +195,10 @@ public class ContextManager { |
194 | 195 | } |
195 | 196 | |
196 | 197 | /** |
197 | - * <p>This method should be called when the application is shutting down, usually by observing | |
198 | - * the {@link BeforeShutdown} event.</p> | |
198 | + * <p> | |
199 | + * This method should be called when the application is shutting down, usually by observing the | |
200 | + * {@link BeforeShutdown} event. | |
201 | + * </p> | |
199 | 202 | */ |
200 | 203 | public static synchronized void shutdown() { |
201 | 204 | for (CustomContextCounter context : contexts) { |
... | ... | @@ -252,7 +255,7 @@ class CustomContextCounter { |
252 | 255 | public CustomContext getInternalContext() { |
253 | 256 | return this.context; |
254 | 257 | } |
255 | - | |
258 | + | |
256 | 259 | public void setInternalContext(CustomContext context) { |
257 | 260 | this.context = context; |
258 | 261 | } |
... | ... | @@ -261,19 +264,14 @@ class CustomContextCounter { |
261 | 264 | try { |
262 | 265 | BeanManager beanManager = Beans.getReference(BeanManager.class); |
263 | 266 | Context c = beanManager.getContext(context.getScope()); |
264 | - | |
265 | - | |
267 | + | |
266 | 268 | if (c == context) { |
267 | 269 | activationCounter++; |
268 | - } | |
269 | - else{ | |
270 | + } else { | |
270 | 271 | ContextManager.getLogger().trace( |
271 | 272 | ContextManager.getBundle().getString("custom-context-already-activated", |
272 | - context.getClass().getCanonicalName() | |
273 | - ,c.getScope().getCanonicalName() | |
274 | - ,c.getClass().getCanonicalName() | |
275 | - ) | |
276 | - ); | |
273 | + context.getClass().getCanonicalName(), c.getScope().getCanonicalName(), | |
274 | + c.getClass().getCanonicalName())); | |
277 | 275 | } |
278 | 276 | } catch (ContextNotActiveException ce) { |
279 | 277 | context.setActive(true); |
... | ... | @@ -299,10 +297,10 @@ class CustomContextCounter { |
299 | 297 | } catch (ContextNotActiveException ce) { |
300 | 298 | } |
301 | 299 | } |
302 | - | |
300 | + | |
303 | 301 | public synchronized void shutdown() { |
304 | 302 | context.setActive(false); |
305 | - context=null; | |
306 | - activationCounter=0; | |
303 | + context = null; | |
304 | + activationCounter = 0; | |
307 | 305 | } |
308 | 306 | } | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/ManagedContext.java
... | ... | @@ -5,14 +5,13 @@ import javax.enterprise.context.RequestScoped; |
5 | 5 | import br.gov.frameworkdemoiselle.stereotype.ManagementController; |
6 | 6 | |
7 | 7 | /** |
8 | - * Context that stores {@link RequestScoped} beans during client calls to {@link ManagementController} classes. | |
9 | - * This context is only activated when no other context is active for {@link RequestScoped}. | |
8 | + * Context that stores {@link RequestScoped} beans during client calls to {@link ManagementController} classes. This | |
9 | + * context is only activated when no other context is active for {@link RequestScoped}. | |
10 | 10 | * |
11 | 11 | * @author serpro |
12 | - * | |
13 | 12 | */ |
14 | 13 | public class ManagedContext extends ThreadLocalContext { |
15 | - | |
14 | + | |
16 | 15 | /** |
17 | 16 | * Constructs a new context. |
18 | 17 | */ | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/ThreadLocalContext.java
... | ... | @@ -51,10 +51,9 @@ package br.gov.frameworkdemoiselle.internal.context; |
51 | 51 | import java.lang.annotation.Annotation; |
52 | 52 | |
53 | 53 | /** |
54 | - * Base context that has a separated store for each thread | |
54 | + * Base context that has a separated store for each thread | |
55 | 55 | * |
56 | 56 | * @author serpro |
57 | - * | |
58 | 57 | */ |
59 | 58 | public class ThreadLocalContext extends AbstractCustomContext { |
60 | 59 | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationArrayValueExtractor.java
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | 38 | |
39 | -import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.EXTENSIONS_L1_PRIORITY; | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L2_PRIORITY; | |
40 | 40 | |
41 | 41 | import java.lang.reflect.Field; |
42 | 42 | |
... | ... | @@ -46,7 +46,7 @@ import org.apache.commons.configuration.DataConfiguration; |
46 | 46 | import br.gov.frameworkdemoiselle.annotation.Priority; |
47 | 47 | import br.gov.frameworkdemoiselle.configuration.ConfigurationValueExtractor; |
48 | 48 | |
49 | -@Priority(EXTENSIONS_L1_PRIORITY) | |
49 | +@Priority(L2_PRIORITY) | |
50 | 50 | public class ConfigurationArrayValueExtractor implements ConfigurationValueExtractor { |
51 | 51 | |
52 | 52 | @Override | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationClassValueExtractor.java
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | 38 | |
39 | -import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.EXTENSIONS_L1_PRIORITY; | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L2_PRIORITY; | |
40 | 40 | |
41 | 41 | import java.lang.reflect.Field; |
42 | 42 | |
... | ... | @@ -46,7 +46,7 @@ import br.gov.frameworkdemoiselle.annotation.Priority; |
46 | 46 | import br.gov.frameworkdemoiselle.configuration.ConfigurationValueExtractor; |
47 | 47 | import br.gov.frameworkdemoiselle.util.Reflections; |
48 | 48 | |
49 | -@Priority(EXTENSIONS_L1_PRIORITY) | |
49 | +@Priority(L2_PRIORITY) | |
50 | 50 | public class ConfigurationClassValueExtractor implements ConfigurationValueExtractor { |
51 | 51 | |
52 | 52 | @Override | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationMapValueExtractor.java
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | 38 | |
39 | -import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.EXTENSIONS_L1_PRIORITY; | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L2_PRIORITY; | |
40 | 40 | |
41 | 41 | import java.lang.reflect.Field; |
42 | 42 | import java.util.HashMap; |
... | ... | @@ -50,7 +50,7 @@ import org.apache.commons.configuration.Configuration; |
50 | 50 | import br.gov.frameworkdemoiselle.annotation.Priority; |
51 | 51 | import br.gov.frameworkdemoiselle.configuration.ConfigurationValueExtractor; |
52 | 52 | |
53 | -@Priority(EXTENSIONS_L1_PRIORITY) | |
53 | +@Priority(L2_PRIORITY) | |
54 | 54 | public class ConfigurationMapValueExtractor implements ConfigurationValueExtractor { |
55 | 55 | |
56 | 56 | @Override | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationPrimitiveOrWrapperValueExtractor.java
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | 38 | |
39 | -import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.EXTENSIONS_L1_PRIORITY; | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L2_PRIORITY; | |
40 | 40 | |
41 | 41 | import java.lang.reflect.Field; |
42 | 42 | import java.util.HashSet; |
... | ... | @@ -50,7 +50,7 @@ import org.apache.commons.lang.ClassUtils; |
50 | 50 | import br.gov.frameworkdemoiselle.annotation.Priority; |
51 | 51 | import br.gov.frameworkdemoiselle.configuration.ConfigurationValueExtractor; |
52 | 52 | |
53 | -@Priority(EXTENSIONS_L1_PRIORITY) | |
53 | +@Priority(L2_PRIORITY) | |
54 | 54 | public class ConfigurationPrimitiveOrWrapperValueExtractor implements ConfigurationValueExtractor { |
55 | 55 | |
56 | 56 | private static final Set<Object> wrappers = new HashSet<Object>(); | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/ConfigurationStringValueExtractor.java
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | 38 | |
39 | -import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.EXTENSIONS_L1_PRIORITY; | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L2_PRIORITY; | |
40 | 40 | |
41 | 41 | import java.lang.reflect.Field; |
42 | 42 | |
... | ... | @@ -45,7 +45,7 @@ import org.apache.commons.configuration.Configuration; |
45 | 45 | import br.gov.frameworkdemoiselle.annotation.Priority; |
46 | 46 | import br.gov.frameworkdemoiselle.configuration.ConfigurationValueExtractor; |
47 | 47 | |
48 | -@Priority(EXTENSIONS_L1_PRIORITY) | |
48 | +@Priority(L2_PRIORITY) | |
49 | 49 | public class ConfigurationStringValueExtractor implements ConfigurationValueExtractor { |
50 | 50 | |
51 | 51 | @Override | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/DefaultAuthenticator.java
... | ... | @@ -36,14 +36,16 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | 38 | |
39 | -import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.CORE_PRIORITY; | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L1_PRIORITY; | |
40 | + | |
41 | +import java.security.Principal; | |
42 | + | |
40 | 43 | import br.gov.frameworkdemoiselle.DemoiselleException; |
41 | 44 | import br.gov.frameworkdemoiselle.annotation.Priority; |
42 | 45 | import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; |
43 | 46 | import br.gov.frameworkdemoiselle.security.AuthenticationException; |
44 | 47 | import br.gov.frameworkdemoiselle.security.Authenticator; |
45 | 48 | import br.gov.frameworkdemoiselle.security.SecurityContext; |
46 | -import br.gov.frameworkdemoiselle.security.User; | |
47 | 49 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
48 | 50 | |
49 | 51 | /** |
... | ... | @@ -52,8 +54,7 @@ import br.gov.frameworkdemoiselle.util.ResourceBundle; |
52 | 54 | * @author SERPRO |
53 | 55 | * @see Authenticator |
54 | 56 | */ |
55 | -@SuppressWarnings("deprecation") | |
56 | -@Priority(CORE_PRIORITY) | |
57 | +@Priority(L1_PRIORITY) | |
57 | 58 | public class DefaultAuthenticator implements Authenticator { |
58 | 59 | |
59 | 60 | private static final long serialVersionUID = 1L; |
... | ... | @@ -80,7 +81,7 @@ public class DefaultAuthenticator implements Authenticator { |
80 | 81 | * @see br.gov.frameworkdemoiselle.security.Authenticator#getUser() |
81 | 82 | */ |
82 | 83 | @Override |
83 | - public User getUser() { | |
84 | + public Principal getUser() { | |
84 | 85 | throw getException(); |
85 | 86 | } |
86 | 87 | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/DefaultAuthorizer.java
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | 38 | |
39 | -import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.CORE_PRIORITY; | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L1_PRIORITY; | |
40 | 40 | import br.gov.frameworkdemoiselle.DemoiselleException; |
41 | 41 | import br.gov.frameworkdemoiselle.annotation.Priority; |
42 | 42 | import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; |
... | ... | @@ -50,7 +50,7 @@ import br.gov.frameworkdemoiselle.util.ResourceBundle; |
50 | 50 | * @author SERPRO |
51 | 51 | * @see Authorizer |
52 | 52 | */ |
53 | -@Priority(CORE_PRIORITY) | |
53 | +@Priority(L1_PRIORITY) | |
54 | 54 | public class DefaultAuthorizer implements Authorizer { |
55 | 55 | |
56 | 56 | private static final long serialVersionUID = 1L; | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/DefaultTransaction.java
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | 38 | |
39 | -import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.CORE_PRIORITY; | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L1_PRIORITY; | |
40 | 40 | import br.gov.frameworkdemoiselle.DemoiselleException; |
41 | 41 | import br.gov.frameworkdemoiselle.annotation.Priority; |
42 | 42 | import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; |
... | ... | @@ -50,7 +50,7 @@ import br.gov.frameworkdemoiselle.util.ResourceBundle; |
50 | 50 | * @author SERPRO |
51 | 51 | * @see Transaction |
52 | 52 | */ |
53 | -@Priority(CORE_PRIORITY) | |
53 | +@Priority(L1_PRIORITY) | |
54 | 54 | public class DefaultTransaction implements Transaction { |
55 | 55 | |
56 | 56 | private static final long serialVersionUID = 1L; | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/LoggerMessageAppender.java
0 → 100644
... | ... | @@ -0,0 +1,74 @@ |
1 | +/* | |
2 | + * Demoiselle Framework | |
3 | + * Copyright (C) 2010 SERPRO | |
4 | + * ---------------------------------------------------------------------------- | |
5 | + * This file is part of Demoiselle Framework. | |
6 | + * | |
7 | + * Demoiselle Framework is free software; you can redistribute it and/or | |
8 | + * modify it under the terms of the GNU Lesser General Public License version 3 | |
9 | + * as published by the Free Software Foundation. | |
10 | + * | |
11 | + * This program is distributed in the hope that it will be useful, | |
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
15 | + * | |
16 | + * You should have received a copy of the GNU Lesser General Public License version 3 | |
17 | + * along with this program; if not, see <http://www.gnu.org/licenses/> | |
18 | + * or write to the Free Software Foundation, Inc., 51 Franklin Street, | |
19 | + * Fifth Floor, Boston, MA 02110-1301, USA. | |
20 | + * ---------------------------------------------------------------------------- | |
21 | + * Este arquivo é parte do Framework Demoiselle. | |
22 | + * | |
23 | + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | |
24 | + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | |
25 | + * do Software Livre (FSF). | |
26 | + * | |
27 | + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | |
28 | + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | |
29 | + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | |
30 | + * para maiores detalhes. | |
31 | + * | |
32 | + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | |
33 | + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | |
34 | + * ou escreva para a Fundação do Software Livre (FSF) Inc., | |
35 | + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | |
36 | + */ | |
37 | +package br.gov.frameworkdemoiselle.internal.implementation; | |
38 | + | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L1_PRIORITY; | |
40 | + | |
41 | +import javax.inject.Inject; | |
42 | + | |
43 | +import org.slf4j.Logger; | |
44 | + | |
45 | +import br.gov.frameworkdemoiselle.annotation.Priority; | |
46 | +import br.gov.frameworkdemoiselle.message.Message; | |
47 | +import br.gov.frameworkdemoiselle.message.MessageAppender; | |
48 | + | |
49 | +@Priority(L1_PRIORITY) | |
50 | +public class LoggerMessageAppender implements MessageAppender { | |
51 | + | |
52 | + private static final long serialVersionUID = 1L; | |
53 | + | |
54 | + @Inject | |
55 | + private Logger logger; | |
56 | + | |
57 | + @Override | |
58 | + public void append(Message message) { | |
59 | + String text = message.getText(); | |
60 | + | |
61 | + switch (message.getSeverity()) { | |
62 | + case INFO: | |
63 | + logger.info(text); | |
64 | + break; | |
65 | + | |
66 | + case WARN: | |
67 | + logger.warn(text); | |
68 | + break; | |
69 | + | |
70 | + default: | |
71 | + logger.error(text); | |
72 | + } | |
73 | + } | |
74 | +} | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/MessageContextImpl.java
... | ... | @@ -48,8 +48,10 @@ import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; |
48 | 48 | import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; |
49 | 49 | import br.gov.frameworkdemoiselle.message.DefaultMessage; |
50 | 50 | import br.gov.frameworkdemoiselle.message.Message; |
51 | +import br.gov.frameworkdemoiselle.message.MessageAppender; | |
51 | 52 | import br.gov.frameworkdemoiselle.message.MessageContext; |
52 | 53 | import br.gov.frameworkdemoiselle.message.SeverityType; |
54 | +import br.gov.frameworkdemoiselle.util.Beans; | |
53 | 55 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
54 | 56 | |
55 | 57 | /** |
... | ... | @@ -79,7 +81,13 @@ public class MessageContextImpl implements Serializable, MessageContext { |
79 | 81 | } |
80 | 82 | |
81 | 83 | getLogger().debug(getBundle().getString("adding-message-to-context", message.toString())); |
82 | - messages.add(aux); | |
84 | + getAppender().append(aux); | |
85 | + } | |
86 | + | |
87 | + private MessageAppender getAppender() { | |
88 | + Class<? extends MessageAppender> appenderClass = StrategySelector.selectClass(MessageAppender.class); | |
89 | + | |
90 | + return Beans.getReference(appenderClass); | |
83 | 91 | } |
84 | 92 | |
85 | 93 | @Override | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/SecurityContextImpl.java
... | ... | @@ -42,8 +42,6 @@ import java.security.Principal; |
42 | 42 | import javax.inject.Named; |
43 | 43 | |
44 | 44 | import br.gov.frameworkdemoiselle.DemoiselleException; |
45 | -import br.gov.frameworkdemoiselle.internal.bootstrap.AuthenticatorBootstrap; | |
46 | -import br.gov.frameworkdemoiselle.internal.bootstrap.AuthorizerBootstrap; | |
47 | 45 | import br.gov.frameworkdemoiselle.internal.configuration.SecurityConfig; |
48 | 46 | import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; |
49 | 47 | import br.gov.frameworkdemoiselle.security.AfterLoginSuccessful; |
... | ... | @@ -74,11 +72,10 @@ public class SecurityContextImpl implements SecurityContext { |
74 | 72 | |
75 | 73 | private Authenticator getAuthenticator() { |
76 | 74 | if (this.authenticator == null) { |
77 | - AuthenticatorBootstrap bootstrap = Beans.getReference(AuthenticatorBootstrap.class); | |
78 | 75 | Class<? extends Authenticator> clazz = getConfig().getAuthenticatorClass(); |
79 | 76 | |
80 | 77 | if (clazz == null) { |
81 | - clazz = StrategySelector.selectClass(Authenticator.class, bootstrap.getCache()); | |
78 | + clazz = StrategySelector.selectClass(Authenticator.class); | |
82 | 79 | } |
83 | 80 | |
84 | 81 | this.authenticator = Beans.getReference(clazz); |
... | ... | @@ -89,11 +86,10 @@ public class SecurityContextImpl implements SecurityContext { |
89 | 86 | |
90 | 87 | private Authorizer getAuthorizer() { |
91 | 88 | if (this.authorizer == null) { |
92 | - AuthorizerBootstrap bootstrap = Beans.getReference(AuthorizerBootstrap.class); | |
93 | 89 | Class<? extends Authorizer> clazz = getConfig().getAuthorizerClass(); |
94 | 90 | |
95 | 91 | if (clazz == null) { |
96 | - clazz = StrategySelector.selectClass(Authorizer.class, bootstrap.getCache()); | |
92 | + clazz = StrategySelector.selectClass(Authorizer.class); | |
97 | 93 | } |
98 | 94 | |
99 | 95 | this.authorizer = Beans.getReference(clazz); | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/StrategySelector.java
... | ... | @@ -36,32 +36,26 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.internal.implementation; |
38 | 38 | |
39 | -import static br.gov.frameworkdemoiselle.annotation.Priority.MIN_PRIORITY; | |
40 | - | |
41 | 39 | import java.io.Serializable; |
42 | 40 | import java.util.ArrayList; |
43 | 41 | import java.util.Collection; |
44 | 42 | import java.util.HashMap; |
43 | +import java.util.HashSet; | |
45 | 44 | import java.util.List; |
46 | 45 | import java.util.Map; |
46 | +import java.util.Set; | |
47 | 47 | |
48 | 48 | import javax.enterprise.inject.AmbiguousResolutionException; |
49 | +import javax.enterprise.inject.spi.Bean; | |
49 | 50 | |
50 | 51 | import br.gov.frameworkdemoiselle.DemoiselleException; |
51 | 52 | import br.gov.frameworkdemoiselle.annotation.Priority; |
52 | 53 | import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; |
54 | +import br.gov.frameworkdemoiselle.util.Beans; | |
53 | 55 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
54 | 56 | |
55 | 57 | public final class StrategySelector implements Serializable { |
56 | 58 | |
57 | - public static final int CORE_PRIORITY = MIN_PRIORITY; | |
58 | - | |
59 | - public static final int EXTENSIONS_L1_PRIORITY = CORE_PRIORITY - 100; | |
60 | - | |
61 | - public static final int EXTENSIONS_L2_PRIORITY = EXTENSIONS_L1_PRIORITY - 100; | |
62 | - | |
63 | - public static final int COMPONENTS_PRIORITY = EXTENSIONS_L2_PRIORITY - 100; | |
64 | - | |
65 | 59 | private static final long serialVersionUID = 1L; |
66 | 60 | |
67 | 61 | private static ResourceBundle bundle; |
... | ... | @@ -92,7 +86,7 @@ public final class StrategySelector implements Serializable { |
92 | 86 | return map.get(elected); |
93 | 87 | } |
94 | 88 | |
95 | - public static <T> Class<? extends T> selectClass(Class<T> type, Collection<Class<? extends T>> options) { | |
89 | + private static <T> Class<? extends T> selectClass(Class<T> type, Collection<Class<? extends T>> options) { | |
96 | 90 | Class<? extends T> selected = null; |
97 | 91 | |
98 | 92 | for (Class<? extends T> option : options) { |
... | ... | @@ -102,13 +96,28 @@ public final class StrategySelector implements Serializable { |
102 | 96 | } |
103 | 97 | |
104 | 98 | if (selected != null) { |
105 | - checkForAmbiguity(type, selected, options); | |
99 | + performAmbiguityCheck(type, selected, options); | |
106 | 100 | } |
107 | 101 | |
108 | 102 | return selected; |
109 | 103 | } |
110 | 104 | |
111 | - private static <T> void checkForAmbiguity(Class<T> type, Class<? extends T> selected, | |
105 | + public static <T> Class<? extends T> selectClass(Class<T> type) { | |
106 | + return selectClass(type, getOptions(type)); | |
107 | + } | |
108 | + | |
109 | + @SuppressWarnings("unchecked") | |
110 | + private static <T> Collection<Class<? extends T>> getOptions(Class<T> type) { | |
111 | + Set<Class<? extends T>> result = new HashSet<Class<? extends T>>(); | |
112 | + | |
113 | + for (Bean<?> bean : Beans.getBeanManager().getBeans(type)) { | |
114 | + result.add((Class<? extends T>) bean.getBeanClass()); | |
115 | + } | |
116 | + | |
117 | + return result; | |
118 | + } | |
119 | + | |
120 | + private static <T> void performAmbiguityCheck(Class<T> type, Class<? extends T> selected, | |
112 | 121 | Collection<Class<? extends T>> options) { |
113 | 122 | int selectedPriority = getPriority(selected); |
114 | 123 | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/TransactionContextImpl.java
... | ... | @@ -38,7 +38,6 @@ package br.gov.frameworkdemoiselle.internal.implementation; |
38 | 38 | |
39 | 39 | import javax.inject.Named; |
40 | 40 | |
41 | -import br.gov.frameworkdemoiselle.internal.bootstrap.TransactionBootstrap; | |
42 | 41 | import br.gov.frameworkdemoiselle.internal.configuration.TransactionConfig; |
43 | 42 | import br.gov.frameworkdemoiselle.transaction.Transaction; |
44 | 43 | import br.gov.frameworkdemoiselle.transaction.TransactionContext; |
... | ... | @@ -56,13 +55,13 @@ public class TransactionContextImpl implements TransactionContext { |
56 | 55 | |
57 | 56 | private Transaction transaction; |
58 | 57 | |
59 | - private Transaction getTransaction() { | |
58 | + @Override | |
59 | + public Transaction getCurrentTransaction() { | |
60 | 60 | if (this.transaction == null) { |
61 | - TransactionBootstrap bootstrap = Beans.getReference(TransactionBootstrap.class); | |
62 | 61 | Class<? extends Transaction> clazz = getConfig().getTransactionClass(); |
63 | 62 | |
64 | 63 | if (clazz == null) { |
65 | - clazz = StrategySelector.selectClass(Transaction.class, bootstrap.getCache()); | |
64 | + clazz = StrategySelector.selectClass(Transaction.class); | |
66 | 65 | } |
67 | 66 | |
68 | 67 | this.transaction = Beans.getReference(clazz); |
... | ... | @@ -71,11 +70,6 @@ public class TransactionContextImpl implements TransactionContext { |
71 | 70 | return this.transaction; |
72 | 71 | } |
73 | 72 | |
74 | - @Override | |
75 | - public Transaction getCurrentTransaction() { | |
76 | - return getTransaction(); | |
77 | - } | |
78 | - | |
79 | 73 | private TransactionConfig getConfig() { |
80 | 74 | return Beans.getReference(TransactionConfig.class); |
81 | 75 | } | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/interceptor/ExceptionHandlerInterceptor.java
... | ... | @@ -57,7 +57,7 @@ public class ExceptionHandlerInterceptor extends br.gov.frameworkdemoiselle.exce |
57 | 57 | |
58 | 58 | @Inject |
59 | 59 | private Logger logger; |
60 | - | |
60 | + | |
61 | 61 | @Override |
62 | 62 | @AroundInvoke |
63 | 63 | public Object manage(InvocationContext ic) throws Exception { |
... | ... | @@ -65,4 +65,3 @@ public class ExceptionHandlerInterceptor extends br.gov.frameworkdemoiselle.exce |
65 | 65 | return super.manage(ic); |
66 | 66 | } |
67 | 67 | } |
68 | - | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/proxy/Slf4jLoggerProxy.java
... | ... | @@ -61,12 +61,12 @@ public class Slf4jLoggerProxy implements Logger, Serializable { |
61 | 61 | private transient Logger delegate; |
62 | 62 | |
63 | 63 | private final Class<?> type; |
64 | - | |
64 | + | |
65 | 65 | private Logger getDelegate() { |
66 | - if(delegate == null) { | |
66 | + if (delegate == null) { | |
67 | 67 | delegate = LoggerFactory.getLogger(type); |
68 | 68 | } |
69 | - | |
69 | + | |
70 | 70 | return delegate; |
71 | 71 | } |
72 | 72 | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/lifecycle/ManagementExtension.java
... | ... | @@ -42,34 +42,36 @@ import br.gov.frameworkdemoiselle.internal.management.ManagedType; |
42 | 42 | import br.gov.frameworkdemoiselle.stereotype.ManagementController; |
43 | 43 | |
44 | 44 | /** |
45 | - * | |
46 | - * <p>Interface defining the lifecycle of a <b>management extension</b>, an extension | |
47 | - * capable of exposing {@link ManagementController}'s to external clients in one | |
48 | - * of the available management technologies, such as JMX or SNMP.</p> | |
49 | - * | |
50 | - * <p>To include a management extension into the management lifecycle, it just needs | |
51 | - * to implement this interface and be a CDI bean (have a <b>beans.xml</b> file inside | |
52 | - * the META-INF folder of it's java package). The Demoiselle Core lifecycle controller | |
53 | - * will call the {@link #initialize(List managedTypes)} and {@link #shutdown(List managedTypes)} methods at the apropriate times.</p> | |
45 | + * <p> | |
46 | + * Interface defining the lifecycle of a <b>management extension</b>, an extension capable of exposing | |
47 | + * {@link ManagementController}'s to external clients in one of the available management technologies, such as JMX or | |
48 | + * SNMP. | |
49 | + * </p> | |
50 | + * <p> | |
51 | + * To include a management extension into the management lifecycle, it just needs to implement this interface and be a | |
52 | + * CDI bean (have a <b>beans.xml</b> file inside the META-INF folder of it's java package). The Demoiselle Core | |
53 | + * lifecycle controller will call the {@link #initialize(List managedTypes)} and {@link #shutdown(List managedTypes)} | |
54 | + * methods at the apropriate times. | |
55 | + * </p> | |
54 | 56 | * |
55 | 57 | * @author serpro |
56 | - * | |
57 | 58 | */ |
58 | 59 | public interface ManagementExtension { |
59 | 60 | |
60 | 61 | /** |
61 | - * This method is called during the application initialization process for each concrete | |
62 | - * implementation of this interface. | |
62 | + * This method is called during the application initialization process for each concrete implementation of this | |
63 | + * interface. | |
63 | 64 | * |
64 | - * @param managedTypes The list of discovered {@link ManagementController} classes. | |
65 | + * @param managedTypes | |
66 | + * The list of discovered {@link ManagementController} classes. | |
65 | 67 | */ |
66 | 68 | void initialize(List<ManagedType> managedTypes); |
67 | 69 | |
68 | 70 | /** |
69 | - * This method is called during the application shutdown process for each concrete | |
70 | - * implementation of this interface. | |
71 | + * This method is called during the application shutdown process for each concrete implementation of this interface. | |
71 | 72 | * |
72 | - * @param managedTypes The list of discovered {@link ManagementController} classes. | |
73 | + * @param managedTypes | |
74 | + * The list of discovered {@link ManagementController} classes. | |
73 | 75 | */ |
74 | 76 | void shutdown(List<ManagedType> managedTypes); |
75 | 77 | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/lifecycle/Shutdown.java
... | ... | @@ -48,17 +48,20 @@ import java.lang.annotation.Target; |
48 | 48 | * Take a look at the following usage sample: |
49 | 49 | * <p> |
50 | 50 | * <blockquote> |
51 | + * | |
51 | 52 | * <pre> |
52 | 53 | * public class Finalizer { |
53 | 54 | * |
54 | - * @Shutdown | |
55 | + * @Shutdown | |
55 | 56 | * @Priority(5) |
56 | 57 | * public void finalize() { |
57 | 58 | * ... |
58 | 59 | * } |
59 | 60 | * } |
60 | 61 | * |
62 | + * | |
61 | 63 | * </pre> |
64 | + * | |
62 | 65 | * </blockquote> |
63 | 66 | * <p> |
64 | 67 | * | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/lifecycle/Startup.java
... | ... | @@ -48,17 +48,20 @@ import java.lang.annotation.Target; |
48 | 48 | * Take a look at the following usage sample: |
49 | 49 | * <p> |
50 | 50 | * <blockquote> |
51 | + * | |
51 | 52 | * <pre> |
52 | 53 | * public class Finalizer { |
53 | 54 | * |
54 | - * @Startup | |
55 | + * @Startup | |
55 | 56 | * @Priority(1) |
56 | 57 | * public void init() { |
57 | 58 | * ... |
58 | 59 | * } |
59 | 60 | * } |
60 | 61 | * |
62 | + * | |
61 | 63 | * </pre> |
64 | + * | |
62 | 65 | * </blockquote> |
63 | 66 | * <p> |
64 | 67 | * | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/message/DefaultMessage.java
... | ... | @@ -36,8 +36,6 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.message; |
38 | 38 | |
39 | -import javax.enterprise.inject.Alternative; | |
40 | - | |
41 | 39 | import br.gov.frameworkdemoiselle.util.Beans; |
42 | 40 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
43 | 41 | import br.gov.frameworkdemoiselle.util.Strings; |
... | ... | @@ -45,7 +43,6 @@ import br.gov.frameworkdemoiselle.util.Strings; |
45 | 43 | /** |
46 | 44 | * @author SERPRO |
47 | 45 | */ |
48 | -@Alternative | |
49 | 46 | public class DefaultMessage implements Message { |
50 | 47 | |
51 | 48 | private final String originalText; |
... | ... | @@ -65,28 +62,27 @@ public class DefaultMessage implements Message { |
65 | 62 | this.severity = (severity == null ? DEFAULT_SEVERITY : severity); |
66 | 63 | this.params = params; |
67 | 64 | this.bundle = Beans.getReference(ResourceBundle.class); |
65 | + | |
66 | + initParsedText(); | |
68 | 67 | } |
69 | 68 | |
70 | 69 | public DefaultMessage(String text, Object... params) { |
71 | 70 | this(text, null, (Object[]) params); |
72 | 71 | } |
73 | 72 | |
74 | - public String getText() { | |
75 | - initParsedText(); | |
76 | - return parsedText; | |
77 | - } | |
78 | - | |
79 | 73 | private void initParsedText() { |
80 | - if (parsedText == null) { | |
81 | - if (Strings.isResourceBundleKeyFormat(originalText)) { | |
82 | - parsedText = bundle.getString(Strings.removeBraces(originalText)); | |
83 | - | |
84 | - } else if (originalText != null) { | |
85 | - parsedText = new String(originalText); | |
86 | - } | |
74 | + if (Strings.isResourceBundleKeyFormat(originalText)) { | |
75 | + parsedText = bundle.getString(Strings.removeBraces(originalText)); | |
87 | 76 | |
88 | - parsedText = Strings.getString(parsedText, params); | |
77 | + } else if (originalText != null) { | |
78 | + parsedText = new String(originalText); | |
89 | 79 | } |
80 | + | |
81 | + parsedText = Strings.getString(parsedText, params); | |
82 | + } | |
83 | + | |
84 | + public String getText() { | |
85 | + return parsedText; | |
90 | 86 | } |
91 | 87 | |
92 | 88 | public SeverityType getSeverity() { |
... | ... | @@ -95,7 +91,40 @@ public class DefaultMessage implements Message { |
95 | 91 | |
96 | 92 | @Override |
97 | 93 | public String toString() { |
98 | - initParsedText(); | |
99 | 94 | return Strings.toString(this); |
100 | 95 | } |
96 | + | |
97 | + @Override | |
98 | + public int hashCode() { | |
99 | + final int prime = 31; | |
100 | + int result = 1; | |
101 | + result = prime * result + ((parsedText == null) ? 0 : parsedText.hashCode()); | |
102 | + result = prime * result + ((severity == null) ? 0 : severity.hashCode()); | |
103 | + return result; | |
104 | + } | |
105 | + | |
106 | + @Override | |
107 | + public boolean equals(Object obj) { | |
108 | + if (this == obj) { | |
109 | + return true; | |
110 | + } | |
111 | + if (obj == null) { | |
112 | + return false; | |
113 | + } | |
114 | + if (getClass() != obj.getClass()) { | |
115 | + return false; | |
116 | + } | |
117 | + DefaultMessage other = (DefaultMessage) obj; | |
118 | + if (parsedText == null) { | |
119 | + if (other.parsedText != null) { | |
120 | + return false; | |
121 | + } | |
122 | + } else if (!parsedText.equals(other.parsedText)) { | |
123 | + return false; | |
124 | + } | |
125 | + if (severity != other.severity) { | |
126 | + return false; | |
127 | + } | |
128 | + return true; | |
129 | + } | |
101 | 130 | } | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/message/MessageAppender.java
0 → 100644
... | ... | @@ -0,0 +1,47 @@ |
1 | +/* | |
2 | + * Demoiselle Framework | |
3 | + * Copyright (C) 2010 SERPRO | |
4 | + * ---------------------------------------------------------------------------- | |
5 | + * This file is part of Demoiselle Framework. | |
6 | + * | |
7 | + * Demoiselle Framework is free software; you can redistribute it and/or | |
8 | + * modify it under the terms of the GNU Lesser General Public License version 3 | |
9 | + * as published by the Free Software Foundation. | |
10 | + * | |
11 | + * This program is distributed in the hope that it will be useful, | |
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
15 | + * | |
16 | + * You should have received a copy of the GNU Lesser General Public License version 3 | |
17 | + * along with this program; if not, see <http://www.gnu.org/licenses/> | |
18 | + * or write to the Free Software Foundation, Inc., 51 Franklin Street, | |
19 | + * Fifth Floor, Boston, MA 02110-1301, USA. | |
20 | + * ---------------------------------------------------------------------------- | |
21 | + * Este arquivo é parte do Framework Demoiselle. | |
22 | + * | |
23 | + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | |
24 | + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | |
25 | + * do Software Livre (FSF). | |
26 | + * | |
27 | + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | |
28 | + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | |
29 | + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | |
30 | + * para maiores detalhes. | |
31 | + * | |
32 | + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | |
33 | + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | |
34 | + * ou escreva para a Fundação do Software Livre (FSF) Inc., | |
35 | + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | |
36 | + */ | |
37 | +package br.gov.frameworkdemoiselle.message; | |
38 | + | |
39 | +import java.io.Serializable; | |
40 | + | |
41 | +/** | |
42 | + * @author SERPRO | |
43 | + */ | |
44 | +public interface MessageAppender extends Serializable { | |
45 | + | |
46 | + void append(Message message); | |
47 | +} | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/message/MessageContext.java
... | ... | @@ -65,11 +65,13 @@ public interface MessageContext { |
65 | 65 | /** |
66 | 66 | * Returns all messages in the context. |
67 | 67 | */ |
68 | + @Deprecated | |
68 | 69 | List<Message> getMessages(); |
69 | 70 | |
70 | 71 | /** |
71 | 72 | * Clears the list of messages in the context. |
72 | 73 | */ |
74 | + @Deprecated | |
73 | 75 | void clear(); |
74 | 76 | |
75 | 77 | } | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/pagination/Pagination.java
impl/core/src/main/java/br/gov/frameworkdemoiselle/pagination/PaginationContext.java
... | ... | @@ -51,7 +51,8 @@ public interface PaginationContext { |
51 | 51 | /** |
52 | 52 | * Retrieves the pagination according to the class type specified. |
53 | 53 | * |
54 | - * @param clazz a {@code Class} type | |
54 | + * @param clazz | |
55 | + * a {@code Class} type | |
55 | 56 | * @return Pagination |
56 | 57 | */ |
57 | 58 | Pagination getPagination(Class<?> clazz); |
... | ... | @@ -60,8 +61,10 @@ public interface PaginationContext { |
60 | 61 | * Retrieves the pagination according to the class type specified. If not existing, creates the pagination whenever |
61 | 62 | * {@code create} parameter is true. |
62 | 63 | * |
63 | - * @param clazz a {@code Class} type | |
64 | - * @param create determines whether pagination must always be returned | |
64 | + * @param clazz | |
65 | + * a {@code Class} type | |
66 | + * @param create | |
67 | + * determines whether pagination must always be returned | |
65 | 68 | * @return Pagination |
66 | 69 | */ |
67 | 70 | Pagination getPagination(Class<?> clazz, boolean create); | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/security/Authenticator.java
... | ... | @@ -49,7 +49,8 @@ public interface Authenticator extends Serializable { |
49 | 49 | /** |
50 | 50 | * Executes the necessary steps to authenticate an user. |
51 | 51 | * |
52 | - * @throws AuthenticationException When the authentication process fails, this exception is thrown. | |
52 | + * @throws AuthenticationException | |
53 | + * When the authentication process fails, this exception is thrown. | |
53 | 54 | */ |
54 | 55 | void authenticate() throws AuthenticationException; |
55 | 56 | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/security/RequiredPermissionInterceptor.java
... | ... | @@ -46,9 +46,8 @@ import javax.interceptor.InvocationContext; |
46 | 46 | import org.slf4j.Logger; |
47 | 47 | |
48 | 48 | import br.gov.frameworkdemoiselle.annotation.Name; |
49 | -import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; | |
50 | -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; | |
51 | 49 | import br.gov.frameworkdemoiselle.util.Beans; |
50 | +import br.gov.frameworkdemoiselle.util.NameQualifier; | |
52 | 51 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
53 | 52 | import br.gov.frameworkdemoiselle.util.Strings; |
54 | 53 | |
... | ... | @@ -63,9 +62,9 @@ public class RequiredPermissionInterceptor implements Serializable { |
63 | 62 | |
64 | 63 | private static final long serialVersionUID = 1L; |
65 | 64 | |
66 | - private static ResourceBundle bundle; | |
65 | + private static transient ResourceBundle bundle; | |
67 | 66 | |
68 | - private static Logger logger; | |
67 | + private static transient Logger logger; | |
69 | 68 | |
70 | 69 | /** |
71 | 70 | * Gets the values for both resource and operation properties of {@code @RequiredPermission}. Delegates to |
... | ... | @@ -168,7 +167,7 @@ public class RequiredPermissionInterceptor implements Serializable { |
168 | 167 | |
169 | 168 | private static ResourceBundle getBundle() { |
170 | 169 | if (bundle == null) { |
171 | - bundle = ResourceBundleProducer.create("demoiselle-core-bundle"); | |
170 | + bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-core-bundle")); | |
172 | 171 | } |
173 | 172 | |
174 | 173 | return bundle; |
... | ... | @@ -176,7 +175,7 @@ public class RequiredPermissionInterceptor implements Serializable { |
176 | 175 | |
177 | 176 | private static Logger getLogger() { |
178 | 177 | if (logger == null) { |
179 | - logger = LoggerProducer.create(RequiredPermissionInterceptor.class); | |
178 | + logger = Beans.getReference(Logger.class, new NameQualifier(RequiredPermissionInterceptor.class.getName())); | |
180 | 179 | } |
181 | 180 | |
182 | 181 | return logger; | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/security/RequiredRoleInterceptor.java
... | ... | @@ -47,9 +47,8 @@ import javax.interceptor.InvocationContext; |
47 | 47 | |
48 | 48 | import org.slf4j.Logger; |
49 | 49 | |
50 | -import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; | |
51 | -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; | |
52 | 50 | import br.gov.frameworkdemoiselle.util.Beans; |
51 | +import br.gov.frameworkdemoiselle.util.NameQualifier; | |
53 | 52 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
54 | 53 | |
55 | 54 | /** |
... | ... | @@ -63,9 +62,9 @@ public class RequiredRoleInterceptor implements Serializable { |
63 | 62 | |
64 | 63 | private static final long serialVersionUID = 1L; |
65 | 64 | |
66 | - private static ResourceBundle bundle; | |
65 | + private static transient ResourceBundle bundle; | |
67 | 66 | |
68 | - private static Logger logger; | |
67 | + private static transient Logger logger; | |
69 | 68 | |
70 | 69 | /** |
71 | 70 | * Gets the value property of {@code @RequiredRole}. Delegates to {@code SecurityContext} check role. If the user |
... | ... | @@ -102,7 +101,6 @@ public class RequiredRoleInterceptor implements Serializable { |
102 | 101 | .error(getBundle().getString("does-not-have-role", getSecurityContext().getCurrentUser().getName(), |
103 | 102 | roles)); |
104 | 103 | |
105 | - // AuthorizationException a = new AuthorizationException(null); | |
106 | 104 | throw new AuthorizationException(getBundle().getString("does-not-have-role-ui", roles)); |
107 | 105 | } |
108 | 106 | |
... | ... | @@ -139,7 +137,7 @@ public class RequiredRoleInterceptor implements Serializable { |
139 | 137 | |
140 | 138 | private static ResourceBundle getBundle() { |
141 | 139 | if (bundle == null) { |
142 | - bundle = ResourceBundleProducer.create("demoiselle-core-bundle"); | |
140 | + bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-core-bundle")); | |
143 | 141 | } |
144 | 142 | |
145 | 143 | return bundle; |
... | ... | @@ -147,7 +145,7 @@ public class RequiredRoleInterceptor implements Serializable { |
147 | 145 | |
148 | 146 | private static Logger getLogger() { |
149 | 147 | if (logger == null) { |
150 | - logger = LoggerProducer.create(RequiredRoleInterceptor.class); | |
148 | + logger = Beans.getReference(Logger.class, new NameQualifier(RequiredRoleInterceptor.class.getName())); | |
151 | 149 | } |
152 | 150 | |
153 | 151 | return logger; | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/security/User.java
impl/core/src/main/java/br/gov/frameworkdemoiselle/stereotype/ManagementController.java
... | ... | @@ -49,17 +49,23 @@ import javax.enterprise.inject.Stereotype; |
49 | 49 | import javax.enterprise.util.Nonbinding; |
50 | 50 | |
51 | 51 | /** |
52 | - * <p>Identifies a <b>management controller</b> bean. What it means is that an external client can manage the application | |
53 | - * this class is in by reading or writing it's attributes and calling it's operations.</p> | |
54 | 52 | * <p> |
55 | - * Only fields annotated with {@link br.gov.frameworkdemoiselle.annotation.ManagedProperty} or | |
56 | - * methods annotated with {@link br.gov.frameworkdemoiselle.annotation.ManagedOperation} will be exposed | |
57 | - * to clients.</p> | |
58 | - * <p>Only bean implementations (concrete classes) can be management controllers. It's a runtime error to mark an interface | |
59 | - * or abstract class with this annotation.</p> | |
60 | - * <p>This stereotype only defines a class as managed, you need to choose an extension that will expose this managed class | |
53 | + * Identifies a <b>management controller</b> bean. What it means is that an external client can manage the application | |
54 | + * this class is in by reading or writing it's attributes and calling it's operations. | |
55 | + * </p> | |
56 | + * <p> | |
57 | + * Only fields annotated with {@link br.gov.frameworkdemoiselle.annotation.ManagedProperty} or methods annotated with | |
58 | + * {@link br.gov.frameworkdemoiselle.annotation.ManagedOperation} will be exposed to clients. | |
59 | + * </p> | |
60 | + * <p> | |
61 | + * Only bean implementations (concrete classes) can be management controllers. It's a runtime error to mark an interface | |
62 | + * or abstract class with this annotation. | |
63 | + * </p> | |
64 | + * <p> | |
65 | + * This stereotype only defines a class as managed, you need to choose an extension that will expose this managed class | |
61 | 66 | * to external clients using any technology available. One example is the Demoiselle JMX extension, that will expose |
62 | - * managed classes as MBeans.</p> | |
67 | + * managed classes as MBeans. | |
68 | + * </p> | |
63 | 69 | * |
64 | 70 | * @author SERPRO |
65 | 71 | */ |
... | ... | @@ -71,7 +77,7 @@ import javax.enterprise.util.Nonbinding; |
71 | 77 | @Retention(RUNTIME) |
72 | 78 | @Target({ TYPE }) |
73 | 79 | public @interface ManagementController { |
74 | - | |
80 | + | |
75 | 81 | /** |
76 | 82 | * @return Human readable description of this managed class. |
77 | 83 | */ | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/template/Crud.java
... | ... | @@ -43,16 +43,18 @@ import java.util.List; |
43 | 43 | * Interface containing basic methods for creating, updating and deleting entities (the CRUD design pattern). |
44 | 44 | * |
45 | 45 | * @author serpro |
46 | - * | |
47 | - * @param <T> Type of the entity | |
48 | - * @param <I> Type of the identification attribute of the entity | |
46 | + * @param <T> | |
47 | + * Type of the entity | |
48 | + * @param <I> | |
49 | + * Type of the identification attribute of the entity | |
49 | 50 | */ |
50 | 51 | public interface Crud<T, I> extends Serializable { |
51 | 52 | |
52 | 53 | /** |
53 | 54 | * Find an entity by it's identification attribute and make it transient. |
54 | 55 | * |
55 | - * @param id The unique identification to find the entity to be deleted. | |
56 | + * @param id | |
57 | + * The unique identification to find the entity to be deleted. | |
56 | 58 | */ |
57 | 59 | void delete(I id); |
58 | 60 | |
... | ... | @@ -66,24 +68,27 @@ public interface Crud<T, I> extends Serializable { |
66 | 68 | /** |
67 | 69 | * Insert an entity and return the inserted instance of the entity |
68 | 70 | * |
69 | - * @param bean The bean to be inserted | |
71 | + * @param bean | |
72 | + * The bean to be inserted | |
70 | 73 | * @return The inserted instance of the entity |
71 | 74 | */ |
72 | 75 | T insert(T bean); |
73 | 76 | |
74 | 77 | /** |
75 | 78 | * Find an entity's instance by it's identification attribute and return it |
76 | - * @param id Value of the identification attribute of the desired entity's instance | |
77 | - * @return The entity's instance whose identification attribute's value matches | |
78 | - * the one passed as argument. | |
79 | + * | |
80 | + * @param id | |
81 | + * Value of the identification attribute of the desired entity's instance | |
82 | + * @return The entity's instance whose identification attribute's value matches the one passed as argument. | |
79 | 83 | */ |
80 | 84 | T load(I id); |
81 | 85 | |
82 | 86 | /** |
83 | - * Update an instance of the entity with the bean's attributes as new values. | |
87 | + * Update an instance of the entity with the bean's attributes as new values. | |
84 | 88 | * |
85 | - * @param bean The bean instance containing both the identification value to find the old | |
86 | - * instance and the new values for the instance's attributes. | |
89 | + * @param bean | |
90 | + * The bean instance containing both the identification value to find the old instance and the new values | |
91 | + * for the instance's attributes. | |
87 | 92 | * @return The updated entity's instance |
88 | 93 | */ |
89 | 94 | T update(T bean); | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/template/DelegateCrud.java
... | ... | @@ -39,20 +39,15 @@ package br.gov.frameworkdemoiselle.template; |
39 | 39 | import java.util.List; |
40 | 40 | import java.util.ListIterator; |
41 | 41 | |
42 | -import br.gov.frameworkdemoiselle.internal.implementation.DefaultTransaction; | |
43 | -import br.gov.frameworkdemoiselle.transaction.Transaction; | |
44 | -import br.gov.frameworkdemoiselle.transaction.TransactionContext; | |
45 | -import br.gov.frameworkdemoiselle.transaction.Transactional; | |
46 | 42 | import br.gov.frameworkdemoiselle.util.Beans; |
47 | 43 | import br.gov.frameworkdemoiselle.util.Reflections; |
48 | 44 | |
49 | 45 | /** |
50 | - * An implementation of the {@link Crud} interface that delegates it's operations | |
51 | - * to another {@link Crud} implementation. | |
46 | + * An implementation of the {@link Crud} interface that delegates it's operations to another {@link Crud} | |
47 | + * implementation. | |
52 | 48 | * |
53 | 49 | * @author serpro |
54 | - * | |
55 | - * @param <T> | |
50 | + * @param <T> | |
56 | 51 | * bean object type |
57 | 52 | * @param <I> |
58 | 53 | * bean id type |
... | ... | @@ -75,19 +70,6 @@ public class DelegateCrud<T, I, C extends Crud<T, I>> implements Crud<T, I> { |
75 | 70 | */ |
76 | 71 | @Override |
77 | 72 | public void delete(final I id) { |
78 | - if (isRunningTransactionalOperations()) { | |
79 | - transactionalDelete(id); | |
80 | - } else { | |
81 | - nonTransactionalDelete(id); | |
82 | - } | |
83 | - } | |
84 | - | |
85 | - @Transactional | |
86 | - private void transactionalDelete(final I id) { | |
87 | - nonTransactionalDelete(id); | |
88 | - } | |
89 | - | |
90 | - private void nonTransactionalDelete(final I id) { | |
91 | 73 | getDelegate().delete(id); |
92 | 74 | } |
93 | 75 | |
... | ... | @@ -98,20 +80,8 @@ public class DelegateCrud<T, I, C extends Crud<T, I>> implements Crud<T, I> { |
98 | 80 | * List of entities identifiers |
99 | 81 | */ |
100 | 82 | public void delete(final List<I> ids) { |
101 | - if (isRunningTransactionalOperations()) { | |
102 | - transactionalDelete(ids); | |
103 | - } else { | |
104 | - nonTransactionalDelete(ids); | |
105 | - } | |
106 | - } | |
107 | - | |
108 | - @Transactional | |
109 | - private void transactionalDelete(final List<I> ids) { | |
110 | - nonTransactionalDelete(ids); | |
111 | - } | |
112 | - | |
113 | - private void nonTransactionalDelete(final List<I> ids) { | |
114 | 83 | ListIterator<I> iter = ids.listIterator(); |
84 | + | |
115 | 85 | while (iter.hasNext()) { |
116 | 86 | this.delete(iter.next()); |
117 | 87 | } |
... | ... | @@ -151,19 +121,6 @@ public class DelegateCrud<T, I, C extends Crud<T, I>> implements Crud<T, I> { |
151 | 121 | */ |
152 | 122 | @Override |
153 | 123 | public T insert(final T bean) { |
154 | - if (isRunningTransactionalOperations()) { | |
155 | - return transactionalInsert(bean); | |
156 | - } else { | |
157 | - return nonTransactionalInsert(bean); | |
158 | - } | |
159 | - } | |
160 | - | |
161 | - @Transactional | |
162 | - private T transactionalInsert(final T bean) { | |
163 | - return nonTransactionalInsert(bean); | |
164 | - } | |
165 | - | |
166 | - private T nonTransactionalInsert(final T bean) { | |
167 | 124 | return getDelegate().insert(bean); |
168 | 125 | } |
169 | 126 | |
... | ... | @@ -185,24 +142,6 @@ public class DelegateCrud<T, I, C extends Crud<T, I>> implements Crud<T, I> { |
185 | 142 | */ |
186 | 143 | @Override |
187 | 144 | public T update(final T bean) { |
188 | - if (isRunningTransactionalOperations()) { | |
189 | - return transactionalUpdate(bean); | |
190 | - } else { | |
191 | - return nonTransactionalUpdate(bean); | |
192 | - } | |
193 | - } | |
194 | - | |
195 | - @Transactional | |
196 | - private T transactionalUpdate(final T bean) { | |
197 | - return nonTransactionalUpdate(bean); | |
198 | - } | |
199 | - | |
200 | - private T nonTransactionalUpdate(final T bean) { | |
201 | 145 | return getDelegate().update(bean); |
202 | 146 | } |
203 | - | |
204 | - private boolean isRunningTransactionalOperations() { | |
205 | - Transaction transaction = Beans.getReference(TransactionContext.class).getCurrentTransaction(); | |
206 | - return !(transaction instanceof DefaultTransaction); | |
207 | - } | |
208 | 147 | } | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/transaction/TransactionalInterceptor.java
... | ... | @@ -48,9 +48,8 @@ import javax.interceptor.InvocationContext; |
48 | 48 | import org.slf4j.Logger; |
49 | 49 | |
50 | 50 | import br.gov.frameworkdemoiselle.exception.ApplicationException; |
51 | -import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; | |
52 | -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; | |
53 | 51 | import br.gov.frameworkdemoiselle.util.Beans; |
52 | +import br.gov.frameworkdemoiselle.util.NameQualifier; | |
54 | 53 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
55 | 54 | |
56 | 55 | @Interceptor |
... | ... | @@ -63,9 +62,9 @@ public class TransactionalInterceptor implements Serializable { |
63 | 62 | |
64 | 63 | private TransactionInfo transactionInfo; |
65 | 64 | |
66 | - private static ResourceBundle bundle; | |
65 | + private static transient ResourceBundle bundle; | |
67 | 66 | |
68 | - private static Logger logger; | |
67 | + private static transient Logger logger; | |
69 | 68 | |
70 | 69 | private TransactionContext getTransactionContext() { |
71 | 70 | if (this.transactionContext == null) { |
... | ... | @@ -175,7 +174,7 @@ public class TransactionalInterceptor implements Serializable { |
175 | 174 | |
176 | 175 | private static ResourceBundle getBundle() { |
177 | 176 | if (bundle == null) { |
178 | - bundle = ResourceBundleProducer.create("demoiselle-core-bundle"); | |
177 | + bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-core-bundle")); | |
179 | 178 | } |
180 | 179 | |
181 | 180 | return bundle; |
... | ... | @@ -183,7 +182,7 @@ public class TransactionalInterceptor implements Serializable { |
183 | 182 | |
184 | 183 | private static Logger getLogger() { |
185 | 184 | if (logger == null) { |
186 | - logger = LoggerProducer.create(TransactionalInterceptor.class); | |
185 | + logger = Beans.getReference(Logger.class, new NameQualifier(TransactionalInterceptor.class.getName())); | |
187 | 186 | } |
188 | 187 | |
189 | 188 | return logger; | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Beans.java
... | ... | @@ -37,22 +37,25 @@ |
37 | 37 | package br.gov.frameworkdemoiselle.util; |
38 | 38 | |
39 | 39 | import java.lang.annotation.Annotation; |
40 | +import java.lang.reflect.Member; | |
40 | 41 | import java.lang.reflect.Type; |
41 | -import java.util.Locale; | |
42 | +import java.util.Arrays; | |
43 | +import java.util.HashSet; | |
42 | 44 | import java.util.NoSuchElementException; |
43 | 45 | import java.util.Set; |
44 | 46 | |
45 | 47 | import javax.enterprise.context.spi.CreationalContext; |
48 | +import javax.enterprise.inject.spi.Annotated; | |
46 | 49 | import javax.enterprise.inject.spi.Bean; |
47 | 50 | import javax.enterprise.inject.spi.BeanManager; |
48 | 51 | import javax.enterprise.inject.spi.InjectionPoint; |
49 | 52 | |
50 | 53 | import br.gov.frameworkdemoiselle.DemoiselleException; |
51 | -import br.gov.frameworkdemoiselle.internal.bootstrap.CustomInjectionPoint; | |
52 | -import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; | |
53 | 54 | |
54 | 55 | public final class Beans { |
55 | 56 | |
57 | + private static transient ResourceBundle bundle; | |
58 | + | |
56 | 59 | private static BeanManager manager; |
57 | 60 | |
58 | 61 | private Beans() { |
... | ... | @@ -132,6 +135,98 @@ public final class Beans { |
132 | 135 | } |
133 | 136 | |
134 | 137 | private static ResourceBundle getBundle() { |
135 | - return ResourceBundleProducer.create("demoiselle-core-bundle", Locale.getDefault()); | |
138 | + if (bundle == null) { | |
139 | + bundle = Beans.getReference(ResourceBundle.class, new NameQualifier("demoiselle-core-bundle")); | |
140 | + } | |
141 | + | |
142 | + return bundle; | |
143 | + } | |
144 | + | |
145 | + static class CustomInjectionPoint implements InjectionPoint { | |
146 | + | |
147 | + private final Bean<?> bean; | |
148 | + | |
149 | + private final Type beanType; | |
150 | + | |
151 | + private final Set<Annotation> qualifiers; | |
152 | + | |
153 | + public CustomInjectionPoint(Bean<?> bean, Type beanType, Annotation... qualifiers) { | |
154 | + this.bean = bean; | |
155 | + this.beanType = beanType; | |
156 | + this.qualifiers = new HashSet<Annotation>(Arrays.asList(qualifiers)); | |
157 | + } | |
158 | + | |
159 | + @Override | |
160 | + public Type getType() { | |
161 | + return this.beanType; | |
162 | + } | |
163 | + | |
164 | + @Override | |
165 | + public Set<Annotation> getQualifiers() { | |
166 | + return this.qualifiers; | |
167 | + } | |
168 | + | |
169 | + @Override | |
170 | + public Bean<?> getBean() { | |
171 | + return this.bean; | |
172 | + } | |
173 | + | |
174 | + @Override | |
175 | + public Member getMember() { | |
176 | + return null; | |
177 | + } | |
178 | + | |
179 | + @Override | |
180 | + public boolean isDelegate() { | |
181 | + return false; | |
182 | + } | |
183 | + | |
184 | + @Override | |
185 | + public boolean isTransient() { | |
186 | + return false; | |
187 | + } | |
188 | + | |
189 | + @Override | |
190 | + public Annotated getAnnotated() { | |
191 | + return new Annotated() { | |
192 | + | |
193 | + @Override | |
194 | + public Type getBaseType() { | |
195 | + // TODO Auto-generated method stub | |
196 | + return null; | |
197 | + } | |
198 | + | |
199 | + @Override | |
200 | + public Set<Type> getTypeClosure() { | |
201 | + // TODO Auto-generated method stub | |
202 | + return null; | |
203 | + } | |
204 | + | |
205 | + @Override | |
206 | + @SuppressWarnings("unchecked") | |
207 | + public <T extends Annotation> T getAnnotation(Class<T> annotationType) { | |
208 | + T result = null; | |
209 | + | |
210 | + for (Annotation annotation : getAnnotations()) { | |
211 | + if (annotation.annotationType() == annotationType) { | |
212 | + result = (T) annotation; | |
213 | + break; | |
214 | + } | |
215 | + } | |
216 | + | |
217 | + return result; | |
218 | + } | |
219 | + | |
220 | + @Override | |
221 | + public Set<Annotation> getAnnotations() { | |
222 | + return qualifiers; | |
223 | + } | |
224 | + | |
225 | + @Override | |
226 | + public boolean isAnnotationPresent(Class<? extends Annotation> annotationType) { | |
227 | + return qualifiers.contains(annotationType); | |
228 | + } | |
229 | + }; | |
230 | + } | |
136 | 231 | } |
137 | 232 | } | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Reflections.java
... | ... | @@ -166,7 +166,7 @@ public final class Reflections { |
166 | 166 | } |
167 | 167 | |
168 | 168 | public static ClassLoader getClassLoaderForResource(final String resource) { |
169 | - final String stripped = resource.startsWith("/") ? resource.substring(1) : resource; | |
169 | + final String stripped = resource.charAt(0) == '/' ? resource.substring(1) : resource; | |
170 | 170 | |
171 | 171 | URL url = null; |
172 | 172 | ClassLoader result = Thread.currentThread().getContextClassLoader(); | ... | ... |
impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Strings.java
... | ... | @@ -114,14 +114,14 @@ public final class Strings { |
114 | 114 | } |
115 | 115 | |
116 | 116 | result.append(field.getName()); |
117 | - result.append("="); | |
117 | + result.append('='); | |
118 | 118 | fieldValue = Reflections.getFieldValue(field, object); |
119 | 119 | result.append(fieldValue != null && fieldValue.getClass().isArray() ? Arrays |
120 | 120 | .toString((Object[]) fieldValue) : fieldValue); |
121 | 121 | } |
122 | 122 | } |
123 | 123 | |
124 | - result.append("]"); | |
124 | + result.append(']'); | |
125 | 125 | } |
126 | 126 | |
127 | 127 | return result.toString(); | ... | ... |
impl/core/src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension
1 | 1 | br.gov.frameworkdemoiselle.internal.bootstrap.CoreBootstrap |
2 | 2 | br.gov.frameworkdemoiselle.internal.bootstrap.ConfigurationBootstrap |
3 | -br.gov.frameworkdemoiselle.internal.bootstrap.TransactionBootstrap | |
4 | -br.gov.frameworkdemoiselle.internal.bootstrap.AuthenticatorBootstrap | |
5 | -br.gov.frameworkdemoiselle.internal.bootstrap.AuthorizerBootstrap | |
6 | 3 | br.gov.frameworkdemoiselle.internal.bootstrap.ManagementBootstrap |
7 | 4 | br.gov.frameworkdemoiselle.internal.bootstrap.StartupBootstrap |
8 | 5 | br.gov.frameworkdemoiselle.internal.bootstrap.ShutdownBootstrap | ... | ... |
impl/core/src/test/java/configuration/field/beanvalidation/BeanValidationWithEmptyNotNullFieldConfig.java
... | ... | @@ -42,14 +42,14 @@ public abstract class BeanValidationWithEmptyNotNullFieldConfig { |
42 | 42 | |
43 | 43 | @NotNull |
44 | 44 | private Integer intAttributeNull; |
45 | - | |
45 | + | |
46 | 46 | @NotNull |
47 | 47 | private String stringAttributeNull; |
48 | - | |
48 | + | |
49 | 49 | public Integer getIntAttributeNull() { |
50 | 50 | return intAttributeNull; |
51 | 51 | } |
52 | - | |
52 | + | |
53 | 53 | public String getStringAttributeNull() { |
54 | 54 | return stringAttributeNull; |
55 | 55 | } | ... | ... |
impl/core/src/test/java/configuration/field/beanvalidation/BeanValidationWithFilledNotNullFieldConfig.java
... | ... | @@ -6,14 +6,14 @@ public class BeanValidationWithFilledNotNullFieldConfig { |
6 | 6 | |
7 | 7 | @NotNull |
8 | 8 | private String stringAttributeNotNull; |
9 | - | |
9 | + | |
10 | 10 | @NotNull |
11 | 11 | private Integer intAttibuteNotNull; |
12 | - | |
12 | + | |
13 | 13 | public String getStringAttributeNotNull() { |
14 | 14 | return stringAttributeNotNull; |
15 | 15 | } |
16 | - | |
16 | + | |
17 | 17 | public Integer getIntAttibuteNotNull() { |
18 | 18 | return intAttibuteNotNull; |
19 | 19 | } | ... | ... |
impl/core/src/test/java/configuration/field/beanvalidation/ConfigurationBeanValidationFieldTest.java
... | ... | @@ -80,7 +80,8 @@ public class ConfigurationBeanValidationFieldTest { |
80 | 80 | JavaArchive deployment = Tests.createDeployment(ConfigurationBeanValidationFieldTest.class); |
81 | 81 | deployment.addAsResource(Tests.createFileAsset(PATH + "/demoiselle.properties"), "demoiselle.properties"); |
82 | 82 | deployment.addAsResource(Tests.createFileAsset(PATH + "/demoiselle.xml"), "demoiselle.xml"); |
83 | - deployment.addAsResource(Tests.createFileAsset(PATH + "/two-constrain-validation.properties"), "two-constrain-validation.properties"); | |
83 | + deployment.addAsResource(Tests.createFileAsset(PATH + "/two-constrain-validation.properties"), | |
84 | + "two-constrain-validation.properties"); | |
84 | 85 | |
85 | 86 | return deployment; |
86 | 87 | } |
... | ... | @@ -136,7 +137,7 @@ public class ConfigurationBeanValidationFieldTest { |
136 | 137 | } |
137 | 138 | |
138 | 139 | @Test |
139 | - public void loadPropertiesWithTwoConstraintViolations(){ | |
140 | + public void loadPropertiesWithTwoConstraintViolations() { | |
140 | 141 | try { |
141 | 142 | propertyWithTwoConstrainViolations.getAttributeWithTwoConstrainValidations(); |
142 | 143 | fail(); | ... | ... |
impl/core/src/test/java/configuration/field/clazz/AbstractClassNotFoundFieldConfig.java
... | ... | @@ -41,7 +41,7 @@ public abstract class AbstractClassNotFoundFieldConfig { |
41 | 41 | private Class<MyClass> nonExistentTypedClass; |
42 | 42 | |
43 | 43 | private Class<?> nonExistentUntypedClass; |
44 | - | |
44 | + | |
45 | 45 | public Class<MyClass> getNonExistentTypedClass() { |
46 | 46 | return nonExistentTypedClass; |
47 | 47 | } | ... | ... |
impl/core/src/test/java/configuration/field/clazz/PropertiesNullClassFieldConfig.java
... | ... | @@ -40,9 +40,9 @@ import br.gov.frameworkdemoiselle.configuration.Configuration; |
40 | 40 | |
41 | 41 | @Configuration |
42 | 42 | public class PropertiesNullClassFieldConfig { |
43 | - | |
43 | + | |
44 | 44 | private Class<MyClass> nullClass; |
45 | - | |
45 | + | |
46 | 46 | public Class<MyClass> getNullClass() { |
47 | 47 | return nullClass; |
48 | 48 | } | ... | ... |
impl/core/src/test/java/configuration/field/map/AbstractMapFieldConfig.java
... | ... | @@ -45,7 +45,7 @@ public abstract class AbstractMapFieldConfig { |
45 | 45 | private Map<String, String> stringWithUndefinedKeyMap; |
46 | 46 | |
47 | 47 | private Map<String, String> emptyValueMap; |
48 | - | |
48 | + | |
49 | 49 | private Map<String, String> NullMapValue; |
50 | 50 | |
51 | 51 | public Map<String, String> getStringWithUndefinedKeyMap() { | ... | ... |
impl/core/src/test/java/configuration/field/map/ConfigurationMapFieldTest.java
... | ... | @@ -99,9 +99,9 @@ public class ConfigurationMapFieldTest { |
99 | 99 | assertEquals(expected, propertiesConfig.getEmptyValueMap()); |
100 | 100 | assertEquals(expected, xmlConfig.getEmptyValueMap()); |
101 | 101 | } |
102 | - | |
102 | + | |
103 | 103 | @Test |
104 | - public void loadNullMap(){ | |
104 | + public void loadNullMap() { | |
105 | 105 | assertNull(propertiesConfig.getNullMapValue()); |
106 | 106 | assertNull(xmlConfig.getNullMapValue()); |
107 | 107 | } | ... | ... |
impl/core/src/test/java/configuration/field/primitiveorwrapper/AbstractPrimitiveOrWrapperErrorFieldConfig.java
impl/core/src/test/java/configuration/field/primitiveorwrapper/ConfigurationPrimitiveOrWrapperFieldTest.java
... | ... | @@ -78,7 +78,7 @@ public class ConfigurationPrimitiveOrWrapperFieldTest { |
78 | 78 | |
79 | 79 | @Inject |
80 | 80 | private PropertiesNullWrappedField nullWrappedField; |
81 | - | |
81 | + | |
82 | 82 | @Deployment |
83 | 83 | public static JavaArchive createDeployment() { |
84 | 84 | JavaArchive deployment = Tests.createDeployment(ConfigurationPrimitiveOrWrapperFieldTest.class); |
... | ... | @@ -210,9 +210,9 @@ public class ConfigurationPrimitiveOrWrapperFieldTest { |
210 | 210 | assertEquals(ConversionException.class, cause.getCause().getClass()); |
211 | 211 | } |
212 | 212 | } |
213 | - | |
213 | + | |
214 | 214 | @Test |
215 | - public void loadNullWrappedField(){ | |
215 | + public void loadNullWrappedField() { | |
216 | 216 | assertNull(nullWrappedField.getNullWrappedField()); |
217 | 217 | } |
218 | 218 | } | ... | ... |
impl/core/src/test/java/configuration/field/primitiveorwrapper/PropertiesNullWrappedField.java
impl/core/src/test/java/configuration/field/string/AbstractNullStringFieldConfig.java
impl/core/src/test/java/configuration/field/string/ConfigurationStringFieldTest.java
... | ... | @@ -63,7 +63,7 @@ public class ConfigurationStringFieldTest { |
63 | 63 | |
64 | 64 | @Inject |
65 | 65 | private SystemStringFieldConfig systemConfig; |
66 | - | |
66 | + | |
67 | 67 | @Inject |
68 | 68 | private PropertiesNullStringFieldConfig propertiesNullConfig; |
69 | 69 | |
... | ... | @@ -113,9 +113,9 @@ public class ConfigurationStringFieldTest { |
113 | 113 | assertEquals(expected, propertiesConfig.getEmptyString()); |
114 | 114 | assertEquals(expected, xmlConfig.getEmptyString()); |
115 | 115 | } |
116 | - | |
116 | + | |
117 | 117 | @Test |
118 | - public void loadNullString(){ | |
118 | + public void loadNullString() { | |
119 | 119 | assertNull(propertiesNullConfig.getNullString()); |
120 | 120 | assertNull(xmlNullConfig.getNullString()); |
121 | 121 | assertNull(systemNullConfig.getNullString()); | ... | ... |
impl/core/src/test/java/exception/basic/ExceptionClassNotAnnotated.java
... | ... | @@ -41,7 +41,7 @@ import br.gov.frameworkdemoiselle.exception.ExceptionHandler; |
41 | 41 | public class ExceptionClassNotAnnotated { |
42 | 42 | |
43 | 43 | private boolean nullPointerExceptionHandler = false; |
44 | - | |
44 | + | |
45 | 45 | public boolean isNullPointerExceptionHandler() { |
46 | 46 | return nullPointerExceptionHandler; |
47 | 47 | } | ... | ... |
impl/core/src/test/java/exception/basic/ExceptionHandlerTest.java
... | ... | @@ -64,7 +64,7 @@ public class ExceptionHandlerTest { |
64 | 64 | |
65 | 65 | @Inject |
66 | 66 | private ExceptionNested nested; |
67 | - | |
67 | + | |
68 | 68 | @Inject |
69 | 69 | private ExceptionClassNotAnnotated classNotAnnotated; |
70 | 70 | |
... | ... | @@ -127,7 +127,7 @@ public class ExceptionHandlerTest { |
127 | 127 | assertEquals(false, nested.isExceptionHandler()); |
128 | 128 | } |
129 | 129 | } |
130 | - | |
130 | + | |
131 | 131 | @Test |
132 | 132 | public void exceptionClassNotAnnotatedController() { |
133 | 133 | try { | ... | ... |
impl/core/src/test/java/exception/basic/SimpleExceptionHandler.java
... | ... | @@ -45,7 +45,7 @@ public class SimpleExceptionHandler { |
45 | 45 | private boolean nullPointerExceptionHandler = false; |
46 | 46 | |
47 | 47 | private boolean arithmeticExceptionHandler = false; |
48 | - | |
48 | + | |
49 | 49 | public boolean isNullPointerExceptionHandler() { |
50 | 50 | return nullPointerExceptionHandler; |
51 | 51 | } |
... | ... | @@ -53,7 +53,7 @@ public class SimpleExceptionHandler { |
53 | 53 | public boolean isArithmeticExceptionHandler() { |
54 | 54 | return arithmeticExceptionHandler; |
55 | 55 | } |
56 | - | |
56 | + | |
57 | 57 | public void throwNullPointerException() { |
58 | 58 | throw new NullPointerException(); |
59 | 59 | } |
... | ... | @@ -61,11 +61,11 @@ public class SimpleExceptionHandler { |
61 | 61 | public void throwArithmeticException() { |
62 | 62 | throw new ArithmeticException(); |
63 | 63 | } |
64 | - | |
64 | + | |
65 | 65 | public void throwExceptionWithoutHandler() { |
66 | 66 | throw new IllegalArgumentException(); |
67 | - } | |
68 | - | |
67 | + } | |
68 | + | |
69 | 69 | @SuppressWarnings({ "null", "unused" }) |
70 | 70 | public void throwTwoException() { |
71 | 71 | String txt = null; |
... | ... | @@ -81,5 +81,5 @@ public class SimpleExceptionHandler { |
81 | 81 | @ExceptionHandler |
82 | 82 | public void handler(ArithmeticException cause) { |
83 | 83 | arithmeticExceptionHandler = true; |
84 | - } | |
84 | + } | |
85 | 85 | } | ... | ... |
impl/core/src/test/java/exception/custom/CustomExceptionHandler.java
... | ... | @@ -50,12 +50,12 @@ public class CustomExceptionHandler { |
50 | 50 | |
51 | 51 | public void setExceptionHandler(boolean exceptionHandler) { |
52 | 52 | this.exceptionHandler = exceptionHandler; |
53 | - } | |
54 | - | |
53 | + } | |
54 | + | |
55 | 55 | public void throwExceptionWithMessage() { |
56 | 56 | throw new CustomException(); |
57 | 57 | } |
58 | - | |
58 | + | |
59 | 59 | @ExceptionHandler |
60 | 60 | public void handler(CustomException exception) { |
61 | 61 | setExceptionHandler(true); | ... | ... |
impl/core/src/test/java/lifecycle/shutdown/priority/ShutdownWithPriority.java
... | ... | @@ -51,7 +51,7 @@ import br.gov.frameworkdemoiselle.lifecycle.Shutdown; |
51 | 51 | public class ShutdownWithPriority { |
52 | 52 | |
53 | 53 | private List<Integer> listShutdown = new ArrayList<Integer>(); |
54 | - | |
54 | + | |
55 | 55 | public List<Integer> getListShutdown() { |
56 | 56 | return listShutdown; |
57 | 57 | } |
... | ... | @@ -67,7 +67,7 @@ public class ShutdownWithPriority { |
67 | 67 | public void unloadWithPriority1() { |
68 | 68 | listShutdown.add(2); |
69 | 69 | } |
70 | - | |
70 | + | |
71 | 71 | @Shutdown |
72 | 72 | @Priority(MAX_PRIORITY) |
73 | 73 | public void unloadWithMaxPriority() { | ... | ... |
impl/core/src/test/java/lifecycle/shutdown/simple/ShutdownSimple.java
... | ... | @@ -47,11 +47,11 @@ import br.gov.frameworkdemoiselle.lifecycle.Shutdown; |
47 | 47 | public class ShutdownSimple { |
48 | 48 | |
49 | 49 | private List<Integer> listShutdown = new ArrayList<Integer>(); |
50 | - | |
50 | + | |
51 | 51 | public List<Integer> getListShutdown() { |
52 | 52 | return listShutdown; |
53 | 53 | } |
54 | - | |
54 | + | |
55 | 55 | @Shutdown |
56 | 56 | public void unloadWithoutPriorityFirst() { |
57 | 57 | listShutdown.add(3); | ... | ... |
impl/core/src/test/java/lifecycle/startup/priority/StartupWithPriorityTest.java
impl/core/src/test/java/lifecycle/startup/simple/StartupSimple.java
impl/core/src/test/java/lifecycle/startup/simple/StartupSimpleTest.java
... | ... | @@ -59,9 +59,9 @@ public class StartupSimpleTest { |
59 | 59 | |
60 | 60 | @Inject |
61 | 61 | private StartupSimple startupSimple; |
62 | - | |
62 | + | |
63 | 63 | List<Integer> expected = new ArrayList<Integer>(); |
64 | - | |
64 | + | |
65 | 65 | @Deployment |
66 | 66 | public static JavaArchive createDeployment() { |
67 | 67 | JavaArchive deployment = Tests.createDeployment(StartupSimpleTest.class); |
... | ... | @@ -73,7 +73,7 @@ public class StartupSimpleTest { |
73 | 73 | Beans.getBeanManager().fireEvent(new AfterStartupProccess() { |
74 | 74 | }); |
75 | 75 | } |
76 | - | |
76 | + | |
77 | 77 | @Test |
78 | 78 | public void startup() { |
79 | 79 | expected.add(1); |
... | ... | @@ -83,4 +83,3 @@ public class StartupSimpleTest { |
83 | 83 | Assert.assertEquals(expected, startupSimple.getListStartup()); |
84 | 84 | } |
85 | 85 | } |
86 | - | ... | ... |
impl/core/src/test/java/message/DummyMessageAppender.java
0 → 100644
... | ... | @@ -0,0 +1,62 @@ |
1 | +/* | |
2 | + * Demoiselle Framework | |
3 | + * Copyright (C) 2010 SERPRO | |
4 | + * ---------------------------------------------------------------------------- | |
5 | + * This file is part of Demoiselle Framework. | |
6 | + * | |
7 | + * Demoiselle Framework is free software; you can redistribute it and/or | |
8 | + * modify it under the terms of the GNU Lesser General Public License version 3 | |
9 | + * as published by the Free Software Foundation. | |
10 | + * | |
11 | + * This program is distributed in the hope that it will be useful, | |
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
15 | + * | |
16 | + * You should have received a copy of the GNU Lesser General Public License version 3 | |
17 | + * along with this program; if not, see <http://www.gnu.org/licenses/> | |
18 | + * or write to the Free Software Foundation, Inc., 51 Franklin Street, | |
19 | + * Fifth Floor, Boston, MA 02110-1301, USA. | |
20 | + * ---------------------------------------------------------------------------- | |
21 | + * Este arquivo é parte do Framework Demoiselle. | |
22 | + * | |
23 | + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | |
24 | + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | |
25 | + * do Software Livre (FSF). | |
26 | + * | |
27 | + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | |
28 | + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | |
29 | + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | |
30 | + * para maiores detalhes. | |
31 | + * | |
32 | + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | |
33 | + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | |
34 | + * ou escreva para a Fundação do Software Livre (FSF) Inc., | |
35 | + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | |
36 | + */ | |
37 | +package message; | |
38 | + | |
39 | +import java.util.ArrayList; | |
40 | +import java.util.List; | |
41 | + | |
42 | +import javax.enterprise.context.RequestScoped; | |
43 | + | |
44 | +import br.gov.frameworkdemoiselle.message.Message; | |
45 | +import br.gov.frameworkdemoiselle.message.MessageAppender; | |
46 | + | |
47 | +@RequestScoped | |
48 | +public class DummyMessageAppender implements MessageAppender { | |
49 | + | |
50 | + private static final long serialVersionUID = 1L; | |
51 | + | |
52 | + private List<Message> messages = new ArrayList<Message>(); | |
53 | + | |
54 | + @Override | |
55 | + public void append(Message message) { | |
56 | + messages.add(message); | |
57 | + } | |
58 | + | |
59 | + public List<Message> getMessages() { | |
60 | + return messages; | |
61 | + } | |
62 | +} | ... | ... |
impl/core/src/test/java/message/MessageContextTest.java
1 | +/* | |
2 | + * Demoiselle Framework | |
3 | + * Copyright (C) 2010 SERPRO | |
4 | + * ---------------------------------------------------------------------------- | |
5 | + * This file is part of Demoiselle Framework. | |
6 | + * | |
7 | + * Demoiselle Framework is free software; you can redistribute it and/or | |
8 | + * modify it under the terms of the GNU Lesser General Public License version 3 | |
9 | + * as published by the Free Software Foundation. | |
10 | + * | |
11 | + * This program is distributed in the hope that it will be useful, | |
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
15 | + * | |
16 | + * You should have received a copy of the GNU Lesser General Public License version 3 | |
17 | + * along with this program; if not, see <http://www.gnu.org/licenses/> | |
18 | + * or write to the Free Software Foundation, Inc., 51 Franklin Street, | |
19 | + * Fifth Floor, Boston, MA 02110-1301, USA. | |
20 | + * ---------------------------------------------------------------------------- | |
21 | + * Este arquivo é parte do Framework Demoiselle. | |
22 | + * | |
23 | + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | |
24 | + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | |
25 | + * do Software Livre (FSF). | |
26 | + * | |
27 | + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | |
28 | + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | |
29 | + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | |
30 | + * para maiores detalhes. | |
31 | + * | |
32 | + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | |
33 | + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | |
34 | + * ou escreva para a Fundação do Software Livre (FSF) Inc., | |
35 | + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | |
36 | + */ | |
1 | 37 | package message; |
2 | 38 | |
3 | 39 | import static junit.framework.Assert.assertEquals; |
... | ... | @@ -14,7 +50,6 @@ import org.jboss.shrinkwrap.api.spec.JavaArchive; |
14 | 50 | import org.junit.Test; |
15 | 51 | import org.junit.runner.RunWith; |
16 | 52 | |
17 | -import resourcebundle.parameter.ResourceBundleWithParameter; | |
18 | 53 | import test.Tests; |
19 | 54 | import br.gov.frameworkdemoiselle.internal.context.ContextManager; |
20 | 55 | import br.gov.frameworkdemoiselle.internal.context.ManagedContext; |
... | ... | @@ -34,7 +69,7 @@ public class MessageContextTest { |
34 | 69 | private MessageWithResourceBundle bundleCustom; |
35 | 70 | |
36 | 71 | private static final String PATH = "src/test/resources/message/"; |
37 | - | |
72 | + | |
38 | 73 | @Deployment |
39 | 74 | public static JavaArchive createDeployment() { |
40 | 75 | JavaArchive deployment = Tests.createDeployment(MessageContextTest.class); |
... | ... | @@ -47,8 +82,10 @@ public class MessageContextTest { |
47 | 82 | public void testAddMessageWithoutParams() { |
48 | 83 | ContextManager.activate(ManagedContext.class, RequestScoped.class); |
49 | 84 | Message message = new DefaultMessage("Menssage without param"); |
85 | + DummyMessageAppender appender = Beans.getReference(DummyMessageAppender.class); | |
86 | + | |
50 | 87 | messageContext.add(message); |
51 | - assertEquals(messageContext.getMessages().size(), 1); | |
88 | + assertEquals(appender.getMessages().size(), 1); | |
52 | 89 | ContextManager.deactivate(ManagedContext.class, RequestScoped.class); |
53 | 90 | } |
54 | 91 | |
... | ... | @@ -56,8 +93,10 @@ public class MessageContextTest { |
56 | 93 | public void testAddMessageWithoutParamsIfSeverityIsInfo() { |
57 | 94 | ContextManager.activate(ManagedContext.class, RequestScoped.class); |
58 | 95 | Message message = new DefaultMessage("Menssage without param"); |
96 | + DummyMessageAppender appender = Beans.getReference(DummyMessageAppender.class); | |
97 | + | |
59 | 98 | messageContext.add(message); |
60 | - assertEquals(messageContext.getMessages().get(0).getSeverity(), SeverityType.INFO); | |
99 | + assertEquals(appender.getMessages().get(0).getSeverity(), SeverityType.INFO); | |
61 | 100 | ContextManager.deactivate(ManagedContext.class, RequestScoped.class); |
62 | 101 | } |
63 | 102 | |
... | ... | @@ -65,8 +104,10 @@ public class MessageContextTest { |
65 | 104 | public void testAddMessageWitSeverityInfo() { |
66 | 105 | ContextManager.activate(ManagedContext.class, RequestScoped.class); |
67 | 106 | Message message = new DefaultMessage("Menssage without param", SeverityType.INFO); |
107 | + DummyMessageAppender appender = Beans.getReference(DummyMessageAppender.class); | |
108 | + | |
68 | 109 | messageContext.add(message); |
69 | - assertEquals(messageContext.getMessages().get(0).getSeverity(), SeverityType.INFO); | |
110 | + assertEquals(appender.getMessages().get(0).getSeverity(), SeverityType.INFO); | |
70 | 111 | ContextManager.deactivate(ManagedContext.class, RequestScoped.class); |
71 | 112 | } |
72 | 113 | |
... | ... | @@ -74,28 +115,21 @@ public class MessageContextTest { |
74 | 115 | public void testAddMessageWitSeverityWarn() { |
75 | 116 | ContextManager.activate(ManagedContext.class, RequestScoped.class); |
76 | 117 | Message message = new DefaultMessage("Menssage without param", SeverityType.WARN); |
118 | + DummyMessageAppender appender = Beans.getReference(DummyMessageAppender.class); | |
119 | + | |
77 | 120 | messageContext.add(message); |
78 | - assertEquals(messageContext.getMessages().get(0).getSeverity(), SeverityType.WARN); | |
121 | + assertEquals(appender.getMessages().get(0).getSeverity(), SeverityType.WARN); | |
79 | 122 | ContextManager.deactivate(ManagedContext.class, RequestScoped.class); |
80 | 123 | } |
81 | - | |
124 | + | |
82 | 125 | @Test |
83 | 126 | public void testAddMessageWitSeverityErro() { |
84 | 127 | ContextManager.activate(ManagedContext.class, RequestScoped.class); |
85 | 128 | Message message = new DefaultMessage("Menssage without param", SeverityType.ERROR); |
129 | + DummyMessageAppender appender = Beans.getReference(DummyMessageAppender.class); | |
130 | + | |
86 | 131 | messageContext.add(message); |
87 | - assertEquals(messageContext.getMessages().get(0).getSeverity(), SeverityType.ERROR); | |
88 | - ContextManager.deactivate(ManagedContext.class, RequestScoped.class); | |
89 | - } | |
90 | - | |
91 | - @Test | |
92 | - public void testCleanMessageContext() { | |
93 | - ContextManager.activate(ManagedContext.class, RequestScoped.class); | |
94 | - Message message = new DefaultMessage("Menssage without param"); | |
95 | - messageContext.add(message); | |
96 | - assertEquals(messageContext.getMessages().size(), 1); | |
97 | - messageContext.clear(); | |
98 | - assertEquals(messageContext.getMessages().size(), 0); | |
132 | + assertEquals(appender.getMessages().get(0).getSeverity(), SeverityType.ERROR); | |
99 | 133 | ContextManager.deactivate(ManagedContext.class, RequestScoped.class); |
100 | 134 | } |
101 | 135 | |
... | ... | @@ -103,11 +137,13 @@ public class MessageContextTest { |
103 | 137 | public void testRecoverMessageWithParams() { |
104 | 138 | ContextManager.activate(ManagedContext.class, RequestScoped.class); |
105 | 139 | Message message = new DefaultMessage("Message with {0} param"); |
140 | + DummyMessageAppender appender = Beans.getReference(DummyMessageAppender.class); | |
141 | + | |
106 | 142 | messageContext.add(message, 1); |
107 | - assertTrue(messageContext.getMessages().get(0).getText().equals("Message with 1 param")); | |
143 | + assertTrue(appender.getMessages().get(0).getText().equals("Message with 1 param")); | |
108 | 144 | ContextManager.deactivate(ManagedContext.class, RequestScoped.class); |
109 | 145 | } |
110 | - | |
146 | + | |
111 | 147 | @Test |
112 | 148 | public void testMessageWithResourceBundle() { |
113 | 149 | bundleCustom = Beans.getReference(MessageWithResourceBundle.class); |
... | ... | @@ -115,9 +151,9 @@ public class MessageContextTest { |
115 | 151 | String value = bundleCustom.getBundle().getString("MESSAGE_WITHOUT_PARAMETER"); |
116 | 152 | Assert.assertEquals(expected, value); |
117 | 153 | } |
118 | - | |
154 | + | |
119 | 155 | @Test |
120 | - public void testMessageParsedText(){ | |
156 | + public void testMessageParsedText() { | |
121 | 157 | ContextManager.activate(ManagedContext.class, RequestScoped.class); |
122 | 158 | Message MESSAGE_PARSED = new DefaultMessage("{MESSAGE_PARSED}"); |
123 | 159 | String expected = "Message parsed"; |
... | ... | @@ -125,9 +161,9 @@ public class MessageContextTest { |
125 | 161 | Assert.assertEquals(expected, value); |
126 | 162 | ContextManager.deactivate(ManagedContext.class, RequestScoped.class); |
127 | 163 | } |
128 | - | |
164 | + | |
129 | 165 | @Test |
130 | - public void testMessageIsNull(){ | |
166 | + public void testMessageIsNull() { | |
131 | 167 | ContextManager.activate(ManagedContext.class, RequestScoped.class); |
132 | 168 | Message NULL_MESSAGE = new DefaultMessage(null); |
133 | 169 | String expected = null; |
... | ... | @@ -135,5 +171,4 @@ public class MessageContextTest { |
135 | 171 | Assert.assertEquals(expected, value); |
136 | 172 | ContextManager.deactivate(ManagedContext.class, RequestScoped.class); |
137 | 173 | } |
138 | - | |
139 | 174 | } | ... | ... |
impl/core/src/test/java/message/MessageWithResourceBundle.java
1 | +/* | |
2 | + * Demoiselle Framework | |
3 | + * Copyright (C) 2010 SERPRO | |
4 | + * ---------------------------------------------------------------------------- | |
5 | + * This file is part of Demoiselle Framework. | |
6 | + * | |
7 | + * Demoiselle Framework is free software; you can redistribute it and/or | |
8 | + * modify it under the terms of the GNU Lesser General Public License version 3 | |
9 | + * as published by the Free Software Foundation. | |
10 | + * | |
11 | + * This program is distributed in the hope that it will be useful, | |
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
15 | + * | |
16 | + * You should have received a copy of the GNU Lesser General Public License version 3 | |
17 | + * along with this program; if not, see <http://www.gnu.org/licenses/> | |
18 | + * or write to the Free Software Foundation, Inc., 51 Franklin Street, | |
19 | + * Fifth Floor, Boston, MA 02110-1301, USA. | |
20 | + * ---------------------------------------------------------------------------- | |
21 | + * Este arquivo é parte do Framework Demoiselle. | |
22 | + * | |
23 | + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | |
24 | + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | |
25 | + * do Software Livre (FSF). | |
26 | + * | |
27 | + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | |
28 | + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | |
29 | + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | |
30 | + * para maiores detalhes. | |
31 | + * | |
32 | + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | |
33 | + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | |
34 | + * ou escreva para a Fundação do Software Livre (FSF) Inc., | |
35 | + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | |
36 | + */ | |
1 | 37 | package message; |
2 | 38 | |
3 | 39 | import javax.inject.Inject; |
4 | 40 | |
5 | 41 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
6 | 42 | |
7 | -public class MessageWithResourceBundle{ | |
43 | +public class MessageWithResourceBundle { | |
8 | 44 | |
9 | 45 | @Inject |
10 | 46 | private ResourceBundle bundle; | ... | ... |
impl/core/src/test/java/resourcebundle/file/defaultfile/ResourceBundleDefaultTest.java
... | ... | @@ -67,23 +67,23 @@ public class ResourceBundleDefaultTest { |
67 | 67 | |
68 | 68 | @Test |
69 | 69 | public void loadResourceDefault() { |
70 | - Locale.setDefault(new Locale("pt", "BR")); | |
70 | + Locale.setDefault(new Locale("pt", "BR")); | |
71 | 71 | bundleDefault = Beans.getReference(ResourceBundleDefault.class); |
72 | 72 | Assert.assertEquals("mensagem em Portugues", bundleDefault.getMessage()); |
73 | 73 | } |
74 | 74 | |
75 | 75 | @Test |
76 | 76 | public void loadResourceDefaultEnglish() { |
77 | - Locale.setDefault(Locale.US); | |
77 | + Locale.setDefault(Locale.US); | |
78 | 78 | bundleDefault = Beans.getReference(ResourceBundleDefault.class); |
79 | 79 | Assert.assertEquals("message in English", bundleDefault.getMessage()); |
80 | 80 | } |
81 | - | |
81 | + | |
82 | 82 | @Test |
83 | 83 | public void loadResourceWithLocaleNotExist() { |
84 | 84 | Locale.setDefault(Locale.ITALY); |
85 | 85 | bundleDefault = Beans.getReference(ResourceBundleDefault.class); |
86 | 86 | Assert.assertEquals("mensagem em Portugues", bundleDefault.getMessage()); |
87 | - } | |
87 | + } | |
88 | 88 | |
89 | 89 | } | ... | ... |
impl/core/src/test/java/resourcebundle/parameter/ResourceBundleWithParameterTest.java
... | ... | @@ -77,7 +77,7 @@ public class ResourceBundleWithParameterTest { |
77 | 77 | String value = bundleCustom.getBundle().getString("messageTwoParameter", "1", "2"); |
78 | 78 | Assert.assertEquals(expected, value); |
79 | 79 | } |
80 | - | |
80 | + | |
81 | 81 | @Test |
82 | 82 | public void loadKeyWithoutParameter() { |
83 | 83 | bundleCustom = Beans.getReference(ResourceBundleWithParameter.class); |
... | ... | @@ -85,15 +85,15 @@ public class ResourceBundleWithParameterTest { |
85 | 85 | String value = bundleCustom.getBundle().getString("messageWithoutParameter", "1", "2", "3"); |
86 | 86 | Assert.assertEquals(expected, value); |
87 | 87 | } |
88 | - | |
88 | + | |
89 | 89 | @Test |
90 | 90 | public void loadKeyWithStringParameter() { |
91 | 91 | bundleCustom = Beans.getReference(ResourceBundleWithParameter.class); |
92 | 92 | String expected = "Mensagem número 1"; |
93 | 93 | String value = bundleCustom.getBundle().getString("messageParameterString", "1"); |
94 | 94 | Assert.assertNotSame(expected, value); |
95 | - | |
96 | - expected = "Mensagem número {numero}"; | |
95 | + | |
96 | + expected = "Mensagem número {numero}"; | |
97 | 97 | Assert.assertEquals(expected, value); |
98 | 98 | } |
99 | 99 | ... | ... |
impl/core/src/test/java/security/athentication/custom/CustomAuthenticatorTest.java
... | ... | @@ -83,24 +83,24 @@ public class CustomAuthenticatorTest { |
83 | 83 | @Test |
84 | 84 | public void loginProcess() { |
85 | 85 | ContextManager.activate(ThreadLocalContext.class, RequestScoped.class); |
86 | - | |
86 | + | |
87 | 87 | context.login(); |
88 | 88 | assertTrue(context.isLoggedIn()); |
89 | 89 | assertNotNull(observer.getEvent()); |
90 | 90 | assertEquals("demoiselle", context.getCurrentUser().getName()); |
91 | - | |
91 | + | |
92 | 92 | ContextManager.deactivate(ThreadLocalContext.class, RequestScoped.class); |
93 | 93 | } |
94 | 94 | |
95 | 95 | @Test |
96 | 96 | public void logoutProcess() { |
97 | 97 | ContextManager.activate(ThreadLocalContext.class, RequestScoped.class); |
98 | - | |
98 | + | |
99 | 99 | context.login(); |
100 | 100 | context.logout(); |
101 | 101 | assertFalse(context.isLoggedIn()); |
102 | 102 | assertNull(context.getCurrentUser()); |
103 | - | |
103 | + | |
104 | 104 | ContextManager.deactivate(ThreadLocalContext.class, RequestScoped.class); |
105 | 105 | } |
106 | 106 | } | ... | ... |
impl/core/src/test/java/test/Tests.java
... | ... | @@ -47,7 +47,7 @@ public final class Tests { |
47 | 47 | private Tests() { |
48 | 48 | } |
49 | 49 | |
50 | - public static JavaArchive createDeployment(Class<?> baseClass) { | |
50 | + public static JavaArchive createDeployment(final Class<?> baseClass) { | |
51 | 51 | return createDeployment().addPackages(true, baseClass.getPackage()); |
52 | 52 | } |
53 | 53 | |
... | ... | @@ -62,7 +62,7 @@ public final class Tests { |
62 | 62 | "services/javax.enterprise.inject.spi.Extension"); |
63 | 63 | } |
64 | 64 | |
65 | - public static FileAsset createFileAsset(String pathname) { | |
65 | + public static FileAsset createFileAsset(final String pathname) { | |
66 | 66 | return new FileAsset(new File(pathname)); |
67 | 67 | } |
68 | 68 | } | ... | ... |
impl/core/src/test/java/transaction/rollback/DummyStrategy.java
... | ... | @@ -41,7 +41,7 @@ import br.gov.frameworkdemoiselle.transaction.Transaction; |
41 | 41 | public class DummyStrategy implements Transaction { |
42 | 42 | |
43 | 43 | private static final long serialVersionUID = 1L; |
44 | - | |
44 | + | |
45 | 45 | private boolean markedRollback = false; |
46 | 46 | |
47 | 47 | private boolean active = false; | ... | ... |
impl/core/src/test/java/transaction/rollback/TransactionManager.java
... | ... | @@ -97,35 +97,35 @@ public class TransactionManager { |
97 | 97 | return transactionPassedInSetRollbackOnlyMethod; |
98 | 98 | } |
99 | 99 | |
100 | - public static void setTransactionMarkedRollback(boolean markedRollback) { | |
100 | + public static void setTransactionMarkedRollback(final boolean markedRollback) { | |
101 | 101 | transactionMarkedRollback = markedRollback; |
102 | 102 | } |
103 | 103 | |
104 | - public static void setTransactionActive(boolean active) { | |
104 | + public static void setTransactionActive(final boolean active) { | |
105 | 105 | transactionActive = active; |
106 | 106 | } |
107 | 107 | |
108 | - public static void setTransactionPassedInIsActiveMethod(boolean passedInIsActiveMethod) { | |
108 | + public static void setTransactionPassedInIsActiveMethod(final boolean passedInIsActiveMethod) { | |
109 | 109 | transactionPassedInIsActiveMethod = passedInIsActiveMethod; |
110 | 110 | } |
111 | 111 | |
112 | - public static void setTransactionPassedInIsMarkedRollbackMethod(boolean passedInIsMarkedRollbackMethod) { | |
112 | + public static void setTransactionPassedInIsMarkedRollbackMethod(final boolean passedInIsMarkedRollbackMethod) { | |
113 | 113 | transactionPassedInIsMarkedRollbackMethod = passedInIsMarkedRollbackMethod; |
114 | 114 | } |
115 | 115 | |
116 | - public static void setTransactionPassedInBeginMethod(boolean passedInBeginMethod) { | |
116 | + public static void setTransactionPassedInBeginMethod(final boolean passedInBeginMethod) { | |
117 | 117 | transactionPassedInBeginMethod = passedInBeginMethod; |
118 | 118 | } |
119 | 119 | |
120 | - public static void setTransactionPassedInCommitMethod(boolean passedInCommitMethod) { | |
120 | + public static void setTransactionPassedInCommitMethod(final boolean passedInCommitMethod) { | |
121 | 121 | transactionPassedInCommitMethod = passedInCommitMethod; |
122 | 122 | } |
123 | 123 | |
124 | - public static void setTransactionPassedInRollbackMethod(boolean passedInRollbackMethod) { | |
124 | + public static void setTransactionPassedInRollbackMethod(final boolean passedInRollbackMethod) { | |
125 | 125 | transactionPassedInRollbackMethod = passedInRollbackMethod; |
126 | 126 | } |
127 | 127 | |
128 | - public static void setTransactionPassedInSetRollbackOnlyMethod(boolean passedInSetRollbackOnlyMethod) { | |
128 | + public static void setTransactionPassedInSetRollbackOnlyMethod(final boolean passedInSetRollbackOnlyMethod) { | |
129 | 129 | transactionPassedInSetRollbackOnlyMethod = passedInSetRollbackOnlyMethod; |
130 | 130 | } |
131 | 131 | } | ... | ... |
impl/core/src/test/java/transaction/rollback/TransactionManagerWithDefaultRollback.java
... | ... | @@ -41,8 +41,8 @@ import br.gov.frameworkdemoiselle.stereotype.Controller; |
41 | 41 | import br.gov.frameworkdemoiselle.transaction.Transactional; |
42 | 42 | |
43 | 43 | @Controller |
44 | -public class TransactionManagerWithDefaultRollback extends TransactionManager{ | |
45 | - | |
44 | +public class TransactionManagerWithDefaultRollback extends TransactionManager { | |
45 | + | |
46 | 46 | @Transactional |
47 | 47 | public void insert() { |
48 | 48 | throw new TransactionExceptionWithDefaultRollback(); | ... | ... |
impl/core/src/test/java/transaction/rollback/TransactionManagerWithRollback.java
... | ... | @@ -41,7 +41,7 @@ import br.gov.frameworkdemoiselle.stereotype.Controller; |
41 | 41 | import br.gov.frameworkdemoiselle.transaction.Transactional; |
42 | 42 | |
43 | 43 | @Controller |
44 | -public class TransactionManagerWithRollback extends TransactionManager{ | |
44 | +public class TransactionManagerWithRollback extends TransactionManager { | |
45 | 45 | |
46 | 46 | @Transactional |
47 | 47 | public void insert() { | ... | ... |
impl/core/src/test/java/transaction/rollback/TransactionRollbackTest.java
... | ... | @@ -58,16 +58,16 @@ import br.gov.frameworkdemoiselle.internal.context.ManagedContext; |
58 | 58 | |
59 | 59 | @RunWith(Arquillian.class) |
60 | 60 | public class TransactionRollbackTest { |
61 | - | |
61 | + | |
62 | 62 | @Inject |
63 | 63 | private TransactionManagerWithDefaultRollback managerWithDefaultRollback; |
64 | - | |
64 | + | |
65 | 65 | @Inject |
66 | 66 | private TransactionManagerWithRollback managerWithRollback; |
67 | - | |
67 | + | |
68 | 68 | @Inject |
69 | 69 | private TransactionManagerWithoutRollback managerWithoutRollback; |
70 | - | |
70 | + | |
71 | 71 | @Deployment |
72 | 72 | public static JavaArchive createDeployment() { |
73 | 73 | JavaArchive deployment = Tests.createDeployment(TransactionRollbackTest.class); |
... | ... | @@ -78,19 +78,19 @@ public class TransactionRollbackTest { |
78 | 78 | public void activeContext() { |
79 | 79 | ContextManager.activate(ManagedContext.class, RequestScoped.class); |
80 | 80 | } |
81 | - | |
81 | + | |
82 | 82 | @After |
83 | - public void deactiveContext(){ | |
83 | + public void deactiveContext() { | |
84 | 84 | ContextManager.deactivate(ManagedContext.class, RequestScoped.class); |
85 | 85 | } |
86 | - | |
86 | + | |
87 | 87 | @Test |
88 | - public void transactionWithDefaultRollback(){ | |
89 | - try{ | |
88 | + public void transactionWithDefaultRollback() { | |
89 | + try { | |
90 | 90 | managerWithDefaultRollback.clean(); |
91 | 91 | managerWithDefaultRollback.insert(); |
92 | 92 | fail(); |
93 | - }catch(TransactionExceptionWithDefaultRollback exception){ | |
93 | + } catch (TransactionExceptionWithDefaultRollback exception) { | |
94 | 94 | assertTrue(managerWithDefaultRollback.isTransactionPassedInIsActiveMethod()); |
95 | 95 | assertTrue(managerWithDefaultRollback.isTransactionPassedInBeginMethod()); |
96 | 96 | assertTrue(managerWithDefaultRollback.isTransactionMarkedRollback()); |
... | ... | @@ -101,14 +101,14 @@ public class TransactionRollbackTest { |
101 | 101 | assertFalse(managerWithDefaultRollback.isTransactionActive()); |
102 | 102 | } |
103 | 103 | } |
104 | - | |
104 | + | |
105 | 105 | @Test |
106 | - public void transactionWithRollback(){ | |
107 | - try{ | |
106 | + public void transactionWithRollback() { | |
107 | + try { | |
108 | 108 | managerWithRollback.clean(); |
109 | 109 | managerWithRollback.insert(); |
110 | 110 | fail(); |
111 | - }catch(TransactionExceptionWithRollback exception){ | |
111 | + } catch (TransactionExceptionWithRollback exception) { | |
112 | 112 | assertTrue(managerWithRollback.isTransactionPassedInIsActiveMethod()); |
113 | 113 | assertTrue(managerWithRollback.isTransactionPassedInBeginMethod()); |
114 | 114 | assertTrue(managerWithRollback.isTransactionMarkedRollback()); |
... | ... | @@ -119,14 +119,14 @@ public class TransactionRollbackTest { |
119 | 119 | assertFalse(managerWithRollback.isTransactionActive()); |
120 | 120 | } |
121 | 121 | } |
122 | - | |
123 | - @Test | |
124 | - public void transactionWithoutRollback(){ | |
125 | - try{ | |
122 | + | |
123 | + @Test | |
124 | + public void transactionWithoutRollback() { | |
125 | + try { | |
126 | 126 | managerWithoutRollback.clean(); |
127 | 127 | managerWithoutRollback.insert(); |
128 | 128 | fail(); |
129 | - }catch(TransactionExceptionWithoutRollback exception){ | |
129 | + } catch (TransactionExceptionWithoutRollback exception) { | |
130 | 130 | assertTrue(managerWithRollback.isTransactionPassedInIsActiveMethod()); |
131 | 131 | assertTrue(managerWithRollback.isTransactionPassedInBeginMethod()); |
132 | 132 | assertFalse(managerWithRollback.isTransactionMarkedRollback()); | ... | ... |
impl/core/src/test/java/util/ReflectionsTest.java
impl/core/src/test/java/util/StringsTest.java
... | ... | @@ -144,7 +144,7 @@ public class StringsTest { |
144 | 144 | assertTrue(result.contains("Test [name=myName, lastname=myLastname, nullField=null, this")); |
145 | 145 | } |
146 | 146 | |
147 | - private void testEqualsGetString(String in, String expected, Object... params) { | |
147 | + private void testEqualsGetString(final String in, final String expected, final Object... params) { | |
148 | 148 | String out = Strings.getString(in, params); |
149 | 149 | assertEquals(expected, out); |
150 | 150 | } | ... | ... |
impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/producer/DataSourceProducer.java
... | ... | @@ -21,7 +21,7 @@ import org.slf4j.Logger; |
21 | 21 | import br.gov.frameworkdemoiselle.DemoiselleException; |
22 | 22 | import br.gov.frameworkdemoiselle.annotation.Name; |
23 | 23 | import br.gov.frameworkdemoiselle.internal.configuration.JDBCConfig; |
24 | -import br.gov.frameworkdemoiselle.transaction.BasicDataSourceProxy; | |
24 | +import br.gov.frameworkdemoiselle.internal.proxy.BasicDataSourceProxy; | |
25 | 25 | import br.gov.frameworkdemoiselle.util.Beans; |
26 | 26 | import br.gov.frameworkdemoiselle.util.ResourceBundle; |
27 | 27 | ... | ... |
impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/internal/proxy/BasicDataSourceProxy.java
0 → 100644
... | ... | @@ -0,0 +1,363 @@ |
1 | +package br.gov.frameworkdemoiselle.internal.proxy; | |
2 | + | |
3 | +import java.io.PrintWriter; | |
4 | +import java.io.Serializable; | |
5 | +import java.sql.Connection; | |
6 | +import java.sql.SQLException; | |
7 | +import java.util.Collection; | |
8 | + | |
9 | +import org.apache.commons.dbcp.BasicDataSource; | |
10 | + | |
11 | +import br.gov.frameworkdemoiselle.DemoiselleException; | |
12 | +import br.gov.frameworkdemoiselle.internal.configuration.JDBCConfig; | |
13 | +import br.gov.frameworkdemoiselle.util.ResourceBundle; | |
14 | + | |
15 | +public class BasicDataSourceProxy extends BasicDataSource implements Serializable { | |
16 | + | |
17 | + private static final long serialVersionUID = 1L; | |
18 | + | |
19 | + private ResourceBundle bundle; | |
20 | + | |
21 | + private String dataSourceName; | |
22 | + | |
23 | + private JDBCConfig config; | |
24 | + | |
25 | + private transient BasicDataSource delegate; | |
26 | + | |
27 | + public BasicDataSourceProxy(String dataSourceName, JDBCConfig config, ResourceBundle bundle) { | |
28 | + this.dataSourceName = dataSourceName; | |
29 | + this.config = config; | |
30 | + this.bundle = bundle; | |
31 | + } | |
32 | + | |
33 | + private BasicDataSource getDelegate() { | |
34 | + if (this.delegate == null) { | |
35 | + BasicDataSource dataSource = new BasicDataSource(); | |
36 | + | |
37 | + try { | |
38 | + String driver = config.getDriverClass().get(dataSourceName); | |
39 | + String url = config.getUrl().get(dataSourceName); | |
40 | + String username = config.getUsername().get(dataSourceName); | |
41 | + String password = config.getPassword().get(dataSourceName); | |
42 | + | |
43 | + dataSource.setDriverClassName(driver); | |
44 | + dataSource.setUrl(url); | |
45 | + dataSource.setUsername(username); | |
46 | + dataSource.setPassword(password); | |
47 | + | |
48 | + } catch (ClassCastException cause) { | |
49 | + throw new DemoiselleException(bundle.getString("load-duplicated-configuration-failed"), cause); | |
50 | + } | |
51 | + | |
52 | + delegate = dataSource; | |
53 | + } | |
54 | + | |
55 | + return this.delegate; | |
56 | + } | |
57 | + | |
58 | + public boolean getDefaultAutoCommit() { | |
59 | + return getDelegate().getDefaultAutoCommit(); | |
60 | + } | |
61 | + | |
62 | + public void setDefaultAutoCommit(boolean defaultAutoCommit) { | |
63 | + getDelegate().setDefaultAutoCommit(defaultAutoCommit); | |
64 | + } | |
65 | + | |
66 | + public boolean getDefaultReadOnly() { | |
67 | + return getDelegate().getDefaultReadOnly(); | |
68 | + } | |
69 | + | |
70 | + public void setDefaultReadOnly(boolean defaultReadOnly) { | |
71 | + getDelegate().setDefaultReadOnly(defaultReadOnly); | |
72 | + } | |
73 | + | |
74 | + public int getDefaultTransactionIsolation() { | |
75 | + return getDelegate().getDefaultTransactionIsolation(); | |
76 | + } | |
77 | + | |
78 | + public void setDefaultTransactionIsolation(int defaultTransactionIsolation) { | |
79 | + getDelegate().setDefaultTransactionIsolation(defaultTransactionIsolation); | |
80 | + } | |
81 | + | |
82 | + public String getDefaultCatalog() { | |
83 | + return getDelegate().getDefaultCatalog(); | |
84 | + } | |
85 | + | |
86 | + public void setDefaultCatalog(String defaultCatalog) { | |
87 | + getDelegate().setDefaultCatalog(defaultCatalog); | |
88 | + } | |
89 | + | |
90 | + public String getDriverClassName() { | |
91 | + return getDelegate().getDriverClassName(); | |
92 | + } | |
93 | + | |
94 | + public void setDriverClassName(String driverClassName) { | |
95 | + getDelegate().setDriverClassName(driverClassName); | |
96 | + } | |
97 | + | |
98 | + public ClassLoader getDriverClassLoader() { | |
99 | + return getDelegate().getDriverClassLoader(); | |
100 | + } | |
101 | + | |
102 | + public void setDriverClassLoader(ClassLoader driverClassLoader) { | |
103 | + getDelegate().setDriverClassLoader(driverClassLoader); | |
104 | + } | |
105 | + | |
106 | + public int getMaxActive() { | |
107 | + return getDelegate().getMaxActive(); | |
108 | + } | |
109 | + | |
110 | + public void setMaxActive(int maxActive) { | |
111 | + getDelegate().setMaxActive(maxActive); | |
112 | + } | |
113 | + | |
114 | + public int getMaxIdle() { | |
115 | + return getDelegate().getMaxIdle(); | |
116 | + } | |
117 | + | |
118 | + public void setMaxIdle(int maxIdle) { | |
119 | + getDelegate().setMaxIdle(maxIdle); | |
120 | + } | |
121 | + | |
122 | + public int getMinIdle() { | |
123 | + return getDelegate().getMinIdle(); | |
124 | + } | |
125 | + | |
126 | + public void setMinIdle(int minIdle) { | |
127 | + getDelegate().setMinIdle(minIdle); | |
128 | + } | |
129 | + | |
130 | + public int getInitialSize() { | |
131 | + return getDelegate().getInitialSize(); | |
132 | + } | |
133 | + | |
134 | + public void setInitialSize(int initialSize) { | |
135 | + getDelegate().setInitialSize(initialSize); | |
136 | + } | |
137 | + | |
138 | + public long getMaxWait() { | |
139 | + return getDelegate().getMaxWait(); | |
140 | + } | |
141 | + | |
142 | + public void setMaxWait(long maxWait) { | |
143 | + getDelegate().setMaxWait(maxWait); | |
144 | + } | |
145 | + | |
146 | + public boolean isPoolPreparedStatements() { | |
147 | + return getDelegate().isPoolPreparedStatements(); | |
148 | + } | |
149 | + | |
150 | + public void setPoolPreparedStatements(boolean poolingStatements) { | |
151 | + getDelegate().setPoolPreparedStatements(poolingStatements); | |
152 | + } | |
153 | + | |
154 | + public int getMaxOpenPreparedStatements() { | |
155 | + return getDelegate().getMaxOpenPreparedStatements(); | |
156 | + } | |
157 | + | |
158 | + public void setMaxOpenPreparedStatements(int maxOpenStatements) { | |
159 | + getDelegate().setMaxOpenPreparedStatements(maxOpenStatements); | |
160 | + } | |
161 | + | |
162 | + public boolean getTestOnBorrow() { | |
163 | + return getDelegate().getTestOnBorrow(); | |
164 | + } | |
165 | + | |
166 | + public void setTestOnBorrow(boolean testOnBorrow) { | |
167 | + getDelegate().setTestOnBorrow(testOnBorrow); | |
168 | + } | |
169 | + | |
170 | + public boolean getTestOnReturn() { | |
171 | + return getDelegate().getTestOnReturn(); | |
172 | + } | |
173 | + | |
174 | + public void setTestOnReturn(boolean testOnReturn) { | |
175 | + getDelegate().setTestOnReturn(testOnReturn); | |
176 | + } | |
177 | + | |
178 | + public long getTimeBetweenEvictionRunsMillis() { | |
179 | + return getDelegate().getTimeBetweenEvictionRunsMillis(); | |
180 | + } | |
181 | + | |
182 | + public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) { | |
183 | + getDelegate().setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); | |
184 | + } | |
185 | + | |
186 | + public int getNumTestsPerEvictionRun() { | |
187 | + return getDelegate().getNumTestsPerEvictionRun(); | |
188 | + } | |
189 | + | |
190 | + public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) { | |
191 | + getDelegate().setNumTestsPerEvictionRun(numTestsPerEvictionRun); | |
192 | + } | |
193 | + | |
194 | + public long getMinEvictableIdleTimeMillis() { | |
195 | + return getDelegate().getMinEvictableIdleTimeMillis(); | |
196 | + } | |
197 | + | |
198 | + public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) { | |
199 | + getDelegate().setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); | |
200 | + } | |
201 | + | |
202 | + public boolean getTestWhileIdle() { | |
203 | + return getDelegate().getTestWhileIdle(); | |
204 | + } | |
205 | + | |
206 | + public void setTestWhileIdle(boolean testWhileIdle) { | |
207 | + getDelegate().setTestWhileIdle(testWhileIdle); | |
208 | + } | |
209 | + | |
210 | + public int getNumActive() { | |
211 | + return getDelegate().getNumActive(); | |
212 | + } | |
213 | + | |
214 | + public int getNumIdle() { | |
215 | + return getDelegate().getNumIdle(); | |
216 | + } | |
217 | + | |
218 | + public String getPassword() { | |
219 | + return getDelegate().getPassword(); | |
220 | + } | |
221 | + | |
222 | + public void setPassword(String password) { | |
223 | + getDelegate().setPassword(password); | |
224 | + } | |
225 | + | |
226 | + public String getUrl() { | |
227 | + return getDelegate().getUrl(); | |
228 | + } | |
229 | + | |
230 | + public void setUrl(String url) { | |
231 | + getDelegate().setUrl(url); | |
232 | + } | |
233 | + | |
234 | + public String getUsername() { | |
235 | + return getDelegate().getUsername(); | |
236 | + } | |
237 | + | |
238 | + public void setUsername(String username) { | |
239 | + getDelegate().setUsername(username); | |
240 | + } | |
241 | + | |
242 | + public String getValidationQuery() { | |
243 | + return getDelegate().getValidationQuery(); | |
244 | + } | |
245 | + | |
246 | + public void setValidationQuery(String validationQuery) { | |
247 | + getDelegate().setValidationQuery(validationQuery); | |
248 | + } | |
249 | + | |
250 | + public int getValidationQueryTimeout() { | |
251 | + return getDelegate().getValidationQueryTimeout(); | |
252 | + } | |
253 | + | |
254 | + public void setValidationQueryTimeout(int timeout) { | |
255 | + getDelegate().setValidationQueryTimeout(timeout); | |
256 | + } | |
257 | + | |
258 | + @SuppressWarnings("rawtypes") | |
259 | + public Collection getConnectionInitSqls() { | |
260 | + return getDelegate().getConnectionInitSqls(); | |
261 | + } | |
262 | + | |
263 | + @SuppressWarnings("rawtypes") | |
264 | + public void setConnectionInitSqls(Collection connectionInitSqls) { | |
265 | + getDelegate().setConnectionInitSqls(connectionInitSqls); | |
266 | + } | |
267 | + | |
268 | + public void setAccessToUnderlyingConnectionAllowed(boolean allow) { | |
269 | + getDelegate().setAccessToUnderlyingConnectionAllowed(allow); | |
270 | + } | |
271 | + | |
272 | + public Connection getConnection(String user, String pass) throws SQLException { | |
273 | + return getDelegate().getConnection(user, pass); | |
274 | + } | |
275 | + | |
276 | + public int getLoginTimeout() throws SQLException { | |
277 | + return getDelegate().getLoginTimeout(); | |
278 | + } | |
279 | + | |
280 | + public PrintWriter getLogWriter() throws SQLException { | |
281 | + return getDelegate().getLogWriter(); | |
282 | + } | |
283 | + | |
284 | + public void setLoginTimeout(int loginTimeout) throws SQLException { | |
285 | + getDelegate().setLoginTimeout(loginTimeout); | |
286 | + } | |
287 | + | |
288 | + public void setLogWriter(PrintWriter logWriter) throws SQLException { | |
289 | + getDelegate().setLogWriter(logWriter); | |
290 | + } | |
291 | + | |
292 | + public boolean getRemoveAbandoned() { | |
293 | + return getDelegate().getRemoveAbandoned(); | |
294 | + } | |
295 | + | |
296 | + public void setRemoveAbandoned(boolean removeAbandoned) { | |
297 | + getDelegate().setRemoveAbandoned(removeAbandoned); | |
298 | + } | |
299 | + | |
300 | + public int getRemoveAbandonedTimeout() { | |
301 | + return getDelegate().getRemoveAbandonedTimeout(); | |
302 | + } | |
303 | + | |
304 | + public void setRemoveAbandonedTimeout(int removeAbandonedTimeout) { | |
305 | + getDelegate().setRemoveAbandonedTimeout(removeAbandonedTimeout); | |
306 | + } | |
307 | + | |
308 | + public boolean getLogAbandoned() { | |
309 | + return getDelegate().getLogAbandoned(); | |
310 | + } | |
311 | + | |
312 | + public void setLogAbandoned(boolean logAbandoned) { | |
313 | + getDelegate().setLogAbandoned(logAbandoned); | |
314 | + } | |
315 | + | |
316 | + public void addConnectionProperty(String name, String value) { | |
317 | + getDelegate().addConnectionProperty(name, value); | |
318 | + } | |
319 | + | |
320 | + public void removeConnectionProperty(String name) { | |
321 | + getDelegate().removeConnectionProperty(name); | |
322 | + } | |
323 | + | |
324 | + public void setConnectionProperties(String connectionProperties) { | |
325 | + getDelegate().setConnectionProperties(connectionProperties); | |
326 | + } | |
327 | + | |
328 | + public void close() throws SQLException { | |
329 | + getDelegate().close(); | |
330 | + } | |
331 | + | |
332 | + public boolean equals(Object arg0) { | |
333 | + return getDelegate().equals(arg0); | |
334 | + } | |
335 | + | |
336 | + public Connection getConnection() throws SQLException { | |
337 | + return getDelegate().getConnection(); | |
338 | + } | |
339 | + | |
340 | + public int hashCode() { | |
341 | + return getDelegate().hashCode(); | |
342 | + } | |
343 | + | |
344 | + public boolean isAccessToUnderlyingConnectionAllowed() { | |
345 | + return getDelegate().isAccessToUnderlyingConnectionAllowed(); | |
346 | + } | |
347 | + | |
348 | + public boolean isClosed() { | |
349 | + return getDelegate().isClosed(); | |
350 | + } | |
351 | + | |
352 | + public boolean isWrapperFor(Class<?> iface) throws SQLException { | |
353 | + return getDelegate().isWrapperFor(iface); | |
354 | + } | |
355 | + | |
356 | + public String toString() { | |
357 | + return getDelegate().toString(); | |
358 | + } | |
359 | + | |
360 | + public <T> T unwrap(Class<T> iface) throws SQLException { | |
361 | + return getDelegate().unwrap(iface); | |
362 | + } | |
363 | +} | ... | ... |
impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/transaction/BasicDataSourceProxy.java
... | ... | @@ -1,363 +0,0 @@ |
1 | -package br.gov.frameworkdemoiselle.transaction; | |
2 | - | |
3 | -import java.io.PrintWriter; | |
4 | -import java.io.Serializable; | |
5 | -import java.sql.Connection; | |
6 | -import java.sql.SQLException; | |
7 | -import java.util.Collection; | |
8 | - | |
9 | -import org.apache.commons.dbcp.BasicDataSource; | |
10 | - | |
11 | -import br.gov.frameworkdemoiselle.DemoiselleException; | |
12 | -import br.gov.frameworkdemoiselle.internal.configuration.JDBCConfig; | |
13 | -import br.gov.frameworkdemoiselle.util.ResourceBundle; | |
14 | - | |
15 | -public class BasicDataSourceProxy extends BasicDataSource implements Serializable { | |
16 | - | |
17 | - private static final long serialVersionUID = 1L; | |
18 | - | |
19 | - private ResourceBundle bundle; | |
20 | - | |
21 | - private String dataSourceName; | |
22 | - | |
23 | - private JDBCConfig config; | |
24 | - | |
25 | - private transient BasicDataSource delegate; | |
26 | - | |
27 | - public BasicDataSourceProxy(String dataSourceName, JDBCConfig config, ResourceBundle bundle) { | |
28 | - this.dataSourceName = dataSourceName; | |
29 | - this.config = config; | |
30 | - this.bundle = bundle; | |
31 | - } | |
32 | - | |
33 | - private BasicDataSource getDelegate() { | |
34 | - if (this.delegate == null) { | |
35 | - BasicDataSource dataSource = new BasicDataSource(); | |
36 | - | |
37 | - try { | |
38 | - String driver = config.getDriverClass().get(dataSourceName); | |
39 | - String url = config.getUrl().get(dataSourceName); | |
40 | - String username = config.getUsername().get(dataSourceName); | |
41 | - String password = config.getPassword().get(dataSourceName); | |
42 | - | |
43 | - dataSource.setDriverClassName(driver); | |
44 | - dataSource.setUrl(url); | |
45 | - dataSource.setUsername(username); | |
46 | - dataSource.setPassword(password); | |
47 | - | |
48 | - } catch (ClassCastException cause) { | |
49 | - throw new DemoiselleException(bundle.getString("load-duplicated-configuration-failed"), cause); | |
50 | - } | |
51 | - | |
52 | - delegate = dataSource; | |
53 | - } | |
54 | - | |
55 | - return this.delegate; | |
56 | - } | |
57 | - | |
58 | - public boolean getDefaultAutoCommit() { | |
59 | - return getDelegate().getDefaultAutoCommit(); | |
60 | - } | |
61 | - | |
62 | - public void setDefaultAutoCommit(boolean defaultAutoCommit) { | |
63 | - getDelegate().setDefaultAutoCommit(defaultAutoCommit); | |
64 | - } | |
65 | - | |
66 | - public boolean getDefaultReadOnly() { | |
67 | - return getDelegate().getDefaultReadOnly(); | |
68 | - } | |
69 | - | |
70 | - public void setDefaultReadOnly(boolean defaultReadOnly) { | |
71 | - getDelegate().setDefaultReadOnly(defaultReadOnly); | |
72 | - } | |
73 | - | |
74 | - public int getDefaultTransactionIsolation() { | |
75 | - return getDelegate().getDefaultTransactionIsolation(); | |
76 | - } | |
77 | - | |
78 | - public void setDefaultTransactionIsolation(int defaultTransactionIsolation) { | |
79 | - getDelegate().setDefaultTransactionIsolation(defaultTransactionIsolation); | |
80 | - } | |
81 | - | |
82 | - public String getDefaultCatalog() { | |
83 | - return getDelegate().getDefaultCatalog(); | |
84 | - } | |
85 | - | |
86 | - public void setDefaultCatalog(String defaultCatalog) { | |
87 | - getDelegate().setDefaultCatalog(defaultCatalog); | |
88 | - } | |
89 | - | |
90 | - public String getDriverClassName() { | |
91 | - return getDelegate().getDriverClassName(); | |
92 | - } | |
93 | - | |
94 | - public void setDriverClassName(String driverClassName) { | |
95 | - getDelegate().setDriverClassName(driverClassName); | |
96 | - } | |
97 | - | |
98 | - public ClassLoader getDriverClassLoader() { | |
99 | - return getDelegate().getDriverClassLoader(); | |
100 | - } | |
101 | - | |
102 | - public void setDriverClassLoader(ClassLoader driverClassLoader) { | |
103 | - getDelegate().setDriverClassLoader(driverClassLoader); | |
104 | - } | |
105 | - | |
106 | - public int getMaxActive() { | |
107 | - return getDelegate().getMaxActive(); | |
108 | - } | |
109 | - | |
110 | - public void setMaxActive(int maxActive) { | |
111 | - getDelegate().setMaxActive(maxActive); | |
112 | - } | |
113 | - | |
114 | - public int getMaxIdle() { | |
115 | - return getDelegate().getMaxIdle(); | |
116 | - } | |
117 | - | |
118 | - public void setMaxIdle(int maxIdle) { | |
119 | - getDelegate().setMaxIdle(maxIdle); | |
120 | - } | |
121 | - | |
122 | - public int getMinIdle() { | |
123 | - return getDelegate().getMinIdle(); | |
124 | - } | |
125 | - | |
126 | - public void setMinIdle(int minIdle) { | |
127 | - getDelegate().setMinIdle(minIdle); | |
128 | - } | |
129 | - | |
130 | - public int getInitialSize() { | |
131 | - return getDelegate().getInitialSize(); | |
132 | - } | |
133 | - | |
134 | - public void setInitialSize(int initialSize) { | |
135 | - getDelegate().setInitialSize(initialSize); | |
136 | - } | |
137 | - | |
138 | - public long getMaxWait() { | |
139 | - return getDelegate().getMaxWait(); | |
140 | - } | |
141 | - | |
142 | - public void setMaxWait(long maxWait) { | |
143 | - getDelegate().setMaxWait(maxWait); | |
144 | - } | |
145 | - | |
146 | - public boolean isPoolPreparedStatements() { | |
147 | - return getDelegate().isPoolPreparedStatements(); | |
148 | - } | |
149 | - | |
150 | - public void setPoolPreparedStatements(boolean poolingStatements) { | |
151 | - getDelegate().setPoolPreparedStatements(poolingStatements); | |
152 | - } | |
153 | - | |
154 | - public int getMaxOpenPreparedStatements() { | |
155 | - return getDelegate().getMaxOpenPreparedStatements(); | |
156 | - } | |
157 | - | |
158 | - public void setMaxOpenPreparedStatements(int maxOpenStatements) { | |
159 | - getDelegate().setMaxOpenPreparedStatements(maxOpenStatements); | |
160 | - } | |
161 | - | |
162 | - public boolean getTestOnBorrow() { | |
163 | - return getDelegate().getTestOnBorrow(); | |
164 | - } | |
165 | - | |
166 | - public void setTestOnBorrow(boolean testOnBorrow) { | |
167 | - getDelegate().setTestOnBorrow(testOnBorrow); | |
168 | - } | |
169 | - | |
170 | - public boolean getTestOnReturn() { | |
171 | - return getDelegate().getTestOnReturn(); | |
172 | - } | |
173 | - | |
174 | - public void setTestOnReturn(boolean testOnReturn) { | |
175 | - getDelegate().setTestOnReturn(testOnReturn); | |
176 | - } | |
177 | - | |
178 | - public long getTimeBetweenEvictionRunsMillis() { | |
179 | - return getDelegate().getTimeBetweenEvictionRunsMillis(); | |
180 | - } | |
181 | - | |
182 | - public void setTimeBetweenEvictionRunsMillis(long timeBetweenEvictionRunsMillis) { | |
183 | - getDelegate().setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); | |
184 | - } | |
185 | - | |
186 | - public int getNumTestsPerEvictionRun() { | |
187 | - return getDelegate().getNumTestsPerEvictionRun(); | |
188 | - } | |
189 | - | |
190 | - public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) { | |
191 | - getDelegate().setNumTestsPerEvictionRun(numTestsPerEvictionRun); | |
192 | - } | |
193 | - | |
194 | - public long getMinEvictableIdleTimeMillis() { | |
195 | - return getDelegate().getMinEvictableIdleTimeMillis(); | |
196 | - } | |
197 | - | |
198 | - public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) { | |
199 | - getDelegate().setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); | |
200 | - } | |
201 | - | |
202 | - public boolean getTestWhileIdle() { | |
203 | - return getDelegate().getTestWhileIdle(); | |
204 | - } | |
205 | - | |
206 | - public void setTestWhileIdle(boolean testWhileIdle) { | |
207 | - getDelegate().setTestWhileIdle(testWhileIdle); | |
208 | - } | |
209 | - | |
210 | - public int getNumActive() { | |
211 | - return getDelegate().getNumActive(); | |
212 | - } | |
213 | - | |
214 | - public int getNumIdle() { | |
215 | - return getDelegate().getNumIdle(); | |
216 | - } | |
217 | - | |
218 | - public String getPassword() { | |
219 | - return getDelegate().getPassword(); | |
220 | - } | |
221 | - | |
222 | - public void setPassword(String password) { | |
223 | - getDelegate().setPassword(password); | |
224 | - } | |
225 | - | |
226 | - public String getUrl() { | |
227 | - return getDelegate().getUrl(); | |
228 | - } | |
229 | - | |
230 | - public void setUrl(String url) { | |
231 | - getDelegate().setUrl(url); | |
232 | - } | |
233 | - | |
234 | - public String getUsername() { | |
235 | - return getDelegate().getUsername(); | |
236 | - } | |
237 | - | |
238 | - public void setUsername(String username) { | |
239 | - getDelegate().setUsername(username); | |
240 | - } | |
241 | - | |
242 | - public String getValidationQuery() { | |
243 | - return getDelegate().getValidationQuery(); | |
244 | - } | |
245 | - | |
246 | - public void setValidationQuery(String validationQuery) { | |
247 | - getDelegate().setValidationQuery(validationQuery); | |
248 | - } | |
249 | - | |
250 | - public int getValidationQueryTimeout() { | |
251 | - return getDelegate().getValidationQueryTimeout(); | |
252 | - } | |
253 | - | |
254 | - public void setValidationQueryTimeout(int timeout) { | |
255 | - getDelegate().setValidationQueryTimeout(timeout); | |
256 | - } | |
257 | - | |
258 | - @SuppressWarnings("rawtypes") | |
259 | - public Collection getConnectionInitSqls() { | |
260 | - return getDelegate().getConnectionInitSqls(); | |
261 | - } | |
262 | - | |
263 | - @SuppressWarnings("rawtypes") | |
264 | - public void setConnectionInitSqls(Collection connectionInitSqls) { | |
265 | - getDelegate().setConnectionInitSqls(connectionInitSqls); | |
266 | - } | |
267 | - | |
268 | - public void setAccessToUnderlyingConnectionAllowed(boolean allow) { | |
269 | - getDelegate().setAccessToUnderlyingConnectionAllowed(allow); | |
270 | - } | |
271 | - | |
272 | - public Connection getConnection(String user, String pass) throws SQLException { | |
273 | - return getDelegate().getConnection(user, pass); | |
274 | - } | |
275 | - | |
276 | - public int getLoginTimeout() throws SQLException { | |
277 | - return getDelegate().getLoginTimeout(); | |
278 | - } | |
279 | - | |
280 | - public PrintWriter getLogWriter() throws SQLException { | |
281 | - return getDelegate().getLogWriter(); | |
282 | - } | |
283 | - | |
284 | - public void setLoginTimeout(int loginTimeout) throws SQLException { | |
285 | - getDelegate().setLoginTimeout(loginTimeout); | |
286 | - } | |
287 | - | |
288 | - public void setLogWriter(PrintWriter logWriter) throws SQLException { | |
289 | - getDelegate().setLogWriter(logWriter); | |
290 | - } | |
291 | - | |
292 | - public boolean getRemoveAbandoned() { | |
293 | - return getDelegate().getRemoveAbandoned(); | |
294 | - } | |
295 | - | |
296 | - public void setRemoveAbandoned(boolean removeAbandoned) { | |
297 | - getDelegate().setRemoveAbandoned(removeAbandoned); | |
298 | - } | |
299 | - | |
300 | - public int getRemoveAbandonedTimeout() { | |
301 | - return getDelegate().getRemoveAbandonedTimeout(); | |
302 | - } | |
303 | - | |
304 | - public void setRemoveAbandonedTimeout(int removeAbandonedTimeout) { | |
305 | - getDelegate().setRemoveAbandonedTimeout(removeAbandonedTimeout); | |
306 | - } | |
307 | - | |
308 | - public boolean getLogAbandoned() { | |
309 | - return getDelegate().getLogAbandoned(); | |
310 | - } | |
311 | - | |
312 | - public void setLogAbandoned(boolean logAbandoned) { | |
313 | - getDelegate().setLogAbandoned(logAbandoned); | |
314 | - } | |
315 | - | |
316 | - public void addConnectionProperty(String name, String value) { | |
317 | - getDelegate().addConnectionProperty(name, value); | |
318 | - } | |
319 | - | |
320 | - public void removeConnectionProperty(String name) { | |
321 | - getDelegate().removeConnectionProperty(name); | |
322 | - } | |
323 | - | |
324 | - public void setConnectionProperties(String connectionProperties) { | |
325 | - getDelegate().setConnectionProperties(connectionProperties); | |
326 | - } | |
327 | - | |
328 | - public void close() throws SQLException { | |
329 | - getDelegate().close(); | |
330 | - } | |
331 | - | |
332 | - public boolean equals(Object arg0) { | |
333 | - return getDelegate().equals(arg0); | |
334 | - } | |
335 | - | |
336 | - public Connection getConnection() throws SQLException { | |
337 | - return getDelegate().getConnection(); | |
338 | - } | |
339 | - | |
340 | - public int hashCode() { | |
341 | - return getDelegate().hashCode(); | |
342 | - } | |
343 | - | |
344 | - public boolean isAccessToUnderlyingConnectionAllowed() { | |
345 | - return getDelegate().isAccessToUnderlyingConnectionAllowed(); | |
346 | - } | |
347 | - | |
348 | - public boolean isClosed() { | |
349 | - return getDelegate().isClosed(); | |
350 | - } | |
351 | - | |
352 | - public boolean isWrapperFor(Class<?> iface) throws SQLException { | |
353 | - return getDelegate().isWrapperFor(iface); | |
354 | - } | |
355 | - | |
356 | - public String toString() { | |
357 | - return getDelegate().toString(); | |
358 | - } | |
359 | - | |
360 | - public <T> T unwrap(Class<T> iface) throws SQLException { | |
361 | - return getDelegate().unwrap(iface); | |
362 | - } | |
363 | -} |
impl/extension/jdbc/src/main/java/br/gov/frameworkdemoiselle/transaction/JDBCTransaction.java
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.transaction; |
38 | 38 | |
39 | -import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.EXTENSIONS_L1_PRIORITY; | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L2_PRIORITY; | |
40 | 40 | |
41 | 41 | import java.io.Serializable; |
42 | 42 | import java.sql.Connection; |
... | ... | @@ -55,7 +55,7 @@ import br.gov.frameworkdemoiselle.util.Beans; |
55 | 55 | * @author SERPRO |
56 | 56 | * @see Transaction |
57 | 57 | */ |
58 | -@Priority(EXTENSIONS_L1_PRIORITY) | |
58 | +@Priority(L2_PRIORITY) | |
59 | 59 | public class JDBCTransaction implements Transaction { |
60 | 60 | |
61 | 61 | private static final long serialVersionUID = 1L; | ... | ... |
impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/transaction/JPATransaction.java
... | ... | @@ -36,7 +36,7 @@ |
36 | 36 | */ |
37 | 37 | package br.gov.frameworkdemoiselle.transaction; |
38 | 38 | |
39 | -import static br.gov.frameworkdemoiselle.internal.implementation.StrategySelector.EXTENSIONS_L1_PRIORITY; | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L2_PRIORITY; | |
40 | 40 | |
41 | 41 | import java.util.Collection; |
42 | 42 | |
... | ... | @@ -53,7 +53,7 @@ import br.gov.frameworkdemoiselle.util.Beans; |
53 | 53 | * @author SERPRO |
54 | 54 | * @see Transaction |
55 | 55 | */ |
56 | -@Priority(EXTENSIONS_L1_PRIORITY) | |
56 | +@Priority(L2_PRIORITY) | |
57 | 57 | public class JPATransaction implements Transaction { |
58 | 58 | |
59 | 59 | private static final long serialVersionUID = 1L; | ... | ... |
impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/FacesMessageAppender.java
0 → 100644
... | ... | @@ -0,0 +1,54 @@ |
1 | +/* | |
2 | + * Demoiselle Framework | |
3 | + * Copyright (C) 2010 SERPRO | |
4 | + * ---------------------------------------------------------------------------- | |
5 | + * This file is part of Demoiselle Framework. | |
6 | + * | |
7 | + * Demoiselle Framework is free software; you can redistribute it and/or | |
8 | + * modify it under the terms of the GNU Lesser General Public License version 3 | |
9 | + * as published by the Free Software Foundation. | |
10 | + * | |
11 | + * This program is distributed in the hope that it will be useful, | |
12 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | + * GNU General Public License for more details. | |
15 | + * | |
16 | + * You should have received a copy of the GNU Lesser General Public License version 3 | |
17 | + * along with this program; if not, see <http://www.gnu.org/licenses/> | |
18 | + * or write to the Free Software Foundation, Inc., 51 Franklin Street, | |
19 | + * Fifth Floor, Boston, MA 02110-1301, USA. | |
20 | + * ---------------------------------------------------------------------------- | |
21 | + * Este arquivo é parte do Framework Demoiselle. | |
22 | + * | |
23 | + * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou | |
24 | + * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação | |
25 | + * do Software Livre (FSF). | |
26 | + * | |
27 | + * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA | |
28 | + * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou | |
29 | + * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português | |
30 | + * para maiores detalhes. | |
31 | + * | |
32 | + * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título | |
33 | + * "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/> | |
34 | + * ou escreva para a Fundação do Software Livre (FSF) Inc., | |
35 | + * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | |
36 | + */ | |
37 | +package br.gov.frameworkdemoiselle.internal.implementation; | |
38 | + | |
39 | +import static br.gov.frameworkdemoiselle.annotation.Priority.L3_PRIORITY; | |
40 | +import br.gov.frameworkdemoiselle.annotation.Priority; | |
41 | +import br.gov.frameworkdemoiselle.message.Message; | |
42 | +import br.gov.frameworkdemoiselle.message.MessageAppender; | |
43 | +import br.gov.frameworkdemoiselle.util.Faces; | |
44 | + | |
45 | +@Priority(L3_PRIORITY) | |
46 | +public class FacesMessageAppender implements MessageAppender { | |
47 | + | |
48 | + private static final long serialVersionUID = 1L; | |
49 | + | |
50 | + @Override | |
51 | + public void append(Message message) { | |
52 | + Faces.addMessage(message); | |
53 | + } | |
54 | +} | ... | ... |