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

📄 circulateaglet.java

📁 在IBM AGLET平台下可实现AGLET在不同主机间巡回的代码
💻 JAVA
字号:
package examples.itinerary;

import com.ibm.aglet.*;
import com.ibm.agletx.util.SeqItinerary;
import com.ibm.agletx.util.SeqPlanItinerary;
import java.awt.Component;
import java.awt.Window;
import java.io.PrintStream;
import java.net.URL;
import java.util.Enumeration;
import java.util.Vector;

// Referenced classes of package examples.itinerary:
//            CirculateFrame

public class CirculateAglet extends Aglet
{

    StringBuffer buffer;
    SeqPlanItinerary itinerary;
    Vector proxies;

    public CirculateAglet()
    {
    }

    public void getLocalInfo(Message message)
    {
        buffer.append("Username : " + getProperty("user.name"));
        buffer.append("\n");
        buffer.append("Home directory : " + getProperty("user.home"));
        buffer.append("\n");
        buffer.append("Currect working directory : " + getProperty("user.dir"));
        buffer.append("\n");
        buffer.append("Machine architecture : " + getProperty("os.arch"));
        buffer.append("\n");
        buffer.append("OS name : " + getProperty("os.name"));
        buffer.append("\n");
        buffer.append("OS version : " + getProperty("os.version"));
        buffer.append("\n");
        buffer.append("Java version : " + getProperty("java.version"));
        buffer.append("\n");
    }

    private String getProperty(String s)
    {
        return System.getProperty(s, "Unknown");
    }

    public void getProxies(Message message)
    {
        for(Enumeration enumeration = getAgletContext().getAgletProxies(1); enumeration.hasMoreElements(); proxies.addElement(enumeration.nextElement()));
    }

    public boolean handleMessage(Message message)
    {
        if(message.sameKind("getLocalInfo"))
        {
            getLocalInfo(message);
            return true;
        }
        if(message.sameKind("getProxies"))
        {
            getProxies(message);
            return true;
        }
        if(message.sameKind("dialog"))
        {
            CirculateFrame circulateframe = new CirculateFrame(this);
            circulateframe.pack();
            circulateframe.setVisible(true);
            init();
            return true;
        }
        if(message.sameKind("printResult"))
        {
            System.out.println(buffer);
            for(Enumeration enumeration = proxies.elements(); enumeration.hasMoreElements();)
            {
                AgletProxy agletproxy = (AgletProxy)enumeration.nextElement();
                try
                {
                    System.out.println(agletproxy.getAgletInfo());
                }
                catch(InvalidAgletException invalidagletexception)
                {
                    System.out.println("InvalidAglet");
                }
            }

            return true;
        } else
        {
            return false;
        }
    }

    private void init()
    {
        buffer = new StringBuffer();
        proxies = new Vector();
    }

    public void oncemore()
    {
        try
        {
            itinerary.startTrip();
        }
        catch(Exception exception)
        {
            exception.printStackTrace();
        }
    }

    public void onCreation(Object obj)
    {
        itinerary = new SeqPlanItinerary(this);
        itinerary.addPlan("atp://sirius.trl.ibm.com:2000/", "getLocalInfo");
        itinerary.addPlan("atp://vmoshima.trl.ibm.com/", "getProxies");
        itinerary.addPlan(getAgletContext().getHostingURL().toString(), "printResult");
    }

    public void start()
    {
        init();
        oncemore();
    }
}

⌨️ 快捷键说明

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