Uploaded image for project: 'camunda BPM'
  1. camunda BPM
  2. CAM-13969

Documentation - dmnFeelCustomFunctionProviders property does not work

    • Icon: Bug Report Bug Report
    • Resolution: Unresolved
    • Icon: L3 - Default L3 - Default
    • None
    • 7.13.0
    • documentation, engine

      As per https://docs.camunda.org/manual/7.14/reference/deployment-descriptors/tags/process-engine/#dmnFeelCustomFunctionProviders, you can define dmnFeelCustomFunctionProviders configuration of type list in process engine configuration. However, after it is defined in bpm-platform.xml, it throws an error.

      bpm-platform.xml

       <property name="dmnFeelCustomFunctionProviders">CustomFunctionProvider</property>
      

      Error

      23-Sep-2021 16:37:08.194 SEVERE [main] org.apache.catalina.startup.Catalina.start The required Server component failed to start so Tomcat is unable to start.
      	org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
      		at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
      		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
      		at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
      		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      		at java.base/java.lang.reflect.Method.invoke(Method.java:567)
      		at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
      		at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
      	Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-08043 Exception while performing 'deploy BPM platform' => 'Start process engine default': ENGINE-08039 Cannot set property 'dmnFeelCustomFunctionProviders' on instance of class 'org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration'
      		at org.camunda.bpm.container.impl.ContainerIntegrationLogger.exceptionWhilePerformingOperationStep(ContainerIntegrationLogger.java:316)
      		at org.camunda.bpm.container.impl.spi.DeploymentOperation.execute(DeploymentOperation.java:136)
      		at org.camunda.bpm.container.impl.jmx.MBeanServiceContainer.executeDeploymentOperation(MBeanServiceContainer.java:160)
      		at org.camunda.bpm.container.impl.spi.DeploymentOperation$DeploymentOperationBuilder.execute(DeploymentOperation.java:216)
      		at org.camunda.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap.deployBpmPlatform(TomcatBpmPlatformBootstrap.java:83)
      		at org.camunda.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap.lifecycleEvent(TomcatBpmPlatformBootstrap.java:61)
      		at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
      		at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
      		at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
      		at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:923)
      		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
      		... 7 more
      	Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-08039 Cannot set property 'dmnFeelCustomFunctionProviders' on instance of class 'org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration'
      		at org.camunda.bpm.container.impl.ContainerIntegrationLogger.cannotSetValueForProperty(ContainerIntegrationLogger.java:285)
      		at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperty(PropertyHelper.java:91)
      		at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperties(PropertyHelper.java:110)
      		at org.camunda.bpm.container.impl.deployment.StartProcessEngineStep.performOperationStep(StartProcessEngineStep.java:101)
      		at org.camunda.bpm.container.impl.spi.DeploymentOperation.execute(DeploymentOperation.java:120)
      		... 16 more
      	Caused by: java.lang.IllegalArgumentException: argument type mismatch
      		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      		at java.base/java.lang.reflect.Method.invoke(Method.java:567)
      		at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperty(PropertyHelper.java:88)
      

      We should change the description of the property in https://docs.camunda.org/manual/7.14/reference/deployment-descriptors/tags/process-engine/#dmnFeelCustomFunctionProviders to something like:

      Define a list of instances of FeelCustomFunctionProvider. You can only set this property programmatically. Read more about it in the user guide.
      

      Also in https://docs.camunda.org/manual/7.14/user-guide/dmn-engine/feel/custom-functions/#process-engine, we should may be give an example code to register this property via plugin.

      Note
      Registering this property via Plugin works.

        This is the controller panel for Smart Panels app

            [CAM-13969] Documentation - dmnFeelCustomFunctionProviders property does not work

            Garima Yadav created issue -
            Garima Yadav made changes -
            Description Original: As per https://docs.camunda.org/manual/7.14/reference/deployment-descriptors/tags/process-engine/#dmnFeelCustomFunctionProviders, you can define {{dmnFeelCustomFunctionProviders}} configuration of type list in process engine configuration. However, we define it in bpm-platform.xml, it throws an error.
            {code}
            23-Sep-2021 16:37:08.194 SEVERE [main] org.apache.catalina.startup.Catalina.start The required Server component failed to start so Tomcat is unable to start.
            org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
            at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
            at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:567)
            at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
            at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
            Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-08043 Exception while performing 'deploy BPM platform' => 'Start process engine default': ENGINE-08039 Cannot set property 'dmnFeelCustomFunctionProviders' on instance of class 'org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration'
            at org.camunda.bpm.container.impl.ContainerIntegrationLogger.exceptionWhilePerformingOperationStep(ContainerIntegrationLogger.java:316)
            at org.camunda.bpm.container.impl.spi.DeploymentOperation.execute(DeploymentOperation.java:136)
            at org.camunda.bpm.container.impl.jmx.MBeanServiceContainer.executeDeploymentOperation(MBeanServiceContainer.java:160)
            at org.camunda.bpm.container.impl.spi.DeploymentOperation$DeploymentOperationBuilder.execute(DeploymentOperation.java:216)
            at org.camunda.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap.deployBpmPlatform(TomcatBpmPlatformBootstrap.java:83)
            at org.camunda.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap.lifecycleEvent(TomcatBpmPlatformBootstrap.java:61)
            at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
            at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
            at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
            at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:923)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            ... 7 more
            Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-08039 Cannot set property 'dmnFeelCustomFunctionProviders' on instance of class 'org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration'
            at org.camunda.bpm.container.impl.ContainerIntegrationLogger.cannotSetValueForProperty(ContainerIntegrationLogger.java:285)
            at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperty(PropertyHelper.java:91)
            at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperties(PropertyHelper.java:110)
            at org.camunda.bpm.container.impl.deployment.StartProcessEngineStep.performOperationStep(StartProcessEngineStep.java:101)
            at org.camunda.bpm.container.impl.spi.DeploymentOperation.execute(DeploymentOperation.java:120)
            ... 16 more
            Caused by: java.lang.IllegalArgumentException: argument type mismatch
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:567)
            at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperty(PropertyHelper.java:88)
            {code}

            We should remove {{dmnFeelCustomFunctionProviders}} property from this page as this configuration does not work out of the box.
            Also in https://docs.camunda.org/manual/7.14/user-guide/dmn-engine/feel/custom-functions/#process-engine, we should may be give an example code to register this property via plugin.
            New: As per https://docs.camunda.org/manual/7.14/reference/deployment-descriptors/tags/process-engine/#dmnFeelCustomFunctionProviders, you can define {{dmnFeelCustomFunctionProviders}} configuration of type list in process engine configuration. However, after it is defined in bpm-platform.xml, it throws an error.

            *bpm-platform.xml*
            {code} <property name="dmnFeelCustomFunctionProviders">CustomFunctionProvider</property>
            {code}

            *Error*
            {code}
            23-Sep-2021 16:37:08.194 SEVERE [main] org.apache.catalina.startup.Catalina.start The required Server component failed to start so Tomcat is unable to start.
            org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
            at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
            at org.apache.catalina.startup.Catalina.start(Catalina.java:772)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:567)
            at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)
            at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:473)
            Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-08043 Exception while performing 'deploy BPM platform' => 'Start process engine default': ENGINE-08039 Cannot set property 'dmnFeelCustomFunctionProviders' on instance of class 'org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration'
            at org.camunda.bpm.container.impl.ContainerIntegrationLogger.exceptionWhilePerformingOperationStep(ContainerIntegrationLogger.java:316)
            at org.camunda.bpm.container.impl.spi.DeploymentOperation.execute(DeploymentOperation.java:136)
            at org.camunda.bpm.container.impl.jmx.MBeanServiceContainer.executeDeploymentOperation(MBeanServiceContainer.java:160)
            at org.camunda.bpm.container.impl.spi.DeploymentOperation$DeploymentOperationBuilder.execute(DeploymentOperation.java:216)
            at org.camunda.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap.deployBpmPlatform(TomcatBpmPlatformBootstrap.java:83)
            at org.camunda.bpm.container.impl.tomcat.TomcatBpmPlatformBootstrap.lifecycleEvent(TomcatBpmPlatformBootstrap.java:61)
            at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
            at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)
            at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)
            at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:923)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
            ... 7 more
            Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-08039 Cannot set property 'dmnFeelCustomFunctionProviders' on instance of class 'org.camunda.bpm.engine.impl.cfg.StandaloneProcessEngineConfiguration'
            at org.camunda.bpm.container.impl.ContainerIntegrationLogger.cannotSetValueForProperty(ContainerIntegrationLogger.java:285)
            at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperty(PropertyHelper.java:91)
            at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperties(PropertyHelper.java:110)
            at org.camunda.bpm.container.impl.deployment.StartProcessEngineStep.performOperationStep(StartProcessEngineStep.java:101)
            at org.camunda.bpm.container.impl.spi.DeploymentOperation.execute(DeploymentOperation.java:120)
            ... 16 more
            Caused by: java.lang.IllegalArgumentException: argument type mismatch
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:567)
            at org.camunda.bpm.container.impl.metadata.PropertyHelper.applyProperty(PropertyHelper.java:88)
            {code}

            We should remove {{dmnFeelCustomFunctionProviders}} property from this page as this configuration does not work out of the box.
            Also in https://docs.camunda.org/manual/7.14/user-guide/dmn-engine/feel/custom-functions/#process-engine, we should may be give an example code to register this property via plugin.

            *Note*
            Registering this property via [Plugin|https://docs.camunda.org/manual/7.14/user-guide/process-engine/process-engine-plugins/] works.
            Garima Yadav made changes -
            Mentioned Roles
            Garima Yadav made changes -
            Mentioned Groups
            Garima Yadav made changes -
            Component/s New: documentation [ 11657 ]
            Emma Pollum made changes -
            Assignee New: Emma Pollum [ emma.pollum ]
            Garima Yadav made changes -
            Mentioned Roles
            Garima Yadav made changes -
            Mentioned Groups
            Garima Yadav made changes -
            Mentioned Roles
            Garima Yadav made changes -
            Mentioned Groups

              emma.pollum Emma Pollum
              garima.yadav Garima Yadav
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: