Uploaded image for project: 'Arquillian'
  1. Arquillian
  2. ARQ-725

Improve the performance of the WebLogicContainer implementation

    Details

      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 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.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                vineet.reynolds Vineet Reynolds
                Reporter:
                vineet.reynolds Vineet Reynolds
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: