Jxta

Boa tarde. Alguém sabe como funciona para criar os grupos no JXTA. Utilizei o seguinte código extraído do manual JXTA 2.5
Mas quando mudo na aplicação ele gera a seguinte exceção abaixo:

O código da função é o seguinte:

[code]public void startListening() //This method will start listening for incoming messages thro created pipe
{
try{
pipeInput = myPipeService.createInputPipe(pipeAdv,this);

    }catch(Exception e){
        log.append("[-]Exception: " + e.getMessage()+"\n");
        return;
    }
    if(pipeInput == null){
        System.exit(-1);
    }
}[/code]

Exceção apresentada:

Exception: net.jxta.impl.id.UUID.PeerGroupID cannot be cast to net.jxta.pipe.PipeID

[code]/*

  • Copyright © 2006-2007 Sun Microsystems, Inc. All rights reserved.
  • The Sun Project JXTA™ Software License
  • Redistribution and use in source and binary forms, with or without
  • modification, are permitted provided that the following conditions are met:
    1. Redistributions of source code must retain the above copyright notice,
  • this list of conditions and the following disclaimer.
    
    1. Redistributions in binary form must reproduce the above copyright notice,
  • this list of conditions and the following disclaimer in the documentation
    
  • and/or other materials provided with the distribution.
    
    1. The end-user documentation included with the redistribution, if any, must
  • include the following acknowledgment: "This product includes software
    
  • developed by Sun Microsystems, Inc. for JXTA(TM) technology."
    
  • Alternately, this acknowledgment may appear in the software itself, if
    
  • and wherever such third-party acknowledgments normally appear.
    
    1. The names “Sun”, “Sun Microsystems, Inc.”, “JXTA” and “Project JXTA” must
  • not be used to endorse or promote products derived from this software
    
  • without prior written permission. For written permission, please contact
    
  • Project JXTA at http://www.jxta.org.
    
    1. Products derived from this software may not be called “JXTA”, nor may
  • "JXTA" appear in their name, without prior written permission of Sun.
    
  • THIS SOFTWARE IS PROVIDED ``AS IS’’ AND ANY EXPRESSED OR IMPLIED WARRANTIES,
  • INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  • FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SUN
  • MICROSYSTEMS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  • INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  • LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
  • OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  • LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  • NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
  • EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  • JXTA is a registered trademark of Sun Microsystems, Inc. in the United
  • States and other countries.
  • Please see the license information page at :
  • http://www.jxta.org/project/www/license.html for instructions on use of
  • the license in source files.
  • ====================================================================
  • This software consists of voluntary contributions made by many individuals
  • on behalf of Project JXTA. For more information on Project JXTA, please see
  • http://www.jxta.org.
  • This license is based on the BSD license adopted by the Apache Foundation.
    */
    package jxta;

import net.jxta.id.IDFactory;
import net.jxta.peer.PeerID;
import net.jxta.peergroup.PeerGroupID;
import net.jxta.pipe.PipeID;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.text.MessageFormat;

