Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7660127
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 31, 20262026-05-31T13:25:26+00:00 2026-05-31T13:25:26+00:00

I am trying to write a plugin for Sonar to define a new model.

  • 0

I am trying to write a plugin for Sonar to define a new model. I started with the reference plugin which compiles with Maven and runs fine. When I add my class TestmodelDefinition.java, it still compiles fine, but when I restart the server I get a 503 error page and in the log there is a stack trace:

org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException: com.mycompany.sonar.reference.models.TestModelDefinition has unsatisfied dependency: class java.lang.String among unsatisfiable dependencies: [[class java.lang.String]] where org.picocontainer.DefaultPicoContainer@312cfd62:119<I<org.picocontainer.DefaultPicoContainer@12e90e23:7<I<org.picocontainer.DefaultPicoContainer@49b9a538:19<| was the leaf container being asked for dependencies.
        at org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:188) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:110) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.ConstructorInjector.access$100(ConstructorInjector.java:51) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:308) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:274) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:341) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:689) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:638) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:617) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.parameters.CollectionComponentParameter.getArrayInstance(CollectionComponentParameter.java:311) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.parameters.CollectionComponentParameter.access$100(CollectionComponentParameter.java:48) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.parameters.CollectionComponentParameter$1.resolveInstance(CollectionComponentParameter.java:138) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:141) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:76) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:286) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:312) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:274) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:341) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:689) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:638) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:617) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.containers.ImmutablePicoContainer.getComponent(ImmutablePicoContainer.java:40) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:704) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:638) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:627) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.parameters.BasicComponentParameter$1.resolveInstance(BasicComponentParameter.java:105) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.parameters.ComponentParameter$1.resolveInstance(ComponentParameter.java:136) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.SingleMemberInjector.getParameter(SingleMemberInjector.java:76) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.ConstructorInjector$CtorAndAdapters.getParameterArguments(ConstructorInjector.java:286) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:312) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:274) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:341) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.instantiateComponentAsIsStartable(DefaultPicoContainer.java:1014) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.addAdapterIfStartable(DefaultPicoContainer.java:1006) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.startAdapters(DefaultPicoContainer.java:983) ~[picocontainer-2.10.2.jar:na]
        at org.picocontainer.DefaultPicoContainer.start(DefaultPicoContainer.java:746) ~[picocontainer-2.10.2.jar:na]
        at org.sonar.api.platform.ComponentContainer.startComponents(ComponentContainer.java:70) ~[sonar-plugin-api-2.13.1.jar:na]
        at org.sonar.server.platform.Platform.executeStartupTasks(Platform.java:236) ~[classes/:na]
        at org.sonar.server.platform.Platform.start(Platform.java:116) ~[classes/:na]
        at org.sonar.server.platform.PlatformLifecycleListener.contextInitialized(PlatformLifecycleListener.java:33) [classes/:na]
        at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548) [jetty-6.1.25.jar:6.1.25]
        at org.mortbay.jetty.servlet.Context.startContext(Context.java:136) [jetty-6.1.25.jar:6.1.25]
        at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1272) [jetty-6.1.25.jar:6.1.25]
        at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517) [jetty-6.1.25.jar:6.1.25]
        at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:489) [jetty-6.1.25.jar:6.1.25]
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) [jetty-util-6.1.25.jar:6.1.25]
        at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) [jetty-6.1.25.jar:6.1.25]
        at org.mortbay.jetty.Server.doStart(Server.java:224) [jetty-6.1.25.jar:6.1.25]
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) [jetty-util-6.1.25.jar:6.1.25]
        at org.sonar.application.JettyEmbedder.start(JettyEmbedder.java:79) [sonar-application-2.13.1.jar:na]
        at org.sonar.application.StartServer.main(StartServer.java:50) [sonar-application-2.13.1.jar:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_20]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.6.0_20]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.6.0_20]
        at java.lang.reflect.Method.invoke(Method.java:616) ~[na:1.6.0_20]
        at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:240) [wrapper-3.2.3.jar:3.2.3]
        at java.lang.Thread.run(Thread.java:636) [na:1.6.0_20]

I am using Eclipse on a Windows XP machine to write the code but it is compiled and run on a 64-bit Ubuntu 10.04 server edition.
I have tried simply adding

import java.lang.*;

but that didn’t solve anything.

Edit:
Here is the TestmodelDefinition:

package com.mycompany.sonar.reference.models;

import java.lang.*;

import org.sonar.api.qualitymodel.*;
import org.sonar.api.measures.*;

public final class TestModelDefinition extends ModelDefinition {

  public TestModelDefinition(String name) {
    super(name);
    // TODO Auto-generated constructor stub
  }

  @Override
  public Model createModel() {

    Model testModel = Model.createByName("ISO 9126 way");

    String parentName = "Maintainability";
    String name = "Testability";

    Characteristic parentCharacteristic = Characteristic.createByName(parentName);
    Characteristic newCharacteristic = Characteristic.createByName(name);

    CharacteristicProperty newProperty = CharacteristicProperty.create("Tests");

    parentCharacteristic.setEnabled(true);
    newCharacteristic.setEnabled(true);
    parentCharacteristic.addChild(newCharacteristic);

    testModel.addCharacteristic(parentCharacteristic);
    testModel.addCharacteristic(newCharacteristic);

    return testModel;
  }

}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-31T13:25:27+00:00Added an answer on May 31, 2026 at 1:25 pm

    String is not a type that can be injected by Pico container. You should provide a default constructor to your class.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm trying to write a Jekyll plugin which generates an array of pages in
I am trying to write a simple Wordpress plugin, which updates a custom field
I am trying to write a plugin which will update a user field. I
I'm trying to write a plugin that defines a MongoMapper model. The problem is
I'm trying to write a new jQuery plugin. base (this is not my plugin,
I'm trying to write a new plugin since I haven't been able to find
So I'm trying to write a new plugin since I haven't been able to
I'm relatively new to PHP and I'm trying to write my own plugin. Upon
I have been trying to write a Controller Plugin which I will be using
I'm trying to write a simple task using Maven: <plugin> <artifactId>maven-antrun-plugin</artifactId> <version>1.3</version> <executions> <execution>

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.