Using the Javaop operator
The operator spl.utility.JavaOp invokes
an operator that is implemented in Java™ by
using the Java™ Operator API.
It is a general-purpose callout to Java™ from
SPL.The mechanism to use Java™ in
an SPL application is instead by a Java™ primitive
operator.
A Java™ primitive operator
has many benefits over the JavaOp operator, namely:
- The ability to specify syntactic and semantic checks for instances of the Java™ code when used in a stream application. For example, a missing parameter can be detected only at run time when you use JavaOp. Whereas, a Java™ primitive can find the missing parameter at SPL compile time.
- The Java™ primitive operator's
name implies its function. For example, invocation of a Java™ primitive named
HttpPost
makes for more readable SPL code than invocation of JavaOp with a className parameter set tocom.ibm.streams.operator.samples.sinks.HttpPOST
, even though they both use the same Java™ code. - The Java™ primitive operator might have an icon specific to its function for viewing graphical representations of the application.
However, spl.utility.JavaOp can be used as a development or prototyping aid to help quickly develop operators with the Java™ Operator API. You can understand the required parameters and libraries before you create a Java™ primitive operator.