Search in sources :

Example 1 with Plugin

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);
    }
}
Also used : GrailsPlugin(grails.plugins.GrailsPlugin) Plugin(grails.plugins.Plugin)

Example 2 with Plugin

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 });
    }
}
Also used : BeanBuilder(grails.spring.BeanBuilder) GrailsPlugin(grails.plugins.GrailsPlugin) Plugin(grails.plugins.Plugin)

Example 3 with Plugin

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();
}
Also used : BeanWrapperImpl(org.springframework.beans.BeanWrapperImpl) GrailsApplicationAware(grails.core.support.GrailsApplicationAware) GrailsPlugin(grails.plugins.GrailsPlugin) Plugin(grails.plugins.Plugin)

Aggregations

GrailsPlugin (grails.plugins.GrailsPlugin)3 Plugin (grails.plugins.Plugin)3 GrailsApplicationAware (grails.core.support.GrailsApplicationAware)1 BeanBuilder (grails.spring.BeanBuilder)1 BeanWrapperImpl (org.springframework.beans.BeanWrapperImpl)1