/** * Start server * * @param string[] args */ public static function main(array $args) { // Add shutdown message handler EascMessageFactory::setHandler(61, newinstance('remote.server.message.EascMessage', array(), '{ public function getType() { return 61; } public function handle($protocol, $data) { Logger::getInstance()->getCategory()->debug("Shutting down"); $protocol->server->terminate= TRUE; } }')->getClass()); $s = new Server('127.0.0.1', 0); try { $protocol = new EascProtocol(newinstance('remote.server.deploy.scan.DeploymentScanner', array(), '{ private $changed= TRUE; public function scanDeployments() { $changed= $this->changed; $this->changed= FALSE; return $changed; } public function getDeployments() { $res= "net/xp_framework/unittest/remote/deploy/beans.test.CalculatorBean.xar"; with ($d= new Deployment($res)); { $d->setClassLoader(new ArchiveClassLoader(new Archive(ClassLoader::getDefault()->getResourceAsStream($res)))); $d->setImplementation("beans.test.CalculatorBeanImpl"); $d->setInterface("beans.test.Calculator"); $d->setDirectoryName("xp/test/Calculator"); return array($d); } } }')); $protocol->initialize(); $s->setProtocol($protocol); $s->init(); Console::writeLinef('+ Service %s:%d', $s->socket->host, $s->socket->port); $s->service(); Console::writeLine('+ Done'); } catch (Throwable $e) { Console::writeLine('- ', $e->getMessage()); } }