Solder
  1. Solder
  2. SOLDER-325

Logging implementations generated by jboss-logging-generator do not comply with JSR299 CDI spec.

    Details

    • Type: Bug Bug
    • Status: Open Open (View Workflow)
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Compliance, Logging, Servlet
    • Labels:
      None
    • Environment:
      OpenWebBeans
      Websphere v8
    • Similar Issues:
      Show 10 results 

      Description

      Seam-solder uses jboss-logging in the class ServletLogger (solder-impl-3.1.0.jar).
      The implementation of this ServletLogger interface, was generated at the compilation time of solder-impl by using jboss-logging-generator. This generated the class ServletLogger_$logger also included in the solder-impl-3.1.0.jar.

      Some classes, like ImplicitServletObjectsHolder @Inject the ServletLogger.
      This is possible if and only if the ServletLogger implementation class is recognized by the CDI container. (In my case OpenWebBeans from the IBM websphere 8 container).

      This ServletLogger_$logger implementation class is however no valid CDI managed bean as specified in the JSR299 specification in section: 3.1.1:
      A managed bean must have an appropriate constructor - either: a) the class has a constructor with no parameter, or b) the class declares a constructor annotated @Inject.

      The generated class ServletLogger_$logger has a non-default constructor (with argument 'Logger log') but does not specify the necessary @Inject on the constructor.

      The result is that the class is not identified by the CDI container en thus no valid injectable managed bean is found.

      (some more info can be found on: https://community.jboss.org/message/727773#727773)

        Activity

        Hide
        Ken Finnigan
        added a comment -

        Kris,

        As I mentioned in the forum, I don't believe this is the real issue, due to the Solder Extension and Producers that correctly provide an injectable logger. It's not purely based on the generated class.

        Could you verify that the same error occurs using AS7/Weld to rule out it being an OWB or Websphere issue?

        Show
        Ken Finnigan
        added a comment - Kris, As I mentioned in the forum, I don't believe this is the real issue, due to the Solder Extension and Producers that correctly provide an injectable logger. It's not purely based on the generated class. Could you verify that the same error occurs using AS7/Weld to rule out it being an OWB or Websphere issue?
        Hide
        Kris Vandebroek
        added a comment -

        I've added more updates to the forum. To summarize: the injection of Loggers is different then expected, so the described problem (not being compatible with CDI spec) is not correct.

        Though a problem remains, which is unclear if it is a OWB of a SEAM problem.

        Show
        Kris Vandebroek
        added a comment - I've added more updates to the forum. To summarize: the injection of Loggers is different then expected, so the described problem (not being compatible with CDI spec) is not correct. Though a problem remains, which is unclear if it is a OWB of a SEAM problem.

          People

          • Assignee:
            Unassigned
            Reporter:
            Kris Vandebroek
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated: