Atlassian Jira SDK on M1 MacOS

Hi,

I am trying to get the Atlassian SDK for Jira on my Mac. I have followed instructions from here:

  • installed Java (tried OpenJDK 11 and 23 and Oracle JDK 23)
  • configured JAVA_HOME
  • ‘java -version’ shows the proper version
  • installed the Atlassian Jira SDK with homebrew
  • created the plugin with ‘atlas-create-jira-plugin’

But then when I run ‘atlas-run’ I always get the following output:

[INFO] [talledLocalContainer] 2024-12-13 12:25:07,050+0100 main INFO      [c.a.jira.upgrade.PluginUpgradeListener] [plugin-upgrade-listener] Created
[INFO] [talledLocalContainer] 2024-12-13 12:25:07,096+0100 main WARN      [c.a.jira.startup.DatabaseLauncher] 
[INFO] [talledLocalContainer]     
[INFO] [talledLocalContainer]     **************************************************************************************
[INFO] [talledLocalContainer]     h2 is an in-memory database, and susceptible to corruption when abnormally terminated.
[INFO] [talledLocalContainer]     DO NOT USE IN PRODUCTION, please switch to a regular database.
[INFO] [talledLocalContainer]     **************************************************************************************
[INFO] [talledLocalContainer]     
[INFO] [talledLocalContainer] 2024-12-13 12:25:07,097+0100 main INFO      [c.a.jira.startup.DatabaseLauncher] Database transactions enabled: true
[INFO] [talledLocalContainer] 2024-12-13 12:25:07,097+0100 main INFO      [c.a.jira.startup.DatabaseLauncher] Using JIRA's default for database transaction isolation level: 2
[INFO] [talledLocalContainer] 2024-12-13 12:25:07,098+0100 main INFO      [c.a.jira.startup.JiraStartupLogger] 
[INFO] [talledLocalContainer]     
[INFO] [talledLocalContainer]     Database configuration OK
[INFO] [talledLocalContainer]     
[INFO] [talledLocalContainer]     ___ Database Configuration _________________
[INFO] [talledLocalContainer]     
[INFO] [talledLocalContainer]          Loading entityengine.xml from                 : file:/Users/IPD8FE/Code/Local/tandr/myPlugin/target/container/tomcat9x/cargo-jira-home/webapps/jira/WEB-INF/classes/entityengine.xml
[INFO] [talledLocalContainer]          Entity model field type name                  : h2
[INFO] [talledLocalContainer]          Entity model schema name                      : PUBLIC
[INFO] [talledLocalContainer]          Database Version                              : H2 - 2.1.214 (2022-06-13)
[INFO] [talledLocalContainer]          Database Driver                               : H2 JDBC Driver - 2.1.214 (2022-06-13)
[INFO] [talledLocalContainer]          Database URL                                  : jdbc:h2:retry:/Users/IPD8FE/Code/Local/tandr/myPlugin/target/jira/home/database/h2db
[INFO] [talledLocalContainer]          Database JNDI config                          : h2 java:comp/env/jdbc/JiraDS
[INFO] [talledLocalContainer]     
[INFO] [talledLocalContainer] 2024-12-13 12:25:07,131+0100 main INFO      [c.a.jira.startup.JiraStartupLogger] 
[INFO] [talledLocalContainer]     
[INFO] [talledLocalContainer]     ___ Starting the JIRA Plugin System _________________
[INFO] [talledLocalContainer]     
[INFO] [talledLocalContainer] ERROR: Bundle org.eclipse.gemini.blueprint.extender [12] Error starting file:/Users/IPD8FE/Code/Local/tandr/myPlugin/target/container/tomcat9x/cargo-jira-home/webapps/jira/WEB-INF/osgi-framework-bundles/gemini-blueprint-extender-3.0.0.M01.jar (org.osgi.framework.BundleException: Activator start error in bundle org.eclipse.gemini.blueprint.extender [12].)
[INFO] [talledLocalContainer] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationContextCreator' defined in OSGi resource[bundle://08076208-fe65-47ca-ac59-79d9b199b603_13.0:0/META-INF/spring/extender/spring-event-bridge.xml|bnd.id=12|bnd.sym=org.eclipse.gemini.blueprint.extender]: Cannot create inner bean 'osgi:list#6fc52f0' of type [org.eclipse.gemini.blueprint.util.BeanReferenceFactoryBean] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationContextPreProcessors#org.eclipse.gemini.blueprint.service.importer.support.OsgiServiceCollectionProxyFactoryBean#0': Invocation of init method failed; nested exception is java.lang.ClassFormatError: Weaving hook failed.
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:389)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:127)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:707)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:198)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1372)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1222)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:582)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:955)
[INFO] [talledLocalContainer] 	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:921)
[INFO] [talledLocalContainer] 	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583)
[INFO] [talledLocalContainer] 	at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.access$301(AbstractDelegatedExecutionApplicationContext.java:57)
[INFO] [talledLocalContainer] 	at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$1.run(AbstractDelegatedExecutionApplicationContext.java:165)
[INFO] [talledLocalContainer] 	at org.eclipse.gemini.blueprint.util.internal.PrivilegedUtils.executeWithCustomTCCL(PrivilegedUtils.java:85)
[INFO] [talledLocalContainer] 	at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.normalRefresh(AbstractDelegatedExecutionApplicationContext.java:161)
[INFO] [talledLocalContainer] 	at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext$NoDependenciesWaitRefreshExecutor.refresh(AbstractDelegatedExecutionApplicationContext.java:75)
[INFO] [talledLocalContainer] 	at org.eclipse.gemini.blueprint.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:154)
[INFO] [talledLocalContainer] 	at org.eclipse.gemini.blueprint.extender.internal.support.ExtenderConfiguration.start(ExtenderConfiguration.java:164)
[INFO] [talledLocalContainer] 	at org.eclipse.gemini.blueprint.extender.internal.boot.ChainActivator.start(ChainActivator.java:93)
[INFO] [talledLocalContainer] 	at org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:849)
[INFO] [talledLocalContainer] 	at org.apache.felix.framework.Felix.activateBundle(Felix.java:2429)
[INFO] [talledLocalContainer] 	at org.apache.felix.framework.Felix.startBundle(Felix.java:2335)
[INFO] [talledLocalContainer] 	at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1566)
[INFO] [talledLocalContainer] 	at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:297)
[INFO] [talledLocalContainer] 	at java.base/java.lang.Thread.run(Thread.java:1575)
[INFO] [talledLocalContainer] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'applicationContextPreProcessors#org.eclipse.gemini.blueprint.service.importer.support.OsgiServiceCollectionProxyFactoryBean#0': Invocation of init method failed; nested exception is java.lang.ClassFormatError: Weaving hook failed.
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620)
[INFO] [talledLocalContainer] 	at org.springframework.beans.factory.support.AbstractAutowireCapable

