Class QNameCreator


  • public final class QNameCreator
    extends java.lang.Object
    Helper class used to solve [WSTX-174]: some older AppServers were shipped with incompatible version of QName class, which is missing the 3 argument constructor. To address this, we'll use bit of ClassLoader hacker to gracefully (?) downgrade to using 2 arg alternatives if necessary.

    Note: choice of java.util.logging logging is only based on the fact that it is guaranteed to be present (we have JDK 1.4 baseline requirement) so that we do not add external dependencies. It is not a recommendation for using JUL per se; most users would do well to just use slf4j or log4j directly instead.

    Since:
    3.2.8
    Author:
    Tatu Saloranta
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  QNameCreator.Helper
      Helper class used to encapsulate calls to the missing method.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static QNameCreator.Helper _helper
      Creator object that creates QNames using proper 3-arg constructor.
    • Constructor Summary

      Constructors 
      Constructor Description
      QNameCreator()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static javax.xml.namespace.QName create​(java.lang.String uri, java.lang.String localName, java.lang.String prefix)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • _helper

        private static final QNameCreator.Helper _helper
        Creator object that creates QNames using proper 3-arg constructor. If dynamic class loading fails
    • Constructor Detail

      • QNameCreator

        public QNameCreator()
    • Method Detail

      • create

        public static javax.xml.namespace.QName create​(java.lang.String uri,
                                                       java.lang.String localName,
                                                       java.lang.String prefix)