Arquillian
  1. Arquillian
  2. ARQ-138

Implement a remote Weblogic Server container

    Details

    • Affects:
      Documentation (Ref Guide, User Guide, etc.), Interactive Demo/Tutorial, Compatibility/Configuration, Release Notes
    • Estimated Difficulty:
      Medium
    • Similar Issues:
      Show 10 results 

      Description

      We have interest from the community in contributing container support for a remote Weblogic Server. This issue will track the progress of the contribution.

      Note: The proper abbreviation for Weblogic Server is wls

        Issue Links

          Activity

          Hide
          Dan Allen
          added a comment -

          If WebLogic is compliant with JSR 88, basic WebLogic support can be achieved simply by extending the JSR 88 remote container and plugging in the deployment URI and factory class name.

          Show
          Dan Allen
          added a comment - If WebLogic is compliant with JSR 88, basic WebLogic support can be achieved simply by extending the JSR 88 remote container and plugging in the deployment URI and factory class name.
          Hide
          George Gastaldi
          added a comment -

          Any luck on this issue ?

          Show
          George Gastaldi
          added a comment - Any luck on this issue ?
          Hide
          Vineet Reynolds
          added a comment - - edited

          An initial pre-alpha-quality version of the remote WLS integration is available in the ARQ-138 branch of my GitHub repo. The eventual release will be pushed upstream.

          There are a few points to be noted with respect to the current version:

          • CDI Injection might simply not be possible under WLS 10.3.5 (or 10.3.x). A deployment of the ShrinkWrap exported archive with Weld Servlet results in the Servlet complaining of an unsupported environment. This might need to be tracked as a separate issue (possibly in the WELD project).
          • I settled for using Weblogic.Deployer to deploy the ShrinkWrap exported archive. Although this needs to be launched as a separate application, it appears to be most reasonable way to programatically deploy artifacts to WLS from Java. The other options included:
            • usage of WLST, with Arquillian-specific Jython scripts.
            • usage of WLS supplied classes, that are not licensed under ASL2, and hence not present in any public Maven repo.
          • JMX is also used to obtain information about the runtime servers and deployments. There is a twist here - using the JDK/JRE classes alone requires usage of the IIOP protocol to connect to the MBean server. This appeared to be problematic in my setup, and I opted to have users of this integration provide the location of the WebLogic Server installation; the wljmxclient.jar and it's dependencies from the WLS installation are then loaded by a URLClassLoader. A local WLS installation was anyway required for deploying artifacts (considering all of the cases for programmatic deployment), so we don't seem to be burdening users by requiring a WLS installation for deployment against local and remote WLS servers.
          Show
          Vineet Reynolds
          added a comment - - edited An initial pre-alpha-quality version of the remote WLS integration is available in the ARQ-138 branch of my GitHub repo . The eventual release will be pushed upstream. There are a few points to be noted with respect to the current version: CDI Injection might simply not be possible under WLS 10.3.5 (or 10.3.x). A deployment of the ShrinkWrap exported archive with Weld Servlet results in the Servlet complaining of an unsupported environment. This might need to be tracked as a separate issue (possibly in the WELD project). I settled for using Weblogic.Deployer to deploy the ShrinkWrap exported archive. Although this needs to be launched as a separate application, it appears to be most reasonable way to programatically deploy artifacts to WLS from Java. The other options included: usage of WLST, with Arquillian-specific Jython scripts. usage of WLS supplied classes, that are not licensed under ASL2, and hence not present in any public Maven repo. JMX is also used to obtain information about the runtime servers and deployments. There is a twist here - using the JDK/JRE classes alone requires usage of the IIOP protocol to connect to the MBean server. This appeared to be problematic in my setup, and I opted to have users of this integration provide the location of the WebLogic Server installation; the wljmxclient.jar and it's dependencies from the WLS installation are then loaded by a URLClassLoader . A local WLS installation was anyway required for deploying artifacts (considering all of the cases for programmatic deployment), so we don't seem to be burdening users by requiring a WLS installation for deployment against local and remote WLS servers.
          Hide
          Vineet Reynolds
          added a comment -

          This looks alpha/beta/release quality now. Submitting the pull request to make an initial release.

          Tests have been written for

          • EAR and WAR deployments,
          • Injection of dependencies into tests using @Resource, @Ejb and @Inject annotations,

          What might need review -

          • The project POMs. Since this is a Java EE 5 container, the artifacts from the JBoss repo have been used.
          • Use of the WebLogic JMX classloader within the project.

          What is not yet supported (or might not work yet):

          • Deployment and execution of tests against WLS clusters
          Show
          Vineet Reynolds
          added a comment - This looks alpha/beta/release quality now. Submitting the pull request to make an initial release. Tests have been written for EAR and WAR deployments, Injection of dependencies into tests using @Resource, @Ejb and @Inject annotations, What might need review - The project POMs. Since this is a Java EE 5 container, the artifacts from the JBoss repo have been used. Use of the WebLogic JMX classloader within the project. What is not yet supported (or might not work yet): Deployment and execution of tests against WLS clusters
          Hide
          George Gastaldi
          added a comment -

          I tested the pull request and it´s working fine on WLS 10.3.5. Go for it !

          Show
          George Gastaldi
          added a comment - I tested the pull request and it´s working fine on WLS 10.3.5. Go for it !
          Hide
          Aslak Knutsen
          added a comment -

          pushed upstream

          Show
          Aslak Knutsen
          added a comment - pushed upstream
          Hide
          Vineet Reynolds
          added a comment -

          The GitHub pull request URL is invalid after the project was renamed. This GitHub URL ought to be used instead, in case anyone needs it for future reference.

          Show
          Vineet Reynolds
          added a comment - The GitHub pull request URL is invalid after the project was renamed. This GitHub URL ought to be used instead, in case anyone needs it for future reference.

            People

            • Assignee:
              Vineet Reynolds
              Reporter:
              Dan Allen
            • Votes:
              3 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: