Skip to content
This repository was archived by the owner on Aug 3, 2026. It is now read-only.

Repository files navigation

Oracle Fusion + MuleSoft Integration — Reference Architecture

License: MIT MuleSoft Java Oracle Fusion API Design Status

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.

⚠️ Reference / educational material — not a deployable product

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.

Implementation status

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

🎯 Purpose

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

What's included

Documentation

Code & configuration artifacts

  • 🔐 Authentication components (DataWeave)
    • src/main/resources/dwl/FusionAuthModule.dwl — token/auth helper logic
    • src/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.dwl
    • examples/dataweave/employee-transformation.dwl, bulk-employee-update.dwl
  • 📄 One example RAMLexamples/raml/oracle-fusion-employee-api.raml
  • 🧰 Test aidstest/mock/ (Node mock server), test/data/ (sample JSON), test/postman/ (Postman collection)
  • 📦 Build configpom.xml, mule-artifact.json (targets MuleSoft EE runtime 4.9+)

What's not included

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/ or experience-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.xml is 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-tests will not run project tests as-is. The test/ 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.

🚀 Getting started (adapt to your environment)

Prerequisites

  • MuleSoft Anypoint Studio 7.18+ or Anypoint Platform access
  • MuleSoft Runtime 4.9.0+ (Enterprise edition — see mule-artifact.json requiredProduct: MULE_EE)
  • Oracle Fusion Cloud instance (ERP/EPM) with API access
  • Java 17+ (LTS version recommended)
  • Maven 3.9+

Steps

  1. Clone the repository

    git clone https://github.com/msaleme/oracle-fusion-mulesoft-best-practices.git
    cd oracle-fusion-mulesoft-best-practices
  2. Import into Anypoint Studio

    • File → Import → Anypoint Studio → Anypoint Studio project from File System
    • Select the project directory
    • Click Finish
  3. Configure credentials

    # src/main/resources/config/dev.yaml
    oracle:
      fusion:
        baseUrl: "https://your-instance.oraclecloud.com"
    
    auth:
      clientId: "your-client-id"
      clientSecret: "${secure::clientSecret}"
  4. 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 test will not execute project tests until you add your own. See the Testing Guide for how to structure them.

📊 Architecture Overview

┌─────────────────┐
│ 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) │
└─────────────────┘

🧪 Testing

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

Test aids provided here

  • 🧩 Node mock server — test/mock/oracle-fusion-mock.js
  • 📇 Sample data — test/data/*.json
  • 📮 Postman collection — test/postman/Oracle-Fusion-Integration.postman_collection.json

Test categories the guide covers (to implement)

  • 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

📚 Key patterns documented

The guide and skeleton illustrate the following patterns. They are documented reference patterns, not benchmarked or independently verified in this repository.

🔐 Security

  • 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

🛠️ Development

  • 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

📈 Operations

  • Circuit breaker patterns
  • Retry mechanisms with backoff
  • Correlation ID tracking for observability
  • Centralized logging with structured output
  • CloudHub 2.0 compatibility

🚀 Performance

  • Connection pooling
  • Asynchronous processing
  • Caching strategies
  • Batch operations with streaming support

🤝 Contributing

Contributions are welcome — see the Contributing Guide.

How to Contribute

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

This project is licensed under the MIT License — see the LICENSE.md file for details.

🌟 Support

🏷️ Tags

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.

About

Architecture guidance and best practices for integrating Oracle Fusion Cloud (ERP & EPM) with MuleSoft using an API-led approach

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages