Home » apache-openwebbeans-1.0.0-incubating-M3-sources » org.apache.webbeans.component » [javadoc | source]

    1   /*
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements. See the NOTICE file distributed with this
    4    * work for additional information regarding copyright ownership. The ASF
    5    * licenses this file to You under the Apache License, Version 2.0 (the
    6    * "License"); you may not use this file except in compliance with the License.
    7    * You may obtain a copy of the License at
    8    * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
    9    * or agreed to in writing, software distributed under the License is
   10    * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
   11    * KIND, either express or implied. See the License for the specific language
   12    * governing permissions and limitations under the License.
   13    */
   14   package org.apache.webbeans.component;
   15   
   16   import javax.enterprise.context.Conversation;
   17   import javax.enterprise.context.spi.CreationalContext;
   18   
   19   import org.apache.webbeans.conversation.ConversationImpl;
   20   import org.apache.webbeans.conversation.ConversationManager;
   21   import org.apache.webbeans.spi.ServiceLoader;
   22   import org.apache.webbeans.spi.conversation.ConversationService;
   23   
   24   public class ConversationBean extends AbstractBean<Conversation>
   25   {
   26   
   27       public ConversationBean()
   28       {
   29           super(WebBeansType.CONVERSATION, Conversation.class);
   30       }
   31   
   32       @Override
   33       protected Conversation createInstance(CreationalContext<Conversation> creationalContext)
   34       {
   35           ConversationService conversationService = ServiceLoader.getService(ConversationService.class);
   36           
   37           String conversationId = conversationService.getConversationId();
   38           
   39           Conversation conversation = null;
   40   
   41           if (conversationId != null)
   42           {
   43               conversation = ConversationManager.getInstance().getConversation(conversationId);
   44           }
   45           else
   46           {
   47               conversation = new ConversationImpl(conversationService.getConversationSessionId());
   48           }
   49   
   50           return conversation;
   51       }
   52   
   53       @Override
   54       protected void destroyInstance(Conversation instance)
   55       {
   56           if (!instance.isLongRunning())
   57           {
   58               instance = null;
   59           }
   60       }
   61   }

Home » apache-openwebbeans-1.0.0-incubating-M3-sources » org.apache.webbeans.component » [javadoc | source]