Hi Irshad, As Azeez mentioned this should work out of the box. We are doing same thing in our test cases as well[1]. You don't have to create a separate thread since MicroserveRunner internals will do that for you.
[1] - https://github.com/wso2/msf4j/blob/master/core/src/test/java/org/wso2/msf4j/HttpServerTest.java#L125 Thanks Thusitha On Tue, Jan 9, 2018 at 8:40 PM, Afkham Azeez <[email protected]> wrote: > I tried the following and things worked as expected. > > @Path("/hello") > public class HelloService { > > private String id; > > public HelloService(String id) { > this.id = id; > } > > @GET > @Path("/{name}") > public String hello(@PathParam("name") String name) { > System.out.println("Hello"); > return "Hello " + name + " from " + id; > } > } > > --------- > > public class Application { > public static void main(String[] args) { > new MicroservicesRunner(8080) > .deploy(new HelloService("1")) > .start(); > new MicroservicesRunner(8081) > .deploy(new HelloService("2")) > .start(); > new MicroservicesRunner(8082) > .deploy(new HelloService("3")) > .start(); > new MicroservicesRunner(8083) > .deploy(new HelloService("4")) > .start(); > } > } > --- > > Is that not working for you as expected? > > On Tue, Jan 9, 2018 at 12:26 PM, Irshad Nilam <[email protected]> wrote: > >> Hi all, >> >> I am working on integration test for 4 microservices written in MSF4J. >> >> 1 - A Microservice >> 2 - B Microservice >> 3 - C Microservice >> 4 - D Microservice >> >> These are implemented in a way to deploy them separately. >> >> Application code (where we deploy the microservice using microservice >> runner) will look similar to this. >> >> >> public class Application { >> >> >> public static void main(String[] args) { >> >> Application application = new Application(); >> application.runMS(8081); >> >> } >> >> public void runMS(int port) { >> >> MicroservicesRunner msRunner = new MicroservicesRunner(port); >> >> msRunner.deploy(new AService()) >> >> .addExceptionMapper( >> new AKeyExceptionMapper(), >> new AExceptionMapper(), >> new NotFoundExceptionMapper()) >> .start(); >> >> } >> } >> >> >> For the integration test, I want to start these four microservices with >> the exception mappers. To achieve this, I tried to start this microservice >> in separate threads as bellow. (in TestNG Suite) >> >> //Run A microservice >> new Thread(() -> new pathtoA.Application().runMS(8081)).start(); >> >> //Run B microservice >> new Thread(() -> new pathtoB.Application().runMs(8082)).start(); >> >> //Run C microservice >> new Thread(() -> new pathtoC.Application().runMs(8083)).start(); >> >> //Run D microservice >> new Thread(() -> new pathtoD.Application().runMs(8084)).start(); >> >> >> *But I'm having a problem wherein all the four ports, only DService is >> getting deployed. AFAIU this is because having multiple * >> org.wso2.msf4j.MicroserviceRunner* classes in the same JVM and only one >> getting loaded. * >> >> *I have a requirement where I need to run all 4 microservice in one JVM >> because of resource issues. ** Is there a way to achieve this without >> going to separate JVM for each service?* >> >> >> Please note those Exception mappers belong to each of the microservice >> packages. And should also be tested with integration test. So that I cannot >> run these service like this. >> >> MicroservicesRunner msRunner = new MicroservicesRunner(port1,port2, port3); >> microservicesRunner.deploy(serviceA, serviceB, >> serivice3).addExceptionMapper(Amapper, Bmapper, cMapper).start(); >> >> >> Thanks and regards. >> -- >> Irshad Nilam >> Software Engineering Intern >> WSO2 >> >> Email : [email protected] >> Mobile : +94 77 3669262 <077%20366%209262> >> <http://wso2.com/signature> >> >> > > > -- > *Afkham Azeez* > Senior Director, Platform Architecture; WSO2, Inc.; http://wso2.com > Member; Apache Software Foundation; http://www.apache.org/ > * <http://www.apache.org/>* > *email: **[email protected]* <[email protected]> > * cell: +94 77 3320919 <077%20332%200919>blog: **http://blog.afkham.org* > <http://blog.afkham.org> > *twitter: **http://twitter.com/afkham_azeez* > <http://twitter.com/afkham_azeez> > *linked-in: **http://lk.linkedin.com/in/afkhamazeez > <http://lk.linkedin.com/in/afkhamazeez>* > > *Lean . Enterprise . Middleware* > > _______________________________________________ > Dev mailing list > [email protected] > http://wso2.org/cgi-bin/mailman/listinfo/dev > > --
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
