Release Notes - Pluto 2.0.0

The list below outlines the issues that are addressed with release 2.0.0 .

The release notes of the previous release 1.1.7 are available here: release notes 1.1.7.

Bug

  • [PLUTO-397] - Copyright at bottom of Portal Driver content needs to be updated to 2007
  • [PLUTO-421] - PortletRequest.getParameterMap() must return an unmodifiable map (PLT.11.1.1)
  • [PLUTO-430] - Portlet Config changes
  • [PLUTO-446] - No way to set default page encoding for Pluto
  • [PLUTO-448] - No way to know if expiration cache value was set via PortletDD
  • [PLUTO-449] - portlet-skin.jsp does not have the JSTL core taglib directive
  • [PLUTO-450] - ExternalAppScopedAttributeTest.jsp has a minor javascript error
  • [PLUTO-451] - JSP21ExpressionEvaluatorProxy is causing an exception in Tomcat 6.0 if compiled using JDK 5.0
  • [PLUTO-452] - Assembler ant task fails on WAR with no manifest
  • [PLUTO-454] - JSR-286 RI driver does not support more than one public render parameter
  • [PLUTO-455] - Assembler emitts non-validating web.xml for servlet 2.3 and 2.4
  • [PLUTO-457] - PortletContainerException doesn't chain Throwable
  • [PLUTO-462] - isPortletModeAllowed and isWindowStateAllowed do case-sensitve checks
  • [PLUTO-463] - java.lang.ClassCastException: org.apache.pluto.internal.impl.PortletSessionImpl with Pluto 2.0 and Jetty
  • [PLUTO-466] - Assembly code cannot parse Servlet 2.4 web.xml containing <jsp-config> tags
  • [PLUTO-468] - isPortletModeAllowed and isWindowStateAllowed do case-sensitve checks
  • [PLUTO-469] - Pluto Driver not using injected Portal URL Parser
  • [PLUTO-471] - Assembler emitts non-validating web.xml for servlet 2.3 and 2.4
  • [PLUTO-473] - XML Schema Location for pluto-portal-driver-config.xsd points to obsolete schema definition
  • [PLUTO-475] - Default Portlet Skin and WindowStateAnchorTag emit invalid markup
  • [PLUTO-476] - Unused LocalStrings.properties with better messages
  • [PLUTO-477] - PortletRequestImpl throws a NullPointerException when getting USER_INFO for unauthenticated users
  • [PLUTO-478] - Portlet Dispatching loses wrappers
  • [PLUTO-479] - Pluto references internal (placeholder) wrapper classes instead of javax.portlet classes
  • [PLUTO-480] - Pluto resource response fails on forward because it checks for valid content type
  • [PLUTO-484] - PortletURLImpl.setSecure() throws PortletSecurityException when PortletURLProvider.isSecureSupported() returns true
  • [PLUTO-490] - Cannot deploy portlets to ROOT context
  • [PLUTO-499] - Invoking FilterConfig.getInitParameter() when there are no filter parameters defined results in NPE
  • [PLUTO-505] - Whitespace in PreferencesValidator declaration results in ClassNotFoundException
  • [PLUTO-506] - Invoking the store() method of PortletPreferences object results in NPE if no preferences declared in portlet.xml
  • [PLUTO-507] - PortalDriverFilter doesn't handle action requests properly, throws IllegalStateException
  • [PLUTO-508] - pluto2:install / pluto missing commons logging
  • [PLUTO-509] - JAXB portlet descriptor model handling broken with respect to the different namespace handling for portlet API 1.0 and 2.0
  • [PLUTO-510] - Web deployment descriptor model loading and rewriting broken and out-dated
  • [PLUTO-511] - Separate Pluto implementation from required interfaces in shared class loader
  • [PLUTO-514] - Invoking PortletRequest.isUserInRole() results in NPE if no <security-role-ref> elements defined
  • [PLUTO-515] - Retrieving user information request attribute results in NPE if no <user-attribute> elements defined
  • [PLUTO-516] - Pluto's PorletSessionImpl#setAttribute sometimes sets var into APPLICATION_SCOPE without explanation
  • [PLUTO-517] - PortletWindowConfig#createPortletId generates troublesome id with leading slash
  • [PLUTO-522] - pluto looks up wrong context when publish an event in response to an event
  • [PLUTO-527] - FilterConfig.getInitParameterNames() is not implemented
  • [PLUTO-528] - PortletContextManager registers portlets only if log level info is enabled
  • [PLUTO-529] - PortletRequest/PortletResponse implementations extending HttpServletRequest/Response wrappers causes "indentity" problems when accessed from servlets
  • [PLUTO-530] - RequestDispatcher path query string parameter handling too limited and broken with nested dispatches
  • [PLUTO-535] - Dispatched HttpServletRequest path info methods must return path information used to obtain the PortletRequestDispatcher
  • [PLUTO-536] - Setting the ResourceResponse character encoding requires to support locale-encoding-mapping-list from web.xml
  • [PLUTO-541] - locale retrieval from PortletRequestImpl throws NoSuchElement Exception
  • [PLUTO-553] - commons-logging unsuited for cross-context webapplication invocation usage - migrating to slf4j
  • [PLUTO-554] - Infinite invocation when a view page of a portlet tries to include some result from other servlet path.
  • [PLUTO-557] - Fixing the RequestDispatcher implementation to be more web container generic and pluggable through a Service
  • [PLUTO-561] - ResourceResponse.setContentType() with charset is broken.

