/** If the transformation has at least one step in a transformation, which writes it's data straight to a servlet output we should wait transformation's termination. Otherwise the servlet's response lifecycle may come to an end and the response will be closed by container while the transformation will be still trying writing data into it. */ @VisibleForTesting void finishProcessing( Trans trans, PrintWriter out ) { if ( trans.getSteps().stream().anyMatch( step -> step.meta.passDataToServletOutput() ) ) { trans.waitUntilFinished(); } else { WebResult webResult = new WebResult( WebResult.STRING_OK, "Transformation started", trans.getContainerObjectId() ); out.println( webResult.getXML() ); out.flush(); } }
@Override WebResult generateBody( HttpServletRequest request, HttpServletResponse response, boolean useXML ) throws IOException, KettleException { final String xml = IOUtils.toString( request.getInputStream() ); // Parse the XML, create a job configuration JobConfiguration jobConfiguration = JobConfiguration.fromXML( xml ); Job job = createJob( jobConfiguration ); String message = "Job '" + job.getJobname() + "' was added to the list with id " + job.getContainerObjectId(); return new WebResult( WebResult.STRING_OK, message, job.getContainerObjectId() ); } }
@Override WebResult generateBody( HttpServletRequest request, HttpServletResponse response, boolean useXML ) throws IOException, KettleException { final String xml = IOUtils.toString( request.getInputStream() ); // Parse the XML, create a transformation configuration TransConfiguration transConfiguration = TransConfiguration.fromXML( xml ); Trans trans = createTrans( transConfiguration ); String message = "Transformation '" + trans.getName() + "' was added to Carte with id " + trans.getContainerObjectId(); return new WebResult( WebResult.STRING_OK, message, trans.getContainerObjectId() ); }
public static WebResult fromXMLString( String xml ) throws KettleXMLException { try { Document doc = XMLHandler.loadXMLString( xml ); Node node = XMLHandler.getSubNode( doc, XML_TAG ); return new WebResult( node ); } catch ( Exception e ) { throw new KettleXMLException( BaseMessages.getString( PKG, "WebResult.Error.UnableCreateResult" ), e ); } }
String st = ExceptionUtils.getFullStackTrace( e ); if ( useXML ) { out.println( new WebResult( WebResult.STRING_ERROR, st ).getXML() ); } else { out.println( "<p><pre>" );
+ transName + "] with id [" + Const.NVL( id, "" ) + "] could not be found"; if ( useXML ) { out.println( new WebResult( WebResult.STRING_ERROR, message ) ); } else { out.println( "<H1>" + Encode.forHtml( message ) + "</H1>" ); out.println( new WebResult( WebResult.STRING_OK, message ).getXML() ); } else { out.println( "<H1>" + Encode.forHtml( message ) + "</H1>" ); out.println( new WebResult( WebResult.STRING_ERROR, "Unexpected error during transformations cleanup:" + Const.CR + Const.getStackTracker( ex ) ) ); } else {
return new WebResult( WebResult.STRING_OK, fileUrl, resultId );
out.println( new WebResult( WebResult.STRING_OK, message, id ).getXML() ); } else { out.println( "<H1>" + Encode.forHtml( message ) + "</H1>" ); out.println( new WebResult( WebResult.STRING_ERROR, message, id ).getXML() ); } else { out.println( "<H1>" + Encode.forHtml( message ) + "</H1>" ); out.println( new WebResult( WebResult.STRING_ERROR, Const.getStackTracker( ex ) ).getXML() ); } else { out.println( "<p>" );
+ transName + "] is not ready to be started. (Was not prepared for execution)"; if ( useXML ) { out.println( new WebResult( WebResult.STRING_ERROR, message ) ); } else { out.println( "<H1>" + Encode.forHtml( message ) + "</H1>" ); out.println( new WebResult( WebResult.STRING_ERROR, BaseMessages.getString( PKG, "TransStatusServlet.Log.CoundNotFindSpecTrans", transName ) ) ); } else { out.println( new WebResult( WebResult.STRING_ERROR, "Unexpected error during transformation execution preparation:" + Const.CR + Const.getStackTracker( ex ) ) );
out.println( new WebResult( WebResult.STRING_OK, message ).getXML() ); } else { out.println( "<H1>" + Encode.forHtml( message ) + "</H1>" ); String message = BaseMessages.getString( PKG, "StopJobServlet.Log.CoundNotFindJob", jobName ); if ( useXML ) { out.println( new WebResult( WebResult.STRING_ERROR, message ).getXML() ); } else { out.println( "<H1>" + Encode.forHtml( message ) + "</H1>" ); out.println( new WebResult( WebResult.STRING_ERROR, Const.getStackTracker( ex ) ).getXML() ); } else { out.println( "<p>" );
out.println( new WebResult( WebResult.STRING_OK, message ).getXML() ); } else { out.println( "<H1>" + Encode.forHtml( message ) + "</H1>" ); out.println( new WebResult( WebResult.STRING_ERROR, message ).getXML() ); } else { out.println( "<H1>" + Encode.forHtml( message ) + "</H1>" ); out.println( new WebResult( WebResult.STRING_ERROR, Const.getStackTracker( ex ) ).getXML() ); } else { out.println( "<p>" );
out.println( new WebResult( WebResult.STRING_ERROR, BaseMessages.getString( PKG, "TransStatusServlet.Log.CoundNotFindSpecTrans", transName ) ) ); } else {
out.println( new WebResult( WebResult.STRING_ERROR, BaseMessages.getString( PKG, "RemoveJobServlet.Log.CoundNotFindSpecJob", jobName ) ) ); } else {
KettleLogStore.getAppender().getBuffer( trans.getLogChannel().getLogChannelId(), true ).toString(); if ( useXML ) { out.println( new WebResult( WebResult.STRING_ERROR, BaseMessages.getString( PKG, "PrepareExecutionTransServlet.Error.TransInitFailed", Const.CR + logText + Const.CR + Const.getStackTracker( e ) ) ) ); out.println( new WebResult( WebResult.STRING_ERROR, BaseMessages.getString( PKG, "TransStatusServlet.Log.CoundNotFindSpecTrans", transName ) ) ); } else { out.println( new WebResult( WebResult.STRING_ERROR, BaseMessages.getString( PKG, "PrepareExecutionTransServlet.Error.UnexpectedError", Const.CR + Const.getStackTracker( ex ) ) ) );
out.println( new WebResult( WebResult.STRING_OK, message ).getXML() ); } else { String message = BaseMessages.getString( PKG, "TransStatusServlet.Log.CoundNotFindSpecTrans", transName ); if ( useXML ) { out.println( new WebResult( WebResult.STRING_ERROR, message, id ) ); } else { out.println( "<H1>" + Encode.forHtml( message ) + "</H1>" ); out.println( new WebResult( WebResult.STRING_ERROR, BaseMessages.getString( PKG, "StartTransServlet.Error.UnexpectedError", Const.CR + Const.getStackTracker( ex ) ) ) ); } else {
WebResult webResult = new WebResult( WebResult.STRING_OK, "Job started", carteObjectId ); out.println( webResult.getXML() ); out.flush(); out.println( new WebResult( WebResult.STRING_ERROR, BaseMessages.getString( PKG, "ExecuteJobServlet.Error.UnexpectedError", Const.CR + Const.getStackTracker( ex ) ) ) );
out.println( new WebResult( WebResult.STRING_ERROR, BaseMessages.getString( PKG, "RunTransServlet.Error.UnexpectedError", Const.CR + Const.getStackTracker( ex ) ) ) );
runJob( job ); WebResult webResult = new WebResult( WebResult.STRING_OK, "Job started", carteObjectId ); out.println( webResult.getXML() ); out.flush(); out.println( new WebResult( WebResult.STRING_ERROR, BaseMessages.getString( PKG, "RunJobServlet.Error.UnexpectedError", Const.CR + Const.getStackTracker( ex ) ) ) );