Search in sources :

Example 1 with BinaryGrailsPlugin

use of org.grails.plugins.BinaryGrailsPlugin in project grails-core by grails.

the class PluginAwareResourceBundleMessageSource method mergeBinaryPluginProperties.

protected void mergeBinaryPluginProperties(final Locale locale, Properties mergedProps) {
    final GrailsPlugin[] allPlugins = pluginManager.getAllPlugins();
    for (GrailsPlugin plugin : allPlugins) {
        if (plugin instanceof BinaryGrailsPlugin) {
            BinaryGrailsPlugin binaryPlugin = (BinaryGrailsPlugin) plugin;
            final Properties binaryPluginProperties = binaryPlugin.getProperties(locale);
            if (binaryPluginProperties != null) {
                mergedProps.putAll(binaryPluginProperties);
            }
        }
    }
}
Also used : GrailsPlugin(grails.plugins.GrailsPlugin) BinaryGrailsPlugin(org.grails.plugins.BinaryGrailsPlugin) BinaryGrailsPlugin(org.grails.plugins.BinaryGrailsPlugin) Properties(java.util.Properties)

Example 2 with BinaryGrailsPlugin

use of org.grails.plugins.BinaryGrailsPlugin in project grails-core by grails.

the class DefaultGroovyPageLocator method findPageInBinding.

public GroovyPageScriptSource findPageInBinding(String pluginName, String uri, TemplateVariableBinding binding) {
    GroovyPageScriptSource scriptSource = null;
    String contextPath = resolveContextPath(pluginName, uri, binding);
    String fullURI = GrailsResourceUtils.appendPiecesForUri(contextPath, uri);
    if (pluginManager != null) {
        GrailsPlugin grailsPlugin = pluginManager.getGrailsPlugin(pluginName);
        if (grailsPlugin instanceof BinaryGrailsPlugin) {
            BinaryGrailsPlugin binaryGrailsPlugin = (BinaryGrailsPlugin) grailsPlugin;
            File projectDirectory = binaryGrailsPlugin.getProjectDirectory();
            if (projectDirectory != null) {
                File f = new File(projectDirectory, GrailsResourceUtils.VIEWS_DIR_PATH + uri);
                if (f.exists()) {
                    scriptSource = new GroovyPageResourceScriptSource(uri, new FileSystemResource(f));
                }
            } else {
                scriptSource = resolveViewInBinaryPlugin(binaryGrailsPlugin, uri);
            }
        }
    }
    if (scriptSource == null) {
        scriptSource = findPageInBinding(fullURI, binding);
    }
    if (scriptSource == null) {
        scriptSource = findResourceScriptSource(uri);
    }
    //last effort to resolve and force name of plugin to use camel case
    if (scriptSource == null) {
        contextPath = resolveContextPath(pluginName, uri, binding, true);
        scriptSource = findPageInBinding(GrailsResourceUtils.appendPiecesForUri(contextPath, uri), binding);
    }
    return scriptSource;
}
Also used : GrailsPlugin(grails.plugins.GrailsPlugin) BinaryGrailsPlugin(org.grails.plugins.BinaryGrailsPlugin) BinaryGrailsPlugin(org.grails.plugins.BinaryGrailsPlugin) FileSystemResource(org.springframework.core.io.FileSystemResource) File(java.io.File)

Example 3 with BinaryGrailsPlugin

use of org.grails.plugins.BinaryGrailsPlugin in project grails-core by grails.

the class GroovyPagesServlet method findPageInBinaryPlugins.

protected GroovyPageScriptSource findPageInBinaryPlugins(String pageName) {
    if (pageName != null) {
        Class<?> pageClass = binaryPluginViewsMap.get(pageName);
        if (pageClass == null && pluginManager != null) {
            final GrailsPlugin[] allPlugins = pluginManager.getAllPlugins();
            for (GrailsPlugin plugin : allPlugins) {
                if (plugin instanceof BinaryGrailsPlugin) {
                    BinaryGrailsPlugin binaryPlugin = (BinaryGrailsPlugin) plugin;
                    pageClass = binaryPlugin.resolveView(pageName);
                    if (pageClass != null) {
                        binaryPluginViewsMap.put(pageName, pageClass);
                        break;
                    }
                }
            }
        }
        if (pageClass != null) {
            return new GroovyPageCompiledScriptSource(pageName, pageName, pageClass);
        }
    }
    return null;
}
Also used : GrailsPlugin(grails.plugins.GrailsPlugin) BinaryGrailsPlugin(org.grails.plugins.BinaryGrailsPlugin) BinaryGrailsPlugin(org.grails.plugins.BinaryGrailsPlugin) GroovyPageCompiledScriptSource(org.grails.gsp.io.GroovyPageCompiledScriptSource)

Example 4 with BinaryGrailsPlugin

use of org.grails.plugins.BinaryGrailsPlugin in project grails-core by grails.

the class DefaultGroovyPageLocator method findBinaryScriptSource.

protected GroovyPageScriptSource findBinaryScriptSource(String uri) {
    if (pluginManager == null) {
        return null;
    }
    List<GrailsPlugin> allPlugins = Arrays.asList(pluginManager.getAllPlugins());
    Collections.reverse(allPlugins);
    for (GrailsPlugin plugin : allPlugins) {
        if (!(plugin instanceof BinaryGrailsPlugin)) {
            continue;
        }
        BinaryGrailsPlugin binaryPlugin = (BinaryGrailsPlugin) plugin;
        if (LOG.isDebugEnabled()) {
            LOG.debug("Searching plugin [{}] for GSP view [{}]", plugin.getName(), uri);
        }
        GroovyPageScriptSource scriptSource = resolveViewInBinaryPlugin(binaryPlugin, uri);
        if (scriptSource != null) {
            if (LOG.isDebugEnabled()) {
                LOG.debug("Found GSP view [{}] in plugin [{}]", uri, plugin.getName());
            }
            return scriptSource;
        } else if (binaryPlugin.getProjectDirectory() != null) {
            scriptSource = resolveViewInPluginProjectDirectory(binaryPlugin, uri);
            if (scriptSource != null) {
                return scriptSource;
            }
        }
    }
    return null;
}
Also used : GrailsPlugin(grails.plugins.GrailsPlugin) BinaryGrailsPlugin(org.grails.plugins.BinaryGrailsPlugin) BinaryGrailsPlugin(org.grails.plugins.BinaryGrailsPlugin)

Aggregations

GrailsPlugin (grails.plugins.GrailsPlugin)4 BinaryGrailsPlugin (org.grails.plugins.BinaryGrailsPlugin)4 File (java.io.File)1 Properties (java.util.Properties)1 GroovyPageCompiledScriptSource (org.grails.gsp.io.GroovyPageCompiledScriptSource)1 FileSystemResource (org.springframework.core.io.FileSystemResource)1