Improvement

  • [PLUTO-360] - FileAssemblerTest cannot be executed offline
  • [PLUTO-395] - Copy assembly module from trunk to 286-COMPATIBILITY branch
  • [PLUTO-417] - PortletResponseImpl doesn't allow wsrp rewrite urls
  • [PLUTO-428] - Refactoring ResponseImpl
  • [PLUTO-429] - Refactoring. Elemenate multiple code in *ResponseImpl. Extract same code in new Superclass.
  • [PLUTO-442] - Create a Testsuite for JSR-286 features
  • [PLUTO-445] - Patch to implement mime response cache control
  • [PLUTO-456] - fix line endings on files.
  • [PLUTO-458] - Improve exception handling with AbstractCastorDescriptorService
  • [PLUTO-459] - Update 286's pom to use Java 1.5
  • [PLUTO-481] - Pluto 2.0 Refactoring Initiative
  • [PLUTO-487] - PortletPreferencesImpl should not store the preferences every time it is instantiated
  • [PLUTO-488] - When executing doAction/doRender/doLoad/doAdmin and retrieving the servlet context of the portlet app fails, a generic NullPointerException is thrown
  • [PLUTO-489] - Refactor request attribute handling into optional service interface
  • [PLUTO-491] - Attach source jars to maven deployed artifacts
  • [PLUTO-492] - Duplicate web site code in pluto-site module and root src dir
  • [PLUTO-495] - Eclipse autobuilld/compile/debug project
  • [PLUTO-503] - Expose createPortletScopedId and isInCurrentPortletScope of PortletSessionImpl as protected
  • [PLUTO-504] - Create PortletSession via PortletEnvironmentService
  • [PLUTO-512] - improve error logging diagnostics when inputstream == null
  • [PLUTO-519] - Better error msg on invalid event payload class
  • [PLUTO-520] - Provide backwards compatiblity for Portlet Applications using/embedding Pluto 1.0.1 portlet.tld
  • [PLUTO-521] - add warning when trying to publish an event when event not registered
  • [PLUTO-531] - New PortletRequestStateService SPI to replace and extend most of the currrent incorrect used PropertyManager SPI and PortletURLProvider SPI
  • [PLUTO-532] - New PortletResponseStateProvider SPI
  • [PLUTO-538] - New EventCoordinationService and merging EventContainer with PortletContainer
  • [PLUTO-539] - New FilterManagerService implementation
  • [PLUTO-540] - New PortletURLListenerService
  • [PLUTO-544] - Element creation in PortletResponse needs to be moved into PortletResponseContext.
  • [PLUTO-545] - Separate driver interfaces/classes from container (api)
  • [PLUTO-546] - Improve Maven Usage
  • [PLUTO-547] - Remove distinction between required and optional container services
  • [PLUTO-548] - Move portlet apis to own svn location
  • [PLUTO-549] - Rename PortletInvokerService METHOD_NOOP to METHOD_LOAD
  • [PLUTO-550] - Change the FilterManager interface to have a separate method for each lifecycle
  • [PLUTO-551] - Remove class loader from filter manager interface
  • [PLUTO-558] - Change FilterManagerService to use portlet entity
  • [PLUTO-559] - Drop PortletEntity interface

