{"id":19484125,"url":"https://github.com/htr3n/loan-approval-process","last_synced_at":"2026-03-19T10:05:18.898Z","repository":{"id":94417964,"uuid":"137213171","full_name":"htr3n/loan-approval-process","owner":"htr3n","description":"A showcase of loan approval process using WS-BPEL 2.0 / Apache ODE 1.3.x","archived":false,"fork":false,"pushed_at":"2019-01-31T05:06:19.000Z","size":9091,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-20T07:03:00.044Z","etag":null,"topics":["apache-ode","bpel","business-process","loan-approval-process","web-services","wsdl"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/htr3n.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-13T12:34:48.000Z","updated_at":"2025-09-22T19:31:01.000Z","dependencies_parsed_at":"2023-04-23T05:34:58.388Z","dependency_job_id":null,"html_url":"https://github.com/htr3n/loan-approval-process","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/htr3n/loan-approval-process","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/htr3n%2Floan-approval-process","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/htr3n%2Floan-approval-process/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/htr3n%2Floan-approval-process/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/htr3n%2Floan-approval-process/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/htr3n","download_url":"https://codeload.github.com/htr3n/loan-approval-process/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/htr3n%2Floan-approval-process/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29964181,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T06:55:38.174Z","status":"ssl_error","status_checked_at":"2026-03-01T06:53:04.810Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apache-ode","bpel","business-process","loan-approval-process","web-services","wsdl"],"created_at":"2024-11-10T20:19:30.434Z","updated_at":"2026-03-01T07:34:59.532Z","avatar_url":"https://github.com/htr3n.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Loan Approval WS-BPEL Business Process\n\nThis project implements the Loan Approval Process using WS-BPEL 2.0 and WSDL 1.1. The implementation is deployable in a BPEL engine. I have developed and tested the process with some versions of [Apache ODE](http://ode.apache.org) 1.3.x.\n\n![Loan Approval BPEL](loanapproval-wsbpel.jpg)\n\nThe implementation under the folder `resources` consists of a `.bpel` file that describes the main business logic of the process and a number of `.wsdl` files that specifies various functions provided by different Web services.\n\n## Requirements\n\n  - [Apache ODE 1.3.x](http://ode.apache.org) (please see the [notes on Apache ODE](#apache-ode))\n  - [Apache Ant](https://ant.apache.org)\n\n## Deploying/Running\n\nThe local path to the Apache ODE repository is defined in the file `project.properties`. This value must reflect the actual location of Apache ODE in your host/computer.\n\n```properties\node.deploy.dir=/usr/local/opt/tomcat/libexec/webapps/ode/WEB-INF/processes\n```\n\n### Compiling\n\n```sh\nant process.compile\n```\n\n### Deploying\n```sh\nant process.deploy\n```\n\n### Packaging\n\n```sh\nant process.package\n```\n\n## Notes\n\n* The legal delay before the customer makes a decision is current set at `5` seconds.\n\n```xml\n\u003cbp:wait\n    name=\"LegalDelayForThinking\"\u003e\n    \u003cbp:for\u003e'P0Y0M0DT0H0M5S'\u003c/bp:for\u003e\n\u003c/bp:wait\u003e\n```\n\n* The legal time-out is currently set at `30` seconds. \n\n```xml\n\u003c!-- Legal time-out --\u003e\n\u003cbp:onAlarm\u003e\n\t\u003cbp:for\u003e'P0Y0M0DT0H0M30S'\u003c/bp:for\u003e\n\t...\t\n```\n\nThese values are merely used for demonstrating purposes only. \n\n### Apache ODE Engines \u003ca name=\"apache-ode\"\u003e\u003c/a\u003e\n\n#### Apache ODE 1.3.3\n\nIf a process has multiple consecutive invocations to a service, that will raise an exception via Apache Axis 2 \"`axis2.AxisFault`\" regarding _\"two services cannot have same name\"_ (see https://issues.apache.org/jira/browse/ODE-647 for more information).\n\nApplying the corresponding patch and rebuilding Apache ODE from its source will fix the issue.\n\n### Apache ODE 1.3.4 \u0026 1.3.5\n\nThese two engines throw a rather cryptic error message `java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0` as following.\n\n```\n09:38:42,476 ERROR [ExternalService] Error sending message (mex={PartnerRoleMex#hqejbhcnphrdwjpnhpo8vp [PID {urn:com:westbank:bpel:LoanApproval:2019:01}LoanApproval-1] calling org.apache.ode.bpel.epr.WSAEndpoint@1bb5f13a.update(...) Status ASYNC}): Dangling meta character '*' near index 0\n*.local\n^\njava.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0\n*.local\n^\n\tat java.util.regex.Pattern.error(Pattern.java:1957)\n\tat java.util.regex.Pattern.sequence(Pattern.java:2125)\n\tat java.util.regex.Pattern.expr(Pattern.java:1998)\n\tat java.util.regex.Pattern.compile(Pattern.java:1698)\n\tat java.util.regex.Pattern.\u003cinit\u003e(Pattern.java:1351)\n\tat java.util.regex.Pattern.compile(Pattern.java:1028)\n\tat java.util.regex.Pattern.matches(Pattern.java:1133)\n\tat java.lang.String.matches(String.java:2121)\n\tat org.apache.axis2.transport.http.ProxyConfiguration.validateNonProxyHosts(ProxyConfiguration.java:261)\n\tat org.apache.axis2.transport.http.ProxyConfiguration.isProxyEnabled(ProxyConfiguration.java:223)\n\tat org.apache.axis2.transport.http.AbstractHTTPSender.getHostConfiguration(AbstractHTTPSender.java:271)\n\tat org.apache.axis2.transport.http.AbstractHTTPSender.executeMethod(AbstractHTTPSender.java:502)\n\tat org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:191)\n\tat org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:77)\n\tat org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:327)\n\tat org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:206)\n\tat org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:396)\n\tat org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:374)\n\tat org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)\n\tat org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)\n\tat org.apache.ode.axis2.SoapExternalService$1$1.call(SoapExternalService.java:206)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n```\n#### Apache ODE 1.3.6 \u0026 1.3.7\n\nThese engines work perfectly fine for the Loan Approval BPEL process. There are no known errors/bugs so far.\n\n#### Apache ODE 1.3.8\n\nThe XMl messages sent by Apache ODE 1.3.8 to LoanFile services are broken. This issue does not happen with other versions.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhtr3n%2Floan-approval-process","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhtr3n%2Floan-approval-process","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhtr3n%2Floan-approval-process/lists"}