pluto2.0的portlet contanier其实就是构建servlet contaniter之上,当在tomcat中配置好pluto2.0并启动后,tomcat的webapps下就有一个名为pluto的web项目以后我们要运行的portlet实际上就是运行在这个项目之中,在这个项目下两个关于这个容器的配置文件,分别是pluto-portal-driver-config.xml和pluto-portal-driver-services-config.xml,作用如下:
pluto-portal-driver-services-config.xml这个是spring的配置文件,pluto这个项目使用了spring完成services类的创建和注入工作,这些services类主要是用于读取并解析pluto-portal-driver-config.xml以及各个Application下的portlet.xml,主要有PortalDriverServices(记录着每个portlet的相关信息,也就是用于加载各个Application下的portlet.xml文件),DriverConfiguration(记录着有关portal的信息,也就是用于加载pluto-portal-driver-config.xml文件)。
DriverConfiguration依赖于:
1、PropertyConfigService(pluto-portal-driver-config.xml文件中有关portal的信息(如名字,所支持的portlet-mode和window-state等)。
2、RenderConfigService(pluto-portal-driver-config.xml文件中标签<render-config>下的内容)。
3、PortalURLParser
4、SupportedWindowStatesService(结合了PortletRegistryService(从PortalDriverServices中取得)和PropertyConfigService用于判断某个WindowStateService是否支持)。
5、SupportedModesService(类似于前者,用于判断某个Mode是否支持)。
pluto-portal-driver-services-config.xml依赖于:
1、PortalContext(类似并依赖于DriverConfiguration)
2、PortletRequestContextService(用于得到各种不同类型的PortletRequestContext:PortletRenderResponseContext、PortletRequestContext、PortletResourceRequestContext等,这些个ServletContext作用差不多,可以在request中存放一些属性,实际上这些属性是被存在ServletContext里面)。
3、EventCoordinationService(处理事件的运行)
4、FilterManagerService(用于处理filter的运行,在后面会详细讲到)。
5、PortletURLListenerService。如下所示:
<bean id="PortalDriverServices" class="org.apache.pluto.driver.container.PortalDriverServicesImpl" singleton="true" lazy-init="default" autowire="default" dependency-check="default">
<constructor-arg>
<ref bean="PortalContext" />
</constructor-arg>
<constructor-arg>
<ref bean="PortletRequestContextService" />
</constructor-arg>
<constructor-arg>
<ref bean="EventCoordinationService" />
</constructor-arg>
<constructor-arg>
<ref bean="FilterManagerService" />
</constructor-arg>
<constructor-arg>
<ref bean="PortletURLListenerService" />
</constructor-arg>
</bean>
<bean id="DriverConfiguration" class="org.apache.pluto.driver.config.impl.DriverConfigurationImpl" lazy-init="default" autowire="default" dependency-check="default">
<constructor-arg>
<ref bean="PortalURLParser" />
</constructor-arg>
<constructor-arg>
<ref bean="PropertyConfigService" />
</constructor-arg>
<constructor-arg>
<ref bean="RenderConfigService" />
</constructor-arg>
<constructor-arg>
<ref bean="SupportedModesService" />
</constructor-arg>
<constructor-arg>
<ref bean="SupportedWindowStatesService" />
</constructor-arg>
pluto-portal-driver-config.xml记录着有关portal的信息(如名字,所支持的portlet-mode和window-state等)以及每个portal page中有哪些portlet,如下所示:
<portal-name>pluto-portal-driver</portal-name>
<portal-version>2.0.0</portal-version>
<container-name>Pluto Portal Driver</container-name>
<supports>
<portlet-mode>view</portlet-mode>
<portlet-mode>edit</portlet-mode>
<portlet-mode>help</portlet-mode>
<portlet-mode>config</portlet-mode>
<window-state>normal</window-state>
<window-state>maximized</window-state>
<window-state>minimized</window-state>
</supports>
<render-config default="About Apache Pluto">
<page name="JSR 286 Tests" uri="/WEB-INF/themes/pluto-default-theme.jsp">
<portlet context="/testsuite" name="286TestPortlet" />
<portlet context="/testsuite" name="286TestCompanionPortlet" />
</page>
。。。。。。。。
</render-config>
转载http://blog.163.com/zqykiki@126/blog/static/55695609201001351858863/