PicoContainer
  1. PicoContainer
  2. PICO-52

DefaultLifecyclePicoContainer and Constructor problems

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 1.0-beta-3
    • Fix Version/s: 1.0-beta-3
    • Component/s: PicoContainer (Java)
    • Labels:
      None
    • Environment:
      Windows 2000, Sun JDK 1.4.2
    • Number of attachments :
      0

      Description

      Let's say that I configure DefaultLifecyclePicoContainer like this:

      final DefaultLifecyclePicoContainer container =
      new DefaultLifecyclePicoContainer();

      container.registerComponentImplementation(
      JMS_SERVICE,
      JMSService.class,
      new Parameter[]

      { new ConstantParameter("0"), new ConstantParameter("something") }

      );

      container.start();

      Here is my JMSService class:

      public class JMSService implements Lifecycle {

      public static final String DEFAULT_SERVER_ID = "0";
      public static final String DEFAULT_PATH = "jms";

      private String serverId;
      private String path;

      public JMSService(String serverId, String path) {

      this.serverId = (serverId == null) ? DEFAULT_SERVER_ID : path;
      this.path = (path == null) ? DEFAULT_PATH : path;

      try {
      AgentServer.init(new String[]

      {this.serverId, this.path}

      );
      } catch (Exception e)

      { // Do something }
      }

      public void start() {
      try { AgentServer.start(); } catch (Exception e) { // Do something }

      }

      public void stop()

      { AgentServer.stop(); }

      public void dispose() {
      }

      Everything seems ok, but it fails:

      org.picocontainer.defaults.NoSatisfiableConstructorsException: com.mass1.proxyserver.services.JMSService doesn't have any satisfiable constructors. Unsatisfiable dependencies: [class java.lang.String]
      at org.picocontainer.defaults.DefaultComponentAdapter.getSatisfiableConstructors(DefaultComponentAdapter.java:126)
      at org.picocontainer.defaults.DefaultComponentAdapter.getConstructor(DefaultComponentAdapter.java:67)
      at org.picocontainer.defaults.DefaultComponentAdapter.getDependencies(DefaultComponentAdapter.java:57)
      at org.picocontainer.defaults.DefaultComponentAdapter.getComponentInstance(DefaultComponentAdapter.java:136)
      at org.picocontainer.defaults.DefaultPicoContainer.getComponentInstance(DefaultPicoContainer.java:163)
      at org.picocontainer.defaults.DefaultPicoContainer.getComponentInstances(DefaultPicoContainer.java:150)
      at org.picocontainer.defaults.DefaultPicoContainer.getComponentMulticaster(DefaultPicoContainer.java:117)
      at org.picocontainer.extras.DefaultLifecyclePicoAdapter.initializeIfNotInitialized(DefaultLifecyclePicoAdapter.java:60)
      at org.picocontainer.extras.DefaultLifecyclePicoAdapter.start(DefaultLifecyclePicoAdapter.java:82)
      at org.picocontainer.extras.DefaultLifecyclePicoContainer.start(DefaultLifecyclePicoContainer.java:39)
      at com.mass1.proxyserver.ProxyServer.main(ProxyServer.java:37)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)

        Activity

        Hide
        Aslak Hellesøy added a comment -

        See testPico52() in org.picocontainer.tck.AbstractPicoContainerTestCase

        Feel free to reopen if this is incorrect.

        Show
        Aslak Hellesøy added a comment - See testPico52() in org.picocontainer.tck.AbstractPicoContainerTestCase Feel free to reopen if this is incorrect.
        Aslak Hellesøy made changes -
        Field Original Value New Value
        Resolution Cannot Reproduce [ 5 ]
        Status Unassigned [ 1 ] Closed [ 6 ]
        Fix Version/s 1.0 [ 10145 ]
        Aslak Hellesøy made changes -
        Resolution Cannot Reproduce [ 5 ]
        Status Closed [ 6 ] Reopened [ 4 ]
        Aslak Hellesøy made changes -
        Fix Version/s 1.0 [ 10145 ]
        Fix Version/s 1.0-beta-3 [ 10232 ]
        Aslak Hellesøy made changes -
        Status Reopened [ 4 ] Closed [ 6 ]
        Resolution Fixed [ 1 ]
        Hide
        Aapo Laakkonen added a comment -

        No, it doesn't work! I tried newest snapshot and it still has the problem! DefaultPicoContainer works OK, with constant constructor parameters. If it works in DefaultPicoContainer, then it should not be too hard to fix this in DefaultLifecyclePicoContainer.

        Show
        Aapo Laakkonen added a comment - No, it doesn't work! I tried newest snapshot and it still has the problem! DefaultPicoContainer works OK, with constant constructor parameters. If it works in DefaultPicoContainer, then it should not be too hard to fix this in DefaultLifecyclePicoContainer.
        Hide
        Jon Tirsen added a comment -

        We will unify DefaultPicoContainer and LifecyclePicoContainer. That might solve the problem.

        Show
        Jon Tirsen added a comment - We will unify DefaultPicoContainer and LifecyclePicoContainer. That might solve the problem.

          People

          • Assignee:
            Unassigned
            Reporter:
            Aapo Laakkonen
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - 1 day
              1d
              Remaining:
              Remaining Estimate - 1 day
              1d
              Logged:
              Time Spent - Not Specified
              Not Specified