/* * Copyright (c) 2010 DawningStreams, 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 DawningStreams, Inc." * Alternately, this acknowledgment may appear in the software itself, if * and wherever such third-party acknowledgments normally appear. * * 4. The name "DawningStreams,Inc." must not be used to endorse or promote * products derived from this software without prior written permission. * For written permission, please contact DawningStreams,Inc. at * http://www.dawningstreams.com. * * 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 * DAWNINGSTREAMS, INC 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. * * DawningStreams is a registered trademark of DawningStreams, Inc. in the United * States and other countries. * */ package Examples.B_Exploring_Connectivity_Issues; import Examples.Z_Tools_And_Others.Tools; import java.io.File; import java.io.IOException; import java.net.URI; import net.jxta.document.AdvertisementFactory; import net.jxta.document.MimeMediaType; import net.jxta.document.StructuredDocumentFactory; import net.jxta.document.XMLDocument; import net.jxta.endpoint.EndpointAddress; import net.jxta.id.IDFactory; import net.jxta.peer.PeerID; import net.jxta.peergroup.PeerGroupID; import net.jxta.platform.NetworkConfigurator; import net.jxta.platform.NetworkManager; import net.jxta.protocol.AccessPointAdvertisement; import net.jxta.protocol.RouteAdvertisement; public class Creating_And_Setting_Seeds { public static final String Name = "Creating and setting seeds"; public static final File ConfigurationFile = new File("." + System.getProperty("file.separator") + Name); public static void main(String[] args) { try { // Creation of the network manager NetworkManager MyNetworkManager = new NetworkManager(NetworkManager.ConfigMode.EDGE, Name, ConfigurationFile.toURI()); // Retrieving the network configurator NetworkConfigurator MyNetworkConfigurator = MyNetworkManager.getConfigurator(); // Checking if RendezVous_Jack should be a seed MyNetworkConfigurator.clearRendezvousSeeds(); // Creating an endpoint seed and setting it URI TheSeed = URI.create("tcp://33.44.55.66:9202"); MyNetworkConfigurator.addSeedRendezvous(TheSeed); // Creating a document read by seeding URIs XMLDocument MyDoc = (XMLDocument) StructuredDocumentFactory.newStructuredDocument(MimeMediaType.XML_DEFAULTENCODING, "jxta:seeds"); MyDoc.addAttribute("ordered", "false"); MyDoc.addAttribute("xmlns:jxta", "http://www.jxta.org"); // First seed RouteAdvertisement MyRouteAdv = (RouteAdvertisement) AdvertisementFactory.newAdvertisement(RouteAdvertisement.getAdvertisementType()); PeerID MyRDV = IDFactory.newPeerID(PeerGroupID.defaultNetPeerGroupID, "My first RDV".getBytes()); AccessPointAdvertisement MyAPA = (AccessPointAdvertisement) AdvertisementFactory.newAdvertisement(AccessPointAdvertisement.getAdvertisementType()); MyAPA.addEndpointAddress(new EndpointAddress("tcp://18.22.1.69:3333")); MyRouteAdv.setDestPeerID(MyRDV); MyRouteAdv.setDest(MyAPA); XMLDocument MyRouteAdvDoc = (XMLDocument) MyRouteAdv.getDocument(MimeMediaType.XMLUTF8); Tools.copyElements(MyDoc, MyDoc.getRoot(), MyRouteAdvDoc.getRoot(), true, false); // Second seed RouteAdvertisement MyRouteAdv2 = (RouteAdvertisement) AdvertisementFactory.newAdvertisement(RouteAdvertisement.getAdvertisementType()); PeerID MyRDV2 = IDFactory.newPeerID(PeerGroupID.defaultNetPeerGroupID, "My second RDV".getBytes()); AccessPointAdvertisement MyAPA2 = (AccessPointAdvertisement) AdvertisementFactory.newAdvertisement(AccessPointAdvertisement.getAdvertisementType()); MyAPA2.addEndpointAddress(new EndpointAddress("tcp://171.17.22.4:2876")); MyRouteAdv2.setDestPeerID(MyRDV2); MyRouteAdv2.setDest(MyAPA2); XMLDocument MyRouteAdvDoc2 = (XMLDocument) MyRouteAdv2.getDocument(MimeMediaType.APPLICATION_XML_DEFAULTENCODING); Tools.copyElements(MyDoc, MyDoc.getRoot(), MyRouteAdvDoc2.getRoot(), true, false); // Third seed RouteAdvertisement MyRouteAdv3 = (RouteAdvertisement) AdvertisementFactory.newAdvertisement(RouteAdvertisement.getAdvertisementType()); PeerID MyRDV3 = IDFactory.newPeerID(PeerGroupID.defaultNetPeerGroupID, "My third RDV".getBytes()); AccessPointAdvertisement MyAPA3 = (AccessPointAdvertisement) AdvertisementFactory.newAdvertisement(AccessPointAdvertisement.getAdvertisementType()); MyAPA3.addEndpointAddress(new EndpointAddress("tcp://240.28.16.57:4210")); MyRouteAdv3.setDestPeerID(MyRDV3); MyRouteAdv3.setDest(MyAPA3); XMLDocument MyRouteAdvDoc3 = (XMLDocument) MyRouteAdv3.getDocument(MimeMediaType.XMLUTF8); Tools.copyElements(MyDoc, MyDoc.getRoot(), MyRouteAdvDoc3.getRoot(), true, false); // Printing the result MyDoc.sendToStream(System.out); } catch (IOException Ex) { // Raised when access to local file and directories caused an error Tools.PopErrorMessage(Name, Ex.toString()); } } }