@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
,
GroupedConversationScoped
public abstract Class<?>[] subGroup
public abstract Class<?> of
Copyright © 2020 The Apache Software Foundation. All rights reserved.