Installation
GSF-12 is not backwards compatible with WCS 11g (or any older version). You must not use GSF-12 on any version of WCS older than 12c.
We have simplified the installation process:
- No need to tweak any configuration files (if opting for default usage / behaviour).
- No need to install any custom asset types.
- No need to import any WEM App.
Requirements
- Java 1.8
- WCS 12c
- Servlet 3.0
- JSP 2.2
- slf4j 1.7.21 -- NOTE: WCS 12c already ships with SLF4J
Starting Fresh With GSF-12 and WCS 12c
Starting fresh with GSF (12) on WCS 12c is now as simple as deploying the gsf-core-<version>.jar into your WCS app
Deprecated features and classes will not be deployed with the procedure above. In order to use those, you must deploy the LEGACY jar (keep reading)
Your site, which is presumably being built on top of the GSF, would obviously not be deployed as part of these GSF installation steps. Take a look at our User's Guide for some typical scenarios.
Installing into an exploded war folder
- Locate your web app's root folder and
- Copy the "CORE" JAR file inside your web app's WEB-INF/lib folder (which should be located right under the web app's root folder)
Installing into an existing deployed Sites WAR
- Stop your WCS 12c instance.
- Copy the WCS 12c WAR file. (extend.sites.webapp-lib.war)
- Unpack the copied WAR file.
- Copy the "CORE" JAR file inside your copied WAR file's WEB-INF/lib folder.
- Repack the copied WAR file.
- Replace the original WAR file with your new WAR file.
- Restart your WCS 12c instance and validate everything works as expected.
Upgrading From WCS 11g to 12c
If you are not extending any of the GSF's LEGACY classes and you don't need any deprecated features, then upgrading from WCS 11g to 12c (and GSF) requires the same procedure as a fresh start (see above)
However, if you are upgrading from WCS 11g to 12c and you did extend and/or customize deprecated classes / features, you probably need some time to transition from GSF LEGACY-driven code to either a GSF CORE-driven alternative or just switch to a 12c native implementation.
Here is a checklist of the scenarios we can envision and what those would imply for you in terms of setting up LEGACY:
- In case you want to use any deprecated class or feature (say, GSF actions), you must deploy GSF's "LEGACY" JAR (e.g. gsf-legacy-version.jar, as in "gsf-legacy-12.0-SNAPSHOT.jar") inside your WCS 12c's web app.
- In case you want to use a custom AppContext loader:
- Configure your custom listener as needed inside WCS 12c's web.xml file.
- Deploy your custom listener's classes.
- Make sure your custom listener is loaded and executed.
- Make sure your custom listener works properly with WCS 12c (and GSF itself).
- If you are upgrading an existing implementation from WCS 11g to WCS 12c where GSF (v11.x) is correctly set up and being used, you don't need to recreate nor register your GSF-specific tables; the WCS 12c installer won't touch them.
- If you need to use any DEPRECATED features which rely on GSF-specific asset event listeners and you are setting up GSF on a clean WCS 12c install, then you can register those by:
- Exporting the due row(s) from your WCS 11g instance's AssetListener_reg with CatalogMover or CSExplorer.
- Importing the due row(s) onto your WCS 12c instance's AssetListener_reg with CatalogMover or CSExplorer.
- In case you have customized GSF's asset event listeners (the actual java classes), you'd need to port those customizations to WCS 12c.
- If you are upgrading an existing WCS 11g instance to WCS 12c (i.e. no clean install of WCS 12c) where GSF (11) was already setup, you don't need to recreate nor register your GSF-specific asset event listeners; the WCS 12c installer won't touch them.
- If you need to use GSF vanity URLs support, the you might need to re-create the GSTUrlRegistry from scratch (e.g. on a clean WCS 12c install):
- Extract the DDL script for that table - and the due constraints / indexes - directly from your DBMS. Find below an EXAMPLE for HSQLDB (you are advised to extract this from your existing DB schema):
CREATE TABLE GSTURLREGISTRY (ID BIGINT NOT NULL, PATH VARCHAR(4000) NOT NULL, ASSETTYPE VARCHAR(255) NOT NULL, ASSETID BIGINT NOT NULL, STARTDATE TIMESTAMP, ENDDATE TIMESTAMP, OPT_VWEBROOT VARCHAR(255), OPT_URL_PATH VARCHAR(4000), OPT_DEPTH INTEGER, OPT_SITE VARCHAR(255), PRIMARY KEY (ID));
CREATE UNIQUE INDEX SYS_IDX_GSTURLREG ON "PUBLIC"."GSTURLREGISTRY"(ID);
- Run the DDL script on the new WCS 12c instance's DB so to get the corresponding objects initialized there.
- Register the corresponding table on the new WCS 12c instance's SystemInfo table.
- The old GSF installer - as well as the GSF WemApp - has been DEPRECATED and they are not supported anymore in WCS 12c. Do NOT install them nor attempt to execute them (YOU HAVE BEEN WARNED!)
- If you need to use any other deprecated feature which relies on GSF-specific tables, use the same procedure as for GSTUrlRegistry (see above)
- If you need to use any asset type of the GST Flex Family and you are not upgrading on top of WCS 11g but setting up a fresh WCS 12c install, then:
- Initialize The GSTAttribute flex family manually, either via Admin UI or via CSDT export / import:
Flex Attribute: GSTAttribute
Description: GST Attribute
Plural Form: GST Attributes
Flex Parent Definition: GSTPDefinition
Description: GST Parent Definition
Plural Form: GST Parent Definitions
Flex Definition: GSTDefinition
Description: GST Definition
Plural Form: GST Definitions
Flex Parent: GSTParent
Description: GST Parent
Plural Form: GST Parents
Flex Asset: GSTProperty
Description: GST Property
Plural Form: GST Properties
Flex Filter: GSTFilter
Description: GST Filter
Plural Form: GST Filters
- For Aliasing / Links:
Flex Asset: GSTAlias
Description: GST Alias
Plural Form: GST Aliases
Flex Parent Type: GSTParent
- For Vanity URLs:
Flex Asset: GSTVirtualWebroot
Description: GST VirtualWebroot
Plural Form: GST VirtualWebroots
Flex Parent Type: GSTParent
- Initialize the due (deprecated) GSTAttribute assets manually, either via the Admin UI or via CSDT export / import:
- For GST Property:
Attribute #1's Name: value
Attribute #1's Description: Value
Attribute #1's Type: string
Attribute #1's Value Style: single
- For Virtual Webroot:
Attribute #2's Name: env_name
Attribute #2's Description: Environment Name
Attribute #2's Type: string
Attribute #2's Value Style: single
Attribute #3's Name: env_vwebroot
Attribute #3's Description: Virtual Webroot
Attribute #3's Type: string
Attribute #3's Value Style: single
Attribute #4's Name: master_vwebroot
Attribute #4's Description: Master Webroot
Attribute #4's Type: string
Attribute #4's Value Style: single
- For GST Alias:
Attribute #5's Name: popup
Attribute #5's Description: Popup
Attribute #5's Type: int
Attribute #5's Value Style: single
Attribute #6's Name: target_url
Attribute #6's Description: Target URL
Attribute #6's Type: string
Attribute #6's Value Style: single
Attribute #7's Name: h1title
Attribute #7's Description: h1title
Attribute #7's Type: string
Attribute #7's Value Style: single
Attribute #8's Name: metadescription
Attribute #8's Description: Metadescription
Attribute #8's Type: string
Attribute #8's Value Style: single
Attribute #9's Name: metakeyword
Attribute #9's Description: Metakeyword
Attribute #9's Type: string
Attribute #9's Value Style: single
Attribute #10's Name: metatitle
Attribute #10's Description: Metatitle
Attribute #10's Type: string
Attribute #10's Value Style: single
Attribute #11's Name: linktext
Attribute #11's Description: Link text
Attribute #11's Type: string
Attribute #11's Value Style: single
Attribute #12's Name: linkimage
Attribute #12's Description: Link image
Attribute #12's Type: string
Attribute #12's Value Style: single
Attribute #13's Name: gsttag
Attribute #13's Description: Tag
Attribute #13's Type: string
Attribute #13's Value Style: single
- Initialize the (deprecated) GST-specific flex definitions either via the Admin UI or via CSDT export / import:
- FOR Vanity URLs:
Flex Definition Type: GSTDefinition
Flex Definition Name: GSTVirtualWebroot
Flex Definition Description: GST Virtual Webroot
Flex Definition Parents: (NONE)
Flex Definition Attributes: env_name (required), env_vwebroot (optional), master_vwebroot (optional)
- For Aliasing / Links:
Flex Definition Type: GSTDefinition
Flex Definition Name: GSTAlias
Flex Definition Description: GST Alias
Flex Definition Parents: (NONE)
Flex Definition Attributes: h1title (required), metadescription (required), metakeyword (required), metatitle (required), target_url (optional), linktext (optional), linkimage (optional), popup (required)
Associations: target (any child asset type / subtype, EXISTS)
- For GST Properties:
Flex Definition Type: GSTDefinition
Flex Definition Name: GSTProperty
Flex Definition Description: GST Property
Flex Definition Parents: (NONE)
Flex Definition Attributes: value (required)
- For Tagging: "gsttag" is added only to project-specific definitions, not GST's.
- Enable the GST-specific asset types (GSTAttribute, GSTProperty, GSTVirtualWebroot, etc...) for the appropriate sites, as needed -- and initialize their corresponding START MENUS.
- If you want to keep using GSF's Actions, Controllers and/or vanity URLs, you must initialize the GST/Dispatcher wrapper and make it the DEFAULT WRAPPER of the appropriate sites.
- You can do this either via the Admin UI or via CSDT export / import.
- GSF's legacy dispatcher looked like this (reuse and adjust your own code as and if needed, this is just a hint):
<?xml version="1.0" ?>
<!DOCTYPE FTCS SYSTEM "futuretense_cs.dtd">
<FTCS Version="1.1"><CALLJAVA CLASS="com.fatwire.gst.foundation.controller.action.ActionController" /></FTCS>
- Remember you must initialize both the CSElement holding the code (as per above) and the due SiteEntry which, unless you've customized it, should look like this:
SiteEntry Name: GST/Dispatcher
SiteEntry Pagename: GST/Dispatcher
SiteEntry Rootelement: GST/Dispatcher
SiteEntry Wrapper page: yes
SiteEntry Pagelet parameters: (default)
SiteEntry Cache Rule (Sites): false
SiteEntry Cache Rule (Satellite): false
SiteEntry Cache Criteria: rendermode, seid, site, sitepfx, ft_ss (default)
- If you want to keep using GSF's vanity URL support:
- Set up the appropriate rewrite rules.
- Make sure you pass in the appropriate "com.fatwire.gst.foundation.env-name" value to your JVM. For example: (...) -Dcom.fatwire.gst.foundation.env-name=fatwire-dev (...)
- Make sure you pass in the appropriate "sites.node" value to your JVM. For example: (...)-Dsites.node=unicorn-1 (...)
- Make sure your existing GSTVirtualWebroot assets remain valid.
- Tweak the concerned WCS 12c properties so that it doesn't reject URLs due to the hostname / port being used (cas.properties, customBeans.xml, etc...)
- Add the custom (WRA) URL Assembler inside "ServletRequest.properties" via Admin UI (e.g. "Property Management") or the Import / Export Utility:
uri.assembler.1.shortform=wrapath
uri.assembler.1.classname=com.fatwire.gst.foundation.url.WraPathAssembler
url.assembler.2.shortform=(...)
(...)
- Initialize the property that holds the GST dispatcher site entry:
- In case you are using file system-based storage for your properties / property files, add the following to ServletRequest.properties:
com.fatwire.gst.foundation.url.wrapathassembler.dispatcher=GST/Dispatcher
- In case you are using DB-based storage for your properties / property files, create a new property:
Key: com.fatwire.gst.foundation.url.wrapathassembler.dispatcher
Category: ServletRequest
SubCategory: GST
Description: GST Dispatcher Site Entry
Value: GST/Dispatcher
- Replace WCS 12c's out-of-the-box PageRef implementation with GST's deprecated one by rewiring the xcelerate.pageref property as follows (use the aforementioned "Property Management" feature or the Property "Export/Import" Utility)
(...)
"key" : "xcelerate.pageref",
"value" : "com.fatwire.gst.foundation.url.WraPageReference",
(...)
- Note that GSF's own PageRef implementation does not support WCS 12c's (native) vanity urls. In other words, GSF's and WCS' are mutually exclusive.
- Migrate your GSTProperty, GSTVirtualWebroot, GSTAlias assets using CSDT, publishing or whichever approach that suits your needs.
- If you want to keep using GSF Actions or any other features / services which depend on DefaultWebAppContext and are DEPRECATED on GSF, then you must either:
- Manually wire up the GSF's legacy servlet context listener by editing (and redeploying) WCS 12c's web.xml file:
- You can also wire up a custom AppContext implementation by editing (and redeploying) WCS 12c's web.xml file, as a context-param:
(...)
<context-param>
<param-name>gsf-contexts</param-name>
<param-value>com.mycompany.gst.MyCustomGSF11gLegacyAppContext</param-value>
</context-param>
(...)
- If you wire up the legacy AppContext loader (the "legacy servlet context listener" above), you will be defaulting to "IcsBackedObjectFactoryTemplate", also deprecated.
- If you want to keep using GST Properties with the now DEPRECATED GSTProperty asset type / subtype, then:
- If you are still using the DEPRECATED object factory ("IcsBackedObjectFactoryTemplate", see above), then you don't need to do anything; the old object factory is still wired up to use GSTProperty.
A Friendly Reminder To Those Who Have Forked The GSF... (e.g. Customized GSF's own Classes)
In case you have customized any of the GSF classes, you must reengineer your own custom code so to:
- Stop using those customizations and rely on GSF's CORE classes / features instead, and/or
- Re-implement your custom code on top of GSF's classes / API and regression test your app.