Development Environment

Contents

Overview

Components Of The Oracle Utilities Software Development Kit

Directory Structure

Synchronizing With The Project Repository

Versions

Product Single Fixes

Overview

Contents

The App Server Is The Development Environment

Development App Server Is Local, Not Shared

Repository for Project

The App Server Is The Development Environment

The Oracle Utilities Software Development Kit development environment is built on a standard app server install of the product being customized.  Put another way, the app server is the development environment.

Source code is written and generated within the app server directory structure and executables are generated where the app server expects them and are therefore ready to be executed.

For example:

·         UI code is written directly where the app server looks for them.

·         The jar file for the Java programs is created directly where the app server looks for it.

Development App Server Is Local, Not Shared

Each developer has a development app server in his workstation for each project.  This means that a developer can code and unit test all within his workstation.  This also means work-in-progress code contained within the developer's workstation.

Repository for Project

All finished code is submitted into the project repository.  As such, developers synchronize with the project repository to get their local development environments current with the rest of the team.

The project repository is also set up as a development environment.  When developers synchronize with the project repository, they get a development environment including configuration necessary for that project.

Components Of The Oracle Utilities Software Development Kit

The following diagram illustrates the development environment.

Note.  Please see the installation guide for instructions on how to set up the Oracle Utilities Software Development Kit and its components.

Development Environment

Development Client

Contents

Project Development Database

Project Repository

Development Workstation

Project Development Database

Each project has a development database.  This is a regular database install of the product that is being customized.  System data for customizations are stored in this database.  Development processes like code generation connect to this database.  In addition, development app servers in development workstations connect to this database.

Project Repository

The project repository serves the following purposes:

·         It is the central storage for all completed, unit-tested code.

·         It provides the environment from which to build the latest state of the project.

·         It provides the latest state of the project dev app server from which all developers can synchronize with.

·         It is the source for CM Packaging.

To support these purposes:

·         It has to be accessible to all developers.

·         It is set up as a development client, i.e., similar to a development workstation (see Development Workstation below).

Development Workstation

Developers write, generate, compile, and test code on development workstations.  A development client is installed for each project that the developer works on.

The main components of a development client are the following:

·         Project Dev App Server.  Code is developed on and executables built into the project dev app server.

·         Oracle Utilities Software Development Kit Client.  This is the primary development tool of the Oracle Utilities Software Development Kit.

·         Eclipse SDK.  This is the Java development tool used in the Oracle Utilities Software Development Kit.

Directory Structure

Contents

The App Server Directory

Client Directory

The App Server Directory

As mentioned earlier, the app server is the development environment.  Source code and executables are therefore placed within the directory structure of the app server.

Contents

Standard App Server Directory Structure

Additional Directories for Development

Pertinent Directories In the App Server

Standard App Server Directory Structure

The following presents the directory structure of a standard app server install.  Oracle Utilities Customer Care and Billing is used as the example:

 

 

 

 

Additional Directories for Development

Contents

Java

Project Configuration Information

Java

A directory structure with a base directory of java is used for Java development as shown below.

·         source contains the code that the developer writes or generates that is submitted to the repository.  Under this are the following directories:

·         com.splwg.cm.domain contains the CM java source code.

·         sourcegen contains generated code that is necessary to build the project.  All files in this structure are generated and therefore must not be modified manually in any way.

·         target contains the runtime files created from source and sourcegen.  The contents of this directory is what is deployed as a jar file to the app server.  All files in this structure are generated and therefore must not be modified manually in any way.

 

Project Configuration Information

Project information is stored in the SPLSDKCommon directory structure.

·         eclipseLaunchScripts contains the Eclipse launch scripts for various tools.

·         eclipseProject contains the project configuration information for Eclipse.

·         tools contains the tools that are required for the project.

 

Pertinent Directories In the App Server

Item

Directory

Content

Java sources

java\source\cm\com\splwg\cm.domain

Java source code.

AppViewer files

splapp\applications\appViewer\data\source\CM

App viewer source code files.

 

