/** * {@inheritDoc} Adds the service to the ServiceRegistry via the ServiceRegistryManager. * * @see * org.springframework.web.servlet.mvc.SimpleFormController#onSubmit(javax.servlet.http.HttpServletRequest, * javax.servlet.http.HttpServletResponse, java.lang.Object, * org.springframework.validation.BindException) */ @Override protected ModelAndView onSubmit( final HttpServletRequest request, final HttpServletResponse response, final Object command, final BindException errors) throws Exception { RegisteredService service = (RegisteredService) command; // only change object class if there isn't an explicit RegisteredService class set if (this.getCommandClass() == null) { // CAS-1071 // Treat _new_ patterns starting with ^ character as a regular expression if (service.getId() == RegisteredService.INITIAL_IDENTIFIER_VALUE && service.getServiceId().startsWith("^")) { logger.debug("Detected regular expression starting with ^"); final RegexRegisteredService regexService = new RegexRegisteredService(); regexService.copyFrom(service); service = regexService; } } this.servicesManager.save(service); logger.info("Saved changes to service " + service.getId()); final ModelAndView modelAndView = new ModelAndView(new RedirectView("manage.html#" + service.getId(), true)); modelAndView.addObject("action", "add"); modelAndView.addObject("id", service.getId()); return modelAndView; }
@Test public void verifyRegexService() { final RegexRegisteredService r = new RegexRegisteredService(); r.setId(10000); r.setName("regex test"); r.setServiceId("^http://www.test.edu.+"); r.setEvaluationOrder(10000); this.defaultServicesManagerImpl.save(r); final SimpleService service = new SimpleService("HTTP://www.TEST.edu/param=hello"); assertEquals(r, this.defaultServicesManagerImpl.findServiceBy(service)); }