use of org.springframework.web.multipart.MultipartFile in project gocd by gocd.
the class FakeArtifactPublisherServlet method doPost.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
MultipartHttpServletRequest httpServletRequest = multipartResolver.resolveMultipart(request);
Map<String, MultipartFile> map = httpServletRequest.getFileMap();
MultipartFile multipartFile = map.values().iterator().next();
receivedFiles.add(multipartFile.getOriginalFilename());
}
use of org.springframework.web.multipart.MultipartFile in project gocd by gocd.
the class ArtifactsController method updateChecksumFile.
private boolean updateChecksumFile(MultipartHttpServletRequest request, JobIdentifier jobIdentifier, String filePath) throws IOException, IllegalArtifactLocationException {
MultipartFile checksumMultipartFile = getChecksumFile(request);
if (checksumMultipartFile != null) {
String checksumFilePath = String.format("%s/%s/%s", artifactsService.findArtifactRoot(jobIdentifier), ArtifactLogUtil.CRUISE_OUTPUT_FOLDER, ArtifactLogUtil.MD5_CHECKSUM_FILENAME);
File checksumFile = artifactsService.getArtifactLocation(checksumFilePath);
synchronized (checksumFilePath.intern()) {
return artifactsService.saveOrAppendFile(checksumFile, checksumMultipartFile.getInputStream());
}
} else {
LOGGER.warn(String.format("[Artifacts Upload] Checksum file not uploaded for artifact at path '%s'", filePath));
}
return true;
}
use of org.springframework.web.multipart.MultipartFile in project gocd by gocd.
the class ArtifactsController method postArtifact.
@RequestMapping("/repository/restful/artifact/POST/*")
public ModelAndView postArtifact(@RequestParam("pipelineName") String pipelineName, @RequestParam("pipelineLabel") String counterOrLabel, @RequestParam("stageName") String stageName, @RequestParam(value = "stageCounter", required = false) String stageCounter, @RequestParam("buildName") String buildName, @RequestParam(value = "buildId", required = false) Long buildId, @RequestParam("filePath") String filePath, @RequestParam(value = "attempt", required = false) Integer attempt, MultipartHttpServletRequest request) throws Exception {
JobIdentifier jobIdentifier;
if (!headerConstraint.isSatisfied(request)) {
return ResponseCodeView.create(HttpServletResponse.SC_BAD_REQUEST, "Missing required header 'Confirm'");
}
try {
jobIdentifier = restfulService.findJob(pipelineName, counterOrLabel, stageName, stageCounter, buildName, buildId);
} catch (Exception e) {
return buildNotFound(pipelineName, counterOrLabel, stageName, stageCounter, buildName);
}
int convertedAttempt = attempt == null ? 1 : attempt;
try {
File artifact = artifactsService.findArtifact(jobIdentifier, filePath);
if (artifact.exists() && artifact.isFile()) {
return FileModelAndView.fileAlreadyExists(filePath);
}
MultipartFile multipartFile = multipartFile(request);
if (multipartFile == null) {
return FileModelAndView.invalidUploadRequest();
}
boolean success = saveFile(convertedAttempt, artifact, multipartFile, shouldUnzipStream(multipartFile));
if (!success) {
return FileModelAndView.errorSavingFile(filePath);
}
success = updateChecksumFile(request, jobIdentifier, filePath);
if (!success) {
return FileModelAndView.errorSavingChecksumFile(filePath);
}
return FileModelAndView.fileCreated(filePath);
} catch (IllegalArtifactLocationException e) {
return FileModelAndView.forbiddenUrl(filePath);
}
}
use of org.springframework.web.multipart.MultipartFile in project nhin-d by DirectProject.
the class PoliciesController method checkLexiconFile.
/*********************************
*
* Check Lexicon File Method
*
*********************************/
@PreAuthorize("hasRole('ROLE_ADMIN')")
@RequestMapping(value = "/checkLexiconFile", method = { RequestMethod.GET, RequestMethod.POST })
@ResponseBody
public String checkLexiconFile(@RequestHeader(value = "X-Requested-With", required = false) String requestedWith, HttpServletResponse response, Object command, @RequestHeader(value = "lexicon", required = false) String lexicon, MultipartHttpServletRequest request) throws FileUploadException, IOException, Exception {
final org.nhindirect.policy.PolicyLexicon parseLexicon;
String jsonResponse = "";
String uploadToString = "";
if (log.isDebugEnabled()) {
log.debug("Checking uploaded lexicon file for format and validation");
}
// Grab uploaded file from the post submission
UploadedFile ufile = new UploadedFile();
Iterator<String> itr = request.getFileNames();
MultipartFile mpf = request.getFile(itr.next());
try {
ufile.length = mpf.getBytes().length;
ufile.bytes = mpf.getBytes();
ufile.type = mpf.getContentType();
ufile.name = mpf.getOriginalFilename();
} catch (IOException e) {
}
// Convert upload content to string
uploadToString = new String(ufile.bytes);
uploadToString = JSONObject.escape(uploadToString);
lexicon = request.getParameter("lexicon");
org.nhind.config.PolicyLexicon lex = null;
// Check the file for three types of policies
if (lexicon.isEmpty()) {
lex = org.nhind.config.PolicyLexicon.SIMPLE_TEXT_V1;
} else {
try {
// Convert string of file contents to lexicon object
lex = org.nhind.config.PolicyLexicon.fromString(lexicon);
} catch (Exception e) {
log.error("Invalid lexicon name.");
}
}
// Determine lexicon type
if (lex.equals(org.nhind.config.PolicyLexicon.JAVA_SER)) {
parseLexicon = org.nhindirect.policy.PolicyLexicon.JAVA_SER;
} else if (lex.equals(org.nhind.config.PolicyLexicon.SIMPLE_TEXT_V1)) {
parseLexicon = org.nhindirect.policy.PolicyLexicon.SIMPLE_TEXT_V1;
} else {
parseLexicon = org.nhindirect.policy.PolicyLexicon.XML;
}
InputStream inStr = null;
try {
// Convert policy file upload to byte stream
inStr = new ByteArrayInputStream(ufile.bytes);
// Initialize parser engine
final PolicyLexiconParser parser = PolicyLexiconParserFactory.getInstance(parseLexicon);
// Attempt to parse the lexicon file for validity
parser.parse(inStr);
} catch (PolicyParseException e) {
log.error("Syntax error in policy file " + " : " + e.getMessage());
jsonResponse = "{\"Status\":\"File was not a valid file.\",\"Content\":\"" + uploadToString + "\"}";
} finally {
IOUtils.closeQuietly(inStr);
}
if (jsonResponse.isEmpty()) {
jsonResponse = "{\"Status\":\"Success\",\"Content\":\"" + uploadToString + "\"}";
}
return jsonResponse;
}
use of org.springframework.web.multipart.MultipartFile in project Settler by EmhyrVarEmreis.
the class ImportService method importTransactions.
public void importTransactions(MultipartFile file) throws IOException {
List<Category> categoryList = categoryRepository.findAll();
Map<String, Category> categoryMap = categoryList == null ? new HashMap<>() : categoryList.stream().collect(Collectors.toMap(Category::getCode, category -> category));
List<Transaction> transactionList = new ArrayList<>();
ByteArrayInputStream stream = new ByteArrayInputStream(file.getBytes());
String content = IOUtils.toString(stream, "UTF-8");
String[] lines = content.split("\\r?\\n");
DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("dd.MM.yyyy");
User o = userRepository.findOneByLogin(splitLine(lines[0])[26]);
User c = userRepository.findOneByLogin(splitLine(lines[0])[27]);
int ln = 0;
for (String line : lines) {
ln++;
if (ln < 3) {
continue;
}
try {
String[] cells = splitLine(line);
String name = cells[0];
String mark = cells[4].trim();
Double value;
Double sharedAValue;
Double sharedBValue;
Integer sharedA;
Integer sharedB;
LocalDateTime date;
Boolean normal;
Transaction transaction = new Transaction();
List<Redistribution> owners = new ArrayList<>();
List<Redistribution> contractors = new ArrayList<>();
value = Double.valueOf(cells[2].replaceAll("[^0-9^,-]+", "").replace(",", "."));
date = dateTimeFormatter.parseLocalDateTime(cells[1]);
sharedA = cells.length < 7 || cells[5].trim().isEmpty() ? -1 : Integer.valueOf(cells[5].trim());
sharedB = cells.length < 7 || cells[6].trim().isEmpty() ? -1 : Integer.valueOf(cells[6].trim());
normal = value > 0;
value = Math.abs(value);
if (mark.equalsIgnoreCase("x")) {
if (sharedA < 0 || sharedB < 0) {
sharedA = 1;
sharedB = 2;
}
} else if (mark.equalsIgnoreCase("b") || mark.equalsIgnoreCase("z")) {
sharedA = 1;
sharedB = 1;
} else {
continue;
}
sharedAValue = value;
value = (value / (sharedA)) * sharedB;
value = (double) Math.round(value * 100) / 100;
sharedBValue = value - sharedAValue;
sharedBValue = (double) Math.round(sharedBValue * 100) / 100;
if (normal) {
owners.add(new Redistribution(RedistributionType.O, transaction, o, value));
if (sharedBValue > 0) {
contractors.add(new Redistribution(RedistributionType.C, transaction, o, sharedBValue));
}
contractors.add(new Redistribution(RedistributionType.C, transaction, c, sharedAValue));
} else {
owners.add(new Redistribution(RedistributionType.O, transaction, c, value));
contractors.add(new Redistribution(RedistributionType.C, transaction, o, sharedAValue));
if (sharedBValue > 0) {
contractors.add(new Redistribution(RedistributionType.C, transaction, c, sharedBValue));
}
}
transaction.setValue(value);
owners.forEach(redistribution -> redistribution.setPercentage(redistribution.getPercentage() / 1.0 / transaction.getValue()));
contractors.forEach(redistribution -> redistribution.setPercentage(redistribution.getPercentage() / 1.0 / transaction.getValue()));
transaction.setOwners(owners);
transaction.setContractors(contractors);
date = date.withHourOfDay(12).withMinuteOfHour(0).withSecondOfMinute(0);
transaction.setCreator(Security.currentUser());
transaction.setType(TransactionType.NOR);
transaction.setDescription(name);
transaction.setEvaluated(date);
List<Category> cl = checkCategories(transaction.getDescription()).stream().map(categoryMap::get).filter(Objects::nonNull).collect(Collectors.toList());
transaction.setCategories(cl.isEmpty() ? null : cl);
transaction.setReference(sequenceManager.getNextReferenceForTransaction(transaction));
transactionList.add(transaction);
} catch (Exception e) {
log.warn("Unable to convert line No{}: {}", ln, line, e);
}
}
transactionList.sort((o1, o2) -> o1.getEvaluated().compareTo(o2.getCreated()));
transactionList.forEach(t -> {
t.setCreated(new LocalDateTime());
log.info(t.getEvaluated() + " " + t.getReference() + " " + t.getValue() + " [" + t.getDescription() + "]" + " [" + t.getOwners().stream().map(r -> r.getId().getUser().getLogin() + "/" + r.getPercentage()).collect(Collectors.joining(", ")) + "]" + " [" + t.getContractors().stream().map(r -> r.getId().getUser().getLogin() + "/" + r.getPercentage()).collect(Collectors.joining(", ")) + "]" + " [" + (t.getCategories() == null ? "" : t.getCategories().stream().map(Category::getCode).collect(Collectors.joining(", "))) + "]");
transactionRepository.save(t);
});
}
Aggregations