public String createNewInstance( final boolean persisted, final Map parameters, final boolean forceImmediateWrite ) { return runtimeContext.createNewInstance( persisted, parameters, forceImmediateWrite ); }
public static void audit( final IRuntimeContext runtimeContext, final IPentahoSession session, final String messageType, final String message, final String value, final float duration, final ILogger logger ) { String instanceId = ( runtimeContext == null ) ? "" : runtimeContext.getInstanceId(); //$NON-NLS-1$ String userId = session.getName(); String actionName = ( runtimeContext == null ) ? null : runtimeContext.getActionName(); String objectType = ( runtimeContext == null ) ? "" : runtimeContext.getCurrentComponentName(); //$NON-NLS-1$ String processId = ( runtimeContext == null ) ? null : runtimeContext.getProcessId(); AuditHelper.audit( instanceId, userId, actionName, objectType, processId, messageType, message, value, duration, logger ); }
@SuppressWarnings( { "unchecked" } ) InputProperties( final IRuntimeContext context ) { this.context = context; inputs = new HashSet<String>(); inputs.addAll( context.getInputNames() ); inputs.addAll( context.getParameterManager().getCurrentInputNames() ); inputs.add( "$user" ); //$NON-NLS-1$ inputs.add( "$url" ); //$NON-NLS-1$ inputs.add( "$solution" ); //$NON-NLS-1$ }
public Object getInputValue( final IActionInput actionInput ) { Object value = null; String variableName = actionInput.getName(); if ( runtimeContext.getInputNames().contains( variableName ) ) { value = runtimeContext.getInputParameterValue( variableName ); } if ( value instanceof IContentItem ) { value = ( (IContentItem) value ).getInputStream(); } return value; }
if ( context.getStatus() == IRuntimeContext.RUNTIME_STATUS_SUCCESS ) { Iterator outputNameIterator = context.getOutputNames().iterator(); while ( outputNameIterator.hasNext() ) { IActionParameter output = context.getOutputParameter( attributeName ); } finally { if ( context != null ) { context.dispose();
long end = System.currentTimeMillis(); AuditHelper.audit( session.getId(), session.getName(), sequencePath, getObjectName(), processId, MessageTypes.INSTANCE_FAILED, runtime.getInstanceId(), Messages.getInstance().getErrorString( "SolutionEngine.ERROR_0007_ACTION_EXECUTION_FAILED" ), ( (float) ( end - start ) / 1000 ), this ); //$NON-NLS-1$ return runtime; runtime.setActionSequence( actionSequence ); if ( parameterXsl != null ) { runtime.setParameterXsl( parameterXsl ); runtime.setPromptStatus( IRuntimeContext.PROMPT_WAITING ); } else { runtime.setPromptStatus( IRuntimeContext.PROMPT_NO ); runtime.validateSequence( FilenameUtils.getName( sequencePath ), execListener ); validating = false; runtime.executeSequence( doneListener, execListener, async ); if ( instanceEnds ) { long end = System.currentTimeMillis(); AuditHelper.audit( session.getId(), session.getName(), sequencePath, getObjectName(), processId, MessageTypes.INSTANCE_END, runtime.getInstanceId(), "", ( (float) ( end - start ) / 1000 ), this ); //$NON-NLS-1$ status = runtime.getStatus(); } catch ( ActionSequenceException ex ) { String errorMsg = null; MessageTypes.INSTANCE_FAILED, runtime.getInstanceId(), errorMsg, ( (float) ( end - start ) / 1000 ), this ); // $NON-NLS-1$
public void testRuntimeInputsAndOutputs() { startTest(); ISolutionEngine solutionEngine = ServiceTestHelper.getSolutionEngine(); try { String xactionStr = ServiceTestHelper.getXAction( SOLUTION_PATH, "test/pojo/pojo5.xaction" ); IRuntimeContext runtimeContext = solutionEngine.execute( xactionStr, "pojo5.xaction", "empty action sequence test", false, true, null, false, //$NON-NLS-1$ //$NON-NLS-2$ new HashMap(), null, null, new SimpleUrlFactory( "" ), new ArrayList() ); assertNotNull( "RuntimeContext is null", runtimeContext ); assertEquals( "Action sequence execution failed", runtimeContext.getStatus(), IRuntimeContext.RUNTIME_STATUS_SUCCESS ); IActionParameter param = runtimeContext.getOutputParameter( "output1" ); assertNotNull( "param is null", param ); assertEquals( "hello", param.getValue().toString() ); param = runtimeContext.getOutputParameter( "output2" ); assertNotNull( "param is null", param ); assertEquals( "world", param.getValue().toString() ); } catch ( Exception e ) { // we should not get here e.printStackTrace(); assertTrue( e.getMessage(), false ); } finishTest(); }
public void testKeyedTableTemplate() { IRuntimeContext mockRuntimeContext = mock( IRuntimeContext.class ); IPentahoSession mockSession = mock( IPentahoSession.class ); IParameterManager mockParameterManager = mock( IParameterManager.class ); IPentahoResultSet mockPentahoResultSet = createMockResultSet(); IPentahoMetaData mockPentahoMetaData = mock( IPentahoMetaData.class ); final Set inputNames = new HashSet<Object>( Arrays.asList( new String[] { "param1" } ) ); when( mockParameterManager.getCurrentInputNames() ).thenReturn( inputNames ); when( mockRuntimeContext.getSession() ).thenReturn( mockSession ); when( mockRuntimeContext.getParameterManager() ).thenReturn( mockParameterManager ); when( mockRuntimeContext.getInputParameterValue( "param1" ) ).thenReturn( mockPentahoResultSet ); when( mockRuntimeContext.getInputNames() ).thenReturn( inputNames ); String template = "{param1:keycol:key_Value:valcol:defaultValue}"; // "key_value" is parsed as "key value" assertEquals( "field Value", TemplateUtil.applyTemplate( template, mockRuntimeContext ) ); }
public static Document createSoapResponseDocument( IRuntimeContext context, IOutputHandler outputHandler, OutputStream contentStream, List messages ) { Document document = createSoapDocument(); if ( ( context == null ) || ( context.getStatus() != IRuntimeContext.RUNTIME_STATUS_SUCCESS ) ) { document.getRootElement().element( "SOAP-ENV:Body" ).add( createSoapFaultElement( messages ) ); //$NON-NLS-1$ } else { Set outputNames = context.getOutputNames(); contentItem = outputHandler.getOutputContentItem( IOutputHandler.RESPONSE, IOutputHandler.CONTENT, context .getInstanceId(), "text/xml" ); //$NON-NLS-1$ if ( ( outputNames.size() == 1 ) && ( contentItem != null ) ) { String mimeType = contentItem.getMimeType(); Object value = context.getOutputParameter( outputName ).getValue(); if ( value == null ) { value = ""; //$NON-NLS-1$ Object value = context.getOutputParameter( outputName ).getValue(); if ( value == null ) { value = ""; //$NON-NLS-1$
when( context.getOutputNames() ).thenReturn( outputNames ); when( context.getStatus() ).thenReturn( IRuntimeContext.RUNTIME_STATUS_SUCCESS ); when( context.getOutputParameter( anyString() ) ).thenReturn( actionParameter ); List messages = new ArrayList();
@Override public String publish( final IPentahoSession localSession ) { try { HashMap<String, String> parameters = new HashMap<String, String>(); ISolutionEngine engine = SolutionHelper.execute( "publisher", localSession, "admin/clean_repository.xaction", //$NON-NLS-1$//$NON-NLS-2$ parameters, null ); IRuntimeContext context = engine.getExecutionContext(); int status = context.getStatus(); if ( status != IRuntimeContext.RUNTIME_STATUS_SUCCESS ) { return Messages.getInstance().getString( "CleanRepoPublisher.ERROR_0001_CLEAN_REPO_FAILED" ); //$NON-NLS-1$ } } catch ( Throwable t ) { error( Messages.getInstance().getErrorString( "CleanRepoPublisher.ERROR_0001_CLEAN_REPO_FAILED", t.getMessage() ), t ); //$NON-NLS-1$ return Messages.getInstance().getString( "CleanRepoPublisher.ERROR_0001_CLEAN_REPO_FAILED", t.getLocalizedMessage() ); //$NON-NLS-1$ } return Messages.getInstance().getString( "CleanRepoPublisher.CLEAN_REPO_DONE" ); //$NON-NLS-1$ } }
Set outputNames = context.getOutputNames(); Iterator outputNameIterator = outputNames.iterator(); while ( outputNameIterator.hasNext() ) { String outputName = (String) outputNameIterator.next(); Object value = context.getOutputParameter( outputName ).getValue(); if ( value == null ) { value = ""; //$NON-NLS-1$ ReturnParameter rpm = (ReturnParameter) context.getParameterManager().getReturnParameters().get( outputName ); List messages = context.getMessages(); Iterator messageIterator = messages.iterator(); while ( messageIterator.hasNext() ) { Set outputNames = context.getOutputNames(); Iterator outputNameIterator = outputNames.iterator(); while ( outputNameIterator.hasNext() ) { String outputName = (String) outputNameIterator.next(); Object value = context.getOutputParameter( outputName ).getValue(); if ( value == null ) { value = ""; //$NON-NLS-1$ ReturnParameter rpm = (ReturnParameter) context.getParameterManager().getReturnParameters().get( outputName ); List messages = context.getMessages(); Iterator messageIterator = messages.iterator(); while ( messageIterator.hasNext() ) {
public void testTableTemplate() { IRuntimeContext mockRuntimeContext = mock( IRuntimeContext.class ); IPentahoSession mockSession = mock( IPentahoSession.class ); IParameterManager mockParameterManager = mock( IParameterManager.class ); IPentahoResultSet mockPentahoResultSet = mock( IPentahoResultSet.class ); Object[] mockRow = new Object[] { "field0", "field1" }; when( mockPentahoResultSet.getColumnCount() ).thenReturn( mockRow.length ); when( mockPentahoResultSet.getDataRow( 0 ) ).thenReturn( mockRow ); when( mockParameterManager.getCurrentInputNames() ).thenReturn( new HashSet<Object>( Arrays.asList( new String[] { "param1" } ) ) ); when( mockRuntimeContext.getSession() ).thenReturn( mockSession ); when( mockRuntimeContext.getParameterManager() ).thenReturn( mockParameterManager ); when( mockRuntimeContext.getInputParameterValue( "param1" ) ).thenReturn( mockPentahoResultSet ); String template = "table {param1:col:1} and text"; IParameterResolver resolver = mock( IParameterResolver.class ); assertEquals( "table field1 and text", TemplateUtil.applyTemplate( template, mockRuntimeContext, resolver ) ); }
if ( context.getOutputNames().contains( actionOutput ) ) { IActionParameter output = context.getOutputParameter( actionOutput ); IPentahoResultSet results = output.getValueAsResultSet(); if ( results != null ) { Iterator it = context.getOutputNames().iterator(); while ( it.hasNext() ) { IActionParameter output = (IActionParameter) it.next();
if ( context.getOutputNames().contains( listSource ) ) { IActionParameter output = context.getOutputParameter( listSource ); IPentahoResultSet results = output.getValueAsResultSet(); if ( results != null ) { Iterator it = context.getOutputNames().iterator(); while ( it.hasNext() ) { IActionParameter output = (IActionParameter) it.next(); } finally { if ( context != null ) { context.dispose();
return value; IParameterManager paramMgr = context.getParameterManager(); Map allParams = paramMgr.getAllParameters(); Object valueObj; valueObj = param.getValue(); } else { valueObj = context.getInputParameterValue( name );
public void dispose() { if ( context != null ) { context.dispose(); } }
private String getComponentSetting( final String path ) { // first check to see if we have an input parameter that we can use for // this. if ( runtimeContext.getInputNames().contains( path ) ) { return runtimeContext.getInputParameterStringValue( path ); } if ( componentDefinitionMap != null && componentDefinitionMap.containsKey( path ) ) { return componentDefinitionMap.get( path ); } else { // now check the component node from the action definition. Node node = componentDefinition.selectSingleNode( path ); if ( node == null ) { return null; } return node.getText(); } }
public IRuntimeContext execute( final IRuntimeContext pRuntime, String actionPath, final String processId, final boolean async, final boolean instanceEnds, final Map parameterProviderMap, final IOutputHandler outputHandler ) { applyParameterMappers( parameterProviderMap ); runtime = pRuntime; runtime.setOutputHandler( outputHandler ); auditStart( actionPath, runtime.getInstanceId() ); if ( !checkParameters( actionPath, processId ) ) { status = IRuntimeContext.RUNTIME_STATUS_FAILURE; return null; } return executeInternal( actionPath, processId, async, instanceEnds, parameterProviderMap ); }