Skip Headers
Oracle® Fusion Middleware User's Guide for the Oracle Java CAPS Migration Tool
11g Release 1 (11.1.1.6.0)

Part Number E24884-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Master Index
Master Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
PDF · Mobi · ePub

1 Introduction to the Oracle Java CAPS Migration Tool

This chapter provides an overview of the process of migrating Oracle Java CAPS Repository and JBI projects to Oracle SOA Suite using the Oracle Java CAPS Migration Tool.

This chapter includes the following topics:

1.1 Oracle Java CAPS Common Abbreviations

This section lists abbreviations and acronyms that are commonly used for Oracle Java CAPS components and the technologies used by Oracle Java CAPS. These are used throughout this document. You can find definitions for these components in the Glossary.

1.2 Overview of the Migration Process

The Oracle Java CAPS Migration Tool automates much of the transformation required to migrate existing Oracle Java CAPS Repository and JBI projects to Oracle SOA Suite projects, preserving mappings and business logic in the converted projects. The migration tool starts with a deployed Oracle Java CAPS JBI composite application (ZIP file) or a Repository project's archive (EAR file). The migration tool reads the input ZIP or EAR file, and then generates the required project components for Oracle SOA Suite in a file structure compatible with Oracle JDeveloper.

Oracle Java CAPS Repository project components, such as BPEL 1.0 business processes, XSD files, WSDL files, messageable OTDs, and Java Collaboration Definitions (JCDs), are parsed and transformed to be compatible with Oracle SOA Suite components. JBI project components, such as BPEL 2.0 business processes, WSDL files, and XSD files, are transferred to an Oracle SOA Suite project structure with fewer changes since they are more compatible with Oracle SOA Suite.

The output of the Oracle Java CAPS Migration Tool is an Oracle SOA Suite project that can be opened, viewed, and edited in Oracle JDeveloper. The migrated project also includes Oracle Java CAPS JAR files on which the project depends. You can use the migration tool to migrate the following Oracle Java CAPS versions: 5.0.5, any update release; 5.1.3 any update release; and Release 6 or later.

1.2.1 How Projects are Migrated

Migrating Repository projects is a more complex process than migrating JBI projects, which have a more direct mapping to Oracle SOA Suite projects. In either case, the migration tool starts with the generated deployment file. For Repository projects, this is an EAR file; for JBI projects it is the build ZIP file. The migration tool does not perform any validation on the input project, which is assumed to be valid since it has been successfully built and deployed in Oracle Java CAPS.

1.2.1.1 Repository Project Migration

When you migrate a Repository project that contains a business process, the BPEL 1.0 code is transformed to BPEL 2.0 in the Oracle SOA Suite project. Java Collaboration Definitions (JCDs) are converted to Spring components and the associated Spring context files are generated. The required and available JAR files from the Oracle Java CAPS project are copied to the Oracle SOA Suite project. JCDs that are exposed as web services are converted to a Spring context exposed as a service in the migrated project. Projects with business processes that call JCDs are converted to business processes that call Spring components.

The migration tool can migrate File, JMS, and web service adapters, but does not migrate the code for other types of adapters. When you migrate a project that uses specialized adapters (such as database adapters), the migration tool generates placeholder endpoints in the migration project, which are just basic WSDL interfaces. To complete the conversion of these projects, you need to add the corresponding Oracle SOA Suite adapter to the migrated project in Oracle JDeveloper and map it to the corresponding Spring component or business process. For more information, see Section 4.3.4, "Adding Adapters not Converted by the Migration Tool."

Most marshal and unmarshal operations in business processes are converted into Java Embedding activities in the business process in the migrated project, including XSD, DTD, User-Defined, and SWIFT OTD marshal and unmarshal operations. In addition, all JCDs that are converted into Spring components can marshal and unmarshal the generated JAXB objects using the helper methods from the OTDUtil class.

When you migrate a Repository project, the folder structure for the new Oracle SOA Suite project is created in a directory you specify. This folder includes all the required Oracle SOA Suite files, such as BPEL files, WSDL documents, the composite file, the project file, and so on. The migration tool also creates a temporary folder in the migration tool directory to store the original code from the migrated Oracle Java CAPS project. This allows you to compare the common files between the Oracle Java CAPS and Oracle SOA Suite projects, compare the JCD source code with the migrated code, compare the BPEL files, and so on.

1.2.1.2 JBI Project Migration

The mapping between project components for Oracle SOA Suite and Oracle Java CAPS JBI is more direct and requires fewer transformations. Instead of using OTDs, as in Oracle Java CAPS Repository projects, both JBI and Oracle SOA Suite projects convert native message formatting to XML and back again. When you migrate a JBI project, the migration tool extracts the information from the composite application's build ZIP file. It retrieves the endpoint and service connection information from the jbi.xml file, and then generates the BPEL file, associated WSDL and JCA files, the Oracle JDeveloper composite.xml file, and the project JPR file.

Note:

In the migrated Oracle SOA Suite project, the concrete binding information and service elements are moved from the WSDL files to the composite and binding configuration (JCA) files. In Oracle SOA Suite, WSDL files are abstract, and binding type information is specified directly in the composite.xml and adapter JCA files.

Not all Oracle Java CAPS JBI projects types can be converted using the migration tool. The projects that are most directly converted use business processes with the File, JMS, or HTTP binding components. Specialized service engines (such as Worklist Manager and Data Mashup) and binding components (such as Scheduler and HL7) are not migrated.

1.2.1.3 Oracle Java CAPS Repository Mapping to Oracle SOA Suite

Table 1-1 lists each Oracle Java CAPS Repository component along with the corresponding Oracle SOA Suite component to which it is migrated. As mentioned earlier, Oracle Java CAPS JBI projects have a more direct one-to-one mapping with Oracle SOA Suite projects.

Table 1-1 Oracle Java CAPS Repository Component Mapping to Oracle SOA Suite

This Oracle Java CAPS Component Maps to This Oracle SOA Suite Component

Canonical data: OTD

Canonical data: XML Object

Canonical interface: OTD, WSDL

Canonical interface: WSDL

Proprietary

Standard

JCD

Spring Context

Connectivity Map

Composite

Business Process Invoking JCD

Business Process Invoking Spring Context

JCD as a Service

Spring Context as a Service


1.2.1.4 Migration Tool Process Flow

  1. The migration tool runs in one of two modes: command-line or wizard mode. The input is the Oracle Java CAPS archive file (either a ZIP or EAR file), the output directory, and the Oracle SOA Suite project name for the migrated project.

  2. The migration tool extracts the contents of the input file into a temporary location and selects the required files to start the migration process.

  3. The migration tool derives the project's endpoints, which determine the wires in the Oracle SOA Suite composite.

  4. The migration tool invokes a series of parsers:

    • The BPEL parser retrieves partner link definitions and, for Repository projects, transforms the BPEL 1.0 code to BPEL 2.0.

    • The WSDL parser maps the partner link defined in the WSDL document to the converted BPEL. It also converts the message types so they are compatible with WS-I Basic Profile.

    • The JCD parser parses the JCD Java code to derive the inbound and outbound. It adds the JAX-WS proxy method and all the accessor methods for the Logger, CollaborationContext, and TypeConverter.

    • The Connectivity parser parses the endpoints and builds the wire information in the Oracle SOA Suite composite.

    • The Descriptor parser reads the Oracle Java CAPS endpoints properties file for File and JMS adapters, and creates the required JCA files for the Oracle SOA Suite project. The parser reads through the project's ra.xml and ejb.xml files to derive the endpoint properties and create the metadata needed to generate the JCA files.

  5. The migration tool generates the following project components:

    • Java Embedding activity in migrated business process for each of the marshal/unmarshal processes for messageable OTDs.

    • JAX-WS interface for JCDs invoked by a business process and JCDs exposed as web services.

    • XSD files for the messageable OTDs in the project.

    • Spring contexts and component types for each JCD.

    • Oracle SOA Suite composite.xml file.

    • JCA files.

    • Oracle SOA Suite project file (.jpr), which is required to open the migrated project in Oracle JDeveloper.

  6. The migration tool extracts the required Oracle Java CAPS libraries from the source file and copies them to the /SCA-INF/lib directory of the migrated project.

1.2.2 Support for Repository Project Migration

For Repository projects, both business process and JCD projects can be migrated. However, there are cases where Oracle SOA Suite does not provide an exact correspondence to the adapters is use. The migration tool can migrate certain adapters and OTDs fully, but others require manual adjustments after the migration tool completes its conversion.

Business Processes and Java Collaboration Definitions

The migration tool converts projects that include standalone business processes or JCDs, or that include combinations of business processes and JCDs, such as calling sub-processes or sub-collaborations. For example, the following are supported:

  • A business process (BPEL 1.0) invokes a sub-process or a sub-collaboration.

  • A JCD invokes a sub-collaboration (this requires manual changes to reconnect the JCDs).

  • A JCD is exposed as a web service. Any web service outbound in the JCD is not migrated.

File, JMS, and Web Service OTDs

The migration tool supports the following types of File, JMS, and Web Service OTD projects:

  • Repository projects that include business processes and File, JMS, or web services endpoints (both inbound and outbound).

  • Repository projects that include a business process with File or JMS adapters as inbound and other adapters, such as Oracle or SAP, as outbound. The outbound adapters are not be automatically migrated, but placeholder endpoints are generated for the migrated project.

  • Repository projects that include a Java Collaboration Definition (JCD) with inbound and outbound File or JMS adapters.

  • Repository projects that include a JCD with File or JMS adapters as inbound and other adapters, such as Oracle or SAP, as outbound. The outbound adapters are not be automatically migrated, but you can create and wire a corresponding Oracle SOA Suite adapter in the migration project.

XSD, DTD, and UD OTDs

The migration tool supports migrating Repository projects with marshal and unmarshal operations in XSD, DTD, and User-Defined OTDs.

First Class (FCX) OTDs

The migration tool supports the following types of FCX OTD projects:

  • Repository projects with FCX OTDs as inbound and outbound in the JCD.

  • Repository projects that include a JCD exposed as a web service with FCX OTDs as inbound and outbound.

  • Repository projects that include a business process that invokes a JCD with FCX OTDs as inbound and outbound.

HL7 OTDs

The migration tool supports the following types of HL7 OTD projects:

  • Repository projects that include marshal and unmarshal operations in an HL7 OTD message in a business process. Note that data mappings for HL7 OTD message are preserved in the converted project.

  • Repository projects that include a business process that invokes a JCD with HL7 as both the input and output OTD message.

SWIFT OTDs

Oracle Java CAPS Repository projects with SWIFT OTDs in business processes and JCDs are automatically migrated by the migration tool. Some of the supported models with the SWIFT OTDs include:

  • Repository projects that include a business process with marshal and unmarshal activities from a SWIFT OTD.

  • A standalone JCD with File or JMS inbound and outbound and SWIFT OTD as the other OTD of the JCD. The File or JMS content is unmarshaled into the SWIFT OTD.

1.2.2.1 Support for Java Collaboration Definition Migration

The migration tool converts Oracle Java CAPS projects that contain Java Collaboration Definitions (JCDs) implemented in the ways described in Section 1.2.2, "Support for Repository Project Migration." When a JCD is migrated, the migration tool reads and parses the JCD source code from the EAR file. Based on the type of JCD implementation, the JCD parser modifies the original source code.

For standalone JCDs that use either the File Adapter or JMS adapter for the inbound or outbound connection, the parser identifies the inbound connection type and modifies the JCD to implement the corresponding Oracle SOA Suite adapter interface. The parser creates a method for the interface using pseudocode, in which a call to the original JCD method is made.

For JCDs that are called from a business process and for standalone JCDs that use File or JMS adapters for the inbound connection but not the outbound connection, the parser modifies the JCD to implement a JAX-WS interface, which is generated by the Oracle SOA Suite JAX-WS tool. The original JCD input and output OTD types are converted to JAXB. The generated JAXB objects are represented by several Java classes.

All Spring Beans created during the migration from JCDs can marshal and unmarshal the generated JAXB objects using the helper methods from the OTDUtil class.

For additional information and sample code for converted JCDs, see Appendix A, "Examples of Java Collaboration Definition Conversions."

1.2.2.2 Support for Adapters and OTDs

The Oracle Java CAPS Migration tool supports the migration of the following Object Type Definitions (OTDs): User-defined, XSD, DTD, SWIFT, and HL7. The migration tool converts all OTDs used in a Oracle Java CAPS project into XSD files, and provides utility methods to convert the XML data (JAXB/DOM defined by the XSD) to OTD and the OTD data back to XML data. The migration tool's OTD parser reads OTD metadata from the OTD JAR files in the input EAR file. It then creates an XSD file that represents the OTD and places the XSD file in the migrated Oracle SOA Suite project's xsd folder.

The migration tool names the XSD file based on the name of the OTD from which it was generated. The generated WSDL documents are modified to use these XSDs to define the message type so any business processes using the OTDs can resolve OTD message types.

The generated XSD files use the OTD field names for the element names unless the element name would be invalid. BPEL XPath expressions that use OTD types are transformed to match the generated XSD file. You can use the provided OTDUtil methods to convert data between OTD and XML data. The migration tool includes the OTDUtil class, and packages it in the migrated Oracle SOA Suite project. The OTDUtil class provides utility methods to perform native OTD operations by invoking the OTD operations on the OTD implementation and convert data back to XML defined by generated XSD. For more information, see the migration.caps.runtime.OTDUtil javadocs, which are packaged in the caps.migration.runtime.util.jar file packaged with the migration tool (in migration_tool_home/oracle.migrationtool.jcaps.libraries/lib). This JAR file is also included with the migrated Oracle SOA Suite project.

1.2.2.2.1 Migrating Projects with JMS Adapter receiveWait Operations

The Java CAPS JMS Adapter supports receiveWait web service operations, which have no equivalent in Oracle SOA Suite. Projects that include an outbound JMS Adapter with receiveWait and send operations can be migrated to Oracle SOA Suite and deployed successfully in Oracle JDeveloper. The Oracle Java CAPS Migration Tool removes the receiveWait operation for outbound JMS Adapters.

1.2.2.2.2 Migrating Projects with HL7 OTDs

The following Oracle Java CAPS project models with HL7 OTDs are good candidates for migration.

  • The project contains a business process with HL7 OTD marshal and unmarshal activities.

  • The project contains a business process that invokes a JCD with HL7 OTDs as both inbound and outbound connections.

  • The project contains a standalone JCD unmarshaling and marshalling into an HL7 OTD structure from a File or JMS inbound adapter.

When you migrate projects that have HL7 OTDs as input and output in a JCD, do not use the -usejaxb option. Using the -usejaxb option in this case could cause the compilation of the migrated JCD Java code to fail because not all methods are available in the JAXB objects. This can also occur with other types of OTDs.

1.2.2.2.3 Marshal and Unmarshal Migration

OTD marshal and unmarshal operations and functoids in business processes are modified by the migration tool to include embedded Java code that uses OTDUtil methods to perform marshalToString and unmarshalFromString operations. These operations are incorporated as BPEL business process Java Embedding activities. You can leave the Java Embedding activities as is in the business process, or you can modify the project's input JCA endpoint using the Adapter Configuration Wizard to use a different message schema. This internally converts the messages to the specified schema type so the marshal and unmarshal operations can be removed. If the input is a user-defined OTD, you can use the embedded Java implementation, modify the input to be an XML message, or define a schema for native format (nxsd).

1.2.2.2.4 About the Marshal and Unmarshal Processes

The marshal/unmarshal process has three primary steps:

  • Call the getVariableData method of Oracle SOA Suite's BPELXExecLet class to retrieve the input variable.

  • Call the OTDUtil.otdOperation method, using the OTD class name, OTD operation name, input element, and output container part name as parameters. This creates the OTD object, invokes the unmarshalFromString and marshalToString operations, and wraps the result in a DOM element with the root as the output container part name.

  • Call the setVariableData method of Oracle SOA Suite's BPELXExecLet class to set the output to a BPEL variable.

1.2.2.2.5 Marshal and Unmarshal Examples for BPEL

The following examples illustrate migrated unmarshal and marshal operations.

Example 1-1 Migrated Unmarshal Operation

//1: Get OTD marshal/unmarshal operation input by passing inputvariable and part name 
org.w3c.dom.Element inputelem = (org.w3c.dom.Element)getVariableData
    ("customerunmarshalFromStringInput","text");
String otdClass = "ud1.customer689211042.Customer"; 
    //Name of OTD class generated by Java CAPS

//2: Invoke OTDUtil.otdOperation by passing OTDClassType, operationname, and input element
Object output = migration.caps.runtime.OTDUtil.otdOperation(otdClass,

    "unmarshalFromString",inputelem,"customer");

//3 : Set OTD marshal/unmarshal operation output by passing outputvariable, part name, and data element
setVariableData("customerunmarshalFromStringOutput","customer",output,false);

Example 1-2 Migrated Marshal Operation

//1: Get OTD marshal/unmarshal operation input by passing inputvariable and part name
org.w3c.dom.Element inputelem =
  (org.w3c.dom.Element)getVariableData("customermarshalToStringInput","customer");
String otdClass = "ud1.customer689211042.Customer"; 
    //Name of OTD class generated by Java CAPS

//2:Invoke OTDUtil.otdOperation by passing OTDClassType, operationname, and input element
Object output = migration.caps.runtime.OTDUtil.otdOperation(otdClass,
    "marshalToString",inputelem,"text");

//3:Set OTD marshal/unmarshal operation output by passing outputvariable, part name, and data element
setVariableData("customermarshalToStringOutput","text",output,false);

The otdClass parameter is null for FCX OTDs because they cannot be loaded in Oracle SOA Suite due to XMLBean incompatibility. The OTDClass parameter can be null for XML-based OTDs, in which case the marshal/unmarshal operation is done without loading the actual OTD. In this case, OTDUtil transforms the XML DOM to a string (marshal) or a string XML back to XML DOM (unmarshal).

1.2.2.2.6 Marshal and Unmarshal Operations in JCDs

The Oracle Java CAPS Migration Tool converts OTDs used in JCDs to JAXB objects. Migrated Spring classes can use these JAXB objects in most cases. You can also use the jaxbMarshalToOTD and jaxbUnmarshalFromOTD methods from OTDUtil to convert JAXB to OTD and OTD to JAXB if required.

1.2.2.3 Support for Oracle Java CAPS Framework Classes

During the migration, code is generated to handle Oracle Java CAPS framework classes in Oracle SOA Suite. This includes the logger, collaboration context, and type converter classes. Alerter classes are not handled by the migration tool. The migrated code includes access methods for these classes, and the references to these classes are instantiated by Spring context injection. The classes are located in jcaps_interfaces.jar in the Application Sources folder of the migration project.

1.2.3 OTD to XSD and XSD to JAXB Conversion

The migration tool provides can be run in different modes to convert OTDs to XSD format, and XSD format to JAXB objects after the initial project migration is complete.

By default, the migration tool retains the original JCD interface. An additional option, -usejaxb, indicates to use JAXB objects in the JCD's input and output arguments instead of converting them to OTDs to gain slightly better performance during runtime.

1.2.4 JAXB Generation During Migration

Oracle Java CAPS projects that contain a business process that invokes a JCD or that contain a JCD exposed as web service are special migration cases. These projects contain a WSDL interface that is converted to a JAX-WS proxy interface during migration. The OTD message types defined in the WSDL document are converted to JAXB objects.

To generate the JAXB objects, the migration tool uses a specific version of the following JAXB and XJC libraries. The versions listed below cannot be used within WebLogic Server, and are solely included for use with the Oracle Java CAPS Migration Tool.

  • Oracle_SOA_Home/oracle_common/modules/glassfish.jaxb.xjc_1.0.0.0_2-1-12.jar

  • Oracle_SOA_Home/oracle_common/modules/glassfish.jaxb_1.0.0.0_2-1-12.jar

The above versions of these libraries include the following processing rules in order to remain consistent with the original OTD behavior.

  • Underscores in the original XSD files are retained in the generated JAXB objects.

  • Lowercase letters after an underscore remain in lowercase in the generated JAXB objects.

  • When there are nested complex types in the original XSD file, the getter method for the generated JAXB object checks if the object is null and creates a new object if it is.

The generated JAX-WS proxy classes are located in the Oracle SOA Suite projects src folder under the WSDL packages. The file name for the proxy classes is ExecutePortType.java.

Figure 1-1 Generated JAX-WS Proxy Classes in an Oracle SOA Suite Project

Description of Figure 1-1 follows
Description of "Figure 1-1 Generated JAX-WS Proxy Classes in an Oracle SOA Suite Project"

1.2.5 Support for JBI Project Migration

The migration tool migrates all Oracle Java CAPS JBI projects that use business processes with File, JMS, or HTTP binding components. It also migrates business processes that call subprocesses. JBI projects are more similar to Oracle SOA Suite projects, and require less transformation than Repository projects.

While both Oracle Java CAPS JBI and Oracle SOA Suite support BPEL 2.0, certain constructs are not supported in Oracle SOA Suite and will require some manual changes after the project is converted by the migration tool.

1.2.5.1 WS-I Version 1 Compliance

Oracle SOA Suite is compliant with the Web Services Interoperability Organization's (WS-I) Basic Profile, version 1.0. This means that the WSDL document can only have one part, which must have a type of element. It cannot be complextype or simpletype. Make sure any JBI projects to be migrated are WS-I compliant; otherwise the migrated project might fail during build, deployment, or runtime. The migration utility does not check for WS-I compliance.

1.2.5.2 Same Target Namespace for Different Message Definitions

Oracle Java CAPS JBI projects allow WSDL documents to use the same target namespace but override the message definitions. In other words, the element name is the same but the structure is different. In Oracle SOA Suite, only the first WSDL document is loaded and the overridden definitions are lost. If the JBI project you are migrating contains multiple WSDL documents with the same target namespace, modify the target namespace so it has a unique name, or make sure that the WSDL documents using the same target namespace do not define message type definitions with same name.

1.2.5.3 System Properties

In Oracle Java CAPS, additional Quality of Service (QoS) properties can be configured on the service connections, such as redelivery and throttling. Oracle SOA Suite does not have corresponding properties. The migration tool ignores these configurations during the migration. You can configure the project after the migration using available Oracle SOA Suite properties. For more information, see Section 4.2.3, "Configuring Quality of Service Properties."

1.2.5.4 BPEL 2.0 Constructs

Some of the BPEL 2.0 constructs that Oracle Java CAPS JBI supports are not available in the Oracle SOA Suite. During migration, the BPEL 2.0 code is converted without any modifications to the BPEL constructs. Some constructs that worked in Oracle Java CAPS will not work in Oracle SOA Suite, including the following:

  • Compensation and termination handlers

  • The standard faults: forcedTermination, repeatedCompensation, and invalidReply

  • The partner concept (a partner groups several partnerLink elements, but it did not have any executable properties so it was removed from BPEL 2.0)

For compensation and termination handlers, the partner links are migrated as placeholders that you need to recreate. The switch element was also removed from BPEL 2.0, but the migration tool replaces the switch element with the if element in the Oracle SOA Suite project.

For post-migration steps to address unsupported constructs, see Section 4.2.4, "Verifying the BPEL Structure."

1.3 About the Migrated Oracle SOA Suite Projects

In the migrated Oracle SOA Suite project, all JCDs are now Spring Context components, and any BPEL 1.0 business processes are now BPEL 2.0 processes. For every supported JCD in the original Oracle Java CAPS project, the Oracle SOA Suite project includes a Spring component and context XML file with the respective services and references nodes. The business processes and Spring Contexts are automatically wired to the inbound and external systems, though additional wiring might be required after the project is migrated.

1.3.1 About the Conversion to Spring

Each JCD is converted to a Spring component with an associated Spring context XML file. The JCD Java class is also brought over to the Oracle SOA Suite project and is modified to implement the JAX-WS proxy method along with all the accessor methods for the logger, collaboration context, and type converter.

The generated Spring Context includes a bean element that represents the original JCD class. In addition to defining JCD logic, the Bean defines additional properties such as the logger, collaboration context, and type converter, which are injected into the Spring context at runtime.

Figure 1-2 Spring Context XML File

Description of Figure 1-2 follows
Description of "Figure 1-2 Spring Context XML File"

For each JMS or File adapter outbound interaction in the original JCD code, the Spring Context includes an additional bean element reference, which is also injected at runtime. You need to invoke the Bean's API to interact with the outbound adapters.

Figure 1-3 Spring Component Type File

Description of Figure 1-3 follows
Description of "Figure 1-3 Spring Component Type File "

For each JCD, a Spring component type is also generated. The component type defines the JAX-WS interface class that was implemented by the JCD class. All the JAX-WS proxy classes and SOA Suite adapter interface classes are placed in the same Application Sources folder in the Oracle SOA Suite project.

Figure 1-4 Application Sources in the Oracle SOA Suite Project

Description of Figure 1-4 follows
Description of "Figure 1-4 Application Sources in the Oracle SOA Suite Project"

1.4 Migration Considerations

The Oracle Java CAPS Migration Tool supports business process and JCD Repository projects at versions 5.0.5 at any update level, 5.1.3 at any update level, and 6.0 or later. The migration tool supports JBI projects at version 6.0 or later. Depending on the individual project, there are variable levels of reuse for the mappings and other business logic in the project. The recommended reuse level depends on many factors, including the number of mappings, the complexity of the mappings, the types of OTDs used, the adapters and binding components used, and so on. Although all mappings can be retained as-is in most cases, this might not be the best approach.

Generally, the best candidates for a JCD-to-Spring migration are those that meet the following criteria:

1.4.1 Deciding Whether to Migrate

Below are a few considerations to take into account when making migration decisions for Oracle Java CAPS projects.

  • Is this a trivial JCD project with, for example, fewer than 100 lines of code and with simple mappings? If so, consider rewriting the JCD using Oracle SOA Suite components and native XML instead of reusing the legacy Oracle Java CAPS OTDs. Exclusive use of Oracle SOA Suite components is likely to outperform a blend of Oracle Java CAPS and Oracle SOA Suite due to the conversion overhead to and from the Oracle Java CAPS OTD format.

  • Is there a better way to do the necessary processing using just Oracle SOA Suite components that were not available in Oracle Java CAPS? For example, routing logic could be abstracted into a higher level Oracle Mediator project for improved design.

  • The effort to migrate certain Oracle Java CAPS projects to Oracle SOA Suite can be very large, depending on the complexity of the project.

  • Migrating Repository projects that include business processes requires transforming the BPEL 1.0 code to BPEL 2.0. This conversion is performed automatically by the migration tool, but might require some manual changes due to support for different BPEL 2.0 constructs between Oracle Java CAPS and Oracle SOA Suite. A manual transformation process would require additional resources and time to complete a seamless integration with the remaining components.

  • While much of the migration is performed automatically, the migration of Repository projects that include JCD's require to some manual conversion of the JCD Java code to Oracle SOA Spring component.

  • Migrating Repository projects with certain messageable OTDs could require a significant amount of rework and redesign to work in Oracle SOA Suite.

1.4.2 Deciding How to Migrate

Once the decision is made to migrate an Oracle Java CAPS JCD project, ask yourself the following questions to determine how to proceed:

  • Are there relatively few JCD mappings that rely on Oracle Java CAPS adapter methods?

    If the number of mappings affected is minimal, replace the Oracle Java CAPS OTD used in the Oracle Java CAPS mappings in the Oracle SOA Suite project with the corresponding Oracle SOA Suite adapter API. This eliminates the need for Oracle Java CAPS adapter code from your JCD, which means there will be no runtime dependencies on legacy Oracle Java CAPS adapter APIs.

  • Is there a large number of JCD mappings that rely on Oracle Java CAPS methods?

    If the number of mappings affected by the adapter code is very large with Oracle Java CAPS adapter methods heavily embedded in the mappings, you might want to leave the Oracle Java CAPS adapter OTD as is to allow maximum reuse of the existing mappings. The downside is that the migrated code would have dependencies on legacy Oracle Java CAPS adapter libraries. You would also need to create additional code outside of the mapping to translate the Oracle Java CAPS adapter OTD to the Oracle SOA Suite adapter's XML object. For example, you might need to create additional code to map database OTD fields to Database Adapter XML format.

1.5 Limitations of the Migration Tool

While the Oracle Java CAPS Migration tool automates several tasks for migrating existing Oracle Java CAPS projects to Oracle SOA Suite, there are some limitations in the project migration due to the wide variety of possible component combinations in an Oracle Java CAPS project. As a result, manual steps are required to complete most migrations. The required changes might be due to the nature of the artifacts to migrate, or they might be because the tool cannot convert the artifacts to corresponding Oracle SOA Suite artifacts. It is also possible that the artifact relies on features or constructs that are not supported in Oracle SOA.

Below are some of the limitations that we came across when developing the Migration tool.

Oracle Java CAPS Repository Project Migrations