Hello,
I am trying to build a JIRA 7.2.2 plugin that uses Active Objects to store some json and other data. Before getting to save operations though, I get this error:
[INFO] [talledLocalContainer] com.atlassian.activeobjects.internal.ActiveObjectsInitException: bundle [com.seguira.jira.
seguira-test-automation-for-jira-plugin]
[INFO] [talledLocalContainer] at com.atlassian.activeobjects.osgi.TenantAwareActiveObjects$1$1$1.call(TenantAwareActiv
eObjects.java:95)
[INFO] [talledLocalContainer] at com.atlassian.activeobjects.osgi.TenantAwareActiveObjects$1$1$1.call(TenantAwareActiv
eObjects.java:86)
[INFO] [talledLocalContainer] at com.atlassian.sal.core.executor.ThreadLocalDelegateCallable.call(ThreadLocalDelegateC
allable.java:38)
[INFO] [talledLocalContainer] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[INFO] [talledLocalContainer] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[INFO] [talledLocalContainer] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[INFO] [talledLocalContainer] at java.lang.Thread.run(Thread.java:745)
[INFO] [talledLocalContainer] Caused by: java.lang.RuntimeException: Circular dependency detected
[INFO] [talledLocalContainer] at net.java.ao.schema.SchemaGenerator.parseDDL(SchemaGenerator.java:143)
[INFO] [talledLocalContainer] at net.java.ao.schema.SchemaGenerator.generateImpl(SchemaGenerator.java:106)
[INFO] [talledLocalContainer] at net.java.ao.schema.SchemaGenerator.migrate(SchemaGenerator.java:84)
[INFO] [talledLocalContainer] at net.java.ao.EntityManager.migrate(EntityManager.java:128)
[INFO] [talledLocalContainer] at com.atlassian.activeobjects.internal.EntityManagedActiveObjects.migrate(EntityManaged
ActiveObjects.java:51)
[INFO] [talledLocalContainer] at com.atlassian.activeobjects.internal.AbstractActiveObjectsFactory$1.doInTransaction(A
bstractActiveObjectsFactory.java:72)
[INFO] [talledLocalContainer] at com.atlassian.sal.core.transaction.HostContextTransactionTemplate$1.doInTransaction(H
ostContextTransactionTemplate.java:21)
[INFO] [talledLocalContainer] at com.atlassian.jira.DefaultHostContextAccessor.doInTransaction(DefaultHostContextAcces
sor.java:34)
[INFO] [talledLocalContainer] … 2 filtered
[INFO] [talledLocalContainer] at java.lang.reflect.Method.invoke(Method.java:498)
[INFO] [talledLocalContainer] at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextCl
assLoaderSettingInvocationHandler.java:26)
[INFO] [talledLocalContainer] at com.sun.proxy.$Proxy125.doInTransaction(Unknown Source)
[INFO] [talledLocalContainer] … 2 filtered
[INFO] [talledLocalContainer] at java.lang.reflect.Method.invoke(Method.java:498)
[INFO] [talledLocalContainer] at com.atlassian.plugin.osgi.bridge.external.HostComponentFactoryBean$DynamicServiceInvo
cationHandler.invoke(HostComponentFactoryBean.java:136)
[INFO] [talledLocalContainer] at com.sun.proxy.$Proxy125.doInTransaction(Unknown Source)
[INFO] [talledLocalContainer] at com.atlassian.sal.core.transaction.HostContextTransactionTemplate.execute(HostContext
TransactionTemplate.java:18)
[INFO] [talledLocalContainer] … 2 filtered
[INFO] [talledLocalContainer] at java.lang.reflect.Method.invoke(Method.java:498)
[INFO] [talledLocalContainer] at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java
:317)
[INFO] [talledLocalContainer] at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doI
nvoke(ServiceInvoker.java:56)
[INFO] [talledLocalContainer] at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.inv
oke(ServiceInvoker.java:60)
[INFO] [talledLocalContainer] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethod
Invocation.java:179)
[INFO] [talledLocalContainer] at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(Delegatin
gIntroductionInterceptor.java:133)
[INFO] [talledLocalContainer] at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIn
troductionInterceptor.java:121)
[INFO] [talledLocalContainer] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethod
Invocation.java:179)
[INFO] [talledLocalContainer] at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeU
nprivileged(ServiceTCCLInterceptor.java:70)
[INFO] [talledLocalContainer] at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(
ServiceTCCLInterceptor.java:53)
[INFO] [talledLocalContainer] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethod
Invocation.java:179)
[INFO] [talledLocalContainer] at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke
(LocalBundleContextAdvice.java:57)
[INFO] [talledLocalContainer] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethod
Invocation.java:179)
[INFO] [talledLocalContainer] at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(Delegatin
gIntroductionInterceptor.java:133)
[INFO] [talledLocalContainer] at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIn
troductionInterceptor.java:121)
[INFO] [talledLocalContainer] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethod
Invocation.java:179)
[INFO] [talledLocalContainer] at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:2
07)
[INFO] [talledLocalContainer] at com.sun.proxy.$Proxy870.execute(Unknown Source)
[INFO] [talledLocalContainer] at com.atlassian.activeobjects.internal.AbstractActiveObjectsFactory.create(AbstractActi
veObjectsFactory.java:72)
[INFO] [talledLocalContainer] at com.atlassian.activeobjects.internal.DelegatingActiveObjectsFactory.create(Delegating
ActiveObjectsFactory.java:32)
[INFO] [talledLocalContainer] at com.atlassian.activeobjects.osgi.TenantAwareActiveObjects$1$1$1.call(TenantAwareActiv
eObjects.java:91)
[INFO] [talledLocalContainer] … 6 more
Here are the relevant pom.xml blocks, note i have only pasted relevant blocks, they are not under the same tag in my actual file:
<properties>
<jira.version>7.2.2</jira.version>
<amps.version>6.2.11</amps.version>
<plugin.testrunner.version>1.2.3</plugin.testrunner.version>
<!-- TestKit version 6.x for JIRA 6.x -->
<testkit.version>6.3.11</testkit.version>
</properties>
<dependency>
<groupId>com.atlassian.activeobjects</groupId>
<artifactId>activeobjects-plugin</artifactId>
<version>1.2.3</version>
<scope>provided</scope>
</dependency>
atlassian-plugin.xml
<ao key="ao-module">
<description>The module configuring the Active Objects service used by this plugin</description>
<entity>com.seguira.jira.plugin.ta.db.TestCase</entity>
<entity>com.seguira.jira.plugin.ta.db.TestGraph</entity>
</ao>
<component-import key="applicationProperties," interface="com.atlassian.jira.config.properties.ApplicationProperties"/>
<component-import key="ao" name="Active Objects components" interface="com.atlassian.activeobjects.external.ActiveObjects">
<description>Access to the Active Objects service</description>
</component-import>
<component key="txnAnnotationProcessor" class="com.atlassian.activeobjects.external.TransactionalAnnotationProcessor"/>
<component key="graphService" class="com.seguira.jira.plugin.ta.service.GraphServiceImpl">
<description>Provides graph services.</description>
<interface>com.seguira.jira.plugin.ta.service.GraphService</interface>
</component>
GraphServiceImpl.java:
public class GraphServiceImpl implements GraphService{
private final ActiveObjects ao;
private final Logger LOGGER = Logger.getLogger(GraphServiceImpl.class.getName());
public GraphServiceImpl(ActiveObjects ao) {
this.ao = ao;
}
And finally, the REST class:
@Path(“/message”)
public class GraphRest {
private final GraphService graphService;
public GraphRest(GraphService graphService)
{
this.graphService = graphService;
}
I appreciate the help, thanks!