亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? grouphelper.java

?? CoolFace是基于jxta的P2P系統(tǒng)
?? JAVA
?? 第 1 頁 / 共 2 頁
字號(hào):
package com.cn.darkblue.helper;

import java.io.IOException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.net.URI;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Vector;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.cn.darkblue.listener.BaseCommListener;
import com.cn.darkblue.listener.GroupBaseCommListener;
import com.cn.darkblue.util.CFDefData;
import com.cn.darkblue.util.CFResource;
import com.cn.darkblue.util.CFUtil;

import net.jxta.credential.AuthenticationCredential;
import net.jxta.document.Element;
import net.jxta.discovery.DiscoveryService;
import net.jxta.document.AdvertisementFactory;
import net.jxta.document.Document;
import net.jxta.document.MimeMediaType;
import net.jxta.document.StructuredDocument;
import net.jxta.document.StructuredDocumentFactory;
import net.jxta.document.StructuredTextDocument;
import net.jxta.document.TextElement;
import net.jxta.document.XMLDocument;
import net.jxta.exception.PeerGroupException;
import net.jxta.id.ID;
import net.jxta.id.IDFactory;
import net.jxta.impl.endpoint.mcast.McastTransport;
import net.jxta.impl.id.UUID.ModuleSpecID;
import net.jxta.impl.loader.RefJxtaLoader;
import net.jxta.impl.membership.passwd.PasswdMembershipService;
import net.jxta.impl.peergroup.StdPeerGroupParamAdv;
import net.jxta.membership.Authenticator;
import net.jxta.membership.MembershipService;
import net.jxta.peergroup.NetPeerGroupFactory;
import net.jxta.peergroup.PeerGroup;
import net.jxta.peergroup.PeerGroupID;
import net.jxta.pipe.InputPipe;
import net.jxta.pipe.OutputPipe;
import net.jxta.pipe.PipeID;
import net.jxta.pipe.PipeService;
import net.jxta.platform.ModuleClassID;
import net.jxta.platform.NetworkConfigurator;
import net.jxta.protocol.ModuleImplAdvertisement;
import net.jxta.protocol.PeerAdvertisement;
import net.jxta.protocol.PeerGroupAdvertisement;
import net.jxta.protocol.PipeAdvertisement;

public class GroupHelper {
	private static final Log log = LogFactory.getLog(GroupHelper.class);
    public static final String PIPE_ID_STR = "BASE_PIPE_ID";
    public static final String PIPE_NAME_STR = "BASE_PIPE_NAME";
    public static final String PIPE_TYPE_STR = "BASE_PIPE_TYPE";
    