New Feature

  • [PLUTO-263] - add Resource Serving
  • [PLUTO-267] - Implementation of the new Eventing Model
  • [PLUTO-337] - Add JAXB object payload delivering
  • [PLUTO-371] - Portlet Filter
  • [PLUTO-415] - Update from Spec rev 22 to 23
  • [PLUTO-418] - Add support for container-runtime-options
  • [PLUTO-423] - PortletRequestDispatcher implementation for Spec Chapter 19 "Dispatching Requests to Servlets and JSPs"
  • [PLUTO-424] - Support for CCPPProfileService (with DummyImplementation)
  • [PLUTO-425] - Implementation of GetLifecyclePhase
  • [PLUTO-431] - PortletUrl listener
  • [PLUTO-433] - taglib
  • [PLUTO-513] - Support portlet managed custom modes as defined in PLT.8.4 of JSR-286 spec

Task

  • [PLUTO-373] - Throw exception if event value has not a valid JAXB binding or is not a Java primitive type
  • [PLUTO-402] - Merge SVN trunk with 1.1-286-COMPATIBILITY branch using 1.1-286-trunk-merge branch
  • [PLUTO-483] - Pluto 2.0 refactoring TODO tasks
  • [PLUTO-523] - Further abstractions of the Pluto SPI to support embedding in and extending by other portals
  • [PLUTO-537] - Cleaning up Pluto packages
  • [PLUTO-552] - Change Pluto 2.0 maven groupid to org.apache.portals.pluto
  • [PLUTO-560] - Change Pluto 2.0 maven pluto plugin prefix from pluto to pluto2 to prevent lookup clashes with the Pluto 1.x plugin
  • [PLUTO-562] - Replace dependency on JCP provided JSR-286 portlet-api-2.0 with Apache Portals maintained portlet-api_2.0_spec-1.0
  • [PLUTO-563] - Move Pluto site project structure outside trunk to a new sub site project of the main Portals site project

Sub-task

  • [PLUTO-403] - Merge maven-pluto-plugin code from trunk to 1.1-286-trunk-merge branch
  • [PLUTO-404] - Merge pluto-container code from trunk to 1.1-286-trunk-merge branch
  • [PLUTO-405] - Merge pluto-portal-driver code from trunk to 1.1-286-trunk-merge branch
  • [PLUTO-406] - Merge pluto-portal-driver-impl code from trunk to 1.1-286-trunk-merge branch
  • [PLUTO-407] - Merge pluto-portal code from trunk to 1.1-286-trunk-merge branch
  • [PLUTO-408] - Merge pluto-taglib code from trunk to 1.1-286-trunk-merge branch
  • [PLUTO-409] - Merge pluto-testsuite code from trunk to 1.1-286-trunk-merge branch
  • [PLUTO-410] - Merge pluto-util code from trunk to 1.1-286-trunk-merge branch
  • [PLUTO-411] - Merge pluto-descriptor-api code from trunk to 1.1-286-trunk-merge branch
  • [PLUTO-412] - Merge pluto-ant-tasks code from trunk to 1.1-286-trunk-merge branch
  • [PLUTO-413] - Merge pluto-descriptor-impl code from trunk to 1.1-286-trunk-merge branch
  • [PLUTO-416] - Fix failure of JaxBDescriptorServiceImplTest unit test in 1.1-286-trunk merge branch
  • [PLUTO-419] - Fix failure of FileAssemblerTest unit test in 1.1-286-trunk merge branch
  • [PLUTO-443] - Add resource serving tests to testsuite for JSR-286
  • [PLUTO-444] - Filter chain is not implemented the right way

Test

  • [PLUTO-366] - Add eventing tests to testsuite for JSR-286
  • [PLUTO-367] - Add public render parameters tests to testsuite for JSR-286
  • [PLUTO-368] - Add portlet filter tests to testsuite for JSR-286

Wish

  • [JS2-786] - Tool for conversion preferences from database no-principal preferences to defaults preferences in psml pages