How to define JVM parameters
TweetPosted on Friday Mar 07, 2014 at 08:09AM in Technology
Environment
- WildFly 8.0.0.Final
- JBoss Tools (Kepler) 4.1.1.Final
- Eclipse Kepler SR1
- Oracle JDK7u51
- OS X 10.9.2
Test Servlet
- This time we're going to test it with enabling of assertion.
@WebServlet("/")
public class AssertServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
assert false : "test";
}
}
Configure standalone.conf for launching through standalone.sh
- Add this statement to $WILDFLY_HOME/bin/standalone.conf
JAVA_OPTS=$JAVA_OPTS -ea
- This can be done on unix systems like this:
echo "JAVA_OPTS=\"\$JAVA_OPTS -ea\"" >> standalone.conf
- Now the Servlet throws Assertion Error when we launch WildFly through standalone.sh:
09:05:00,614 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /assert/: java.lang.AssertionError: test
at assert0.AssertServlet.doGet(AssertServlet.java:16) [classes:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) [jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]
...
- But it won't work with WildFly instances that launched by Eclipse.
Configuring Eclipse
Open Servers view and double-click WildFly instance

Click “Open launch configuration”

Add “-ea” to “VM arguments:” - OK

wildfly-maven-plugin
- Like this:
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.0.1.Final</version>
<configuration>
<jboss-home>${wildfly.home}</jboss-home>
<modules-path>${wildfly.home}/modules</modules-path>
<jvm-args>-ea -Xms64m -Xmx512m -XX:MaxPermSize=256m
-Djava.net.preferIPv4Stack=true
-Djboss.server.base.dir=${wildfly.home}/standalone
-Djboss.socket.binding.port-offset=${wildfly.port.offset}</jvm-args>
<port>${wildfly.port.mgmt}</port>
</configuration>
...
Assertion notes
Eclipse
We can enable assertion for every JUnit run configuration which will newly create.

This won't make assertions enable for already created run configurations.
Maven Surefire Plugin
- “By default, Surefire enables JVM assertions for the execution of your test cases. To disable the assertions, set this flag to “false”[3].
References
Tags: wildfly