WebLogic Deploy Tooling has an extensible domain type system. The three built-in domain types (WLS, RestrictedJRF,
and JRF) are defined in JSON files of the same name in the WLSDEPLOY_HOME/lib/typedefs directory. For example,
the JRF domain type is defined in the WLSDEPLOY_HOME/lib/typedefs/JRF.json file with similar content, as shown below.
This file tells the Create Domain Tool which templates to use to create the domain, which server groups to target, and
even which RCU schemas to create, all based on the installed version of WebLogic Server.
New domain types can be defined by creating a new JSON file with the same structure in the
WLSDEPLOY_HOME/lib/typedefs directory.
Another option is to create this file in the
Custom configuration directory $WDT_CUSTOM_CONFIG/typedefs.
For example, to define a SOA domain type for 12.2.1.3, add the typedefs/SOA.json file with similar content,
as shown below.
After the new domain typedef file exists, simply specify the new domain type name to the createDomain script,
being sure to reference an Oracle Home with the required components installed. For pre-12.2.1 versions, the
-wlst_path argument must be used to point to the product home where the appropriate WLST shell script exists; for
example, for SOA 12.1.3, add -wlst_path <ORACLE_HOME>/soa so that the tool uses the WLST shell script with the
proper environment for SOA domains. In 12.2.1 and later, this is no longer necessary because the WLST shell script
in the standard <ORACLE_HOME>oracle_common/common/bin directory will automatically load all components in the
Oracle Home. Using the new domain type, simply run the following command to run RCU and create the SOA domain with
all of its resources and applications deployed.
The customExtensionTemplates attribute can be used to specify custom extension templates to be applied to the domain.
These should be specified as absolute file paths, and can use tokens.
If there are any server groups in the custom template that should be targeted to managed servers, they should be
specified in the serverGroupsToTarget attribute, similar to MY_MAN_SVR in the example above.
Using compact profile
The topologyProfile field can be used to create a domain using a specific profile for each of the templates. This
partial example will apply the compact profile for each of the specified templates.
{
"copyright": "Copyright (c) 2022, Oracle Corporation and/or its affiliates. All rights reserved.",
"license": "Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl",
"name": "JRF-Compact",
"description": "JRF type domain with a compact profile definitions",
"topologyProfile": "Compact",
...}
WebLogic Deploy Tooling provides the JRF-Compact.json type definition file that can be used to create a JRF domain
using the compact profile.
Targeting in earlier WebLogic Server versions
Templates in WebLogic Server versions prior to 12.2.1 may require the use of the applyJRF WLST command to correctly
target resources to the correct clusters and servers. The default behavior for WebLogic Deploy Tooling is to invoke
applyJRF only when the extensionTemplates list includes JRF templates.
A custom type definition file can require applyJRF to be invoked after the templates are added. This is done by
setting the targeting attribute to APPLY_JRF, as in this example:
The targeting attribute is not valid for WebLogic Server versions 12.2.1 and later.
Using the typedef file to exclude template installed resources from the model and archive
The Discover Domain Tool attempts to provide a sparse model by employing strategies such as not including attributes
that are default values. It is important to not install template resources through the model. First, the templates
will install the same resources in the target domain. Second, if you install resources from a on-premises domain into
a target domain that is a later WebLogic version, it could cause conflicts. The Discover Domain Tool uses the
discover-filters section of the typedef file to filter out discovered objects and exclude them from the model and
archive files.
The list contains an entry for each type of resource to exclude, along with a list of names or regular expressions
that are used to match the name of the specified type to exclude.
The following example is the discover-filters list in the JRF.json typedef file. Note that the key is the model
name starting from the top-level folder (and excluding the grouping construct names topology, resources, and appDeployments).
This mechanism also supports other named top-level fields; for example, /JDBCStore and /MailSession. It can also
be used to exclude self-tuning-related resources that are nested. For example: