Change Log

0.13.1

ChangeLog

  • Integrated JMX support with Spring
  • Context interceptors managed as Spring beans
  • Page flows managed as Spring beans and supporting own page flow code
  • Switched default encoding from ISO-8859-1 to UTF-8
  • Errors in XSL files are now presented to the user with details about the origin of the error

0.13.0

ChangeLog

0.12.2

ChangeLog

  • Use JAXWS 2.x instead of Axis 1.2 for AJAX-SOAP-Services
  • Object-to-XML-Mapping improvements: Support for serializing XML fragments, CDATA sections and forcing simple types to be serialized as XML elements
  • Started to simplify pageflows by optionally removing the support for IWrapper grouping and making the IWrapper continue attribute obsolete (backwards compatible behaviour is enabled by default)
  • Show authorization roles in Last-DOM-Tree-View
  • Added support for the configuration of servlet lifecycle listeners in the project configuration
  • Big internal cleanup (e.g. fixed all compiler warnings)

0.12.1

ChangeLog

  • Parameterized List support for IWrapper generation
  • Enum and Properties support for Object-to-XML serialization
  • Bugfixes

0.12.0

ChangeLog

  • Improvements in XML serialization
  • Form submit tokens
  • Partial Maven support
  • Upgrade to Spring 2.0
  • Improved file upload handling
  • Role based authentication
  • Improved annotations support
  • Many minor fixes and improvements

0.11.0

ChangeLog

  • Simplified/automated creation of IWrappers by adding support for configuration via Java annotations
  • Simplified ResultDocument creation within insertStatus by providing an optional automatic Java-XML-databinding mechanism (customizable via Java annotations)
  • Providing all information about parameters and wrappers of a page at runtime via Java callbacks.
  • More decoupling: made PfixServletRequest and ContextResourceManager to interfaces.
  • Performance improvements for client-side JSON Javascript webservice stubs.
  • Session listener support: Applications can register a listener with a context instance that is notfied, when the session is invalidated
  • Added form submit token mechanism which can be used to preventduplicate form submissions and handle transactional processing requirements
  • Added support for Context-aware servlet filters.

0.10.1

ChangeLog

  • This release provides some bugfixes and smaller improvements. Some outstanding features are:
  • Support for mod_proxy_ajp.
  • Support for the qooxdoo-RPC protocol.
  • JSON (de-)serialization support for generic Lists and Maps.

0.10.0

ChangeLog

  • log4j configuration is now validated against the DTD to ensure that configuration errors are detected as early as possible
  • Context method names have changed to better reflect what they are really doing:
      flowBeforeNeedsData   ->  precedingFlowNeedsData
      isJumptToPageFlowSet  ->  isJumpToPageFlowSet
      isJumptToPageSet      ->  isJumpToPageSet
      setJumpToPageRequest  ->  setJumpToPage
      setPageFlow           ->  setCurrentPageFlow
    
  • Unit test classes and example classes are excluded from generated distribution JAR
  • Navigation state information is no longer attached to the XML tree of the SPDocument. Instead XSL extension functions are available to check the accessibility state of pages and wrappers.
  • Transformation tasks (e.g. .xsl.in to .xsl) are not longer applied to files within the projects/modules/ directory. Instead each module can distribute a build.xml file within the root of the module directory. This build.xml file will be run after the unpacking process completed.
  • Webservice support has been refactored: The protocol handling code is now pluggable. Introduced support for JSON protocol.
  • PathFactory and Path classes have been replaced by ResourceUtil and FileResource class. These classes provider a higher level of abstraction and even work in an environment where no actual File objects are available but files are read from a JAR archive. However, PathFactory can still be used by application code, although it is deprecated and ResourceUtil should be preferred.
  • Improved WAR support: Pustefix itself only uses ResourceUtil instead of PathFactory and thus even works when deployed as a WAR package that is not unpacked by the application server. When generating a WAR package a META-INF/context.xml is created within the package to disable session cookies which is needed for Pustefix to work correctly.
  • Extended ScriptedFlow: Error handling has been improved and support for pre-filled values in form shown to the user has been introduced.
  • Testsuite application that provides various tests for pfixcore
  • Support for fragment inclusion in configuration files: The configuration of !ContextXMLServlet and DirectOutputServlet can now contain include directives to reuse parts of the configuration that have been defined in another file.
  • Old exception handler classes have been removed.
  • Support for pluggable XSLT implementation: Saxon 8 (and thus XSLT 2) can now be used for a TargetGenerator (still very much beta).
  • Added IWrapper option to disable automatic trimming on request parameters
  • Support for ETag header: ETag is used to check, whether the version of a page in the browser cache is still valid or a new version has to be sent to the browser.
  • Browser is redirected to a URL that matches the page really shown. This has the advantage of triggering the right page when the user reloads the page.
  • Reference to a Context instance for direct output and werbservice servlets can now be configured in project.xml.in instead of the servlet configuration.
  • Reference to depend.xml does not need to be set explicitly. ContextXMLServlet will automatically use the depend.xml specified in the project configuration.
  • Context implementation is now thread-safe: This is archived by creating an instance for each single request but storing the session state within a central instance. Application code automatically uses the instance attached to the current request when using the session-wide context instance that is passed up on initialization.
  • Context is now an inteface not a class, so it is easier to use a mock object in unit tests.
  • AppLoader was removed

