@RolesAllowed(SecurityRoles.JOB_EDITOR) @RequestMapping(method = RequestMethod.POST, produces = "application/json") @ResponseBody public Map<String, String> uploadAnalysisJob( @PathVariable("tenant") final String tenant, @PathVariable("job") String jobName, @RequestParam("file") final MultipartFile file) { if (file == null) { throw new IllegalArgumentException( "No file upload provided. Please provide a multipart file using the 'file' HTTP parameter."); } jobName = jobName.replaceAll("\\+", " "); final Action<OutputStream> writeCallback = new Action<OutputStream>() { @Override public void run(OutputStream out) throws Exception { final InputStream in = file.getInputStream(); try { FileHelper.copy(in, out); } finally { FileHelper.safeClose(in); } } }; final TenantContext context = _contextFactory.getContext(tenant); final JobContext existingJob = context.getJob(jobName); final RepositoryFile jobFile; if (existingJob == null) { final RepositoryFolder jobsFolder = context.getJobFolder(); final String filename; if (jobName.endsWith(EXTENSION)) { filename = jobName; } else { filename = jobName + EXTENSION; } logger.info("Creating new job from uploaded file: {}", filename); jobFile = jobsFolder.createFile(filename, writeCallback); } else { jobFile = existingJob.getJobFile(); logger.info("Overwriting job from uploaded file: {}", jobFile.getName()); jobFile.writeFile(writeCallback); } final Map<String, String> result = new HashMap<String, String>(); result.put("status", "Success"); result.put("file_type", jobFile.getType().toString()); result.put("filename", jobFile.getName()); result.put("repository_path", jobFile.getQualifiedPath()); return result; }
@RolesAllowed(SecurityRoles.JOB_EDITOR) @RequestMapping(method = RequestMethod.GET, produces = "application/xml") public void jobXml( @PathVariable("tenant") final String tenant, @PathVariable("job") String jobName, OutputStream out) throws IOException { jobName = jobName.replaceAll("\\+", " "); final TenantContext context = _contextFactory.getContext(tenant); final JobContext job = context.getJob(jobName); if (!(job instanceof XmlJobContext)) { throw new UnsupportedOperationException("Job not compatible with operation: " + job); } XmlJobContext xmlJob = (XmlJobContext) job; xmlJob.toXml(out); }