📄 route.java
字号:
/* * 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 materials 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 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. * ==================================================================== * * 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: route.java,v 1.9 2005/11/12 00:15:19 bondolo Exp $ */package net.jxta.impl.shell.bin.route;import java.net.URI;import java.util.Enumeration;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Vector;import java.io.IOException;import java.net.URISyntaxException;import net.jxta.discovery.DiscoveryService;import net.jxta.endpoint.EndpointService;import net.jxta.id.ID;import net.jxta.id.IDFactory;import net.jxta.peer.PeerID;import net.jxta.peergroup.PeerGroupID;import net.jxta.protocol.RouteAdvertisement;import net.jxta.protocol.PeerAdvertisement;import net.jxta.protocol.PeerGroupAdvertisement;import net.jxta.impl.endpoint.router.EndpointRouter;import net.jxta.impl.endpoint.router.RouteControl;import net.jxta.impl.shell.ShellApp;import net.jxta.impl.shell.ShellEnv;import net.jxta.impl.shell.ShellObject;/** * route command list the current routes available */public class route extends ShellApp { /** * "Enumeration" of operations **/ private static class RouterOperation { private final static RouterOperation ROUTER_STATUS = new RouterOperation() { public String toString() { return "ROUTER_STATUS"; } }; private final static RouterOperation GET_ALL_ROUTES_INFO = new RouterOperation() { public String toString() { return "GET_ALL_ROUTES_INFO"; } }; private final static RouterOperation GET_ROUTE_INFO = new RouterOperation() { public String toString() { return "GET_ROUTE_INFO"; } }; private final static RouterOperation ADD_ROUTE = new RouterOperation() { public String toString() { return "ADD_ROUTE"; } }; private final static RouterOperation DELETE_ROUTE = new RouterOperation() { public String toString() { return "DELETE_ROUTE"; } }; private final static RouterOperation ENABLE_ROUTE_CM = new RouterOperation() { public String toString() { return "ENABLE_ROUTE_CM"; } }; private final static RouterOperation DISABLE_ROUTE_CM = new RouterOperation() { public String toString() { return "DISABLE_ROUTE_CM"; } }; private final static RouterOperation ENABLE_ROUTE_RESOLVER = new RouterOperation() { public String toString() { return "ENABLE_ROUTE_RESOLVER"; } }; private final static RouterOperation DISABLE_ROUTE_RESOLVER = new RouterOperation() { public String toString() { return "DISABLE_ROUTE_RESOLVER"; } }; private final static RouterOperation GET_MY_LOCAL_ROUTE = new RouterOperation() { public String toString() { return "GET_MY_LOCAL_ROUTE"; } }; /** * Only our statics can access the constructor. **/ private RouterOperation() {} } DiscoveryService discovery; ShellEnv myEnv; Map names = new HashMap(); public int startApp(String[] args) { int i = 0; RouterOperation op = RouterOperation.GET_ALL_ROUTES_INFO; ShellObject obj = null; RouteAdvertisement routeAdv = null; PeerID pId = null; int ret = 0; discovery = getGroup().getDiscoveryService(); myEnv = getEnv(); if (args != null) { for (i=0; i < args.length; ++i) { if (args[i].equals("status")) { // router status // no params if (args.length != 1) { return syntaxError(); } op = RouterOperation.ROUTER_STATUS; break; } else if (args[i].equals("enableCM")) { // router status // no params if (args.length != 1) { return syntaxError(); } op = RouterOperation.ENABLE_ROUTE_CM; break; } else if (args[i].equals("disableCM")) { // router status // no params if (args.length != 1) { return syntaxError(); } op = RouterOperation.DISABLE_ROUTE_CM; break; } else if (args[i].equals("enableResolver")) { // router status // no params if (args.length != 1) { return syntaxError(); } op = RouterOperation.ENABLE_ROUTE_RESOLVER; break; } else if (args[i].equals("disableResolver")) { // router status // no params if (args.length != 1) { return syntaxError(); } op = RouterOperation.DISABLE_ROUTE_RESOLVER; break; } else if (args[i].equals("delete")) { // delete a route // need a PeerID :-) if (args.length != 2) { return syntaxError(); } op = RouterOperation.DELETE_ROUTE; // obtain the PeerID pId = convertPeerID(args[i+1]); if (pId == null) { consoleMessage("Error - Invalid PeerID argument"); return ShellApp.appParamError; } break; } else if (args[i].equals("add")) { // add a route // need a PeerID :-) if (args.length != 2) { return syntaxError(); } op = RouterOperation.ADD_ROUTE; // obtain the RouteAdv to add the route try { obj = myEnv.get(args[i+1]); if (obj == null) { consoleMessage("Error - Invalid RouteAdv argument"); return ShellApp.appParamError; } routeAdv = (RouteAdvertisement) obj.getObject(); } catch (ClassCastException ex) { consoleMessage("Error - Invalid RouteAdv type argument"); return ShellApp.appParamError; } if (routeAdv == null) { consoleMessage("Error - Invalid RouteAdv argument"); return ShellApp.appParamError; } break; } else if (args[i].equals("info")) { // get info for a route // need a PeerID :-) if (args.length != 2) { return syntaxError(); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -