[
https://issues.jboss.org/browse/ARQ-725?page=com.atlassian.jira.plugin.sy...
]
Vineet Reynolds updated ARQ-725:
--------------------------------
Summary: Improve the performance of the WebLogicContainer implementation (was:
Refactor the WebLogicContainer implementation to a stateful implementation, to improve
performance)
Labels: performance (was: )
Description:
The {{WebLogicJMXLibClassLoader}} uses the {{wljmxclient.jar}} file as a codesource. This
JAR contains a definition for the {{weblogic.jndi.WLInitialContextFactory}} class, that
also initializes a {{SecurityManager}} implementation. This {{SecurityManager}} is used to
verify access to classpath resources when loading classes and also when loading files to
prepared a ShrinkWrap archive, leading to slower archive generation times, and hence
slower tests. While the [Oracle documentation on accessing WLS
MBeans|http://docs.oracle.com/cd/E21764_01/web.1111/e13728/accesswls.htm] does emphasize
using wljmxclient.jar to access the MBean Server, using {{weblogic.jar}} or
{{wlfullclient.jar}} instead would lead to faster tests as the definitions for
{{weblogic.jndi.WLInitialContextFactory}} within these do not initialize a
{{SecurityManager}}.
Also, the {{WebLogicContainer}} class does not store any state across archive deployments
and undeployments. New instances of the {{WebLogicJMXClient}} class are created on every
deployment and undeployment of archives. Internally, a new classloader instance is also
created for every deployment and undeployment. This tends to increase the time elapsed for
a deployment, before it is made available for execution of Arquillian tests. A refactoring
is therefore proposed wherein the {{WebLogicContainer}} class would create only one
instance of the {{WebLogicJMXClient}} class, and reuse it throughout the lifecycle of the
container.
was:Currently, the {{WebLogicContainer}} class does not store any state across archive
deployments and undeployments. New instances of the {{WebLogicJMXClient}} class are
created on every deployment and undeployment of archives. Internally, a new classloader is
also created for every deployment and undeployment. This tends to increase the time
elapsed for a deployment, before it is made available for execution of Arquillian tests. A
refactoring is therefore proposed wherein the {{WebLogicContainer}} class would create
only one reference to the {{WebLogicJMXClient}} class, and reuse it throughout the
lifecycle of the container.
Improve the performance of the WebLogicContainer implementation
---------------------------------------------------------------
Key: ARQ-725
URL:
https://issues.jboss.org/browse/ARQ-725
Project: Arquillian
Issue Type: Enhancement
Security Level: Public(Everyone can see)
Components: WebLogic Containers
Reporter: Vineet Reynolds
Assignee: Vineet Reynolds
Labels: performance
The {{WebLogicJMXLibClassLoader}} uses the {{wljmxclient.jar}} file as a codesource. This
JAR contains a definition for the {{weblogic.jndi.WLInitialContextFactory}} class, that
also initializes a {{SecurityManager}} implementation. This {{SecurityManager}} is used to
verify access to classpath resources when loading classes and also when loading files to
prepared a ShrinkWrap archive, leading to slower archive generation times, and hence
slower tests. While the [Oracle documentation on accessing WLS
MBeans|http://docs.oracle.com/cd/E21764_01/web.1111/e13728/accesswls.htm] does emphasize
using wljmxclient.jar to access the MBean Server, using {{weblogic.jar}} or
{{wlfullclient.jar}} instead would lead to faster tests as the definitions for
{{weblogic.jndi.WLInitialContextFactory}} within these do not initialize a
{{SecurityManager}}.
Also, the {{WebLogicContainer}} class does not store any state across archive deployments
and undeployments. New instances of the {{WebLogicJMXClient}} class are created on every
deployment and undeployment of archives. Internally, a new classloader instance is also
created for every deployment and undeployment. This tends to increase the time elapsed for
a deployment, before it is made available for execution of Arquillian tests. A refactoring
is therefore proposed wherein the {{WebLogicContainer}} class would create only one
instance of the {{WebLogicJMXClient}} class, and reuse it throughout the lifecycle of the
container.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira