osworkflow / docs / 5.1 Interface choices.html

        <title>5.1 Interface choices</title>
	    <link rel="stylesheet" href="styles/site.css" type="text/css" />

	    <table class="pagecontent" border="0" cellpadding="0" cellspacing="0" width="100%" bgcolor="#ffffff">
			    <td valign="top" class="pagebody">

				    <ul class="star">
<li> Back to <a href="4.4 Palettes.html">4.4 Palettes</a></li>
<li> Forward to <a href="5.2 Creating a new workflow.html">5.2 Creating a new workflow</a></li>
OSWorkflow provides several implementations of the <b class="strong">com.opensymphony.workflow.Workflow</b> interface that can be used in your application.<p class="paragraph"><h2 class="heading2"> BasicWorkflow</h2></p>The BasicWorkflow has no transactional support, though depending upon your persistence implementation, transactional support can be wrapped around this. It is created by doing  <div class="code"><pre>Workflow wf = <span class="java&#45;keyword">new</span> BasicWorkflow(username)</pre></div> where username is the user who is associated with the current request.<p class="paragraph"><h2 class="heading2"> EJBWorkflow</h2></p>The EJB workflow uses the EJB container to manage transactions. This is configured in <b class="strong">ejb-jar.xml</b>. It is created by doing <div class="code"><pre>Workflow wf = <span class="java&#45;keyword">new</span> EJBWorkflow()</pre></div>. There is no need to give the username (as in BasicWorkflow and OfbizWorkflow) since that is automatically pulled in from the EJB container once the user has been authorized.<p class="paragraph"><h2 class="heading2"> OfbizWorkflow</h2></p>The OfbizWorkflow is exactly like the BasicWorkflow in every way, except that methods that require transactional support are wrapped with ofbiz TransactionUtil calls.