splapp\applications\appViewer\data\xml\CM

App viewer XML files.

Web Application

splapp\applications\root\cm

UI code.

 

splapp\applications\root\WEB-INF\lib

cm.jar file is deployed here.

XAI Application

splapp\applications\XAIApp\WEB-INF\lib

CM?*.jar file.

cm.jar file is deployed here.

MPL Application

splapp\mpl\lib

CM?*.jar file.

Standalone Application

splapp\standalone\\lib

CM?*.jar file.

cm.jar file is deployed here.

Help files

splapp\applications\help\XXX\cm

Help files segregated by language.

XAI Schemas

splapp\xai\schemas\CM*.xml

XAI schemas.

Service XML files

splapp\xmlMetaInfo\CM*.xml

Service XMLs for Java.

Eclipse Launch Scripts

SPLSDKCommon\eclipseLaunchScripts

Eclipse launch scripts.

Eclipse Project

SPLSDKCommon\eclipseProject

Project configuration information for Eclipse.

Oracle Utilities Software Development Kit Tools

SPLSDKCommon\tools

Tools required by the Oracle Utilities Software Development Kit.

 

Client Directory

The Oracle Utilities Software Development Kit client directory contains both the Oracle Utilities Software Development Kit itself and some project-specific information like the Eclipse workspace.

The location of the Oracle Utilities Software Development Kit client is stored in the environment variable SPLSDKROOT.

 

Contents

The Oracle Utilities Software Development Kit Client Itself

Project Directories

shortcut Directory

The Oracle Utilities Software Development Kit Client Itself

The Oracle Utilities Software Development Kit client is installed in SDK/<version>.

 

Additionally, a copy of Eclipse is installed later into the eclipse directory.

Note.  Updates are unique versions of the Oracle Utilities Software Development Kit and therefore have their own directories.

Note.  A separate copy of Eclipse is installed per version of the Oracle Utilities Software Development Kit client because each version may have its own set of plug-ins and the plug-ins must be in the plugins directory of Eclipse.

Project Directories

Each project has its own directory.

 

·         eclipseWorkspace contains Eclipse workspace files.

·         etc contains additional project-related files.  setSPLEnv.bat is in this directory.  It is used to set environment variables appropriate for the project.  This script is executed before other scripts so that succeeding scripts operate on this project.

·         eclipseProject (not shown above) exists only in development workstations (not in the project repository).  It is a copy of the same directory in the app server.

Note.  setSPLEnv.bat is generated when the project is created/configured.

 

shortcut Directory

The shortcuts directory contains various scripts used in development.

 

Synchronizing With The Project Repository

Developers synchronize the whole of the app server directory except for the following:

·         java\sourcegen

·         java\target

·         splapp\xmlMetaInfo

·         splapp\applications\root\WEB-INF\lib\cm.jar

·         splapp\standalone\lib\cm.jar

·         splapp\XAIApp\WEB-INF\lib\cm.jar

·         logs\system

Versions

Contents

Version Number

Compatibility with Products

Updates

Moving Up To A New Update

Moving Up To A New Version of a Product

Version Number

The Oracle Utilities Software Development Kit version number has four (4) components, each of which is a number separated from the other components by a period ("."), as follows:

<component 1>.<component 2>.<component 3>.<component 4>

The first three components together specify the version of the framework it was built for.  So it really is:

<framework version>.<Oracle Utilities Software Development Kit update >

Compatibility with Products

Each version of a product is built on a specific version of the framework.  And each version of the Oracle Utilities Software Development Kit is built for developing applications on a specific version of the framework.  Developers must use the version of the Oracle Utilities Software Development Kit that is built for the version of the framework that the product is built on.

Unless noted otherwise, a version of the Oracle Utilities Software Development Kit is compatible with the version of the framework with the same first three (3) components of the version number, i.e., excluding the update number.  For example, for a framework version of 2.1.0, any version of the Oracle Utilities Software Development Kit that starts with 2.1.0, e.g., 2.1.0.0, 2.1.0.1, … 2.1.0.n, can be used for development.

