vendredi 6 janvier 2017

Run multiple SpringBoot application for testing integration

For websocket testing purpose, I would like to run multiple SpringBoot Application based on JSON configuration:

 [{
port:11000,
UUID:"server"
},
{
port:11001,
UUID:"client1"
}
{
port:11001,
UUID:"client2"
}
]
My application.java:

    
@SpringBootApplication(exclude = {XADataSourceAutoConfiguration.class})
@ComponentScan( {"com.olo"})
public class ServerApplication
{
    @Inject
    WebSocketAsNetworkConnectionManager connectionManager;

    public static void main(final String[] args) {
        SpringApplication.run(ServerApplication.class, args);
    }

    @Bean
    public ServletRegistrationBean atmosphereServlet() {
        // Dispatcher servlet is mapped to '/home' to allow the AtmosphereServlet
        // to be mapped to '/chat'
        connectionManager.setCurrentUUID(new NetworkNode().setId(UUID));
        final ServletRegistrationBean registration = new ServletRegistrationBean(
            new AtmosphereServlet(), "/ws/*");
        registration.addInitParameter(ApplicationConfig.ANALYTICS, "false");
        registration.addInitParameter(ApplicationConfig.ANNOTATION_PACKAGE, "com.itesoft");
        registration.addInitParameter(ApplicationConfig.CLIENT_HEARTBEAT_INTERVAL_IN_SECONDS, "10");
        registration.addInitParameter(ApplicationConfig.WEBSOCKET_MAXTEXTSIZE, "10485760");
        registration.addInitParameter(ApplicationConfig.WEBSOCKET_BUFFER_SIZE, "128000");
        registration.addInitParameter(ApplicationConfig.MESSAGE_DELIMITER, "|");
        registration.setLoadOnStartup(0);
        // Need to occur before the EmbeddedAtmosphereInitializer
        registration.setOrder(Ordered.HIGHEST_PRECEDENCE);
        return registration;
    }

}

The result that I want is:

Running ServerApplication multiple time on different port with parameters. Do you have any ideas to do that?

Aucun commentaire:

Enregistrer un commentaire