public class MacroExpansionModuleModel extends Object
MacroExpansionModuleModel works tightly with a ApplicationModel to go over all the registered
ExtensionModels that are XML based (see XmlExtensionModelProperty) looking for code to macro expand.
For every occurrence that happens, it will expand the operations.
This object works by handling ComponentModels directly, consuming the GlobalElementComponentModelModelProperty
for the "config" elements while the OperationComponentModelModelProperty for the operations
(aka: Processors in the XML file).
TODO(fernandezlautaro) MULE-10355: the following comment must be deleted once implemented.
Bear in mind that at the moment, the current implementation assumes there will not be dependencies among macro
expansions, the following example WONT work until MULE-10355 is done:
B depends on A, the application uses B, which means that the macro expanded app must expand B elements, discover
that are A ones, and expand A elements as well.| Constructor and Description |
|---|
MacroExpansionModuleModel(ApplicationModel applicationModel,
Set<org.mule.runtime.api.meta.model.ExtensionModel> extensions)
From a mutable
applicationModel, it will store it to apply changes when the expand() method
is executed. |
| Modifier and Type | Method and Description |
|---|---|
void |
expand()
Goes through the entire xml mule application looking for the message processors that can be expanded, and then takes
care of the global elements.
|
public MacroExpansionModuleModel(ApplicationModel applicationModel, Set<org.mule.runtime.api.meta.model.ExtensionModel> extensions)
applicationModel, it will store it to apply changes when the expand() method
is executed.applicationModel - to modify given the usages of elements that belong to the ExtensionModels contained
in the extensions map.extensions - set with all the loaded ExtensionModels from the deployment that will be filtered by
looking up only those that are coming from an XML context through the XmlExtensionModelProperty
property.Copyright © 2003–2017 MuleSoft, Inc.. All rights reserved.