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