Commit 0e1703135d00a336002faf3a0883f1a700e04e6e

Authored by Emerson Oliveira
2 parents 2db71850 74ae7e0c
Exists in master

Merge branch '2.4.0' of git@github.com:demoiselle/framework.git into 2.4.0

Showing 58 changed files with 2166 additions and 1676 deletions   Show diff stats
impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/ManagementBootstrap.java
@@ -11,12 +11,12 @@ import javax.enterprise.inject.spi.AfterDeploymentValidation; @@ -11,12 +11,12 @@ import javax.enterprise.inject.spi.AfterDeploymentValidation;
11 import javax.enterprise.inject.spi.AnnotatedType; 11 import javax.enterprise.inject.spi.AnnotatedType;
12 import javax.enterprise.inject.spi.Bean; 12 import javax.enterprise.inject.spi.Bean;
13 import javax.enterprise.inject.spi.BeanManager; 13 import javax.enterprise.inject.spi.BeanManager;
  14 +import javax.enterprise.inject.spi.BeforeShutdown;
14 import javax.enterprise.inject.spi.Extension; 15 import javax.enterprise.inject.spi.Extension;
15 import javax.enterprise.inject.spi.ProcessAnnotatedType; 16 import javax.enterprise.inject.spi.ProcessAnnotatedType;
16 17
17 import br.gov.frameworkdemoiselle.internal.context.ContextManager; 18 import br.gov.frameworkdemoiselle.internal.context.ContextManager;
18 import br.gov.frameworkdemoiselle.internal.context.ManagedContext; 19 import br.gov.frameworkdemoiselle.internal.context.ManagedContext;
19 -import br.gov.frameworkdemoiselle.lifecycle.AfterShutdownProccess;  
20 import br.gov.frameworkdemoiselle.management.annotation.Managed; 20 import br.gov.frameworkdemoiselle.management.annotation.Managed;
21 import br.gov.frameworkdemoiselle.management.extension.ManagementExtension; 21 import br.gov.frameworkdemoiselle.management.extension.ManagementExtension;
22 import br.gov.frameworkdemoiselle.management.internal.ManagedType; 22 import br.gov.frameworkdemoiselle.management.internal.ManagedType;
@@ -60,11 +60,13 @@ public class ManagementBootstrap implements Extension { @@ -60,11 +60,13 @@ public class ManagementBootstrap implements Extension {
60 monitoringManager.initialize(managementExtensionCache); 60 monitoringManager.initialize(managementExtensionCache);
61 } 61 }
62 62
63 - public void unregisterAvailableManagedTypes(@Observes final AfterShutdownProccess event) { 63 + public void unregisterAvailableManagedTypes(@Observes final BeforeShutdown event) {
64 64
65 MonitoringManager manager = Beans.getReference(MonitoringManager.class); 65 MonitoringManager manager = Beans.getReference(MonitoringManager.class);
66 manager.shutdown(managementExtensionCache); 66 manager.shutdown(managementExtensionCache);
67 - 67 +
  68 + managementExtensionCache.clear();
  69 + types.clear();
68 } 70 }
69 71
70 } 72 }
impl/core/src/main/java/br/gov/frameworkdemoiselle/management/internal/MonitoringManager.java
@@ -13,6 +13,7 @@ import javax.management.ReflectionException; @@ -13,6 +13,7 @@ import javax.management.ReflectionException;
13 import org.slf4j.Logger; 13 import org.slf4j.Logger;
14 14
15 import br.gov.frameworkdemoiselle.DemoiselleException; 15 import br.gov.frameworkdemoiselle.DemoiselleException;
  16 +import br.gov.frameworkdemoiselle.annotation.Name;
16 import br.gov.frameworkdemoiselle.internal.context.ContextManager; 17 import br.gov.frameworkdemoiselle.internal.context.ContextManager;
17 import br.gov.frameworkdemoiselle.internal.context.ManagedContext; 18 import br.gov.frameworkdemoiselle.internal.context.ManagedContext;
18 import br.gov.frameworkdemoiselle.management.annotation.Managed; 19 import br.gov.frameworkdemoiselle.management.annotation.Managed;
@@ -38,12 +39,14 @@ public class MonitoringManager { @@ -38,12 +39,14 @@ public class MonitoringManager {
38 private Logger logger; 39 private Logger logger;
39 40
40 @Inject 41 @Inject
  42 + @Name("demoiselle-core-bundle")
41 private ResourceBundle bundle; 43 private ResourceBundle bundle;
42 44
43 private final List<ManagedType> managedTypes = new ArrayList<ManagedType>(); 45 private final List<ManagedType> managedTypes = new ArrayList<ManagedType>();
44 46
45 public void addManagedType(ManagedType managedType) { 47 public void addManagedType(ManagedType managedType) {
46 managedTypes.add(managedType); 48 managedTypes.add(managedType);
  49 + logger.debug(bundle.getString("management-debug-registering-managed-type",managedType.getType().getCanonicalName()));
47 } 50 }
48 51
49 /** 52 /**
@@ -189,8 +192,13 @@ public class MonitoringManager { @@ -189,8 +192,13 @@ public class MonitoringManager {
189 //Manda uma notificação de mudança de atributo 192 //Manda uma notificação de mudança de atributo
190 NotificationManager notificationManager = Beans.getReference(NotificationManager.class); 193 NotificationManager notificationManager = Beans.getReference(NotificationManager.class);
191 Class<? extends Object> attributeType = newValue!=null ? newValue.getClass() : null; 194 Class<? extends Object> attributeType = newValue!=null ? newValue.getClass() : null;
192 - AttributeChangeNotification notification = new AttributeChangeNotification(bundle.getString(""), propertyName, attributeType, oldValue, newValue);  
193 - notificationManager.sendAttributeChangedMessage(notification); 195 +
  196 + AttributeChangeNotification notification = new AttributeChangeNotification(bundle.getString("management-notification-attribute-changed",propertyName,managedType.getType().getCanonicalName())
  197 + , propertyName
  198 + , attributeType
  199 + , oldValue
  200 + , newValue);
  201 + notificationManager.sendNotification(notification);
194 202
195 } catch (Exception e) { 203 } catch (Exception e) {
196 throw new DemoiselleException(bundle.getString( 204 throw new DemoiselleException(bundle.getString(
@@ -233,6 +241,8 @@ public class MonitoringManager { @@ -233,6 +241,8 @@ public class MonitoringManager {
233 ManagementExtension monitoringExtension = Beans.getReference(monitoringExtensionClass); 241 ManagementExtension monitoringExtension = Beans.getReference(monitoringExtensionClass);
234 242
235 monitoringExtension.shutdown(this.getManagedTypes()); 243 monitoringExtension.shutdown(this.getManagedTypes());
  244 +
  245 + logger.debug( bundle.getString("management-debug-removing-management-extension",monitoringExtension.getClass().getCanonicalName()) );
236 246
237 } 247 }
238 248
@@ -246,6 +256,8 @@ public class MonitoringManager { @@ -246,6 +256,8 @@ public class MonitoringManager {
246 .getReference(monitoringExtensionClass); 256 .getReference(monitoringExtensionClass);
247 257
248 monitoringExtension.initialize(this.getManagedTypes()); 258 monitoringExtension.initialize(this.getManagedTypes());
  259 +
  260 + logger.debug( bundle.getString("management-debug-processing-management-extension",monitoringExtension.getClass().getCanonicalName()) );
249 261
250 } 262 }
251 263
impl/core/src/main/java/br/gov/frameworkdemoiselle/management/notification/NotificationManager.java
@@ -5,6 +5,7 @@ import java.io.Serializable; @@ -5,6 +5,7 @@ import java.io.Serializable;
5 import javax.enterprise.context.ApplicationScoped; 5 import javax.enterprise.context.ApplicationScoped;
6 import javax.enterprise.event.Event; 6 import javax.enterprise.event.Event;
7 import javax.enterprise.event.Observes; 7 import javax.enterprise.event.Observes;
  8 +import javax.enterprise.util.AnnotationLiteral;
8 import javax.inject.Inject; 9 import javax.inject.Inject;
9 10
10 import br.gov.frameworkdemoiselle.management.internal.notification.event.NotificationEvent; 11 import br.gov.frameworkdemoiselle.management.internal.notification.event.NotificationEvent;
@@ -48,16 +49,32 @@ public class NotificationManager implements Serializable{ @@ -48,16 +49,32 @@ public class NotificationManager implements Serializable{
48 * @param notification The notification to send 49 * @param notification The notification to send
49 */ 50 */
50 public void sendNotification(Notification notification) { 51 public void sendNotification(Notification notification) {
51 - genericNotificationEvent.fire(new NotificationEvent(notification)); 52 + if (! AttributeChangeNotification.class.isInstance(notification) ){
  53 + getGenericNotificationEvent().fire(new NotificationEvent(notification));
  54 + }
  55 + else{
  56 + getAttributeChangeNotificationEvent().fire(new NotificationEvent(notification));
  57 + }
  58 + }
  59 +
  60 + @SuppressWarnings("unchecked")
  61 + private Event<NotificationEvent> getGenericNotificationEvent() {
  62 + if (genericNotificationEvent==null){
  63 + genericNotificationEvent = Beans.getReference(Event.class , new AnnotationLiteral<Generic>() {});
  64 + }
  65 +
  66 + return genericNotificationEvent;
52 } 67 }
53 68
54 - /**  
55 - * Sends a notification comunicating about a change of value for an attribute.  
56 - *  
57 - * @param notification Special notification communicating a change of value in an attribute.  
58 - *  
59 - */  
60 - public void sendAttributeChangedMessage(AttributeChangeNotification notification){  
61 - attributeChangeNotificationEvent.fire(new NotificationEvent(notification)); 69 + @SuppressWarnings("unchecked")
  70 + private Event<NotificationEvent> getAttributeChangeNotificationEvent() {
  71 + if (attributeChangeNotificationEvent==null){
  72 + attributeChangeNotificationEvent = Beans.getReference(Event.class , new AnnotationLiteral<AttributeChange>() {});
  73 + }
  74 +
  75 + return attributeChangeNotificationEvent;
62 } 76 }
  77 +
  78 +
  79 +
63 } 80 }
impl/core/src/main/resources/demoiselle-core-bundle.properties
@@ -98,15 +98,19 @@ user-has-role=Usu\u00E1rio {0} possui a(s) role(s)\: {1} @@ -98,15 +98,19 @@ user-has-role=Usu\u00E1rio {0} possui a(s) role(s)\: {1}
98 98
99 authenticator-not-defined=Nenhum mecanismo de autentica\u00E7\u00E3o foi definido. Para utilizar {0} \u00E9 preciso definir a propriedade frameworkdemoiselle.security.authenticator.class como mecanismo de autentica\u00E7\u00E3o desejado no arquivo demoiselle.properties. 99 authenticator-not-defined=Nenhum mecanismo de autentica\u00E7\u00E3o foi definido. Para utilizar {0} \u00E9 preciso definir a propriedade frameworkdemoiselle.security.authenticator.class como mecanismo de autentica\u00E7\u00E3o desejado no arquivo demoiselle.properties.
100 100
101 -management-null-class-defined=A classe gerenciada informada n\u00E3o pode ser nula.  
102 -management-no-annotation-found=Classe {0} precisa ser anotada com @Managed.  
103 -management-invalid-property-no-getter-setter=Falha ao inicializar classe gerenciada {0}, n\u00E3o foi encontrado um m\u00E9todo get ou m\u00E9todo set para a propriedade {1}.  
104 -management-invalid-property-as-operation=Falha ao inicializar classe gerenciada {0}, n\u00E3o \u00E9 poss\u00EDvel declarar uma propriedade cujo m\u00E9todo get ou set \u00E9 uma opera\u00E7\u00E3o.  
105 -management-introspection-error=Erro ao ler atributos da classe gerenciada {0}.  
106 -management-type-not-found=A classe gerenciada informada n\u00E3o existe: {0}.  
107 -management-invoke-error=Erro ao tentar invocar a opera\u00E7\u00E3o "{0}" da classe gerenciada, a opera\u00E7\u00E3o n\u00E3o foi encontrada.  
108 -management-debug-acessing-property=Acessando propriedade {0} da classe gerenciada {1}.  
109 -management-debug-setting-property=Definindo novo valor para propriedade {0} da classe gerenciada {1}.  
110 -management-debug-invoking-operation=Invocando opera\u00E7\u00E3o {0} da classe gerenciada {1}.  
111 -management-debug-starting-custom-context=Levantando contexto {0} para executar comando na classe gerenciada {1}.  
112 -management-debug-stoping-custom-context=Desligando contexto {0} para classe gerenciada {1}. 101 +management-notification-attribute-changed=O atributo [{0}] da classe gerenciada [{1}] foi alterado
  102 +management-null-class-defined=A classe gerenciada informada n\u00E3o pode ser nula
  103 +management-no-annotation-found=Classe {0} precisa ser anotada com @Managed
  104 +management-invalid-property-no-getter-setter=Falha ao inicializar classe gerenciada {0}, n\u00E3o foi encontrado um m\u00E9todo get ou m\u00E9todo set para a propriedade {1}
  105 +management-invalid-property-as-operation=Falha ao inicializar classe gerenciada {0}, n\u00E3o \u00E9 poss\u00EDvel declarar uma propriedade cujo m\u00E9todo get ou set \u00E9 uma opera\u00E7\u00E3o
  106 +management-introspection-error=Erro ao ler atributos da classe gerenciada {0}
  107 +management-type-not-found=A classe gerenciada informada n\u00E3o existe\: {0}
  108 +management-invoke-error=Erro ao tentar invocar a opera\u00E7\u00E3o "{0}" da classe gerenciada, a opera\u00E7\u00E3o n\u00E3o foi encontrada
  109 +management-debug-acessing-property=Acessando propriedade {0} da classe gerenciada {1}
  110 +management-debug-setting-property=Definindo novo valor para propriedade {0} da classe gerenciada {1}
  111 +management-debug-invoking-operation=Invocando opera\u00E7\u00E3o {0} da classe gerenciada {1}
  112 +management-debug-starting-custom-context=Levantando contexto {0} para executar comando na classe gerenciada {1}
  113 +management-debug-stoping-custom-context=Desligando contexto {0} para classe gerenciada {1}
  114 +management-debug-registering-managed-type=Registrando classe gerenciada [{0}]
  115 +management-debug-processing-management-extension=Processando extens\u00E3o de gerenciamento [{0}]
  116 +management-debug-removing-management-extension=Desativando extens\u00E3o de gerenciamento [{0}]