Here is ‘atlas-version’ output:

ATLAS Version:    9.1.1
ATLAS Home:       /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec
ATLAS Scripts:    /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec/bin
ATLAS Maven Home: /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec/apache-maven-3.9.8
AMPS Version:     9.1.1
--------
Executing: /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec/apache-maven-3.9.8/bin/mvn --version -gs /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec/apache-maven-3.9.8/conf/settings.xml
Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
Maven home: /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec/apache-maven-3.9.8
Java version: 23.0.1, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk-23.jdk/Contents/Home
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "15.2", arch: "aarch64", family: "mac"

Now I really don’t know what to do anymore

1 Like

I’m slightly biased, but I can highly recommend using DCDX for local DC app development

1 Like

Thanks!
Before I try it out, can I use it to continue development of existing plugin (developed with Atlassian SDK)? I am not developing the new plugin from scratch.
Doucumentation (readme) is relatively sparse :slight_smile:
Daniel

If you run atlas-create-jira-plugin with this AMPS version (I’m running the same) it gives you a skeleton project with jira.version = 9.12.2 by default. Java 23 isn’t supported in that version (Supported platforms | Administering Jira applications Data Center 9.12 | Atlassian Documentation).

Just tested and everything comes up without any problems when i run atlas-run.

$ atlas-version

ATLAS Version:    9.1.1
ATLAS Home:       /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec
ATLAS Scripts:    /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec/bin
ATLAS Maven Home: /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec/apache-maven-3.9.8
AMPS Version:     9.1.1
--------
Executing: /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec/apache-maven-3.9.8/bin/mvn --version -gs /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec/apache-maven-3.9.8/conf/settings.xml
Apache Maven 3.9.8 (36645f6c9b5079805ea5009217e36f2cffd34256)
Maven home: /opt/homebrew/Cellar/atlassian-plugin-sdk/9.1.1/libexec/apache-maven-3.9.8
Java version: 11.0.14, vendor: Azul Systems, Inc., runtime: /Users/tied/.sdkman/candidates/java/11.0.14-zulu/zulu-11.jdk/Contents/Home
Default locale: en_DE, platform encoding: UTF-8
OS name: "mac os x", version: "15.1.1", arch: "aarch64", family: "mac"

If you try & error always delete the target directory.

Thanks that worked!
I am using Oracle Java 17 (since cask for Oracle Java 11 is not available) and it works now.

Special thanks for the tip for deleting the ‘target’ directory. It has been a long time since I worked with Java and I completely forgot about that.

Daniel

1 Like