【发布时间】:2013-03-20 12:15:58
【问题描述】:
我正在寻找一种方法让我的 grails-app 的管理员角色添加“功能”/“插件” 到正在运行的服务器,以便系统立即使用它。
更具体地说,这里是一个小例子:
package domains
abstract class Provider {
def protected name;
def protected activated = false;
def private valid;
def Provider( providerName ) {
if( providerName != null ) {
name = providerName;
valid = true;
else valid = false;
}
def isValid() { valid }
def getName() { name }
def isActivated() { activated }
def setActivated( bool ) { activaed = bool }
abstract List<String> search( String searchKey );
}
一些子类:
package googleprovider
import Provider;
class GoogleProvider extends Provider {
def GooleProvider( active ) {
super( "Google" );
activated = active;
}
@Override
List<String> search( String searchKey ) {
return ["http://www.google.com"]
}
}
现在每个“插件”/“功能”都应该从 Provider 扩展,并作为任何文件放置在“plugins/providers/”目录中。
服务器应在“onAdd”事件或该管理员控制的事件上创建此 GoogleProvider 的实例。
有没有可能做到这一点?还是我完全在做梦? 如果有可能,只是我走错了方向, 就告诉我嘛! ;-)
感谢您的宝贵时间!
【问题讨论】: