Development Mode

Weld comes with a special mode for application development. When enabled, certain built-in tools which facilitate the development of CDI applications, are available.

Note
The development mode should not be used in production as it may have negative impact on the performance of the application. Make sure to disable the development mode before deploying to production.
Warning
Not all environments and containers may support the development mode and all tools. Check the tools details and the container documentation.

How to enable the development mode

Web application

For a web application, set the Servlet initialization parameter org.jboss.weld.development to true:

<web-app version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

    <context-param>
        <param-name>org.jboss.weld.development</param-name>
        <param-value>true</param-value>
    </context-param>

</web-app>
Note
An integrator is allowed to specify an alternative way of enabling the development mode. See for example WildFly Documentation.

Weld SE

For a Java SE application, set the system property org.jboss.weld.development to true:

java -cp myCoolApp.jar -Dorg.jboss.weld.development=true com.foo.MyMain

or use the Weld.enableDevMode() method:

org.jboss.weld.environment.se.Weld;

public static void main(String[] args) {
   try (WeldContainer container = new Weld().enableDevMode().initialize()) {
      ...
   }
}

Is The Development Mode Enabled?

You should see the following log message during initialization of your application:

=====================================
 Weld Development Mode: ENABLED
 ------------------------------------
 Disable this mode in production - it may have negative impact on performance and/or represent a potential security risk
=====================================

Development Tools

Probe

This tool allows you to inspect the application CDI components at runtime. There is a default UI - HTML client (single-page application), which is only available in web applications. Just point your browser to protocol://host:port/webappContextPath/weld-probe, e.g. http://localhost:8080/weld-numberguess/weld-probe. However, it’s also posible to obtain the JSON data through the REST API, eventually (if JMX support is enabled ) through the MXBean of name org.jboss.weld.probe:type=JsonData,context=ID where ID should be replaced with an idenfitier of an application. Right now, Probe integration is provided for WildFly, Tomcat and Jetty (Weld Servlet), and Weld SE.

Tip
There are some configuration properties which allow to tune or disable Probe features, e.g. to restrict the set of components which will be monitored. See also Development Mode .

Validation Report

If a deployment validation fails and the development mode is enabled a simple HTML report is generated. The report contains a lot of useful information such as Weld version, list of enabled beans, list of bean archives, Weld configuration, etc. By default, the report is generated to the user’s current working directory, ie. user.dir. However, it is also possible to specify a path to the target directory using the org.jboss.weld.probe.exportDataAfterDeployment configuration property - see also Development Mode .

You should see a similar log message which contains the path to the report file:

=====================================
 Weld - Deployment Validation: FAILED
 ------------------------------------
 HTML report generated to:

 file:///path/to/report/weld-validation-report.html
=====================================
Tip
We encourage you to always attach this report when asking a question on the mailing list or any other communication channel.