Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/koentsje/forge-furnace
https://github.com/koentsje/forge-furnace
Last synced: about 1 month ago
JSON representation
- Host: GitHub
- URL: https://github.com/koentsje/forge-furnace
- Owner: koentsje
- License: epl-1.0
- Created: 2013-07-25T07:13:17.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2014-03-18T20:59:06.000Z (almost 11 years ago)
- Last Synced: 2024-11-07T21:44:17.587Z (3 months ago)
- Language: Java
- Size: 1.45 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
furnace
=======Lightweight Modular Service Container - Based Maven and JBoss Modules. It's easier than OSGi :)
Usage
=====First, include the Furnace dependency in your project:
org.jboss.forge.furnace
furnace-se
${version.furnace}
Then configure the container and start it:
Furnace furnace = FurnaceFactory.getFurnace()
furnace.addRepository(AddonRepositoryMode.MUTABLE, new File(OperatingSystemUtils.getUserForgeDir(), "addons"));
To install addons, you will need to add the following dependencies to your project:
org.jboss.forge.furnace
furnace-manager
${version.furnace}
org.jboss.forge.furnace
furnace-manager-resolver-maven
${version.furnace}
Then create a new AddonManager:AddonManager manager = new AddonManagerImpl(furnace, new MavenAddonDependencyResolver())
Once you have an `AddonManager` instance, you can begin to install addons (You can do this while Furnace is running):
InstallRequest request = manager.install(AddonId.from("org.example:my-addon", "1.0.0.Final"));
request.perform();
Don't forget to start Furnace:furnace.startAsync();
Once this is done, you'll now be able to request services from Furnace's `AddonRegistry`, and utilize the functionality of the addons you've installed:Addons.waitUntilStarted(AddonId.from("org.example", "my-addon", "1.0.0.Final"));
MyServiceType instance = furnace.getAddonRegistry().getServices(MyServiceType.class).get();Of course, addons can be pre-bundled into a project using the Furnace Maven Plugin, making it much simpler (and faster) to run your application:
org.jboss.forge.furnace
furnace-maven-plugin
${version.furnace}
deploy-addons
prepare-package
addon-install
false
${basedir}/addon-repository
org.example:my-addon,1.0.0.Final
To learn more about writing addons, see the full documentation here: https://github.com/forge/core#developing-an-addon