Error during integration with Automation for Jira

Hello everyone,

I started a new integration (third party integration) with automation for Jira.
However, I notice an error that occurs with all the rules defined on automation for Jira.
On my app, I have included the following dependencies on my pom.xml

<dependency>
    <groupId>com.atlassian.plugin.automation</groupId>
    <artifactId>automation-thirdparty-api</artifactId>
    <version>3.0.0</version>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>com.atlassian.plugin.automation</groupId>
    <artifactId>automation-config-api</artifactId>
    <version>3.0.0</version>
    <scope>provided</scope>
</dependency>

After that, we created a new class which will implement the interface AutomationRuleComponent (com.codebarrel.automation.api.thirdparty).

However, if I have a rule defined on Automation for Jira, install my app, and reinstall the automation for Jira I have the following error when I execute the rule defined:

com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NoClassDefFoundError: com/codebarrel/automation/api/thirdparty/AutomationRuleComponent
	at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:149)
	at com.atlassian.util.concurrent.LazyReference.get(LazyReference.java:112)
	at com.atlassian.util.concurrent.ResettableLazyReference.get(ResettableLazyReference.java:92)
	at com.codebarrel.jira.plugin.automation.template.JiraTemplateRendererContextProviderFactory.getContextProviders(JiraTemplateRendererContextProviderFactory.java:98)
	at com.codebarrel.automation.rulecomponent.jira.common.IssueInputSubstitutionRenderer.compile(IssueInputSubstitutionRenderer.java:154)
	at com.codebarrel.automation.rulecomponent.jira.action.assign.AssignIssueActionExecutor.executeWithIssues(AssignIssueActionExecutor.java:99)
	at com.codebarrel.automation.api.component.executor.IssueRequiredExecutor.execute(IssueRequiredExecutor.java:34)
	at com.codebarrel.automation.api.component.executor.IssueRequiredExecutor.execute(IssueRequiredExecutor.java:17)
	at com.codebarrel.automation.api.service.ComponentChainImpl.doExecute(ComponentChainImpl.java:75)
	at com.codebarrel.automation.api.service.SingleRuleExecutorServiceImpl.execute(SingleRuleExecutorServiceImpl.java:224)
	at com.codebarrel.jira.plugin.automation.queue.JiraAutomationQueueExecutor.lambda$null$3(JiraAutomationQueueExecutor.java:268)
	at com.codebarrel.jira.plugin.automation.service.execution.JiraThreadLocalExecutor.lambda$executeAs$0(JiraThreadLocalExecutor.java:37)
	at com.codebarrel.jira.plugin.automation.service.execution.JiraThreadLocalExecutor.executeAsWithResult(JiraThreadLocalExecutor.java:67)
	at com.codebarrel.jira.plugin.automation.service.execution.JiraThreadLocalExecutor.executeAsWithResult(JiraThreadLocalExecutor.java:53)
	at com.codebarrel.jira.plugin.automation.service.execution.JiraThreadLocalExecutor.executeAs(JiraThreadLocalExecutor.java:36)
	at com.codebarrel.jira.plugin.automation.queue.JiraAutomationQueueExecutor.lambda$processClaimedItem$4(JiraAutomationQueueExecutor.java:268)
	at com.atlassian.jira.util.concurrent.BoundedExecutor$1.run(BoundedExecutor.java:50)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoClassDefFoundError: com/codebarrel/automation/api/thirdparty/AutomationRuleComponent
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.defineClass(BundleWiringImpl.java:2410)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.findClass(BundleWiringImpl.java:2194)
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1607)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1927)
	at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:978)
	at com.atlassian.plugin.osgi.util.BundleClassLoaderAccessor.loadClass(BundleClassLoaderAccessor.java:43)
	at com.atlassian.plugin.osgi.factory.OsgiPluginInstalledHelper.loadClass(OsgiPluginInstalledHelper.java:52)
	at com.atlassian.plugin.osgi.factory.OsgiPlugin.loadClass(OsgiPlugin.java:209)
	at com.atlassian.plugin.module.ClassPrefixModuleFactory.getModuleClass(ClassPrefixModuleFactory.java:44)
	at com.atlassian.plugin.module.ClassPrefixModuleFactory.createModule(ClassPrefixModuleFactory.java:27)
	at com.atlassian.plugin.module.PrefixDelegatingModuleFactory.createModule(PrefixDelegatingModuleFactory.java:88)
	... 2 filtered
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)
	at com.sun.proxy.$Proxy76.createModule(Unknown Source)
	... 3 filtered
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
	at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)
	at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
	at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)
	at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
	at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:136)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:185)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212)
	at com.sun.proxy.$Proxy5502.createModule(Unknown Source)
	at com.codebarrel.jira.plugin.automation.thirdparty.ThirdPartyComponentModuleDescriptor.getModule(ThirdPartyComponentModuleDescriptor.java:51)
	at com.codebarrel.jira.plugin.automation.template.JiraTemplateRendererContextProviderFactory.toTemplateRenderContextProvider(JiraTemplateRendererContextProviderFactory.java:76)
	at com.codebarrel.jira.plugin.automation.template.JiraTemplateRendererContextProviderFactory.access$100(JiraTemplateRendererContextProviderFactory.java:35)
	at com.codebarrel.jira.plugin.automation.template.JiraTemplateRendererContextProviderFactory$1.lambda$create$0(JiraTemplateRendererContextProviderFactory.java:58)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
	at com.codebarrel.jira.plugin.automation.template.JiraTemplateRendererContextProviderFactory$1.create(JiraTemplateRendererContextProviderFactory.java:61)
	at com.codebarrel.jira.plugin.automation.template.JiraTemplateRendererContextProviderFactory$1.create(JiraTemplateRendererContextProviderFactory.java:47)
	at com.atlassian.util.concurrent.ResettableLazyReference$InternalReference.create(ResettableLazyReference.java:179)
	at com.atlassian.util.concurrent.LazyReference$Sync.run(LazyReference.java:325)
	at com.atlassian.util.concurrent.LazyReference.getInterruptibly(LazyReference.java:143)
	... 19 more
Caused by: java.lang.ClassNotFoundException: com.codebarrel.automation.api.thirdparty.AutomationRuleComponent not found by com.xpandit.plugins.jiraxporter [292]
	at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1639)
	at org.apache.felix.framework.BundleWiringImpl.access$200(BundleWiringImpl.java:80)
	at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2053)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	... 77 more

Can anyone help me understand how can I fix it?
Please, be aware, I can fix this error if I reinstall my app again after installed Automation for Jira.

Your help is really appreciated.
Best regards

Hi,

Thanks for reaching out.

You shouldn’t need to re-install automation for jira. Does it work if you just install your app?

Cheers,
Scott.