@Override public HttpHeaders getMultipartHeaders(String paramOrFileName) { try { Part part = getPart(paramOrFileName); if (part != null) { HttpHeaders headers = new HttpHeaders(); for (String headerName : part.getHeaderNames()) { headers.put(headerName, new ArrayList<>(part.getHeaders(headerName))); } return headers; } else { return null; } } catch (Throwable ex) { throw new MultipartException("Could not access multipart servlet request", ex); } }
@Override public HttpHeaders getMultipartHeaders(String paramOrFileName) { try { Part part = getPart(paramOrFileName); if (part != null) { HttpHeaders headers = new HttpHeaders(); for (String headerName : part.getHeaderNames()) { headers.put(headerName, new ArrayList<>(part.getHeaders(headerName))); } return headers; } else { return null; } } catch (Throwable ex) { throw new MultipartException("Could not access multipart servlet request", ex); } }
@Override public Collection<String> getHeaderNames() { return part.getHeaderNames(); } };
private FlowFile savePartAttributes(ProcessContext context, ProcessSession session, Part part, FlowFile flowFile, final int i, final int allPartsCount) { final Map<String, String> attributes = new HashMap<>(); for (String headerName : part.getHeaderNames()) { final String headerValue = part.getHeader(headerName); putAttribute(attributes, "http.headers.multipart." + headerName, headerValue); } putAttribute(attributes, "http.multipart.size", part.getSize()); putAttribute(attributes, "http.multipart.content.type", part.getContentType()); putAttribute(attributes, "http.multipart.name", part.getName()); putAttribute(attributes, "http.multipart.filename", part.getSubmittedFileName()); putAttribute(attributes, "http.multipart.fragments.sequence.number", i+1); putAttribute(attributes, "http.multipart.fragments.total.number", allPartsCount); return session.putAllAttributes(flowFile, attributes); }
private FlowFile savePartDetailsAsAttributes(final ProcessSession session, final Part part, final FlowFile flowFile, final int sequenceNumber, final int allPartsCount) { final Map<String, String> attributes = new HashMap<>(); for (String headerName : part.getHeaderNames()) { final String headerValue = part.getHeader(headerName); putAttribute(attributes, "http.headers.multipart." + headerName, headerValue); } putAttribute(attributes, "http.multipart.size", part.getSize()); putAttribute(attributes, "http.multipart.content.type", part.getContentType()); putAttribute(attributes, "http.multipart.name", part.getName()); putAttribute(attributes, "http.multipart.filename", part.getSubmittedFileName()); putAttribute(attributes, "http.multipart.fragments.sequence.number", sequenceNumber + 1); putAttribute(attributes, "http.multipart.fragments.total.number", allPartsCount); return session.putAllAttributes(flowFile, attributes); }
private HttpHeaders extractHeaders(Part part) { HttpHeaders partHeaders = new HttpHeaders(); for (String headerName : part.getHeaderNames()) { for (String value : part.getHeaders(headerName)) { partHeaders.add(headerName, value); } } return partHeaders; }
@Override public Collection<String> getHeaderNames() { return part.getHeaderNames(); } }
public Collection getHeaderNames() { return part.getHeaderNames(); } }
@Override public Collection<String> getHeaderNames() { return part.getHeaderNames(); }
@Test public void requestWithPartWithContentType() throws Exception { MockHttpServletRequest mockRequest = MockMvcRequestBuilders.get("/foo") .buildRequest(new MockServletContext()); Part mockPart = mock(Part.class); given(mockPart.getHeaderNames()).willReturn(Arrays.asList("a", "b")); given(mockPart.getHeaders("a")).willReturn(Arrays.asList("alpha")); given(mockPart.getHeaders("b")).willReturn(Arrays.asList("bravo", "banana")); given(mockPart.getInputStream()) .willReturn(new ByteArrayInputStream(new byte[] { 1, 2, 3, 4 })); given(mockPart.getName()).willReturn("part-name"); given(mockPart.getSubmittedFileName()).willReturn("submitted.png"); given(mockPart.getContentType()).willReturn("image/png"); mockRequest.addPart(mockPart); OperationRequest request = this.factory.convert(mockRequest); assertThat(request.getParts().size()).isEqualTo(1); OperationRequestPart part = request.getParts().iterator().next(); assertThat(part.getName()).isEqualTo("part-name"); assertThat(part.getSubmittedFileName()).isEqualTo("submitted.png"); assertThat(part.getHeaders().getContentType()).isEqualTo(MediaType.IMAGE_PNG); assertThat(part.getHeaders().get("a")).containsExactly("alpha"); assertThat(part.getHeaders().get("b")).containsExactly("bravo", "banana"); assertThat(part.getContent()).isEqualTo(new byte[] { 1, 2, 3, 4 }); }
@Test public void requestWithPart() throws Exception { MockHttpServletRequest mockRequest = MockMvcRequestBuilders.get("/foo") .buildRequest(new MockServletContext()); Part mockPart = mock(Part.class); given(mockPart.getHeaderNames()).willReturn(Arrays.asList("a", "b")); given(mockPart.getHeaders("a")).willReturn(Arrays.asList("alpha")); given(mockPart.getHeaders("b")).willReturn(Arrays.asList("bravo", "banana")); given(mockPart.getInputStream()) .willReturn(new ByteArrayInputStream(new byte[] { 1, 2, 3, 4 })); given(mockPart.getName()).willReturn("part-name"); given(mockPart.getSubmittedFileName()).willReturn("submitted.txt"); mockRequest.addPart(mockPart); OperationRequest request = this.factory.convert(mockRequest); assertThat(request.getParts().size()).isEqualTo(1); OperationRequestPart part = request.getParts().iterator().next(); assertThat(part.getName()).isEqualTo("part-name"); assertThat(part.getSubmittedFileName()).isEqualTo("submitted.txt"); assertThat(part.getHeaders().getContentType()).isNull(); assertThat(part.getHeaders().get("a")).containsExactly("alpha"); assertThat(part.getHeaders().get("b")).containsExactly("bravo", "banana"); assertThat(part.getContent()).isEqualTo(new byte[] { 1, 2, 3, 4 }); }
@Override public Collection<String> getHeaderNames() { synchronized(lock) { return new ArrayList<String>(part.getHeaderNames()); } } }
@Override public Collection<String> getHeaderNames() { return getWrapped().getHeaderNames(); }
public WireMockHttpServletMultipartAdapter(final Part servletPart) { mPart = servletPart; Iterable<HttpHeader> httpHeaders = FluentIterable.from(mPart.getHeaderNames()).transform(new Function<String, HttpHeader>() { @Override public HttpHeader apply(String name) { Collection<String> headerValues = servletPart.getHeaders(name); return HttpHeader.httpHeader(name, headerValues.toArray(new String[headerValues.size()])); } }); headers = new HttpHeaders(httpHeaders); }
private HttpHeaders extractHeaders(Part part) { HttpHeaders partHeaders = new HttpHeaders(); for (String headerName : part.getHeaderNames()) { for (String value : part.getHeaders(headerName)) { partHeaders.add(headerName, value); } } return partHeaders; }
@Override public Collection<String> getHeaderNames() { return getWrapped().getHeaderNames(); }
public Collection<String> getHeaderNames() { return getWrapped().getHeaderNames(); }
@Override public FileItemHeaders getHeaders() { FileItemHeadersImpl fileItemHeaders = new FileItemHeadersImpl(); for (String headerName : part.getHeaderNames()) { Collection<String> headerValues = part.getHeaders(headerName); for (String headerValue : headerValues) { fileItemHeaders.addHeader(headerName, headerValue); } } return fileItemHeaders; }
@Override public FileItemHeaders getHeaders() { FileItemHeadersImpl fileItemHeaders = new FileItemHeadersImpl(); for (String headerName : part.getHeaderNames()) { Collection<String> headerValues = part.getHeaders(headerName); for (String headerValue : headerValues) { fileItemHeaders.addHeader(headerName, headerValue); } } return fileItemHeaders; }
private FlowFile savePartDetailsAsAttributes(final ProcessSession session, final Part part, final FlowFile flowFile, final int sequenceNumber, final int allPartsCount) { final Map<String, String> attributes = new HashMap<>(); for (String headerName : part.getHeaderNames()) { final String headerValue = part.getHeader(headerName); putAttribute(attributes, "http.headers.multipart." + headerName, headerValue); } putAttribute(attributes, "http.multipart.size", part.getSize()); putAttribute(attributes, "http.multipart.content.type", part.getContentType()); putAttribute(attributes, "http.multipart.name", part.getName()); putAttribute(attributes, "http.multipart.filename", part.getSubmittedFileName()); putAttribute(attributes, "http.multipart.fragments.sequence.number", sequenceNumber + 1); putAttribute(attributes, "http.multipart.fragments.total.number", allPartsCount); return session.putAllAttributes(flowFile, attributes); }