113 \ No newline at end of file 117 \ No newline at end of file
impl/core/src/test/java/exception/CustomException.java
@@ -1,46 +0,0 @@ @@ -1,46 +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 exception;  
38 -  
39 -import br.gov.frameworkdemoiselle.exception.ApplicationException;  
40 -  
41 -@ApplicationException  
42 -public class CustomException extends RuntimeException {  
43 -  
44 - private static final long serialVersionUID = 1L;  
45 -  
46 -}  
impl/core/src/test/java/exception/CustomExceptionHandler.java
@@ -1,63 +0,0 @@ @@ -1,63 +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 exception;  
38 -  
39 -import br.gov.frameworkdemoiselle.exception.ExceptionHandler;  
40 -import br.gov.frameworkdemoiselle.stereotype.Controller;  
41 -  
42 -@Controller  
43 -public class CustomExceptionHandler {  
44 -  
45 - private boolean exceptionHandler = false;  
46 -  
47 - public boolean isExceptionHandler() {  
48 - return exceptionHandler;  
49 - }  
50 -  
51 - public void setExceptionHandler(boolean exceptionHandler) {  
52 - this.exceptionHandler = exceptionHandler;  
53 - }  
54 -  
55 - public void throwExceptionWithMessage() {  
56 - throw new CustomException();  
57 - }  
58 -  
59 - @ExceptionHandler  
60 - public void handler(CustomException exception) {  
61 - setExceptionHandler(true);  
62 - }  
63 -}  
impl/core/src/test/java/exception/CustomExceptionTest.java
@@ -1,68 +0,0 @@ @@ -1,68 +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 exception;  
38 -  
39 -import static junit.framework.Assert.assertEquals;  
40 -  
41 -import javax.inject.Inject;  
42 -  
43 -import org.jboss.arquillian.container.test.api.Deployment;  
44 -import org.jboss.arquillian.junit.Arquillian;  
45 -import org.jboss.shrinkwrap.api.spec.JavaArchive;  
46 -import org.junit.Test;  
47 -import org.junit.runner.RunWith;  
48 -  
49 -import test.Tests;  
50 -  
51 -@RunWith(Arquillian.class)  
52 -public class CustomExceptionTest {  
53 -  
54 - @Inject  
55 - private CustomExceptionHandler exception;  
56 -  
57 - @Deployment  
58 - public static JavaArchive createDeployment() {  
59 - JavaArchive deployment = Tests.createDeployment(CustomExceptionTest.class);  
60 - return deployment;  
61 - }  
62 -  
63 - @Test  
64 - public void testCustomExceptionHandler() {  
65 - exception.throwExceptionWithMessage();  
66 - assertEquals(true, exception.isExceptionHandler());  
67 - }  
68 -}  
impl/core/src/test/java/exception/ExceptionHandlerTwoParameter.java
@@ -1,54 +0,0 @@ @@ -1,54 +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 exception;  
38 -  
39 -import java.awt.geom.IllegalPathStateException;  
40 -  
41 -import br.gov.frameworkdemoiselle.exception.ExceptionHandler;  
42 -import br.gov.frameworkdemoiselle.stereotype.Controller;  
43 -  
44 -@Controller  
45 -public class ExceptionHandlerTwoParameter {  
46 -  
47 - public void throwIllegalPathException() {  
48 - throw new IllegalPathStateException();  
49 - }  
50 -  
51 - @ExceptionHandler  
52 - public void handler(IllegalPathStateException cause, IllegalStateException cause2) {  
53 - }  
54 -}  
impl/core/src/test/java/exception/ExceptionInheritance.java
@@ -1,75 +0,0 @@ @@ -1,75 +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 exception;  
38 -  
39 -import br.gov.frameworkdemoiselle.exception.ExceptionHandler;  
40 -import br.gov.frameworkdemoiselle.stereotype.Controller;  
41 -  
42 -@Controller  
43 -public class ExceptionInheritance {  
44 -  
45 - private boolean handlerSuperClass = false;  
46 -  
47 - private boolean handlerClass = false;  
48 -  
49 - public boolean isHandlerSuperClass() {  
50 - return handlerSuperClass;  
51 - }  
52 -  
53 - public boolean isHandlerClass() {  
54 - return handlerClass;  
55 - }  
56 -  
57 - public void throwNullPointerException() {  
58 - throw new NullPointerException();  
59 - }  
60 -  
61 - public void throwArithmeticException() {  
62 - throw new ArithmeticException();  
63 - }  
64 -  
65 - @ExceptionHandler  
66 - public void handle(ArithmeticException e) {  
67 - handlerClass = true;  
68 - }  
69 -  
70 - @ExceptionHandler  
71 - public void handle(RuntimeException e) {  
72 - handlerSuperClass = true;  
73 - }  
74 -  
75 -}  
impl/core/src/test/java/exception/ExceptionInheritanceTest.java
@@ -1,75 +0,0 @@ @@ -1,75 +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 exception;  
38 -  
39 -import static junit.framework.Assert.assertEquals;  
40 -  
41 -import javax.inject.Inject;  
42 -  
43 -import org.jboss.arquillian.container.test.api.Deployment;  
44 -import org.jboss.arquillian.junit.Arquillian;  
45 -import org.jboss.shrinkwrap.api.spec.JavaArchive;  
46 -import org.junit.Test;  
47 -import org.junit.runner.RunWith;  
48 -  
49 -import test.Tests;  
50 -  
51 -@RunWith(Arquillian.class)  
52 -public class ExceptionInheritanceTest {  
53 -  
54 - @Inject  
55 - private ExceptionInheritance exceptionInheritance;  
56 -  
57 - @Deployment  
58 - public static JavaArchive createDeployment() {  
59 - JavaArchive deployment = Tests.createDeployment(ExceptionInheritanceTest.class);  
60 - return deployment;  
61 - }  
62 -  
63 - @Test  
64 - public void testExceptionInheritanceSuperClass() {  
65 - exceptionInheritance.throwNullPointerException();  
66 - assertEquals(true, exceptionInheritance.isHandlerSuperClass());  
67 - }  
68 -  
69 - @Test  
70 - public void testExceptionInheritanceClass() {  
71 - exceptionInheritance.throwArithmeticException();  
72 - assertEquals(false, exceptionInheritance.isHandlerSuperClass());  
73 - assertEquals(true, exceptionInheritance.isHandlerClass());  
74 - }  
75 -}  
impl/core/src/test/java/exception/MultiException.java
@@ -1,81 +0,0 @@ @@ -1,81 +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 exception;  
38 -  
39 -import br.gov.frameworkdemoiselle.exception.ExceptionHandler;  
40 -import br.gov.frameworkdemoiselle.stereotype.Controller;  
41 -  
42 -@Controller  
43 -public class MultiException {  
44 -  
45 - private boolean nullPointerExceptionHandler = false;  
46 -  
47 - private boolean arithmeticExceptionHandler = false;  
48 -  
49 - public boolean isNullPointerExceptionHandler() {  
50 - return nullPointerExceptionHandler;  
51 - }  
52 -  
53 - public boolean isArithmeticExceptionHandler() {  
54 - return arithmeticExceptionHandler;  
55 - }  
56 -  
57 - public void throwNullPointerException() {  
58 - throw new NullPointerException();  
59 - }  
60 -  
61 - public void throwArithmeticException() {  
62 - throw new ArithmeticException();  
63 - }  
64 -  
65 - @SuppressWarnings({ "null", "unused" })  
66 - public void throwTwoException() {  
67 - String txt = null;  
68 - txt.toString();  
69 - int result = 4 / 0;  
70 - }  
71 -  
72 - @ExceptionHandler  
73 - public void handler(NullPointerException cause) {  
74 - nullPointerExceptionHandler = true;  
75 - }  
76 -  
77 - @ExceptionHandler  
78 - public void handler(ArithmeticException cause) {  
79 - arithmeticExceptionHandler = true;  
80 - }  
81 -}  
impl/core/src/test/java/exception/MultiExceptionTest.java
@@ -1,93 +0,0 @@ @@ -1,93 +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 exception;  
38 -  
39 -import javax.inject.Inject;  
40 -  
41 -import static junit.framework.Assert.fail;  
42 -import static junit.framework.Assert.assertEquals;  
43 -  
44 -import org.jboss.arquillian.container.test.api.Deployment;  
45 -import org.jboss.arquillian.junit.Arquillian;  
46 -import org.jboss.shrinkwrap.api.spec.JavaArchive;  
47 -import org.junit.Test;  
48 -import org.junit.runner.RunWith;  
49 -  
50 -import br.gov.frameworkdemoiselle.DemoiselleException;  
51 -  
52 -import test.Tests;  
53 -  
54 -@RunWith(Arquillian.class)  
55 -public class MultiExceptionTest {  
56 -  
57 - @Inject  
58 - private MultiException multiException;  
59 -  
60 - @Inject  
61 - private ExceptionHandlerTwoParameter exceptionTwoParameter;  
62 -  
63 - @Deployment  
64 - public static JavaArchive createDeployment() {  
65 - JavaArchive deployment = Tests.createDeployment(MultiExceptionTest.class);  
66 - return deployment;  
67 - }  
68 -  
69 - @Test  
70 - public void testTwoExceptionTwoMethod() {  
71 - multiException.throwArithmeticException();  
72 - multiException.throwNullPointerException();  
73 - assertEquals(true, multiException.isArithmeticExceptionHandler());  
74 - assertEquals(true, multiException.isArithmeticExceptionHandler());  
75 - }  
76 -  
77 - @Test  
78 - public void testTwoExceptionOneMethod() {  
79 - multiException.throwTwoException();  
80 - assertEquals(true, multiException.isNullPointerExceptionHandler());  
81 - assertEquals(false, multiException.isArithmeticExceptionHandler());  
82 - }  
83 -  
84 - @Test  
85 - public void testExceptionHandlerWithTwoParameter() {  
86 - try {  
87 - exceptionTwoParameter.throwIllegalPathException();  
88 - fail();  
89 - } catch (Exception e) {  
90 - assertEquals(DemoiselleException.class, e.getClass());  
91 - }  
92 - }  
93 -}  
impl/core/src/test/java/exception/MultiStrategyExceptionHandler.java
@@ -1,96 +0,0 @@ @@ -1,96 +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 exception;  
38 -  
39 -import br.gov.frameworkdemoiselle.exception.ExceptionHandler;  
40 -import br.gov.frameworkdemoiselle.stereotype.Controller;  
41 -  
42 -@Controller  
43 -public class MultiStrategyExceptionHandler {  
44 -  
45 - private boolean exceptionHandler = false;  
46 -  
47 - private boolean exceptionTryCacth = false;  
48 -  
49 - String txt = null;  
50 -  
51 - public boolean isExceptionHandler() {  
52 - return exceptionHandler;  
53 - }  
54 -  
55 - public boolean isExceptionTryCacth() {  
56 - return exceptionTryCacth;  
57 - }  
58 -  
59 - @SuppressWarnings("unused")  
60 - public void exceptionMultiStrategyTryAndHandler() {  
61 - try {  
62 - int result = 4 / 0;  
63 - } catch (ArithmeticException e) {  
64 - exceptionTryCacth = true;  
65 - }  
66 - txt.toString();  
67 - }  
68 -  
69 - @SuppressWarnings("unused")  
70 - public void exceptionMultiStrategyHandlerAndTry() {  
71 - txt.toString();  
72 - try {  
73 - int result = 4 / 0;  
74 - } catch (ArithmeticException e) {  
75 - exceptionTryCacth = true;  
76 - }  
77 - }  
78 -  
79 - public void exceptionTwoHandler() {  
80 - try {  
81 - txt.toString();  
82 - } catch (NullPointerException e) {  
83 - exceptionTryCacth = true;  
84 - }  
85 - }  
86 -  
87 - public void exceptionHandler() {  
88 - txt.toString();  
89 - }  
90 -  
91 - @ExceptionHandler  
92 - public void handler(NullPointerException cause) {  
93 - exceptionHandler = true;  
94 - }  
95 -  
96 -}  
impl/core/src/test/java/exception/MultiStrategyExceptionHandlerTest.java
@@ -1,90 +0,0 @@ @@ -1,90 +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 exception;  
38 -  
39 -import static junit.framework.Assert.assertEquals;  
40 -  
41 -import javax.inject.Inject;  
42 -  
43 -import org.jboss.arquillian.container.test.api.Deployment;  
44 -import org.jboss.arquillian.junit.Arquillian;  
45 -import org.jboss.shrinkwrap.api.spec.JavaArchive;  
46 -import org.junit.Test;  
47 -import org.junit.runner.RunWith;  
48 -  
49 -import test.Tests;  
50 -  
51 -@RunWith(Arquillian.class)  
52 -public class MultiStrategyExceptionHandlerTest {  
53 -  
54 - @Inject  
55 - private MultiStrategyExceptionHandler handlerTest;  
56 -  
57 - @Deployment  
58 - public static JavaArchive createDeployment() {  
59 - JavaArchive deployment = Tests.createDeployment(OneExceptionTest.class);  
60 - return deployment;  
61 - }  
62 -  
63 - @Test  
64 - public void testExceptionMultiStrategyTryAndHandler() {  
65 - handlerTest.exceptionMultiStrategyTryAndHandler();  
66 - assertEquals(true, handlerTest.isExceptionTryCacth());  
67 - assertEquals(true, handlerTest.isExceptionHandler());  
68 - }  
69 -  
70 - @Test  
71 - public void testExceptionMultiStrategyHandlerAndTry() {  
72 - handlerTest.exceptionMultiStrategyHandlerAndTry();  
73 - assertEquals(false, handlerTest.isExceptionTryCacth());  
74 - assertEquals(true, handlerTest.isExceptionHandler());  
75 - }  
76 -  
77 - @Test  
78 - public void testSameExceptionTwoStrategyHandler() {  
79 - handlerTest.exceptionTwoHandler();  
80 - assertEquals(true, handlerTest.isExceptionTryCacth());  
81 - assertEquals(false, handlerTest.isExceptionHandler());  
82 - }  
83 -  
84 - @Test  
85 - public void testExceptionOneStrategyHandler() {  
86 - handlerTest.exceptionHandler();  
87 - assertEquals(false, handlerTest.isExceptionTryCacth());  
88 - assertEquals(true, handlerTest.isExceptionHandler());  
89 - }  
90 -}  
impl/core/src/test/java/exception/OneException.java
@@ -1,115 +0,0 @@ @@ -1,115 +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 exception;  
38 -  
39 -import java.util.NoSuchElementException;  
40 -  
41 -import br.gov.frameworkdemoiselle.exception.ExceptionHandler;  
42 -import br.gov.frameworkdemoiselle.stereotype.Controller;  
43 -  
44 -@Controller  
45 -public class OneException {  
46 -  
47 - private boolean exceptionHandler = false;  
48 -  
49 - private boolean exceptionHandlerIllegalArgument1 = false;  
50 -  
51 - private boolean exceptionHandlerIllegalArgument2 = false;  
52 -  
53 - private boolean exceptionHandlerIllegalArgument3 = false;  
54 -  
55 - public boolean isExceptionHandler() {  
56 - return exceptionHandler;  
57 - }  
58 -  
59 - public boolean isExceptionHandlerIllegalArgument1() {  
60 - return exceptionHandlerIllegalArgument1;  
61 - }  
62 -  
63 - public boolean isExceptionHandlerIllegalArgument2() {  
64 - return exceptionHandlerIllegalArgument2;  
65 - }  
66 -  
67 - public boolean isExceptionHandlerIllegalArgument3() {  
68 - return exceptionHandlerIllegalArgument3;  
69 - }  
70 -  
71 - @SuppressWarnings("null")  
72 - public void throwExceptionWithHandler() {  
73 - String txt = null;  
74 - txt.toString();  
75 - }  
76 -  
77 - @SuppressWarnings("unused")  
78 - public void throwExceptionWithoutHandler() {  
79 - int result = 4 / 0;  
80 - }  
81 -  
82 - public void throwIllegalArgumentException() {  
83 - throw new IllegalArgumentException();  
84 - }  
85 -  
86 - public void throwNoSuchElementException() {  
87 - throw new NoSuchElementException();  
88 - }  
89 -  
90 - @ExceptionHandler  
91 - public void handler(NullPointerException cause) {  
92 - exceptionHandler = true;  
93 - }  
94 -  
95 - @ExceptionHandler  
96 - public void handler1(IllegalArgumentException cause) {  
97 - exceptionHandlerIllegalArgument1 = true;  
98 - }  
99 -  
100 - @ExceptionHandler  
101 - public void handler3(IllegalArgumentException cause) {  
102 - exceptionHandlerIllegalArgument3 = true;  
103 - }  
104 -  
105 - @ExceptionHandler  
106 - public void handler2(IllegalArgumentException cause) {  
107 - exceptionHandlerIllegalArgument2 = true;  
108 - }  
109 -  
110 - @ExceptionHandler  
111 - @SuppressWarnings("unused")  
112 - public void handlerWithError(NoSuchElementException cause) {  
113 - int a = 2 / 0;  
114 - }  
115 -}  
impl/core/src/test/java/exception/OneExceptionTest.java
@@ -1,97 +0,0 @@ @@ -1,97 +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 exception;  
38 -  
39 -import javax.inject.Inject;  
40 -  
41 -import static junit.framework.Assert.fail;  
42 -import static junit.framework.Assert.assertEquals;  
43 -  
44 -import org.jboss.arquillian.container.test.api.Deployment;  
45 -import org.jboss.arquillian.junit.Arquillian;  
46 -import org.jboss.shrinkwrap.api.spec.JavaArchive;  
47 -import org.junit.Test;  
48 -import org.junit.runner.RunWith;  
49 -  
50 -import test.Tests;  
51 -  
52 -@RunWith(Arquillian.class)  
53 -public class OneExceptionTest {  
54 -  
55 - @Inject  
56 - private OneException oneException;  
57 -  
58 - @Deployment  
59 - public static JavaArchive createDeployment() {  
60 - JavaArchive deployment = Tests.createDeployment(OneExceptionTest.class);  
61 - return deployment;  
62 - }  
63 -  
64 - @Test  
65 - public void testExceptionWithHandler() {  
66 - oneException.throwExceptionWithHandler();  
67 - assertEquals(true, oneException.isExceptionHandler());  
68 - }  
69 -  
70 - @Test  
71 - public void testExceptionWithoutHandler() {  
72 - try {  
73 - oneException.throwExceptionWithoutHandler();  
74 - fail();  
75 - } catch (Exception cause) {  
76 - assertEquals(ArithmeticException.class, cause.getClass());  
77 - }  
78 - }  
79 -  
80 - @Test  
81 - public void testExceptionWithMultiHandler() {  
82 - oneException.throwIllegalArgumentException();  
83 - assertEquals(false, oneException.isExceptionHandlerIllegalArgument1());  
84 - assertEquals(true, oneException.isExceptionHandlerIllegalArgument2());  
85 - assertEquals(false, oneException.isExceptionHandlerIllegalArgument3());  
86 - }  
87 -  
88 - @Test  
89 - public void testExceptionHandlerWithException() {  
90 - try {  
91 - oneException.throwNoSuchElementException();  
92 - } catch (Exception e) {  
93 - assertEquals(ArithmeticException.class, e.getClass());  
94 - }  
95 -  
96 - }  
97 -}  
impl/core/src/test/java/exception/basic/ExceptionHandlerTest.java 0 → 100644
@@ -0,0 +1,122 @@ @@ -0,0 +1,122 @@
  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 exception.basic;
  38 +
  39 +import static junit.framework.Assert.assertEquals;
  40 +import static junit.framework.Assert.fail;
  41 +
  42 +import javax.inject.Inject;
  43 +
  44 +import org.jboss.arquillian.container.test.api.Deployment;
  45 +import org.jboss.arquillian.junit.Arquillian;
  46 +import org.jboss.shrinkwrap.api.spec.JavaArchive;
  47 +import org.junit.Test;
  48 +import org.junit.runner.RunWith;
  49 +
  50 +import test.Tests;
  51 +import br.gov.frameworkdemoiselle.DemoiselleException;
  52 +
  53 +@RunWith(Arquillian.class)
  54 +public class ExceptionHandlerTest {
  55 +
  56 + @Inject
  57 + private SimpleExceptionHandler exceptionHandler;
  58 +
  59 + @Inject
  60 + private MultiExceptionHandler multiExceptionHandler;
  61 +
  62 + @Inject
  63 + private ExceptionHandlerTwoParameter exceptionTwoParameter;
  64 +
  65 + @Deployment
  66 + public static JavaArchive createDeployment() {
  67 + JavaArchive deployment = Tests.createDeployment(ExceptionHandlerTest.class);
  68 + return deployment;
  69 + }
  70 +
  71 + @Test
  72 + public void exceptionWithHandler() {
  73 + exceptionHandler.throwArithmeticException();
  74 + exceptionHandler.throwNullPointerException();
  75 + assertEquals(true, exceptionHandler.isArithmeticExceptionHandler());
  76 + assertEquals(true, exceptionHandler.isArithmeticExceptionHandler());
  77 + }
  78 +
  79 + @Test
  80 + public void exceptionWithoutHandler() {
  81 + try {
  82 + exceptionHandler.throwExceptionWithoutHandler();
  83 + fail();
  84 + } catch (Exception cause) {
  85 + assertEquals(IllegalArgumentException.class, cause.getClass());
  86 + }
  87 + }
  88 +
  89 + @Test
  90 + public void twoExceptionOneMethod() {
  91 + exceptionHandler.throwTwoException();
  92 + assertEquals(true, exceptionHandler.isNullPointerExceptionHandler());
  93 + assertEquals(false, exceptionHandler.isArithmeticExceptionHandler());
  94 + }
  95 +
  96 + @Test
  97 + public void exceptionWithMultiHandler() {
  98 + multiExceptionHandler.throwIllegalArgumentException();
  99 + assertEquals(false, multiExceptionHandler.isExceptionHandlerIllegalArgument1());
  100 + assertEquals(true, multiExceptionHandler.isExceptionHandlerIllegalArgument2());
  101 + assertEquals(false, multiExceptionHandler.isExceptionHandlerIllegalArgument3());
  102 + }
  103 +
  104 + @Test
  105 + public void exceptionHandlerWithException() {
  106 + try {
  107 + multiExceptionHandler.throwNoSuchElementException();
  108 + } catch (Exception e) {
  109 + assertEquals(ArithmeticException.class, e.getClass());
  110 + }
  111 + }
  112 +
  113 + @Test
  114 + public void exceptionHandlerWithTwoParameter() {
  115 + try {
  116 + exceptionTwoParameter.throwIllegalPathException();
  117 + fail();
  118 + } catch (Exception e) {
  119 + assertEquals(DemoiselleException.class, e.getClass());
  120 + }
  121 + }
  122 +}
