Author: gerdogdu
Date: Mon Nov 1 06:49:03 2010
New Revision: 1029567
URL: http://svn.apache.org/viewvc?rev=1029567&view=rev
Log:
[OWB-482], Small issues, thanks to David Jencks
Modified:
openwebbeans/trunk/pom.xml
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ExtensionLoader.java
Modified: openwebbeans/trunk/pom.xml
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/pom.xml?rev=1029567&r1=1029566&r2=1029567&view=diff
==============================================================================
--- openwebbeans/trunk/pom.xml (original)
+++ openwebbeans/trunk/pom.xml Mon Nov 1 06:49:03 2010
@@ -659,6 +659,16 @@
</dependencies>
</dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.openwebbeans.build-tools</groupId>
+ <artifactId>checkstyle-rules</artifactId>
+ <version>1.0.1-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
+
+ </dependencies>
+
<profiles>
<profile>
<id>reporting</id>
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java?rev=1029567&r1=1029566&r2=1029567&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/context/AbstractContext.java
Mon Nov 1 06:49:03 2010
@@ -204,10 +204,9 @@ public abstract class AbstractContext im
if(bag == null)
{
createContextualBag(contextual, creationalContext);
+ bag = (BeanInstanceBag<T>)componentInstanceMap.get(contextual);
}
- bag = (BeanInstanceBag<T>)componentInstanceMap.get(contextual);
-
//Look for instance
instance = bag.getBeanInstance();
if (instance != null)
@@ -224,12 +223,8 @@ public abstract class AbstractContext im
else
{
- //No instance
- if(instance == null)
- {
- instance = bag.create(contextual);
- }
- }
+ instance = bag.create(contextual);
+ }
}
return instance;
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ExtensionLoader.java
URL:
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ExtensionLoader.java?rev=1029567&r1=1029566&r2=1029567&view=diff
==============================================================================
---
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ExtensionLoader.java
(original)
+++
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/events/ExtensionLoader.java
Mon Nov 1 06:49:03 2010
@@ -18,14 +18,15 @@
*/
package org.apache.webbeans.portable.events;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.ServiceLoader;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import javax.enterprise.inject.spi.Bean;
import javax.enterprise.inject.spi.Extension;
-
import org.apache.webbeans.config.WebBeansFinder;
import org.apache.webbeans.container.BeanManagerImpl;
import org.apache.webbeans.exception.WebBeansException;
@@ -42,8 +43,9 @@ import org.apache.webbeans.util.WebBeans
public class ExtensionLoader
{
/**Map of extensions*/
- private Map<Bean<?>, Object> extensions = new ConcurrentHashMap<Bean<?>,
Object>();
-
+ private final Map<Bean<?>, Object> extensions = new
ConcurrentHashMap<Bean<?>, Object>();
+ private final Set<Class<? extends Extension>> extensionClasses = new
HashSet<Class<? extends Extension>>();
+
/**
* Creates a new loader instance.
*/
@@ -71,17 +73,20 @@ public class ExtensionLoader
{
ServiceLoader<Extension> loader = ServiceLoader.load(Extension.class,
WebBeansUtil.getCurrentClassLoader());
Iterator<Extension> iterator = loader.iterator();
-
while(iterator.hasNext())
{
Extension ext = iterator.next();
- try
+ if (!extensionClasses.contains(ext.getClass()))
{
- addExtension(ext);
- }
- catch (Exception e)
- {
- throw new WebBeansException("Error is occured while reading
Extension service list",e);
+ extensionClasses.add(ext.getClass());
+ try
+ {
+ addExtension(ext);
+ }
+ catch (Exception e)
+ {
+ throw new WebBeansException("Error occurred while reading
Extension service list",e);
+ }
}
}
}
@@ -108,21 +113,23 @@ public class ExtensionLoader
/**
* Add a CDI Extension to our internal list.
- * @param ext
+ * @param ext Extension to add
*/
public void addExtension(Extension ext)
{
- Bean<?> bean = WebBeansUtil.createExtensionComponent(ext.getClass());
+ Bean<?> bean = WebBeansUtil.createExtensionComponent(ext.getClass());
this.extensions.put(bean, ext);
-
+
BeanManagerImpl.getManager().addBean(bean);
}
/**
* Clear service list.
+ * TODO since this doesn't remove the beans from the BeanManager it's
unlikely to allow you to call loadExtensionServices again
*/
public void clear()
{
this.extensions.clear();
- }
-}
\ No newline at end of file
+ this.extensionClasses.clear();
+ }
+}