Updates

In between new versions of the framework, versions of the Oracle Utilities Software Development Kit that contain fixes for bugs may be released.  These versions are called updates and are indicated by a change in the fourth component of the version number.

Updates are full packages of the Oracle Utilities Software Development Kit.  They install as separate applications and appear so to the operating system.  It does not update an existing earlier version to the new version.  For example, versions 2.0.6.1, 2.0.6.2, 2.0.10.0, and 2.0.10.1 can all be installed at the same time.  And different projects may be on different Oracle Utilities Software Development Kit versions.

Generally, it is best for projects to always be on the latest update.  But the Oracle Utilities Software Development Kit allows different projects to be on different update version s for the following reasons:

·         Although a very low possibility, there may be incompatibilities between updates.  For example, libraries may have changed.

·         Having separate installs for each update allows the developers move their projects to the next update on their own pace.

·         This allows developers to keep their projects on the same version of the Oracle Utilities Software Development Kit that is used in the specific implementation.  One project may be aggressive by always being on the latest update version, but another project may stay longer in an older version if it is more difficult to coordinate all developers to move up to the latest update.

Moving Up To A New Update

Moving up to a new update of the Oracle Utilities Software Development Kit involves updating the tools while using the same project development environment.

Note.  The project repository and all developers of a project must always be on the same version of the Oracle Utilities Software Development Kit.

Note.  Not all projects need to upgrade to the latest update version at the same time.  Moving to a new update version requires coordination among the developers for the project, as well as the on-site implementation team and so it may take more time for some projects to move to the latest update version.

There following are the steps:

·         Stabilize the project.

·         Install the update.

Contents

Stabilize the Project

Install the Update

Stabilize the Project

·         Make sure that the project is in a stable state and that all developers have submitted all code to the repository.

Install the Update

The following procedure must be done for the project repository and all development worksations:

·         If this is the first project to use the new update, install the Oracle Utilities Software Development Kit update and specify the information for the selected project to update the development environment.

·         Otherwise, run the createCMEnv.cmd script, specifying the information about the existing project to update the development environment.

At this point, the selected project is configured to use the new update of the Oracle Utilities Software Development Kit.

Note.  Oracle Utilities Software Development Kit V2.0.6.1 introduced a new directory structure for the development workstation.  Consequently, existing installations of Oracle Utilities Software Development Kit V2.0.5.0 and V2.0.6.0 must be uninstalled first before installing this version.

Moving Up To A New Version of a Product

Moving up to a new version of a product requires creating a new development environment suited for that version of the product.  A new version of a product is likely to be built on a new version of the framework, which would mean that a new compatible version of the Oracle Utilities Software Development Kit is required.

The following are the steps:

·         Stabilize the project on the old version of the product.

·         Prepare the database for the new project.

·         Set up the repository for the new project.

·         Set up development workstations.

Contents

Stabilize the Project on the Old Version of the Product

Prepare the Database for the New Project

Set Up the Repository for the New Project

Set Up Development Workstations

Stabilize the Project on the Old Version of the Product

·         Make sure that the project is in a stable state and that all developers have submitted all code to the repository.

Prepare the Database for the New Project

·         Copy the database of the project in the old version to a new database.

·         Upgrade this newly created database to the new version of the product by following the database upgrade procedures of the product.

Set Up the Repository for the New Project

·         Prepare a project repository as described in the installation documentation.

·         Copy source code from the repository of the previous version into the project repository.

·         Update code, if necessary, as specified in the documentation of the new version of the product.

·         Build the entire project.  This includes generation of code, compilation, generation of services, etc.

·         Test the customizations.

Set Up Development Workstations

·         At this point, developers can set up their workstations for the new project on the new version of the product.  Each developer must follow the workstation set up procedure.

Product Single Fixes

When single fixes to products are released, the following should be done for projects for which the single fixes are required:

·         Stabilize the project by making sure that the project is in a stable state and that all developers have submitted all code to the repository.

·         Apply the single fix to the project repository.

·         Each developer of the project must then synchronize with the project repository.