public void testEchoContainer() throws Exception { delayTestFinish(TEST_DELAY); Context ctx = factory.ctx(); DomainProxy proxy = ctx.create(DomainProxy.class); proxy.setA("42"); ContainerProxy container = ctx.create(ContainerProxy.class); container.setDomain(proxy); ctx.echoContainer(container) .fire( new Receiver<ContainerProxy>() { @Override public void onSuccess(ContainerProxy response) { assertEquals("42", response.getDomain().getA()); finishTest(); } }); }
/** * Removes a message transport protocol, previously running within this container. * * @param address The transport address exported by the new MTP, in string format. * @exception MTPException If something goes wrong during transport protocol activation. * @exception NotFoundException If no protocol with the given address is currently installed on * this container. */ public void uninstallMTP(String address) throws MTPException, NotFoundException, StaleProxyException { if (myImpl == null || myProxy == null) { throw new StaleProxyException(); } try { myProxy.uninstallMTP(address); } catch (Throwable t) { throw new StaleProxyException(t); } }
/** * Installs a new message transport protocol, that will run within this container. * * @param address The transport address exported by the new MTP, in string format. * @param className The fully qualified name of the Java class that implements the transport * protocol. * @exception MTPException If something goes wrong during transport protocol activation. */ public void installMTP(String address, String className) throws MTPException, StaleProxyException { if (myImpl == null || myProxy == null) { throw new StaleProxyException(); } try { myProxy.installMTP(address, className); } catch (Throwable t) { throw new StaleProxyException(t); } }
/** Shuts down this container, terminating all the agents running within it. */ public void kill() throws StaleProxyException { if (myImpl == null || myProxy == null) { throw new StaleProxyException(); } try { myProxy.killContainer(); // release resources of this object myProxy = null; myImpl = null; myPlatformName = null; } catch (Throwable t) { throw new StaleProxyException(t); } }
/** * Creates a new JADE agent, running within this container, * * @param nickname A platform-unique nickname for the newly created agent. The agent will be given * a FIPA compliant agent identifier using the nickname and the ID of the platform it is * running on. * @param className The fully qualified name of the class that implements the agent. * @param args An object array, containing initialization parameters to pass to the new agent. * @return A proxy object, allowing to call state-transition forcing methods on the real agent * instance. */ public AgentController createNewAgent(String nickname, String className, Object[] args) throws StaleProxyException { if (myImpl == null || myProxy == null) { throw new StaleProxyException(); } AID agentID = new AID(AID.createGUID(nickname, myImpl.getPlatformID()), AID.ISGUID); try { myProxy.createAgent(agentID, className, args); return new AgentControllerImpl(agentID, myProxy, myImpl); } catch (Throwable t) { t.printStackTrace(); throw new StaleProxyException(t); } }