public class ArtefactClassesBeanFactoryInitializationAotProcessor extends java.lang.Object implements BeanFactoryInitializationAotProcessor
Writes down the artefacts an application is made of, while they can still be found.
They are found two ways, and an image has neither. The classpath is scanned for the classes under the application's own packages, which needs a classpath to walk; and a list the compile-time transform builds as it goes is consulted, which lives in a static field of the transform and is therefore empty in anything the transform did not itself compile.
So an image found no controllers, no domain classes and no URL mappings, and the application
failed to start on the first bean that wanted one. The only way an application could start was to
override classes() and list its own artefacts by hand, which is a thing to keep in step
with the application forever after.
Generation runs on an ordinary JVM with the full classpath, where both ways work. What they found is written into the generated code here, and read back by GrailsAutoConfiguration.classes.
| Modifiers | Name | Description |
|---|---|---|
static java.lang.String |
BEAN_NAME |
Where the classes are left for classes() to find. |
| Type Params | Return Type | Name and description |
|---|---|---|
|
public BeanFactoryInitializationAotContribution |
processAheadOfTime(ConfigurableListableBeanFactory beanFactory) |
| Methods inherited from class | Name |
|---|---|
class java.lang.Object |
java.lang.Object#equals(java.lang.Object), java.lang.Object#getClass(), java.lang.Object#hashCode(), java.lang.Object#notify(), java.lang.Object#notifyAll(), java.lang.Object#toString(), java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#wait(long, int) |
Where the classes are left for classes() to find. A singleton rather than a bean
definition, because it is read while the definitions are still being contributed.