0.9.1

ChangeLog

  • JSON support for webservices
  • Include support for configuration files
  • Improved cookie handling

0.9.0

  • Minor improvements in WAR mode: Pustefix can now be installed in a ~ServletContext? with another path than =/xml=.
  • reset() was removed from the ContextResource interface as it was rarely used.
  • New configuration system (see ConfigMigration? for details)
  • example directory was renamed to projects.
  • Removed auto-invalidation on each request. Now, the navigation tree is only invalidated if user-data has been submitted (or invalidation is triggered by code)
  • Deprecated JavaScript stuff (layers, etc.)
  • Moved deprecated templates to a single file
  • Some improvements in file upload handling
  • Support for concurrent webservice requests
  • As always minor improvements and bugfixes have been included in this release, have a look at the ~ChangeLog? for details.

0.8.10

  • This release contains some significant changes regarding the format of the XML include files. Have a look at the description of the new format you can find here?.
  • Please note that include files in the old format will not work with this release and have to be converted?.
  • Beside some bugfixes and smaller feature improvements this release contains several changes in the JMX implementation and brings a new feature called scripted flows which is described in detail here?.

0.8.9

  • A lot of changes go in this release as the 0.8.7 and 0.8.8 release was never announced publicly:
  • New Pustefix CMS (editor): Interface is now using AJAX-technology to provide a faster include parts view on large projects. The backend has been commpletely rewritten and freed from legacy code. The CMS is now featuring an index-based fulltext search enabling the user to quickly find include parts even in large projects.
  • Support for modules being automatically unpacked during build-time to ease use of shared parts in different Pustefix environments
  • The dependency track system of the target generator has now been unified and moved to one central class to gain improved performance and easier maintenance.
  • Upgraded the servlet container to Tomcat 5.5
  • Added support for using generated targets as XSL-includes in another stylesheet
  • A lot of other improvements and minor bugfixes

0.8.6

  • Deprecated quite a lot templates, the ones documented at the website here are the only ones that still considered useful.
  • Better errors for webservices
  • StatusCodes are now generated into the class StatusCodeLib as public static fields, so in most cases no StatusCodeFactory is needed anymore.
  • StatusCodes and PageMessages are treated the same and are implemented by the same mechanism internally
  • Very many bugfixes and smaller enhancements.

0.8.5

  • It seems we are now Java 1.5 clean
  • Switched to Axis 1.2 for the JavaScript RPC feature.
  • Better Performance logging feature
  • Now checking is done for form elements against the !IWrappers defined on the current page (this of course currently only works for requests that are submitted to the current page, not to other pages). For any form element who's name is not defined in a wrapper of the page, a red box will appear on the page with a warning (only when MAKE_MODE=test of course).
  • Ability to handle Variants? of <pagerequest> and <pageflow> definitions.
  • Themeing for page content and variants of pages. See here?, here + subpages? and here? for more information. Additionally there's a new template called <pfx:themeselect> with subnodes <pfx:theme name="A_Theme"> which allows for inline theme switching working exactly the same as the algorithm to select the matching product node of an include part.
  • Theming for <pfx:image> and <pfx:xinp type="image">. See here? for more information.
  • Fallback for <lang> nodes: <lang name="en_*"> will be a fallback for all english variants (en_GB, en_US...) unless a more specific <lang> node is defined, too. <lang name="default"> still is the global fallback for everything. Similar to the <product> and <pfx:themeselect> nodes, there is also a new inline version called <pfx:langselect> with subnodes <pfx:lang name="language"> featuring this functionality.

0.8.4

  • Lots and lots of small stuff, e.g. how to influence pageflows from the user interface
  • More security work has been done: The ServletManager is now even more paranoid about checking session ids marked as "secure" (that means all sessions running under SSL). The system will no longer allow for a secure session to be used in a request that doesn't use SSL, as the integrity of the session is breached whenever the id has been submitted over an insecure channel.
  • The test for an authorized use of a secure session has also changed: we no longer store the secure session id in a cookie, but a random ID. This ID is also stored in the secure session. Now we can check on every use of a secure session if there's also the correct cookie suplied (if cookies are used at all)

0.8.3

  • .prop.in files get schema validated now, once they are in the new format. See the Servlet definition? reference page.

0.8.1

  • This is a brown-paper-bag-release fixing a security hole in the DerefServer

0.8.0

  • The big feature of this release is a lightweight webservices implementation for Pustefix and a ~JavaScript? enabled Browser. The Java side uses AXIS, which is integated into Pustefix so that a webservice automatically has access to the ContextResources of the current session. The client uses our own small SOAP implementation in JavaScript and (depending on the browser's featureset) different transports to submit the data to the server.