use of grails.plugins.Plugin in project grails-core by grails.
the class DefaultGrailsPlugin method doWithApplicationContext.
public void doWithApplicationContext(ApplicationContext ctx) {
if (plugin instanceof Plugin) {
Plugin pluginObject = (Plugin) plugin;
pluginObject.setApplicationContext(ctx);
pluginObject.doWithApplicationContext();
} else {
Object[] args = { ctx };
invokePluginHook(DO_WITH_APPLICATION_CONTEXT, args, ctx);
}
}
use of grails.plugins.Plugin in project grails-core by grails.
the class DefaultGrailsPlugin method doWithRuntimeConfiguration.
public void doWithRuntimeConfiguration(RuntimeSpringConfiguration springConfig) {
Binding b = new Binding();
b.setVariable("application", grailsApplication);
b.setVariable(GrailsApplication.APPLICATION_ID, grailsApplication);
b.setVariable("manager", getManager());
b.setVariable("plugin", this);
b.setVariable("parentCtx", getParentCtx());
b.setVariable("resolver", getResolver());
if (plugin instanceof Plugin) {
Closure c = ((Plugin) plugin).doWithSpring();
if (c != null) {
BeanBuilder bb = new BeanBuilder(getParentCtx(), springConfig, grailsApplication.getClassLoader());
bb.setBinding(b);
bb.invokeMethod("beans", new Object[] { c });
}
} else {
if (!pluginBean.isReadableProperty(DO_WITH_SPRING)) {
return;
}
if (LOG.isDebugEnabled()) {
LOG.debug("Plugin " + this + " is participating in Spring configuration...");
}
Closure c = (Closure) plugin.getProperty(DO_WITH_SPRING);
BeanBuilder bb = new BeanBuilder(getParentCtx(), springConfig, grailsApplication.getClassLoader());
bb.setBinding(b);
c.setDelegate(bb);
bb.invokeMethod("beans", new Object[] { c });
}
}
use of grails.plugins.Plugin in project grails-core by grails.
the class DefaultGrailsPlugin method initialisePlugin.
private void initialisePlugin(Class<?> clazz) {
pluginGrailsClass = new GrailsPluginClass(clazz);
plugin = (GroovyObject) pluginGrailsClass.newInstance();
if (plugin instanceof Plugin) {
Plugin p = (Plugin) plugin;
p.setApplicationContext(applicationContext);
p.setPlugin(this);
p.setGrailsApplication(grailsApplication);
p.setPluginManager(manager);
} else if (plugin instanceof GrailsApplicationAware) {
((GrailsApplicationAware) plugin).setGrailsApplication(grailsApplication);
}
pluginBean = new BeanWrapperImpl(plugin);
// configure plugin
evaluatePluginVersion();
evaluatePluginDependencies();
evaluatePluginLoadAfters();
evaluateProvidedArtefacts();
evaluatePluginEvictionPolicy();
evaluateOnChangeListener();
evaluateObservedPlugins();
evaluatePluginStatus();
evaluatePluginScopes();
evaluatePluginExcludes();
evaluateTypeFilters();
}
Aggregations