Issues of creating a confluence plugin

Hi,

I am running Windows 10 and WSL2 (Windows Subsystem for Linux) with Ubuntu 20.04.

The Java environment is setup:

$ java -version
java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)

$ echo $JAVA_HOME
/opt/java/jdk1.8.0_291

I have installed Atlassian SDK

$ atlas-version

ATLAS Version:    8.2.8
ATLAS Home:       /usr/share/atlassian-plugin-sdk-8.2.8
ATLAS Scripts:    /usr/share/atlassian-plugin-sdk-8.2.8/bin
ATLAS Maven Home: /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4
AMPS Version:     8.1.2
--------
Executing: /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4/bin/mvn --version -gs /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4/conf/settings.xml
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T20:33:14+02:00)
Maven home: /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4
Java version: 1.8.0_291, vendor: Oracle Corporation, runtime: /opt/java/jdk1.8.0_291/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "4.19.128-microsoft-standard", arch: "amd64", family: "unix"

I am trying to get the simplest plugin working as described here: https://developer.atlassian.com/server/framework/atlassian-sdk/create-a-confluence-hello-world-macro/

$ atlas-create-confluence-plugin
Executing: /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4/bin/mvn com.atlassian.maven.plugins:confluence-maven-plugin:8.1.2:create -gs /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4/conf/settings.xml
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- confluence-maven-plugin:8.1.2:create (default-cli) @ standalone-pom ---
[INFO] Google Analytics Tracking is enabled to collect AMPS usage statistics.
[INFO] Although no personal information is sent, you may disable tracking by adding <allowGoogleTracking>false</allowGoogleTracking> to the amps plugin configuration in your pom.xml
[INFO] Sending event to Google Analytics: AMPS:confluence - Create Plugin
[INFO] using stable product version: 6.14.0
[INFO] using stable data version: 6.14.0
Define value for groupId: : com.atlassian.tutorial
Define value for artifactId: : myConfluenceMacro
Define value for version:  1.0.0-SNAPSHOT: :
Define value for package:  com.atlassian.tutorial: :
Use OSGi Java Config:  (Y/N/y/n) N: :
Confirm properties configuration:
groupId: com.atlassian.tutorial
artifactId: myConfluenceMacro
version: 1.0.0-SNAPSHOT
package: com.atlassian.tutorial
use OSGi Java Config: N
 Y: : Y
[INFO] Generating project in Batch mode
....etc

Running clean even it should not be relevant since it is newly created

$ cd myConfluenceMacro/
$ atlas-clean
Executing: /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4/bin/mvn clean -gs /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4/conf/settings.xml
[INFO] Scanning for projects...
[INFO]
[INFO] --------------< com.atlassian.tutorial:myConfluenceMacro >--------------
[INFO] Building myConfluenceMacro 1.0.0-SNAPSHOT
[INFO] --------------------------[ atlassian-plugin ]--------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ myConfluenceMacro ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.258 s
[INFO] Finished at: 2021-05-04T19:37:49+02:00
[INFO] ------------------------------------------------------------------------

When running I get a few exceptions:

$ atlas-run
[INFO] Project POM found
[INFO] Resolving plugin info, may take a while on the first run.
[INFO] Project defined AMPS version detected: 8.1.2
Executing: /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4/bin/mvn com.atlassian.maven.plugins:confluence-maven-plugin:8.1.2:run -gs /usr/share/atlassian-plugin-sdk-8.2.8/apache-maven-3.5.4/conf/settings.xml
[INFO] Scanning for projects...
.....etc
[INFO] [talledLocalContainer] 2021-05-04 19:51:19,017 INFO [main] [atlassian.confluence.cluster.DefaultClusterConfigurationHelper] lambda$saveSetupConfigIntoSharedHome$9 Finished writing setup configuration into shared home
[INFO] [talledLocalContainer] 2021-05-04 19:51:19,740 ERROR [main] [ContainerBase.[Catalina].[localhost].[/confluence]] log Exception sending context initialized event to listener instance of class [com.atlassian.confluence.setup.ConfluenceConfigurationListener]
[INFO] [talledLocalContainer] java.lang.ExceptionInInitializerError
[INFO] [talledLocalContainer]   at com.ibm.icu.text.Collator.<clinit>(Collator.java:946)
[INFO] [talledLocalContainer]   at java.lang.Class.forName0(Native Method)
[INFO] [talledLocalContainer]   at java.lang.Class.forName(Class.java:264)
[INFO] [talledLocalContainer]   at org.h2.value.CompareMode.<clinit>(CompareMode.java:57)
[INFO] [talledLocalContainer]   at org.h2.engine.SessionRemote.<init>(SessionRemote.java:95)
[INFO] [talledLocalContainer]   at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:116)
[INFO] [talledLocalContainer]   at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:100)
[INFO] [talledLocalContainer]   at org.h2.Driver.connect(Driver.java:69)
[INFO] [talledLocalContainer]   at org.h2.server.TcpServer.initManagementDb(TcpServer.java:92)
[INFO] [talledLocalContainer]   at org.h2.server.TcpServer.start(TcpServer.java:238)
[INFO] [talledLocalContainer]   at org.h2.tools.Server.start(Server.java:484)
[INFO] [talledLocalContainer]   at com.atlassian.h2.ServerLifecycle.start(ServerLifecycle.java:83)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.core.persistence.hibernate.ConfluenceHibernateConfig.getHibernateProperties(ConfluenceHibernateConfig.java:51)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.setup.DefaultBootstrapManager.getHibernateProperties(DefaultBootstrapManager.java:660)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.setup.DefaultBootstrapManager.performPersistenceUpgrade(DefaultBootstrapManager.java:343)
[INFO] [talledLocalContainer]   at com.atlassian.config.bootstrap.DefaultAtlassianBootstrapManager.init(DefaultAtlassianBootstrapManager.java:81)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.setup.DefaultBootstrapManager.init(DefaultBootstrapManager.java:190)
[INFO] [talledLocalContainer]   at com.atlassian.config.util.BootstrapUtils.init(BootstrapUtils.java:36)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.setup.ConfluenceConfigurationListener.initialiseBootstrapContext(ConfluenceConfigurationListener.java:133)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.setup.ConfluenceConfigurationListener.contextInitialized(ConfluenceConfigurationListener.java:64)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4643)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5109)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:703)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:986)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1858)
[INFO] [talledLocalContainer]   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[INFO] [talledLocalContainer]   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[INFO] [talledLocalContainer]   at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
[INFO] [talledLocalContainer]   at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:772)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1585)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:308)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:424)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:367)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:969)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:839)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1429)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
[INFO] [talledLocalContainer]   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[INFO] [talledLocalContainer]   at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
[INFO] [talledLocalContainer]   at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:261)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:770)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.Catalina.start(Catalina.java:682)
[INFO] [talledLocalContainer]   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO] [talledLocalContainer]   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[INFO] [talledLocalContainer]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[INFO] [talledLocalContainer]   at java.lang.reflect.Method.invoke(Method.java:498)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
[INFO] [talledLocalContainer] Caused by: java.lang.IllegalArgumentException: Invalid version number: Version number may be negative or greater than 255
[INFO] [talledLocalContainer]   at com.ibm.icu.util.VersionInfo.getInstance(VersionInfo.java:191)
[INFO] [talledLocalContainer]   at com.ibm.icu.impl.ICUDebug.getInstanceLenient(ICUDebug.java:65)
[INFO] [talledLocalContainer]   at com.ibm.icu.impl.ICUDebug.<clinit>(ICUDebug.java:69)
[INFO] [talledLocalContainer]   ... 61 more
[INFO] [talledLocalContainer] 2021-05-04 19:51:20,245 INFO [main] [atlassian.confluence.plugin.PluginFrameworkContextListener] contextInitialized Initialising plugin system
[INFO] [talledLocalContainer] 2021-05-04 19:51:20,245 FATAL [main] [atlassian.spring.container.SpringContainerContext] getComponent Spring Application context has not been set
[INFO] [talledLocalContainer] May 04, 2021 7:51:20 PM org.apache.catalina.core.StandardContext startInternal
[INFO] [talledLocalContainer] SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
[INFO] [talledLocalContainer] 2021-05-04 19:51:20,246 ERROR [main] [atlassian.confluence.plugin.PluginFrameworkContextListener] contextInitialized Error initialising plugin manager: Spring Application context has not been set
[INFO] [talledLocalContainer] java.lang.IllegalStateException: Spring Application context has not been set
[INFO] [talledLocalContainer]   at com.atlassian.spring.container.SpringContainerContext.getComponent(SpringContainerContext.java:48)
[INFO] [talledLocalContainer]   at com.atlassian.spring.container.ContainerManager.getComponent(ContainerManager.java:33)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.plugin.PluginFrameworkContextListener.getPluginSystemLifecycle(PluginFrameworkContextListener.java:187)
[INFO] [talledLocalContainer]   at com.atlassian.confluence.plugin.PluginFrameworkContextListener.contextInitialized(PluginFrameworkContextListener.java:69)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4643)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5109)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:703)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:986)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1858)
[INFO] [talledLocalContainer]   at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[INFO] [talledLocalContainer]   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[INFO] [talledLocalContainer]   at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
[INFO] [talledLocalContainer]   at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:772)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1585)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:308)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:424)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:367)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:969)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:839)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1429)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)
[INFO] [talledLocalContainer]   at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[INFO] [talledLocalContainer]   at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
[INFO] [talledLocalContainer]   at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:134)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:944)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:261)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardService.startInternal(StandardService.java:422)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer]   at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:770)
[INFO] [talledLocalContainer]   at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.Catalina.start(Catalina.java:682)
[INFO] [talledLocalContainer]   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO] [talledLocalContainer]   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[INFO] [talledLocalContainer]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[INFO] [talledLocalContainer]   at java.lang.reflect.Method.invoke(Method.java:498)
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:350)
[INFO] [talledLocalContainer] May 04, 2021 7:51:20 PM org.apache.catalina.core.StandardContext startInternal
[INFO] [talledLocalContainer]   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:492)
[INFO] [talledLocalContainer] SEVERE: Context [/confluence] startup failed due to previous errors
[INFO] [talledLocalContainer] 2021-05-04 19:51:20,362 FATAL [main] [atlassian.spring.container.SpringContainerContext] getComponent Spring Application context has not been set
[INFO] [talledLocalContainer] 2021-05-04 19:51:20,362 WARN [main] [atlassian.confluence.plugin.PluginFrameworkContextListener] contextDestroyed Failed to shut down plugin system during ServletContext shutdown: Spring Application context has not been set
[INFO] [talledLocalContainer] 2021-05-04 19:51:21,670 INFO [main] [com.atlassian.confluence.lifecycle] contextDestroyed Stopping Confluence

