Best SeLion code snippet using com.paypal.selion.grid.servlets.transfer.ArtifactUploadException
Source:TransferServlet.java
...21import javax.servlet.http.HttpServlet;22import javax.servlet.http.HttpServletRequest;23import javax.servlet.http.HttpServletResponse;24import com.paypal.selion.grid.servlets.transfer.ArtifactDownloadException;25import com.paypal.selion.grid.servlets.transfer.ArtifactUploadException;26import com.paypal.selion.grid.servlets.transfer.DefaultManagedArtifact;27import com.paypal.selion.grid.servlets.transfer.DownloadRequestProcessor;28import com.paypal.selion.grid.servlets.transfer.DownloadResponder;29import com.paypal.selion.grid.servlets.transfer.TransferContext;30import com.paypal.selion.grid.servlets.transfer.UploadRequestProcessor;31import com.paypal.selion.grid.servlets.transfer.UploadRequestProcessor.AbstractUploadRequestProcessor;32import com.paypal.selion.grid.servlets.transfer.UploadRequestProcessor.ApplicationUploadRequestProcessor;33import com.paypal.selion.grid.servlets.transfer.UploadRequestProcessor.MultipartUploadRequestProcessor;34import com.paypal.selion.grid.servlets.transfer.UploadResponder;35import com.paypal.selion.grid.servlets.transfer.UploadResponder.AbstractUploadResponder;36import com.paypal.selion.grid.servlets.transfer.UploadResponder.AcceptHeaderEnum;37import com.paypal.selion.grid.servlets.transfer.UploadResponder.JsonUploadResponder;38import com.paypal.selion.logging.SeLionGridLogger;39/**40 * <code>TransferServlet</code> is used for processing HTTP POST upload requests to SeLion grid. The artifacts are41 * uploaded using POST HTTP method call. The response of the POST HTTP method call contains the necessary HTTP GET url42 * used for downloading the artifact.43 */44public class TransferServlet extends HttpServlet {45 private static final long serialVersionUID = -4598713481663637719L;46 private static final SeLionGridLogger LOGGER = SeLionGridLogger.getLogger(TransferServlet.class);47 public void doPost(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)48 throws ServletException, IOException {49 LOGGER.entering((Object)new Object[] { httpServletRequest, httpServletResponse });50 try {51 TransferContext transferContext = new TransferContext(httpServletRequest, httpServletResponse);52 UploadRequestProcessor requestProcessor = getUploadRequestProcessor(transferContext);53 transferContext.setUploadRequestProcessor(requestProcessor);54 UploadResponder uploadResponder = getUploadResponder(transferContext);55 uploadResponder.respond();56 } catch (ArtifactUploadException exe) {57 /*58 * Catching RuntimeException because UploadResponder some times throws IOException wrapped in59 * ArtifactUploadException and this IOException should be thrown back as IOException defined by the Servlet60 * API.61 */62 handleExceptions(exe);63 }64 LOGGER.exiting();65 }66 public void doGet(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)67 throws ServletException, IOException {68 LOGGER.entering((Object)new Object[] { httpServletRequest, httpServletResponse });69 try {70 TransferContext transferContext = new TransferContext(httpServletRequest, httpServletResponse);71 DownloadRequestProcessor downloadRequestProcessor = new DownloadRequestProcessor();72 transferContext.setDownloadRequestProcessor(downloadRequestProcessor);73 DownloadResponder downloadResponder = new DownloadResponder(transferContext);74 downloadResponder.respond();75 } catch (ArtifactDownloadException exe) {76 /*77 * Catching RuntimeException because DownloadResponder some times throws IOException wrapped in78 * ArtifactDownloadException and this IOException should be thrown back as IOException defined by the79 * Servlet API.80 */81 handleExceptions(exe);82 }83 LOGGER.exiting();84 }85 private void handleExceptions(Exception exe) throws IOException, ServletException {86 if (exe.getCause() instanceof IOException) {87 throw (IOException) exe.getCause();88 } else {89 throw new ServletException(exe.getMessage());90 }91 }92 /**93 * Returns a {@link AbstractUploadRequestProcessor} for {@link DefaultManagedArtifact}94 * 95 * @param transferContext96 * Instance of {@link TransferContext}97 * @return Instance of {@link UploadRequestProcessor}.98 */99 private UploadRequestProcessor getUploadRequestProcessor(TransferContext transferContext) {100 LOGGER.entering(transferContext);101 String contentType = transferContext.getHttpServletRequest().getContentType() != null ? transferContext102 .getHttpServletRequest().getContentType().toLowerCase() : "unknown";103 if (contentType.contains(AbstractUploadRequestProcessor.MULTIPART_CONTENT_TYPE)) {104 // Return a Multipart request processor105 UploadRequestProcessor uploadRequestProcessor = new MultipartUploadRequestProcessor(106 transferContext);107 LOGGER.exiting(uploadRequestProcessor);108 return uploadRequestProcessor;109 }110 if (contentType.contains(AbstractUploadRequestProcessor.APPLICATION_URLENCODED_CONTENT_TYPE)) {111 // Return normal Urlencoded request processor112 UploadRequestProcessor uploadRequestProcessor = new ApplicationUploadRequestProcessor(113 transferContext);114 LOGGER.exiting(uploadRequestProcessor);115 return uploadRequestProcessor;116 }117 throw new ArtifactUploadException("Content-Type should be either: "118 + AbstractUploadRequestProcessor.MULTIPART_CONTENT_TYPE + " or: "119 + AbstractUploadRequestProcessor.APPLICATION_URLENCODED_CONTENT_TYPE + " for file uploads");120 }121 /**122 * Returns a {@link AbstractUploadResponder} depending on the Accept header received in {@link HttpServletRequest}.123 * If there is no matching {@link AbstractUploadResponder} then return {@link JsonUploadResponder} as the default124 * implementation.125 * 126 * @param transferContext127 * Instance of {@link TransferContext}128 * @return Instance of {@link AbstractUploadResponder}.129 */130 private UploadResponder getUploadResponder(TransferContext transferContext) {131 LOGGER.entering(transferContext);132 UploadResponder uploadResponder;133 Class<? extends UploadResponder> uploadResponderClass = getResponderClass(transferContext134 .getHttpServletRequest().getHeader("accept"));135 try {136 uploadResponder = (UploadResponder) uploadResponderClass.getConstructor(new Class[] { TransferContext.class }).newInstance(137 new Object[] { transferContext });138 LOGGER.exiting(uploadResponder);139 return uploadResponder;140 } catch (Exception e) {141 // We cannot do any meaningful operation to handle this; catching exception and returning142 // default responder143 uploadResponder = new JsonUploadResponder(transferContext);144 LOGGER.exiting(uploadResponder);145 return uploadResponder;146 }147 }148 private Class<? extends UploadResponder> getResponderClass(String headerString) {149 String[] headers = headerString.split(";");150 List<String> headerPrecedenceList = Arrays.asList(headers);151 Collections.reverse(headerPrecedenceList);152 for (String header : headerPrecedenceList) {153 try {154 AcceptHeaderEnum acceptHeaderEnum = AcceptHeaderEnum.getAcceptHeaderEnum(header);155 return acceptHeaderEnum.getUploadResponder();156 } catch (ArtifactUploadException exe) {157 // Exception is thrown if there is no implementation; just ignore and iterate until success158 }159 }160 return JsonUploadResponder.class;161 }162}...
ArtifactUploadException
Using AI Code Generation
1import com.paypal.selion.grid.servlets.transfer.ArtifactUploadException;2import com.paypal.selion.grid.servlets.transfer.ArtifactUploader;3import com.paypal.selion.grid.servlets.transfer.FileInfo;4import com.paypal.selion.grid.servlets.transfer.FileInfo.FileType;5import com.paypal.selion.grid.servlets.transfer.FileInfoBuilder;6import com.paypal.selion.grid.servlets.transfer.FileTransferRequest;7import com.paypal.selion.grid.servlets.transfer.FileTransferRequestBuilder;8import com.paypal.selion.grid.servlets.transfer.FileTransferResponse;9import com.paypal.selion.grid.servlets.transfer.FileTransferResponseBuilder;10import com.paypal.selion.grid.servlets.transfer.TransferManager;11import com.paypal.selion.grid.servlets.transfer.UploadListener;12import java.io.File;13import java.io.IOException;14import java.net.URL;15import java.util.ArrayList;16import java.util.List;17import org.apache.commons.io.FileUtils;18import org.apache.commons.io.FilenameUtils;19import org.apache.commons.lang.StringUtils;20import org.openqa.selenium.WebDriverException;21public class ArtifactUploaderImpl implements ArtifactUploader {22 private static final String SELENIUM_GRID_EXTRA_ARTIFACTS_DIR = "selenium.grid.extra.artifacts.dir";23 private static final String SELENIUM_GRID_EXTRA_ARTIFACTS_URL = "selenium.grid.extra.artifacts.url";24 private static final String SELENIUM_GRID_EXTRA_ARTIFACTS_DIR_DEFAULT = "artifacts";25 private static final String SELENIUM_GRID_EXTRA_ARTIFACTS_URL_DEFAULT = "artifacts";26 private final String artifactsDir;27 private final String artifactsUrl;28 public ArtifactUploaderImpl() {29 artifactsDir = System.getProperty(SELENIUM_GRID_EXTRA_ARTIFACTS_DIR, SELENIUM_GRID_EXTRA_ARTIFACTS_DIR_DEFAULT);30 artifactsUrl = System.getProperty(SELENIUM_GRID_EXTRA_ARTIFACTS_URL, SELENIUM_GRID_EXTRA_ARTIFACTS_URL_DEFAULT);31 }32 public FileTransferResponse uploadFile(FileTransferRequest request, UploadListener listener)33 throws ArtifactUploadException {34 String session = request.getSession();35 String file = request.getFile();36 String type = request.getType();37 if (StringUtils.isBlank(session)) {38 throw new ArtifactUploadException("Session id is missing");39 }40 if (StringUtils.isBlank(file)) {41 throw new ArtifactUploadException("
ArtifactUploadException
Using AI Code Generation
1try {2} catch (ArtifactUploadException e) {3}4Constructor Summary ArtifactUploadException()5public ArtifactUploadException()6public ArtifactUploadException(String message)7public ArtifactUploadException(Throwable cause)8Constructs an ArtifactUploadException with the specified cause. Parameters: cause - the cause (which is saved for later retrieval by the Throwable.getCause() method). (A null value is permitted, and indicates that the cause is nonexistent or unknown.)9public ArtifactUploadException(String message,10Constructs an ArtifactUploadException with the specified detail message and cause. Parameters: message - the detail message. cause - the cause (which is saved for later retrieval by the Throwable.getCause() method). (A null value is permitted, and indicates that the cause is nonexistent or unknown.)11public ArtifactUploadException(String message,
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!