    public static final String PIPE_IN_KEY = "BASE_IN_KEY";
    public static final String PIPE_OUT_KEY = "BASE_OUT_KEY";
    /*
    public static PeerGroup lunchNewPeerGroup(PeerGroup wpg,PeerGroupID domainID, String domainName) throws PeerGroupException {
        assert wpg.getPeerGroupID().equals(PeerGroupID.worldPeerGroupID);

        ModuleImplAdvertisement npgImplAdv;
        try {
            npgImplAdv = wpg.getAllPurposePeerGroupImplAdvertisement();
            System.out.println("npgImplAdv \n"+npgImplAdv.getDocument(MimeMediaType.XMLUTF8));
            npgImplAdv.setModuleSpecID(PeerGroup.allPurposePeerGroupSpecID);

            StdPeerGroupParamAdv params = new StdPeerGroupParamAdv(npgImplAdv.getParam());

            params.addProto(McastTransport.MCAST_TRANSPORT_CLASSID, McastTransport.MCAST_TRANSPORT_SPECID);

            npgImplAdv.setParam((XMLDocument) params.getDocument(MimeMediaType.XMLUTF8));
            
           
           // npgImplAdv.putServiceParam(PeerGroup.pipeClassID,
		   // 		CreatBasePipe(domainID,domainName+CFDefData.COMBO_SPSTR+"PIPE",PipeService.PropagateType));
           
        } catch (Exception failed) {
            throw new PeerGroupException("Could not construct domain ModuleImplAdvertisement", failed);
        }

        // Configure the domain

        NetworkConfigurator domainConfig = NetworkConfigurator.newAdHocConfiguration(wpg.getStoreHome());
        //NetworkConfigurator.n

        //PeerGroupID domainID = tutorial.id.IDTutorial.createPeerGroupID(domainName);
        domainConfig.setInfrastructureID(domainID);
        domainConfig.setName(wpg.getPeerName());
        domainConfig.setPeerID(wpg.getPeerID());
        domainConfig.setUseMulticast(true);
        int domainMulticastPort = 1025 + (domainName.hashCode() % 60000);
        domainConfig.setMulticastPort(domainMulticastPort);

        // Instantiate the domain net peer group

        NetPeerGroupFactory npgf1 = new NetPeerGroupFactory(wpg, domainConfig.getPlatformConfig(), npgImplAdv);
        PeerGroup domain = npgf1.getInterface();
        System.out.println("Peer Group : " + domain + " started!");

        return domain;
    }*/
    
    
	// ??????
	public PeerGroup createPeerGroup(PeerGroup rootPeerGroup,
			PeerGroupID newPeerGroupID, String groupName, String login,
			String passwd,String description) {
		// create the Peer Group by doing the following:
		// - Create a Peer Group Module Implementation Advertisement and publish
		// it
		// - Create a Peer Group Adv and publish it
		// - Create a Peer Group from the Peer Group Adv and return this object
		PeerGroup satellaPeerGroup = null;
		PeerGroupAdvertisement satellaPeerGroupAdvertisement;
		// Create the PeerGroup Module Implementation Adv
		ModuleImplAdvertisement passwdMembershipModuleImplAdv;
		passwdMembershipModuleImplAdv = this
				.createPasswdMembershipPeerGroupModuleImplAdv(rootPeerGroup);
		// Publish it in the parent peer group
		DiscoveryService rootPeerGroupDiscoveryService = rootPeerGroup
				.getDiscoveryService();
		try {
			rootPeerGroupDiscoveryService.publish(
					passwdMembershipModuleImplAdv, PeerGroup.DEFAULT_LIFETIME,
					PeerGroup.DEFAULT_EXPIRATION);
			rootPeerGroupDiscoveryService
					.remotePublish(passwdMembershipModuleImplAdv,
							PeerGroup.DEFAULT_EXPIRATION);
		} catch (java.io.IOException e) {
			log.error("Can't Publish passwdMembershipModuleImplAdv");
		}
		
		//PeerAdvertisement pa = null;
		
		// Now, Create the Peer Group Advertisement
		satellaPeerGroupAdvertisement = this.createPeerGroupAdvertisement(
				//passwdMembershipModuleImplAdv, 
				
				newPeerGroupID, groupName,
				login, passwd,description);
		
		// Publish it in the parent peer group
		try {
			rootPeerGroupDiscoveryService.publish(
					satellaPeerGroupAdvertisement, PeerGroup.DEFAULT_LIFETIME,
					PeerGroup.DEFAULT_EXPIRATION);
			rootPeerGroupDiscoveryService.remotePublish(
					satellaPeerGroupAdvertisement,

					PeerGroup.DEFAULT_EXPIRATION);
		} catch (java.io.IOException e) {
			log.error("Can't Publish satellaPeerGroupAdvertisement");
		}
		// Finally Create the Peer Group
		if (satellaPeerGroupAdvertisement == null) {
			log.error("satellaPeerGroupAdvertisement is null");
		}
		try {
			//satellaPeerGroupAdvertisement.se
			satellaPeerGroup = rootPeerGroup
					.newGroup(satellaPeerGroupAdvertisement);
		} catch (net.jxta.exception.PeerGroupException e) {
			log.error("Can't create Satella Peer Group from Advertisement");
			return null;
		}
		
		IPGResource pgres = new PGResource();
		CFResource.getInstance().getJoinPGMap().put(satellaPeerGroup, pgres);
		
		initConPipe(satellaPeerGroup);//初始化基本通訊
		return satellaPeerGroup;
	}

	public PeerGroup createPeerGroup(PeerGroup rootPeerGroup, String groupName,
			String login, String passwd,String description) {

		PeerGroupID netPeerGroupId = IDFactory.newPeerGroupID();
		return createPeerGroup(rootPeerGroup, netPeerGroupId, groupName, login,
				passwd,description);
	}
	
	public PeerGroup createPeerGroup(PeerGroup rootPeerGroup,String id, String groupName,
           String login, String passwd ,String description){
		PeerGroupID pgId = PeerGroupID.create(URI.create(id));
		return createPeerGroup(rootPeerGroup, pgId, groupName, login,
				passwd,description);
		
	}

	// ????????
	private PeerGroupAdvertisement createPeerGroupAdvertisement(
			//ModuleImplAdvertisement passwdMembershipModuleImplAdv,
			PeerGroupID newPeerGroupID, String groupName, String login,
			String passwd,String description) {
		// Create a PeerGroupAdvertisement for the peer group
		PeerGroupAdvertisement satellaPeerGroupAdvertisement = (PeerGroupAdvertisement) AdvertisementFactory
				.newAdvertisement(PeerGroupAdvertisement.getAdvertisementType());
		
		
		// Instead of creating a new group ID each time, by using the
		// line below
		// satellaPeerGroupAdvertisement.setPeerGroupID
		// (IDFactory.newPeerGroupID());
		// I use a fixed ID so that each time I start PrivatePeerGroup,
		// it creates the same Group
		satellaPeerGroupAdvertisement.setPeerGroupID(newPeerGroupID);
		
//		satellaPeerGroupAdvertisement
//				.setModuleSpecID(passwdMembershipModuleImplAdv
//						.getModuleSpecID());
		
		satellaPeerGroupAdvertisement
		.setModuleSpecID(PeerGroup.allPurposePeerGroupSpecID);
		
		satellaPeerGroupAdvertisement.setName(groupName);
		satellaPeerGroupAdvertisement
				.setDescription(description);
		// Now create the Structured Document Containing the login and
		// passwd informations. Login and passwd are put into the Param
		// section of the peer Group
		if (login != null) {
			
			StructuredTextDocument loginAndPasswd = (StructuredTextDocument) StructuredDocumentFactory
					.newStructuredDocument(new MimeMediaType("text/xml"),
							"Parm");
			String loginAndPasswdString = login + ":"
					+ PasswdMembershipService.makePsswd(passwd) + ":";
			TextElement loginElement = loginAndPasswd.createElement("login",
					loginAndPasswdString);
			loginAndPasswd.appendChild(loginElement);
			
			// All Right, now that loginAndPasswdElement
			// (The strucuted document
			// that is the Param Element for The PeerGroup Adv
			// is done, include it in the Peer Group Advertisement
			
			satellaPeerGroupAdvertisement.putServiceParam(
					PeerGroup.membershipClassID, loginAndPasswd);
			
		    satellaPeerGroupAdvertisement.putServiceParam(PeerGroup.pipeClassID,
		    		CreatBasePipe(newPeerGroupID,groupName+CFDefData.COMBO_SPSTR+"PIPE",PipeService.PropagateType));
		}
		return satellaPeerGroupAdvertisement;
	}
	//加進(jìn)基礎(chǔ)的通信廣告
	private Element CreatBasePipe(PeerGroupID pgId,String name,String type){

	    StructuredTextDocument basePipe = (StructuredTextDocument) StructuredDocumentFactory
		.newStructuredDocument(new MimeMediaType("text/xml"),
				"Parm");
	    
	    PipeID pipeID = null;

        try {
            pipeID = (PipeID) IDFactory.newPipeID(pgId);
        } catch (Exception use) {
            use.printStackTrace();
        }
        
	    TextElement IdElement = basePipe.createElement(PIPE_ID_STR,pipeID.toString());
	    TextElement NameElement = basePipe.createElement(PIPE_NAME_STR,name);
	    TextElement TypeElement = basePipe.createElement(PIPE_TYPE_STR,type);
		basePipe.appendChild(IdElement);
		basePipe.appendChild(NameElement);
		basePipe.appendChild(TypeElement);

		return basePipe;
	}

