Release Notes - Jetspeed 2 - Version 2.2.0 The Apache Portals Jetspeed team is pleased to announce the release of the version 2.2.0 of the Jetspeed Enterprise Portal. Jetspeed is an Open Portal Platform and Enterprise Portal, written in open source to the Java Portlet API standard under the Apache license. Version 2.2.0 is a major update from the 2.1.3 release. New Feature * [JS2-301] - Support Multiple Providers for User Attributes * [JS2-306] - Site Administration (Portal Site Manager) * [JS2-634] - edit_defaults custom portlet mode * [JS2-720] - Support for NTLM authentication with optional fallback authentication method * [JS2-729] - Preliminary Portlet API 2.0 ResourceURL support allowing full response control like for cookies and compressed output streams * [JS2-744] - There is impossible now to set up meta-description of page thru graphical admin interface manually * [JS2-791] - configure the security constraint on a particular portlet fragment using new custom config portlet mode * [JS2-809] - Add table schema aware datasource proxy * [JS2-818] - When importing users with seed data, user actual home pages from template * [JS2-834] - Automatically cleanup of the PortalURL: no navigational state in browser url * [JS2-853] - Filter Portlet Selector by one or more roles * [JS2-860] - Implement a second, Versioned Portlet Application Manager * [JS2-869] - New Preferences backend implementation for Registry, Entity and Security components * [JS2-870] - Replace User/Group/Role (Java) Preferences with simplified attributes Map * [JS2-871] - Upgrade Pluto container to version 2.0.0 with Portlet 2.0/JSR-286 support * [JS2-873] - Simplified parent-child relationship model for Roles and Groups * [JS2-888] - Provide a HealthCheck functionality to validate if required resources are (still) available/online, like portlet applications and datasource * [JS2-890] - Shibboleth SSO authentication support * [JS2-893] - cluster synchronization feature * [JS2-904] - Maven archetype * [JS2-923] - Security Domains * [JS2-925] - Provide full JSR-286 / Portlet API 2.0 support and TCK compliance * [JS2-954] - Add support for JSR-286 Portlet Managed PortletModes * [JS2-969] - Add portlet content cache managment and invalidation for JSR-286 Public Render Parameters usage * [JS2-992] - New generic and extendable RequestDiagnostics feature Improvement * [JS2-27] - Allow disable of Groups and Roles * [JS2-57] - Add a "Check Valve" to the pipeline * [JS2-397] - SSO managment portlet should use credentials from LDAP if configured * [JS2-443] - Missing event listener implementation * [JS2-507] - Improvement to the grammar and descriptions in jetspeed.properties * [JS2-560] - Normalize Principal table * [JS2-621] - Improve SSO Portlet implementation * [JS2-671] - Improve and Test SSO IFrame Portlet * [JS2-706] - Improve Desktop navigation without page refresh * [JS2-755] - Desktop Pipeline: Blank deley when switch page * [JS2-770] - Provide a new maven-2 (only) build environment and restructure the source tree according to the maven-2 conventions * [JS2-779] - Supporting Pocket PC * [JS2-780] - Provide out-of-the-box Wicket portlet support * [JS2-785] - Parallel Rendering on Websphere 6.1 * [JS2-787] - Non-informative error handling in PortalSiteManager. I've created a patch * [JS2-808] - Maximize on edit-defaults option * [JS2-812] - Better support for MSSQL * [JS2-821] - CategoryPortletSelector no portlets displayed in IE6 / Update CategoryPortletSelector localization Korean * [JS2-852] - Release content buffers after rendering * [JS2-855] - CreateUserTemplatePagesValve improve that title&short-title value has user Name in folder.metadata . * [JS2-856] - Update DatabasePageManagerCache to use EhCache * [JS2-859] - decorator list in listbox on the page has to be sorted * [JS2-864] - Release render buffers (PortletContent) after rendering * [JS2-867] - Optional portlet session caching of layout view templates * [JS2-891] - Move the site pages out of resources into a directory outside the web applicaiton * [JS2-896] - Ajax api GetPortletsAction Improvement about filter * [JS2-908] - Transactional Isolation on Portlet Application Deployment * [JS2-913] - PortletFactory should not cache portlet and application definition oid values to support live redeployment across a cluster * [JS2-938] - Create flyweight PortletWindow instances for each request, the handle to access and store all portlet interaction data and drop the PortletEntityImpl usage * [JS2-945] - Provide PortletApplication and PortletDefinition ResourceBundle lookup and caching from the PortletFactory * [JS2-946] - Portlet Registry Manager Admin Portlet * [JS2-947] - Properly handling container invocation errors like processAction throwing an unexcepted exception and displaying a meaningful message to the end user * [JS2-949] - Portlet 2.0 optional feature support: head contribution * [JS2-959] - A new fresh Jetspeed decoration theme (skin) replacing the default tigris * [JS2-961] - Refactor the old APIs and head aggregation components to comply with portlet 2.0 spec changes * [JS2-962] - Add logical expression support to Spring bean category filtering * [JS2-966] - Move WebContent and Rewriter to Apache Portals Applications as new web-content project * [JS2-968] - Enhance NavigationalState encoding to support both zero and empty parameter values * [JS2-971] - Seriaiizer is not importing/exporting Preferences * [JS2-988] - Archetype improvments * [JS2-990] - Complete Portlet Clone feature * [JS2-997] - Cache Monitor Portlet Task * [JS2-389] - Docs * [JS2-734] - Drop jetspeed- prefix support for local PA deployment * [JS2-857] - SVN restructuring to support separate lifecycle for other artifacts besides the portal itself, like j2-admin * [JS2-878] - Determine Jetspeed and Portals site generation/management toolset to use * [JS2-907] - Reimplement SSO storage model and API on top on new Security model * [JS2-911] - Be able to build the installer in the trunk with Maven-2 * [JS2-912] - Adjust installer to embed Tomcat 6 instead of Tomcat 5.5 * [JS2-941] - Portlet 2.0 TCK support * [JS2-973] - Running Jetspeed 2.2 on Websphere 6.1 / Oracle10 * [JS2-975] - Remove all compressed javascript files which can be automatically generated during build. * [JS2-976] - Fix broken unit tests * [JS2-977] - Remove jsf-demo and jpetstore from demo and installer * [JS2-979] - Move MFA portlet into j2-admin proper * [JS2-985] - Upgrade to new pluto-container-api requirements as needed for PLUTO-557 * [JS2-994] - j2-Admin Cleanup * [JS2-998] - Improve Jetspeed Demo distribution * [JS2-1004] - Replace dependency on JCP provided JSR-286 portlet-api-2.0 with Apache Portals maintained portlet-api_2.0_spec-1.0 * [JS2-1013] - Remove obsolete usage of and dependency on Pluto provided PortletEntity interface as it is no longer used within Jetspeed either * [JS2-1018] - Release 2.2.0 preparation * [JS2-416] - Guide to directory structure documentation * [JS2-417] - Update Guide to Jetspeed Power Tool * [JS2-418] - Guide to portal assembly documentation * [JS2-420] - Guide to sites (guide-site.xml) Documentation * [JS2-453] - A menu for the documentation guides * [JS2-650] - Desktop Documentation * [JS2-771] - Refactor JetspeedSerializer to a pluggable component to be used by other components for import/export of (test) data * [JS2-772] - A new maven-2 unpack-resources plugin for extracting selected portal resources * [JS2-773] - A new maven-2 ddl plugin for generating portal schema sql using ddlutils * [JS2-774] - A new maven-2 init-db plugin for initializing a portal schema for a specific database * [JS2-778] - There is no simple way to find jetspeed subproject documentation * [JS2-877] - Document new maven-2 build system * [JS2-895] - Provide a solution to seperate the Jetspeed build integration tasks (configuration,database,deploy) from the standard Maven-2 build lifecycle * [JS2-906] - Documentation for JSP decorators * [JS2-926] - Adding JSR-286 ResourceURL and ResourceServingPortlet support * [JS2-927] - Implement Portlet Events for Portlet API 2.0 * [JS2-939] - Portlet URL/Navigation State JSR-286 Portlet API 2.0 Support * [JS2-989] - Update Jetspeed tutorial * [JS2-993] - Reflect new Tomcat requirements in documentation and archetype Wish * [JS2-34] - Refactor file cache to be an interface * [JS2-93] - Portlet Entity's associated preferences not deleted * [JS2-499] - add attrubute functionality to all proncipal classes * [JS2-517] - Execution of secured AJAX actions in portlet applications * [JS2-786] - Tool for conversion preferences from database no-principal preferences to defaults preferences in psml pages Bug * [JS2-118] - Porltlet Application User Attribute descriptions not handled properly * [JS2-165] - Portlet Application Manager treeview not updated on deploy events * [JS2-238] - Subject object is abandoned after the JAAS authentication * [JS2-324] - Missing index from db(oracle) causes userManagement portlets stop working when lots of users in system * [JS2-370] - portlet css classes: links * [JS2-400] - Layouts broken * [JS2-472] - FragmentImpl.getFragments() can be null but is assumed not null * [JS2-482] - PSML documents whose names contain diacritic characters are not displayed * [JS2-486] - admin portlets profile admin rule criteria * [JS2-513] - UserAttributeResolver is broken * [JS2-537] - error in PortalStatisticsImpl * [JS2-540] - Default Preferences should be flagged as READ-ONLY * [JS2-558] - Only "NULL" is shown in browser at what seems to be random intervals. * [JS2-622] - When deleting a User, SSO Details left orphaned * [JS2-658] - COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver][DB2/NT] SQL0107N The name "FK_PA_METADATA_FIELD_1" is too long. The maximum length is "18". SQLSTATE=42622 * [JS2-666] - Clustered Environment: constraint violation if clones are started at the same time * [JS2-676] - Enhance Profiler Caching * [JS2-677] - Site Manager UI improvements * [JS2-704] - Desktop Customizer cleanup * [JS2-715] - Security constraints cached, not updated in Site Manager and Portlet Selector * [JS2-722] - portalurl.relative.only=true does not effect desktop * [JS2-749] - Jetspeed Login Module fails to load on Windows in directories with spaces in the path * [JS2-750] - LDAP login not resolving DN correctly * [JS2-752] - Desktop pipeline: drag and drop and portlet relocation * [JS2-753] - Desktop Pipeline: sticky mouse pointer after portlet was resized in Untiled mode. * [JS2-754] - Desktop Pipeline: javascript error when click on 'Aditional Link' * [JS2-756] - Desktop Pipeline: Browser Refresh Issue After Page Edit * [JS2-758] - Ukrainian symbols doesn't save through Portal Site Manager * [JS2-761] - ConcurrentModificationException in FileCache after jetspeed 2.1.2 installation * [JS2-762] - Cannot return to view mode after changing to simple layout theme in page edit mode. * [JS2-764] - There are much DOCTYPE directives in every result page of portal * [JS2-768] - Desktop pipeline gets null page in request context * [JS2-769] - Layout Portlets do not support content types other than text/html * [JS2-784] - Adding portlet doesn't work in 2.1.3 trunk! * [JS2-795] - Deadlock while release session on Websphere Release 6.0.2.19 * [JS2-796] - VelocityTwoColumns mentioned twice in layouts guide * [JS2-799] - Jetspeed cannot deploy portlet applications that run from the "/" context. * [JS2-800] - Memeory Leak Caused by org.apache.jetspeed.container.window.impl.PortletWindowAccessorImpl * [JS2-813] - Redirect from password * [JS2-814] - Ldap User DN is incorrectly calculated when search filterBase is empty * [JS2-815] - SSOIframePortlet doesn't save changed remote principal name * [JS2-817] - Cannot login with username with . * [JS2-819] - Edit mode of Category Portlet Selector doesn't work on IE browser. * [JS2-820] - display UNICODE in desktop mode. * [JS2-825] - Desktop pipeline doesn't properly implement Clear decorator * [JS2-826] - Invalid DN values in group/role member attributes result in null pointer dereferences in the BasePrincipalImpl class * [JS2-827] - Does't work that uploading files in desktop mode using "multipart/form-data" * [JS2-828] - JAAS authentication failure with Tomcat 5.5.24 and above. * [JS2-832] - Found bug when page delete in Layout Edit mode. * [JS2-833] - associations between portal and remote principal are not removed * [JS2-836] - Lookup of LDAP users per role using a role membership attribute on a user is broken * [JS2-837] - Attributes template for initial LDAP user/role/group attributes does not accept '=' sign * [JS2-839] - LDAP user mgmt: user names with certain characters are not allowed * [JS2-840] - jetspeed tutorial missing resources * [JS2-841] - tutorial bug: "Embedded error: Archetype does not exist." * [JS2-842] - tutorial build error: "Error executing ant tasks" * [JS2-843] - tutorial catdebug command * [JS2-847] - LDAP user dn is not resolved correctly when user is in hierarchy * [JS2-848] - Portlet decorator comboboxes doesn't displays current decorator name (and tiny performance degradation) * [JS2-849] - NullPointerException in org.apache.jetspeed.prefs.impl.NodeImplProxy.getFullPath(NodeImplProxy.java:45) * [JS2-854] - Missing cache entry in ehcache.xml * [JS2-861] - Unable start the demo intsaller * [JS2-862] - Cannot delete or move a portlet using RemovePortletAction * [JS2-863] - Does not changes all of portlet decorations when add new layout fragment. * [JS2-865] - Portlet Application Manager Language Tab does not update strings correctly * [JS2-868] - String comparison bug in PortletPlacementContextImpl causes PortletPlacementException * [JS2-882] - Intermittent Concurrent Exceptions in Portlet Window Cache * [JS2-883] - PageManager component name not found in component manager lookup * [JS2-884] - User Manager creating excessive transactions on get* operations via Spring transactions * [JS2-894] - Deploy tool does not keep file dates in WAR file * [JS2-897] - Portal Site Manager - Administrator cannot edit users pages. * [JS2-899] - Can not update PSML by import service of PSML store in DB * [JS2-900] - SiteView should throw SecurityException when a Node is not accessible instead of NodeNotFoundException * [JS2-903] - Customizer removes the Portlet Fragments when Security Constraints are Used * [JS2-905] - JSP Portlet Decorators: Decorator-specific decorator.jsp ignored * [JS2-909] - Layout Portlets removed Page logic is incorrectly worked. * [JS2-914] - Possible security issue because pipline can be set by the "pipeline" request parameter. * [JS2-916] - RoleMultiChooser portlet doesn't "see" newly added roles until after logging out and in again * [JS2-920] - Default locale preference * [JS2-921] - Portal Site Manager portlet not save "unhidden" state for PSML * [JS2-922] - Required associations should only be required for the "from" side of the association * [JS2-928] - Hardcoded URL link to PDF portlet in installer pages * [JS2-929] - iframe portlet user preferences * [JS2-931] - ConcurrentModificationException Exception in SessionNavigationalState * [JS2-932] - Portlet cache doesn't get refresh after login * [JS2-935] - Importing of seed xml results in a NullPointerException * [JS2-936] - Profiler Admin is not refreshed after seed xml import. * [JS2-937] - Multiple seed.xml imports result in duplicate criteria. * [JS2-943] - File Portlet cleanup * [JS2-944] - PortletDefinition Language needs to indicate if its locale is a supported-locale as defined by or for the Portlet descriptor * [JS2-951] - IP Address is null in statistics, while user get logs-off * [JS2-965] - Portal Site Manager needs to change the physical page file name to be able to make a proper page url * [JS2-972] - commons-logging unsuited for cross-context webapplication invocation usage - migrating to slf4j * [JS2-978] - In jetspeed-deploy-maven-plugin, cannot use expand or infuse when having a targetName * [JS2-980] - Rogue thread running after Tomcat Shutdown * [JS2-981] - Edit Defaults Mode Broken * [JS2-983] - Portlet borders and alignment messed up in jetspeed portlet decorator * [JS2-984] - Jetspeed 2.2 Validation on Websphere 6.1 * [JS2-986] - PAM NodeManager operation not thread-safe * [JS2-987] - Portal request parameterMap must be captured before invoking a portlet on WebSphere * [JS2-991] - Issues with Tomcat 6 * [JS2-995] - NPE in ProfilerValve under desktop mode * [JS2-996] - Inject the new Portlet 2.0 tlds in the target web archive during the deployment of a portlet application * [JS2-1000] - Portalstatistics can cause NullPointerException in TreeMap.compare method when request.getRemoteAttr() returns (sometimes) null * [JS2-1001] - Concurrent Modification exception in layout decorator * [JS2-1002] - jetspeed decorator's css is not applied to portlet window title under desktop * [JS2-1003] - DOJO-based admin portlet doesn' show the contents correctly. * [JS2-1005] - NotSerializationException during restarting tomcat * [JS2-1006] - Enterprise build fails * [JS2-1007] - Null Pointer Exception in Page Manager File Cache * [JS2-1008] - Google Maps Portlet Fails on Desktop * [JS2-1009] - Active Authentication Redirect Fails from Desktop when Credentials Expire * [JS2-1010] - A NotSerializableException in j2-admin's PrincipalManagement portlet * [JS2-1011] - NavigationalState Base64 encoding needs to escape '+' characters * [JS2-1012] - Event Demo not working correctly on Desktop * [JS2-1016] - Content not available error on clicking * [JS2-1017] - SerializableException exception in Portal Site Manager with dbpsml * [JS2-1019] - Several import/export mapping bugs in the JetspeedSerializer implementations * [JS2-1020] - Incorrect caching of user preferences can cause preference values to be returned from another user or stale values on export