/**

  • A simple and re-usable exmaple of creating various JXTA IDs
  • This is a two part tutorial :
  • Illustrates the creation of predictable ID's based upon the hash of a
  • provided string. This method provides an independent and deterministic
  • method for generating IDs. However using this method does require care
  • in the choice of the seed expression in order to prevent ID collisions
  • (duplicate IDs).
  • New random ID's encoded with a specific GroupID.

*/
public class JXTA {
private static final String SEED = “IDTuorial”;

/**
 * Returns a SHA1 hash of string.
 *
 * @param expression to hash
 * @return a SHA1 hash of string or {@code null} if the expression could
 *         not be hashed.
 */
private static byte[] hash(final String expression) {
    byte[] result;
    MessageDigest digest;

    if (expression == null) {
        throw new IllegalArgumentException("Invalid null expression");
    }

    try {
        digest = MessageDigest.getInstance("SHA1");
    } catch (NoSuchAlgorithmException failed) {
        failed.printStackTrace(System.err);
        RuntimeException failure = new IllegalStateException("Could not get SHA-1 Message");
        failure.initCause(failed);
        throw failure;
    }

    try {
        byte[] expressionBytes = expression.getBytes("UTF-8");
        result = digest.digest(expressionBytes);
    } catch (UnsupportedEncodingException impossible) {
        RuntimeException failure = new IllegalStateException("Could not encode expression as UTF8");

        failure.initCause(impossible);
        throw failure;
    }
    return result;
}

/**
 * Given a pipe name, it returns a PipeID who's value is chosen based upon that name.
 *
 * @param pipeName instance name
 * @param pgID     the group ID encoding
 * @return The pipeID value
 */
public static PipeID createPipeID(PeerGroupID pgID, String pipeName) {
    String seed = pipeName + SEED;
    return IDFactory.newPipeID(pgID, hash(seed.toLowerCase()));
}

/**
 * Creates group encoded random PipeID.
 *
 * @param pgID the group ID encoding
 * @return The pipeID value
 */
public static PipeID createNewPipeID(PeerGroupID pgID) {
    return IDFactory.newPipeID(pgID);
}

/**
 * Creates group encoded random PeerID.
 *
 * @param pgID the group ID encoding
 * @return The PeerID value
 */
public static PeerID createNewPeerID(PeerGroupID pgID) {
    return IDFactory.newPeerID(pgID);
}

/**
 * Given a peer name generates a Peer ID who's value is chosen based upon that name.
 *
 * @param peerName instance name
 * @param pgID     the group ID encoding
 * @return The PeerID value
 */
public static PeerID createPeerID(PeerGroupID pgID, String peerName) {
    String seed = peerName + SEED;
    return IDFactory.newPeerID(pgID, hash(seed.toLowerCase()));
}

/**
 * Creates group encoded random PeerGroupID.
 *
 * @param pgID the group ID encoding
 * @return The PeerGroupID value
 */
public static PeerGroupID createNewPeerGroupID(PeerGroupID pgID) {
    return IDFactory.newPeerGroupID(pgID);
}

/**
 * Given a group name generates a Peer Group ID who's value is chosen based upon that name.
 *
 * @param groupName group name encoding value
 * @return The PeerGroupID value
 */
public static PeerGroupID createPeerGroupID(final String groupName) {
    // Use lower case to avoid any locale conversion inconsistencies
    return IDFactory.newPeerGroupID(PeerGroupID.defaultNetPeerGroupID, hash(SEED + groupName.toLowerCase()));
}

/**
 * Contructs and returns an string encoded Infrastructure PeerGroupID.
 *
 * @param groupName the string encoding
 * @return The infraPeerGroupID PeerGroupID
 */
public static PeerGroupID createInfraPeerGroupID(String groupName) {
    return createPeerGroupID(groupName);
}

/**
 * Main method
 *
 * @param args command line arguments.  None defined
 */
public static void main(String args[]) {
    PeerGroupID infra = createInfraPeerGroupID("WorkGroupSoftware");
    PeerID peerID = createPeerID(infra, "peer");
    PipeID pipeID = createPipeID(PeerGroupID.defaultNetPeerGroupID, "pipe");

    System.out.println(MessageFormat.format("\n\nAn infrastucture PeerGroupID: {0}", infra.toString()));
    System.out.println(MessageFormat.format("PeerID with the above infra ID encoding: {0}", peerID.toString()));
    System.out.println(MessageFormat.format("PipeID with the default defaultNetPeerGroupID encoding: {0}", pipeID.toString()));

    peerID = createNewPeerID(PeerGroupID.defaultNetPeerGroupID);
    pipeID = createNewPipeID(PeerGroupID.defaultNetPeerGroupID);
    PeerGroupID pgid = createNewPeerGroupID(PeerGroupID.defaultNetPeerGroupID);

    System.out.println(MessageFormat.format("\n\nNew PeerID created : {0}", peerID.toString()));
    System.out.println(MessageFormat.format("New PipeID created : {0}", pipeID.toString()));
    System.out.println(MessageFormat.format("New PeerGroupID created : {0}", pgid.toString()));
}

}

[/code]

Então eu pego esse código gerado e coloco no stringID e nada de funcionar.