Weld SiteCommunity Documentation
Weld comes with a special mode for application development. When enabled, certain built-in tools which facilitate the development of CDI applications, are available.
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.
Not all environments and containers may support the development mode and all tools. Check the tools details and the container documentation.
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>
An integrator is allowed to specify an alternative way of enabling the development mode.
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.property()
method:
org.jboss.weld.environment.se.Weld;
public static void main(String[] args) {
Weld weld = new Weld().property("org.jboss.weld.development", true);
try (WeldContainer container = weld.initialize()) {
...
}
}
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 =====================================
This tool allows to inspect the application CDI components at runtime. See also the demo application hosted on OpenShift.
JSON data are available 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.
However, a default UI - HTML client (single-page application) is only available in a web application at {webappContextPath}/weld-probe
, e.g. http://localhost:8080/weld-numberguess/weld-probe
.
Right now, the integration is provided for WildFly 10, Tomcat and Jetty (Weld Servlet) and Weld SE.
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 Section 19.1.10, “Development Mode”.