diff --git a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/TransactionBootstrap.java b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/TransactionBootstrap.java index 1a4a8c1..13317ab 100644 --- a/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/TransactionBootstrap.java +++ b/impl/core/src/main/java/br/gov/frameworkdemoiselle/internal/bootstrap/TransactionBootstrap.java @@ -36,59 +36,13 @@ */ package br.gov.frameworkdemoiselle.internal.bootstrap; -import javax.enterprise.event.Observes; -import javax.enterprise.inject.spi.BeforeBeanDiscovery; -import javax.enterprise.inject.spi.ProcessAnnotatedType; - -import org.apache.commons.configuration.Configuration; -import org.apache.commons.configuration.PropertiesConfiguration; - -import br.gov.frameworkdemoiselle.configuration.ConfigurationException; import br.gov.frameworkdemoiselle.internal.implementation.DefaultTransaction; import br.gov.frameworkdemoiselle.transaction.Transaction; -import br.gov.frameworkdemoiselle.util.Reflections; - -public class TransactionBootstrap extends AbstractBootstrap { - - private static Class selected = loadSelected(); - - public void beforeBeanDiscovery(@Observes final BeforeBeanDiscovery event) { - selected = loadSelected(); - } - public void processAnnotatedType(@Observes final ProcessAnnotatedType event) { - Class annotated = event.getAnnotatedType().getJavaClass(); +public class TransactionBootstrap extends AbstractStrategyBootstrap { - if (Reflections.isOfType(annotated, Transaction.class) && annotated != selected) { - event.veto(); - } + public String getConfigurationKey() { + return "frameworkdemoiselle.transaction.class"; } - @SuppressWarnings("unchecked") - private static Class loadSelected() { - Class result = null; - String canonicalName = null; - - try { - Configuration config = new PropertiesConfiguration("demoiselle.properties"); - canonicalName = config.getString("frameworkdemoiselle.transaction.class", - DefaultTransaction.class.getCanonicalName()); - - ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); - result = (Class) Class.forName(canonicalName, false, classLoader); - result.asSubclass(Transaction.class); - - } catch (org.apache.commons.configuration.ConfigurationException cause) { - throw new ConfigurationException(getBundle().getString("file-not-found", "demoiselle.properties")); - - } catch (ClassNotFoundException cause) { - throw new ConfigurationException(getBundle().getString("transaction-class-not-found", canonicalName)); - - } catch (ClassCastException cause) { - throw new ConfigurationException(getBundle().getString("transaction-class-must-be-of-type", canonicalName, - Transaction.class.getCanonicalName())); - } - - return result; - } } -- libgit2 0.21.2