SonarCFamily is not Available to Install in Developer Edition

I had the Docker/SonarQube 7,1 Community Edition installed. Upgraded to Developer Edition. The SonarCFamily plugin is listed but the option to Install/Uninstall are not available. It says: Available under our commercial editions. If I click the ‘Learn more’ link it says available for Developer Edition. Developer Edition is what is installed.

Hi,

It should have been part of the edition bundle you installed. What was your procedure for upgrading editions?

Ann

I had the Docker/SonarQube 7.1 Community Edition installed. After I received the license file I upgraded to Developer Edition using the ‘Community Edition’ web interface by going to Admin->Maketplace hit the ‘Upgrade’ button in the ‘Developer Edition’ box. After I hit the Upgrade button it opened a window for me to past the license file.

I meant to paste the license file.

Hi,

This worked for me using the upgrade procedure you described. To get the symptoms you list, I had to subsequently stop my instance, manually remove the SonarCFamily jar from $SONARQUBE_HOME/extensions/plugins and restart my instance.

Since

  • you explicitly mention docker
  • the upgrade procedure requires a restart

you should check your Docker configuration to make sure that your plugins aren’t getting wiped out after a restart.*

Ann

* Note that I know almost nothing about Docker, but missing plugins after a restart seems to be a not-uncommon problem, and it seems to be related to Docker configuration.

Hello Ann,

I downloaded the sonar-cfamily-plugin-5.1.1.10386.jar plugin, and deployed it manually into the sonarqube. When I attempt to start sonarqube the throws the ERROR below. I am wondering if the problem could be the license file I got as trial.

_docker-sonarqube2_1  | 2018.09.04 21:50:28 ERROR ce[][o.s.ce.app.CeServer] Compute Engine startup failed_
**_docker-sonarqube2_1  | org.sonar.updatecenter.common.exception.PluginNotFoundException: The plugin 'license' required by 'cpp' is missing._**
_docker-sonarqube2_1  |  at org.sonar.updatecenter.common.PluginReferential.addOutgoingDependency(PluginReferential.java:140)_
_docker-sonarqube2_1  |  at org.sonar.updatecenter.common.PluginReferentialManifestConverter.lambda$fromPluginManifests$0(PluginReferentialManifestConverter.java:60)_
_docker-sonarqube2_1  |  at java.lang.Iterable.forEach(Iterable.java:75)_
_docker-sonarqube2_1  |  at org.sonar.updatecenter.common.PluginReferentialManifestConverter.fromPluginManifests(PluginReferentialManifestConverter.java:56)_
_docker-sonarqube2_1  |  at org.sonar.server.plugins.PluginReferentialMetadataConverter.getInstalledPluginReferential(PluginReferentialMetadataConverter.java:45)_
_docker-sonarqube2_1  |  at org.sonar.server.plugins.InstalledPluginReferentialFactory.init(InstalledPluginReferentialFactory.java:54)_
_docker-sonarqube2_1  |  at org.sonar.server.plugins.InstalledPluginReferentialFactory.start(InstalledPluginReferentialFactory.java:38)_
_docker-sonarqube2_1  |  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)_
_docker-sonarqube2_1  |  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)_
_docker-sonarqube2_1  |  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)_
_docker-sonarqube2_1  |  at java.lang.reflect.Method.invoke(Method.java:498)_
_docker-sonarqube2_1  |  at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.invokeMethod(ReflectionLifecycleStrategy.java:110)_
_docker-sonarqube2_1  |  at org.picocontainer.lifecycle.ReflectionLifecycleStrategy.start(ReflectionLifecycleStrategy.java:89)_
_docker-sonarqube2_1  |  at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.start(AbstractInjectionFactory.java:84)_
_docker-sonarqube2_1  |  at org.picocontainer.behaviors.AbstractBehavior.start(AbstractBehavior.java:169)_
_docker-sonarqube2_1  |  at org.picocontainer.behaviors.Stored$RealComponentLifecycle.start(Stored.java:132)_
_docker-sonarqube2_1  |  at org.picocontainer.behaviors.Stored.start(Stored.java:110)_
_docker-sonarqube2_1  |  at org.picocontainer.DefaultPicoContainer.potentiallyStartAdapter(DefaultPicoContainer.java:1016)_
_docker-sonarqube2_1  |  at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:1009)_
_docker-sonarqube2_1  |  at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:767)_
_docker-sonarqube2_1  |  at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.java:134)_
_docker-sonarqube2_1  |  at org.sonar.ce.container.ComputeEngineContainerImpl.start(ComputeEngineContainerImpl.java:191)_
_docker-sonarqube2_1  |  at org.sonar.ce.ComputeEngineImpl.startup(ComputeEngineImpl.java:45)_
_docker-sonarqube2_1  |  at org.sonar.ce.app.CeServer$CeMainThread.startup(CeServer.java:167)_
_docker-sonarqube2_1  |  at org.sonar.ce.app.CeServer$CeMainThread.attemptStartup(CeServer.java:154)_
_docker-sonarqube2_1  |  at org.sonar.ce.app.CeServer$CeMainThread.run(CeServer.java:141)_
**ocker-sonarqube2_1  | **Caused by: java.util.NoSuchElementException: Unable to find plugin with key license_**
**_docker-sonarqube2_1  |  at org.sonar.updatecenter.common.PluginReferential.findPlugin(PluginReferential.java:87)_**
**_docker-sonarqube2_1  |  at org.sonar.updatecenter.common.PluginReferential.addOutgoingDependency(PluginReferential.java:126)_**
_docker-sonarqube2_1  |  ... 25 common frames omitted_

Aligned with @ganncamp side-note, I fear that your mishaps here are more related to Docker specificities than to pure SonarQube considerations. If by any chance you could give this a spin outside of any Docker environment (e.g. using the official packages on a regular server) then it might help you gain more confidence with the Edition install.

This is bound to fail. SonarQube is packaged per-Edition, manually squeezing in a commercial plugin is going against that packaging model. (note: we’re working on improvements to make that clear, and already you can see distinct packages are now distributed)

If you’re in for using latest version than just get the SonarQube Developer Edition package here: Download | SonarQube . If you need to stick to your older version (<7.2), then you can get the Edition Bundle here.