Release Notes for GSF version 12.0.1

Project changes

  • The GSF NavService contract / APIs have been modified so to better accommodate custom implementations whilst leveraging cleaner design and coding.
  • Adjusted the OOTB NavService implementation (SitePlanNavService) to the new contract / APIs.
  • Fixed a bug in the SitePlanNavService.java class which affected caching / cache flushing.
  • Added a sample implementation of the SitePlanNavService inside the gsf-sample module.
  • Enhanced javadocs for the entire "navigation" subpackage.

New Features

  • Now you have absolute control over the AssetNode implementation (handled and) returned by SitePlanNavService.
  • (Re-)Using SitePlanNavService is now simpler, cleaner and more flexible.

Deprecated Features

  • No features have been deprecated in this release.

Release Notes for GSF version 12.0.0

Project changes

  • GSF requires Oracle WebCenter Sites 12.2.1
    • Therefore the following are also required: Java v1.8, Servlet 3.0 and JSP 2.2
    • GSF has split into two sub-projects - core and legacy.
      • The core package employs a new namespace: tools.gsf.*.
      • The legacy package still uses the com.fatwire.gst.foundation.* namespace.

New Features

  • The new context initialization / object factory / configuration framework does not require your editing web.xml anymore.
  • New InjectingController which extends WCS 12c's Base Controller, providing access to the GSF's annotation-based injection mechanism and WCS 12c's new dispatching framework / APIs.
  • The GST Properties mechanism has been enhanced so that users can use their own "GST Property" flex definition / asset type (instead of the GSF-specific asset type / subtype), provided that it has 3 fields: "name", "description" and "value".
  • New @CurrentAsset annotation allows users to have access to a pre-loaded instance of the current asset in their controller without having to call the Asset API or AssetReader.

Deprecated Features

  • com.fatwire.gst.foundation... namespace
    • All classes in this namespace have been deprecated. Approximately half of them have been cloned into the new tools.gsf... namespace using the same subpackage names.
  • gsf-mobile module
    • The entire gsf-mobile module has been REMOVED (not simply deprecated). Use WCS 12.x's native multi-device support instead.
  • Legacy logging changes
    • Loggers for the legacy module have all moved to a new namespace (to avoid conflicts with major changes made by Oracle in the WCS 12c loggers): tools.gsf.legacy.*.
      • The entire com.fatwire.gst.foundation.facade.logging package has been DEPRECATED. You must not use any of those classes in WCS 12c as they won't work properly. This entire package will be physically removed from the GSF project's codebase in an upcoming release.
  • com.fatwire.gst.foundation.html package
    • The entire com.fatwire.gst.foundation.html package has been DEPRECATED. You should stop using and/or extending and/or customizing it as it will be physically removed from the GSF project's codebase in an upcoming release.
  • SimpleSearchEngine
    • The Simple Search Engine Service has been DEPRECATED. You should stop using and/or extending and/or customizing it as it will be physically removed from the GSF project's codebase in an upcoming release. Rely on WCS's own (Lucene) Search API and/or Lucene's own API instead.
  • Tag libraries
    • All GSF tag libraries have been DEPRECATED. WCS 12c best practices preclude utilizing tag libraries in JSP code. Users should stop using and/or extending and/or customizing them. Most of these taglibs will be physically removed from the GSF project's codebase in an upcoming release. Usage of GSF tags is now discouraged in favor of Controllers + Injection + JSTL.
  • NavigationService
    • The existing Navigation Service - and related classes, taglibs and asset types / subtypes - has been DEPRECATED. You should stop using and/or extending and/or customizing the LEGACY Navigation Service / Framework (injected by default by the LEGACY factory) as it will be removed from the GSF project's codebase in an upcoming release. Use the CORE's brand new Navigation Service / Framework / APIs instead, which significantly improves its predecessor. Check out the User's Guide for more info.
  • GSF Tagging
    • GSF Tagging - including supporting tables, asset event listeners et al - has been DEPRECATED. You should stop using and/or extending and/or customizing it will be physically removed from the GSF project's codebase in an upcoming release. Instead, rely on WCS 12c's native tagging.
  • GSF Groovy Support
    • GSF Groovy support has been entirely DEPRECATED. You must stop using and/or extending and/or customizing GSF Groovy support as it will be physically removed from the GSF codebase in an upcoming release. Instead, rely on WCS Groovy support in conjunction with WCS 12 Controllers / Templates / CSElements.
    • GSF Actions, Controllers and Request Dispatching
      • GSF Actions / Controllers / Request Dispatching have been entirely DEPRECATED. You should stop using and/or extending and/or customizing GSF actions (both type 1 and 2) and the entire GSF dispatching framework (including GST/Dispatcher, BaseController, AbstractController and subclasses, ActionFrameworkController, ActionController, etc..) as it will be physically removed from the GSF project's codebase in an upcoming release. Instead, leverage WCS 12c's native Controllers and Wrappers. More info can be found in the User's Guide.
      • Applications (as opposed to web pages) requiring element actions must implement their own action dispatching infrastructure.
    • GSF Vanity URLs
      • GSF's vanity URLs framework is entirely DEPRECATED. You should stop using and/or extending and/or customizing it, including all supporting classes / components (custom PageRef implementations, the entire "wra" subpackage, the GSTUrlRegistry table, Virtual Webroots assets, etc...). It will be physically removed from the GSF project's codebase in an upcoming release. Instead, rely upon WCS 12c's native vanity URLs support. A forthcoming GSF Vanity URL migration tool is planned for a future release!
    • GSF Fragment Inclusion Support
      • The entire "include" subpackage - including IncludeService and GsfCallTemplate - has been DEPRECATED. You should stop using and/or extending and/or customizing it as it will be physically removed from the GSF project's codebase in an upcoming release. Use WCS' native fragment features instead.
    • Context Configuration
      • All AppContext implementations and all other factories, servlet context listeners, injection-related and context management-related classes have been DEPRECATED. You should stop using and/or extending and/or customizing them as they will be physically removed from the GSF project's codebase in an upcoming release. Use the CORE's brand-new scoped object factories framework (look at IcsBackedFactory and ServletContextBackedFactory) which allows cleaner, better encapsulated, more intuitive, faster code (and coding)
    • Facades
      • All LEGACY facades have been DEPRECATED. You should stop using and/or extending and/or customizing them because all of them will be physically removed from the GSF project's codebase in an upcoming release. You should use the (new) CORE's facades instead.
        • A special mention must be made for the CallTemplate facade. Please, refer to the User's Guide for more details.
    • GSTAttribute Flex Family
      • The entire GSTAttribute flex family has been DEPRECATED. You should stop using / extending / customizing this flex family as it will be physically removed from the GSF project's codebase in an upcoming release.
        • The GST Property mechanism itself is NOT and WILL NOT be deprecated, only the pre-existing classes / taglibs. In fact, it has been already enhanced (see above)
    • All GSF-specific samples have been physically removed from the GSF project's codebase, although the gsf-samples module itself is still there. New samples are planned for a future release.
    • Bind Annotation
      • The Bind annotation no longer looks up objects in the object factory. To inject objects returned from the factory, use @InjectForRequest instead.