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

Implement a remote Weblogic Server container

    Details

      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

        Gliffy Diagrams

          Issue Links

            Activity

            Hide
            dan.j.allen 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.j.allen 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
            gastaldi George Gastaldi added a comment -

            Any luck on this issue ?

            Show
            gastaldi George Gastaldi added a comment - Any luck on this issue ?
            Hide
            vineet.reynolds 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 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 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 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
            gastaldi George Gastaldi added a comment -

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

            Show
            gastaldi 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 Aslak Knutsen added a comment -

            pushed upstream

            Show
            aslak Aslak Knutsen added a comment - pushed upstream
            Hide
            vineet.reynolds 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 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 Vineet Reynolds
                Reporter:
                dan.j.allen Dan Allen
              • Votes:
                3 Vote for this issue
                Watchers:
                5 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Development