<div class="wiki-content maincontent"><p>ActiveBlaze supports group membership using a GroupChannel - which can be created from a GroupChannelFactory.<br clear="none">
You have to explicitly say which group you want to join/leave - and you can join multiple groups.<br clear="none">
Each GroupChannel has both a globally unique id and a name.</p>

<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">

import org.apache.activeblaze.group.*;

...
BlazeGroupChannelFactory factory = new BlazeGroupChannelFactory();

BlazeGroupChannel channel = factory.createGroupChannel("My Channel");
//join a group
channel.addToGroup("test");
channel.start();

//listen for other members

channel.addMemberChangedListener(new MemberChangedListener(){

     public void memberStarted(Member member) {
         System.out.println("Member started");
     }

     public void memberStopped(Member member) {
         System.out.println("Member stopped");
     }
            
 });
</pre>
</div></div></div>