When trying to access the web page I get:

I have tried on plain Win10 with SDK, WSL2/WSL1 with Ubuntu 20.04 and plain Ubuntu 20.04.
All using the same JDK

Any idea?

No success in asking here :frowning:

@JoacimJ :wave: let’s focus on the 404 first - have you ever been able to access your locally-installed Confluence instance?

I have my production install of Confluence running - but not the local development instance.
I have just followed the instructions at https://developer.atlassian.com/server/framework/atlassian-sdk/create-a-confluence-hello-world-macro/ to get a Hello World.

Note: I am experienced in IT development but newbie with Confluence/Atlassian development

1 Like

Hi Joacim,

This issue is caused by a bug Confluence has with java versions with a patch version greater than 255.

If you downgrade to 1.8.0.251 or earlier, this problem will go away, since you are using Oracle jdk, you can find the older versions here: Java Archive Downloads - Java SE 8u211 and later

This is also confirmed in the log message:

Caused by: java.lang.IllegalArgumentException: Invalid version number: Version number may be negative or greater than 255

Note, once you have installed a compatible JDK - you will have to set the JAVA_HOME variable to point to the new (old) jre.

You can see a related Confluence server issue here: [CONFSERVER-60095] Confluence 6.x fails to start on latest AdoptOpenJDK 8u262 and OracleJDK 80261 - Create and track feature requests for Atlassian products.

2 Likes

Hi @richard.white
Thanks for pointing that out.
Tried it with AdoptOpenJDK 8 (1.8.0_252) on another laptop and it started to work after downgrading Java.
Now I tried with the machine with Oracle Java and downgraded to 8u251 but it failed. Switched to AdoptOpenJDK (1.8.0_252) but that failed also…hmm.

Still working on it