serverapp.java

来自「《移动Agent技术》一书的所有章节源代码。」· Java 代码 · 共 161 行

JAVA
161
字号
/*
 * @(#)ServerApp.java
 *
 * The program is provided "as is" without any warranty express or
 * implied, including the warranty of non-infringement and the implied
 * warranties of merchantibility and fitness for a particular purpose.
 * IBM will not be liable for any damages suffered by you as a result
 * of using the Program. In no event will IBM be liable for any
 * special, indirect or consequential damages or lost profits even if
 * IBM has been advised of the possibility of their occurrence. IBM
 * will not be liable for any third party claims against you.
 */

import com.ibm.aglet.*;
import com.ibm.aglet.system.*;
import java.net.URL;

import java.util.Properties;
import com.ibm.awb.util.Resource;
import com.ibm.atp.daemon.Daemon;

/**
 * The ServerApp example illustrates how to embed the AgletsServer facility
 * into an application program.
 *
 * @version     1.00    $Date: 98/03/17 1:48p $
 * @author      Mitsuru Oshima
 * @see aglet.system.AgletRuntime
 * @see ibm.atp.daemon.Daemon;
 * @see ibm.atp.daemon.Main
 */
public class ServerApp extends ContextAdapter {

    public void agletCreated(ContextEvent ev) {
	System.out.println("Aglet Created : " + ev.getAgletProxy());
    }
    public void agletCloned(ContextEvent ev) {
	System.out.println("Aglet Cloned : " + ev.getAgletProxy());
    }
    public void agletArrived(ContextEvent ev) {
	System.out.println("Aglet Arrived : " + ev.getAgletProxy());
    }
    public void agletActivated(ContextEvent ev) {
	System.out.println("Aglet Activated : " + ev.getAgletProxy());
    }

    public void agletDisposed(ContextEvent ev) {
	System.out.println("Aglet Disposed : " + ev.getAgletProxy());
    }
    public void agletDispatched(ContextEvent ev) {
	System.out.println("Aglet Dispatched : " + ev.getAgletProxy());
    }
    public void agletDeactivated(ContextEvent ev) {
	System.out.println("Aglet Deactivated : " + ev.getAgletProxy());
    }
    public void agletReverted(ContextEvent ev) {
	System.out.println("Aglet Reverted : " + ev.getAgletProxy());
    }

    public void showMessage(ContextEvent ev) {
	System.out.println("message : " + ev.getMessage());
    }
	//////////
    public static AgletProxy startAglet(AgletContext cxt,String AgletName) throws java.lang.Exception {
    	//AgletContext cxt=initStart();
   	//AgletProxy p = cxt.createAglet(null, "examples.hello.HelloAglet", null);
	   AgletProxy p = cxt.createAglet(null,AgletName, null);
	   return p;
	 }
    //////////	
    public static AgletContext initStart() throws java.lang.Exception {

	//
	// Temporary
	//
	//for (int i=0;i<=2;i++)
		//System.out.println("args["+i+"]:"+args[i]);
	//System.out.println(args);
		
	//com.ibm.atp.daemon.Main.importOptions(args);

	//
	// Create and initialize a server.
	//
	Daemon daemon = Daemon.init(null);

	/*
	 * if any.
	try {
	    daemon.setAccessLogFile( "log.access" );
	    daemon.setMessageLogFile("log.message" );
	    daemon.setErrorLogFile(  "log.error" );
	} catch (IOException ex) {
	    ex.printStackTrace();
	}
	 */
	daemon.setAccessLogStream(System.out);
	daemon.setMessageLogStream(System.out);
	daemon.setErrorLogStream(System.err);

	//
	// Obtains a runtime object
	//
	AgletRuntime runtime = AgletRuntime.init(null);

	//
	// Creates a named context. To dispatch to this context, you have to
	// specify the destination, for example,
	// "atp://aglets.trl.ibm.com:434/test"
	//
	AgletContext cxt = runtime.createAgletContext("test");
	cxt.addContextListener(new ServerApp());

	// If you want to allow incoming aglets to use GUI.
	// initialize gui....
	try {
	    Class.forName("sun.awt.image.JPEGImageDecoder");
	    Class.forName("sun.audio.AudioPlayer");
	} catch (Exception ex) {
	    ex.printStackTrace();
	}
	try {
	    Class.forName("sun.awt.PlatformFont"); // for 1.1
	} catch (Exception ex) {
	    ex.printStackTrace();
	}
	try {
	    new java.awt.Frame().addNotify();
	} catch (Exception ex) {
	    ex.printStackTrace();
	} finally {
	}

	try {
	    Class.forName("sun.awt.ScreenUpdater");
	} catch (Throwable t) {
	}

	//
	// Starts this server as aglets server.
	//
	daemon.start("aglets");

	//
	// Starts the AgletContext.
	//
	cxt.start();
	return cxt;
	//
	// From here on, you can use this context.
	// (creating, dispatching an aglet, for instance)
	//
	//AgletProxy p = cxt.createAglet(null, "examples.hello.HelloAglet", null);

	////Message msg = new Message("startTrip",
	////			  cxt.getHostingURL().toString());
	// go to itself and say hello
	////p.sendMessage(msg);
    }
}

⌨️ 快捷键说明

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