Pluto2.0 Container的原理一

 

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/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值