impl/core/src/test/java/exception/basic/ExceptionHandlerTwoParameter.java 0 → 100644
@@ -0,0 +1,54 @@ @@ -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 exception.basic;
  38 +
  39 +import java.awt.geom.IllegalPathStateException;
  40 +
  41 +import br.gov.frameworkdemoiselle.exception.ExceptionHandler;
  42 +import br.gov.frameworkdemoiselle.stereotype.Controller;
  43 +
  44 +@Controller
  45 +public class ExceptionHandlerTwoParameter {
  46 +
  47 + public void throwIllegalPathException() {
  48 + throw new IllegalPathStateException();
  49 + }
  50 +
  51 + @ExceptionHandler
  52 + public void handler(IllegalPathStateException cause, IllegalStateException cause2) {
  53 + }
  54 +}
impl/core/src/test/java/exception/basic/MultiExceptionHandler.java 0 → 100644
@@ -0,0 +1,101 @@ @@ -0,0 +1,101 @@
  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 exception.basic;
  38 +
  39 +import java.util.NoSuchElementException;
  40 +
  41 +import br.gov.frameworkdemoiselle.exception.ExceptionHandler;
  42 +import br.gov.frameworkdemoiselle.stereotype.Controller;
  43 +
  44 +@Controller
  45 +public class MultiExceptionHandler {
  46 +
  47 + private boolean exceptionHandlerIllegalArgument1 = false;
  48 +
  49 + private boolean exceptionHandlerIllegalArgument2 = false;
  50 +
  51 + private boolean exceptionHandlerIllegalArgument3 = false;
  52 +
  53 + public boolean isExceptionHandlerIllegalArgument1() {
  54 + return exceptionHandlerIllegalArgument1;
  55 + }
  56 +
  57 + public boolean isExceptionHandlerIllegalArgument2() {
  58 + return exceptionHandlerIllegalArgument2;
  59 + }
  60 +
  61 + public boolean isExceptionHandlerIllegalArgument3() {
  62 + return exceptionHandlerIllegalArgument3;
  63 + }
  64 +
  65 + @SuppressWarnings("null")
  66 + public void throwExceptionWithHandler() {
  67 + String txt = null;
  68 + txt.toString();
  69 + }
  70 +
  71 +
  72 +
  73 + public void throwIllegalArgumentException() {
  74 + throw new IllegalArgumentException();
  75 + }
  76 +
  77 + public void throwNoSuchElementException() {
  78 + throw new NoSuchElementException();
  79 + }
  80 +
  81 + @ExceptionHandler
  82 + public void handler1(IllegalArgumentException cause) {
  83 + exceptionHandlerIllegalArgument1 = true;
  84 + }
  85 +
  86 + @ExceptionHandler
  87 + public void handler3(IllegalArgumentException cause) {
  88 + exceptionHandlerIllegalArgument3 = true;
  89 + }
  90 +
  91 + @ExceptionHandler
  92 + public void handler2(IllegalArgumentException cause) {
  93 + exceptionHandlerIllegalArgument2 = true;
  94 + }
  95 +
  96 + @ExceptionHandler
  97 + @SuppressWarnings("unused")
  98 + public void handlerWithError(NoSuchElementException cause) {
  99 + int a = 2 / 0;
  100 + }
  101 +}
impl/core/src/test/java/exception/basic/SimpleExceptionHandler.java 0 → 100644
@@ -0,0 +1,85 @@ @@ -0,0 +1,85 @@
  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 exception.basic;
  38 +
  39 +import br.gov.frameworkdemoiselle.exception.ExceptionHandler;
  40 +import br.gov.frameworkdemoiselle.stereotype.Controller;
  41 +
  42 +@Controller
  43 +public class SimpleExceptionHandler {
  44 +
  45 + private boolean nullPointerExceptionHandler = false;
  46 +
  47 + private boolean arithmeticExceptionHandler = false;
  48 +
  49 + public boolean isNullPointerExceptionHandler() {
  50 + return nullPointerExceptionHandler;
  51 + }
  52 +
  53 + public boolean isArithmeticExceptionHandler() {
  54 + return arithmeticExceptionHandler;
  55 + }
  56 +
  57 + public void throwNullPointerException() {
  58 + throw new NullPointerException();
  59 + }
  60 +
  61 + public void throwArithmeticException() {
  62 + throw new ArithmeticException();
  63 + }
  64 +
  65 + public void throwExceptionWithoutHandler() {
  66 + throw new IllegalArgumentException();
  67 + }
  68 +
  69 + @SuppressWarnings({ "null", "unused" })
  70 + public void throwTwoException() {
  71 + String txt = null;
  72 + txt.toString();
  73 + int result = 4 / 0;
  74 + }
  75 +
  76 + @ExceptionHandler
  77 + public void handler(NullPointerException cause) {
  78 + nullPointerExceptionHandler = true;
  79 + }
  80 +
  81 + @ExceptionHandler
  82 + public void handler(ArithmeticException cause) {
  83 + arithmeticExceptionHandler = true;
  84 + }
  85 +}
