{"id":13801151,"url":"https://github.com/spring-projects/spring-integration","last_synced_at":"2025-05-13T20:05:40.222Z","repository":{"id":39115700,"uuid":"2090979","full_name":"spring-projects/spring-integration","owner":"spring-projects","description":"Spring Integration provides an extension of the Spring programming model to support the well-known Enterprise Integration Patterns (EIP)","archived":false,"fork":false,"pushed_at":"2025-05-05T14:57:26.000Z","size":72850,"stargazers_count":1568,"open_issues_count":121,"forks_count":1121,"subscribers_count":132,"default_branch":"main","last_synced_at":"2025-05-06T19:52:11.999Z","etag":null,"topics":["eip","java","microservices","spring"],"latest_commit_sha":null,"homepage":"http://projects.spring.io/spring-integration/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spring-projects.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.adoc","funding":null,"license":"LICENSE.txt","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,"zenodo":null}},"created_at":"2011-07-22T21:47:27.000Z","updated_at":"2025-05-06T09:14:48.000Z","dependencies_parsed_at":"2024-11-05T21:38:27.678Z","dependency_job_id":"acd96293-cad8-4818-8837-103dc274070c","html_url":"https://github.com/spring-projects/spring-integration","commit_stats":{"total_commits":11401,"total_committers":301,"mean_commits":37.87707641196013,"dds":0.6826594158407158,"last_synced_commit":"ef02cb829afb3aa98f0aa06d34caea738fec8817"},"previous_names":[],"tags_count":339,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects%2Fspring-integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects%2Fspring-integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects%2Fspring-integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spring-projects%2Fspring-integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spring-projects","download_url":"https://codeload.github.com/spring-projects/spring-integration/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254020478,"owners_count":22000750,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["eip","java","microservices","spring"],"created_at":"2024-08-04T00:01:20.051Z","updated_at":"2025-05-13T20:05:40.175Z","avatar_url":"https://github.com/spring-projects.png","language":"Java","readme":"\u003cimg align=\"right\" width=\"250\" height=\"250\" src=\"https://spring.io/img/projects/spring-integration.svg?v=2\"\u003e\n\n# Spring Integration\n\n[![Build Status](https://github.com/spring-projects/spring-integration/actions/workflows/ci-snapshot.yml/badge.svg)](https://github.com/spring-projects/spring-integration/actions/workflows/ci-snapshot.yml)\n[![Revved up by Develocity](https://img.shields.io/badge/Revved%20up%20by-Develocity-06A0CE?logo=Gradle\u0026labelColor=02303A)](https://ge.spring.io/scans?search.rootProjectNames=spring-integration)\n\nExtends the Spring programming model to support the well-known Enterprise Integration Patterns. \nSpring Integration enables lightweight messaging within Spring-based applications and supports integration with external systems via declarative adapters. \nThose adapters provide a higher-level of abstraction over Spring’s support for remoting, messaging, and scheduling. \nSpring Integration’s primary goal is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code.\n\nUsing the Spring Framework encourages developers to code using interfaces and use dependency injection (DI) to provide a Plain Old Java Object (POJO) with the dependencies it needs to perform its tasks. \nSpring Integration takes this concept one step further, where POJOs are wired together using a messaging paradigm and individual components may not be aware of other components in the application. \nSuch an application is built by assembling fine-grained reusable components to form a higher level of functionality. \nWith careful design, these flows can be modularized and also reused at an even higher level.\n\nIn addition to wiring together fine-grained components, Spring Integration provides a wide selection of channel adapters and gateways to communicate with external systems. \nChannel Adapters are used for one-way integration (send or receive); gateways are used for request/reply scenarios (inbound or outbound). \n\n# Installation and Getting Started\n\nFirst, you need dependencies in your POM/Gradle:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.springframework.integration\u003c/groupId\u003e\n    \u003cartifactId\u003espring-integration-core\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\nwhich is also pulled transitively if you deal with target protocol channel adapters.\nFor example for Apache Kafka support you need just this:\n\n```xml\n\u003cdependency\u003e\n    \u003cgroupId\u003eorg.springframework.integration\u003c/groupId\u003e\n    \u003cartifactId\u003espring-integration-kafka\u003c/artifactId\u003e\n\u003c/dependency\u003e\n```\n\nFor annotations or Java DSL configuration you need to *enable* Spring Integration in the application context:\n\n```java\n@EnableIntegration\n@Configuration\npublic class ExampleConfiguration {\n    \n}\n```\n\n# Code of Conduct\n\nPlease see our [Code of conduct](https://github.com/spring-projects/.github/blob/main/CODE_OF_CONDUCT.md).\n\n# Reporting Security Vulnerabilities\n\nPlease see our [Security policy](https://github.com/spring-projects/spring-integration/security/policy).\n\n# Documentation\n\nThe Spring Integration maintains reference documentation ([published](https://docs.spring.io/spring-integration/reference/) and [source](src/reference/antora)), GitHub [wiki pages](https://github.com/spring-projects/spring-integration/wiki), and an [API reference](https://docs.spring.io/spring-integration/docs/current/api/). \nThere are also [guides and tutorials](https://spring.io/guides) across Spring projects.\n\n\n# Checking out and Building\n\nTo check out the project and build from the source, do the following:\n\n    git clone git://github.com/spring-projects/spring-integration.git\n    cd spring-integration\n    ./gradlew clean test\n\n    or\n\n    ./gradlew clean testAll\n\nThe latter runs additional tests (those annotated with `@LongRunningIntegrationTest`); it is a more thorough test but takes quite a lot longer to run.\n\nThe test results are captured in `build/reports/tests/test` (or `.../testAll`) under each module (in HTML format).\n\nAdd `--continue` to the command to perform a complete build, even if there are failing tests in some modules; otherwise the build will stop after the current module(s) being built are completed.\n\n**NOTE:** While Spring Integration runs with Java SE 17 or higher, a Java 17 compiler is required to build the project.\n\nTo build and install jars into your local Maven cache:\n\n    ./gradlew build publishToMavenLocal\n\nTo build api Javadoc (results will be in `build/api`):\n\n    ./gradlew api\n\nTo build the reference documentation (results will be in `build/site`):\n\n    ./gradlew antora\n\nTo build complete distribution including `-dist`, `-docs`, and `-schema` zip files (results will be in `build/distributions`):\n\n    ./gradlew dist\n\n# Using Eclipse or Spring Tool Suite (with BuildShip Plugin)\n\nIf you have the BuildShip plugin installed,\n\n*File -\u003e Import -\u003e Gradle -\u003e Existing Gradle Project*\n\n# Using Eclipse or Spring Tool Suite (when the BuildShip Plugin is not installed)\n\nTo generate Eclipse metadata (.classpath and .project files, etc.), do the following:\n\n    ./gradlew eclipse\n\nOnce complete, you may then import the projects into Eclipse as usual:\n\n *File -\u003e Import -\u003e General -\u003e Existing projects into workspace*\n\nBrowse to the *'spring-integration'* root directory. All projects should import\nfree of errors.\n\n# Using IntelliJ IDEA\n\nTo import the project into IntelliJ IDEA:\n\nFile -\u003e Open... -\u003e and select build.gradle from spring-integration project root directory\n\n# Guidelines\n\nSee also [Contributor Guidelines](https://github.com/spring-projects/spring-integration/blob/main/CONTRIBUTING.adoc).\n\n# Resources\n\nFor more information, please visit the Spring Integration website at: [https://spring.io/projects/spring-integration](https://spring.io/projects/spring-integration/)\n","funding_links":[],"categories":["III. Network and Integration","Projects"],"sub_categories":["6. Integration frameworks","Integration Frameworks"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspring-projects%2Fspring-integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspring-projects%2Fspring-integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspring-projects%2Fspring-integration/lists"}