@ComponentProfile(summary="Wrap a RFC Connection for use by embedded services", tag="service,sap,rfc", recommended={ConfiguredRfcConnection.class,DynamicRfcConnection.class}) public class RfcServiceList extends com.adaptris.core.ServiceList implements com.adaptris.core.licensing.LicensedComponent, com.adaptris.core.ConnectedService
ServiceCollection
that creates a JCoDestination instance at the start of the execution of the service
list and stores it in object metadata.
Other than the creation of the JCoDestination at the start of execution, all other behaviour is the same as ServiceList
which this class extends.
The rationale behind this service collection implementation is to allow multiple producers that share the same underlying RFC
configuration. Embedded StandaloneProducer and StandaloneRequestor implementations do not need to have RfcConnections associated
with them as they will be able to use the JCoDestination from metadata. For a stateful RFC call sequence you can then configure
the first and last services in this service list to be StatefulSessionStart
and StatefulSessionEnd
respectively.
Between StatefulSessionStart
and StatefulSessionEnd
the same underlying connection will be used for all function
calls.
RfcConstants.OBJ_METADATA_DESTINATION_KEY
,
StatefulSessionStart
,
StatefulSessionEnd
In the adapter configuration file this class is aliased as sapjco3-rfc-service-list which is the preferred alternative to the fully qualified classname when building your configuration.
License Required: ENTERPRISE
Constructor and Description |
---|
RfcServiceList() |
RfcServiceList(java.util.Collection<com.adaptris.core.Service> serviceList) |
Modifier and Type | Method and Description |
---|---|
protected void |
applyServices(com.adaptris.core.AdaptrisMessage msg) |
protected void |
doClose() |
protected void |
doInit() |
protected void |
doStart() |
protected void |
doStop() |
com.adaptris.core.AdaptrisConnection |
getConnection() |
com.adaptris.core.AdaptrisConnection |
getRfcConnection()
Deprecated.
since 3.7.0 use
getConnection() instead. |
boolean |
isEnabled(com.adaptris.core.licensing.License license) |
void |
prepare() |
void |
setConnection(com.adaptris.core.AdaptrisConnection c)
Set the connection that will be used by all
RfcProducer instances in this service list. |
void |
setRfcConnection(com.adaptris.core.AdaptrisConnection c)
Deprecated.
since 3.7.0 use
setConnection(AdaptrisConnection) instead. |
getAllowForwardSearch, setAllowForwardSearch
add, add, addAll, addAll, addService, changeState, clear, close, continueOnFailure, createName, createQualifier, doService, enforceRequirements, enforceRequirements, get, getComments, getContinueOnFail, getIsTrackingEndpoint, getLookupName, getOutOfStateHandler, getRestartAffectedServiceOnException, getServices, getUniqueId, handleException, indexOf, init, isBranching, isTrackingEndpoint, iterator, lastIndexOf, listIterator, listIterator, registerEventHandler, remove, requestClose, requestInit, requestStart, requestStop, retrieveComponentState, set, setComments, setContinueOnFail, setIsTrackingEndpoint, setLookupName, setOutOfStateHandler, setRestartAffectedServiceOnException, setServices, setUniqueId, size, start, stop, subList, withServices
contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArray, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
continueOnFailure, doService, isBranching, setUniqueId
createName, createQualifier, isTrackingEndpoint
changeState, requestClose, requestInit, requestStart, requestStop, retrieveComponentState
public RfcServiceList()
public RfcServiceList(java.util.Collection<com.adaptris.core.Service> serviceList)
protected void applyServices(com.adaptris.core.AdaptrisMessage msg) throws com.adaptris.core.ServiceException
applyServices
in class com.adaptris.core.ServiceList
com.adaptris.core.ServiceException
protected void doInit() throws com.adaptris.core.CoreException
doInit
in class com.adaptris.core.ServiceList
com.adaptris.core.CoreException
protected void doStart() throws com.adaptris.core.CoreException
doStart
in class com.adaptris.core.ServiceListBase
com.adaptris.core.CoreException
protected void doStop()
doStop
in class com.adaptris.core.ServiceListBase
protected void doClose()
doClose
in class com.adaptris.core.ServiceListBase
public void prepare() throws com.adaptris.core.CoreException
prepare
in interface com.adaptris.core.ComponentLifecycleExtension
prepare
in class com.adaptris.core.ServiceCollectionImp
com.adaptris.core.CoreException
public boolean isEnabled(com.adaptris.core.licensing.License license)
isEnabled
in interface com.adaptris.core.licensing.LicensedComponent
public com.adaptris.core.AdaptrisConnection getRfcConnection()
getConnection()
instead.RfcProducer
instances.public void setRfcConnection(com.adaptris.core.AdaptrisConnection c)
setConnection(AdaptrisConnection)
instead.RfcProducer
instances in this service list.
So that we can use SharedConnection
, this is marked as a standard AdaptrisConnection
, however you should only
use a concrete RfcConnection
instance or a SharedConnection
.
c
- public com.adaptris.core.AdaptrisConnection getConnection()
getConnection
in interface com.adaptris.core.ConnectedService
public void setConnection(com.adaptris.core.AdaptrisConnection c)
RfcProducer
instances in this service list.
So that we can use SharedConnection
, this is marked as a standard AdaptrisConnection
, however you should only
use a concrete RfcConnection
instance or a SharedConnection
.
setConnection
in interface com.adaptris.core.ConnectedService
Copyright Adaptris