[webbeans-commits] Webbeans SVN: r396 - in ri/trunk: webbeans-ri/src/main/java/org/jboss/webbeans/contexts and 1 other directory.

webbeans-commits at lists.jboss.org webbeans-commits at lists.jboss.org
Wed Dec 3 14:26:10 EST 2008


Author: nickarls
Date: 2008-12-03 14:26:10 -0500 (Wed, 03 Dec 2008)
New Revision: 396

Added:
   ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Contextual.java
Modified:
   ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java
   ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Context.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/AbstractContext.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/BeanMap.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/DependentContext.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/SessionBeanMap.java
   ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/SimpleBeanMap.java
Log:
Contextual interface

Modified: ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java
===================================================================
--- ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java	2008-12-03 19:25:14 UTC (rev 395)
+++ ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Bean.java	2008-12-03 19:26:10 UTC (rev 396)
@@ -26,10 +26,9 @@
  * 
  * @author Gavin King
  * 
- * @param <T>
- *           an API type of the Web Bean
+ * @param <T> an API type of the Web Bean
  */
-public abstract class Bean<T>
+public abstract class Bean<T> implements Contextual<T>
 {
 
    private final Manager manager;

Modified: ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Context.java
===================================================================
--- ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Context.java	2008-12-03 19:25:14 UTC (rev 395)
+++ ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Context.java	2008-12-03 19:26:10 UTC (rev 396)
@@ -1,25 +1,24 @@
 /*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,  
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
 
 package javax.webbeans.manager;
 
 import java.lang.annotation.Annotation;
 
-
 /**
  * The contract between the Web Bean manager and a Web Beans context object.
  * This interface should not be called directly by the application.
@@ -32,9 +31,9 @@
 {
 
    public Class<? extends Annotation> getScopeType();
-   
-   public <T> T get(Bean<T> bean, boolean create);
-   
+
+   public <T> T get(Contextual<T> bean, boolean create);
+
    boolean isActive();
-   
+
 }

Added: ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Contextual.java
===================================================================
--- ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Contextual.java	                        (rev 0)
+++ ri/trunk/webbeans-api/src/main/java/javax/webbeans/manager/Contextual.java	2008-12-03 19:26:10 UTC (rev 396)
@@ -0,0 +1,31 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,  
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.webbeans.manager;
+
+/**
+ * The contract between a Context and an object that has its lifecycle managed
+ * by the context
+ * 
+ * @author Nicklas Karlsson
+ */
+public interface Contextual<T>
+{
+   public abstract T create();
+
+   public abstract void destroy(T instance);
+}

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/AbstractContext.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/AbstractContext.java	2008-12-03 19:25:14 UTC (rev 395)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/AbstractContext.java	2008-12-03 19:26:10 UTC (rev 396)
@@ -23,6 +23,7 @@
 import javax.webbeans.ContextNotActiveException;
 import javax.webbeans.manager.Bean;
 import javax.webbeans.manager.Context;
+import javax.webbeans.manager.Contextual;
 import javax.webbeans.manager.Manager;
 
 /**
@@ -61,7 +62,7 @@
     * 
     * @see javax.webbeans.manager.Context#get(Bean, boolean)
     */
-   public <T> T get(Bean<T> bean, boolean create)
+   public <T> T get(Contextual<T> bean, boolean create)
    {
       if (!isActive())
       {
@@ -118,7 +119,7 @@
    }
 
    // TODO Do we need this
-   private <T> void destroy(Manager manager, Bean<T> bean)
+   private <T> void destroy(Manager manager, Contextual<T> bean)
    {
       bean.destroy(getBeanMap().get(bean));
    }
@@ -126,7 +127,7 @@
    // TODO Do we need this
    public void destroy(Manager manager)
    {
-      for (Bean<? extends Object> bean : getBeanMap().keySet())
+      for (Contextual<? extends Object> bean : getBeanMap().keySet())
       {
          destroy(manager, bean);
       }

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/BeanMap.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/BeanMap.java	2008-12-03 19:25:14 UTC (rev 395)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/BeanMap.java	2008-12-03 19:26:10 UTC (rev 396)
@@ -17,7 +17,7 @@
 
 package org.jboss.webbeans.contexts;
 
-import javax.webbeans.manager.Bean;
+import javax.webbeans.manager.Contextual;
 
 /**
  * Interface for different implementations of Bean to Bean instance storage.
@@ -36,7 +36,7 @@
     * @param bean The bean whose instance to return
     * @return The instance. Null if not found
     */
-   public abstract <T extends Object> T get(Bean<? extends T> bean);
+   public abstract <T extends Object> T get(Contextual<? extends T> bean);
 
    /**
     * Removes an instance of a bean from the storage
@@ -44,7 +44,7 @@
     * @param bean The bean whose instance to remove
     * @return The removed instance. Null if not found in storage.
     */
-   public abstract <T extends Object> T remove(Bean<? extends T> bean);
+   public abstract <T extends Object> T remove(Contextual<? extends T> bean);
 
    /**
     * Clears the storage of any bean instances
@@ -56,7 +56,7 @@
     * 
     * @return An Iterable over the keys in the storage
     */
-   public abstract Iterable<Bean<? extends Object>> keySet();
+   public abstract Iterable<Contextual<? extends Object>> keySet();
 
    /**
     * Adds a bean instance to the storage
@@ -65,5 +65,5 @@
     * @param instance The instance to add
     * @return The instance added
     */
-   public abstract <T> void put(Bean<? extends T> bean, T instance);
+   public abstract <T> void put(Contextual<? extends T> bean, T instance);
 }
\ No newline at end of file

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/DependentContext.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/DependentContext.java	2008-12-03 19:25:14 UTC (rev 395)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/DependentContext.java	2008-12-03 19:26:10 UTC (rev 396)
@@ -19,7 +19,7 @@
 
 import javax.webbeans.ContextNotActiveException;
 import javax.webbeans.Dependent;
-import javax.webbeans.manager.Bean;
+import javax.webbeans.manager.Contextual;
 
 /**
  * The dependent context
@@ -43,7 +43,7 @@
     *  @param create Should a new one be created
     */
    @Override
-   public <T> T get(Bean<T> bean, boolean create)
+   public <T> T get(Contextual<T> bean, boolean create)
    {
       if (!isActive())
       {

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/SessionBeanMap.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/SessionBeanMap.java	2008-12-03 19:25:14 UTC (rev 395)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/SessionBeanMap.java	2008-12-03 19:26:10 UTC (rev 396)
@@ -23,6 +23,7 @@
 
 import javax.servlet.http.HttpSession;
 import javax.webbeans.manager.Bean;
+import javax.webbeans.manager.Contextual;
 
 import org.jboss.webbeans.ManagerImpl;
 import org.jboss.webbeans.log.LogProvider;
@@ -91,7 +92,7 @@
     * @param bean The bean to generate a key for.
     * @return A unique key;
     */
-   private String getBeanKey(Bean<?> bean)
+   private String getBeanKey(Contextual<?> bean)
    {
       return keyPrefix + manager.getBeans().indexOf(bean);
    }
@@ -109,7 +110,7 @@
     * @see org.jboss.webbeans.contexts.BeanMap#get(Bean)
     */
    @SuppressWarnings("unchecked")
-   public <T> T get(Bean<? extends T> bean)
+   public <T> T get(Contextual<? extends T> bean)
    {
       checkSession();
       String key = getBeanKey(bean);
@@ -130,7 +131,7 @@
     * 
     * @see org.jboss.webbeans.contexts.BeanMap#remove(Bean)
     */
-   public <T> T remove(Bean<? extends T> bean)
+   public <T> T remove(Contextual<? extends T> bean)
    {
       checkSession();
       T instance = get(bean);
@@ -175,11 +176,11 @@
     * @see org.jboss.webbeans.contexts.BeanMap#keySet()
     */
    @SuppressWarnings("unchecked")
-   public Iterable<Bean<? extends Object>> keySet()
+   public Iterable<Contextual<? extends Object>> keySet()
    {
       checkSession();
 
-      List<Bean<?>> beans = new ArrayList<Bean<?>>();
+      List<Contextual<?>> beans = new ArrayList<Contextual<?>>();
 
       Enumeration names = session.getAttributeNames();
       while (names.hasMoreElements())
@@ -188,7 +189,7 @@
          if (name.startsWith(keyPrefix))
          {
             String id = name.substring(keyPrefix.length());
-            Bean<?> bean = manager.getBeans().get(Integer.parseInt(id));
+            Contextual<?> bean = manager.getBeans().get(Integer.parseInt(id));
             beans.add(bean);
          }
       }
@@ -207,7 +208,7 @@
     * 
     * @see org.jboss.webbeans.contexts.BeanMap#put(Bean, Object)
     */
-   public <T> void put(Bean<? extends T> bean, T instance)
+   public <T> void put(Contextual<? extends T> bean, T instance)
    {
       checkSession();
       String key = getBeanKey(bean);
@@ -220,10 +221,10 @@
    public String toString()
    {
       StringBuffer buffer = new StringBuffer();
-      List<Bean<?>> beans = (List) keySet();
+      List<Contextual<?>> beans = (List) keySet();
       buffer.append("Bean -> bean instance mappings in HTTP session: " + beans.size() + "\n");
       int i = 0;
-      for (Bean<?> bean : beans)
+      for (Contextual<?> bean : beans)
       {
          Object instance = get(bean);
          buffer.append(++i + " - " + getBeanKey(bean) + ": " + instance + "\n");

Modified: ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/SimpleBeanMap.java
===================================================================
--- ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/SimpleBeanMap.java	2008-12-03 19:25:14 UTC (rev 395)
+++ ri/trunk/webbeans-ri/src/main/java/org/jboss/webbeans/contexts/SimpleBeanMap.java	2008-12-03 19:26:10 UTC (rev 396)
@@ -22,6 +22,7 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 import javax.webbeans.manager.Bean;
+import javax.webbeans.manager.Contextual;
 
 import org.jboss.webbeans.log.LogProvider;
 import org.jboss.webbeans.log.Logging;
@@ -34,19 +35,19 @@
  * 
  * @author Nicklas Karlsson
  */
-public class SimpleBeanMap extends ForwardingMap<Bean<? extends Object>, Object> implements BeanMap
+public class SimpleBeanMap extends ForwardingMap<Contextual<? extends Object>, Object> implements BeanMap
 {
    private static LogProvider log = Logging.getLogProvider(SimpleBeanMap.class);
    
    // The backing map
-   protected Map<Bean<? extends Object>, Object> delegate;
+   protected Map<Contextual<? extends Object>, Object> delegate;
 
    /**
     * Constructor
     */
    public SimpleBeanMap()
    {
-      delegate = new ConcurrentHashMap<Bean<? extends Object>, Object>();
+      delegate = new ConcurrentHashMap<Contextual<? extends Object>, Object>();
    }
 
    /**
@@ -58,7 +59,7 @@
     * @see org.jboss.webbeans.contexts.BeanMap#get(Bean)
     */
    @SuppressWarnings("unchecked")
-   public <T extends Object> T get(Bean<? extends T> bean)
+   public <T extends Object> T get(Contextual<? extends T> bean)
    {
       T instance = (T) super.get(bean);
       log.trace("Searched bean map for " + bean + " and got " + instance);
@@ -71,7 +72,7 @@
     * @return The delegate
     */
    @Override
-   public Map<Bean<? extends Object>, Object> delegate()
+   public Map<Contextual<? extends Object>, Object> delegate()
    {
       return delegate;
    }
@@ -85,7 +86,7 @@
     * @see org.jboss.webbeans.contexts.BeanMap#remove(Bean)
     */
    @SuppressWarnings("unchecked")
-   public <T extends Object> T remove(Bean<? extends T> bean)
+   public <T extends Object> T remove(Contextual<? extends T> bean)
    {
       T instance = (T) super.remove(bean);
       log.trace("Removed instace " + instance + " for bean " + bean + " from the bean map");
@@ -110,7 +111,7 @@
     * 
     * @see org.jboss.webbeans.contexts.BeanMap#keySet()
     */
-   public Set<Bean<? extends Object>> keySet()
+   public Set<Contextual<? extends Object>> keySet()
    {
       return delegate.keySet();
    }
@@ -123,7 +124,7 @@
     * 
     * @see org.jboss.webbeans.contexts.BeanMap#put(Bean, Object)
     */
-   public <T> void put(Bean<? extends T> bean, T instance)
+   public <T> void put(Contextual<? extends T> bean, T instance)
    {
       delegate.put(bean, instance);
       log.trace("Stored instance " + instance + " for bean " + bean + " in bean map");




More information about the weld-commits mailing list