You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@edgent.apache.org by "Dale LaBossiere (JIRA)" <ji...@apache.org> on 2016/04/22 20:04:12 UTC

[jira] [Created] (QUARKS-155) ControlService impls - need to enhance JsonControlService?

Dale LaBossiere created QUARKS-155:
--------------------------------------

             Summary: ControlService impls - need to enhance JsonControlService?
                 Key: QUARKS-155
                 URL: https://issues.apache.org/jira/browse/QUARKS-155
             Project: Quarks
          Issue Type: Task
            Reporter: Dale LaBossiere


JMXControlService allows multiple mbeans (of a different type) registered for a single ``<type,alias,id>``.  The code below passes.

When tweaked to use the JsonControlService it throws an ISE as noted in the comments below.

Which behavior is correct?  Does JsonControlService need to be enhanced?

```
    @Test
    public void testMultiBeanSameId() throws Exception {
      
        ControlService cs = new JMXControlService(DOMAIN, new Hashtable<>());
        // ControlService cs = new JsonControlService();
        
        MyControlX myControlX = new MyControlX();
        MyControlY myControlY = new MyControlY();
        String type = "stream";
        String id = "a";
        String alias = "myStream";
        String controlIdX = cs.registerControl(type, id, alias, MyControlXMBean.class, myControlX);
        // following registerControl throws ISE when using JsonControlService as its
        // limited to a single registration for a <type,alias> pair.
        // note: it ignores the id.
        String controlIdY = cs.registerControl(type, id, alias, MyControlYMBean.class, myControlY);
        assertTrue(controlIdX, !controlIdX.equals(controlIdY));
        assertTrue(cs.getControl(type, alias, MyControlXMBean.class) instanceof MyControlXMBean);
        assertTrue(cs.getControl(type, alias, MyControlYMBean.class) instanceof MyControlYMBean);
        cs.unregister(controlIdX);
        cs.unregister(controlIdY);
    }
``` 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)