The Apache Pluto Project(Apache 冥王星项目)
Pluto
Pluto项目是Java Portlet规范的参考实现(Reference Implementation)。该规范目前的版本是JSR 168。
Portlets是一种运行在portal环境下的对象,它们通过与Servlet API相似的Portlet API编写。与servlets不同的是,portlets有很多不能做的事情,比如直接向浏览器发送重定向应答或错误,比如转发请求,比如往应答的输出流中写入任意的markup标签,等等。这是因为portlets是被portal web application所使用的对象,它们的行为不能干扰到portlet web application的工作。与servlets的另外一个区别是,portlets依靠一些portal所特有的底层功能,诸如对user profile信息的访问,诸如存取持久层设定的标准接口,诸如获取客户信息,等等。一般而言,与servlets相比较,portlets以一种更加动态的方式被治理。
Portlet容器为满足Portlet API规范的portlets提供了运行环境。Portlets可以在该环境中被初始化,被触发和调用,以及最终被销毁。和Servlet容器不同的是, Portlet容器不是作为一个独立可运行的容器来实现的,而是架设在Servlet容器之上的一个层,它重用了Servlet容器提供的许多功能。
Pluto是一个满足Portlet API规范的Portlet容器的实现,它为开发者提供了一个运行portlets的工作平台。然而,假如没有一个驱动器(driver),也就是 Portal,的支持的话,运行和测试Portlet容器将非常之麻烦。Pluto本身也提供了一个简单的Portal模块,该模块仅仅是为了满足 Portlet容器和JSR 168的需要而写的。假如你需要一个成熟的Portal,请参考Jetspeed项目。Jetspeed项目关注的是Portal本身,而不是Portlet容器。
Pluto的版本