Configuring the Process Development Environment

To configure your workflow system development environment:

  1. Download the Process Engine samples from the FileNet P8 Platform Developer samples section of the IBM® FileNet FileNet P8 Platform publication library. Maintain the relative directory structure of the directories.
  2. Copy any of the additional supporting files from their installed location to your local directory.
  3. Change the file attributes for all of the files in the newly created directory structure from read-only to read/write.
  4. If you did not do so previously, install and configure the appropriate Java™ Development Kit (JDK) on your development system. Also, if any of the following circumstances apply, install the JDK and copy the Developer Files\pw.jar file to the relevant machines:
    • You are developing on multiple Content Platform Engine servers
    • You are implementing on another machine the (optional) Case Analyzer

    For information about the current, supported version of the JDK for your platform, see the IBM FileNet P8 system requirements web page.

    Install the supported version of the JDK on your development system and add the installation path to your PATH variable.

  5. If all of the following circumstances apply, add the Directory Files\vwpanel.jar file to your project:
    • You are using an IDE.
    • You intend to create user controls that are similar to the IBM FileNet sample controls with the following tools: the Java Step Processor UI Toolkit Swing-based beans and interfaces.
    For more information, see Java Step Processor UI Toolkit Overview.
Note: An application might use a WebSphere® application client to access WebSphere Java Platform, Enterprise Edition resources (such as JMS). If so, the application needs to ensure the Process Java API JAR files that are specified in the JRE parameters precede the WebSphere files specified. For example, suppose that the java.ext.dirs parameter is used: the directory that contains the Process Java API JAR files needs to be listed prior to any WebSphere file directories.

Process Engine Developer Files Samples Set

The Process Engine Developer Files samples set includes the files that are necessary for a Process development environment. The supporting files consist of the following items:
  • A set of JAR files that contain the interfaces for Process application development
  • A set of sample files that illustrate common uses

Required Files for Application Development

The following JAR files in the Process Engine Developer Files samples set are required for any Process application development:

  • pe.jar

    Contains the Process Java API runtime classes.

  • peResources.jar

    Contains Content Platform Engine resource files (such as exception and string files).

  • pe3pt.jar

    Contains third-party classes that are used by Content Platform Engine.

These JAR files are supplied in the Process Engine Developer Files samples set, but are used only for specific types of development:

  • vwpanel.jar

    Contains the Java Step Processor UI Toolkit classes. This toolkit contains a panel set of Swing-based interfaces, support classes, JavaBeans, and related information classes. The toolkit classes are used to provide user interface controls for the Java Step Processor samples. For more information, see Java Step Processor UI Toolkit Overview.

  • pw.jar

    (For FileNet Image Manager only.) Contains Process Java API runtime and related classes.

Process Java API Samples

The Process Java API sample files that are supplied in the Process Engine Developer Files samples set include the following items:

  • API samples

    Java API files that you can use to create, start, and complete a workflow, as well as displaying and saving log information. MainSample.java is a simple workflow processing application that demonstrates how the API sample classes are related. These files are in the Directory Files\samples\api directory.

  • VWPanel samples

    Step Processor and Launch Step Processor sample applications, along with the image files needed for the default user interface. These files are in the Directory Files\samples\vwpanel directory.

  • Utility samples

    A Java class for viewing or removing entries from the Java Remote Method Invocation registry. These files are in the Directory Files\samples\utils directory.

For more information about the Process Java API samples, see Process API Samples Overview.

Additional Supporting Files for Process Development

Session JAAS Login Context

The workflow system uses the Java Authentication and Authorization (JAAS) login context for establishing sessions. The default JAAS login context is FileNetP8WSI for HTTP transport and FileNet P8, FileNetP8Engine for EJB transport.

For more information, see Authentication and JAAS.

If you use the Web Services transport rather than the EJB transport, change the FileNetP8 stanza to reference the FileNet WS-I login module:


FileNetP8
    {
        com.filenet.api.util.WSILoginModule required;
    };
Note: The format for specifying the FileNet WS-I login module might differ depending on the application server platform.

Issues with Adding JAR Files to the Classpath

Adding the JAR files to the system class path can cause security conflicts when you attempt to run the out-of-the-box Java client applications on your development machine. For example, a conflict can occur in the following circumstances:
  • The Content Platform Engine server sends the correct path for pe.jar.
  • The class path statement forces the client application to use the pe.jar file from the specified location.
You might attempt to run the following applications on the same machine:
  • The Java Plugin console
  • The out-of-the-box Java client application with the JAR files specified in the class path
Such at attempt causes you to receive exceptions similar to the following one:

    java.security.AccessControlException: access denied (java.lang.RuntimePermission modifyThreadGroup)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    . . .

Use any one of the following workarounds to correct this behavior:

  • Use an IDE to compile and run your applications. In this case, you can specify the class path locations specific to your project (or the global project setting).
  • Specify the locations of the JAR files in the script or command line you use to compile and run an application.
  • Create a script that includes a class path variable that specifies the locations of the JAR files. This approach is the recommended approach, unless you are using an IDE.

Application Server Performance with the IBM JVM

If your application server uses the IBM JVM, for optimal performance, make the following changes to the application server startup file, according to your platform:

Weblogic

  1. Open startWebLogic.cmd (or startWebLogic.sh), and edit the JAVA_OPTIONS variable as follows:
    • For a system other than Windows, immediately before the line SAVE_JAVA_OPTIONS=$JAVA_OPTIONS, insert the following line:
      
          JAVA_OPTIONS=$JAVA_OPTIONS -Dprogram.name=$PROGNAME -Dfilenet.pe.peorb.pool.min=2 -Dfilenet.pe.peorb.pool.max=5
      
    • For Windows, immediately before the line set SAVE_JAVA_OPTIONS=%JAVA_OPTIONS%, insert the following line:
      
          set JAVA_OPTIONS=%JAVA_OPTIONS% -Dprogram.name=%PROGNAME% -Dfilenet.pe.peorb.pool.min=2  -Dfilenet.pe.peorb.pool.max=5
      
  2. Stop and then restart WebLogic Server.

FIPS 140-2 Cryptographic Standards

The US Federal Information Processing Standard 140-2 (FIPS 140-2) is a cryptographic function validation program. It defines security standards for cryptographic modules that are used in software. The workflow system uses the FIPS 140-2 approved cryptographic provider IBMJCEFIPS (certificate 376) for cryptography.

FIPS 140-2 mode is enabled by default when the Content Platform Engine server and other workflow system components, such as Component Integrator, are installed. However, the following scenarios require that you manually enable FIPS:

  • You want to use FIPS 140-2 for your custom application.
  • A Component Manager instance is modified to use a different Java Runtime Environment (JRE) than the JRE that is installed by the Process Engine client installer.
  • An application server that hosts Process Orchestration, Process Engine REST Service, or Process Engine Web Service servlets that use a non-IBM JRE.

Enabling FIPS 140-2 Mode

To manually enable FIPS 140-2 mode, you must specify as the first provider, a FIPS-certified security provider. For clients that use an IBM JRE, you must use IBM Java Secure Sockets Extension (JSSE). The IBM JSSE contains the ibmjcefips.jar file. Add the following to the jre\lib\java.security file:


    security.provider.1=com.ibm.crypto.fips.provider.IBMJCEFIPS
    ssl.SocketFactory.provider=com.ibm.jsse2.SSLSocketFactoryImpl
    ssl.ServerSocketFactory.provider= com.ibm.jsse2.SSLServerSocketFactoryImpl

For more information, see IBMJSSE2 Provider Reference Guide.