Liferay7开发文档_1.6寻找扩展点

寻找扩展点

Liferay Portal提供了许多帮助用户完成任务的功能。然而,有时候您可能会发现需要定制内置功能。找到想要自定义的区域很容易,但要弄清楚如何对其进行自定义似乎是一项艰巨的任务。Liferay Portal是为了轻松定制而开发的,这意味着您可以使用许多扩展点来添加自己的风格。

这个过程可以让你轻松找到扩展点。

  1. 找到提供您想要更改的功能的bundle (module模块)。
  2. 查找模块中可用的组件。
  3. 发现所选组件的扩展点。

在本教程中学习如何找到扩展点。将介绍一个简单的示例,该示例定位用于导入LDAP用户的扩展点。这需要使用Liferay Portal的 Application ManagerFelix Gogo Shell

找到相关模块和组件

您首先得考虑被更改应用程序的名词。使用正确的关键字,您可以轻松追踪所需的模块及其组件。考虑导入LDAP用户的例子。一些用于查找组件的候选关键字是import,user和LDAP。

发现Liferay Portal中特定功能模块的最简单方法是使用Application Manager。Application Manager将应用程序套件及其包含的模块/组件列入易于使用的界面中。它甚至列出第三方应用程序!您将使用关键字来定位适用的组件。

  1. 导航到Control Panel → Apps → App Manager,打开 App Manager。一级列表列出了应用程序套件,独立应用程序和独立模块。
  2. 浏览应用程序套件,应用程序和模块,或者使用搜索查找可能提供所需扩展点的组件。请记住检查元素名称和说明中的关键字。关键字LDAP驻留在Liferay Foundation应用程序套件下; 选择它。LDAP的关键字的应用程序,manager.png

    图1:Liferay Foundation应用套件包含LDAP认证应用程序。

  3. 从应用列表中选择LDAP应用程序。
  4. LDAP应用程序只有一个模块,但通常应用程序有多个模块要检查。选择Liferay Portal Security LDAP模块。应用程序管理器,breakdown.png

    图2:App Manager列出了module, package name, version, and status。

  5. 搜索组件,将您的关键字作为指导。复制你认为最适合你要自定义功能的组件名称; 您稍后将使用Gogo shell进行检查。usermodellistener-component.png

    图3:可以使用App Manager找到组件名称。

    注意:以后使用Gogo shell时,可能需要多次尝试才能找到您正在查找的组件; 命名约定应该允许您在可管理的时间范围内找到您想要的扩展点。

接下来,您将开始使用Gogo shell来检查组件的扩展点。

在组件中查找扩展点

一旦你的组件与你想扩展的功能相关,你可以使用Gogo shell的Service Component Runtime(SCR)命令来检查它。您可以使用Liferay Blade CLI执行SCR命令,也可以通过telnetGogo shell中执行SCR命令。本教程假定您通过telnet使用Gogo shell。

执行以下命令:

scr:info [COMPONENT_NAME]

对于先前复制的LDAP示例组件,该命令如下所示:

scr:info com.liferay.portal.security.ldap.internal.messaging.UserImportMessageListener

输出包含大量信息。这儿您对组件引用的服务感兴趣。这些是扩展点。例如,以下是导入LDAP用户的服务的参考:

...
Reference: LdapUserImporter
Interface Name: com.liferay.portal.security.ldap.exportimport.LDAPUserImporter
Cardinality: 1..1
Policy: static
Policy option: reluctant
Reference Scope: bundle
...

LDAPUserImporter是定制用LDAP导入用户的过程所需的扩展点!如果没有任何引用符合您的要求,请从App Manager搜索其他组件。

如果您打算重写引用的服务,则需要了解引用的策略和策略选项。如果策略是static和策略选项reluctant,则绑定一个新的更高级别的服务来代替绑定的服务需要重新激活组件或更改目标。有关其他策略和策略选项的信息,请访问OSGi规范,特别是第112.3.5和112.3.6节。如果您想了解如何覆盖组件的服务参考,请访问以下教程

重要并非Liferay Portal中的所有扩展点都可用作引用服务。引用服务常使用声明式服务(DS)发布扩展点,但扩展点不是都以这种方式公开。如果您的工程不使用DS组件框架,则需要从OSGi注册表中查找描述其服务使用情况的API。以下是Liferay Portal中其他潜在扩展点的简要列表:

  • Instances of org.osgi.util.tracker.ServiceTracker<S, T>
  • Uses of Liferay’s Registry.getServiceTracker
  • Uses of Liferay’s ServiceTrackerMap or ServiceTrackerCollection
  • Any other component framework or whiteboard implementation (e.g., HTTP, JAX-RS) that supports tracking services; Blueprint, Apache Dependency Manager, etc. could also introduce extension points.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值