/*
* Copyright (c) 2001 Sun Microsystems, Inc. All rights
* reserved.
*
* 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.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materialsset provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Sun Microsystems, Inc. for Project JXTA."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. 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.
*
* 5. 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 THE APACHE SOFTWARE FOUNDATION 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.
* ====================================================================
*
* 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.
*
* $Id: Configurator.java,v 1.198 2005/08/31 19:45:41 gonzo Exp $
*/
package net.jxta.ext.config;
import net.jxta.ext.config.optimizers.RelayOptimizer;
import net.jxta.ext.http.Dispatcher;
import net.jxta.ext.http.Message;
import java.io.Externalizable;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.io.Reader;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.io.StreamTokenizer;
import java.io.StringReader;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.security.cert.Certificate;
import java.security.cert.X509Certificate;
import java.text.MessageFormat;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.NoSuchElementException;
import net.jxta.document.AdvertisementFactory;
import net.jxta.document.Attributable;
import net.jxta.document.Attribute;
import net.jxta.document.Element;
import net.jxta.document.MimeMediaType;
import net.jxta.document.StructuredDocument;
import net.jxta.document.StructuredDocumentFactory;
import net.jxta.document.StructuredDocumentUtils;
import net.jxta.document.StructuredTextDocument;
import net.jxta.document.TextElement;
import net.jxta.document.XMLDocument;
import net.jxta.exception.ConfiguratorException;
import net.jxta.id.ID;
import net.jxta.id.IDFactory;
import net.jxta.impl.endpoint.IPUtils;
import net.jxta.impl.membership.pse.PSEUtils;
import net.jxta.impl.peergroup.PlatformConfigurator;
import net.jxta.impl.protocol.HTTPAdv;
import net.jxta.impl.protocol.PlatformConfig;
import net.jxta.impl.protocol.PSEConfigAdv;
import net.jxta.impl.protocol.RdvConfigAdv;
import net.jxta.impl.protocol.RelayConfigAdv;
import net.jxta.impl.protocol.TCPAdv;
import net.jxta.protocol.ConfigParams;
import net.jxta.peer.PeerID;
import net.jxta.peergroup.PeerGroupFactory;
import net.jxta.protocol.TransportAdvertisement;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
/**
* A JXTA configurator.<br>
* <br>
* <code>Configurator<code> serves primarily as a JXTA property sheet and
* implements very little attribute association logic beyond that of what
* is required to perform integrity validation and address expansion. To
* the latter, All addresses are of the form URI. Addresses that do not
* specify a scheme will default accordingly. Further, <code>RendezVous</code>
* and <code>Relay</code> addresses that do not specify a host wil be replaced
* with the corresponding boostrap results. If a scheme is specified only
* bootstrap results with matching schemes will be maintained. All other
* addresses that do not specify a host will, in turn, be replaced with the
* local host. All fields have backing defaults enabling one to seed a
* configuration with a partial yet valid resource file.<br>
* <br>
* Configurator will parse an existing {@link Env#PLATFORM PlatformConfig} if
* one exists in the specified {@link Env#JXTA_HOME JXTA home} directory. If
* this is not the case, a {@link Env#PROFILE Configuration} file will be
* parsed it one such file exists. Lastly, if neither of the above are
* resolvable the {@link ResourceConfiguration.Profile#Default Default profile}
* will be used to seed the newly created instance.<br>
* <br>
* Resulting <code>PlatformConfig</code> instances can then be retrieved or
* persisted upon passing the integrity validation checks.
*
* @author james todd [gonzo at jxta dot org]
* @created November 13, 2003
*/
public class Configurator
implements Externalizable, PlatformConfigurator {
private final static String COLON = ":";
private final static String BRACKET_OPEN = "[";
private static final String BRACKET_CLOSE = "]";
private final static String EMPTY_STRING = "";
private final static int MILLISECONDS_PER_SECOND = 1000;
private final static char NULL_CHAR = '\0';
private final static long MAX_WAIT = 7 * 1000;
private final static Logger LOG = Logger.getLogger(Configurator.class.getName());
private URI home = Env.JXTA_HOME.toURI();
private String descriptor = Default.PEER_DESCRIPTOR;
private String peerName = null;
private String peerDescription = null;
private Trace trace = Trace.DEFAULT;
private PeerID peerId = null;
private boolean isSecurity = Default.SECURITY_IS_ENABLED;
private String principal = null;
private String password = null;
private URI rootCertificateAddress = null;
private PSEConfigAdv pse = null;
private URI peerProxy = null;
private URI rendezVousBootstrap = Default.RENDEZVOUS_BOOTSTRAP_ADDRESS;
private URI relaysBootstrap = Default.RELAYS_BOOTSTRAP_ADDRESS;
private boolean isRelaysDiscovery = Default.RELAYS_DISCOVERY_IS_ENABLED;
private URI reflectionBootstrap = Default.REFLECTION_BOOTSTRAP_ADDRESS;
private List transports = null;
// private List relays = null;
// private boolean isRelayEnabled = Default.RELAY_SERVICE_IS_ENABLED;
// private boolean isRelayIncomingEnabled = Default.RELAY_SERVICE_INCOMING_IS_ENABLED;
// private int maximum
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
jxta-src-2.3.5.zip_java p2p_jxta_jxta 2.5 (795个子文件)
junit-LICENSE.html 15KB
log4j-usage.html 7KB
jetty-LICENSE.html 7KB
package.html 4KB
package.html 3KB
package.html 2KB
package.html 1KB
package.html 1KB
overview.html 1KB
overview.html 1KB
package.html 940B
package.html 918B
package.html 850B
package.html 822B
package.html 730B
package.html 715B
package.html 671B
package.html 654B
package.html 615B
package.html 608B
package.html 605B
package.html 603B
package.html 591B
package.html 591B
package.html 553B
package.html 511B
package.html 509B
package.html 497B
package.html 477B
package.html 474B
package.html 470B
package.html 464B
package.html 460B
package.html 452B
package.html 447B
package.html 407B
package.html 399B
package.html 378B
package.html 375B
package.html 371B
package.html 358B
package.html 357B
package.html 342B
package.html 313B
package.html 289B
package.html 245B
package.html 233B
package.html 222B
package.html 174B
bcprov-jdk14.jar 891KB
org.mortbay.jetty.jar 566KB
log4j.jar 344KB
jaxen-core.jar 157KB
jdom.jar 143KB
junit.jar 118KB
javax.servlet.jar 74KB
swixml.jar 49KB
saxpath.jar 23KB
jaxen-jdom.jar 6KB
Configurator.java 133KB
EndpointRouter.java 109KB
PeerView.java 93KB
ConfigDialog.java 76KB
EndpointServiceImpl.java 69KB
RelayServer.java 61KB
RelayClient.java 60KB
LiteXMLElement.java 59KB
JxtaSocket.java 57KB
DiscoveryServiceImpl.java 56KB
GenericPeerGroup.java 55KB
RouteResolver.java 54KB
TcpTransport.java 53KB
Message.java 52KB
IDFactory.java 51KB
ResolverServiceImpl.java 50KB
Cm.java 44KB
ProxyService.java 44KB
PipeResolver.java 42KB
ConfiguratorListener.java 40KB
ReliableOutputStream.java 40KB
JxtaBiDiPipe.java 40KB
Paged.java 39KB
EdgePeerRdvService.java 39KB
BTree.java 38KB
PeerGroup.java 38KB
ReliableTest.java 37KB
TransportBindingMetric.java 37KB
RendezVousServiceImpl.java 36KB
HttpMessageServlet.java 36KB
RemoteMonitorPeerInfoHandler.java 36KB
StdPeerGroup.java 36KB
Messenger.java 36KB
Profile.java 35KB
JTlsOutputStream.java 35KB
PSEUtils.java 34KB
RelayConfigAdv.java 34KB
BlockingMessenger.java 33KB
Resource.java 33KB
HttpClientMessenger.java 33KB
QuotaIncomingMessageListener.java 32KB
共 795 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
四散
- 粉丝: 49
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于Python+FFmpeg的视频和音频的处理+剪辑+源码+开发文档+项目解析(高分优秀项目)
- 母亲节祝福html源码示例.pdf
- 基于51单片机DS1302实时时钟LCD1602显示
- (54节)视频号0粉起号课,逻辑梳理,技能提升,完整版-课程网盘链接提取码下载 .txt
- Mendix5-添加自定义逻辑
- 基于java的图片浏览小程序源码.zip
- 陈呵keyshot产品渲染第2期-课程网盘链接提取码下载 .txt
- 分层MPC控制器的实时车辆最优控制和避障Hierarchical MPC controller for real time ve
- 基于QT+C++实现微动背景,界面看似静态实则动态+源码
- 非线性弹簧质量系统的简单模型预测控制(MPC)Simple Model Predictive Control (MPC) for
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功