Differences from the C++ operator models
A number of elements are not allowed in Java™ operator models, but they can appear in C++ operator models.
context element, the following
subelements are not allowed within a Java™ operator
model: customOutputFunctionsprovidesSingleThreadedContextincrementalCompilationStrategyallowCustomLogic
parameter element, the following
subelements are not allowed within a Java™ operator
model: rewriteAllowedportScope
rewriteAllowed element for Java™ operator parameters is always true, and
the port scope does not apply as the parameter values are attribute
free.The expressionMode element
can take only one of three attribute values: Attribute, AttributeFree,
or CustomLiteral.
classNameclassLibrarygeneratedVmArg
javaop is
reserved and cannot be used in a Java™ operator
model. However, vmArg can be used as a parameter
in an invocation of a Java™ primitive.
The values that are specified for it are treated as extensions to
the list of JVM arguments that are specified as part of the executionSettings element
in the operator model. Since vmArg is not allowed
as a parameter name in a Java™ operator
model, it correctly gets rejected as reserved. In particular, these
values will be appended after the vmArg values listed
in the execution settings of the Java™ primitive
operator. This method allows augmenting the default JVM settings that
are specified in the operator model with the specific needs of the
individual instances of the Java™ primitive
operator.Under the inputPortOpenSet element,
the following subelements are not allowed within a Java™ operator model: tupleMutationAllowed. The
tuple mutation configuration for the input and output ports do not
apply to Java™ operators, as
the calls between fused Java™ operators
do not use the same physical memory location for the tuple that is
being passed.
outputPortOpenSet element,
the following subelements are not allowed within a Java™ operator model: tupleMutationAllowedautoAssignmentcompleteAssignmentrewriteAllowedexpressionModeoutputFunctionsoutputAssignmentPortScope
Under the managedLibrary element,
the following subelements are not allowed in a Java™ operator model: lib and includePath.
These elements are specific to C++ libraries. The Java™ operators support only the libPath and
the command elements. The library path is used to
specify the path to the .jar files or the directories
that contain the class files. If
multiple library paths are specified, then the search order for .jar files
and classes is the same order in which the paths are specified in
the operator model. The command element is used to
rely on an external script to fetch the library paths, and operates
the same way as the one used for the C++ operator models.