⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jpda.java

📁 Java p2p程序设计2002年版
💻 JAVA
字号:
/* * ResolverTest.java * */package com.sams.jxta.pda;import com.sams.jxta.groups.*;import com.sams.jxta.xcal.*;import com.sams.jxta.vcard.*;import java.util.Date;import java.util.Hashtable;import net.jxta.resolver.*;import java.io.StringWriter;import java.io.InputStream;import java.io.IOException;import java.io.ByteArrayInputStream;import java.util.Enumeration;import java.lang.reflect.InvocationTargetException;import net.jxta.exception.*;import net.jxta.protocol.*;import java.text.SimpleDateFormat;import net.jxta.peergroup.PeerGroup;import net.jxta.peergroup.PeerGroupFactory;import net.jxta.exception.PeerGroupException;import net.jxta.document.Advertisement;import net.jxta.document.AdvertisementFactory;import net.jxta.document.MimeMediaType;import net.jxta.discovery.DiscoveryService;import net.jxta.discovery.DiscoveryListener;import net.jxta.discovery.DiscoveryEvent;import net.jxta.protocol.DiscoveryResponseMsg;import net.jxta.protocol.PeerGroupAdvertisement;import net.jxta.impl.peergroup.Platform;import net.jxta.impl.peergroup.GenericPeerGroup;import net.jxta.document.Advertisement;import net.jxta.resolver.QueryHandler;import net.jxta.document.*;import net.jxta.protocol.*;import net.jxta.impl.protocol.*;import net.jxta.impl.resolver.*;import javax.swing.DefaultListModel;/** *  This is a quick and simple example to primarly illustrate how to start project jxta *  from an application, and how to create a DiscoveryListener interface *  This is meant as an on going effort, if you can add to the *  example to help others understand, and integrate project jxta, *  feel free to do so, please refer to the "todo" section in README . */public class JPDA{        public static final String JPDA_ROOT_GROUP = "JPDA_ROOT_GROUP";    public static final net.jxta.peergroup.PeerGroupID JPDA_ROOT_GROUP_ID = new net.jxta.impl.id.UUID.PeerGroupID(new  net.jxta.impl.id.UUID.UUID( 0xAAA122616461AAAAL, 0xAAA1246150325033L ));        // classInit supplies these        PeerGroup netPeerGroup  = null;    /**     * root world peer group for this application     **/    protected PeerGroup rootJPDA = null;    protected SimpleDateFormat format   = new SimpleDateFormat("MM, dd, yyyy hh:mm:ss.S");    protected AssistantView assistant;        static public void main(String args[]) {                // Initialize        System.out.println("Initializing");        JPDA myapp  = new JPDA();                        System.out.println("Starting JXTA");        myapp.startJxta();                System.out.println("Start the application");        myapp.startApplication(args);            }            public JPDA() {        // tests();            }    protected GroupManager groupManager;    protected PeerDiscoveryThread peerDiscoveryThread;    private void startJxta() {        try{            netPeerGroup = PeerGroupFactory.newNetPeerGroup();            GroupManager.setNetPeerGroup(netPeerGroup);            rootJPDA = netPeerGroup;                        PeerDiscoveryThread peerDiscoveryThread = new PeerDiscoveryThread(rootJPDA);            Thread discoThread = new Thread(peerDiscoveryThread);            discoThread.start();                        groupManager = new GroupManager(netPeerGroup);            rootJPDA = groupManager.addGroup(JPDA_ROOT_GROUP,"net.jxta.impl.membership.NullMembershipService","Root application group",null,true,com.sams.jxta.pda.JPDA.JPDA_ROOT_GROUP_ID);//>>>,JPDA_ROOT_GROUP_ID);                        // Three trials                        int count =0;            //NullCredential credential = new NullCredential( this, netPeerGroup, peer, "PDA-User" );            while(count<3 && (groupManager.joinGroup(rootJPDA,null,"NullAuthentication")==null)){                count++;            }            groupManager = new GroupManager(rootJPDA);                        peerDiscoveryThread = new PeerDiscoveryThread(rootJPDA);            discoThread = new Thread(peerDiscoveryThread);            discoThread.start();                        addNewGroup(rootJPDA);            assistant = new AssistantView(this);                    } catch (Exception e) {            // could not instanciate the group, print the stack and exit            System.out.println("fatal error : group creation failure");            e.printStackTrace();            System.exit(-1);        }            }    public void addNewGroup(PeerGroup joinedPeerGroup){        startServices(joinedPeerGroup);    }        public PeerGroup addGroup(String groupName, String groupDescription){                System.out.println("getName:"+rootJPDA.getPeerGroupName());        System.out.println("parent.getName:"+((GenericPeerGroup)rootJPDA).getParentGroup().getPeerGroupName());        System.out.println("parent.getName:"+((GenericPeerGroup)rootJPDA).getParentGroup().getParentGroup().getPeerGroupName());                groupName = JPDA_ROOT_GROUP+"-"+groupName;        GroupManager  groupManager = new GroupManager(rootJPDA);//netPeerGroup);//rootJPDA        return groupManager.addGroup(groupName,"net.jxta.impl.membership.NullMembershipService","JPDA:"+groupDescription,null,true,null);    }        public Object joinGroup(PeerGroup peerGroup){        int count =0;        Object credential=null;        while(count<3 && credential == null) {            try{            credential = groupManager.joinGroup(peerGroup,null,"NullAuthentication");            }catch(Exception gmae){                gmae.printStackTrace();            }            count++;        }        return credential;    }            // Start the application    public void startApplication(String args[]){        try{            PeerGroup group = netPeerGroup;// This needs to be a smaller group.        }catch(Exception e){            e.printStackTrace();        }        //startAddressBook();        //startCalendar();        assistant = new AssistantView(this);                assistant.setVisible(true);            }            /**     * Utility to convert a document to a string.     */    public static String serializeDoc(StructuredTextDocument doc) {        StringWriter out = new StringWriter();        try {            doc.sendToWriter(out);            return out.toString();        } catch (Exception e) {            e.printStackTrace();            return "";        }    }        public void tests(){        System.out.println("Start of XML test");        VCard vCard = new VCard();        vCard.setFirstName("foo first");        vCard.setLastName("foo last");        vCard.setEmail("foo@foo.com");        String xml = vCard.toXML();        vCard = new VCard();        vCard.processMessage(xml);                System.out.println( vCard.toXML());                        XCal xCal = new XCal();        xCal.setDtstart(new Date().toString());        xCal.setDtend(new Date().toString());        xCal.setSummary("Test date");        xCal.setOrganizer("turbogeek@cluck.com");        xml = xCal.toXML();                xCal = new XCal();        System.out.println( xml);        xCal.processMessage(xml);                System.out.println(xCal.toXML());                System.out.println("end of XML test");        //System.exit(0);    }        Hashtable addressBookService= new Hashtable();    Hashtable calendarService= new Hashtable();    Hashtable toDoService= new Hashtable();        public void  startServices(PeerGroup peerGroup){        startAddressBook(peerGroup);        startCalendar(peerGroup);        startToDo(peerGroup);    }    public void startAddressBook(PeerGroup peerGroup){        addressBookService.put(peerGroup.getPeerGroupID(),new AddressBookService(peerGroup));    }    public void startCalendar(PeerGroup peerGroup){        calendarService.put(peerGroup.getPeerGroupID(), new CalendarService(peerGroup));    }    public void startToDo(PeerGroup peerGroup){        toDoService.put(peerGroup.getPeerGroupID(), new ToDoListService(peerGroup));    }        public void addEntry(PeerGroup peerGroup,VCard vCard){                System.out.println("+++ "+peerGroup.getPeerGroupID()+"+++ ");        AddressBookService addressBookServices = (AddressBookService)addressBookService.get(peerGroup.getPeerGroupID());        addressBookServices.addEntry(vCard);        System.out.println("+++ "+addressBookServices.pushHandlerName+"+++ ");            }    public void updateAddress(PeerGroup peerGroup,VCard vCard){        ((AddressBookService)addressBookService.get(peerGroup.getPeerGroupID())).updateEntry(vCard);    }        public void addEvent(PeerGroup peerGroup,XCal xCal){        ((CalendarService)calendarService.get(peerGroup.getPeerGroupID())).addEntry(xCal);    }    public void updateEvent(PeerGroup peerGroup,XCal xCal){        ((CalendarService)calendarService.get(peerGroup.getPeerGroupID())).updateEntry(xCal);    }        public void addToDo(PeerGroup peerGroup,VToDo vToDo){        ((ToDoListService)toDoService.get(peerGroup.getPeerGroupID())).addEntry( vToDo);    }    public void updateToDo(PeerGroup peerGroup,VToDo vToDo){        ((ToDoListService)toDoService.get(peerGroup.getPeerGroupID())).addEntry( vToDo);    }        public void addCalendarModel(DefaultListModel model){        ((CalendarService)calendarService.get(rootJPDA.getPeerGroupID())).addModel(model);    }    public void addToDoModel(DefaultListModel model){        ((ToDoListService)toDoService.get(rootJPDA.getPeerGroupID())).addModel(model);    }    public void addAddressModel(DefaultListModel model){        ((AddressBookService)addressBookService.get(rootJPDA.getPeerGroupID())).addModel(model);    }    public void synchronize(){        synchronizeCalendarService();        synchronizeToDoListService();        synchronizeAddressBookService();    }    public void synchronizeCalendarService(){        Enumeration enum = calendarService.elements();        while(enum.hasMoreElements()){            ((CalendarService)enum.nextElement()).synchronize();        }    }    public void synchronizeToDoListService(){        Enumeration enum = toDoService.elements();        while(enum.hasMoreElements()){            ((ToDoListService)enum.nextElement()).synchronize();        }    }    public void synchronizeAddressBookService(){        Enumeration enum = addressBookService.elements();        while(enum.hasMoreElements()){            ((AddressBookService)enum.nextElement()).synchronize();        }    }    /** Getter for property netPeerGroup.     * @return Value of property netPeerGroup.     */    public net.jxta.peergroup.PeerGroup getNetPeerGroup() {        return netPeerGroup;    }        /** Getter for property rootJPDA.     * @return Value of property rootJPDA.     */    public net.jxta.peergroup.PeerGroup getRootJPDA() {        return rootJPDA;    }     }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -