/**
   * Sets the values of several attributes of the Dynamic MBean, and returns the list of attributes
   * that have been set.
   */
  public AttributeList setAttributes(AttributeList attributes) {

    // Check attributes is not null to avoid NullPointerException later on
    if (attributes == null) {
      throw new RuntimeOperationsException(
          new IllegalArgumentException("AttributeList attributes cannot be null"),
          "Cannot invoke a setter of " + dClassName);
    }
    AttributeList resultList = new AttributeList();

    // if attributeNames is empty, nothing more to do
    if (attributes.isEmpty()) return resultList;

    // for each attribute, try to set it and add to the result list if successfull
    for (Iterator i = attributes.iterator(); i.hasNext(); ) {
      Attribute attr = (Attribute) i.next();
      try {
        setAttribute(attr);
        String name = attr.getName();
        Object value = getAttribute(name);
        resultList.add(new Attribute(name, value));
      } catch (JMException e) {
        e.printStackTrace();
      } catch (RuntimeException e) {
        e.printStackTrace();
      }
    }
    return (resultList);
  }
  /** Enables the to get the values of several attributes of the Dynamic MBean. */
  public AttributeList getAttributes(String[] attributeNames) {

    // Check attributeNames is not null to avoid NullPointerException later on
    if (attributeNames == null) {
      throw new RuntimeOperationsException(
          new IllegalArgumentException("attributeNames[] cannot be null"),
          "Cannot invoke a getter of " + dClassName);
    }

    AttributeList resultList = new AttributeList();

    // if attributeNames is empty, return an empty result list
    if (attributeNames.length == 0) return resultList;

    // build the result attribute list
    for (int i = 0; i < attributeNames.length; i++) {
      try {
        Object value = getAttribute((String) attributeNames[i]);
        resultList.add(new Attribute(attributeNames[i], value));
      } catch (JMException e) {
        e.printStackTrace();
      } catch (RuntimeException e) {
        e.printStackTrace();
      }
    }
    return (resultList);
  }
 private void awaitActive(String type, String name, String version) {
     try {
         ObjectName objectName = new ObjectName("org.eclipse.virgo.kernel:type=Model,artifact-type=" + type + ",name=" + name + ",version=" + version);
         ManageableArtifact artifact = JMX.newMXBeanProxy(this.mBeanServer, objectName, ManageableArtifact.class);
         
         long startTime = System.currentTimeMillis();
         
         while (!"ACTIVE".equals(artifact.getState())) {
             if (System.currentTimeMillis() - startTime > TIMEOUT) {
                 fail("Artifact " + type + " " + name + " " + version + " was not active within " + TIMEOUT + "ms.");
             }
             try {
                 Thread.sleep(50);
             } catch (InterruptedException _) {
             }
         }
     } catch (JMException jme) {
         fail(jme.getMessage());
     }
 }
Esempio n. 4
0
 private void registerRecordProcessor(final RecordProcessor processor, final Endpoint ep) {
   MBeanServer mbeanServer = mBeanServerValue.getValue();
   if (mbeanServer != null) {
     try {
       mbeanServer.registerMBean(
           processor,
           ObjectNameFactory.create(ep.getName() + ",recordProcessor=" + processor.getName()));
     } catch (final JMException ex) {
       ROOT_LOGGER.trace(
           "Cannot register endpoint with JMX server, trying with the default ManagedRecordProcessor: "
               + ex.getMessage());
       try {
         mbeanServer.registerMBean(
             new ManagedRecordProcessor(processor),
             ObjectNameFactory.create(ep.getName() + ",recordProcessor=" + processor.getName()));
       } catch (final JMException e) {
         ROOT_LOGGER.cannotRegisterRecordProcessor();
       }
     }
   } else {
     ROOT_LOGGER.mBeanServerNotAvailable(processor);
   }
 }