Jetspeed Portlet Extension Service
前面介绍了实现架构和运行时架构,接下来我们一起来看看Jetspeed为Portlet应用提供的Jetspeed Service架构。假如了解JSR-168规范的研发者就会知道,这个规范是基于Servlet 2.3规范基础上的一个简单扩展,因此并没有对Portlet研发提供任何特别的支持。因而每家Portal厂商都提供了自己的扩展。
Jetspeed 提供的扩展方式跟很多厂商对Servlet规范的扩展相同,定义了一个名为jetspeed-portlet.xml的文档,作为标准的 portlet.xml的扩展。只要您在打包发布portlet应用时将这个文档和portlet.xml放在一起,Jetspeed的发布程式就会自动读取这个文档,并根据其内容执行一系列的操作。他们的关系如同BEA Weblogic应用服务器里面的weblogic.xml和web.xml;JBoss应用服务器里面的jboss-web.xml和web.xml。
下面我们来看看这个文档的格式:
<portlet-app id="j2-admin" version="1.0"
xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
xmlns:js="http://portals.apache.org/jetspeed"
xmlns:dc="http://www.purl.org/dc">
<js:services>
<js:service name="ApplicationServerManager" />
<js:service name="DeploymentManager" />
<js:service name="EntityAccessor" />
<js:service name="GroupManager" />
<js:service name="PageManager" />
<js:service name="PermissionManager" />
<js:service name="PortalAdministration" />
<js:service name="PortletFactory" />
<js:service name="PortalAdministration" />
<js:service name="PortletRegistryComponent" />
<js:service name="PortalStatistics" />
<js:service name="Profiler" />
<js:service name="RoleManager" />
<js:service name="SearchComponent" />
<js:service name="SSO" />
<js:service name="UserManager" />
<js:service name="HeaderResource" />
</js:services>
</portlet-app>
|
跟据XML Element的名字,能够理解就是提供给j2-admin这个Portlet应用程式使用的一些Services。那么这些Services是怎么定义的呢?以UserManager这个服务为例,首先回到前面提到过的assemble目录下,找到jetspeed-services.xml和 security-managers.xml,下面分别是他们的内容节选:
jetspeed-services.xml
<beans default-lazy-init="false" default-dependency-check="none" default-autowire="no">
<!--
Portlet Services
-->
<bean id="PortalServices"
class="org.apache.jetspeed.services.JetspeedPortletServices"
abstract="false" singleton="true" lazy-init="default" autowire="default"
dependency-check="default">
<constructor-arg>
<map>
<entry key="SearchComponent">
<ref bean="org.apache.jetspeed.search.SearchEngine" />
</entry>
<entry key="UserManager">
<ref bean="org.apache.jetspeed.security.UserManager" />
</entry>
<entry key="PageManager">
<ref bean="org.apache.jetspeed.page.PageManager" />
</entry>
</map>
</constructor-arg>
</bean>
</beans>
|
security-managers.xml
<beans default-lazy-init="false" default-dependency-check="none" default-autowire="no">
<bean id="org.apache.jetspeed.security.UserManager"
class="org.apache.jetspeed.security.impl.UserManagerImpl" abstract="false"
singleton="true" lazy-init="default" autowire="default"
dependency-check="default">
<constructor-arg>
<ref bean="org.apache.jetspeed.security.SecurityProvider" />
</constructor-arg>
</bean>
</beans>
|
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




