use of grails.plugins.GrailsPlugin in project grails-core by grails.
the class AbstractGrailsPluginManager method informOfClassChange.
public void informOfClassChange(Class<?> aClass) {
if (aClass == null || application == null) {
return;
}
ArtefactHandler handler = application.getArtefactType(aClass);
if (handler == null) {
return;
}
String pluginName = handler.getPluginName();
if (pluginName == null) {
return;
}
GrailsPlugin plugin = getGrailsPlugin(pluginName);
if (plugin != null) {
if (!plugin.isEnabled(applicationContext.getEnvironment().getActiveProfiles()))
return;
plugin.notifyOfEvent(GrailsPlugin.EVENT_ON_CHANGE, aClass);
} else {
String classNameAsPath = aClass.getName().replace('.', File.separatorChar);
String groovyClass = classNameAsPath + ".groovy";
String javaClass = classNameAsPath + ".java";
for (GrailsPlugin grailsPlugin : pluginList) {
List<WatchPattern> watchPatterns = grailsPlugin.getWatchedResourcePatterns();
if (watchPatterns != null) {
for (WatchPattern watchPattern : watchPatterns) {
File parent = watchPattern.getDirectory();
String extension = watchPattern.getExtension();
if (parent != null && extension != null) {
File f = new File(parent, groovyClass);
if (f.exists() && f.getName().endsWith(extension)) {
grailsPlugin.notifyOfEvent(GrailsPlugin.EVENT_ON_CHANGE, aClass);
} else {
f = new File(parent, javaClass);
if (f.exists() && f.getName().endsWith(extension)) {
grailsPlugin.notifyOfEvent(GrailsPlugin.EVENT_ON_CHANGE, aClass);
}
}
}
}
}
}
}
}
use of grails.plugins.GrailsPlugin in project grails-core by grails.
the class AbstractGrailsPluginManager method registerProvidedArtefacts.
public void registerProvidedArtefacts(GrailsApplication app) {
checkInitialised();
// since plugin classes are added as overridable artefacts, which are added as the first
// item in the list of artefacts, we have to iterate in reverse order to ensure plugin
// load sequence is maintained
ArrayList<GrailsPlugin> plugins = new ArrayList<GrailsPlugin>(pluginList);
Collections.reverse(plugins);
for (GrailsPlugin plugin : plugins) {
if (plugin.supportsCurrentScopeAndEnvironment()) {
if (isPluginDisabledForProfile(plugin))
continue;
for (Class<?> artefact : plugin.getProvidedArtefacts()) {
String shortName = GrailsNameUtils.getShortName(artefact);
if (!isAlreadyRegistered(app, artefact, shortName)) {
app.addOverridableArtefact(artefact);
}
}
}
}
}
Aggregations