package net.ameba.cassandra.web.controller; import net.ameba.cassandra.web.service.CassandraProperties; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; /** * The controller for initial setup. */ @Controller public class SetupController extends AbstractBaseController { @Autowired private CassandraProperties properties; public SetupController() { } @RequestMapping(value="/setup", method=RequestMethod.GET) public void setup(ModelMap model) { if (properties.hasProperties()) { model.put("host", properties.getProperty(CassandraProperties.HOST)); model.put("jmxPort", properties.getProperty(CassandraProperties.JMX_PORT)); model.put("thriftPort", properties.getProperty(CassandraProperties.THRIFT_PORT)); model.put("framedTransport", properties.getProperty(CassandraProperties.FRAMED_TRANSPORT)); } else { model.put("host", ""); model.put("jmxPort", 8080); model.put("thriftPort", 9160); model.put("framedTransport", "false"); } } @RequestMapping(value="/setup", method=RequestMethod.POST) public String setupExecute( @RequestParam("host") String host, @RequestParam("thriftPort") int thriftPort, @RequestParam("jmxPort") int jmxPort, @RequestParam(value="framedTransport", required=false, defaultValue="false") boolean framedTransport, ModelMap model) throws Exception { properties.setProperty(CassandraProperties.HOST, host); properties.setProperty(CassandraProperties.JMX_PORT, String.valueOf(jmxPort)); properties.setProperty(CassandraProperties.THRIFT_PORT, String.valueOf(thriftPort)); properties.setProperty(CassandraProperties.FRAMED_TRANSPORT, Boolean.toString(framedTransport)); properties.saveProperties(); model.clear(); return "redirect:/"; } }