org.jboss.forge.furnace.container:guice-parent

Parent POM for JBoss projects. Provides default project build configuration.

License

License

Categories

Categories

JBoss Container Application Servers GUI User Interface Guice Application Layer Libs Dependency Injection
GroupId

GroupId

org.jboss.forge.furnace.container
ArtifactId

ArtifactId

guice-parent
Last Version

Last Version

1.0.0.Beta1
Release Date

Release Date

Type

Type

zip
Description

Description

Parent POM for JBoss projects. Provides default project build configuration.
Project Organization

Project Organization

JBoss by Red Hat
Source Code Management

Source Code Management

https://github.com/forge/furnace-guice

Download guice-parent

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

  • addon
  • api
  • impl
  • tests

Furnace Container: Guice

Build Status License Maven Central

This addon is a 'Furnace container' that provides lifecycle and service registry support for dependent addons. Other addons may depend on this to use the Guice programming model and dependency injection framework.

Dependencies: None

Setup

This Addon requires the following installation steps.

Add configuration to pom.xml

To use this addon, you must add it as a dependency in the pom.xml of your forge-addon classified artifact:

<dependency>
   <groupId>org.jboss.forge.furnace.container</groupId>
   <artifactId>guice</artifactId>
   <classifier>forge-addon</classifier>
   <version>${version}</version>
</dependency>

Create a com.google.inject.Module implementation as a Service provider in your addon

In order for Guice to detect your services, you must add a src/main/resources/META-INF/services/com.google.inject.Module file in your project containing the com.google.inject.Module implementation.

Features

Observable events

The Furnace container publishes several observable events to all addons throughout their lifecycle. In order to listen for events, implement the org.jboss.forge.furnace.container.guice.EventListener interface.

public class MyEmitter {
    @Inject
    EventManager eventManager;

    public void fire() {
        eventManager.fireEvent("FOO");
    }
}

public class MyObserver implements EventListener {

    public void handleEvent(Object event, Annotation ... qualifiers) {
        // "FOO".equals(event) == true
    }

}
Injection of Furnace APIs

This container also allows for injection of some of the core Furnace APIs into your objects. Below is a list of all injectable API types.

Injectable Type Description

@Inject private Furnace service;

A handle to the Furnace container in which this addon is being run.

@Inject private Addon self;

A reference to this addon itself. Allows access to the addon version, ClassLoader, service registry, current lifecycle status, and addon dependencies.

@Inject private AddonRegistry addonRegistry;

A reference to the global Furnace addon registry - can be used to retrieve addon and exported service instances.

org.jboss.forge.furnace.container

JBoss Forge

JBoss Forge is a software development tool that extends your Java IDE, providing wizards and extensions (add-ons) for different technologies and solutions

Versions

Version
1.0.0.Beta1
1.0.0.Alpha1