impl/core/src/test/java/exception/custom/CustomException.java 0 → 100644
@@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
  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 exception.custom;
  38 +
  39 +import br.gov.frameworkdemoiselle.exception.ApplicationException;
  40 +
  41 +@ApplicationException
  42 +public class CustomException extends RuntimeException {
  43 +
  44 + private static final long serialVersionUID = 1L;
  45 +
  46 +}
impl/core/src/test/java/exception/custom/CustomExceptionHandler.java 0 → 100644
@@ -0,0 +1,63 @@ @@ -0,0 +1,63 @@
  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 exception.custom;
  38 +
  39 +import br.gov.frameworkdemoiselle.exception.ExceptionHandler;
  40 +import br.gov.frameworkdemoiselle.stereotype.Controller;
  41 +
  42 +@Controller
  43 +public class CustomExceptionHandler {
  44 +
  45 + private boolean exceptionHandler = false;
  46 +
  47 + public boolean isExceptionHandler() {
  48 + return exceptionHandler;
  49 + }
  50 +
  51 + public void setExceptionHandler(boolean exceptionHandler) {
  52 + this.exceptionHandler = exceptionHandler;
  53 + }
  54 +
  55 + public void throwExceptionWithMessage() {
  56 + throw new CustomException();
  57 + }
  58 +
  59 + @ExceptionHandler
  60 + public void handler(CustomException exception) {
  61 + setExceptionHandler(true);
  62 + }
  63 +}
impl/core/src/test/java/exception/custom/CustomExceptionTest.java 0 → 100644
@@ -0,0 +1,68 @@ @@ -0,0 +1,68 @@
  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 exception.custom;
  38 +
  39 +import static junit.framework.Assert.assertEquals;
  40 +
  41 +import javax.inject.Inject;
  42 +
  43 +import org.jboss.arquillian.container.test.api.Deployment;
  44 +import org.jboss.arquillian.junit.Arquillian;
  45 +import org.jboss.shrinkwrap.api.spec.JavaArchive;
  46 +import org.junit.Test;
  47 +import org.junit.runner.RunWith;
  48 +
  49 +import test.Tests;
  50 +
  51 +@RunWith(Arquillian.class)
  52 +public class CustomExceptionTest {
  53 +
  54 + @Inject
  55 + private CustomExceptionHandler exception;
  56 +
  57 + @Deployment
  58 + public static JavaArchive createDeployment() {
  59 + JavaArchive deployment = Tests.createDeployment(CustomExceptionTest.class);
  60 + return deployment;
  61 + }
  62 +
  63 + @Test
  64 + public void customExceptionHandler() {
  65 + exception.throwExceptionWithMessage();
  66 + assertEquals(true, exception.isExceptionHandler());
  67 + }
  68 +}
impl/core/src/test/java/exception/inheritance/ExceptionInheritance.java 0 → 100644
@@ -0,0 +1,75 @@ @@ -0,0 +1,75 @@
  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 exception.inheritance;
  38 +
  39 +import br.gov.frameworkdemoiselle.exception.ExceptionHandler;
  40 +import br.gov.frameworkdemoiselle.stereotype.Controller;
  41 +
  42 +@Controller
  43 +public class ExceptionInheritance {
  44 +
  45 + private boolean handlerSuperClass = false;
  46 +
  47 + private boolean handlerClass = false;
  48 +
  49 + public boolean isHandlerSuperClass() {
  50 + return handlerSuperClass;
  51 + }
  52 +
  53 + public boolean isHandlerClass() {
  54 + return handlerClass;
  55 + }
  56 +
  57 + public void throwNullPointerException() {
  58 + throw new NullPointerException();
  59 + }
  60 +
  61 + public void throwArithmeticException() {
  62 + throw new ArithmeticException();
  63 + }
  64 +
  65 + @ExceptionHandler
  66 + public void handle(ArithmeticException e) {
  67 + handlerClass = true;
  68 + }
  69 +
  70 + @ExceptionHandler
  71 + public void handle(RuntimeException e) {
  72 + handlerSuperClass = true;
  73 + }
  74 +
  75 +}
impl/core/src/test/java/exception/inheritance/ExceptionInheritanceTest.java 0 → 100644
@@ -0,0 +1,75 @@ @@ -0,0 +1,75 @@
  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 exception.inheritance;
  38 +
  39 +import static junit.framework.Assert.assertEquals;
  40 +
  41 +import javax.inject.Inject;
  42 +
  43 +import org.jboss.arquillian.container.test.api.Deployment;
  44 +import org.jboss.arquillian.junit.Arquillian;
  45 +import org.jboss.shrinkwrap.api.spec.JavaArchive;
  46 +import org.junit.Test;
  47 +import org.junit.runner.RunWith;
  48 +
  49 +import test.Tests;
  50 +
  51 +@RunWith(Arquillian.class)
  52 +public class ExceptionInheritanceTest {
  53 +
  54 + @Inject
  55 + private ExceptionInheritance exceptionInheritance;
  56 +
  57 + @Deployment
  58 + public static JavaArchive createDeployment() {
  59 + JavaArchive deployment = Tests.createDeployment(ExceptionInheritanceTest.class);
  60 + return deployment;
  61 + }
  62 +
  63 + @Test
  64 + public void exceptionHandlerSuperClass() {
  65 + exceptionInheritance.throwNullPointerException();
  66 + assertEquals(true, exceptionInheritance.isHandlerSuperClass());
  67 + }
  68 +
  69 + @Test
  70 + public void exceptionHandlerClass() {
  71 + exceptionInheritance.throwArithmeticException();
  72 + assertEquals(false, exceptionInheritance.isHandlerSuperClass());
  73 + assertEquals(true, exceptionInheritance.isHandlerClass());
  74 + }
  75 +}
impl/core/src/test/java/exception/multistrategy/MultiStrategyExceptionHandler.java 0 → 100644
@@ -0,0 +1,92 @@ @@ -0,0 +1,92 @@
  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 exception.multistrategy;
  38 +
  39 +import br.gov.frameworkdemoiselle.exception.ExceptionHandler;
  40 +import br.gov.frameworkdemoiselle.stereotype.Controller;
  41 +
  42 +@Controller
  43 +public class MultiStrategyExceptionHandler {
  44 +
  45 + private boolean exceptionHandler = false;
  46 +
  47 + private boolean exceptionTryCacth = false;
  48 +
  49 + String txt = null;
  50 +
  51 + public boolean isExceptionHandler() {
  52 + return exceptionHandler;
  53 + }
  54 +
  55 + public boolean isExceptionTryCacth() {
  56 + return exceptionTryCacth;
  57 + }
  58 +
  59 + @SuppressWarnings("unused")
  60 + public void exceptionMultiStrategyTryAndHandler() {
  61 + try {
  62 + int result = 4 / 0;
  63 + } catch (ArithmeticException e) {
  64 + exceptionTryCacth = true;
  65 + }
  66 + txt.toString();
  67 + }
  68 +
  69 + @SuppressWarnings("unused")
  70 + public void exceptionMultiStrategyHandlerAndTry() {
  71 + txt.toString();
  72 + try {
  73 + int result = 4 / 0;
  74 + } catch (ArithmeticException e) {
  75 + exceptionTryCacth = true;
  76 + }
  77 + }
  78 +
  79 + public void exceptionTwoHandler() {
  80 + try {
  81 + txt.toString();
  82 + } catch (NullPointerException e) {
  83 + exceptionTryCacth = true;
  84 + }
  85 + }
  86 +
  87 + @ExceptionHandler
  88 + public void handler(NullPointerException cause) {
  89 + exceptionHandler = true;
  90 + }
  91 +
  92 +}
impl/core/src/test/java/exception/multistrategy/MultiStrategyExceptionHandlerTest.java 0 → 100644
@@ -0,0 +1,84 @@ @@ -0,0 +1,84 @@
  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 exception.multistrategy;
  38 +
  39 +import static junit.framework.Assert.assertEquals;
  40 +
  41 +import javax.inject.Inject;
  42 +
  43 +import org.jboss.arquillian.container.test.api.Deployment;
  44 +import org.jboss.arquillian.junit.Arquillian;
  45 +import org.jboss.shrinkwrap.api.spec.JavaArchive;
  46 +import org.junit.Test;
  47 +import org.junit.runner.RunWith;
  48 +
  49 +import test.Tests;
  50 +
  51 +@RunWith(Arquillian.class)
  52 +public class MultiStrategyExceptionHandlerTest {
  53 +
  54 + @Inject
  55 + private MultiStrategyExceptionHandler handlerTest;
  56 +
  57 + @Deployment
  58 + public static JavaArchive createDeployment() {
  59 + JavaArchive deployment = Tests.createDeployment(MultiStrategyExceptionHandlerTest.class);
  60 + return deployment;
  61 + }
  62 +
  63 + @Test
  64 + public void exceptionMultiStrategyTryAndHandler() {
  65 + handlerTest.exceptionMultiStrategyTryAndHandler();
  66 + assertEquals(true, handlerTest.isExceptionTryCacth());
  67 + assertEquals(true, handlerTest.isExceptionHandler());
  68 + }
  69 +
  70 + @Test
  71 + public void exceptionMultiStrategyHandlerAndTry() {
  72 + handlerTest.exceptionMultiStrategyHandlerAndTry();
  73 + assertEquals(false, handlerTest.isExceptionTryCacth());
  74 + assertEquals(true, handlerTest.isExceptionHandler());
  75 + }
  76 +
  77 + @Test
  78 + public void sameExceptionTwoStrategyHandler() {
  79 + handlerTest.exceptionTwoHandler();
  80 + assertEquals(true, handlerTest.isExceptionTryCacth());
  81 + assertEquals(false, handlerTest.isExceptionHandler());
  82 + }
  83 +
  84 +}
