Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 5 days 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 7 years ago)
- Default Branch: main
- Last Pushed: 2024-12-13T11:38:25.000Z (2 months ago)
- Last Synced: 2025-02-02T04:51:12.713Z (18 days ago)
- Topics: compiler, java, on-the-fly, plugin-system, spring, spring-mvc
- Language: Java
- Homepage:
- Size: 832 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[![Maven Central](https://img.shields.io/maven-central/v/com.ethlo.lamebda/lamebda.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.ethlo.lamebda%22)
[![Hex.pm](https://img.shields.io/hexpm/l/plug.svg)](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`
```xmlcom.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
```### 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`.