Once compiled,
component class files are deployed separately for Call Studio and VXML Server.
Within these deployments, a developer can choose to associate component classes
with a specific application or with the system as a whole so that the
components can be shared across all applications. The deployment process for
Call Studio and VXML Server are described in the following sections. A third
section provides details on the specific deployment directories developers
should use.
Call Studio Deployment
Call Studio provides a
location to place components that are to be shared across all applications:
Call
Studio/eclipse/plugins/com.audiumcorp.studio.library.common_5.1.0.
Individual classes are placed in the
classes subdirectory and JAR file archives are placed
in the
lib
subdirectory.
 Note |
The only classes
that need to be placed here are custom configurable elements and Say It Smart
plugins since all other components have no Call Studio interface and hence
require deployment only on VXML Server.
|
Once deployed in this
folder, custom configurable elements will appear in the element pane directly
under the
Elements folder
alongside with Unified CVP-provided elements.
For component classes
that apply to a specific application only, a developer uses the
deploy/java directory found in that application’s
project folder. Within Call Studio, compiled classes and/or JAR files can be
dragged from outside Call Studio to the appropriate subdirectory in the
deploy/java folder.
An alternative method
that does not require Call Studio to be running would be to copy the files into
the appropriate subdirectory of the
deploy/java folder using the file system.
The application
project folder can be found in Call Studio/eclipse/workspace (unless the developer sets
the workspace to a custom directory) and the
deploy/java folder within the application will appear
here exactly as it appears in the Call Studio application project window. This
can also be done while Call Studio is running, though to view the copied files
in Call Studio, the
deploy
folder should be selected and the Refresh option chosen from the contextual
menu.
Custom configurable
elements placed in the
deploy/java directory will appear in Call Studio’s
element pane under the folder named
Local Elements.
The call flow editor for that application must be closed and reopened in order
for newly copied local elements to appear in the element pane.
When the application
is deployed from within Call Studio, the VXML Server folder created for that
application will contain a folder named
java
whose contents is identical to the
deploy/java folder in the Call Studio project.
It is important to
mention that you can have a Java library with *.zip filenames in your
development environment (Call Studio), because classpaths are explicitly
specified. However, the VXML Server runtime environment has to preload all
library classes implicitly. The naming convention the VXML Server enforces the
*.jar filename extension and will not load classes with *.zip filenames.
Therefore you must use *.jar filenames for classes that are developed on Call
Studio and will run on VXML Server.
VXML Server Deployment
When an application is
deployed through Call Studio, a folder is created that encapsulates all the
information for that application, including all Java code the developer placed
in the Call Studio project as per the instructions given in the previous
section. If the application is to change in any way, from changes to the call
flow, to the addition or subtraction of required Java files, those changes must
be done through Call Studio and then redeployed to VXML Server.
One deployment
requirement that must be performed by the developer is to ensure that the Java
components and utility libraries stored in the
Call
Studio/eclipse/plugins/com.audiumcorp.studio.library.common_5.1.0
folder are also placed in the VXML Server
common
folder. When an application is deployed from Call Studio, only that
application’s files are created, any common code is not included. As a result,
it is the developer’s responsibility that the contents of the
common
folder in Call Studio also appear in the VXML Server common folder.
 Note |
When VXML Server
initializes, it first loads the classes in
common
and then loads each application’s classes. Due to the way Java classloaders
work, if a Java class appears in both the
common
folder and an application’s
java
folder, the one in
common
will take precedence and the one in the application’s
java
folder
will not be
loaded.
|
 Note |
Due to the order in
which these classes are loaded, the developer cannot place a class in
common
that refers to a class that only appears in an application’s
java
folder since the classes in
common
are loaded first. Keep in mind that some application servers have advanced
options to change this precedence to
parent-last,
meaning that the application-level classloaders take precedence. By default,
all application servers should be configured to be
parent-first.
|
Subdirectories of the Java Folder
The
java
folder of a Call Studio project and a VXML Server application folder contain
two subdirectories named
application and
util.
Each folder encapsulates Java classes used for different purposes, their
distinctions applying primarily to how the application works within VXML
Server.
The
application folder should contain all Java code for
components that are used by the application.
 Note |
In Call Studio, any
custom configurable elements that are utilized only by the application would be
placed in this folder and will appear in Call Studio’s element pane under the
folder named
Local Elements.
The call flow editor for that application must be closed and reopened in order
for newly copied local elements to appear in the element pane.
|
The second
subdirectory of the
java
folder is the
util
folder. This is used for Java libraries that provide the application with
utilities unaffiliated with Unified CVP (such as math libraries, XML parsing
libraries, etc.).
Notes concerning which
folder to use:
-
Any class that
refers to Unified CVP-specific API classes cannot be deployed in the
util folder. If the class is application-specific, it
must be placed in the
application folder of that application. If the class is
to be shared across all applications, it must be placed in the
common folder of VXML Server.
-
The classes in the
util folder
will not be
reloaded when the application is updated using the
updateApp administration script. If this behavior is
not desired or the utility libraries are frequently updated, place these files
in the
application folder. See
User Guide for Cisco Unified
CVP VXML Server and Unified Call Studio for more information.
-
Utility classes
that do not refer to Unified CVP classes at all (such as third-party libraries)
can be placed anywhere within the CLASSPATH of the application server. For
example, on the Tomcat application server, a library for connecting to a
mainframe system can be placed in
TOMCAT_HOME/lib rather than any Unified CVP directory.