Workbench and MDEX Connectivity

  1. Home
  2. Blog
  3. Workbench and MDEX Connectivity

Workbench and MDEX Connectivity

Few cartridges (Custom/OOTB) communicate directly with the MDEX engines for performing an operation and also communicate with the EAC applications managed by Workbench. Oracle Endeca Guided Search integration includes a number of components to facilitate both types of communication.

AssemblerApplicationConfiguration Component

Class “atg.endeca.assembler.configuration.AssemblerApplicationConfiguration” has properties defined for MDEX and Workbench config and many others. (For example baseApplicationName, locales, recordIdName, recordTypeName, recordSourceName, defaultLanguageForApplications, keyToApplicationName). The main properties for connecting with MDEX and Workbench host and port are below.

  • Workbench host information (workbenchHostName, workbenchPort)
  • MDEX host and port information (defaultMdexHostName, defaultMdexPort)


Workbench config details are stored in “/atg/endeca/ApplicationConfiguration” component.

# @version $Id: //product/DAF/version/11.1/Endeca/Assembler/src/module/config/atg/endeca/assembler/AssemblerApplicationConfiguration.properties#1 $$Change: 875535 $
$class=atg.endeca.assembler.configuration.AssemblerApplicationConfiguration

# Reference to the shared application configuration, which we use
# to calculate and access the set of application names.
applicationConfiguration=../ApplicationConfiguration

# A map from our application key to MDEX host and port
#
# (The current set of application keys that uniquely identify Endeca
# applications given your current configuration can be seen on the
# "applicationKeys" property of the
# /atg/endeca/ApplicationConfiguration in the Nucleus component
# browser.)

# Typically one sets the default MDEX host name and port via the
# explicit properties (which is all one needs in a single MDEX environment):
#
defaultMdexHostName=localhost
defaultMdexPort=15000
#
# This is equivalent to the following, when using a single Endeca application:
#
#   applicationKeyToMdexHostAndPort=\
#     default=localhost:15000
#
# Note that the default application key changes from "default" when
# using a multiple Endeca applications.


# Reference to the RequestRoutingObjectAdapter to use. Generally not
# configured via Nucleus, unless also configuration a custom
# ApplicationRoutingStrategy on ApplicationConfiguration.
# 
# routingObjectAdapter=


# Reference to the Endeca AdministrationService used to handle updates to and 
# from Endeca
administrationService=/atg/endeca/assembler/admin/EndecaAdministrationService

# @version $Id: //hosting-blueprint/B2CBlueprint/version/11.1/Endeca/Assembler/config/atg/endeca/assembler/AssemblerApplicationConfiguration.properties#2 $$Change: 889821 $
# This will automatically create a FileStoreFactory to manage the content for 
# each EAC application to pick up the appropriate content from the file system.
useFileStoreFactory=true

Connecting to an MDEX

Component “/atg/endeca/assembler/cartridge/manager/MdexResource” defines a request-scoped class “com.endeca.infront.navigation.model.MdexResource” that represents a connection to a single MDEX.

MdexResource component has host and port properties that represent MDEX host and port to use for current request.

# @version $Id: //product/DAF/version/11.1/Endeca/Assembler/src/module/config/atg/endeca/assembler/cartridge/manager/MdexResource.properties#2 $$Change: 882941 $
$class=com.endeca.infront.navigation.model.MdexResource
$scope=request

# Mdex host
host^=../../AssemblerApplicationConfiguration.currentMdexHostName

# Mdex port
port^=../../AssemblerApplicationConfiguration.currentMdexPort

# Record spec name
recordSpecName^=/atg/endeca/ApplicationConfiguration.recordIdName

Connecting to the Workbench Server

Several components are involved for creating a connection to EAC application managed by Workbench server. Connection components may vary depending on whether your environment has a single EAC application or multiple applications (Ex: Support for multiple languages).

On application startup “/atg/endeca/assembler/cartridge/manager/DefaultWorkbenchContentSource” component is instantiated. This component contains details for connecting to a default EAC application.

# @version $Id: //product/DAF/version/11.1/Endeca/Assembler/src/module/config/atg/endeca/assembler/cartridge/manager/DefaultWorkbenchContentSource.properties#2 $$Change: 882941 $
#$Id: //product/DAF/version/11.1/Endeca/Assembler/src/module/config/atg/endeca/assembler/cartridge/manager/DefaultWorkbenchContentSource.properties#2 $$Change: 882941 $
$class=atg.endeca.assembler.content.ExtendedWorkbenchContentSource
$scope=global

# Preview enabled
isAuthoring^=AssemblerSettings.previewEnabled

# Workbench app name
appName^=/atg/endeca/ApplicationConfiguration.defaultApplicationName

# Workbench default site
defaultSiteRootPath^=AssemblerSettings.defaultExperienceManagerPrefix

# Workbench host
host^=../../AssemblerApplicationConfiguration.workbenchHostName

# Workbench publishing port
serverPort=8007

