Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Forge Core Framework APIs and Implementation
Ruby Java C Python Groovy JavaScript Other
Fetching latest commit...
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

JBoss Forge 2.0

The fastest way to build applications, share your software, and enjoy doing it.

What's new and noteworthy?

  • Addons: What were previously called "Plugins" in Forge 1, are now "Addons" in Forge 2. This decision was made to clear up confusing verbiage like, "Plugin X has N Plugins" (due to the org.jboss.forge.plugins.Plugin interface.)

  • We are currently in the process of migrating Forge 1 to Forge 2, so expect to find some Forge 1 functionality missing in this first Alpha version.

  • Modular Container fully rewritten: The Forge runtime is now a fully functional Java module system based on JBoss Modules (The same engine behind JBoss AS 7+ and JBoss EAP). This means you may now pick-and-choose which addons are important for you.

  • Smaller, leaner, and faster: Forge 2 now sports a slimmer 7 megabyte download size, and starts up in under three seconds. (Compared to upwards of 10+ seconds for Forge 1)

  • Better IDE Integration: Forge 2 addons have been de-coupled from the command line, meaning you can create addons that run as wizards in the IDE, or commands in the shell - the same code works in both environments.

Download Forge 2:

Forge 2 is packaged inside an Eclipse plugin and also as a standalone ZIP file. They are independent of each other. It is worth mentioning that the Eclipse plugin does not support access to shell yet.

Get Started with the Command line tools:

NOTE: The shell is not fully working at the moment, so we recommend you to use the Forge 2 Eclipse Plugin

Forge is now ready to go.

Install the required addons by running the following commands:

    forge --install groupId:artifactId,version
  • Forge will install the required dependencies for each addon.

If you wish to install the prototype Forge 2 Shell called Aesh, be sure to run the following:

    forge --install shell

If you wish to remove any addon, you can use the following command:

    forge --remove groupId:artifactId,version

Get Started with the Forge 2 Eclipse Plugin:

This plugin starts the Forge 2 Container and your installed addons, so you can use them directly in your workspace

  • Press Ctrl + 5 to show the installed addons that you may interact with (these addons use the UI addon, hence providing a user interface - see Developing an UI Addon for more details).

NOTE: The eclipse plugin already bundles the following addons

  • addon-manager
  • convert
  • dependencies
  • environment
  • facets
  • javaee
  • maven,projects
  • resources
  • ui
  • ui-spi

Developing an Addon

Forge addons are simple Maven projects with a special classifier "forge-addon". This classifier is used while installing an addon so Forge can calculate its dependencies automatically releasing you from the Classloader hell

Create a Maven project

Forge Addons must be packaged with a 'forge-addon' classifier. Add this plugin configuration to your pom.xml:


Use the Forge CDI Container

In order to use CDI in your addon, you need to reference the Furnace CDI container addon in your pom.xml file.


Once this is done, to expose services in your Addon for injection and service lookups in other addons, your types must be annotated with @Exported:

    public class ServiceImpl
       public ServiceResult performTask() {
            // Do stuff...

However, best practices favor placing the @Exported annotation on a service interface, otherwise consumers will be required to request your specific service implementation. For example:

    public interface ServiceType
       public ServiceResult performTask();

Then simply implement the service interface, and the @Exported annotation will be inherited automatically:

    public class ServiceImpl implements ServiceType
       public ServiceResult performTask() {
            // Do stuff...

Install your project in the local maven repository:

    mvn clean install


    ./forge --install yourgroupId:artifactId,version

NOTE: This coordinate is NOT the same as maven's. You MUST use a comma (,) between the artifactId and the version

Add User Inputs to your Addon

  • Follow the procedures described in (Developing an Addon)
  • Add a dependency to the UI addon in your pom.xml, like this
  • Create a java class

If your wizard contains a single page, implement UICommand, otherwise, UIWizard

Install your Addon

Depending on the Forge environment in which you are running, installation steps will differ.

For Eclipse:

  • Open the Forge quick-assist menu, select either "Build and install an Addon" or "Install an addon" to build and install your project, or install a pre-built maven artifact.

For the Shell:

  • Make sure that you have run a mvn install prior to executing forge --install artifactId:groupId:version on the native system terminal command line.
Something went wrong with that request. Please try again.