title: What is the default TransformerFactory?
body: <p>I'm using JAXP XSLT APIs (javax.xml.transform) to transform xml file.</p>
  
  <pre><code>TransformerFactory transformerFactory = TransformerFactory.newInstance();
  Transformer transformer = transformerFactory.newTransformer(xslSource);
  transformer.transform(inputSource, outputResult);
  </code></pre>
  
  <p>The javadoc for TransformerFactory says:
  It uses the following ordered lookup procedure to determine the TransformerFactory implementation class to load:</p>
  
  <ol>
  <li>Use the javax.xml.transform.TransformerFactory system property.  </li>
  <li>Use the properties file "lib/jaxp.properties" in the JRE directory. This
      configuration file is in standard java.util.Properties format and
      contains the fully qualified name of the implementation class with
      the key being the system property defined above. The jaxp.properties
      file is read only once by the JAXP implementation and it's values
      are then cached for future use. If the file does not exist when the
      first attempt is made to read from it, no further attempts are made
      to check for its existence. It is not possible to change the value
      of any property in jaxp.properties after it has been read for the
      first time.  </li>
  <li>Use the Services API (as detailed in the JAR
      specification), if available, to determine the classname. The
      Services API will look for a classname in the file
      META-INF/services/javax.xml.transform.TransformerFactory in jars
      available to the runtime.  </li>
  <li>Platform default TransformerFactory instance.</li>
  </ol>
  
  <p>I wonder how to decide which is the default TransformerFactory instance?</p>