public function getRoutes() { // Consul $apFactory = new AddressProviderFactory(); // Rabbitmq $rabbitAp = $apFactory->createConsulAddressProvider('rabbitmq'); $rAdd = $rabbitAp->getAddress(); $rConn = new AMQPStreamConnection($rAdd->getHost(), $rAdd->getPort(), "guest", "guest", "/"); // MySQL $mysqlAp = $apFactory->createConsulAddressProvider('mysql'); $mAdd = $mysqlAp->getAddress(); $dsn = sprintf("mysql:host=%s;dbname=borg", $mAdd->getHost()); $db = new \PDO($dsn, 'borg', 'changeme', [\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8']); $db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); // Resource Dependencies $http = null; $scanner = new Scanner($http); $dbm = new RaceDbm($db); // Resources $ls = new LifeFormScanner($scanner); $gs = new GroupScanner($scanner); $as = new Assimilation($dbm); // Borg $driver = new AmqpCollectiveDriver($rConn); $coll = new Collective($driver, "borg-demo", $_SERVER['CUBE_DC']); $coll->assimilate($ls); $coll->assimilate($gs); $coll->assimilate($dbm); return [RouteBuilder::get()->uri('/life-form')->resource($ls, 'scan')->method(Http::METHOD_POST)->build(), RouteBuilder::get()->uri('/group')->resource($gs, 'scan')->method(Http::METHOD_POST)->build(), RouteBuilder::get()->uri('/race/:race')->resource($as, 'assimilateRace')->method(Http::METHOD_PUT)->build(), RouteBuilder::get()->uri('/race/:race')->resource($as, 'getRaceStatus')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/borg')->resource($coll, "mux")->method(Http::METHOD_POST)->build()]; }
public function getRoutes() { $rConn = new AMQPStreamConnection('localhost', 5672, "guest", "guest", "/"); $driver = new AmqpCollectiveDriver($rConn); $resource = new TestResource(); $fun = new FunResource(); $shake = new ShakespeareResource(); $mapper = new DefaultMapper($driver); $routing = new RoutingConfiguration("borg-demo"); $coll = new Collective($driver, $mapper, $routing); $coll->assimilate($resource); $coll->assimilate($fun); $coll->assimilate($shake); return [RouteBuilder::get()->uri('/round-trip')->resource($resource, 'roundTrip')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/chan-chan')->resource($resource, 'chanChan')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/generate-numbers')->resource($resource, 'generateNumbers')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/generate-numbers-2')->resource($resource, 'generateNumbersTwo')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/sync')->resource($resource, 'syncEx')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/fibonacci')->resource($fun, 'fibonacci')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/pi')->resource($fun, 'pi')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/prime')->resource($fun, 'prime')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/shakespeare/words')->resource($shake, 'allWords')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/shakespeare/words-sync')->resource($shake, 'allWordsSync')->method(Http::METHOD_GET)->build(), RouteBuilder::get()->uri('/borg')->resource($coll, "mux")->method(Http::METHOD_POST)->build()]; }
/** * @expectedException \Exception */ public function testMuxNoRoutingKey() { // given $coll = new Collective($this->driver, $this->mapper, $this->routing); $coll->assimilate($this); $args = ["hello world", new Chan(null, $this->driver, $this->mapper), new Foo("bar")]; $req2 = $this->buildRequest($args); $req = new Request(); $req->setBody($req2->getBody()); // when $resp = $coll->mux($req); }