This document discusses different ways to use Java components in Mule, including: 1. Java components allow writing custom Java code and transformations when standard Mule transformers cannot be used. 2. A Java component can reference a class implementing Callable to access the Mule event context and payload. 3. A Java component can use a singleton object factory to share a single instance of a class across multiple requests rather than creating a new instance each time. Properties can be passed into the shared class instance. 4. The Invoke component invokes methods on Java classes, with a bean configured in global elements to reference the class and methods to call.