impl/core/src/test/java/lifecycle/LifecycleClassWithPriority.java
@@ -1,89 +0,0 @@ @@ -1,89 +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 lifecycle;  
38 -  
39 -import static br.gov.frameworkdemoiselle.annotation.Priority.MAX_PRIORITY;  
40 -import static br.gov.frameworkdemoiselle.annotation.Priority.MIN_PRIORITY;  
41 -  
42 -import java.util.ArrayList;  
43 -import java.util.List;  
44 -  
45 -import javax.enterprise.context.ApplicationScoped;  
46 -  
47 -import br.gov.frameworkdemoiselle.annotation.Priority;  
48 -import br.gov.frameworkdemoiselle.lifecycle.Shutdown;  
49 -import br.gov.frameworkdemoiselle.lifecycle.Startup;  
50 -  
51 -@ApplicationScoped  
52 -public class LifecycleClassWithPriority {  
53 -  
54 - private List<Integer> priorityStartup = new ArrayList<Integer>();  
55 -  
56 - private List<Integer> priorityShutdown = new ArrayList<Integer>();  
57 -  
58 - public List<Integer> getPriorityStartup() {  
59 - return priorityStartup;  
60 - }  
61 -  
62 - public List<Integer> getPriorityShutdown() {  
63 - return priorityShutdown;  
64 - }  
65 -  
66 - @Startup  
67 - @Priority(MIN_PRIORITY)  
68 - public void loadWithMinPriority() {  
69 - priorityStartup.add(2);  
70 - }  
71 -  
72 - @Startup  
73 - @Priority(MAX_PRIORITY)  
74 - public void loadWithMaxPriority() {  
75 - priorityStartup.add(1);  
76 - }  
77 -  
78 - @Shutdown  
79 - @Priority(MIN_PRIORITY)  
80 - public void unloadWithMinPriority() {  
81 - priorityShutdown.add(1);  
82 - }  
83 -  
84 - @Shutdown  
85 - @Priority(MAX_PRIORITY)  
86 - public void unloadWithMaxPriority() {  
87 - priorityShutdown.add(2);  
88 - }  
89 -}  
impl/core/src/test/java/lifecycle/LifecycleSimple.java
@@ -1,68 +0,0 @@ @@ -1,68 +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 lifecycle;  
38 -  
39 -import javax.enterprise.context.ApplicationScoped;  
40 -  
41 -import br.gov.frameworkdemoiselle.lifecycle.Shutdown;  
42 -import br.gov.frameworkdemoiselle.lifecycle.Startup;  
43 -  
44 -@ApplicationScoped  
45 -public class LifecycleSimple {  
46 -  
47 - private boolean startup = false;  
48 -  
49 - private boolean shutdown = false;  
50 -  
51 - public boolean isStartup() {  
52 - return startup;  
53 - }  
54 -  
55 - public boolean isShutdown() {  
56 - return shutdown;  
57 - }  
58 -  
59 - @Startup  
60 - public void load() {  
61 - startup = true;  
62 - }  
63 -  
64 - @Shutdown  
65 - public void unload() {  
66 - shutdown = true;  
67 - }  
68 -}  
impl/core/src/test/java/lifecycle/LifecycleSimpleTest.java
@@ -1,83 +0,0 @@ @@ -1,83 +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 lifecycle;  
38 -  
39 -import javax.inject.Inject;  
40 -  
41 -import junit.framework.Assert;  
42 -  
43 -import org.jboss.arquillian.container.test.api.Deployment;  
44 -import org.jboss.arquillian.junit.Arquillian;  
45 -import org.jboss.shrinkwrap.api.spec.JavaArchive;  
46 -import org.junit.Test;  
47 -import org.junit.runner.RunWith;  
48 -  
49 -import test.Tests;  
50 -import br.gov.frameworkdemoiselle.lifecycle.AfterShutdownProccess;  
51 -import br.gov.frameworkdemoiselle.lifecycle.AfterStartupProccess;  
52 -import br.gov.frameworkdemoiselle.util.Beans;  
53 -  
54 -@RunWith(Arquillian.class)  
55 -public class LifecycleSimpleTest {  
56 -  
57 - @Inject  
58 - private LifecycleSimple simpleClass;  
59 -  
60 - @Deployment  
61 - public static JavaArchive createDeployment() {  
62 - JavaArchive deployment = Tests.createDeployment(LifecycleSimpleTest.class);  
63 - return deployment;  
64 - }  
65 -  
66 - @Test  
67 - public void testStartup() {  
68 - Beans.getBeanManager().fireEvent(new AfterStartupProccess() {  
69 - });  
70 -  
71 - Assert.assertEquals(true, simpleClass.isStartup());  
72 - }  
73 -  
74 - @Test  
75 - public void testShutdown() {  
76 - Beans.getBeanManager().fireEvent(new AfterShutdownProccess() {  
77 - });  
78 -  
79 - Assert.assertEquals(true, simpleClass.isShutdown());  
80 - }  
81 -  
82 -}  
83 -  
impl/core/src/test/java/lifecycle/LifecycleWithPriorityTest.java
@@ -1,91 +0,0 @@ @@ -1,91 +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 lifecycle;  
38 -  
39 -import java.util.ArrayList;  
40 -import java.util.List;  
41 -  
42 -import javax.inject.Inject;  
43 -  
44 -import junit.framework.Assert;  
45 -  
46 -import org.jboss.arquillian.container.test.api.Deployment;  
47 -import org.jboss.arquillian.junit.Arquillian;  
48 -import org.jboss.shrinkwrap.api.spec.JavaArchive;  
49 -import org.junit.Test;  
50 -import org.junit.runner.RunWith;  
51 -  
52 -import test.Tests;  
53 -import br.gov.frameworkdemoiselle.lifecycle.AfterShutdownProccess;  
54 -import br.gov.frameworkdemoiselle.lifecycle.AfterStartupProccess;  
55 -import br.gov.frameworkdemoiselle.util.Beans;  
56 -  
57 -@RunWith(Arquillian.class)  
58 -public class LifecycleWithPriorityTest {  
59 -  
60 - @Inject  
61 - private LifecycleClassWithPriority lifecycleClassWithPriority;  
62 -  
63 - List<Integer> expected = new ArrayList<Integer>();  
64 -  
65 - @Deployment  
66 - public static JavaArchive createDeployment() {  
67 - JavaArchive deployment = Tests.createDeployment(LifecycleWithPriorityTest.class);  
68 - return deployment;  
69 - }  
70 -  
71 - @Test  
72 - public void testStartup() {  
73 - Beans.getBeanManager().fireEvent(new AfterStartupProccess() {  
74 - });  
75 - expected.add(1);  
76 - expected.add(2);  
77 -  
78 - Assert.assertEquals(expected, lifecycleClassWithPriority.getPriorityStartup());  
79 - }  
80 -  
81 - @Test  
82 - public void testShutdown() {  
83 - Beans.getBeanManager().fireEvent(new AfterShutdownProccess() {  
84 - });  
85 - expected.clear();  
86 - expected.add(2);  
87 - expected.add(1);  
88 -  
89 - Assert.assertEquals(expected, lifecycleClassWithPriority.getPriorityShutdown());  
90 - }  
91 -}  
impl/core/src/test/java/lifecycle/LifecycleWithoutPriority.java
@@ -1,92 +0,0 @@ @@ -1,92 +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 lifecycle;  
38 -  
39 -import java.util.ArrayList;  
40 -import java.util.List;  
41 -  
42 -import javax.enterprise.context.ApplicationScoped;  
43 -  
44 -import br.gov.frameworkdemoiselle.lifecycle.Shutdown;  
45 -import br.gov.frameworkdemoiselle.lifecycle.Startup;  
46 -  
47 -@ApplicationScoped  
48 -public class LifecycleWithoutPriority {  
49 -  
50 - private List<Integer> priorityStartup = new ArrayList<Integer>();  
51 -  
52 - private List<Integer> priorityShutdown = new ArrayList<Integer>();  
53 -  
54 - public List<Integer> getPriorityStartup() {  
55 - return priorityStartup;  
56 - }  
57 -  
58 - public List<Integer> getPriorityShutdown() {  
59 - return priorityShutdown;  
60 - }  
61 -  
62 - @Startup  
63 - public void loadWithoutPriorityFirst() {  
64 - priorityStartup.add(1);  
65 - }  
66 -  
67 - @Startup  
68 - public void loadWithoutPrioritySecond() {  
69 - priorityStartup.add(3);  
70 - }  
71 -  
72 - @Startup  
73 - public void loadWithoutPriorityThird() {  
74 - priorityStartup.add(2);  
75 - }  
76 -  
77 - @Shutdown  
78 - public void unloadWithoutPriorityFirst() {  
79 - priorityShutdown.add(3);  
80 - }  
81 -  
82 - @Shutdown  
83 - public void unloadWithoutPrioritySecond() {  
84 - priorityShutdown.add(2);  
85 - }  
86 -  
87 - @Shutdown  
88 - public void unloadWithoutPriorityThird() {  
89 - priorityShutdown.add(1);  
90 - }  
91 -  
92 -}  
impl/core/src/test/java/lifecycle/LifecycleWithoutPriorityTest.java
@@ -1,94 +0,0 @@ @@ -1,94 +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 lifecycle;  
38 -  
39 -import java.util.ArrayList;  
40 -import java.util.List;  
41 -  
42 -import javax.inject.Inject;  
43 -  
44 -import junit.framework.Assert;  
45 -  
46 -import org.jboss.arquillian.container.test.api.Deployment;  
47 -import org.jboss.arquillian.junit.Arquillian;  
48 -import org.jboss.shrinkwrap.api.spec.JavaArchive;  
49 -import org.junit.Test;  
50 -import org.junit.runner.RunWith;  
51 -  
52 -import test.Tests;  
53 -import br.gov.frameworkdemoiselle.lifecycle.AfterShutdownProccess;  
54 -import br.gov.frameworkdemoiselle.lifecycle.AfterStartupProccess;  
55 -import br.gov.frameworkdemoiselle.util.Beans;  
56 -  
57 -@RunWith(Arquillian.class)  
58 -public class LifecycleWithoutPriorityTest {  
59 -  
60 - @Inject  
61 - private LifecycleWithoutPriority lifecycleWithoutPriority;  
62 -  
63 - List<Integer> expected = new ArrayList<Integer>();  
64 -  
65 - @Deployment  
66 - public static JavaArchive createDeployment() {  
67 - JavaArchive deployment = Tests.createDeployment(LifecycleWithoutPriorityTest.class);  
68 - return deployment;  
69 - }  
70 -  
71 - @Test  
72 - public void testStartup() {  
73 - Beans.getBeanManager().fireEvent(new AfterStartupProccess() {  
74 - });  
75 - expected.add(1);  
76 - expected.add(3);  
77 - expected.add(2);  
78 -  
79 - Assert.assertEquals(expected, lifecycleWithoutPriority.getPriorityStartup());  
80 - }  
81 -  
82 - @Test  
83 - public void testShutdown() {  
84 - Beans.getBeanManager().fireEvent(new AfterShutdownProccess() {  
85 - });  
86 - expected.clear();  
87 - expected.add(3);  
88 - expected.add(2);  
89 - expected.add(1);  
90 -  
91 - Assert.assertEquals(expected, lifecycleWithoutPriority.getPriorityShutdown());  
92 - }  
93 -  
94 -}  
impl/core/src/test/java/lifecycle/shutdown/priority/ShutdownWithPriority.java 0 → 100644
@@ -0,0 +1,76 @@ @@ -0,0 +1,76 @@
  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 lifecycle.shutdown.priority;
  38 +
  39 +import static br.gov.frameworkdemoiselle.annotation.Priority.MAX_PRIORITY;
  40 +import static br.gov.frameworkdemoiselle.annotation.Priority.MIN_PRIORITY;
  41 +
  42 +import java.util.ArrayList;
  43 +import java.util.List;
  44 +
  45 +import javax.enterprise.context.ApplicationScoped;
  46 +
  47 +import br.gov.frameworkdemoiselle.annotation.Priority;
  48 +import br.gov.frameworkdemoiselle.lifecycle.Shutdown;
  49 +
  50 +@ApplicationScoped
  51 +public class ShutdownWithPriority {
  52 +
  53 + private List<Integer> listShutdown = new ArrayList<Integer>();
  54 +
  55 + public List<Integer> getListShutdown() {
  56 + return listShutdown;
  57 + }
  58 +
  59 + @Shutdown
  60 + @Priority(MIN_PRIORITY)
  61 + public void unloadWithMinPriority() {
  62 + listShutdown.add(3);
  63 + }
  64 +
  65 + @Shutdown
  66 + @Priority(1)
  67 + public void unloadWithPriority1() {
  68 + listShutdown.add(2);
  69 + }
  70 +
  71 + @Shutdown
  72 + @Priority(MAX_PRIORITY)
  73 + public void unloadWithMaxPriority() {
  74 + listShutdown.add(1);
  75 + }
  76 +}
impl/core/src/test/java/lifecycle/shutdown/priority/ShutdownWithPriorityTest.java 0 → 100644
@@ -0,0 +1,85 @@ @@ -0,0 +1,85 @@
  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 lifecycle.shutdown.priority;
  38 +
  39 +import java.util.ArrayList;
  40 +import java.util.List;
  41 +
  42 +import javax.inject.Inject;
  43 +
  44 +import junit.framework.Assert;
  45 +
  46 +import org.jboss.arquillian.container.test.api.Deployment;
  47 +import org.jboss.arquillian.junit.Arquillian;
  48 +import org.jboss.shrinkwrap.api.spec.JavaArchive;
  49 +import org.junit.Before;
  50 +import org.junit.Test;
  51 +import org.junit.runner.RunWith;
  52 +
  53 +import test.Tests;
  54 +import br.gov.frameworkdemoiselle.lifecycle.AfterShutdownProccess;
  55 +import br.gov.frameworkdemoiselle.util.Beans;
  56 +
  57 +@RunWith(Arquillian.class)
  58 +public class ShutdownWithPriorityTest {
  59 +
  60 + @Inject
  61 + private ShutdownWithPriority shutdownWithPriority;
  62 +
  63 + List<Integer> expected = new ArrayList<Integer>();
  64 +
  65 + @Deployment
  66 + public static JavaArchive createDeployment() {
  67 + JavaArchive deployment = Tests.createDeployment(ShutdownWithPriorityTest.class);
  68 + return deployment;
  69 + }
  70 +
  71 + @Before
  72 + public void fireEvent() {
  73 + Beans.getBeanManager().fireEvent(new AfterShutdownProccess() {
  74 + });
  75 + }
  76 +
  77 + @Test
  78 + public void shutdownWithPriority() {
  79 + expected.add(1);
  80 + expected.add(2);
  81 + expected.add(3);
  82 +
  83 + Assert.assertEquals(expected, shutdownWithPriority.getListShutdown());
  84 + }
  85 +}
impl/core/src/test/java/lifecycle/shutdown/simple/ShutdownSimple.java 0 → 100644
@@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
  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 lifecycle.shutdown.simple;
  38 +
  39 +import java.util.ArrayList;
  40 +import java.util.List;
  41 +
  42 +import javax.enterprise.context.ApplicationScoped;
  43 +
  44 +import br.gov.frameworkdemoiselle.lifecycle.Shutdown;
  45 +
  46 +@ApplicationScoped
  47 +public class ShutdownSimple {
  48 +
  49 + private List<Integer> listShutdown = new ArrayList<Integer>();
  50 +
  51 + public List<Integer> getListShutdown() {
  52 + return listShutdown;
  53 + }
  54 +
  55 + @Shutdown
  56 + public void unloadWithoutPriorityFirst() {
  57 + listShutdown.add(3);
  58 + }
  59 +
  60 + @Shutdown
  61 + public void unloadWithoutPrioritySecond() {
  62 + listShutdown.add(2);
  63 + }
  64 +
  65 + @Shutdown
  66 + public void unloadWithoutPriorityThird() {
  67 + listShutdown.add(1);
  68 + }
  69 +}
impl/core/src/test/java/lifecycle/shutdown/simple/ShutdownSimpleTest.java 0 → 100644
@@ -0,0 +1,85 @@ @@ -0,0 +1,85 @@
  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 lifecycle.shutdown.simple;
  38 +
  39 +import java.util.ArrayList;
  40 +import java.util.List;
  41 +
  42 +import javax.inject.Inject;
  43 +
  44 +import junit.framework.Assert;
  45 +
  46 +import org.jboss.arquillian.container.test.api.Deployment;
  47 +import org.jboss.arquillian.junit.Arquillian;
  48 +import org.jboss.shrinkwrap.api.spec.JavaArchive;
  49 +import org.junit.Before;
  50 +import org.junit.Test;
  51 +import org.junit.runner.RunWith;
  52 +
  53 +import test.Tests;
  54 +import br.gov.frameworkdemoiselle.lifecycle.AfterShutdownProccess;
  55 +import br.gov.frameworkdemoiselle.util.Beans;
  56 +
  57 +@RunWith(Arquillian.class)
  58 +public class ShutdownSimpleTest {
  59 +
  60 + @Inject
  61 + private ShutdownSimple shutdownSimple;
  62 +
  63 + List<Integer> expected = new ArrayList<Integer>();
  64 +
  65 + @Deployment
  66 + public static JavaArchive createDeployment() {
  67 + JavaArchive deployment = Tests.createDeployment(ShutdownSimpleTest.class);
  68 + return deployment;
  69 + }
  70 +
  71 + @Before
  72 + public void fireEvent() {
  73 + Beans.getBeanManager().fireEvent(new AfterShutdownProccess() {
  74 + });
  75 + }
  76 +
  77 + @Test
  78 + public void testShutdown() {
  79 + expected.add(3);
  80 + expected.add(2);
  81 + expected.add(1);
  82 +
  83 + Assert.assertEquals(expected, shutdownSimple.getListShutdown());
  84 + }
  85 +}
impl/core/src/test/java/lifecycle/startup/priority/StartupWithPriority.java 0 → 100644
@@ -0,0 +1,76 @@ @@ -0,0 +1,76 @@
  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 lifecycle.startup.priority;
  38 +
  39 +import static br.gov.frameworkdemoiselle.annotation.Priority.MAX_PRIORITY;
  40 +import static br.gov.frameworkdemoiselle.annotation.Priority.MIN_PRIORITY;
  41 +
  42 +import java.util.ArrayList;
  43 +import java.util.List;
  44 +
  45 +import javax.enterprise.context.ApplicationScoped;
  46 +
  47 +import br.gov.frameworkdemoiselle.annotation.Priority;
  48 +import br.gov.frameworkdemoiselle.lifecycle.Startup;
  49 +
  50 +@ApplicationScoped
  51 +public class StartupWithPriority {
  52 +
  53 + private List<Integer> priorityStartup = new ArrayList<Integer>();
  54 +
  55 + public List<Integer> getPriorityStartup() {
  56 + return priorityStartup;
  57 + }
  58 +
  59 + @Startup
  60 + @Priority(MIN_PRIORITY)
  61 + public void loadWithMinPriority() {
  62 + priorityStartup.add(3);
  63 + }
  64 +
  65 + @Startup
  66 + @Priority(1)
  67 + public void loadWithPriority1() {
  68 + priorityStartup.add(2);
  69 + }
  70 +
  71 + @Startup
  72 + @Priority(MAX_PRIORITY)
  73 + public void loadWithMaxPriority() {
  74 + priorityStartup.add(1);
  75 + }
  76 +}
impl/core/src/test/java/lifecycle/startup/priority/StartupWithPriorityTest.java 0 → 100644
@@ -0,0 +1,85 @@ @@ -0,0 +1,85 @@
  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 lifecycle.startup.priority;
  38 +
  39 +import java.util.ArrayList;
  40 +import java.util.List;
  41 +
  42 +import javax.inject.Inject;
  43 +
  44 +import junit.framework.Assert;
  45 +
  46 +import org.jboss.arquillian.container.test.api.Deployment;
  47 +import org.jboss.arquillian.junit.Arquillian;
  48 +import org.jboss.shrinkwrap.api.spec.JavaArchive;
  49 +import org.junit.Before;
  50 +import org.junit.Test;
  51 +import org.junit.runner.RunWith;
  52 +
  53 +import test.Tests;
  54 +import br.gov.frameworkdemoiselle.lifecycle.AfterStartupProccess;
  55 +import br.gov.frameworkdemoiselle.util.Beans;
  56 +
  57 +@RunWith(Arquillian.class)
  58 +public class StartupWithPriorityTest {
  59 +
  60 + @Inject
  61 + private StartupWithPriority stratupWithPriority;
  62 +
  63 + List<Integer> expected = new ArrayList<Integer>();
  64 +
  65 + @Deployment
  66 + public static JavaArchive createDeployment() {
  67 + JavaArchive deployment = Tests.createDeployment(StartupWithPriorityTest.class);
  68 + return deployment;
  69 + }
  70 +
  71 + @Before
  72 + public void fireEvent() {
  73 + Beans.getBeanManager().fireEvent(new AfterStartupProccess() {
  74 + });
  75 + }
  76 +
  77 + @Test
  78 + public void startupWithPriority() {
  79 + expected.add(1);
  80 + expected.add(2);
  81 + expected.add(3);
  82 +
  83 + Assert.assertEquals(expected, stratupWithPriority.getPriorityStartup());
  84 + }
  85 +}
impl/core/src/test/java/lifecycle/startup/simple/StartupSimple.java 0 → 100644
@@ -0,0 +1,69 @@ @@ -0,0 +1,69 @@
  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 lifecycle.startup.simple;
  38 +
  39 +import java.util.ArrayList;
  40 +import java.util.List;
  41 +
  42 +import javax.enterprise.context.ApplicationScoped;
  43 +
  44 +import br.gov.frameworkdemoiselle.lifecycle.Startup;
  45 +
  46 +@ApplicationScoped
  47 +public class StartupSimple {
  48 +
  49 + private List<Integer> listStartup = new ArrayList<Integer>();
  50 +
  51 + public List<Integer> getListStartup() {
  52 + return listStartup;
  53 + }
  54 +
  55 + @Startup
  56 + public void loadWithoutPriorityFirst() {
  57 + listStartup.add(1);
  58 + }
  59 +
  60 + @Startup
  61 + public void loadWithoutPrioritySecond() {
  62 + listStartup.add(3);
  63 + }
  64 +
  65 + @Startup
  66 + public void loadWithoutPriorityThird() {
  67 + listStartup.add(2);
  68 + }
  69 +}
impl/core/src/test/java/lifecycle/startup/simple/StartupSimpleTest.java 0 → 100644
@@ -0,0 +1,86 @@ @@ -0,0 +1,86 @@
  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 lifecycle.startup.simple;
  38 +
  39 +import java.util.ArrayList;
  40 +import java.util.List;
  41 +
  42 +import javax.inject.Inject;
  43 +
  44 +import junit.framework.Assert;
  45 +
  46 +import org.jboss.arquillian.container.test.api.Deployment;
  47 +import org.jboss.arquillian.junit.Arquillian;
  48 +import org.jboss.shrinkwrap.api.spec.JavaArchive;
  49 +import org.junit.Before;
  50 +import org.junit.Test;
  51 +import org.junit.runner.RunWith;
  52 +
  53 +import test.Tests;
  54 +import br.gov.frameworkdemoiselle.lifecycle.AfterStartupProccess;
  55 +import br.gov.frameworkdemoiselle.util.Beans;
  56 +
  57 +@RunWith(Arquillian.class)
  58 +public class StartupSimpleTest {
  59 +
  60 + @Inject
  61 + private StartupSimple startupSimple;
  62 +
  63 + List<Integer> expected = new ArrayList<Integer>();
  64 +
  65 + @Deployment
  66 + public static JavaArchive createDeployment() {
  67 + JavaArchive deployment = Tests.createDeployment(StartupSimpleTest.class);
  68 + return deployment;
  69 + }
  70 +
  71 + @Before
  72 + public void fireEvent() {
  73 + Beans.getBeanManager().fireEvent(new AfterStartupProccess() {
  74 + });
  75 + }
  76 +
  77 + @Test
  78 + public void startup() {
  79 + expected.add(1);
  80 + expected.add(3);
  81 + expected.add(2);
  82 +
  83 + Assert.assertEquals(expected, startupSimple.getListStartup());
  84 + }
  85 +}
  86 +
impl/core/src/test/java/management/DummyManagedClass.java
@@ -1,74 +0,0 @@ @@ -1,74 +0,0 @@
1 -package management;  
2 -  
3 -import java.util.UUID;  
4 -  
5 -import br.gov.frameworkdemoiselle.management.annotation.Managed;  
6 -import br.gov.frameworkdemoiselle.management.annotation.Operation;  
7 -import br.gov.frameworkdemoiselle.management.annotation.Property;  
8 -import br.gov.frameworkdemoiselle.management.annotation.validation.AllowedValues;  
9 -import br.gov.frameworkdemoiselle.management.annotation.validation.AllowedValues.ValueType;  
10 -  
11 -@Managed  
12 -public class DummyManagedClass {  
13 -  
14 - @Property  
15 - @AllowedValues(allows={"f","m","F","M"},valueType=ValueType.INTEGER)  
16 - private Integer id;  
17 -  
18 - @Property  
19 - private String uuid;  
20 -  
21 - @Property  
22 - private String writeOnlyProperty;  
23 -  
24 - /**  
25 - * Propriedade para testar detecção de métodos GET e SET quando propriedade tem apenas uma letra.  
26 - */  
27 - @Property  
28 - private Integer a;  
29 -  
30 - /**  
31 - * Propriedade para testar detecção de métodos GET e SET quando propriedade tem apenas letras maiúsculas.  
32 - */  
33 - @Property  
34 - private Integer MAIUSCULO;  
35 -  
36 - public Integer getId() {  
37 - return id;  
38 - }  
39 -  
40 - public void setId(Integer id) {  
41 - this.id = id;  
42 - }  
43 -  
44 - public String getUuid() {  
45 - return uuid;  
46 - }  
47 -  
48 - public void setWriteOnlyProperty(String newValue){  
49 - this.writeOnlyProperty = newValue;  
50 - }  
51 -  
52 - public Integer getA() {  
53 - return a;  
54 - }  
55 -  
56 - public void setA(Integer a) {  
57 - this.a = a;  
58 - }  
59 -  
60 - public Integer getMAIUSCULO() {  
61 - return MAIUSCULO;  
62 - }  
63 -  
64 -  
65 - public void setMAIUSCULO(Integer mAIUSCULO) {  
66 - MAIUSCULO = mAIUSCULO;  
67 - }  
68 -  
69 - @Operation(description="Generates a random UUID")  
70 - public String generateUUID(){  
71 - this.uuid = UUID.randomUUID().toString();  
72 - return this.uuid;  
73 - }  
74 -}  
impl/core/src/test/java/management/DummyManagementExtension.java
@@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
1 -package management;  
2 -  
3 -import java.util.List;  
4 -  
5 -import javax.inject.Inject;  
6 -  
7 -import br.gov.frameworkdemoiselle.management.extension.ManagementExtension;  
8 -import br.gov.frameworkdemoiselle.management.internal.ManagedType;  
9 -  
10 -public class DummyManagementExtension implements ManagementExtension {  
11 -  
12 - @Inject  
13 - private ManagedClassStore store;  
14 -  
15 - @Override  
16 - public void initialize(List<ManagedType> managedTypes) {  
17 - // Armazena os beans managed detectados neste store,  
18 - // para depois serem testados.  
19 - store.setManagedTypes(managedTypes);  
20 - }  
21 -  
22 - @Override  
23 - public void shutdown(List<ManagedType> managedTypes) {  
24 - // Limpa o store, depois o teste verificará se  
25 - // o processo de shutdown rodou e limpou o store.  
26 - store.setManagedTypes(null);  
27 - }  
28 -  
29 -}  
impl/core/src/test/java/management/ManagedClassStore.java
1 package management; 1 package management;
2 2
  3 +import java.util.ArrayList;
  4 +import java.util.Collection;
3 import java.util.List; 5 import java.util.List;
4 6
5 import javax.enterprise.context.ApplicationScoped; 7 import javax.enterprise.context.ApplicationScoped;
@@ -9,15 +11,15 @@ import br.gov.frameworkdemoiselle.management.internal.ManagedType; @@ -9,15 +11,15 @@ import br.gov.frameworkdemoiselle.management.internal.ManagedType;
9 @ApplicationScoped 11 @ApplicationScoped
10 public class ManagedClassStore { 12 public class ManagedClassStore {
11 13
12 - private List<ManagedType> managedTypes = null; 14 + private List<ManagedType> managedTypes = new ArrayList<ManagedType>();
13 15
14 16
15 public List<ManagedType> getManagedTypes() { 17 public List<ManagedType> getManagedTypes() {
16 return managedTypes; 18 return managedTypes;
17 } 19 }
18 20
19 - public void setManagedTypes(List<ManagedType> managedTypes) {  
20 - this.managedTypes = managedTypes; 21 + public void addManagedTypes(Collection<ManagedType> managedTypes){
  22 + this.managedTypes.addAll(managedTypes);
21 } 23 }
22 24
23 } 25 }
impl/core/src/test/java/management/ManagementBootstrapTest.java
@@ -1,68 +0,0 @@ @@ -1,68 +0,0 @@
1 -package management;  
2 -  
3 -import javax.inject.Inject;  
4 -  
5 -import org.jboss.arquillian.container.test.api.Deployment;  
6 -import org.jboss.arquillian.junit.Arquillian;  
7 -import org.jboss.shrinkwrap.api.spec.JavaArchive;  
8 -import org.junit.Assert;  
9 -import org.junit.Test;  
10 -import org.junit.runner.RunWith;  
11 -  
12 -import test.Tests;  
13 -import br.gov.frameworkdemoiselle.lifecycle.AfterShutdownProccess;  
14 -import br.gov.frameworkdemoiselle.management.extension.ManagementExtension;  
15 -import br.gov.frameworkdemoiselle.util.Beans;  
16 -  
17 -  
18 -@RunWith(Arquillian.class)  
19 -public class ManagementBootstrapTest {  
20 -  
21 - @Inject  
22 - private ManagedClassStore store;  
23 -  
24 - @Deployment  
25 - public static JavaArchive createDeployment() {  
26 - JavaArchive deployment = Tests.createDeployment(ManagementBootstrapTest.class);  
27 -  
28 - /*deployment  
29 - .addClass(ManagedClassStore.class)  
30 - .addClass(DummyManagedClass.class)  
31 - .addClass(DummyManagementExtension.class);*/  
32 -  
33 - return deployment;  
34 - }  
35 -  
36 - /**  
37 - * Test if a a management extension (a library that implements {@link ManagementExtension}) is correctly detected.  
38 - */  
39 - @Test  
40 - public void testManagementExtensionRegistration(){  
41 -  
42 - //"store" é application scoped e é usado pelo DummyManagementExtension para  
43 - //armazenar todos os beans anotados com @Managed. Se o bootstrap rodou corretamente,  
44 - //ele chamou DummyManagementExtension.initialize e este store conterá o bean de teste que anotamos.  
45 - Assert.assertNotNull(store.getManagedTypes());  
46 - Assert.assertEquals(1, store.getManagedTypes().size());  
47 -  
48 - }  
49 -  
50 - /**  
51 - * Test if a a management extension's (a library that implements {@link ManagementExtension}) shutdown  
52 - * method is correctly called upon application shutdown.  
53 - */  
54 - @Test  
55 - public void testManagementExtensionShutdown(){  
56 -  
57 - //"store" é application scoped e é usado pelo DummyManagementExtension para  
58 - //armazenar todos os beans anotados com @Managed. Se o bootstrap rodou corretamente,  
59 - //ele chamou DummyManagementExtension.initialize e este store conterá o bean de teste que anotamos.  
60 - //Nós então disparamos o evento de shutdown onde ele deverá limpar o store.  
61 - Assert.assertNotNull(store.getManagedTypes());  
62 - Assert.assertEquals(1, store.getManagedTypes().size());  
63 -  
64 - Beans.getBeanManager().fireEvent(new AfterShutdownProccess() {});  
65 - Assert.assertNull(store.getManagedTypes());  
66 - }  
67 -  
68 -}  
impl/core/src/test/java/management/ManagementBootstrapTestCase.java 0 → 100644
@@ -0,0 +1,124 @@ @@ -0,0 +1,124 @@
  1 +package management;
  2 +
  3 +import java.io.File;
  4 +import java.util.List;
  5 +
  6 +import management.testclasses.DummyManagedClass;
  7 +import management.testclasses.DummyManagedClassPropertyError;
  8 +import management.testclasses.DummyManagementExtension;
  9 +
  10 +import org.jboss.arquillian.container.test.api.Deployer;
  11 +import org.jboss.arquillian.container.test.api.Deployment;
  12 +import org.jboss.arquillian.junit.Arquillian;
  13 +import org.jboss.arquillian.test.api.ArquillianResource;
  14 +import org.jboss.shrinkwrap.api.ShrinkWrap;
  15 +import org.jboss.shrinkwrap.api.asset.FileAsset;
  16 +import org.jboss.shrinkwrap.api.spec.JavaArchive;
  17 +import org.junit.Assert;
  18 +import org.junit.Test;
  19 +import org.junit.runner.RunWith;
  20 +
  21 +import test.LocaleProducer;
  22 +import br.gov.frameworkdemoiselle.management.extension.ManagementExtension;
  23 +import br.gov.frameworkdemoiselle.management.internal.ManagedType;
  24 +import br.gov.frameworkdemoiselle.util.Beans;
  25 +
  26 +@RunWith(Arquillian.class)
  27 +public class ManagementBootstrapTestCase {
  28 +
  29 + @ArquillianResource
  30 + private Deployer deployer;
  31 +
  32 + /**
  33 + * Deployment to test normal deployment behaviour
  34 + *
  35 + */
  36 + @Deployment(name = "default",managed=false,testable=false)
  37 + public static JavaArchive createDeployment() {
  38 + return ShrinkWrap
  39 + .create(JavaArchive.class)
  40 + .addClass(LocaleProducer.class)
  41 + .addPackages(true, "br")
  42 + .addAsResource(new FileAsset(new File("src/test/resources/test/beans.xml")), "beans.xml")
  43 + .addAsManifestResource(
  44 + new File("src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension"),
  45 + "services/javax.enterprise.inject.spi.Extension")
  46 + .addPackages(false, ManagementBootstrapTestCase.class.getPackage())
  47 + .addClasses(DummyManagementExtension.class,DummyManagedClass.class);
  48 + }
  49 +
  50 + /**
  51 + * Deployment containing a malformed managed class. Tests using this deployment will
  52 + * check if deployment fails (it has to).
  53 + *
  54 + */
  55 + @Deployment(name = "wrong_annotation",managed=false,testable=false)
  56 + public static JavaArchive createWrongAnnotationDeployment() {
  57 + return ShrinkWrap
  58 + .create(JavaArchive.class)
  59 + .addClass(LocaleProducer.class)
  60 + .addPackages(true, "br")
  61 + .addAsResource(new FileAsset(new File("src/test/resources/test/beans.xml")), "beans.xml")
  62 + .addAsManifestResource(
  63 + new File("src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension"),
  64 + "services/javax.enterprise.inject.spi.Extension")
  65 + .addPackages(false, ManagementBootstrapTestCase.class.getPackage())
  66 + .addClasses(DummyManagementExtension.class,DummyManagedClassPropertyError.class);
  67 + }
  68 +
  69 + /**
  70 + * Test if a a management extension (a library that implements {@link ManagementExtension}) is correctly detected.
  71 + */
  72 + @Test
  73 + public void testManagementExtensionRegistration() {
  74 + deployer.deploy("default");
  75 +
  76 + // "store" é application scoped e é usado pelo DummyManagementExtension para
  77 + // armazenar todos os beans anotados com @Managed. Se o bootstrap rodou corretamente,
  78 + // ele chamou DummyManagementExtension.initialize e este store conterá o bean de teste que anotamos.
  79 + ManagedClassStore store = Beans.getReference(ManagedClassStore.class);
  80 +
  81 + Assert.assertEquals(1, store.getManagedTypes().size());
  82 +
  83 + deployer.undeploy("default");
  84 + }
  85 +
  86 + /**
  87 + * Test if a a management extension's shutdown method is
  88 + * correctly called upon application shutdown.
  89 + */
  90 + @Test
  91 + public void testManagementExtensionShutdown() {
  92 + deployer.deploy("default");
  93 +
  94 + // "store" é application scoped e é usado pelo DummyManagementExtension para
  95 + // armazenar todos os beans anotados com @Managed. Se o bootstrap rodou corretamente,
  96 + // ele chamou DummyManagementExtension.initialize e este store conterá o bean de teste que anotamos.
  97 + // Nós então disparamos o evento de shutdown onde ele deverá limpar o store.
  98 + ManagedClassStore store = Beans.getReference(ManagedClassStore.class);
  99 +
  100 + //Detecta se a classe anotada foi detectada
  101 + List<ManagedType> managedTypes = store.getManagedTypes();
  102 + Assert.assertEquals(1, managedTypes.size());
  103 +
  104 + deployer.undeploy("default");
  105 +
  106 + //Após o "undeploy", o ciclo de vida precisa ter removido a classe gerenciada da lista.
  107 + Assert.assertEquals(0, managedTypes.size());
  108 + }
  109 +
  110 + @Test
  111 + public void testWrongAnnotation(){
  112 +
  113 + try{
  114 + deployer.deploy("wrong_annotation");
  115 +
  116 + //O processo de deploy precisa falhar, pois temos uma classe anotada com falhas.
  117 + Assert.fail();
  118 + }
  119 + catch(Exception e){
  120 + deployer.undeploy("wrong_annotation");
  121 + }
  122 + }
  123 +
  124 +}
impl/core/src/test/java/management/NotificationTestCase.java 0 → 100644
@@ -0,0 +1,100 @@ @@ -0,0 +1,100 @@
  1 +package management;
  2 +
  3 +import java.io.File;
  4 +
  5 +import javax.inject.Inject;
  6 +
  7 +import junit.framework.Assert;
  8 +import management.testclasses.DummyManagedClass;
  9 +import management.testclasses.DummyNotificationListener;
  10 +
  11 +import org.jboss.arquillian.container.test.api.Deployment;
  12 +import org.jboss.arquillian.junit.Arquillian;
  13 +import org.jboss.shrinkwrap.api.ShrinkWrap;
  14 +import org.jboss.shrinkwrap.api.asset.FileAsset;
  15 +import org.jboss.shrinkwrap.api.spec.JavaArchive;
  16 +import org.junit.Test;
  17 +import org.junit.runner.RunWith;
  18 +
  19 +import test.LocaleProducer;
  20 +import br.gov.frameworkdemoiselle.annotation.Name;
  21 +import br.gov.frameworkdemoiselle.management.internal.ManagedType;
  22 +import br.gov.frameworkdemoiselle.management.internal.MonitoringManager;
  23 +import br.gov.frameworkdemoiselle.management.notification.AttributeChangeNotification;
  24 +import br.gov.frameworkdemoiselle.management.notification.Notification;
  25 +import br.gov.frameworkdemoiselle.management.notification.NotificationManager;
  26 +import br.gov.frameworkdemoiselle.util.Beans;
  27 +import br.gov.frameworkdemoiselle.util.ResourceBundle;
  28 +
  29 +/**
  30 + * Test the {@link NotificationManager} with a dummy extension
  31 + * to check if notifications are correctly propagated
  32 + *
  33 + * @author serpro
  34 + *
  35 + */
  36 +@RunWith(Arquillian.class)
  37 +public class NotificationTestCase {
  38 +
  39 + @Inject
  40 + private NotificationManager manager;
  41 +
  42 + @Inject
  43 + @Name("demoiselle-core-bundle")
  44 + private ResourceBundle bundle;
  45 +
  46 + @Deployment
  47 + public static JavaArchive createDeployment() {
  48 + return ShrinkWrap
  49 + .create(JavaArchive.class)
  50 + .addClass(LocaleProducer.class)
  51 + .addPackages(true, "br")
  52 + .addAsResource(new FileAsset(new File("src/test/resources/test/beans.xml")), "beans.xml")
  53 + .addAsManifestResource(
  54 + new File("src/main/resources/META-INF/services/javax.enterprise.inject.spi.Extension"),
  55 + "services/javax.enterprise.inject.spi.Extension")
  56 + .addPackages(false, ManagementBootstrapTestCase.class.getPackage())
  57 + .addClasses(DummyNotificationListener.class,DummyManagedClass.class);
  58 + }
  59 +
  60 + /**
  61 + * Test sending a normal notification
  62 + */
  63 + @Test
  64 + public void testSendGenericNotification(){
  65 + manager.sendNotification(new Notification("Test Message"));
  66 + DummyNotificationListener listener = Beans.getReference(DummyNotificationListener.class);
  67 + Assert.assertEquals("Test Message", listener.getMessage());
  68 + }
  69 +
  70 + /**
  71 + * Test sending a notification of change in attribute
  72 + */
  73 + @Test
  74 + public void testSendAttributeChangeNotification(){
  75 + manager.sendNotification(new AttributeChangeNotification("Test Message", "attribute", String.class, "old", "new"));
  76 + DummyNotificationListener listener = Beans.getReference(DummyNotificationListener.class);
  77 + Assert.assertEquals("Test Message - attribute", listener.getMessage());
  78 + }
  79 +
  80 + /**
  81 + * Test if notifications are automatically sent when an attribute from a managed
  82 + * class change values
  83 + */
  84 + @Test
  85 + public void testNotifyChangeManagedClass(){
  86 + MonitoringManager manager = Beans.getReference(MonitoringManager.class);
  87 +
  88 + for (ManagedType type : manager.getManagedTypes()){
  89 + if (type.getType().equals(DummyManagedClass.class)){
  90 + manager.setProperty(type, "id", new Integer(10));
  91 + break;
  92 + }
  93 + }
  94 +
  95 + DummyNotificationListener listener = Beans.getReference(DummyNotificationListener.class);
  96 + Assert.assertEquals( bundle.getString("management-notification-attribute-changed","id",DummyManagedClass.class.getCanonicalName()) + " - id"
  97 + , listener.getMessage());
  98 + }
  99 +
  100 +}
impl/core/src/test/java/management/testclasses/DummyManagedClass.java 0 → 100644
@@ -0,0 +1,74 @@ @@ -0,0 +1,74 @@
  1 +package management.testclasses;
  2 +
  3 +import java.util.UUID;
  4 +
  5 +import br.gov.frameworkdemoiselle.management.annotation.Managed;
  6 +import br.gov.frameworkdemoiselle.management.annotation.Operation;
  7 +import br.gov.frameworkdemoiselle.management.annotation.Property;
  8 +import br.gov.frameworkdemoiselle.management.annotation.validation.AllowedValues;
  9 +import br.gov.frameworkdemoiselle.management.annotation.validation.AllowedValues.ValueType;
  10 +
  11 +@Managed
  12 +public class DummyManagedClass {
  13 +
  14 + @Property
  15 + @AllowedValues(allows={"f","m","F","M"},valueType=ValueType.INTEGER)
  16 + private Integer id;
  17 +
  18 + @Property
  19 + private String uuid;
  20 +
  21 + @Property
  22 + private String writeOnlyProperty;
  23 +
  24 + /**
  25 + * Propriedade para testar detecção de métodos GET e SET quando propriedade tem apenas uma letra.
  26 + */
  27 + @Property
  28 + private Integer a;
  29 +
  30 + /**
  31 + * Propriedade para testar detecção de métodos GET e SET quando propriedade tem apenas letras maiúsculas.
  32 + */
  33 + @Property
  34 + private Integer MAIUSCULO;
  35 +
  36 + public Integer getId() {
  37 + return id;
  38 + }
  39 +
  40 + public void setId(Integer id) {
  41 + this.id = id;
  42 + }
  43 +
  44 + public String getUuid() {
  45 + return uuid;
  46 + }
  47 +
  48 + public void setWriteOnlyProperty(String newValue){
  49 + this.writeOnlyProperty = newValue;
  50 + }
  51 +
  52 + public Integer getA() {
  53 + return a;
  54 + }
  55 +
  56 + public void setA(Integer a) {
  57 + this.a = a;
  58 + }
  59 +
  60 + public Integer getMAIUSCULO() {
  61 + return MAIUSCULO;
  62 + }
  63 +
  64 +
  65 + public void setMAIUSCULO(Integer mAIUSCULO) {
  66 + MAIUSCULO = mAIUSCULO;
  67 + }
  68 +
  69 + @Operation(description="Generates a random UUID")
  70 + public String generateUUID(){
  71 + this.uuid = UUID.randomUUID().toString();
  72 + return this.uuid;
  73 + }
  74 +}
