Author: rmannibucau
Date: Sat Oct 11 19:31:34 2014
New Revision: 1631103
URL: http://svn.apache.org/r1631103
Log:
using CDI 1.1 since we are not compatible with CDI 1.0 ATM. We could rework it
later but in all case this update ensure we don't leak with redeploy which was
the case before
Removed:
bval/branches/bval-11/bval-jsr/src/main/resources/META-INF/beans.xml
Modified:
bval/branches/bval-11/bval-jsr/pom.xml
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java
Modified: bval/branches/bval-11/bval-jsr/pom.xml
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/pom.xml?rev=1631103&r1=1631102&r2=1631103&view=diff
==============================================================================
--- bval/branches/bval-11/bval-jsr/pom.xml (original)
+++ bval/branches/bval-11/bval-jsr/pom.xml Sat Oct 11 19:31:34 2014
@@ -185,8 +185,8 @@
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
- <artifactId>geronimo-jcdi_1.0_spec</artifactId>
- <version>1.0</version>
+ <artifactId>geronimo-jcdi_1.1_spec</artifactId>
+ <version>1.0-alpha-1</version>
<scope>provided</scope>
<optional>true</optional>
</dependency>
Modified:
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java?rev=1631103&r1=1631102&r2=1631103&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java
(original)
+++
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/cdi/BValExtension.java
Sat Oct 11 19:31:34 2014
@@ -21,19 +21,16 @@ package org.apache.bval.cdi;
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AfterBeanDiscovery;
-import javax.enterprise.inject.spi.AfterDeploymentValidation;
import javax.enterprise.inject.spi.AnnotatedCallable;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.BeanManager;
import javax.enterprise.inject.spi.BeforeBeanDiscovery;
-import javax.enterprise.inject.spi.BeforeShutdown;
+import javax.enterprise.inject.spi.CDI;
import javax.enterprise.inject.spi.Extension;
import javax.enterprise.inject.spi.InjectionTarget;
import javax.enterprise.inject.spi.ProcessAnnotatedType;
import javax.enterprise.inject.spi.ProcessBean;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
import javax.validation.BootstrapConfiguration;
import javax.validation.Configuration;
import javax.validation.Validation;
@@ -49,16 +46,11 @@ import java.lang.reflect.Type;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
-import java.util.Map;
import java.util.Set;
-import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArraySet;
import java.util.logging.Level;
import java.util.logging.Logger;
-// mainly copied from deltaspike to not force users to use deltaspike
-// which would be a pain in app servers
-// TODO: get rid of beans.xml adding interceptor automatically
public class BValExtension implements Extension {
private static final Logger LOGGER =
Logger.getLogger(BValExtension.class.getName());
@@ -73,9 +65,6 @@ public class BValExtension implements Ex
SKIPPED_PREFIXES.add("org.apache.myfaces."); // should be checked when
upgrading
}
- private static BValExtension bmpSingleton = null;
- private volatile Map<ClassLoader, BeanManagerInfo> bmInfos = new
ConcurrentHashMap<ClassLoader, BeanManagerInfo>();
-
private boolean validatorFound = Boolean.getBoolean("bval.in-container");
private boolean validatorFactoryFound =
Boolean.getBoolean("bval.in-container");
@@ -142,10 +131,6 @@ public class BValExtension implements Ex
return globalExecutableTypes;
}
- public static BValExtension getInstance() {
- return bmpSingleton;
- }
-
public void addBvalBinding(final @Observes BeforeBeanDiscovery
beforeBeanDiscovery, final BeanManager beanManager) {
beforeBeanDiscovery.addInterceptorBinding(BValBinding.class);
beforeBeanDiscovery.addAnnotatedType(beanManager.createAnnotatedType(BValInterceptor.class));
@@ -229,24 +214,9 @@ public class BValExtension implements Ex
factory.close();
}
- captureBeanManager(beanManager); // next method will need it
cdiIntegration(afterBeanDiscovery, beanManager);
}
- private void captureBeanManager(final BeanManager beanManager) {
- // bean manager holder
- if (bmpSingleton == null) {
- synchronized (LOGGER) { // a static instance
- if (bmpSingleton == null) {
- bmpSingleton = this;
- }
- }
- }
-
- final BeanManagerInfo bmi = getBeanManagerInfo(loader());
- bmi.loadTimeBm = beanManager;
- }
-
private void cdiIntegration(final AfterBeanDiscovery afterBeanDiscovery,
final BeanManager beanManager) {
try {
config.addProperty("bval.before.cdi", "false"); // now take into
account all the config
@@ -280,65 +250,9 @@ public class BValExtension implements Ex
return Thread.currentThread().getContextClassLoader();
}
- public BeanManager getBeanManager() {
- final BeanManagerInfo bmi = getBeanManagerInfo(loader());
-
- BeanManager result = bmi.finalBm;
- if (result == null && bmi.cdi == null) {
- synchronized (this) {
- result = resolveBeanManagerViaJndi();
- if (result == null) {
- result = bmi.loadTimeBm;
- }
- if (result == null) {
- bmi.cdi = false;
- return null;
- }
- bmi.cdi = true;
- bmi.finalBm = result;
- }
- }
-
- return result;
- }
-
- public void cleanupFinalBeanManagers(final @Observes
AfterDeploymentValidation ignored) {
- for (final BeanManagerInfo bmi : bmpSingleton.bmInfos.values()) {
- bmi.finalBm = null;
- }
- }
-
- public void cleanupStoredBeanManagerOnShutdown(final @Observes
BeforeShutdown ignored) {
- if (bmpSingleton != null && bmpSingleton.bmInfos != null) {
- bmpSingleton.bmInfos.remove(loader());
- }
- }
-
- private static BeanManager resolveBeanManagerViaJndi() {
- try {
- return (BeanManager) new
InitialContext().lookup("java:comp/BeanManager");
- } catch (final NamingException e) {
- return null;
- }
- }
-
- private BeanManagerInfo getBeanManagerInfo(final ClassLoader cl) {
- BeanManagerInfo bmi = bmpSingleton.bmInfos.get(cl);
- if (bmi == null) {
- synchronized (this) {
- bmi = bmpSingleton.bmInfos.get(cl);
- if (bmi == null) {
- bmi = new BeanManagerInfo();
- bmpSingleton.bmInfos.put(cl, bmi);
- }
- }
- }
- return bmi;
- }
-
public static <T> Releasable<T> inject(final Class<T> clazz) {
try {
- final BeanManager beanManager = getInstance().getBeanManager();
+ final BeanManager beanManager = CDI.current().getBeanManager();
if (beanManager == null) {
return null;
}
@@ -358,10 +272,8 @@ public class BValExtension implements Ex
return null;
}
- private static class BeanManagerInfo {
- private BeanManager loadTimeBm = null;
- private BeanManager finalBm = null;
- private Boolean cdi = null;
+ public static BeanManager getBeanManager() {
+ return CDI.current().getBeanManager();
}
public static class Releasable<T> {
Modified:
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java
URL:
http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java?rev=1631103&r1=1631102&r2=1631103&view=diff
==============================================================================
---
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java
(original)
+++
bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultConstraintValidatorFactory.java
Sat Oct 11 19:31:34 2014
@@ -47,7 +47,7 @@ public class DefaultConstraintValidatorF
synchronized (this) {
if (useCdi == null) {
try {
- useCdi = BValExtension.getInstance() != null &&
BValExtension.getInstance().getBeanManager() != null;
+ useCdi = BValExtension.getBeanManager() != null;
} catch (final NoClassDefFoundError error) {
useCdi = false;
} catch (final Exception e) {
@@ -65,8 +65,9 @@ public class DefaultConstraintValidatorF
final BValExtension.Releasable<T> instance =
BValExtension.inject(constraintClass);
if (instance != null) {
releasables.add(instance);
+ return instance.getInstance();
}
- return instance.getInstance();
+ throw new IllegalStateException("Can't create " +
constraintClass.getName());
} catch (final Exception e) {
return constraintClass.newInstance();
} catch (final NoClassDefFoundError error) {