https://github.com/ethlo/lamebda
Powerful plugin system for adding custom functionality to existing applications, supporting both pre-compiled or source code, with live reload.
https://github.com/ethlo/lamebda
compiler java on-the-fly plugin-system spring spring-mvc
Last synced: about 1 month ago
JSON representation
Powerful plugin system for adding custom functionality to existing applications, supporting both pre-compiled or source code, with live reload.
- Host: GitHub
- URL: https://github.com/ethlo/lamebda
- Owner: ethlo
- Created: 2018-04-17T14:32:01.000Z (almost 8 years ago)
- Default Branch: main
- Last Pushed: 2025-11-08T06:41:35.000Z (5 months ago)
- Last Synced: 2025-11-17T13:20:31.545Z (5 months ago)
- Topics: compiler, java, on-the-fly, plugin-system, spring, spring-mvc
- Language: Java
- Homepage:
- Size: 862 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

[](https://search.maven.org/search?q=g:%22com.ethlo.lamebda%22)
[](LICENSE)
A simple, powerful, plugin system for adding new API endpoints or custom functionality to you Spring project.
Oftentimes there are conflicting requirements when utilizing a common main application. The required custom functionality needed is often easy to do with a few lines of code, but is not acceptable to add to your main code-base. With Lamebda you can load libraries with custom functionality.
> It Really Whips The Lambda's Ass!
## Example use-cases
* Ad-hoc API services and integration projects - Changes in the integration code can evolve freely from the core service
* Transactional support across multiple API calls
* Batch multiple API calls to avoid chatty data exchange
* API prototyping
* A powerful support tool for extracting data or changing state.
## Getting started
### Integrating with your project
#### Usage with Spring Boot and Spring MVC
Add dependency to your `pom.xml`
```xml
com.ethlo.lamebda
lamebda-spring-web-starter
{$lamebda_version}
```
Add the following properties to your applications `application.properties|yaml`:
```properties
lamebda.enabled=true
lamebda.root-directory=/var/lib/lamebda
lamebda.request-path=/gateway
lamebda.required-projects= # Optional list of projects that have to be present for the project to start
```
### Project configuration
`project.properties`
* `project.name` - Human-readable name of the project. Optional.
* `project.base-packages` - The base packages that Spring IOC container is scanning for services and controllers.
* `project.root-request-path-enabled` - Default is true. If you set this to false, the URLs in this project will not have the prepended `gateway` path.
* `project.url-prefix-enabled` - Default is true. If you set this to false the URLs in this project will not have the prepended project alias.
To create a project for deploying into Lamebda, please see https://github.com/ethlo/lamebda-samples.
### Monitoring
The loaded project(s) can be monitored using a custom [Actuator](https://docs.spring.io/spring-boot/reference/actuator/index.html) endpoint, under `/actuator/lamebda`.