impl/core/src/test/java/management/testclasses/DummyManagedClassPropertyError.java 0 → 100644
@@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
  1 +package management.testclasses;
  2 +
  3 +import br.gov.frameworkdemoiselle.management.annotation.Managed;
  4 +import br.gov.frameworkdemoiselle.management.annotation.Property;
  5 +
  6 +
  7 +/**
  8 + *
  9 + * Used in tests to detect if the bootstrap detects wrong annotations
  10 + *
  11 + * @author serpro
  12 + *
  13 + */
  14 +@Managed
  15 +public class DummyManagedClassPropertyError {
  16 +
  17 + /**
  18 + * Property with no setter or getter
  19 + */
  20 + @Property
  21 + private Long property;
  22 +
  23 +}
impl/core/src/test/java/management/testclasses/DummyManagementExtension.java 0 → 100644
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
  1 +package management.testclasses;
  2 +
  3 +import java.util.List;
  4 +
  5 +import javax.inject.Inject;
  6 +
  7 +import management.ManagedClassStore;
  8 +
  9 +import br.gov.frameworkdemoiselle.management.extension.ManagementExtension;
  10 +import br.gov.frameworkdemoiselle.management.internal.ManagedType;
  11 +
  12 +public class DummyManagementExtension implements ManagementExtension {
  13 +
  14 + @Inject
  15 + private ManagedClassStore store;
  16 +
  17 + @Override
  18 + public void initialize(List<ManagedType> managedTypes) {
  19 + // Armazena os beans managed detectados neste store,
  20 + // para depois serem testados.
  21 + store.addManagedTypes(managedTypes);
  22 + }
  23 +
  24 + @Override
  25 + public void shutdown(List<ManagedType> managedTypes) {
  26 + // Limpa o store, depois o teste verificará se
  27 + // o processo de shutdown rodou e limpou o store.
  28 + store.getManagedTypes().clear();
  29 + }
  30 +
  31 +}
impl/core/src/test/java/management/testclasses/DummyNotificationListener.java 0 → 100644
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
  1 +package management.testclasses;
  2 +
  3 +import javax.enterprise.context.ApplicationScoped;
  4 +import javax.enterprise.event.Observes;
  5 +
  6 +import br.gov.frameworkdemoiselle.management.internal.notification.event.NotificationEvent;
  7 +import br.gov.frameworkdemoiselle.management.internal.notification.qualifier.AttributeChange;
  8 +import br.gov.frameworkdemoiselle.management.internal.notification.qualifier.Generic;
  9 +import br.gov.frameworkdemoiselle.management.notification.AttributeChangeNotification;
  10 +import br.gov.frameworkdemoiselle.management.notification.NotificationManager;
  11 +
  12 +/**
  13 + * Dummy class to test receiving of notifications sent by the {@link NotificationManager}
  14 + *
  15 + * @author serpro
  16 + *
  17 + */
  18 +@ApplicationScoped
  19 +public class DummyNotificationListener {
  20 +
  21 + private String message = null;
  22 +
  23 + public void listenNotification(@Observes @Generic NotificationEvent event){
  24 + message = event.getNotification().getMessage().toString();
  25 + }
  26 +
  27 + public void listenAttributeChangeNotification(@Observes @AttributeChange NotificationEvent event){
  28 + AttributeChangeNotification notification = (AttributeChangeNotification)event.getNotification();
  29 + message = notification.getMessage().toString() + " - " + notification.getAttributeName();
  30 + }
  31 +
  32 + public String getMessage() {
  33 + return message;
  34 + }
  35 +}
impl/core/src/test/java/resourcebundle/file/custom/ResourceBundleCustomTest.java
@@ -66,13 +66,13 @@ public class ResourceBundleCustomTest { @@ -66,13 +66,13 @@ public class ResourceBundleCustomTest {
66 } 66 }
67 67
68 @Test 68 @Test
69 - public void testResourceFileCustom() { 69 + public void loadResourceFileCustom() {
70 bundleCustom = Beans.getReference(ResourceBundleCustom.class); 70 bundleCustom = Beans.getReference(ResourceBundleCustom.class);
71 Assert.assertEquals("mensagem em Portugues", bundleCustom.getMessage()); 71 Assert.assertEquals("mensagem em Portugues", bundleCustom.getMessage());
72 } 72 }
73 73
74 @Test 74 @Test
75 - public void testResourceDefaultEnglish() { 75 + public void loadResourceFileCustomEnglish() {
76 Locale.setDefault(Locale.ENGLISH); 76 Locale.setDefault(Locale.ENGLISH);
77 bundleCustom = Beans.getReference(ResourceBundleCustom.class); 77 bundleCustom = Beans.getReference(ResourceBundleCustom.class);
78 Assert.assertEquals("message in English", bundleCustom.getMessage()); 78 Assert.assertEquals("message in English", bundleCustom.getMessage());
impl/core/src/test/java/resourcebundle/file/defaultfile/ResourceBundleDefaultTest.java
@@ -66,16 +66,23 @@ public class ResourceBundleDefaultTest { @@ -66,16 +66,23 @@ public class ResourceBundleDefaultTest {
66 } 66 }
67 67
68 @Test 68 @Test
69 - public void testResourceDefault() { 69 + public void loadResourceDefault() {
70 bundleDefault = Beans.getReference(ResourceBundleDefault.class); 70 bundleDefault = Beans.getReference(ResourceBundleDefault.class);
71 Assert.assertEquals("mensagem em Portugues", bundleDefault.getMessage()); 71 Assert.assertEquals("mensagem em Portugues", bundleDefault.getMessage());
72 } 72 }
73 73
74 @Test 74 @Test
75 - public void testResourceDefaultEnglish() { 75 + public void loadResourceDefaultEnglish() {
76 Locale.setDefault(Locale.ENGLISH); 76 Locale.setDefault(Locale.ENGLISH);
77 bundleDefault = Beans.getReference(ResourceBundleDefault.class); 77 bundleDefault = Beans.getReference(ResourceBundleDefault.class);
78 Assert.assertEquals("message in English", bundleDefault.getMessage()); 78 Assert.assertEquals("message in English", bundleDefault.getMessage());
79 } 79 }
  80 +
  81 + @Test
  82 + public void loadResourceWithLocaleNotExist() {
  83 + Locale.setDefault(Locale.ITALY);
  84 + bundleDefault = Beans.getReference(ResourceBundleDefault.class);
  85 + Assert.assertEquals("mensagem em Portugues", bundleDefault.getMessage());
  86 + }
80 87
81 } 88 }
impl/core/src/test/java/resourcebundle/file/empty/ResourceBundleEmptyTest.java
@@ -67,7 +67,7 @@ public class ResourceBundleEmptyTest { @@ -67,7 +67,7 @@ public class ResourceBundleEmptyTest {
67 } 67 }
68 68
69 @Test 69 @Test
70 - public void testResourceEmpty() { 70 + public void loadEmptyFileResource() {
71 bundleDefault = Beans.getReference(ResourceBundleEmpty.class); 71 bundleDefault = Beans.getReference(ResourceBundleEmpty.class);
72 try { 72 try {
73 bundleDefault.getMessage(); 73 bundleDefault.getMessage();
impl/core/src/test/java/resourcebundle/file/notexist/ResourceBundleFileNotExistTest.java
@@ -64,7 +64,7 @@ public class ResourceBundleFileNotExistTest { @@ -64,7 +64,7 @@ public class ResourceBundleFileNotExistTest {
64 } 64 }
65 65
66 @Test 66 @Test
67 - public void testResourceFileCustom() { 67 + public void loadResourceFileNotExist() {
68 bundleFileNotExist = Beans.getReference(ResourceBundleFileNotExist.class); 68 bundleFileNotExist = Beans.getReference(ResourceBundleFileNotExist.class);
69 try { 69 try {
70 bundleFileNotExist.getMessage(); 70 bundleFileNotExist.getMessage();
impl/core/src/test/java/resourcebundle/parameter/ResourceBundleWithParameter.java 0 → 100644
@@ -0,0 +1,51 @@ @@ -0,0 +1,51 @@
  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 resourcebundle.parameter;
  38 +
  39 +import javax.inject.Inject;
  40 +
  41 +import br.gov.frameworkdemoiselle.util.ResourceBundle;
  42 +
  43 +public class ResourceBundleWithParameter {
  44 +
  45 + @Inject
  46 + private ResourceBundle bundle;
  47 +
  48 + public ResourceBundle getBundle() {
  49 + return bundle;
  50 + }
  51 +}
impl/core/src/test/java/resourcebundle/parameter/ResourceBundleWithParameterTest.java 0 → 100644
@@ -0,0 +1,115 @@ @@ -0,0 +1,115 @@
  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 resourcebundle.parameter;
  38 +
  39 +import junit.framework.Assert;
  40 +
  41 +import org.jboss.arquillian.container.test.api.Deployment;
  42 +import org.jboss.arquillian.junit.Arquillian;
  43 +import org.jboss.shrinkwrap.api.spec.JavaArchive;
  44 +import org.junit.Test;
  45 +import org.junit.runner.RunWith;
  46 +
  47 +import test.Tests;
  48 +import br.gov.frameworkdemoiselle.util.Beans;
  49 +
  50 +@RunWith(Arquillian.class)
  51 +public class ResourceBundleWithParameterTest {
  52 +
  53 + private ResourceBundleWithParameter bundleCustom;
  54 +
  55 + private static final String PATH = "src/test/resources/resourcebundle/parameter/";
  56 +
  57 + @Deployment
  58 + public static JavaArchive createDeployment() {
  59 + JavaArchive deployment = Tests.createDeployment(ResourceBundleWithParameterTest.class);
  60 + deployment.addAsResource(Tests.createFileAsset(PATH + "messages.properties"), "messages.properties");
  61 +
  62 + return deployment;
  63 + }
  64 +
  65 + @Test
  66 + public void loadKeyWithOneParameter() {
  67 + bundleCustom = Beans.getReference(ResourceBundleWithParameter.class);
  68 + String expected = "Mensagem número 1";
  69 + String value = bundleCustom.getBundle().getString("messageOneParameter", "1");
  70 + Assert.assertEquals(expected, value);
  71 + }
  72 +
  73 + @Test
  74 + public void loadKeyWithTwoParameter() {
  75 + bundleCustom = Beans.getReference(ResourceBundleWithParameter.class);
  76 + String expected = "Mensagem número 1 com 2 parâmetros";
  77 + String value = bundleCustom.getBundle().getString("messageTwoParameter", "1", "2");
  78 + Assert.assertEquals(expected, value);
  79 + }
  80 +
  81 + @Test
  82 + public void loadKeyWithoutParameter() {
  83 + bundleCustom = Beans.getReference(ResourceBundleWithParameter.class);
  84 + String expected = "Mensagem";
  85 + String value = bundleCustom.getBundle().getString("messageWithoutParameter", "1", "2", "3");
  86 + Assert.assertEquals(expected, value);
  87 + }
  88 +
  89 + @Test
  90 + public void loadKeyWithStringParameter() {
  91 + bundleCustom = Beans.getReference(ResourceBundleWithParameter.class);
  92 + String expected = "Mensagem número 1";
  93 + String value = bundleCustom.getBundle().getString("messageParameterString", "1");
  94 + Assert.assertNotSame(expected, value);
  95 +
  96 + expected = "Mensagem número {numero}";
  97 + Assert.assertEquals(expected, value);
  98 + }
  99 +
  100 + @Test
  101 + public void loadKeyWithMoreParameter() {
  102 + bundleCustom = Beans.getReference(ResourceBundleWithParameter.class);
  103 + String expected = "Mensagem número 1";
  104 + String value = bundleCustom.getBundle().getString("messageOneParameter", "1", "2", "3");
  105 + Assert.assertEquals(expected, value);
  106 + }
  107 +
  108 + @Test
  109 + public void loadKeyWithLessParameter() {
  110 + bundleCustom = Beans.getReference(ResourceBundleWithParameter.class);
  111 + String expected = "Mensagem número 1 com {1} parâmetros";
  112 + String value = bundleCustom.getBundle().getString("messageTwoParameter", "1");
  113 + Assert.assertEquals(expected, value);
  114 + }
  115 +}
impl/core/src/test/resources/resourcebundle/parameter/messages.properties 0 → 100644
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
  1 +# Demoiselle Framework
  2 +# Copyright (C) 2010 SERPRO
  3 +# ----------------------------------------------------------------------------
  4 +# This file is part of Demoiselle Framework.
  5 +#
  6 +# Demoiselle Framework is free software; you can redistribute it and/or
  7 +# modify it under the terms of the GNU Lesser General Public License version 3
  8 +# as published by the Free Software Foundation.
  9 +#
  10 +# This program is distributed in the hope that it will be useful,
  11 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
  12 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13 +# GNU General Public License for more details.
  14 +#
  15 +# You should have received a copy of the GNU Lesser General Public License version 3
  16 +# along with this program; if not, see <http://www.gnu.org/licenses/>
  17 +# or write to the Free Software Foundation, Inc., 51 Franklin Street,
  18 +# Fifth Floor, Boston, MA 02110-1301, USA.
  19 +# ----------------------------------------------------------------------------
  20 +# Este arquivo é parte do Framework Demoiselle.
  21 +#
  22 +# O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou
  23 +# modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação
  24 +# do Software Livre (FSF).
  25 +#
  26 +# Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA
  27 +# GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou
  28 +# APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português
  29 +# para maiores detalhes.
  30 +#
  31 +# Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título
  32 +# "LICENCA.txt", junto com esse programa. Se não, acesse <http://www.gnu.org/licenses/>
  33 +# ou escreva para a Fundação do Software Livre (FSF) Inc.,
  34 +# 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA.
  35 +messageWithoutParameter=Mensagem
  36 +messageOneParameter=Mensagem n\u00FAmero {0}
  37 +messageTwoParameter=Mensagem n\u00FAmero {0} com {1} par\u00E2metros
  38 +messageParameterString=Mensagem n\u00FAmero {numero}
0 \ No newline at end of file 39 \ No newline at end of file