Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-12981

Global directory user experience improvements

    XMLWordPrintable

Details

    • Feature Request
    • Resolution: Unresolved
    • Major
    • None
    • None
    • EE, Management
    • None

    Description

      This is follow up issue for https://issues.redhat.com/browse/WFLY-1160.
      During development there were discussed few ways of improving user experience of global directory that weren't implemented as part of the original feature:

      1. If some class from global directory throws an exception, it would be helpful is user was informed which jar contains this class.
      2. If global directory contains corrupted jar file (e.g. text file which was renamed to .jar), deployment won't be successfully deployed. Server logs contains information that zip file could not be opened. Cli only prints out that deployment is missing dependencies - which isn't necessarily true.
      It's possible that deployment isn't missing any dependencies - in this case, it would be better just to display a warning that there is a corrupted jar in global directory.
      3. It would be good if users could specify dependencies for their libraries, something like this:

      /subsystem=ee/global-directory=my-common-libs:add(path=lib, relative-to=jboss.home.dir, dependencies=[{name=org.hibernate.something,export=true,import=false}])
      

      4. If jar contains class that has same name and package as some java ee class, for example custom javax.ws.rs.client.Client, it can cause error during execution:

      org.jboss.resteasy.spi.UnhandledException: java.lang.LinkageError: loader constraint violation: loader (instance of org/jboss/modules/ModuleClassLoader) previously initiated loading for a different type with name "javax/ws/rs/client/Client"
      

      It would be better if user was informed about duplicity during deployment.

      5. If global directory has following hierarchy:
      a/a.1.jar
      ---- A.class
      b/a.2.jar
      ---- A.class
      ---- B.class
      and class B uses A's feature that is only available in a.2.jar version of A.class then
      it fails during execution when class B tries to access this feature of class A (because class A is loaded from a.1.jar and A in a.2.jar is ignored).
      As before, it would be better if user was informed about presence of duplicate class A in global directory during deployment.

      Attachments

        Issue Links

          Activity

            People

              bstansbe@redhat.com Brian Stansberry
              tterem@redhat.com Tomas Terem (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: