### 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 -started 100 ' ``` -------------------------------- ### 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 ' HelloWorld BASE64_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 -started 100 ``` -------------------------------- ### 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-123 orderData ' ``` -------------------------------- ### 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 true instance messages ``` -------------------------------- ### 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 12345 67890 retry ``` -------------------------------- ### 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}timeout 30000 ' ``` -------------------------------- ### 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=HelloWorld tstamp>=2024-01-01 1000 ' ``` -------------------------------- ### 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}timeout 30000 ``` ### Response #### Success Response (200) - (Empty response body indicates success) #### Response Example (No response body) ```