能够在战争模式中添加“插件”

时间:2013-03-20 12:15:58

标签: grails plugins groovy

我正在寻找让grails-app的admin-role添加“功能”/“插件”的方法 到正在运行的服务器,以便系统立即使用它。

这里更具体的是一个小例子:

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的实例,或由该管理员创建的东西。

有没有机会这样做?还是我完全在做梦? 如果它在某种程度上是可能的,那就是我正在走向一个完全错误的方向, 就告诉我嘛! ; - )

谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

我建议您查找注册新Artefacts的插件,因此在您的启动时,您可以查找此类。您还可以在grails-app中创建一个文件夹来存储提供程序类。

例如,请参阅Grails Dao Artefacts插件。它在daos内创建grails-app文件夹,并将所有类视为DAO Artefact。您还可以在课程中使用Depenceny Injection(例如服务)。

有些要点

中的更多信息