@RequestMapping(value = "/uploadFile", method = RequestMethod.POST)
public ModelAndView uploadFile(MultipartFile file) throws IOException {
  
    ModelAndView modelAndView = new ModelAndView("file");
    InputStream in = file.getInputStream();
    File currDir = new File(".");
    String path = currDir.getAbsolutePath();
    FileOutputStream f = new FileOutputStream(
      path.substring(0, path.length()-1)+ file.getOriginalFilename());
    int ch = 0;
    while ((ch = in.read()) != -1) {
        f.write(ch);
    }
     
    f.flush();
    f.close();
     
    modelAndView.getModel().put("message", "File uploaded successfully!");
    return modelAndView;
}

        

public void testHandleRequestView() throws Exception{		
	HelloController controller = new HelloController();
	ModelAndView modelAndView = controller.handleRequest(null, null);		
	assertEquals("WEB-INF/views/hello.jsp", modelAndView.getViewName());
	assertNotNull(modelAndView.getModel());
	String nowValue = (String) modelAndView.getModel().get("now");
	assertNotNull(nowValue);

}

        

public static Object assertAndReturnModelAttributeOfType(ModelAndView mav, Object modelName, Class expectedType)
		throws AssertionError {

	assertCondition(mav != null, "ModelAndView is null");
	assertCondition(mav.getModel() != null, "Model is null");
	final Object obj = mav.getModel().get(modelName);
	assertCondition(obj != null, "Model attribute with name '" + modelName + "' is null");

	assertCondition(expectedType.isAssignableFrom(obj.getClass()), "Model attribute is not of expected type '"
			+ expectedType.getName() + "' but rather of type '" + obj.getClass().getName() + "'");
	return obj;
}

        

@RequestMapping(value = "/user/{username}", method = RequestMethod.GET)
public ModelAndView getUser(@PathVariable String username) {
  ModelAndView mav;
  try {
    MatrixUser mxUser = blackboard.getUserInfo(username);
    mav = new ModelAndView("json/user");
    mxUser.setMode("get");
    mxUser.setStatus("ok");
    mav.getModel().put("user", mxUser);
  }
  catch(BlackboardException be) {
    mav = new ModelAndView("json/error");
    mav.getModel().put("error", be.getMessage());
  }
  return mav;
}

        

public class WrapperAspect {
  public ModelAndView auth(ProceedingJoinPoint joinPoint) {
    HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();

    if (checkCredentials(request)) {
      try {
        return (ModelAndView)joinPoint.proceed();
      }
      catch(Throwable theEnd) {
        ModelAndView mav = new ModelAndView("json/error");
        mav.getModel().put("error", theEnd.getMessage());
        return mav;
      }
    }
    else {
      ModelAndView mav = new ModelAndView("json/error");
      mav.getModel().put("error", "unauthorised");
      return mav;
    }
  }
}

        

public void verifyOK() throws Exception {
    final MockHttpServletRequest mockRequest = new MockHttpServletRequest(
            "GET",
            CONTEXT
            + OAuthConstants.CALLBACK_AUTHORIZE_URL);
    mockRequest.addParameter(OAuthConstants.TICKET, SERVICE_TICKET);
    final MockHttpSession mockSession = new MockHttpSession();
    mockSession.putValue(OAuthConstants.OAUTH20_CALLBACKURL, REDIRECT_URI);
    mockSession.putValue(OAuthConstants.OAUTH20_SERVICE_NAME, SERVICE_NAME);
    mockRequest.setSession(mockSession);
    final MockHttpServletResponse mockResponse = new MockHttpServletResponse();

    final ModelAndView modelAndView = oauth20WrapperController.handleRequest(mockRequest, mockResponse);
    assertEquals(OAuthConstants.CONFIRM_VIEW, modelAndView.getViewName());
    final Map<String, Object> map = modelAndView.getModel();
    assertEquals(SERVICE_NAME, map.get("serviceName"));
    assertEquals(REDIRECT_URI + '?' + OAuthConstants.CODE + '=' + SERVICE_TICKET, map.get("callbackUrl"));
}

        

protected ModelAndView doGet(@NotNull HttpServletRequest httpServletRequest, @NotNull HttpServletResponse httpServletResponse) {
    ModelAndView modelAndView = new ModelAndView(myPluginDescriptor.getPluginResourcesPath("editProfile.jsp"));
    Map<String, Object> model = modelAndView.getModel();
    model.put("testConnectionUrl", myPath + "?testConnection=true");
    model.put("namespaceChooserUrl", myKubeNamespaceChooserController.getUrl());
    model.put("deploymentChooserUrl", myKubeDeploymentChooserController.getUrl());
    model.put("deleteImageUrl", myKubeDeleteImageDialogController.getUrl());
    final String projectId = httpServletRequest.getParameter("projectId");

    final List<AgentPool> pools = new ArrayList<>();
    if (!BuildProject.ROOT_PROJECT_ID.equals(projectId)){
        pools.add(AgentPoolUtil.DUMMY_PROJECT_POOL);
    }
    pools.addAll(myAgentPoolManager.getProjectOwnedAgentPools(projectId));

    model.put("agentPools", pools);
    model.put("authStrategies", myAuthStrategyProvider.getAll());
    model.put("podTemplateProviders", myPodTemplateProviders.getAll());
    return modelAndView;
}

        

private Collection<MenuItem> parseMenu(HttpServletRequest request, ModelAndView modelAndView, Collection<MenuItem> items) {
    Map<String, Object> sourceMap = modelAndView.getModel();
    final String[] search = new String[sourceMap.size()];
    final String[] replace = new String[sourceMap.size()];
    int i = 0;
    for (Map.Entry<String, Object> entry : sourceMap.entrySet()) {
        search[i] = String.format("${%s}", entry.getKey());
        replace[i++] = String.valueOf(entry.getValue());
    }
    items = parseItem(request, search, replace, items);
    return items;
}

        

public void testFlightList() throws Exception {
	MockHttpServletRequest request = new MockHttpServletRequest();
	String from = "AMS";
	request.setParameter("from", from);
	String to = "VCE";
	request.setParameter("to", to);
	LocalDate departureDate = new LocalDate();
	request.setParameter("departureDate", departureDate.toString());
	ServiceClass serviceClass = ServiceClass.FIRST;
	request.setParameter("serviceClass", serviceClass.toString());
	MockHttpServletResponse response = new MockHttpServletResponse();
	List<Flight> flights = new ArrayList<Flight>();
	flights.add(new Flight());
	expect(airlineServiceMock.getFlights(from, to, departureDate, serviceClass)).andReturn(flights);

	replay(airlineServiceMock);

	ModelAndView mav = flightsController.flightList(request, response);
	assertNotNull("No ModelAndView returned", mav);
	assertEquals("Invalid view name", "flights", mav.getViewName());
	assertTrue("No flights in ModelAndView", mav.getModel().containsKey("flights"));
	verify(airlineServiceMock);
}

        

protected ModelAndView handle(HttpServletRequest request,HttpServletResponse response,Object o,BindException e) throws Exception {
  ModelAndView mav=super.handle(request,response,o,e);
  Long pageID=ServletRequestUtils.getLongParameter(request,"referencePage",0);
  Page page=pageService.getEntity(pageID);
  mav.getModel().put("referencePage",page);
  return mav;
}        
main