A reference architecture and example implementation for connecting Oracle Fusion Cloud (ERP & EPM) with MuleSoft using API-led connectivity patterns. It pairs a written best-practices guide with a partial MuleSoft project skeleton (System API layer) and reusable DataWeave modules.
This repository is a reference architecture with example artifacts, intended to illustrate integration patterns and inform your own design. It is not a packaged, production-tested, or turnkey solution. There is no reproducible evidence in this repository (no CI, no committed test results, no runnable end-to-end deployment) to support production-readiness or performance/security claims. Treat everything here as a starting point to adapt, and validate independently before any real-world use. See What's included and What's not included for the exact boundary.
Reference architecture (partial reference implementation).
| Layer | What exists here |
|---|---|
| Documentation / best-practices guide | ✅ Present (written guidance) |
| System API skeleton (Mule XML) | ✅ Present — src/system-api/oracle-fusion-system-api.xml |
| Auth / error / report DataWeave modules | ✅ Present — src/main/resources/dwl/ |
| Token cache flow | ✅ Present — src/main/resources/TokenCacheFlow.xml |
| Example RAML (Employee API) | ✅ One example — examples/raml/oracle-fusion-employee-api.raml |
| Example DataWeave transformations | ✅ Present — examples/dataweave/ |
| Mock server + test data + Postman collection | ✅ Present — test/ |
| Process API / Experience API implementations | ❌ Described in the guide only; not implemented here |
| MUnit test suites / JMeter test plans | ❌ Build is configured for them, but none are committed |
This repository provides enterprise architects, integration developers, and technical teams with:
- Reference integration patterns for Oracle Fusion Cloud (documented and partially illustrated in code)
- Reusable MuleSoft components for authentication and data access (DataWeave modules + a System API skeleton)
- Documented guidance on security, error handling, and performance
- Example artifacts (RAML, DataWeave, mock/test data) to inform your own implementation
- 📘 Best Practices Guide — the primary written reference
- 🧪 Testing Guide — testing strategies and scenarios (guidance; see What's not included)
- 🔒 Security Guidelines — security guidance
- ❓ FAQ — common questions and troubleshooting
- 🔐 Authentication components (DataWeave)
src/main/resources/dwl/FusionAuthModule.dwl— token/auth helper logicsrc/main/resources/TokenCacheFlow.xml— token caching flow (ObjectStore v2)
- 🧩 System API skeleton
src/system-api/oracle-fusion-system-api.xml— Mule config for Oracle Fusion connectivity (System API layer)src/system-api/config.yaml,src/main/resources/config/dev.yaml— example configuration
- 🔁 Reusable DataWeave modules
src/main/resources/dwl/BIPReportFetcher.dwl,OracleErrorMapper.dwlexamples/dataweave/employee-transformation.dwl,bulk-employee-update.dwl
- 📄 One example RAML —
examples/raml/oracle-fusion-employee-api.raml - 🧰 Test aids —
test/mock/(Node mock server),test/data/(sample JSON),test/postman/(Postman collection) - 📦 Build config —
pom.xml,mule-artifact.json(targets MuleSoft EE runtime 4.9+)
To set accurate expectations, the following are referenced or described but not present in this repository:
- ❌ Process API and Experience API implementations. Only the System API layer is implemented. The Process/Experience layers are described conceptually in the guide, but there are no
process-api/orexperience-api/Mule projects here. - ❌ RAML for Process and Experience APIs. Only a single example RAML (Employee, System-API level) is included — not a full System/Process/Experience API specification set.
- ❌ Executable test suites.
pom.xmlis configured for MUnit, JaCoCo, Failsafe, and a JMeter profile, but no MUnit test suites, integration tests, or JMeter test plans are committed.mvn test/mvn verify -Pintegration-testswill not run project tests as-is. Thetest/directory contains a mock server, sample data, and a Postman collection — not automated MUnit/JUnit tests. - ❌ Reproducible evidence for production-readiness, performance, uptime, or compliance. No CI pipeline, benchmark results, or deployment artifacts are included.
- ❌ A turnkey deployment. The build targets a MuleSoft Enterprise (EE) runtime and requires your own Oracle Fusion instance, credentials, and CloudHub/on-prem environment.
- MuleSoft Anypoint Studio 7.18+ or Anypoint Platform access
- MuleSoft Runtime 4.9.0+ (Enterprise edition — see
mule-artifact.jsonrequiredProduct: MULE_EE) - Oracle Fusion Cloud instance (ERP/EPM) with API access
- Java 17+ (LTS version recommended)
- Maven 3.9+
-
Clone the repository
git clone https://github.com/msaleme/oracle-fusion-mulesoft-best-practices.git cd oracle-fusion-mulesoft-best-practices -
Import into Anypoint Studio
- File → Import → Anypoint Studio → Anypoint Studio project from File System
- Select the project directory
- Click Finish
-
Configure credentials
# src/main/resources/config/dev.yaml oracle: fusion: baseUrl: "https://your-instance.oraclecloud.com" auth: clientId: "your-client-id" clientSecret: "${secure::clientSecret}"
-
Build / run (requires a MuleSoft EE runtime and valid credentials)
mvn clean install mvn mule:run
Note: Because no MUnit test suites are committed,
mvn testwill not execute project tests until you add your own. See the Testing Guide for how to structure them.
┌─────────────────┐
│ Consumer Apps │
│ (Web/Mobile/RPA)│
└────────┬────────┘
│
┌────────▼────────┐
│ Experience API │ ← Consumer-specific formatting (described in guide; not implemented here)
└────────┬────────┘
│
┌────────▼────────┐
│ Process API │ ← Business logic orchestration (described in guide; not implemented here)
└────────┬────────┘
│
┌────────▼────────┐
│ System API │ ← Oracle Fusion connectivity (skeleton implemented in this repo)
└────────┬────────┘
│
┌────────▼────────┐
│ Oracle Fusion │
│ Cloud (ERP/EPM) │
└─────────────────┘
The Testing Guide documents recommended testing strategies and scenarios. No automated MUnit/JUnit test suites are committed to this repository yet — the commands below are the intended structure once you add tests, and the test/ directory provides a mock server, sample data, and a Postman collection to help you build them.
# Intended once MUnit test suites are added:
mvn test # Unit / MUnit tests
mvn verify -Pintegration-tests # Integration tests
mvn clean test jacoco:report # Coverage report- 🧩 Node mock server —
test/mock/oracle-fusion-mock.js - 📇 Sample data —
test/data/*.json - 📮 Postman collection —
test/postman/Oracle-Fusion-Integration.postman_collection.json
- Unit tests — DataWeave transformations and business logic
- Integration tests — Oracle Fusion API connectivity
- Contract tests — RAML specification validation
- Performance tests — load/stress scenarios (JMeter profile configured in
pom.xml) - Security tests — OWASP-aligned checks
The guide and skeleton illustrate the following patterns. They are documented reference patterns, not benchmarked or independently verified in this repository.
- Multi-layer authentication (SAML → JWT → OAuth2)
- Secure credential management with property encryption
- Token caching and refresh with ObjectStore v2
- Client ID enforcement and rate limiting
- Java 17 security enhancements
- MuleSoft 4.9.x runtime features
- API-first design with RAML 1.0
- Reusable DataWeave 2.0 modules
- Environment-specific configurations
- Error handling and retry patterns
- Circuit breaker patterns
- Retry mechanisms with backoff
- Correlation ID tracking for observability
- Centralized logging with structured output
- CloudHub 2.0 compatibility
- Connection pooling
- Asynchronous processing
- Caching strategies
- Batch operations with streaming support
Contributions are welcome — see the Contributing Guide.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE.md file for details.
- 📖 Review the best-practices guide
- ❓ Check the FAQ for common issues
- 🐛 Report bugs via GitHub Issues
- 💬 Join discussions in GitHub Discussions
oracle-fusion mulesoft integration api-led-connectivity enterprise-integration oracle-cloud epm erp dataweave reference-architecture system-integration api-design
Note: This is a living reference. As Oracle Fusion and MuleSoft evolve, the patterns here may be updated. It reflects a reference architecture and example artifacts — validate independently before production use.