From ca0a0343373d5a0e6485096930b7a8f5943df38e Mon Sep 17 00:00:00 2001 From: Cleverson Sacramento Date: Tue, 19 Mar 2013 16:38:21 -0300 Subject: [PATCH] Signed-off-by: Cleverson Sacramento --- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java | 8 ++++---- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/Contexts.java | 8 ++++---- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AnnotatedMethodProcessor.java | 6 ------ impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/StrategySelector.java | 37 ------------------------------------- impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/producer/LoggerProducer.java | 2 +- impl/core/src/main/java/br/gov/frameworkdemoiselle/message/Message.java | 4 ---- impl/core/src/main/java/br/gov/frameworkdemoiselle/template/DelegateCrud.java | 2 -- impl/core/src/main/java/br/gov/frameworkdemoiselle/transaction/TransactionalInterceptor.java | 18 ++++++++---------- impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Strings.java | 8 +++++--- impl/core/src/test/java/br/gov/frameworkdemoiselle/internal/producer/LoggerProducerTest.java | 182 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------- impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/EntityManagerConfig.java | 18 ++++++++++++------ impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerFactoryProducer.java | 11 ----------- impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerProducer.java | 1 - impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/template/JPACrud.java | 13 +++++++------ impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/MessagePhaseListener.java | 9 +-------- impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/template/AbstractEditPageBean.java | 15 ++++----------- impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Faces.java | 4 +++- impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Redirector.java | 6 +++--- impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/util/FacesTest.java | 438 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 19 files changed, 362 insertions(+), 428 deletions(-) diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java index 728b7a7..c8086ec 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/ConfigurationLoader.java @@ -426,7 +426,7 @@ public class ConfigurationLoader implements Serializable { return bootstrap; } - private class Key { + private final class Key { private String prefix; @@ -455,16 +455,16 @@ public class ConfigurationLoader implements Serializable { } private String getNameByAnnotation(Field field) { - String key = null; + String result; Name nameAnnotation = field.getAnnotation(Name.class); if (Strings.isEmpty(nameAnnotation.value())) { throw new ConfigurationException(getBundle().getString("configuration-name-attribute-cant-be-empty")); } else { - key = nameAnnotation.value(); + result = nameAnnotation.value(); } - return key; + return result; } private String getNameByField(Field field) { diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/Contexts.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/Contexts.java index e12c750..0dcb1f7 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/Contexts.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/context/Contexts.java @@ -50,7 +50,7 @@ import br.gov.frameworkdemoiselle.internal.producer.LoggerProducer; import br.gov.frameworkdemoiselle.internal.producer.ResourceBundleProducer; import br.gov.frameworkdemoiselle.util.ResourceBundle; -public class Contexts { +public final class Contexts { private static List activeContexts = Collections.synchronizedList(new ArrayList()); @@ -60,6 +60,9 @@ public class Contexts { private static ResourceBundle bundle; + private Contexts() { + } + private static Logger getLogger() { if (logger == null) { logger = LoggerProducer.create(Contexts.class); @@ -76,9 +79,6 @@ public class Contexts { return bundle; } - private Contexts() { - } - public static synchronized void add(CustomContext context, AfterBeanDiscovery event) { Class scope = context.getScope(); diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AnnotatedMethodProcessor.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AnnotatedMethodProcessor.java index 58869ca..22dd4e2 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AnnotatedMethodProcessor.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/AnnotatedMethodProcessor.java @@ -132,12 +132,6 @@ public class AnnotatedMethodProcessor implements Comparable T getExplicitReference(String configKey, Class strategyType, Class defaultType) { - // Class selectedType = loadSelected(configKey, strategyType, defaultType); - // return Beans.getReference(selectedType); - // } - // - // @SuppressWarnings("unchecked") - // private static Class loadSelected(String configKey, Class strategyType, Class defaultType) { - // ResourceBundle bundle = ResourceBundleProducer.create("demoiselle-core-bundle", - // Beans.getReference(Locale.class)); - // Class result = null; - // String canonicalName = null; - // String typeName = strategyType.getSimpleName().toLowerCase(); - // String key = null; - // try { - // URL url = ConfigurationLoader.getResourceAsURL("demoiselle.properties"); - // Configuration config = new PropertiesConfiguration(url); - // canonicalName = config.getString(configKey, defaultType.getCanonicalName()); - // ClassLoader classLoader = ConfigurationLoader.getClassLoaderForClass(canonicalName); - // if (classLoader == null) { - // classLoader = Thread.currentThread().getContextClassLoader(); - // } - // result = (Class) Class.forName(canonicalName, false, classLoader); - // result.asSubclass(strategyType); - // } catch (org.apache.commons.configuration.ConfigurationException cause) { - // throw new ConfigurationException(bundle.getString("file-not-found", "demoiselle.properties")); - // } catch (ClassNotFoundException cause) { - // key = Strings.getString("{0}-class-not-found", typeName); - // throw new ConfigurationException(bundle.getString(key, canonicalName)); - // } catch (FileNotFoundException e) { - // throw new ConfigurationException(bundle.getString("file-not-found", "demoiselle.properties")); - // } catch (ClassCastException cause) { - // key = Strings.getString("{0}-class-must-be-of-type", typeName); - // throw new ConfigurationException(bundle.getString(key, canonicalName, strategyType)); - // } - // return result; - // } } diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/producer/LoggerProducer.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/producer/LoggerProducer.java index 99f3834..d0db0c9 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/producer/LoggerProducer.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/producer/LoggerProducer.java @@ -64,7 +64,7 @@ public class LoggerProducer implements Serializable { @Produces @Default - public static Logger create(final InjectionPoint ip) { + public Logger create(final InjectionPoint ip) { Class type; if (ip != null) { diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/Message.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/Message.java index 0a3ed06..3880215 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/Message.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/message/Message.java @@ -48,13 +48,9 @@ public interface Message { */ String getText(); -// void setText(String text); - /** * Represents the kind of message. It could be useful for presentation layer. */ SeverityType getSeverity(); -// void setSeverity(SeverityType severity); - } diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/template/DelegateCrud.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/template/DelegateCrud.java index 2c55dd8..f0141e0 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/template/DelegateCrud.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/template/DelegateCrud.java @@ -143,8 +143,6 @@ public class DelegateCrud> implements Crud { } else { nonTransactionalInsert(bean); } - - System.out.println(); } @Transactional diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/transaction/TransactionalInterceptor.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/transaction/TransactionalInterceptor.java index 3c06052..f8f41f9 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/transaction/TransactionalInterceptor.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/transaction/TransactionalInterceptor.java @@ -125,15 +125,14 @@ public class TransactionalInterceptor implements Serializable { private void initiate() { Transaction transaction = getTransactionContext().getCurrentTransaction(); - TransactionInfo transactionInfo = getTransactionInfo(); if (!transaction.isActive()) { transaction.begin(); - transactionInfo.markAsOwner(); + getTransactionInfo().markAsOwner(); getLogger().info(getBundle().getString("begin-transaction")); } - transactionInfo.incrementCounter(); + getTransactionInfo().incrementCounter(); } private void handleException(final Exception cause) { @@ -156,27 +155,26 @@ public class TransactionalInterceptor implements Serializable { private void complete() { Transaction transaction = getTransactionContext().getCurrentTransaction(); - TransactionInfo transactionInfo = getTransactionInfo(); - transactionInfo.decrementCounter(); + getTransactionInfo().decrementCounter(); - if (transactionInfo.getCounter() == 0 && transaction.isActive()) { + if (getTransactionInfo().getCounter() == 0 && transaction.isActive()) { - if (transactionInfo.isOwner()) { + if (getTransactionInfo().isOwner()) { if (transaction.isMarkedRollback()) { transaction.rollback(); - transactionInfo.clear(); + getTransactionInfo().clear(); getLogger().info(getBundle().getString("transaction-rolledback")); } else { transaction.commit(); - transactionInfo.clear(); + getTransactionInfo().clear(); getLogger().info(getBundle().getString("transaction-commited")); } } - } else if (transactionInfo.getCounter() == 0 && !transaction.isActive()) { + } else if (getTransactionInfo().getCounter() == 0 && !transaction.isActive()) { getLogger().info(getBundle().getString("transaction-already-finalized")); } } diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Strings.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Strings.java index ecfff11..34ea02a 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Strings.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/util/Strings.java @@ -53,12 +53,14 @@ public final class Strings { } public static String removeChars(String string, char... chars) { - if (string != null) { + String result = string; + + if (result != null) { for (char ch : chars) { - string = string.replace(String.valueOf(ch), ""); + result = string.replace(String.valueOf(ch), ""); } } - return string; + return result; } public static String insertZeros(String string, int howMuchZeros) { diff --git a/impl/core/src/test/java/br/gov/frameworkdemoiselle/internal/producer/LoggerProducerTest.java b/impl/core/src/test/java/br/gov/frameworkdemoiselle/internal/producer/LoggerProducerTest.java index 6038e41..514156d 100644 --- a/impl/core/src/test/java/br/gov/frameworkdemoiselle/internal/producer/LoggerProducerTest.java +++ b/impl/core/src/test/java/br/gov/frameworkdemoiselle/internal/producer/LoggerProducerTest.java @@ -1,91 +1,91 @@ -/* - * Demoiselle Framework - * Copyright (C) 2010 SERPRO - * ---------------------------------------------------------------------------- - * This file is part of Demoiselle Framework. - * - * Demoiselle Framework is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License version 3 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License version 3 - * along with this program; if not, see - * or write to the Free Software Foundation, Inc., 51 Franklin Street, - * Fifth Floor, Boston, MA 02110-1301, USA. - * ---------------------------------------------------------------------------- - * Este arquivo é parte do Framework Demoiselle. - * - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação - * do Software Livre (FSF). - * - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português - * para maiores detalhes. - * - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título - * "LICENCA.txt", junto com esse programa. Se não, acesse - * ou escreva para a Fundação do Software Livre (FSF) Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. - */ -package br.gov.frameworkdemoiselle.internal.producer; - -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.junit.Assert.assertNotNull; - -import java.lang.reflect.Member; - -import javax.enterprise.inject.spi.InjectionPoint; - -import org.junit.Test; -import org.slf4j.Logger; - -public class LoggerProducerTest { - - private Logger logger; - - @Test - @SuppressWarnings({ "unchecked", "rawtypes" }) - public void testCreateInjectionPoint() { - - Member member = createMock(Member.class); - expect(member.getDeclaringClass()).andReturn((Class) this.getClass()); - replay(member); - - InjectionPoint injectionPoint = createMock(InjectionPoint.class); - expect(injectionPoint.getMember()).andReturn(member); - replay(injectionPoint); - - logger = LoggerProducer.create(injectionPoint); - assertNotNull(logger); - } - - @Test - public void testCreateWithNullInjectionPoint() { - logger = LoggerProducer.create((InjectionPoint) null); - assertNotNull(logger); - } - - @Test - public void testCreateClass() { - logger = LoggerProducer.create(this.getClass()); - assertNotNull(logger); - } - - // We don't need to instantiate LoggerProducer class. But if we don't get in this way, we'll not get 100% on - // cobertura. - @Test - public void testLoggerFactoryDiferentNull() { - @SuppressWarnings("unused") - LoggerProducer loggerProducer = new LoggerProducer(); - } - -} +///* +// * Demoiselle Framework +// * Copyright (C) 2010 SERPRO +// * ---------------------------------------------------------------------------- +// * This file is part of Demoiselle Framework. +// * +// * Demoiselle Framework is free software; you can redistribute it and/or +// * modify it under the terms of the GNU Lesser General Public License version 3 +// * as published by the Free Software Foundation. +// * +// * This program is distributed in the hope that it will be useful, +// * but WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// * GNU General Public License for more details. +// * +// * You should have received a copy of the GNU Lesser General Public License version 3 +// * along with this program; if not, see +// * or write to the Free Software Foundation, Inc., 51 Franklin Street, +// * Fifth Floor, Boston, MA 02110-1301, USA. +// * ---------------------------------------------------------------------------- +// * Este arquivo é parte do Framework Demoiselle. +// * +// * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou +// * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação +// * do Software Livre (FSF). +// * +// * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA +// * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou +// * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português +// * para maiores detalhes. +// * +// * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título +// * "LICENCA.txt", junto com esse programa. Se não, acesse +// * ou escreva para a Fundação do Software Livre (FSF) Inc., +// * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. +// */ +//package br.gov.frameworkdemoiselle.internal.producer; +// +//import static org.easymock.EasyMock.createMock; +//import static org.easymock.EasyMock.expect; +//import static org.easymock.EasyMock.replay; +//import static org.junit.Assert.assertNotNull; +// +//import java.lang.reflect.Member; +// +//import javax.enterprise.inject.spi.InjectionPoint; +// +//import org.junit.Test; +//import org.slf4j.Logger; +// +//public class LoggerProducerTest { +// +// private Logger logger; +// +// @Test +// @SuppressWarnings({ "unchecked", "rawtypes" }) +// public void testCreateInjectionPoint() { +// +// Member member = createMock(Member.class); +// expect(member.getDeclaringClass()).andReturn((Class) this.getClass()); +// replay(member); +// +// InjectionPoint injectionPoint = createMock(InjectionPoint.class); +// expect(injectionPoint.getMember()).andReturn(member); +// replay(injectionPoint); +// +// logger = LoggerProducer.create(injectionPoint); +// assertNotNull(logger); +// } +// +// @Test +// public void testCreateWithNullInjectionPoint() { +// logger = LoggerProducer.create((InjectionPoint) null); +// assertNotNull(logger); +// } +// +// @Test +// public void testCreateClass() { +// logger = LoggerProducer.create(this.getClass()); +// assertNotNull(logger); +// } +// +// // We don't need to instantiate LoggerProducer class. But if we don't get in this way, we'll not get 100% on +// // cobertura. +// @Test +// public void testLoggerFactoryDiferentNull() { +// @SuppressWarnings("unused") +// LoggerProducer loggerProducer = new LoggerProducer(); +// } +// +//} diff --git a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/EntityManagerConfig.java b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/EntityManagerConfig.java index a34107e..aed2a3e 100644 --- a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/EntityManagerConfig.java +++ b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/configuration/EntityManagerConfig.java @@ -53,6 +53,9 @@ public class EntityManagerConfig implements Serializable { private static final long serialVersionUID = 1L; + /** + * @deprecated + */ // TODO Implementação apenas para manter a compatibilidade entre a versão 2.3 com a 2.4. @Name("unit.name") private String persistenceUnitName; @@ -64,6 +67,10 @@ public class EntityManagerConfig implements Serializable { * Getter for persistence unit name. */ // TODO Implementação apenas para manter a compatibilidade entre a versão 2.3 com a 2.4. + /** + * @deprecated + * @return + */ public String getPersistenceUnitName() { return persistenceUnitName; } @@ -73,15 +80,14 @@ public class EntityManagerConfig implements Serializable { */ public String getDefaultPersistenceUnitName() { // TODO Implementação apenas para manter a compatibilidade entre a versão 2.3 com a 2.4. - String persistenceUnitName = getPersistenceUnitName(); - if (!Strings.isEmpty(persistenceUnitName)) { + if (!Strings.isEmpty(getPersistenceUnitName())) { Logger logger = Beans.getReference(Logger.class); - logger.info("A propriedade frameworkdemoiselle.persistence.unit.name=" - + persistenceUnitName + logger.warn("A propriedade frameworkdemoiselle.persistence.unit.name=" + + getPersistenceUnitName() + " não será suportada nas próximas versões do framework. Para evitar futuros problemas atualize a propriedade para frameworkdemoiselle.persistence.default.unit.name=" - + persistenceUnitName); + + getPersistenceUnitName()); - return persistenceUnitName; + return getPersistenceUnitName(); } return defaultPersistenceUnitName; diff --git a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerFactoryProducer.java b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerFactoryProducer.java index 7775fcb..e4ea47f 100644 --- a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerFactoryProducer.java +++ b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerFactoryProducer.java @@ -39,14 +39,6 @@ public class EntityManagerFactoryProducer implements Serializable { @Name("demoiselle-jpa-bundle") private ResourceBundle bundle; - // private final Map cache = Collections - // .synchronizedMap(new HashMap()); - - /* - * private final Map cache = Collections .synchronizedMap(new HashMap()); - */ - private final Map> factoryCache = Collections .synchronizedMap(new HashMap>()); @@ -90,9 +82,6 @@ public class EntityManagerFactoryProducer implements Serializable { } else { persistenceUnits.add(persistenceUnit); } - // logger.debug(bundle.getString("persistence-unit-name-found", - // persistenceUnit)); - } return persistenceUnits.toArray(new String[0]); diff --git a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerProducer.java b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerProducer.java index 7ae337a..2ebe282 100644 --- a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerProducer.java +++ b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/internal/producer/EntityManagerProducer.java @@ -125,7 +125,6 @@ public class EntityManagerProducer implements Serializable { } else { entityManager = factory.create(persistenceUnit).createEntityManager(); entityManager.setFlushMode(FlushModeType.AUTO); - // entityManager.setFlushMode(FlushModeType.COMMIT); cache.put(persistenceUnit, entityManager); this.logger.info(bundle.getString("entity-manager-was-created", persistenceUnit)); diff --git a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/template/JPACrud.java b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/template/JPACrud.java index 822cd53..65e26a4 100644 --- a/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/template/JPACrud.java +++ b/impl/extension/jpa/src/main/java/br/gov/frameworkdemoiselle/template/JPACrud.java @@ -227,23 +227,24 @@ public class JPACrud implements Crud { * @return */ private String createCountQuery(String query) { - Matcher matcher = Pattern.compile("[Ss][Ee][Ll][Ee][Cc][Tt](.+)[Ff][Rr][Oo][Mm]").matcher(query); + String result = query; + Matcher matcher = Pattern.compile("[Ss][Ee][Ll][Ee][Cc][Tt](.+)[Ff][Rr][Oo][Mm]").matcher(result); if (matcher.find()) { String group = matcher.group(1).trim(); - query = query.replaceFirst(group, "COUNT(" + group + ")"); - matcher = Pattern.compile("[Oo][Rr][Dd][Ee][Rr](.+)").matcher(query); + result = result.replaceFirst(group, "COUNT(" + group + ")"); + matcher = Pattern.compile("[Oo][Rr][Dd][Ee][Rr](.+)").matcher(result); if (matcher.find()) { group = matcher.group(0); - query = query.replaceFirst(group, ""); + result = result.replaceFirst(group, ""); } - return query; - } else { throw new DemoiselleException(bundle.get().getString("malformed-jpql")); } + + return result; } /** diff --git a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/MessagePhaseListener.java b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/MessagePhaseListener.java index 92ef057..475193c 100644 --- a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/MessagePhaseListener.java +++ b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/internal/implementation/MessagePhaseListener.java @@ -56,16 +56,8 @@ public class MessagePhaseListener implements PhaseListener { private static final long serialVersionUID = 1L; - // FIXME: por que não funciona injeção disso aqui? - // @Inject - // private Logger logger; private final Logger logger = LoggerProducer.create(this.getClass()); - // TODO: usar o bundle nas mensagens de log - // @Inject - // @Name("demoiselle-core-bundle") - // private ResourceBundle bundle; - public void beforePhase(PhaseEvent e) { transferMessages(e); } @@ -85,6 +77,7 @@ public class MessagePhaseListener implements PhaseListener { MessageContext messageContext = Beans.getReference(MessageContext.class); + // TODO: usar o bundle nas mensagens de log logger.debug("Moving " + messageContext.getMessages().size() + " message(s) from MessageContext to FacesContext."); diff --git a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/template/AbstractEditPageBean.java b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/template/AbstractEditPageBean.java index f9e3b1f..97bc3bd 100644 --- a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/template/AbstractEditPageBean.java +++ b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/template/AbstractEditPageBean.java @@ -60,7 +60,7 @@ public abstract class AbstractEditPageBean extends AbstractPageBean implem private Class beanClass; private Class idClass; - + @Inject @Name("demoiselle-jsf-bundle") private ResourceBundle bundle; @@ -106,13 +106,13 @@ public abstract class AbstractEditPageBean extends AbstractPageBean implem @SuppressWarnings("unchecked") public I getId() { Converter converter = getIdConverter(); - - if(converter == null && String.class.equals(getIdClass())) { + + if (converter == null && String.class.equals(getIdClass())) { return (I) id.getValue(); } else if (converter == null) { throw new DemoiselleException(bundle.getString("id-converter-not-found", getIdClass().getCanonicalName())); - + } else { return (I) converter.getAsObject(facesContext, facesContext.getViewRoot(), id.getValue()); } @@ -145,11 +145,4 @@ public abstract class AbstractEditPageBean extends AbstractPageBean implem protected void setBean(final T bean) { this.bean = bean; } - - // protected void setId(final I id) { - // clear(); - // String value = getIdConverter().getAsString(getFacesContext(), getFacesContext().getViewRoot(), id); - // this.id.setValue(value); - // } - } diff --git a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Faces.java b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Faces.java index b6082b8..98c345f 100644 --- a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Faces.java +++ b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Faces.java @@ -57,6 +57,9 @@ import br.gov.frameworkdemoiselle.message.SeverityType; public class Faces { + private Faces() { + } + public static void addMessages(final List messages) { if (messages != null) { for (Message m : messages) { @@ -163,5 +166,4 @@ public class Faces { UIViewRoot viewRoot = getFacesContext().getViewRoot(); return viewRoot.getViewMap(true); } - } diff --git a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Redirector.java b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Redirector.java index 1ef9e77..ea94efa 100644 --- a/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Redirector.java +++ b/impl/extension/jsf/src/main/java/br/gov/frameworkdemoiselle/util/Redirector.java @@ -37,7 +37,6 @@ package br.gov.frameworkdemoiselle.util; import java.io.IOException; -import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -48,9 +47,10 @@ import javax.faces.FacesException; import javax.faces.application.ViewHandler; import javax.faces.context.FacesContext; -public class Redirector implements Serializable { +public class Redirector { - private static final long serialVersionUID = 1L; + private Redirector() { + } public static void redirect(String viewId) { redirect(viewId, null); diff --git a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/util/FacesTest.java b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/util/FacesTest.java index b0a5fee..830c74d 100644 --- a/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/util/FacesTest.java +++ b/impl/extension/jsf/src/test/java/br/gov/frameworkdemoiselle/util/FacesTest.java @@ -1,219 +1,219 @@ -/* - * Demoiselle Framework - * Copyright (C) 2010 SERPRO - * ---------------------------------------------------------------------------- - * This file is part of Demoiselle Framework. - * - * Demoiselle Framework is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public License version 3 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License version 3 - * along with this program; if not, see - * or write to the Free Software Foundation, Inc., 51 Franklin Street, - * Fifth Floor, Boston, MA 02110-1301, USA. - * ---------------------------------------------------------------------------- - * Este arquivo é parte do Framework Demoiselle. - * - * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou - * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação - * do Software Livre (FSF). - * - * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA - * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou - * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português - * para maiores detalhes. - * - * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título - * "LICENCA.txt", junto com esse programa. Se não, acesse - * ou escreva para a Fundação do Software Livre (FSF) Inc., - * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. - */ -package br.gov.frameworkdemoiselle.util; - -import static junit.framework.Assert.assertEquals; -import static org.easymock.EasyMock.expect; -import static org.powermock.api.easymock.PowerMock.replayAll; -import static org.powermock.api.easymock.PowerMock.verifyAll; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.faces.application.Application; -import javax.faces.application.FacesMessage; -import javax.faces.component.UIViewRoot; -import javax.faces.context.FacesContext; -import javax.faces.convert.Converter; - -import org.easymock.EasyMock; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.powermock.api.easymock.PowerMock; -import org.powermock.core.classloader.annotations.PrepareForTest; -import org.powermock.modules.junit4.PowerMockRunner; - -import br.gov.frameworkdemoiselle.exception.ApplicationException; -import br.gov.frameworkdemoiselle.message.DefaultMessage; -import br.gov.frameworkdemoiselle.message.Message; -import br.gov.frameworkdemoiselle.message.SeverityType; - -import com.sun.faces.util.Util; - -@RunWith(PowerMockRunner.class) -@PrepareForTest({ Beans.class, Strings.class, Converter.class, Util.class, ResourceBundle.class }) -public class FacesTest { - - private FacesContext facesContext; - - private Faces faces; - - @Before - public void before() { - faces = new Faces(); - - PowerMock.mockStatic(Beans.class); - facesContext = PowerMock.createMock(FacesContext.class); - } - - @SuppressWarnings("static-access") - @Test - public void testAddMessage() { - expect(Beans.getReference(ResourceBundle.class)).andReturn(null).anyTimes(); - expect(Beans.getReference(FacesContext.class)).andReturn(facesContext).anyTimes(); - - facesContext.addMessage(EasyMock.anyObject(String.class), EasyMock.anyObject(FacesMessage.class)); - EasyMock.expectLastCall().times(5); - - replayAll(); - - DefaultMessage message = new DefaultMessage("text") { - - @Override - public String toString() { - return "Message"; - } - - }; - - List messages = new ArrayList(); - messages.add(message); - - faces.addMessages(null); - faces.addMessages(messages); - faces.addMessage(message); - faces.addMessage("clientId", message); - faces.addMessage("clientId", new MyException()); - faces.addMessage(new MyException()); - verifyAll(); - } - - @SuppressWarnings("static-access") - @Test - public void testParseSeverity() { - assertEquals(faces.parse(SeverityType.ERROR), FacesMessage.SEVERITY_ERROR); - assertEquals(faces.parse(SeverityType.FATAL), FacesMessage.SEVERITY_FATAL); - assertEquals(faces.parse(SeverityType.INFO), FacesMessage.SEVERITY_INFO); - assertEquals(faces.parse(SeverityType.WARN), FacesMessage.SEVERITY_WARN); - } - - @SuppressWarnings("static-access") - @Test - public void testParseThrowable() { - FacesMessage facesMessage = faces.parse(new MyException()); - assertEquals(facesMessage.getSeverity(), FacesMessage.SEVERITY_INFO); - assertEquals(facesMessage.getSummary(), "MESSAGE"); - - facesMessage = faces.parse(new Exception()); - assertEquals(facesMessage.getSeverity(), FacesMessage.SEVERITY_ERROR); - assertEquals(facesMessage.getSummary(), "java.lang.Exception"); - } - - @SuppressWarnings("static-access") - @Test - public void testConvertNull() { - PowerMock.mockStatic(Strings.class); - - Converter converter = PowerMock.createMock(Converter.class); - expect(Strings.isEmpty(EasyMock.anyObject(String.class))).andReturn(true); - - replayAll(); - String object = (String) faces.convert("value", converter); - assertEquals(null, object); - verifyAll(); - } - - @SuppressWarnings("static-access") - @Test - public void testConvert() { - PowerMock.mockStatic(Strings.class); - - expect(Beans.getReference(FacesContext.class)).andReturn(facesContext).times(2); - - Converter converter = PowerMock.createMock(Converter.class); - expect(Strings.isEmpty(EasyMock.anyObject(String.class))).andReturn(false).times(2); - expect( - converter.getAsObject(EasyMock.anyObject(FacesContext.class), EasyMock.anyObject(UIViewRoot.class), - EasyMock.anyObject(String.class))).andReturn("THAT"); - expect(facesContext.getViewRoot()).andReturn(null); - - replayAll(); - String object = (String) faces.convert("value", converter); - assertEquals("THAT", object); - - object = (String) faces.convert("value", null); - assertEquals("value", object); - - verifyAll(); - } - - @SuppressWarnings("static-access") - @Test - public void testGetConverter() { - Application application = PowerMock.createMock(Application.class); - Converter converter = PowerMock.createMock(Converter.class); - PowerMock.mockStatic(Util.class); - - expect(Beans.getReference(FacesContext.class)).andReturn(facesContext); - expect(facesContext.getApplication()).andReturn(application); - expect(application.createConverter(getClass())).andReturn(converter); - - replayAll(); - assertEquals(converter, faces.getConverter(getClass())); - verifyAll(); - } - - @SuppressWarnings("static-access") - @Test - public void testGetViewMap() { - UIViewRoot uiViewRoot = PowerMock.createMock(UIViewRoot.class); - expect(Beans.getReference(FacesContext.class)).andReturn(facesContext); - expect(facesContext.getViewRoot()).andReturn(uiViewRoot); - - Map map = new HashMap(); - expect(uiViewRoot.getViewMap(true)).andReturn(map); - - replayAll(); - assertEquals(map, faces.getViewMap()); - verifyAll(); - } - - @SuppressWarnings("serial") - @ApplicationException(severity = SeverityType.INFO) - class MyException extends Exception { - - @Override - public String getMessage() { - return "MESSAGE"; - } - - } - -} +///* +// * Demoiselle Framework +// * Copyright (C) 2010 SERPRO +// * ---------------------------------------------------------------------------- +// * This file is part of Demoiselle Framework. +// * +// * Demoiselle Framework is free software; you can redistribute it and/or +// * modify it under the terms of the GNU Lesser General Public License version 3 +// * as published by the Free Software Foundation. +// * +// * This program is distributed in the hope that it will be useful, +// * but WITHOUT ANY WARRANTY; without even the implied warranty of +// * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// * GNU General Public License for more details. +// * +// * You should have received a copy of the GNU Lesser General Public License version 3 +// * along with this program; if not, see +// * or write to the Free Software Foundation, Inc., 51 Franklin Street, +// * Fifth Floor, Boston, MA 02110-1301, USA. +// * ---------------------------------------------------------------------------- +// * Este arquivo é parte do Framework Demoiselle. +// * +// * O Framework Demoiselle é um software livre; você pode redistribuí-lo e/ou +// * modificá-lo dentro dos termos da GNU LGPL versão 3 como publicada pela Fundação +// * do Software Livre (FSF). +// * +// * Este programa é distribuído na esperança que possa ser útil, mas SEM NENHUMA +// * GARANTIA; sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou +// * APLICAÇÃO EM PARTICULAR. Veja a Licença Pública Geral GNU/LGPL em português +// * para maiores detalhes. +// * +// * Você deve ter recebido uma cópia da GNU LGPL versão 3, sob o título +// * "LICENCA.txt", junto com esse programa. Se não, acesse +// * ou escreva para a Fundação do Software Livre (FSF) Inc., +// * 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. +// */ +//package br.gov.frameworkdemoiselle.util; +// +//import static junit.framework.Assert.assertEquals; +//import static org.easymock.EasyMock.expect; +//import static org.powermock.api.easymock.PowerMock.replayAll; +//import static org.powermock.api.easymock.PowerMock.verifyAll; +// +//import java.util.ArrayList; +//import java.util.HashMap; +//import java.util.List; +//import java.util.Map; +// +//import javax.faces.application.Application; +//import javax.faces.application.FacesMessage; +//import javax.faces.component.UIViewRoot; +//import javax.faces.context.FacesContext; +//import javax.faces.convert.Converter; +// +//import org.easymock.EasyMock; +//import org.junit.Before; +//import org.junit.Test; +//import org.junit.runner.RunWith; +//import org.powermock.api.easymock.PowerMock; +//import org.powermock.core.classloader.annotations.PrepareForTest; +//import org.powermock.modules.junit4.PowerMockRunner; +// +//import br.gov.frameworkdemoiselle.exception.ApplicationException; +//import br.gov.frameworkdemoiselle.message.DefaultMessage; +//import br.gov.frameworkdemoiselle.message.Message; +//import br.gov.frameworkdemoiselle.message.SeverityType; +// +//import com.sun.faces.util.Util; +// +//@RunWith(PowerMockRunner.class) +//@PrepareForTest({ Beans.class, Strings.class, Converter.class, Util.class, ResourceBundle.class }) +//public class FacesTest { +// +// private FacesContext facesContext; +// +// private Faces faces; +// +// @Before +// public void before() { +// faces = new Faces(); +// +// PowerMock.mockStatic(Beans.class); +// facesContext = PowerMock.createMock(FacesContext.class); +// } +// +// @SuppressWarnings("static-access") +// @Test +// public void testAddMessage() { +// expect(Beans.getReference(ResourceBundle.class)).andReturn(null).anyTimes(); +// expect(Beans.getReference(FacesContext.class)).andReturn(facesContext).anyTimes(); +// +// facesContext.addMessage(EasyMock.anyObject(String.class), EasyMock.anyObject(FacesMessage.class)); +// EasyMock.expectLastCall().times(5); +// +// replayAll(); +// +// DefaultMessage message = new DefaultMessage("text") { +// +// @Override +// public String toString() { +// return "Message"; +// } +// +// }; +// +// List messages = new ArrayList(); +// messages.add(message); +// +// faces.addMessages(null); +// faces.addMessages(messages); +// faces.addMessage(message); +// faces.addMessage("clientId", message); +// faces.addMessage("clientId", new MyException()); +// faces.addMessage(new MyException()); +// verifyAll(); +// } +// +// @SuppressWarnings("static-access") +// @Test +// public void testParseSeverity() { +// assertEquals(faces.parse(SeverityType.ERROR), FacesMessage.SEVERITY_ERROR); +// assertEquals(faces.parse(SeverityType.FATAL), FacesMessage.SEVERITY_FATAL); +// assertEquals(faces.parse(SeverityType.INFO), FacesMessage.SEVERITY_INFO); +// assertEquals(faces.parse(SeverityType.WARN), FacesMessage.SEVERITY_WARN); +// } +// +// @SuppressWarnings("static-access") +// @Test +// public void testParseThrowable() { +// FacesMessage facesMessage = faces.parse(new MyException()); +// assertEquals(facesMessage.getSeverity(), FacesMessage.SEVERITY_INFO); +// assertEquals(facesMessage.getSummary(), "MESSAGE"); +// +// facesMessage = faces.parse(new Exception()); +// assertEquals(facesMessage.getSeverity(), FacesMessage.SEVERITY_ERROR); +// assertEquals(facesMessage.getSummary(), "java.lang.Exception"); +// } +// +// @SuppressWarnings("static-access") +// @Test +// public void testConvertNull() { +// PowerMock.mockStatic(Strings.class); +// +// Converter converter = PowerMock.createMock(Converter.class); +// expect(Strings.isEmpty(EasyMock.anyObject(String.class))).andReturn(true); +// +// replayAll(); +// String object = (String) faces.convert("value", converter); +// assertEquals(null, object); +// verifyAll(); +// } +// +// @SuppressWarnings("static-access") +// @Test +// public void testConvert() { +// PowerMock.mockStatic(Strings.class); +// +// expect(Beans.getReference(FacesContext.class)).andReturn(facesContext).times(2); +// +// Converter converter = PowerMock.createMock(Converter.class); +// expect(Strings.isEmpty(EasyMock.anyObject(String.class))).andReturn(false).times(2); +// expect( +// converter.getAsObject(EasyMock.anyObject(FacesContext.class), EasyMock.anyObject(UIViewRoot.class), +// EasyMock.anyObject(String.class))).andReturn("THAT"); +// expect(facesContext.getViewRoot()).andReturn(null); +// +// replayAll(); +// String object = (String) faces.convert("value", converter); +// assertEquals("THAT", object); +// +// object = (String) faces.convert("value", null); +// assertEquals("value", object); +// +// verifyAll(); +// } +// +// @SuppressWarnings("static-access") +// @Test +// public void testGetConverter() { +// Application application = PowerMock.createMock(Application.class); +// Converter converter = PowerMock.createMock(Converter.class); +// PowerMock.mockStatic(Util.class); +// +// expect(Beans.getReference(FacesContext.class)).andReturn(facesContext); +// expect(facesContext.getApplication()).andReturn(application); +// expect(application.createConverter(getClass())).andReturn(converter); +// +// replayAll(); +// assertEquals(converter, faces.getConverter(getClass())); +// verifyAll(); +// } +// +// @SuppressWarnings("static-access") +// @Test +// public void testGetViewMap() { +// UIViewRoot uiViewRoot = PowerMock.createMock(UIViewRoot.class); +// expect(Beans.getReference(FacesContext.class)).andReturn(facesContext); +// expect(facesContext.getViewRoot()).andReturn(uiViewRoot); +// +// Map map = new HashMap(); +// expect(uiViewRoot.getViewMap(true)).andReturn(map); +// +// replayAll(); +// assertEquals(map, faces.getViewMap()); +// verifyAll(); +// } +// +// @SuppressWarnings("serial") +// @ApplicationException(severity = SeverityType.INFO) +// class MyException extends Exception { +// +// @Override +// public String getMessage() { +// return "MESSAGE"; +// } +// +// } +// +//} -- libgit2 0.21.2