	// ???????????????????? 
	private ModuleImplAdvertisement createPasswdMembershipPeerGroupModuleImplAdv(
			PeerGroup rootPeerGroup) {
		// Create a ModuleImpl Advertisement for the Passwd
		// Membership Service Take a allPurposePeerGroupImplAdv
		// ModuleImplAdvertisement parameter to
		// Clone some of its fields. It is easier than to recreate
		// everything from scratch
		// Try to locate where the PasswdMembership is within this
		// ModuleImplAdvertisement.
		// For a PeerGroup Module Impl, the list of the services
		// (including Membership) are located in the Param section
		ModuleImplAdvertisement allPurposePeerGroupImplAdv = null;
		try {
			allPurposePeerGroupImplAdv = rootPeerGroup
					.getAllPurposePeerGroupImplAdvertisement();
		} catch (java.lang.Exception e) {
			log.error("Can't Execute: getAllPurposePeerGroupImplAdvertisement();");
		}
		ModuleImplAdvertisement passwdMembershipPeerGroupModuleImplAdv = allPurposePeerGroupImplAdv;
		ModuleImplAdvertisement passwdMembershipServiceModuleImplAdv = null;
		StdPeerGroupParamAdv passwdMembershipPeerGroupParamAdv = null;
		try {
			passwdMembershipPeerGroupParamAdv = new StdPeerGroupParamAdv(
					allPurposePeerGroupImplAdv.getParam());
		} catch (Exception e) {
			log.error("Can't execute: StdPeerGroupParamAdv passwdMembershipPeerGroupParamAdv = new StdPeerGroupParamAdv (allPurposePeerGroupImplAdv.getParam());");
		}

		Hashtable allPurposePeerGroupServicesHashtable = new Hashtable();

		Map<ModuleClassID, Object> map = passwdMembershipPeerGroupParamAdv
				.getServices();
		Set<ModuleClassID> set = map.keySet();
		Iterator iter = set.iterator();
		Object obj;
		while (iter.hasNext()) {
			obj = iter.next();
			allPurposePeerGroupServicesHashtable.put(obj, map.get(obj));
		}

		Enumeration allPurposePeerGroupServicesEnumeration = allPurposePeerGroupServicesHashtable
				.keys();
		boolean membershipServiceFound = false;
		while ((!membershipServiceFound)
				&& (allPurposePeerGroupServicesEnumeration.hasMoreElements())) {
			Object allPurposePeerGroupServiceID = allPurposePeerGroupServicesEnumeration
					.nextElement();
			if (allPurposePeerGroupServiceID
					.equals(PeerGroup.membershipClassID)) {
				// allPurposePeerGroupMemershipServiceModuleImplAdv is
				// the all Purpose Mermbership Service for the all
				// purpose Peer Group Module Impl adv
				ModuleImplAdvertisement allPurposePeerGroupMemershipServiceModuleImplAdv = (ModuleImplAdvertisement) allPurposePeerGroupServicesHashtable
						.get(allPurposePeerGroupServiceID);
				// Create the passwdMembershipServiceModuleImplAdv
				passwdMembershipServiceModuleImplAdv = this
						.createPasswdMembershipServiceModuleImplAdv(allPurposePeerGroupMemershipServiceModuleImplAdv);
				// Remove the All purpose Membership Service implementation
				allPurposePeerGroupServicesHashtable
						.remove(allPurposePeerGroupServiceID);
				// And Replace it by the Passwd Membership Service
				// Implementation
				allPurposePeerGroupServicesHashtable.put(
						PeerGroup.membershipClassID,
						passwdMembershipServiceModuleImplAdv);
				membershipServiceFound = true;
				// Now the Service Advertisements are complete. Let's
				// update the passwdMembershipPeerGroupModuleImplAdv by
				// Updating its param
				passwdMembershipPeerGroupModuleImplAdv
						.setParam((Element) passwdMembershipPeerGroupParamAdv
								.getDocument(MimeMediaType.XMLUTF8));
				// Update its Spec ID This comes from the

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品久久久久久久久老牛影院| 在线观看成人小视频| 欧美一区二区三区人| 久久国产日韩欧美精品| 91精品国产aⅴ一区二区| 国产91在线看| 性做久久久久久免费观看欧美| 欧美日韩国产系列| aaa欧美色吧激情视频| 亚洲一区二区三区四区五区黄| 欧美一区二区三区在线观看视频| 男人的天堂亚洲一区| 国产三级精品三级| 成人国产精品免费观看| 亚洲综合在线第一页| 久久久久久9999| 在线视频你懂得一区二区三区| 国产一区二区看久久| 一区二区激情视频| 精品对白一区国产伦| 91香蕉视频在线| 韩国在线一区二区| 亚洲免费av网站| 日本一区二区综合亚洲| 精品国产乱码久久久久久图片| 在线视频综合导航| 成人高清免费观看| 久久国产精品99精品国产| 亚洲第一在线综合网站| 国产精品久久久久久久久免费相片 | 91蜜桃网址入口| 国产99久久久国产精品免费看| 婷婷成人综合网| 中文一区二区在线观看| 久久午夜免费电影| 久久午夜羞羞影院免费观看| 久久亚洲精品国产精品紫薇| 日韩欧美亚洲一区二区| 91麻豆精品久久久久蜜臀| 欧美日免费三级在线| 欧美视频日韩视频在线观看| 欧美性大战久久| 欧美日韩亚洲综合一区二区三区| 制服丝袜成人动漫| 精品成人免费观看| 国产亚洲成aⅴ人片在线观看| 久久午夜色播影院免费高清| 国产精品美女久久久久aⅴ国产馆| 精品成a人在线观看| 国产精品久久久久精k8| 久久精品水蜜桃av综合天堂| 亚洲欧洲精品天堂一级| 看国产成人h片视频| 91蜜桃免费观看视频| 欧美精品色一区二区三区| 精品国产伦理网| 日韩精品乱码免费| 91福利资源站| 国产欧美综合在线观看第十页| 婷婷开心激情综合| 成人短视频下载| 26uuu亚洲综合色欧美| 亚洲国产成人精品视频| 国产精品一区二区x88av| 欧美日韩国产一级| 亚洲午夜激情av| 不卡的av电影| 亚洲视频一区二区在线观看| 国产91清纯白嫩初高中在线观看| 色一情一乱一乱一91av| 国产精品美女久久久久久久久久久| 天堂蜜桃一区二区三区| 91香蕉视频黄| 亚洲一区二区三区激情| 在线观看视频一区二区欧美日韩| 中文字幕二三区不卡| 国产精品456| 中文在线资源观看网站视频免费不卡| 黄色日韩三级电影| 久久久久久久久久久久久久久99 | 欧美国产日韩精品免费观看| 久久99九九99精品| 精品国产123| 成人小视频免费观看| 国产精品欧美久久久久无广告| 懂色一区二区三区免费观看 | 国产精品一区专区| 中文一区二区在线观看| av在线不卡电影| 亚洲第一久久影院| 日韩精品资源二区在线| 国产精品自拍av| 亚洲三级免费观看| 欧美日韩中文另类| 韩国一区二区三区| 亚洲青青青在线视频| 精品视频999| 久久不见久久见中文字幕免费| 久久久久久影视| 欧美综合久久久| 久久精品国产99久久6| 亚洲视频每日更新| 亚洲精品一区二区三区四区高清| 色综合久久中文字幕综合网 | 久久精品久久久精品美女| 亚洲人成伊人成综合网小说| 久久这里只有精品首页| 波多野洁衣一区| 韩国精品主播一区二区在线观看| 一区二区三区免费网站| 久久久一区二区三区| 91成人免费在线| 91网站黄www| 国产在线观看一区二区| 夜夜嗨av一区二区三区中文字幕 | 欧美美女一区二区在线观看| 99久久久久久| 丁香天五香天堂综合| 热久久久久久久| 日日嗨av一区二区三区四区| 最新中文字幕一区二区三区| www欧美成人18+| 欧美疯狂性受xxxxx喷水图片| 懂色一区二区三区免费观看| 国产麻豆精品95视频| 日韩主播视频在线| 日日欢夜夜爽一区| 丝瓜av网站精品一区二区| 亚洲欧洲av另类| 国产精品久久三区| 亚洲欧洲日韩女同| 亚洲素人一区二区| 亚洲一区二区三区三| 亚洲成人综合在线| 日韩国产在线观看一区| 日韩av电影天堂| 男男成人高潮片免费网站| 久久精品国产免费| 国产伦精品一区二区三区视频青涩| 国产九色sp调教91| 成人福利电影精品一区二区在线观看| 99国产精品99久久久久久| 欧美日韩精品综合在线| 日韩午夜激情电影| 欧美激情一区二区三区在线| 国产精品久久久99| 人人爽香蕉精品| 色综合久久久久久久| 一二三区精品视频| 国产精品一区在线| 国产大片一区二区| 欧美色区777第一页| 久久婷婷国产综合精品青草| 成人欧美一区二区三区在线播放| 国产精品电影一区二区三区| 亚洲成人激情社区| 亚洲一区二区三区影院| 久久99精品久久久久婷婷| 不卡电影一区二区三区| 日韩欧美视频在线| 亚洲精品一二三四区| 国产一区二区免费看| 精品视频在线免费看| 国产精品国产三级国产专播品爱网| 亚洲一区二区三区四区在线| 夫妻av一区二区| 久久久99精品免费观看| 日韩精品久久久久久| 欧洲精品视频在线观看| 成人欧美一区二区三区白人 | 精品粉嫩超白一线天av| 久久爱另类一区二区小说| 在线不卡a资源高清| 日韩久久免费av| 亚洲图片有声小说| 色又黄又爽网站www久久| 国产三级一区二区| 国产伦理精品不卡| 精品久久久久av影院| 久久99精品国产麻豆婷婷| 日韩一区和二区| 久久国内精品自在自线400部| 欧美精品日韩精品| 裸体一区二区三区| 26uuuu精品一区二区| 国内成+人亚洲+欧美+综合在线| www激情久久| 大桥未久av一区二区三区中文| 久久精品亚洲乱码伦伦中文| 另类调教123区 | 丝袜诱惑制服诱惑色一区在线观看 | 日韩欧美在线观看一区二区三区| 亚洲综合色婷婷| 久久蜜桃香蕉精品一区二区三区| 成人午夜免费电影| 亚洲小少妇裸体bbw| 久久久综合视频| 色吧成人激情小说| 精品亚洲成a人在线观看| 中文字幕电影一区|