use of javax.management.MalformedObjectNameException in project zalenium by zalando.
the class CloudTestingRemoteProxyTest method defaultValuesAreAlwaysNull.
@Test
public void defaultValuesAreAlwaysNull() {
try {
ObjectName objectName = new ObjectName("org.seleniumhq.grid:type=Hub");
ManagementFactory.getPlatformMBeanServer().getObjectInstance(objectName);
new JMXHelper().unregister(objectName);
} catch (MalformedObjectNameException | InstanceNotFoundException e) {
// Might be that the object does not exist, it is ok. Nothing to do, this is just a cleanup task.
}
GridRegistry registry = ZaleniumRegistry.newInstance(new Hub(new GridHubConfiguration()));
RegistrationRequest request = TestUtils.getRegistrationRequestForTesting(30003, CloudTestingRemoteProxy.class.getCanonicalName());
CloudTestingRemoteProxy proxy = CloudTestingRemoteProxy.getNewInstance(request, registry);
Assert.assertNull(proxy.getAccessKeyProperty());
Assert.assertNull(proxy.getAccessKeyValue());
Assert.assertNotNull(proxy.getCloudTestingServiceUrl());
Assert.assertNull(proxy.getUserNameProperty());
Assert.assertNull(proxy.getUserNameValue());
Assert.assertNotNull(proxy.getRemoteHost());
Assert.assertNull(proxy.getVideoFileExtension());
Assert.assertNull(proxy.getProxyName());
Assert.assertNull(proxy.getProxyClassName());
Assert.assertNull(proxy.getTestInformation("seleniumSessionId"));
}
use of javax.management.MalformedObjectNameException in project infrautils by opendaylight.
the class MBeanUtils method unregisterServerMBean.
public static void unregisterServerMBean(Object mxBeanImplementor, String objNameStr) throws MalformedObjectNameException, InstanceNotFoundException, MBeanRegistrationException {
LOG.debug("unregister MXBean for {}", objNameStr);
MBeanServer mplatformMbeanServer = ManagementFactory.getPlatformMBeanServer();
try {
mplatformMbeanServer.unregisterMBean(new ObjectName(objNameStr));
} catch (InstanceNotFoundException | MalformedObjectNameException | MBeanRegistrationException e) {
LOG.error("Error while unregistering MBean {}", objNameStr, e);
throw e;
}
}
use of javax.management.MalformedObjectNameException in project infrautils by opendaylight.
the class AbstractMXBean method unregisterMBean.
/**
* Unregisters this bean with the platform MBean server.
*
* @return true is successfully unregistered, false otherwise.
*/
protected boolean unregisterMBean() {
@Var boolean unregister = false;
try {
ObjectName mbeanobjectname = this.getMBeanObjectName();
unregisterMBean(mbeanobjectname);
unregister = true;
} catch (InstanceNotFoundException | MBeanRegistrationException | MalformedObjectNameException e) {
LOG.debug("Failed when unregistering MBean {}", e);
}
return unregister;
}
use of javax.management.MalformedObjectNameException in project LogHub by fbacchella.
the class TestIntegrated method runStart.
@Test(timeout = 5000)
public void runStart() throws ConfigException, IOException, InterruptedException, IntrospectionException, InstanceNotFoundException, MalformedObjectNameException, ReflectionException {
loghub.Stats.reset();
String conffile = Configuration.class.getClassLoader().getResource("test.conf").getFile();
Start.main(new String[] { "--canexit", "-c", conffile });
Thread.sleep(500);
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
StatsMBean stats = JMX.newMBeanProxy(mbs, StatsMBean.Implementation.NAME, StatsMBean.class);
JmxTimerMBean allevents_timer = JMX.newMBeanProxy(mbs, new ObjectName("metrics:name=Allevents.timer"), JmxTimerMBean.class);
JmxCounterMBean allevents_inflight = JMX.newMBeanProxy(mbs, new ObjectName("metrics:name=Allevents.inflight"), JmxCounterMBean.class);
Socket sender = tctxt.ctx.newSocket(Method.CONNECT, Type.PUB, "inproc://listener");
Socket receiver = tctxt.ctx.newSocket(Method.CONNECT, Type.PULL, "inproc://sender");
AtomicLong send = new AtomicLong();
Thread t = new Thread() {
@Override
public void run() {
try {
for (int i = 0; i < 100 && tctxt.ctx.isRunning(); i++) {
sender.send("message " + i);
send.incrementAndGet();
Thread.sleep(1);
}
} catch (InterruptedException e) {
}
logger.debug("All events sent");
}
};
t.start();
Pattern messagePattern = Pattern.compile("\\{\"a\":1,\"b\":\"google-public-dns-a\",\"message\":\"message \\d+\"\\}");
while (send.get() < 99 || allevents_inflight.getCount() != 0) {
logger.debug("send: {}, in flight: {}", send.get(), allevents_inflight.getCount());
while (receiver.getEvents() > 0) {
logger.debug("in flight: {}", allevents_inflight.getCount());
String content = receiver.recvStr();
Assert.assertTrue(messagePattern.matcher(content).find());
Thread.sleep(1);
}
;
Thread.sleep(50);
}
Thread.sleep(10);
Set<ObjectName> metrics = mbs.queryNames(new ObjectName("metrics:*"), null);
long blocked = 0;
dumpstatus(mbs, metrics, i -> i.toString().startsWith("metrics:name=EventWaiting.") && i.toString().endsWith(".failed"), i -> (long) i.getValue(), JmxGaugeMBean.class);
dumpstatus(mbs, metrics, i -> i.toString().startsWith("metrics:name=Pipeline.") && i.toString().endsWith(".failed"), i -> i.getCount(), JmxMeterMBean.class);
dumpstatus(mbs, metrics, i -> i.toString().startsWith("metrics:name=Pipeline.") && i.toString().endsWith(".droped"), i -> i.getCount(), JmxMeterMBean.class);
blocked += dumpstatus(mbs, metrics, i -> i.toString().startsWith("metrics:name=Pipeline.") && i.toString().endsWith(".blocked.in"), i -> i.getCount(), JmxMeterMBean.class);
blocked += dumpstatus(mbs, metrics, i -> i.toString().startsWith("metrics:name=Pipeline.") && i.toString().endsWith(".blocked.out"), i -> i.getCount(), JmxMeterMBean.class);
dumpstatus(mbs, metrics, i -> i.toString().startsWith("metrics:name=Pipeline.") && i.toString().endsWith(".inflight"), i -> i.getCount(), JmxMeterMBean.class);
logger.debug("dropped: " + stats.getDropped());
logger.debug("failed: " + stats.getFailed());
logger.debug("received: " + stats.getReceived());
logger.debug("sent: " + stats.getSent());
logger.debug(Arrays.toString(stats.getErrors()));
logger.debug(Arrays.toString(stats.getExceptions()));
long received = stats.getReceived();
Assert.assertTrue(received > 95);
Assert.assertEquals(0L, allevents_inflight.getCount());
Assert.assertEquals(received, allevents_timer.getCount());
Assert.assertEquals(received, blocked + stats.getSent());
}
use of javax.management.MalformedObjectNameException in project LogHub by fbacchella.
the class Start method launch.
public void launch(Properties props) throws ConfigException, IOException {
for (Source s : props.sources.values()) {
if (!s.configure(props)) {
logger.error("failed to start source {}", s.getName());
throw new IllegalStateException();
}
;
}
props.pipelines.stream().forEach(i -> i.configure(props));
for (Sender s : props.senders) {
if (s.configure(props)) {
s.start();
} else {
logger.error("failed to configure output {}", s.getName());
throw new IllegalStateException();
}
;
}
for (int i = 0; i < props.numWorkers; i++) {
Thread t = new EventsProcessor(props.mainQueue, props.outputQueues, props.namedPipeLine, props.maxSteps, props.repository);
t.setName("ProcessingThread" + i);
t.setDaemon(false);
t.start();
}
for (Receiver r : props.receivers) {
if (r.configure(props)) {
r.start();
} else {
logger.error("failed to configure input {}", r.getName());
throw new IllegalStateException();
}
}
try {
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
mbs.registerMBean(new StatsMBean.Implementation(), StatsMBean.Implementation.NAME);
JmxReporter reporter = Properties.metrics.getJmxReporter();
reporter.start();
mbs.queryNames(ObjectName.getInstance("metrics", "name", "Pipeline.*.timer"), null).stream().map(i -> i.getKeyProperty("name")).map(i -> i.replaceAll("^Pipeline\\.(.*)\\.timer$", "$1")).forEach(i -> {
try {
mbs.registerMBean(new PipelineStat.Implementation(i), null);
} catch (NotCompliantMBeanException | InstanceAlreadyExistsException | MBeanRegistrationException e) {
}
});
int port = props.jmxport;
if (port > 0) {
Helper.start(props.jmxproto, props.jmxlisten, port);
}
} catch (IOException | NotBoundException | NotCompliantMBeanException | MalformedObjectNameException | InstanceAlreadyExistsException | MBeanRegistrationException e) {
throw new RuntimeException("jmx configuration failed: " + e.getMessage(), e);
}
if (props.httpPort >= 0) {
AbstractHttpServer server = new DashboardHttpServer();
server.setPort(props.httpPort);
server.configure(props);
}
}
Aggregations