@Target(value=TYPE) @Retention(value=RUNTIME) @Documented public @interface ConversationSubGroup
@GroupConversationScoped beans
 in a ConversationGroup.
 
 public class MyGroup{}
 @ConversationScoped
 @ConversationGroup(MyGroup.class)
 public class BeanA {}
 @ConversationScoped
 @ConversationGroup(MyGroup.class)
 public class BeanB {}
 @ConversationScoped
 @ConversationGroup(MyGroup.class)
 public class BeanC {}
 @ConversationSubGroup(of = MyGroup.class, subGroup = {BeanA.class, BeanB.class})
 public class MySubGroup {}
  or
 
 @ConversationSubGroup(subGroup = {BeanA.class, BeanB.class})
 public class MySubGroup extends MyGroup {}
 //...
 this.groupedConversationManager.closeConversation(MySubGroup.class)
  or it's possible to use implicit subgroups (point to the interface instead of the bean class itself):
 
 public interface MyUseCase {}
 @ConversationSubGroup(of = MyGroup.class, subGroup = MyUseCase.class)
 public class ImplicitSubGroup {}
 @Named("myController")
 @ConversationScoped
 @ConversationGroup(MyGroup.class)
 public class MyController implements Serializable, MyUseCase
 {
    //...
 }
 //...
 this.groupedConversationManager.closeConversation(ImplicitSubGroup.class)
 ConversationGroup, 
GroupedConversationScopedpublic abstract Class<?>[] subGroup
public abstract Class<?> of
Copyright © 2017 The Apache Software Foundation. All rights reserved.