Configurator Extension Basics

This chapter provides essential information about implementing Configurator Extensions, explains what Configurator Extensions are, and describes the different types available. It also explains the relationship of Configurator Extensions and the CIO.

This chapter covers the following topics:

Introduction to Configurator Extensions

Configurator Extensions extend the behavior of the runtime Oracle Configurator. A Configurator Extension is a custom-coded Java class that uses an established interface to access a configuration at runtime. The interface is called the Oracle Configuration Interface Object (CIO); it is described in the chapters of Part 2.

This chapter contains an overview of how Configurator Extensions work and how to implement them. It also provides important facts about Configurator Extensions and prerequisites for developing them.

Note: Be sure to check Prerequisite Skills for Developing Configurator Extensions, which describes the Java development skills required for success with Configurator Extensions.

Note: Review the Oracle Configurator Performance Guide for information on the performance impacts of Configurator Extensions.

What are Configurator Extensions?

Configurator Extensions extend your runtime Oracle Configurator by attaching custom code through established interfaces.

The term Configurator Extension includes the following:

For additional information, see the chapter on Configurator Extensions in the Oracle Configurator Developer User’s Guide, which explains the following essential topics related to incorporating Configurator Extensions into your configuration model:

Prerequisite Skills for Developing Configurator Extensions

To effectively develop a Configurator Extension, an appropriate level of Java development proficiency is required. The specific level of Java proficiency required depends on the specific functionality required by the desired Configurator Extension.

In general, the Configurator Extension developer should have the following knowledge:

The skills listed above are fundamental. Other specific expertise may be required for developing Configurator Extensions to the specific requirements for your project.

Important Facts About Configurator Extensions

Keep these facts in mind when working with Configurator Extensions and the CIO.

Requirements and Restrictions for Configurator Extensions

You must observe certain requirements and restrictions when working with Configurator Extensions and the CIO.

Requirements for Configurator Extensions

Keep these requirements in mind when working with Configurator Extensions and the CIO.

Restrictions for Configurator Extensions

Keep these restrictions in mind when working with Configurator Extensions and the CIO.

Configurator Extensions and the CIO

Your Configurator Extension is a client of the CIO. When you program against the CIO, the CIO creates instances of a set of public interface objects that you work with. These interfaces are defined in the package oracle.apps.cz.cio. Your code should refer only to these public interface objects. See The CIO’s Runtime Node Interfaces.

Configurator Extensions are invoked by the CIO through the runtime Oracle Configurator, and Configurator Extensions call the CIO to get information from the runtime configuration model. The CIO is like a broker for the runtime configuration model, in that it passes information both into and out of the model. Programmers writing Configurator Extensions need to know how to use the CIO.

Installation Requirements for Configurator Extensions

This section describes the elements that need to be installed to develop, compile, and test Configurator Extensions. For details, see the Oracle Configurator Installation Guide and current release or patch information for Oracle Configurator on the Oracle Support Web site.

Installation Requirements for Developing Configurator Extensions

In order to develop Java Configurator Extensions, you must install a Java development environment that enables you to compile Java classes, such as:

If a Configurator Extension requires database access, you need JDBC drivers to compile a Configurator Extension. The required driver classes are contained in the Oracle Applications environment.

Note: If you use a class from the collections library, such as List, then for compatibility with the CIO’s package structure you must import the class using this syntax:

import com.sun.java.util.collections.List;

Installation Requirements for Compiling Configurator Extensions

In order to compile Configurator Extensions:

See the Oracle Configurator Installation Guide and the Oracle Configurator Implementation Guide for complete details on installation and environment. For background on JDBC drivers, consult the Oracle database documentation resources for the current JDBC developer's guide and reference.

Installation Requirements for Testing Configurator Extensions

If you have installed and set up Oracle Configurator Developer so that the Test Model button runs the Model Debugger successfully, then this setup should also be correct for testing Configurator Extensions.

The classes that implement your Configurator Extensions should be contained in Configurator Extension Archives, as described in the Oracle Configurator Developer User’s Guide.

It is also possible to install your classes in the class path for Oracle Application Server, which takes precedence over the Configurator Extension Archive Path. However, if you do so you will not obtain important advantages provided by using Archives. See the Oracle Configurator Developer User’s Guide for details.

If you are running a custom application in standalone mode, then you may need to ensure that the Java system property JTFDBCFILE is set. For more information, see the note after Creating A Configuration Object.

Conventions

In examples, an implied carriage return occurs at the end of each line, unless otherwise noted. You must press the Return key at the end of a line of input.

The table below lists other conventions that are also used in this guide.

Convention Meaning
. . . Vertical ellipsis points in an example mean that information not directly related to the example has been omitted.
. . . Horizontal ellipsis points in statements or commands mean that parts of the statement or command not directly related to the example have been omitted
boldface text Boldface type in text indicates a new term, a term defined in the glossary, specific keys, and labels of user interface objects. Boldface type also indicates a menu, command, or option, especially within procedures
italics Italic type in text, tables, or code examples indicates user-supplied text. Replace these placeholders with a specific value or string.
[ ] Brackets enclose optional clauses from which you can choose one or none.
> The left bracket alone represents the MS DOS prompt.
$ The dollar sign represents the DIGITAL Command Language prompt in Windows and the Bourne shell prompt in Digital UNIX.
% The per cent sign alone represents the UNIX prompt.
name() In text other than code examples, the names of programming language methods and functions are shown with trailing parentheses. The parentheses are always shown as empty. For the actual argument or parameter list, see the reference documentation. This convention is not used in code examples.
& Indicates a character string (identifier) that can display text dynamically in Configurator Developer or a runtime Oracle Configurator. For example, "&PROPERTY" can be used to dynamically construct and display a Property of a Model structure node.

Product Support

The mission of the Oracle Support Services organization is to help you resolve any issues or questions that you have regarding Oracle Configurator Developer and Oracle Configurator.

To report issues that are not mission-critical, submit a Technical Assistance Request (TAR) using the Oracle Support Web site.

You can also find product-specific documentation and other useful information on the Oracle Support Web site.

Troubleshooting

Oracle Configurator Developer and Oracle Configurator use the standard Oracle Applications methods of logging to analyze and debug both development and runtime issues. These methods include setting various profile options and Java system properties to enable logging and specify the desired level of detail you want to record.

For more information about logging, see: