Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21...

54
<Insert Picture Here> Building custom JCA adapters to integrate 3 rd party systems with Oracle Fusion Middleware Dmitry Nefedkin, Oracle ISV Migration Center FMW Consultant [email protected] Dmitry Volodin, Senior Sales Consultant [email protected]

description

Succeed in business process optimization with efficient integration of back-end applications Oracle Integration Adapters, a component of Oracle Fusion Middleware, offers organizations a service oriented approach to unlocking the information assets that have evolved in most IT environments. These adapters are based on Java Connection Architecture (JCA) specification, and they have become a standard way of integration with Enterprise Information Systems (EIS). Oracle Adapters provide an easy-to-use, flexible, standards based SOA platform to enable rapid and real-time connectivity and access to over 300+ enterprise applications. Oracle on its own and also via partnerships with best of breed Adapter Vendors provide a broad range, but what if your application is not covered? What is your application cannot be easily integrated via technology adapters (DB, File, JMS, etc.) or you&#x27;d like to gain performance or other benefits from knowing its internal architecture? How can you develop your custom JCA adapter? Find out more at https://blogs.oracle.com/imc/entry/partner_webcast_building_custom_jca

Transcript of Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21...

Page 1: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

<Insert Picture Here>

Building custom JCA adapters to integrate 3rd party

systems with Oracle Fusion Middleware Dmitry Nefedkin, Oracle ISV Migration Center FMW Consultant

[email protected]

Dmitry Volodin, Senior Sales Consultant

[email protected]

Page 2: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 2

ISV Migration Center Team

• Who we Are ISV Migration Center Team is a team of senior technical consultants

based in Eastern and Central Europe and represents Oracle's technical investment

for partners.

• Mission Statement Enable partners to rapidly and successfully adopt and

implement Oracle latest technology

• What do we Offer Whether you are selling Oracle technology, building business

solutions, including hosted Internet solutions or providing system integration and

implementation services for Oracle technology, IMC Team can help you succeed.

• How can we assist We offer a wide range of free services for partners such as

one2one assistance, webinars, seminars and hands-on workshops.

ISV Migration Center blog: http://blogs.oracle.com/imc

Contacts:

Thanos Terentes Printzios, ISV Migration Center Manager, EE&CIS

[email protected]

Page 3: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 3

<Insert Picture Here>

Agenda

• Why are you might be interested in developing a

custom JCA adapter?

• Java Connector Architecture (JCA) overview

• JCA Adapters for Oracle Fusion Middleware – the

distinctive features

• Adapter implementation

• Developing Adapter Configuration Wizard for

JDeveloper

• Installing libraries and extensions to JDeveloper

• Deploying and configuring your custom JCA

adapter in Oracle SOA Suite / Service Bus

• Demo – Custom JCA adapter for SSH communication

• Q&A

Page 4: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 4

Why are you might be

interested in developing a

custom JCA adapter?

Page 5: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 5

Worklist Process Portal

MS Office Online Shopping Mobile Devices

Oracle Fusion Middleware for integration Flexible architecture

ORACLE SERVICE BUS / SOA SUITE/ BPM

Page 6: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 6

Worklist Portal

MS Office Online

Shopping

Mobile Devices

Application integration What might be hidden under the covers

ORACLE SERVICE BUS/SOA SUITE/BPM

Application Instance 1

Application Instance 2

Application Instance 3

Application Servers

Native API Crontab Jobs

Web Services

Page 7: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 7

Application integration Benefits of using JCA Adapters for Integration with EIS

• JCA API - unified interface for communication with any

Enterprise Information System (EIS);

• Integration middleware is independent of the protocols

supported by the EIS;

• Transactional communications, including XA (if the EIS

supports it)

• Application Server-managed pool of connections to the

EIS;

• Support for asynchronous communication;

Page 8: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 8

Java Connector Architecture

(JCA) overview

Page 9: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 9

Java EE Connector Architecture Specification Versions History

Specification

version

JSR# Final release

date

Java EE edition

JCA 1.0 JSR 16 24 Sep, 2001 Java EE 1.3

JCA 1.5 JSR 112 24 Nov, 2003 Java EE 1.4, 5

JCA 1.6 JSR 332 10 Dec, 2009 Java EE 6

Note: as the time of this writing Oracle JCA Adapter Framework supports JCA 1.5, so we’re going to describe this version of the spec.

Page 10: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 10

Java EE Connector Architecture Overview

Application Server

Connection Management

Transaction Management

Security Contract

EIS – Enterprise Information System

JCA Resource Adapter

EIS specific interface

System Contract (SPI - Service Provider Interface)

Application component, acts as adapter client

CCI - Common Client

Interface

Container-Component Contract

Work Management

Lifecycle Management

Page 11: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 11

Resource Adapter Characteristics

• Supplied types of communication between application

and EIS:

• Outbound

• Inbound

• Bi-Directional

• Operating environment:

• Managed mode – resource adapter and adapter client are

deployed on the application server

• Non-managed mode – adapter is called from non-managed

clients (thick java clients, applets)

Page 12: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 13

Resource Adapter Implementation Steps – outbound adapter

• Implement system contracts (SPI):

• Lifecycle management;

• Connection management + security;

• Transaction Management (if EIS supports

transactions)

• Work management (if needed)

• Implement interaction (CCI)

• Create the deployment descriptors

• Resource adapter module packaging

Page 13: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 14

Resource Adapter Implementation Steps – inbound adapter

• Implement system contracts (SPI):

• Lifecycle management;

• Message inflow contract (activation)

• Transaction inflow contract (if needed)

• Create the deployment descriptors

• Resource adapter module packaging

Page 14: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 15

System Contract Implementation (SPI) Lifecycle management

Adapter developer implements start and stop methods of javax.resource.spi.ResourceAdapter interface

Page 15: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 16

System Contract Implementation (SPI + CCI) Connection

management

Interfaces in yellow boxes are implemented by the connector developer

Interfaces in green boxes are implemented only if adapter should work in non-managed mode

Page 16: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 17

System Contract Implementation (SPI) Security Contract

• JCA security is based on JAAS

• ManagedConnectionFactory .createManagedConnection

method accepts JAAS Subject as on of the parameters;

• ManagedConnection.getConnection takes a Subject

parameter to support re-authentication (if needed);

• You should throw SecurityException if you cannot

authenticate the caller;

• The resource adapter must specify its support for the

security contract as part of its deployment descriptor.

Page 17: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 18

System Contract Implementation (SPI) Transaction

management

2 Methods in ManagedConnection implementation class define how transaction management is done by Adapter:

•getLocalTransaction

•getXAResource

Page 18: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 19

Transaction Management Local vs Distributed Transactions

• Local Transaction

• A transaction that deals with a single Resource Manager

• Distributed Transaction

• A transaction that spans multiple Resource Managers

coordinated by a Transaction Manager

• Helps to ensure consistency across multiple data sources and

other transactional resources (eg. JMS Queue)

• Common flavour is 2-Phase-Commit (2PC) where XA is the

interface between the 'Global' Transaction Manager (eg.

WebLogic) and the 'Local' Resource Managers (eg. Oracle

DB)

Page 19: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 20

System Contract Implementation (SPI) Message Inflow Contract (inbound adapters)

Page 20: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 21

System Contract Implementation (SPI) Work management

contract

• Adapter running in the managed mode cannot create threads directly, they should:

• - implement Work interface

• - call WorkManager.scheduleWork to schedule work execution

• - monitor execution status via WorkListener

Page 21: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 22

Common Client Interface (CCI) Calling JCA Adapter from applications

CCI defines a standard client API for application

components and enables application components and

integration frameworks to drive interactions across

heterogeneous EISs using a CCI API.

Main parts of CCI API (javax.resource.cci package) :

• Connection-related interfaces;

• Interaction-related interfaces;

• Data representation-related interfaces

• Metadata related-interfaces

Page 22: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 23

Common Client Interface (CCI) Class

Diagram of

most

important

interfaces

Page 23: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 24

Deployment descriptors Describe your JCA adapter

• 2 types of descriptors:

• Standard resource adapter descriptor – ra.xml

• Application Server-specific descriptor, for example

weblogic-ra.xml for Oracle Weblogic

• Standard descriptior defines:

• Resource adapter class

• Connection factory and connection classes

• Adapter configuration properties

• Transaction support

• Supported authentication mechanism

Page 24: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 25

Deployment descriptors ra.xml example

<connector xmlns=http://java.sun.com/xml/ns/j2ee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation=… version="1.5">

<display-name>SSH Adapter</display-name><vendor-name>Oracle</vendor-name>

<eis-type>Generic SSH System</eis-type><resourceadapter-version>1.0</resourceadapter-version>

<resourceadapter>

<resourceadapter-class>oracle.tip.adapter.ssh.SshAdapter</resourceadapter-class>

<outbound-resourceadapter>

<connection-definition>

<managedconnectionfactory-class>oracle.tip.adapter.ssh.SshManagedConnFactory</managedconnectionfactory-class>

<config-property>

<config-property-name>hostName</config-property-name>

<config-property-type>java.lang.String</config-property-type>

<config-property-value>fmw-image.ru.oracle.com</config-property-value>

</config-property>

<connectionfactory-interface>javax.resource.cci.ConnectionFactory</connectionfactory-interface>

<connectionfactory-impl-class>oracle.tip.adapter.ssh.SshConnectionFactory</connectionfactory-impl-class>

<connection-interface>oracle.tip.adapter.ssh.ISshConnection</connection-interface>

<connection-impl-class>oracle.tip.adapter.ssh.SshConnection</connection-impl-class>

</connection-definition>

<transaction-support>NoTransaction</transaction-support>

<authentication-mechanism>.. </authentication-mechanism>

</outbound-resourceadapter>

</resourceadapter>

</connector>

Page 25: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 26

Deployment descriptors Vendor-specific descriptor

• Allows to define the adapter properties that are not

covered by JCA spec

• Weblogic-ra.xml allows to define:

• JNDI name for the resource adapter

• Work Manager that will be used by the resource

adapter bean

• Additional security properties

• Pre-defined connection instances

• And many more

Page 26: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 27

Deployment descriptors weblogic-ra.xml example

<weblogic-connector xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-connector http://www.bea.com/ns/weblogic/weblogic-

connector/1.0/weblogic-connector.xsd" xmlns="http://www.bea.com/ns/weblogic/weblogic-connector">

<jndi-name>jca/SshResourceAdapter</jndi-name>

<enable-access-outside-app>true</enable-access-outside-app>

<enable-global-access-to-classes>true</enable-global-access-to-classes>

<outbound-resource-adapter>

<default-connection-properties>

<pool-params>

<initial-capacity>1</initial-capacity>

<max-capacity>10</max-capacity>

<capacity-increment>1</capacity-increment>

</pool-params>

<transaction-support>NoTransaction</transaction-support>

</default-connection-properties> <connection-definition-group>

<connection-instance>

<description>SSH Adapter Demo</description>

<jndi-name>eis/SSH/Demo</jndi-name>

<connection-properties>

<pool-params>

<initial-capacity>1</initial-capacity>

<max-capacity>10</max-capacity>

<capacity-increment>100</capacity-increment>

</connection-instance>

</outbound-resource-adapter>

</weblogic-connector>

Page 27: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 28

Resource Adapter Packaging Prepare your adapter for the distribution

A resource adapter must be packaged using the Java ARchive (JAR) format in to the file with RAR extension (ResourceAdapter ARchive). RAR file should have the following structure:

Your_Adapter.rar

META-INF

MANIFEST.MF

ra.xml

weblogic-ra.xml

Or any other AS-specific

descriptor

JARs with adapter classes

All third-party JARs are also put here

Any native libraries

DLLs for Windows, SO files for Solaris, etc..

Page 28: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 29

JCA Adapters for Oracle

Fusion Middleware –

distinctive features

Page 29: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 30

Distinctive Features: Adapter

implementation

Page 30: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 31

Oracle Adapter Framework What’s this?

• Has been created initially for Oracle BPEL PM 10g to

wrap up any standard JCA 1.5 adapter to call as a

web service via WSIF

• SDK that Oracle uses to create JCA adapters that

can be plugged into Oracle Fusion Middleware

Infrastructure (SOA Suite/BPM Suite/Service Bus)

Page 31: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 32

Oracle Adapter Framework – what are the

differences in adapter implementation? (Part 1)

Task “Standard” JCA

adapter

Oracle Adapter Framework

Getting

connection to

an EIS

instance

Implement

javax.resource.cci.Con

nectionFactory

Implement

oracle.tip.adapter.api.OracleCon

nectionFactory

Execute EIS

function

Implement

javax.resource.cci.Inte

raction

public Record

execute(InteractionSpec

interactionSpec, Record

record)

Record should be treated as

instanceof

oracle.tip.adapter.api.record.XM

LRecord

Execute EIS

function

InteractionSpecImpl

implements standard

InteractionSpec

interface

InteractionSpecImpl should

implement bunch of additional

interfaces from

oracle.tip.adapter.api package

Page 32: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 33

Oracle Adapter Framework – what are the

differences in adapter implementation? (Part 2)

Task “Standard” JCA

adapter

Oracle Adapter Framework

Set client

specific

context for

EIS function

Set and get attribute

functions in the

InteractionSpec

implemented class

Generally not used

InteractionSpec implemented class

should always have setter and

getter methods for WSDL based

JCA-properties

Supports

client

transaction

Implement

javax.resource.cci.Loc

alTransaction

if you need client

transaction support

Should always implement the local

transaction interface with stub

methods and events sending

Page 33: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 34

Distinctive Features:

Developing Adapter

Configuration Wizard for

JDeveloper

Page 34: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 35

Custom Adapter Configuration Oracle JDeveloper 11g SOA Composite Editor

• SOA Composite Editor has

Java API to developer

configuration wizards for

custom adapters;

• Support for generating

adapter artifacts: WSDL,

JCA, XSD files;

• Has set of pre-defined

forms that can be used as

the steps of the wizard;

• Custom forms for the wizard

steps can be developed as

well;

Page 35: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 36

Custom Adapter Configuration Settings to display adapter on the component palette

• Adapter configuration settings for component palette are located in:

• %JDEV_HOME%\integration\seed\soa\configuration\soa-config.xml

• %JDEV_HOME%\integration\seed\soa\configuration\bpm-soa-config.xml

• Source code of the wizard sample can be found here:

• %JDEV_HOME%\integration\adapters\samples\custom\

</adapterType>

<adapterType resourceBundle="oracle.tip.tools.ide.adapters.designtime.adapter.ssh.resources.SshStringResourceBundle">

<name>${SSH_ADAPTER_COMPONENT_NAME_L}</name>

<bindingType>jca</bindingType>

<bindingSubType>custssh</bindingSubType>

<implementationClass>oracle.tip.tools.ide.adapters.designtime.adapter.ssh.SshAdapterScaEndpointImpl</implementationClass>

<description>${SSH_ADAPTER_COMPONENT_DESC}</description>

<tooltip>${SSH_ADAPTER_COMPONENT_DESC}</tooltip>

<icon16x16>/oracle/tip/tools/ide/adapters/designtime/adapter/ssh/resources/ssh_adapter_16x16.png</icon16x16>

<icon20x20>/oracle/tip/tools/ide/adapters/designtime/adapter/ssh/resources/ssh_adapter_20x20.png</icon20x20>

<topSectionIcon>oracle/tip/tools/ide/fabric/resource/image/visuals_rd1/whiteServiceTop.png</topSectionIcon>

<middleSectionIcon>oracle/tip/tools/ide/fabric/resource/image/visuals_rd1/whiteServiceMiddle.png</middleSectionIcon>

<bottomSectionIcon>oracle/tip/tools/ide/fabric/resource/image/visuals_rd1/whiteServiceBottom.png</bottomSectionIcon>

<collapsedSectionIcon>oracle/tip/tools/ide/fabric/resource/image/visuals_rd1/whiteServiceCollapsed.png</collapsedSectionIcon>

</adapterType>

Page 36: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 37

Developing the adapter configuration wizard Class diagram

CustomScaEndpointImpl

SCAEndpoint

SOA Diagram

soa-config.xml

+Adds Wizard Pages()

CustomAdapterWizard

JcaAdapterWizard

JcaServiceNamePage

CustomConnectionPage

CustomWsdlSelectionPage

CustomOperationPage

CustomPropertyPage CustomAdapterConfig

JcaOperationPage

WsdlSelectionPage

CustomStringResourceBundle

Page 37: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 38

Classes and Interfaces to be implemented Text and graphical resources for the wizard

• Resource bundle for storing string resources (name, adapter code,

messages, headers, field names for the forms)

public class SshStringResourceBundle extends ListResourceBundle {

public Object[][] getContents() { return contents; }

static final Object[][] contents = {

// KEYS SHOULD BE IN ALPHABETIC ORDER

{"SSH_ADAPTER_COMPONENT_DESC",

"The SSH JCA Adapter Wizard can a wsdl and jca file with any interaction spec and jca parameters." },

• Graphical icons for displaying adapter on the SOA component palette and

SCA diagram:

• 16 x 16 pixels in PNG format – for component palette

• 20 x 20 pixels in PNG format – for SCA diagram

Page 38: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 39

Classes and Interfaces to be implemented Developing a wizard for creating/editing configuration

of the custom adapter (part 1)

• Implement the interaction with SCA editor

• Class will orchestrate the communication between JDeveloper graphical

sybsystem, SOA composite project and the adapter wizard

// SCAEndpoint Interface Implementation

public class SshAdapterScaEndpointImpl implements SCAEndpoint {

// Must only have empty constructor

public SshAdapterScaEndpointImpl() { }

public EndpointInfo createImplementation(Project jdevProject, SCAController scaController,

boolean isExternalReference) {

try {

Frame frame = Ide.getMainWindow();

// Note: adapter wizard implicitly uses JDeveloper project.

SshAdapterWizard wiz = new SshAdapterWizard(frame, null, serviceOrReferenceName,

isExternalReference, jdevProject) ;

boolean ok = wiz.display();

Page 39: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 40

Classes and Interfaces to be implemented Developing a wizard for creating/editing configuration

of the custom adapter (part 2) • Load text resources from the resource bundle;

• Context initialization for transferring information between the pages of the

wizard;

• Defining the sequence of the pages displayed;

public class SshAdapterWizard extends JcaAdapterWizard {

//This variable uses only if need to share data across wizard pages

public SshAdapterContext m_adapterContext;

Object getAdapterSpecificContext() {…}

public void initializeResources() {…}

public void addInitialWizardPages(JcaAdapterContext wcontext){

new SshConnectionPage(wcontext, new ImageWizardPage(null, wcontext._getImage(),

m_bundle.getString("SSH_CN_PAGE_TITLE")));

//new SshWsdlSelectionPage(wcontext, new ImageWizardPage(null, wcontext._getImage(),

wcontext._bundle.getString("WS_PAGE_TITLE")));

new SshOperationPage(wcontext, new ImageWizardPage(null, wcontext._getImage(),

m_bundle.getString("SSH_OP_PAGE_TITLE")));

Page 40: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 41

Classes and Interfaces to be implemented Standard forms and adapter configuration parameters

(part 3) • WsdlSelectionPage class – selection

of the existing WSDL file or its auto-

generation based on operation and

XSD schema. Page UI is generated

automatically;

• CommonAdapterSchemaPage class

– XML Schema selection for

inbound/outbound messages. Page

UI is generated automatically;

• JcaOperationPage class – operation

type selection. UI should be tweaked.

Page 41: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 42

Classes and Interfaces to be implemented) Custom forms and adapter configuration parameters

(part 4)

• Should extend techAdapterWizardPage class

• Used to build the custom form, e.g. for entering parameters dependent from

each other, for building form model using metadata from the external system.

• buildDataModel() method is executed each time user clicks “Finish”.

public class SshInteractionPropertiesPage extends techAdapterWizardPage implements ActionListener {

public SshInteractionPropertiesPage(AdapterWizardContext wcontext, ImageWizardPage iwp) {

setHelpTopicID("bpmjdev_adp_wiz_cu_properties");

setContextAndPage(wcontext, iwp);

jbInit();

}

public void buildDataModel() throws Exception {…}

Page 42: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 43

Building Adapter Configuration Project What libraries should be added in JDeveloper

• To build the project you will need the following libraries: • %JDEV_HOME%\jdev\extensions\oracle.sca.modeler.jar (SOA Designtime)

• %JDEV_HOME%\jdev\extensions\oracle.ide.jar

• %JDEV_HOME%\jlib\jewt4.jar

• %JDEV_HOME%\ide\lib\javatools.jar

• %JDEV_HOME%\integration\lib\oracle.sca.ui.adapters.jar

• %JDEV_HOME%\integration\lib\bpm-ide-common.jar

• %JDEV_HOME%\integration\lib\bpa\xbean.jar

• JDEV_HOME%\soa\modules\oracle.soa.adapter_11.1.1\adapter_xbeans.jar

• %BEA_HOME%\oracle_common\modules\oracle.javatools_11.1.1\javatools-

nodeps.jar

• %BEA_HOME%\oracle_common\jlib\share.jar

• JAX-RPC Client Library

Page 43: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 44

Distinctive Features:

Installing libraries and

extensions to JDeveloper

Page 44: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 45

Installing Adapter Configuration libraries to

Oracle JDeveloper 11g

• Steps install and configure the adapter configuration library in

JDeveloper • Copy the library jar to %JDEV_HOME\integration\lib\

• Add it to JDeveloper classpath

• Add adapter configuration to soa-config.xml and/or bpm-soa-config.xml –

depending on what JDeveloper extensions (SOA Composite Editor/BPM

Studio) you are going to use.

• Implementation options • Manual copying the library jar and changing the configuration files

• Automation of these steps with JDeveloper Extension SDK Bundle

Page 45: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 46

• Extension installation package has the following structure

• Packed to the zip archive

(/)jca-ssh-adapter-extension

META-INF

bundle.xml

integration

lib

oracle.sca.ui.adapter.ssh.jar

Building JDeveloper Extension package Part 1- directory structure

jdev

extension

oracle.custom.jca.ssh.adapter.jar

- bundle descriptor

- our adapter UI wizard library

- extension archive

Page 46: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 47

Building JDeveloper Extension package Part 2 –Bundle descriptor structure

• Extension installer package should include bundle.xml file, which describes the

extension (name, version, installation directory), and also points to the java

class that should be called after the extension install (in our case it will modify

soa-config.xml and/or bpm-soa-config.xml files).

<?xml version = '1.0' encoding = 'UTF-8'?> <update-bundle version="1.0" xmlns="http://xmlns.oracle.com/jdeveloper/updatebundle" xmlns:u="http://xmlns.oracle.com/jdeveloper/update"> <u:update id="oracle.custom.jca.ssh.adapter"> <u:name>Custom JCA SSH Adapter for Oracle SOA Suite 11g</u:name> <u:version>11.1.1.6.0.0.1</u:version> <u:author>Oracle</u:author> <u:author-url>http://www.oracle.com</u:author-url> <u:description>Custom JCA SSH Adapter</u:description> <u:destination>${oracle.home}</u:destination> <u:requirements> <u:requires-extension id="oracle.studio" minVersion="11.1.1.6.38.61.92" maxVersion="11.1.1.99"/> </u:requirements> <u:post-startup-hook>oracle.tip.tools.ide.adapters.designtime.adapter.ssh.install.SshAdapterSOAComponentConfig</u:post-startup-hook> </u:update> </update-bundle>

Page 47: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 48

Building JDeveloper Extension package Part 3 – Extension JAR file structure

• Extension JAR must be located inside the extension ZIP bundle in

%CUST_EXT_ROOT%\jdev\extension. It contains:

• Mandatory file - .\META-INF\extention.xml – describes the extension, it’s dependency

on the other extensions (e.g. Oracle SCA Modeler), and adds the classpath entries to

the JDeveloper classpath

• Optional - Startup Hook Class or link on the library containing this class.

<?xml version = '1.0' encoding = 'UTF-8'?> <extension esdk-version="1.0" id="oracle.custom.jca.ssh.adapter" version="11.1.1.6.0.0.1" rsbundle-class="oracle.tip.tools.ide.adapters.designtime.adapter.ssh.resources.SshStringResourceBundle" xmlns="http://jcp.org/jsr/198/extension-manifest"> <name>Custom JCA SSH Adapter</name> <dependencies> <import>oracle.sca.modeler</import> </dependencies> <classpaths> <classpath>../../integration/lib/oracle.sca.ui.adapter.ssh.jar</classpath> </classpaths> </extension>

Page 48: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 49

Installing an extension to JDeveloper

• Use the following menu to initiate the extension installation:

JDeveloper Help-> Check for Updates…->Install From Local Files

Page 49: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 50

Distinctive Features:

Deploying/Configuring our

adapter in SOA Suite/OSB

Page 50: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 51

Deploying and Configuring Adapter

Deploy your RAR file with Adapter to Weblogic Server

Setup outbound connection pools for your adapter, save changes in the deployment plan and update the deployment

Page 51: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 52

• Oracle SOA/BPM Suite do not require additional

configuration, but OSB need it

• List of JCA adapters allowed to use in OSB is

contained in the following file: %OSB_HOME%\config\adapter\OSBSupportedAdapters.xml

• You should add an element for your adapter: <jca:adapter-type>YOUR_ADAPTER_NAME</jca:adapter-type>

• The name of the custom adapter type comes from the

JCA file; the "adapter" attribute value in the <adapter-

config> element (but it should be uppercase and the

spaces are replaced with underscores)

Configure OSB to know about your adapter

Page 52: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 53

Demonstration:

Custom JCA Adapter for

SSH communication

Page 53: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 54

More Resources and Information

• Programming Resource Adapters for Oracle

WebLogic Server 11gR1 Guide

• http://docs.oracle.com/cd/E23943_01/web.1111/e13732/toc.htm

• Adapter Development Cookbook (Release 10g only)

• http://www.oracle.com/technetwork/testcontent/adapter.pdf

• Oracle Adapters FAQ (Release 10g only)

• http://www.oracle.com/technetwork/testcontent/faq-adapters-otn-

130381.pdf

• OTN Discussions Forums

• Request Adapter SDK via SR on support.oracle.com

Page 54: Partner Webcast - Building Custom JCA Adapters To Integrate 3rd Party Solutions to Oracle FMW - 21 Feb 2013

© 2010 Oracle Corporation 55

Q&A

Dmitry Nefedkin, Oracle ISV Migration Center FMW Consultant

[email protected]

Dmitry Volodin, Senior Sales Consultant

[email protected]

ISV Migration Center blog: http://blogs.oracle.com/imc