# Client port (If client port is set to -1, system will assign an ephemeral port automatically)
clientPort=-1

# Setting FileStoreFactory as the storeFactory will allow Assembler to use 
# the new Endeca file-system based approach of content promotion. Not setting 
# storeFactory will default to the legacy Endeca approach to content promotion using 
# the Jackson protocol to retrive content from Endeca
#storeFactory=/atg/endeca/assembler/cartridge/manager/DefaultFileStoreFactory

siteManager=/atg/endeca/assembler/multisite/SiteManager

Environments which has more than one EAC application, AssemblerApplicationConfiguration component creates globally-scoped, WorkbenchContentSource_EAC-application-key components for each EAC application. Each component has a suffix that identifies which EAC application the component is for, for example WorkbenchContentSource_en and WorkbenchContentSource_fr.

NucleusAssembler resolves ”/atg/endeca/assembler/cartridge/manager/WorkbenchContentSource” component.

# @version $Id: //product/DAF/version/11.1/Endeca/Assembler/src/module/config/atg/endeca/assembler/cartridge/manager/WorkbenchContentSource.properties#1 $$Change: 875535 $
$basedOn=PerApplicationWorkbenchContentSourceResolver

# If you always just have one MDEX, you can uncomment $class, $scope
# and componentPath below. This avoids creating an
# PerEndecaApplicationGenericReference and and having it call
# resolveName once per request.

# $class=atg.nucleus.GenericReference
# $scope=global
# componentPath=DefaultWorkbenchContentSource

This component in turn resolves either the /atg/endeca/assembler/cartridge/manager/DefaultWorkbenchContentSource component or the /atg/endeca/assembler/cartridge/manager/PerApplicationWorkbenchContentSourceResolver as the WorkbenchContentSource to use for the current request.

#$Id: //product/DAF/version/11.1/Endeca/Assembler/src/module/config/atg/endeca/assembler/cartridge/manager/DefaultWorkbenchContentSource.properties#2 $$Change: 882941 $
$class=atg.endeca.assembler.content.ExtendedWorkbenchContentSource
$scope=global

# Preview enabled
isAuthoring^=AssemblerSettings.previewEnabled

# Workbench app name
appName^=/atg/endeca/ApplicationConfiguration.defaultApplicationName

# Workbench default site
defaultSiteRootPath^=AssemblerSettings.defaultExperienceManagerPrefix

# Workbench host
host^=../../AssemblerApplicationConfiguration.workbenchHostName

# Workbench publishing port
serverPort=8007

# Client port (If client port is set to -1, system will assign an ephemeral port automatically)
clientPort=-1

# Setting FileStoreFactory as the storeFactory will allow Assembler to use 
# the new Endeca file-system based approach of content promotion. Not setting 
# storeFactory will default to the legacy Endeca approach to content promotion using 
# the Jackson protocol to retrive content from Endeca
#storeFactory=/atg/endeca/assembler/cartridge/manager/DefaultFileStoreFactory

siteManager=/atg/endeca/assembler/multisite/SiteManager
# @version $Id: //product/DAF/version/11.1/Endeca/Assembler/src/module/config/atg/endeca/assembler/cartridge/manager/PerApplicationWorkbenchContentSourceResolver.properties#2 $$Change: 882941 $
$class=atg.endeca.assembler.configuration.PerEndecaApplicationGenericReference
$description=A component that returns WorkbenchContentSource based on the current Endeca application

# Note: unlike the DefaultWorkbenchContentSource, this one is request-scoped,
# so it can be re-resolved on a per-request language so that correct,
# (globally-scoped) language-specific WorkbenchContentSource can be returned.
$scope=request

# The default MdexResource to use if a language-specific MdexResource
# cannot be found.
defaultComponentPath=/atg/endeca/assembler/cartridge/manager/DefaultWorkbenchContentSource

# The base path for language specific MdexResource components. This
# will have suffixes like "_en" and "_es" tacked on.
componentBasePath=/atg/endeca/assembler/cartridge/manager/WorkbenchContentSource

# our assemblerApplicationConfiguration, from which we get the
# current Endeca application
assemblerApplicationConfiguration=../../AssemblerApplicationConfiguration

# Don't logInfo for each resolution...
# it's irritating for a request-scoped component.
loggingInfoResolutions=false

# If there's only one application, just use the defaultComponentPath
# and don't attempt to resolve componentBasePath + appSuffix.
useDefaultIfSingleApplication=true

# For debugging, defaults to false.
#   loggingDebug=true
defaultSiteRootPath^=/atg/endeca/assembler/AssemblerTools.contentPathPrefix

When DefaultWorkbenchContentSource is resolved, the connection details defined by this component are used when retrieving content.

And when PerApplicationWorkbenchContentSourceResolver is resolved, the component relies on the AssemblerApplicationConfiguration to determine, what current EAC application is and then it references correct EAC application-specific WorkbenchContentSource.

1 2 3 20
Let's Share
Show Buttons
Hide Buttons