Assumptions

Procedure implementation

The procedure implementation classes are packaged into a separate classes tree or JAR file and made available to HCL® Marketing Operations through a URL path. The procedure execution manager uses an independent class loader to load these classes as needed. By default, Marketing Operations looks in the following directory.

<MarketingOperations_Home>/devkits/integration/examples/classes

To change this default, set the integrationProcedureClasspathURL parameter under Settings > Configuration > Marketing Operations > umoConfiguration > integrationServices.

The procedure implementation class name follows the accepted Java™ naming conventions, to avoid package collisions with "unica" and classes from other vendors. In particular, customers must not place procedures under the "com.unica" or "com.unicacorp" package tree.

The procedure implementation is coded to the Java runtime version used by HCL Marketing Operations on the application server (at least JRE 1.5.10).

The procedure implementation class is loaded by the class loading policy that is normally used by HCL Marketing Operations (typically parent-last). The application server might provide development tools and options to reload classes that would apply to Marketing Operations procedures, but that is not required.

Libraries

HCL Marketing Operations provides some open source and third-party libraries; application servers also use different versions of these libraries.

Generally, this list changes from release to release. For version 9.1.0, the following third-party libraries are supported.

  • Ant 1.6.5 (ant.jar)
  • Axis2 1.5.2 and dependencies
    • axiom-api-1.2.9.jar
    • axiom-impl-1.2.9.jar
    • axis2-adb-codegen-1.5.2.jar
    • axis2-codegen-1.5.2.jar
    • axis2-adb-1.5.2.jar
    • axis2-kernel-1.5.2.jar
    • axis2-transport-http-1.5.2.jar
    • axis2-transport-local-1.5.2.jar
    • commons-codec.jar
    • commons-httpclient-3.1.jar
    • commons-logging.jar
    • httpcore-4.0.jar
    • neethi-2.0.4.jar
    • geronimo-stax-api_1.0_spec-1.0.1.jar
    • jaxrpc.jar
    • xlxpScanner.jar
    • xlxpScannerUtils.jar
    • xlxpWASParsers.jar
    • wsdl4j-1.6.2.jar
    • XmlSchema-1.4.3.jar
  • JavaMail 1.4.3 (activation.jar, mail.jar)
  • JUnit 4.4 (junit-4.4.jar)
  • HCL Marketing Operations APIs (affinium_plan.jar)
  • HCL Marketing Platform APIs (unica-common.jar)

If a procedure, or the secondary classes the procedure imports, does use such packages, their use must agree exactly with the packages provided by Marketing Operations or the application server. In this case, rework of your procedure code is required if a later version of Marketing Operations upgrades or abandons a library.

Procedures and threads

The procedure must be thread-safe concerning its own state; that is, its run method cannot depend on internal state changes from call to call. A procedure cannot create threads on its own.