### Execute Hello World 2 Example
Source: https://github.com/apache/ode/blob/master/distro/src/examples-server/readme.txt
Invoke the Hello World 2 service using the sendsoap command from the example directory.
```shell
sendsoap http://localhost:8080/ode/processes/helloWorld testRequest.soap
```
--------------------------------
### Execute Dynamic Partner Example
Source: https://github.com/apache/ode/blob/master/distro/src/examples-server/readme.txt
Invoke the Dynamic Partner service using the sendsoap command from the example directory.
```shell
sendsoap http://localhost:8080/ode/processes/DynMainService testRequest.soap
```
--------------------------------
### Initialize and Start ODE Server Programmatically
Source: https://context7.com/apache/ode/llms.txt
Initialize and start the ODE server using the BpelServer interface. Requires configuration of scheduler, message exchange context, binding context, and endpoint reference context.
```java
import org.apache.ode.bpel.iapi.*;
import javax.xml.namespace.QName;
// Initialize ODE Server programmatically
public class OdeIntegration {
public void startOdeServer(BpelServer server,
Scheduler scheduler,
MessageExchangeContext mexContext,
BindingContext bindingContext,
EndpointReferenceContext eprContext)
throws BpelEngineException {
// Configure server components
server.setScheduler(scheduler);
server.setMessageExchangeContext(mexContext);
server.setBindingContext(bindingContext);
server.setEndpointReferenceContext(eprContext);
// Initialize and start the engine
server.init();
server.start();
// Get engine for transactional operations
BpelEngine engine = server.getEngine();
}
public void deployProcess(BpelServer server, ProcessConf processConf)
throws BpelEngineException {
// Register a process with the server
server.register(processConf);
}
public void undeployProcess(BpelServer server, QName processId)
throws BpelEngineException {
// Unregister a process
server.unregister(processId);
}
public void stopServer(BpelServer server) throws BpelEngineException {
server.stop();
server.shutdown();
}
}
```
--------------------------------
### Execute Magic Session Example
Source: https://github.com/apache/ode/blob/master/distro/src/examples-server/readme.txt
Invoke the Magic Session service using the sendsoap command from the example directory.
```shell
sendsoap http://localhost:8080/ode/processes/MSMainExecuteService testRequest.soap
```
--------------------------------
### List Active HelloWorld Instances
Source: https://context7.com/apache/ode/llms.txt
Lists active instances of the HelloWorld process, ordered by start date. Supports filtering by status, start date, last active time, and correlation properties.
```bash
curl -X POST http://localhost:8080/ode/processes/InstanceManagement \
-H "Content-Type: text/xml" \
-d '
name=HelloWorld status=active-started100'
```
--------------------------------
### ODE Server Configuration (ode-axis2.properties)
Source: https://context7.com/apache/ode/llms.txt
This properties file configures the ODE server. The example shows how to set the database mode, with options like EMBEDDED, EXTERNAL, or INTERNAL.
```properties
# ode-axis2.properties - ODE Server Configuration
# Database Mode: EMBEDDED, EXTERNAL, INTERNAL
ode-axis2.db.mode=EMBEDDED
```
--------------------------------
### List Processes with Filter and Ordering
Source: https://context7.com/apache/ode/llms.txt
This command lists processes that match specific filter criteria and allows custom ordering of the results. You can filter by name, namespace, status, and deployment date. The example shows listing active processes ordered by name.
```bash
curl -X POST http://localhost:8080/ode/processes/ProcessManagement \
-H "Content-Type: text/xml" \
-d '
status=active name=Hello*name'
```
--------------------------------
### POST /ode/processes/ProcessManagement - Get Process Details
Source: https://context7.com/apache/ode/llms.txt
Retrieves detailed information about a specific process.
```APIDOC
## POST /ode/processes/ProcessManagement
### Description
Retrieves detailed information about a specific process including endpoints, properties, and document definitions.
### Method
POST
### Endpoint
/ode/processes/ProcessManagement
### Request Body
- **getProcessInfo** (xml) - Required - The XML payload to request process details.
- **pid** (QName) - Required - The Process ID (QName) of the process to retrieve information for.
### Request Example
```xml
{http://ode/bpel/unit-test}HelloWorld
```
### Response
#### Success Response (200)
- **process-info** (object) - Detailed information about the process (structure may vary, but includes endpoints, properties, etc.).
#### Response Example
```xml
```
```
--------------------------------
### Get Instance Details
Source: https://context7.com/apache/ode/llms.txt
Retrieves detailed information about a specific process instance using its instance ID. The response includes instance status, scope tree, fault information, and correlation properties.
```bash
curl -X POST http://localhost:8080/ode/processes/InstanceManagement \
-H "Content-Type: text/xml" \
-d '
12345'
```
--------------------------------
### Get Process Details
Source: https://context7.com/apache/ode/llms.txt
Retrieves detailed information for a specific process using its Process ID (PID). This includes endpoints, properties, and document definitions. Ensure the PID is correctly formatted with its namespace.
```bash
curl -X POST http://localhost:8080/ode/processes/ProcessManagement \
-H "Content-Type: text/xml" \
-d '
{http://ode/bpel/unit-test}HelloWorld'
```
--------------------------------
### Deploy a BPEL Process Package
Source: https://context7.com/apache/ode/llms.txt
Deploys a ZIP archive containing BPEL files and a deploy.xml descriptor to the ODE server.
```bash
# Deploy a process package using SOAP
curl -X POST http://localhost:8080/ode/processes/DeploymentService \
-H "Content-Type: text/xml" \
-d '
HelloWorldBASE64_ENCODED_ZIP_CONTENT'
# Response includes deployed package name and process IDs
#
#
# HelloWorld-1
# {http://ode/bpel/unit-test}HelloWorld
#
#
```
--------------------------------
### Initialize Deployment UI
Source: https://github.com/apache/ode/blob/master/axis2-war/src/main/webapp/deployment.html
Sets up the deployment interface by populating deployed packs and initializing the tab view on DOM ready.
```javascript
function init(){ org.apache.ode.DeploymentHandling.populateDeployedPacks(); setInterval('org.apache.ode.DeploymentHandling.populateDeployedPacks()', 15000); var myTabs = new YAHOO.widget.TabView("tabt"); } YAHOO.util.Event.onDOMReady(init);
```
--------------------------------
### POST /ode/processes/DeploymentService (deploy)
Source: https://context7.com/apache/ode/llms.txt
Deploys a new BPEL process package to the server.
```APIDOC
## POST /ode/processes/DeploymentService
### Description
Deploys a new BPEL process package to the server. The package must contain a deploy.xml descriptor in its root directory along with the BPEL process file and associated WSDL files.
### Method
POST
### Endpoint
http://localhost:8080/ode/processes/DeploymentService
### Request Body
- **name** (string) - Required - The name of the package
- **package** (object) - Required - The package content
- **zip** (string) - Required - BASE64 encoded ZIP content
### Response
#### Success Response (200)
- **name** (string) - Deployed package name
- **id** (string) - Process ID
```
--------------------------------
### POST /ode/processes/InstanceManagement (listInstances)
Source: https://context7.com/apache/ode/llms.txt
Lists process instances based on specified filters, ordering, and limits.
```APIDOC
## POST /ode/processes/InstanceManagement
### Description
Lists active instances for a process, ordered by start date.
### Method
POST
### Endpoint
http://localhost:8080/ode/processes/InstanceManagement
### Request Body
- **filter** (string) - Required - Filter criteria (e.g., name=HelloWorld status=active)
- **order** (string) - Optional - Ordering criteria (e.g., -started)
- **limit** (integer) - Optional - Maximum number of instances to return
### Request Example
name=HelloWorld status=active-started100
```
--------------------------------
### POST /ode/processes/DeploymentService (listDeployedPackages)
Source: https://context7.com/apache/ode/llms.txt
Returns a list of all currently deployed process packages on the server.
```APIDOC
## POST /ode/processes/DeploymentService
### Description
Returns a list of all currently deployed process packages on the server.
### Method
POST
### Endpoint
http://localhost:8080/ode/processes/DeploymentService
### Response
#### Success Response (200)
- **deployedPackages** (array) - List of package names
```
--------------------------------
### Manage Processes using ProcessStore Interface
Source: https://context7.com/apache/ode/llms.txt
Programmatically deploy, list, configure, and undeploy BPEL processes using the ProcessStore interface. Supports deploying from a directory, listing packages and processes, setting states, and properties.
```java
import org.apache.ode.bpel.iapi.*;
import javax.xml.namespace.QName;
import java.io.File;
import java.util.Collection;
import java.util.List;
public class ProcessStoreExample {
public void manageProcesses(ProcessStore store) {
// Deploy a process package from filesystem
File deploymentDir = new File("/path/to/HelloWorld");
Collection deployed = store.deploy(deploymentDir);
System.out.println("Deployed processes:");
for (QName pid : deployed) {
System.out.println(" - " + pid);
}
// List all deployed packages
Collection packages = store.getPackages();
for (String pkg : packages) {
System.out.println("Package: " + pkg);
// List processes in each package
List processes = store.listProcesses(pkg);
for (QName proc : processes) {
// Get process configuration
ProcessConf conf = store.getProcessConfiguration(proc);
System.out.println(" Process: " + proc);
System.out.println(" State: " + conf.getState());
System.out.println(" Version: " + conf.getVersion());
}
}
// Set process state (ACTIVE, RETIRED, DISABLED)
QName processId = new QName("http://ode/bpel/unit-test", "HelloWorld");
store.setState(processId, ProcessState.RETIRED);
// Set a process property
store.setProperty(processId,
new QName("http://example.org", "timeout"),
"30000");
// Undeploy a package
store.undeploy(deploymentDir);
}
}
```
--------------------------------
### Get Variable Value from Scope
Source: https://context7.com/apache/ode/llms.txt
Use this cURL command to retrieve the value of a variable from a specific scope within a running BPEL process instance. Ensure the ODE server is running and accessible at the specified endpoint.
```bash
curl -X POST http://localhost:8080/ode/processes/InstanceManagement \
-H "Content-Type: text/xml" \
-d '
scope-123orderData'
```
--------------------------------
### List All Processes with Full Information
Source: https://context7.com/apache/ode/llms.txt
Use this command to retrieve a comprehensive list of all deployed processes, including their status, version, deployment details, and instance counts. The response provides detailed information for each process.
```bash
curl -X POST http://localhost:8080/ode/processes/ProcessManagement \
-H "Content-Type: text/xml" \
-d '
'
```
--------------------------------
### List Processes in a Package
Source: https://context7.com/apache/ode/llms.txt
Returns the QNames of all processes contained within a specific deployed package.
```bash
# List processes in a package
curl -X POST http://localhost:8080/ode/processes/DeploymentService \
-H "Content-Type: text/xml" \
-d '
HelloWorld-1'
# Response contains QNames of all processes in the package
```
--------------------------------
### POST /ode/processes/InstanceManagement (getInstanceInfo)
Source: https://context7.com/apache/ode/llms.txt
Retrieves detailed information about a specific process instance.
```APIDOC
## POST /ode/processes/InstanceManagement
### Description
Retrieves detailed information about a specific process instance including its state, scope tree, and activity status.
### Method
POST
### Endpoint
http://localhost:8080/ode/processes/InstanceManagement
### Request Body
- **iid** (string) - Required - The instance ID
### Request Example
12345
### Response
#### Success Response (200)
- **iid** (string) - Instance ID
- **pid** (string) - Process ID
- **status** (string) - Current status
- **root-scope** (object) - Scope tree
- **fault-info** (object) - Fault details if applicable
- **correlation-properties** (object) - Correlation data
```
--------------------------------
### Initialize Statistics and Charting
Source: https://github.com/apache/ode/blob/master/axis2-war/src/main/webapp/index.html
Initializes statistics population and sets up a recurring update interval. Requires YAHOO widgets for charting.
```javascript
YAHOO.widget.Chart.SWFURL = "js/yui/charts.swf";
function populateStats(){
var stat = org.apache.ode.ProcessHandling.stats();
var html = '
Total Number of Processes in the System:
'+ stat.numOfProcesses+ '
Total Number of Instances in the System:
'+ stat.totalInst+ '
';
var statEle = document.getElementById('summary_tb');
statEle.innerHTML = html;
var chart_data = [
{instances: "Active", count:stat.activeInst},
{instances: "Completed", count:stat.completedInst},
{instances: "Terminated", count:stat.terminatedInst},
{instances: "Error", count:stat.errorInst},
{instances: "Failed", count:stat.failedInst},
{instances: "Suspended", count:stat.suspendedInst}
]
var ds = new YAHOO.util.DataSource(chart_data);
ds.responseType = YAHOO.util.DataSource.TYPE_JSARRAY;
ds.responseSchema = {fields:["instances", "count"]};
var chartPie = new YAHOO.widget.PieChart("summary_chart", ds, {
dataField: "count",
categoryField: "instances",
style: {
padding: 10,
legend: {
display: "right",
padding: 10,
spacing: 5,
font: {
family: "Arial",
size: 13
}
}
}
});
}
function init(){
populateStats();
setInterval("populateStats()", 10000);
}
YAHOO.util.Event.onDOMReady(init);
```
--------------------------------
### POST /ode/processes/ProcessManagement - List All Processes
Source: https://context7.com/apache/ode/llms.txt
Retrieves a list of all deployed processes with their full information.
```APIDOC
## POST /ode/processes/ProcessManagement
### Description
Lists all deployed processes with their full information, including PID, status, version, deployment details, and instance summary.
### Method
POST
### Endpoint
/ode/processes/ProcessManagement
### Request Body
- **listAllProcesses** (xml) - Required - The XML payload to request the list of all processes.
### Request Example
```xml
```
### Response
#### Success Response (200)
- **process-info** (array) - Contains details for each process.
- **pid** (QName) - Process ID.
- **status** (string) - Current status (ACTIVE, RETIRED, DISABLED).
- **version** (string) - Process version.
- **deployment-info** (object) - Deployment details.
- **deployer** (string) - Name of the deployer.
- **deploy-date** (string) - Deployment date.
- **instance-summary** (object) - Summary of process instances.
- **active** (integer) - Count of active instances.
- **completed** (integer) - Count of completed instances.
- **failed** (integer) - Count of failed instances.
#### Response Example
```xml
........................
```
```
--------------------------------
### Invoke HelloWorld via sendsoap
Source: https://context7.com/apache/ode/llms.txt
Uses the bundled sendsoap utility to execute a process request from a local file.
```bash
bin/sendsoap http://localhost:8080/ode/processes/helloWorld testRequest.soap
```
--------------------------------
### BPEL Process Definition (HelloWorld2.bpel)
Source: https://context7.com/apache/ode/llms.txt
This is a basic synchronous BPEL process definition. It imports a WSDL, defines partner links and variables, and implements a simple sequence of receive, assign, and reply activities. It uses XPath 2.0 for querying and expressions.
```xml
concat($tmpVar,' World')
```
--------------------------------
### POST /ode/processes/DeploymentService (listProcesses)
Source: https://context7.com/apache/ode/llms.txt
Returns all process IDs deployed as part of a specific package.
```APIDOC
## POST /ode/processes/DeploymentService
### Description
Returns all process IDs deployed as part of a specific package.
### Method
POST
### Endpoint
http://localhost:8080/ode/processes/DeploymentService
### Request Body
- **packageName** (string) - Required - The name of the package
### Response
#### Success Response (200)
- **processes** (array) - List of QNames of all processes in the package
```
--------------------------------
### POST /ode/processes/InstanceManagement (suspend/resume/terminate)
Source: https://context7.com/apache/ode/llms.txt
Lifecycle management operations for process instances.
```APIDOC
## POST /ode/processes/InstanceManagement
### Description
Operations to suspend, resume, or terminate a process instance.
### Method
POST
### Endpoint
http://localhost:8080/ode/processes/InstanceManagement
### Request Body
- **iid** (string) - Required - The instance ID
### Request Example
12345
```
--------------------------------
### Deployment Descriptor (deploy.xml)
Source: https://context7.com/apache/ode/llms.txt
This XML file configures the deployment of a BPEL process. It maps partner links to concrete service endpoints, specifies if the process is active, and defines instance cleanup policies for success and failure scenarios.
```xml
trueinstancemessages
```
--------------------------------
### Java API - ProcessStore Interface
Source: https://context7.com/apache/ode/llms.txt
Manage process deployments and configurations programmatically using the ProcessStore interface.
```APIDOC
## Java API - ProcessStore Interface
The ProcessStore interface manages process deployments and configurations programmatically.
```java
import org.apache.ode.bpel.iapi.*;
import javax.xml.namespace.QName;
import java.io.File;
import java.util.Collection;
import java.util.List;
public class ProcessStoreExample {
public void manageProcesses(ProcessStore store) {
// Deploy a process package from filesystem
File deploymentDir = new File("/path/to/HelloWorld");
Collection deployed = store.deploy(deploymentDir);
System.out.println("Deployed processes:");
for (QName pid : deployed) {
System.out.println(" - " + pid);
}
// List all deployed packages
Collection packages = store.getPackages();
for (String pkg : packages) {
System.out.println("Package: " + pkg);
// List processes in each package
List processes = store.listProcesses(pkg);
for (QName proc : processes) {
// Get process configuration
ProcessConf conf = store.getProcessConfiguration(proc);
System.out.println(" Process: " + proc);
System.out.println(" State: " + conf.getState());
System.out.println(" Version: " + conf.getVersion());
}
}
// Set process state (ACTIVE, RETIRED, DISABLED)
QName processId = new QName("http://ode/bpel/unit-test", "HelloWorld");
store.setState(processId, ProcessState.RETIRED);
// Set a process property
store.setProperty(processId,
new QName("http://example.org", "timeout"),
"30000");
// Undeploy a package
store.undeploy(deploymentDir);
}
}
```
```
--------------------------------
### Clustering Support Configuration
Source: https://context7.com/apache/ode/llms.txt
Enable and configure clustering support, specifying the implementation class.
```properties
# ode-axis2.clustering.enabled=true
# ode-axis2.clustering.impl.class=org.apache.ode.clustering.hazelcast.HazelcastClusterImpl
```
--------------------------------
### POST /ode/processes/InstanceManagement (recoverActivity)
Source: https://context7.com/apache/ode/llms.txt
Performs recovery actions on failed activities.
```APIDOC
## POST /ode/processes/InstanceManagement
### Description
Performs recovery actions on failed activities within a process instance.
### Method
POST
### Endpoint
http://localhost:8080/ode/processes/InstanceManagement
### Request Body
- **iid** (string) - Required - Instance ID
- **aid** (string) - Required - Activity ID
- **action** (string) - Required - Action to perform (retry, fault, cancel)
### Request Example
1234567890retry
```
--------------------------------
### POST /ode/processes/DeploymentService (undeploy)
Source: https://context7.com/apache/ode/llms.txt
Undeploys a previously deployed process package from the server.
```APIDOC
## POST /ode/processes/DeploymentService
### Description
Undeploys a previously deployed process package from the server. All processes in the package will be unregistered.
### Method
POST
### Endpoint
http://localhost:8080/ode/processes/DeploymentService
### Request Body
- **packageName** (string) - Required - The name of the package to undeploy
### Response
#### Success Response (200)
- **response** (boolean) - Returns true if successful
```
--------------------------------
### Initialize Process Content Population
Source: https://github.com/apache/ode/blob/master/axis2-war/src/main/webapp/processes.html
Sets up an interval to refresh process content every 15 seconds using the YUI library.
```javascript
function init(){ org.apache.ode.ProcessHandling.populateContent(); setInterval('org.apache.ode.ProcessHandling.populateContent()', 15000); } YAHOO.util.Event.onDOMReady(init);
```
--------------------------------
### List Deployed Process Packages
Source: https://context7.com/apache/ode/llms.txt
Retrieves a list of all process packages currently deployed on the server.
```bash
# List all deployed packages
curl -X POST http://localhost:8080/ode/processes/DeploymentService \
-H "Content-Type: text/xml" \
-d '
'
# Response:
#
#
# HelloWorld-1
# OrderProcess-2
#
#
```
--------------------------------
### Asynchronous Deployment Handling
Source: https://github.com/apache/ode/blob/master/axis2-war/src/main/webapp/deployment.html
Manages form submission and response handling for asynchronous process deployment.
```javascript
function clearOpstat(){ var opStatDiv = document.getElementById('opstat'); opStatDiv.value = ""; } function handleSuccess(o){ document.getElementById('opstat').innerHTML = '
'+ trim(o.responseText).replace(/\n/g, "") + '
'; org.apache.ode.DeploymentHandling.populateDeployedPacks(); } function handleFailure(o){ document.getElementById('opstat').innerHTML = trim(o.responseText).replace(/\n/g, ""); } var callback = { success:handleSuccess, failure:handleFailure, upload:handleSuccess } function submitFormAsync(fomrID){ clearOpstat(); var form = document.getElementById(fomrID); if(document.getElementById('uploadfile').value == ""){ alert('Please select a package to deploy!'); }else{ YAHOO.util.Connect.setForm(form, true, true); YAHOO.util.Connect.asyncRequest("POST", form.getAttribute("action"), callback, null); } }
```
--------------------------------
### CodePress Initialization
Source: https://github.com/apache/ode/blob/master/axis2-war/src/main/webapp/deployment.html
Initializes the CodePress editor component.
```javascript
CodePress.run();
```
--------------------------------
### POST /ode/processes/ProcessManagement - List Processes with Filter
Source: https://context7.com/apache/ode/llms.txt
Lists processes that match specified filter criteria and allows custom ordering.
```APIDOC
## POST /ode/processes/ProcessManagement
### Description
Lists processes matching a filter expression with custom ordering. Supports filtering by name, namespace, status, and deployment date.
### Method
POST
### Endpoint
/ode/processes/ProcessManagement
### Request Body
- **listProcesses** (xml) - Required - The XML payload containing filter and order keys.
- **filter** (string) - Optional - Filter expression (e.g., "status=active name=Hello*").
- **orderKeys** (string) - Optional - Comma-separated list of keys to order the results by (e.g., "name").
### Request Example
```xml
status=active name=Hello*name
```
### Response
#### Success Response (200)
- **process-info** (array) - Contains details for each matching process (same structure as listAllProcesses).
#### Response Example
```xml
........................
```
```
--------------------------------
### Switch to Hibernate Persistence
Source: https://github.com/apache/ode/blob/master/tomee-server/src/main/server/README.md
To use Hibernate persistence, edit ode-axis2.properties under webapps/ode/WEB-INF/conf/ and replace the OpenJPA DAO factory with the Hibernate DAO factory.
```properties
ode-axis2.dao.factory=org.apache.ode.daohib.bpel.BpelDAOConnectionFactoryImpl
```
--------------------------------
### Event Listeners Configuration
Source: https://context7.com/apache/ode/llms.txt
Configure event listeners by providing a comma-separated list of fully qualified class names (FQCNs).
```properties
# ode-axis2.event.listeners=org.apache.ode.bpel.common.evt.DebugBpelEventListener
```
--------------------------------
### Deployment CSS Styles
Source: https://github.com/apache/ode/blob/master/axis2-war/src/main/webapp/deployment.html
Defines visual styles for buttons, links, and the deployment list layout.
```css
button { background: transparent url(../button/assets/add.gif) no-repeat scroll 10% 50%; padding-left: 2em; } .link { margin-left: 5px; color: blue; } .myAccordion .yui-cms-accordion .yui-cms-item { margin-bottom: 10px; } .bd { background: #FFFFFF none repeat scroll 0 0; } ul.deployed { padding: 10px 0px; list-style-image: url(images/process.png); margin-left: 30px; } ul.deployed li { font-family: serif; font-size: 1.2em; font-weight: bold; padding: 5px 10px 5px 0px; line-height: 20px; } .depn, .createn{ margin-top:30px; }
```
--------------------------------
### Java API - BpelServer Interface
Source: https://context7.com/apache/ode/llms.txt
Programmatic lifecycle management of the ODE server using the BpelServer interface for embedded integration.
```APIDOC
## Java API - BpelServer Interface
For embedded integration, ODE provides the BpelServer Java interface for programmatic lifecycle management.
```java
import org.apache.ode.bpel.iapi.*;
import javax.xml.namespace.QName;
// Initialize ODE Server programmatically
public class OdeIntegration {
public void startOdeServer(BpelServer server,
Scheduler scheduler,
MessageExchangeContext mexContext,
BindingContext bindingContext,
EndpointReferenceContext eprContext)
throws BpelEngineException {
// Configure server components
server.setScheduler(scheduler);
server.setMessageExchangeContext(mexContext);
server.setBindingContext(bindingContext);
server.setEndpointReferenceContext(eprContext);
// Initialize and start the engine
server.init();
server.start();
// Get engine for transactional operations
BpelEngine engine = server.getEngine();
}
public void deployProcess(BpelServer server, ProcessConf processConf)
throws BpelEngineException {
// Register a process with the server
server.register(processConf);
}
public void undeployProcess(BpelServer server, QName processId)
throws BpelEngineException {
// Unregister a process
server.unregister(processId);
}
public void stopServer(BpelServer server) throws BpelEngineException {
server.stop();
server.shutdown();
}
}
```
```
--------------------------------
### Configure PATH for Ode Tools
Source: https://github.com/apache/ode/blob/master/distro/src/examples-server/readme.txt
Set the system path to include the Ode bin directory to enable the use of the sendsoap command.
```batch
set PATH=%PATH%;PATH_TO_ODE\bin
```
```bash
export PATH=$PATH:PATH_TO_ODE/bin
```
--------------------------------
### Set Process Property
Source: https://context7.com/apache/ode/llms.txt
Allows setting a configuration property on a deployed process at runtime. You need to provide the process PID, the property name, and its new value.
```bash
curl -X POST http://localhost:8080/ode/processes/ProcessManagement \
-H "Content-Type: text/xml" \
-d '
{http://ode/bpel/unit-test}HelloWorld{http://example.org}timeout30000'
```
--------------------------------
### Invoke HelloWorld via cURL
Source: https://context7.com/apache/ode/llms.txt
Sends a SOAP request to the process endpoint using a POST method with the appropriate XML content type.
```bash
curl -X POST http://localhost:8080/ode/processes/helloWorld \
-H "Content-Type: text/xml" \
-d '
Hello'
```
--------------------------------
### Database Connection Pool Settings
Source: https://context7.com/apache/ode/llms.txt
Configure the minimum and maximum number of connections for the database connection pool.
```properties
ode-axis2.db.pool.max=10
ode-axis2.db.pool.min=1
```
--------------------------------
### Invoking a Deployed Process
Source: https://context7.com/apache/ode/llms.txt
Information on how to invoke deployed BPEL processes via their SOAP endpoints.
```APIDOC
## Invoking a Deployed Process
Once deployed, BPEL processes expose SOAP endpoints that clients can invoke according to the process WSDL.
```bash
```
--------------------------------
### Define UI Component Styles
Source: https://github.com/apache/ode/blob/master/axis2-war/src/main/webapp/processes.html
CSS rules for styling buttons, links, and accordion layout containers.
```css
button{ background:transparent url(../button/assets/add.gif) no-repeat scroll 10% 50%; padding-left:2em; } .link{ margin-left:5px; color:blue; } .myAccordion .yui-cms-accordion .yui-cms-item { margin-bottom:10px; } .bd{ background:#FFFFFF none repeat scroll 0 0; }
```
--------------------------------
### Resume Instance
Source: https://context7.com/apache/ode/llms.txt
Resumes a previously suspended process instance, allowing its execution to continue.
```bash
curl -X POST http://localhost:8080/ode/processes/InstanceManagement \
-H "Content-Type: text/xml" \
-d '
12345'
```
--------------------------------
### Internal Database Configuration (Direct JDBC)
Source: https://context7.com/apache/ode/llms.txt
Configure ODE to use an internal database with direct JDBC connection details.
```properties
# ode-axis2.db.int.jdbcurl=jdbc:mysql://localhost/ode
# ode-axis2.db.int.driver=com.mysql.jdbc.Driver
# ode-axis2.db.int.username=ode
# ode-axis2.db.int.password=secret
```
--------------------------------
### Access and Use a Message Bundle
Source: https://github.com/apache/ode/blob/master/utils/src/main/java/org/apache/ode/utils/msg/package.html
Retrieve the bundle via BundleManager and invoke the generated methods to obtain formatted strings.
```java
MyMsgs msgs = (MyMsgs) BundleManager.getBundle(MyMsgs.class);
msgs.msgFileNotFound("foo.zip");
```
--------------------------------
### Undeploy a BPEL Process Package
Source: https://context7.com/apache/ode/llms.txt
Removes a previously deployed package and unregisters all associated processes.
```bash
# Undeploy a process package
curl -X POST http://localhost:8080/ode/processes/DeploymentService \
-H "Content-Type: text/xml" \
-d '
HelloWorld-1'
# Response: true
```
--------------------------------
### List Process Events
Source: https://context7.com/apache/ode/llms.txt
This cURL command queries for BPEL process events. It's useful for debugging and auditing by filtering events based on instance name, timestamp, and a maximum count. The `instanceFilter` and `eventFilter` parameters allow precise event retrieval.
```bash
curl -X POST http://localhost:8080/ode/processes/InstanceManagement \
-H "Content-Type: text/xml" \
-d '
name=HelloWorldtstamp>=2024-01-011000'
```
--------------------------------
### DAO Factory Configuration
Source: https://context7.com/apache/ode/llms.txt
Specify the DAO factory implementation, defaulting to JPA or allowing Hibernate.
```properties
# ode-axis2.dao.factory=org.apache.ode.daohib.bpel.BpelDAOConnectionFactoryImpl
```
--------------------------------
### External Database Configuration (JNDI DataSource)
Source: https://context7.com/apache/ode/llms.txt
Configure ODE to use an external database via JNDI DataSource.
```properties
# ode-axis2.db.ext.dataSource=java:comp/env/jdbc/ode
```
--------------------------------
### Activate a Process
Source: https://context7.com/apache/ode/llms.txt
Activates a process that has been disabled or retired, allowing new instances to be created. Use the process's PID to specify which process to activate.
```bash
curl -X POST http://localhost:8080/ode/processes/ProcessManagement \
-H "Content-Type: text/xml" \
-d '
{http://ode/bpel/unit-test}HelloWorld'
```
--------------------------------
### POST /ode/processes/ProcessManagement - Set Process Property
Source: https://context7.com/apache/ode/llms.txt
Sets a configuration property on a deployed process at runtime.
```APIDOC
## POST /ode/processes/ProcessManagement
### Description
Sets a configuration property on a deployed process at runtime.
### Method
POST
### Endpoint
/ode/processes/ProcessManagement
### Request Body
- **setProcessProperty** (xml) - Required - The XML payload to set the process property.
- **pid** (QName) - Required - The Process ID (QName) of the process.
- **propertyName** (string) - Required - The name of the property to set.
- **propertyValue** (string) - Required - The value to set for the property.
### Request Example
```xml
{http://ode/bpel/unit-test}HelloWorld{http://example.org}timeout30000
```
### Response
#### Success Response (200)
- (Empty response body indicates success)
#### Response Example
(No response body)
```