本文整理汇总了Java中javax.management.timer.Timer类的典型用法代码示例。如果您正苦于以下问题:Java Timer类的具体用法?Java Timer怎么用?Java Timer使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
Timer类属于javax.management.timer包,在下文中一共展示了Timer类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: handleNotification
import javax.management.timer.Timer; //导入依赖的package包/类
/**
* This method is handles a notification when the Timer for the schedule
* times out.
*
* @see javax.management.NotificationListener#handleNotification(javax.management.Notification,
* java.lang.Object)
* @param pNotification
* The Notification.
* @param pHandback
* A Timer stating the time when the Notification should be
* invoked.
*/
public void handleNotification(final Notification pNotification, final Object pHandback) {
if (pHandback == null) {
LOG.error("The timer stating the next scheduled query execution time is null!");
return;
}
Timer timer = (Timer) pHandback;
if (!doItAgain.booleanValue()) {
timer.stop();
} else {
// execute the query and determine next scheduled execution time
executeQuery();
setNextScheduledExecutionTime(timer);
}
}
示例2: testDoubleRegister
import javax.management.timer.Timer; //导入依赖的package包/类
@Test(expected=RuntimeException.class)
public void testDoubleRegister() throws Exception {
ControlService cs = new JMXControlService(DOMAIN, new Hashtable<>());
String type = "timer";
String id = "a";
String alias = "ControlA";
String controlId = cs.registerControl(type, id, alias, TimerMBean.class, new Timer());
try {
cs.registerControl(type, id, alias, TimerMBean.class, new Timer());
} finally {
cs.unregister(controlId);
}
}
示例3: testDoubleunregister
import javax.management.timer.Timer; //导入依赖的package包/类
@Test(expected=RuntimeException.class)
public void testDoubleunregister() throws Exception {
ControlService cs = new JMXControlService(DOMAIN, new Hashtable<>());
String type = "timer";
String id = "a";
String alias = "ControlA";
String controlId = cs.registerControl(type, id, alias, TimerMBean.class, new Timer());
cs.unregister(controlId);
cs.unregister(controlId);
}
示例4: main
import javax.management.timer.Timer; //导入依赖的package包/类
public static void main(String[] args) throws Exception
{
// This JMXServiceURL works only if the connector server is in-VM with
// the connector. If this is not the case, set the correct host name.
JMXServiceURL address = new JMXServiceURL("soap", null, 8080, "/jmxconnector");
// Connect a JSR 160 JMXConnector to the server side
JMXConnector connector = JMXConnectorFactory.connect(address);
// Retrieve an MBeanServerConnection that represent the MBeanServer
// the remote connector server is bound to
MBeanServerConnection connection = connector.getMBeanServerConnection();
// Call the server side as if it is a local MBeanServer
ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate");
Object proxy = MBeanServerInvocationHandler.newProxyInstance(connection, delegateName, MBeanServerDelegateMBean.class, true);
MBeanServerDelegateMBean delegate = (MBeanServerDelegateMBean)proxy;
System.out.println(delegate.getImplementationVendor() + " is cool !");
// Register an MBean, and get notifications via the SOAP protocol
connection.addNotificationListener(delegateName, new NotificationListener()
{
public void handleNotification(Notification notification, Object handback)
{
System.out.println("Got the following notification: " + notification);
}
}, null, null);
ObjectName timerName = ObjectName.getInstance("services:type=Timer");
connection.createMBean(Timer.class.getName(), timerName, null);
// Unregistering the MBean to get another notification
connection.unregisterMBean(timerName);
// Allow the unregistration notification to arrive before killing this JVM
Thread.sleep(1000);
connector.close();
}
示例5: main
import javax.management.timer.Timer; //导入依赖的package包/类
public static void main(String[] args) throws Exception
{
// This JMXServiceURL works only if the connector server is on the same host of
// the connector. If this is not the case, set the correct host name.
JMXServiceURL address = new JMXServiceURL("hessian", null, 8080, "/hessian");
// Connect a JSR 160 JMXConnector to the server side
JMXConnector connector = JMXConnectorFactory.connect(address);
// Retrieve an MBeanServerConnection that represent the MBeanServer
// the remote connector server is bound to
MBeanServerConnection connection = connector.getMBeanServerConnection();
// Call the server side as if it is a local MBeanServer
ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate");
Object proxy = MBeanServerInvocationHandler.newProxyInstance(connection, delegateName, MBeanServerDelegateMBean.class, true);
MBeanServerDelegateMBean delegate = (MBeanServerDelegateMBean)proxy;
System.out.println(delegate.getImplementationVendor() + " is cool !");
// Register an MBean, and get notifications via the Hessian protocol
connection.addNotificationListener(delegateName, new NotificationListener()
{
public void handleNotification(Notification notification, Object handback)
{
System.out.println("Got the following notification: " + notification);
}
}, null, null);
ObjectName timerName = ObjectName.getInstance("services:type=Timer");
connection.createMBean(Timer.class.getName(), timerName, null);
// Unregistering the MBean to get another notification
connection.unregisterMBean(timerName);
// Allow the unregistration notification to arrive before killing this JVM
Thread.sleep(1000);
connector.close();
}
示例6: startThread
import javax.management.timer.Timer; //导入依赖的package包/类
/**
* Starts a Timer to get this query executed in specific time intervals.
*
* @throws ImplementationException
* If the next scheduled date cannot be evaluated.
*/
private void startThread() throws ImplementationExceptionResponse {
Timer nextAction = new Timer();
nextAction.addNotificationListener(this, null, nextAction);
Date nextSchedule = schedule.nextScheduledTime().getTime();
nextAction.addNotification("SubscriptionSchedule", "Please do the query", null, nextSchedule);
nextAction.start();
}
示例7: setNextScheduledExecutionTime
import javax.management.timer.Timer; //导入依赖的package包/类
/**
* Determines the next scheduled execution time for this subscribed query.
*
* @param timer
* The Timer to set the next scheduled time.
* @throws IllegalArgumentException
*/
protected void setNextScheduledExecutionTime(final Timer timer) throws IllegalArgumentException {
try {
Date nextSchedule = schedule.nextScheduledTime().getTime();
LOG.debug("Next scheduled time for the subscribed query is '" + nextSchedule + "'.");
timer.addNotification("SubscriptionSchedule", "Please do the query", timer, nextSchedule);
} catch (ImplementationExceptionResponse e) {
String msg = "The next scheduled date for the subscribed query with ID '" + getSubscriptionID()
+ "' cannot be evaluated: " + e.getMessage();
LOG.error(msg, e);
}
}
示例8: startTimer
import javax.management.timer.Timer; //导入依赖的package包/类
/**
* Start of the timer service
*/
private void startTimer() {
try {
server = MBeanServerFactory.createMBeanServer();
timer = new Timer();
timerName = new ObjectName("test:type=timer");
server.registerMBean(timer, timerName);
server.addNotificationListener(timerName, this, null, null);
timer.start();
} catch (Exception e) {
e.printStackTrace();
}
}
示例9: main
import javax.management.timer.Timer; //导入依赖的package包/类
public static void main(String[] args) throws Exception {
System.out.println(
">>> Test on timer start method with past notifications.");
System.out.println(">>> Create a Timer object.");
Timer timer = new Timer();
System.out.println(
">>> Set the flag (setSendPastNotification) to true.");
timer.setSendPastNotifications(true);
timer.addNotificationListener(myListener, null, null);
System.out.println(">>> Add notifications: " + SENT);
Date date = new Date();
for (int i = 0; i < SENT; i++) {
timer.addNotification(
"testType" + i, "testMsg" + i, "testData" + i, date);
}
System.out.println(">>> The notifications should be sent at " + date);
System.out.println(">>> Sleep 100 ms to have past notifications.");
Thread.sleep(100);
System.out.println(">>> Start the timer at " + new Date());
timer.start();
System.out.println(">>> Stop the timer.");
Thread.sleep(100);
stopping = true;
timer.stop();
if (received != SENT) {
throw new RuntimeException(
"Expected to receive " + SENT + " but got " + received);
}
System.out.println(">>> Received all expected notifications.");
System.out.println(">>> Bye bye!");
}
示例10: main
import javax.management.timer.Timer; //导入依赖的package包/类
public static void main(String[] args) throws Exception {
System.out.println(
">>> Test for missing notifications.");
System.out.println(">>> Create a Timer object.");
final Timer timer = new Timer();
timer.start();
NotifListener listener = new NotifListener();
timer.addNotificationListener(listener, null, null);
ExecutorService executor = Executors.newFixedThreadPool(100);
final Random rand = new Random();
for (int i = 0; i < TASK_COUNT; i++) {
executor.execute(new Runnable() {
public void run() {
long dateMillis = System.currentTimeMillis() + fixedDelay + rand.nextInt(2000);
Date date = new Date(dateMillis);
timer.addNotification("type", "msg", "userData", date);
}
});
}
executor.shutdown();
executor.awaitTermination(20, TimeUnit.SECONDS);
waitForNotificationsToEnd(listener);
timer.stop();
if (listener.count < TASK_COUNT) {
throw new RuntimeException("Not fired: " + (TASK_COUNT - listener.count));
} else {
System.out.println(">>> All notifications handled OK");
}
System.out.println(">>> Bye bye!");
}
示例11: main
import javax.management.timer.Timer; //导入依赖的package包/类
public static void main(String[] args) throws Exception
{
// Replace the value with the file path of your keystore.
// IMPORTANT: this should NOT be done in production environments, it is shown here just as an example.
System.setProperty("javax.net.ssl.trustStore", "<your-keystore>");
// This JMXServiceURL works only if the connector server is on the same host of
// the connector. If this is not the case, set the correct host name.
JMXServiceURL address = new JMXServiceURL("hessian+ssl", null, 8443, "/hessianssl");
// Connect a JSR 160 JMXConnector to the server side
JMXConnector connector = JMXConnectorFactory.connect(address);
// Retrieve an MBeanServerConnection that represent the MBeanServer
// the remote connector server is bound to
MBeanServerConnection connection = connector.getMBeanServerConnection();
// Call the server side as if it is a local MBeanServer
ObjectName delegateName = ObjectName.getInstance("JMImplementation:type=MBeanServerDelegate");
Object proxy = MBeanServerInvocationHandler.newProxyInstance(connection, delegateName, MBeanServerDelegateMBean.class, true);
MBeanServerDelegateMBean delegate = (MBeanServerDelegateMBean)proxy;
System.out.println(delegate.getImplementationVendor() + " is cool !");
// Register an MBean, and get notifications via the Hessian protocol
connection.addNotificationListener(delegateName, new NotificationListener()
{
public void handleNotification(Notification notification, Object handback)
{
System.out.println("Got the following notification: " + notification);
}
}, null, null);
ObjectName timerName = ObjectName.getInstance("services:type=Timer");
connection.createMBean(Timer.class.getName(), timerName, null);
// Unregistering the MBean to get another notification
connection.unregisterMBean(timerName);
// Allow the unregistration notification to arrive before killing this JVM
Thread.sleep(1000);
connector.close();
}
示例12: getExpires
import javax.management.timer.Timer; //导入依赖的package包/类
public Date getExpires() {
long expires = (this.getIssued().getTime() + ((this.getDuration()) * Timer.ONE_DAY));
return new Date(expires);
}
示例13: handleNotification
import javax.management.timer.Timer; //导入依赖的package包/类
/**
* {@inheritDoc} First checks on the trigger condition: if fulfilled then
* execute Query.
*
* @see org.fosstrak.epcis.repository.query.QuerySubscriptionScheduled#handleNotification(javax.management.Notification,
* java.lang.Object)
*/
@Override
public void handleNotification(final Notification pNotification, final Object pHandback) {
if (pHandback == null) {
LOG.error("The timer stating the next scheduled query execution time is null!");
return;
}
Timer timer = (Timer) pHandback;
if (!doItAgain.booleanValue()) {
timer.stop();
} else {
try {
LOG.debug("Checking trigger condition ...");
String queryName = "SimpleEventQuery";
QueryParams params = new QueryParams();
// add MATCH_anyEPC query param
QueryParam param = new QueryParam();
param.setName("MATCH_anyEPC");
ArrayOfString strings = new ArrayOfString();
strings.getString().add(trigger);
param.setValue(strings);
params.getParam().add(param);
// add GE_recordTime query param
param = new QueryParam();
param.setName("GE_recordTime");
param.setValue(initialRecordTime);
params.getParam().add(param);
// send the query
Poll poll = new Poll();
poll.setParams(params);
poll.setQueryName(queryName);
QueryResults results = executePoll(poll);
if (results != null && results.getResultsBody() != null
&& results.getResultsBody().getEventList() != null) {
LOG.debug("Trigger condition fulfilled!");
LOG.debug("Executing subscribed query associated with trigger event ...");
super.executeQuery();
LOG.debug("Triggered query successfully executed!");
}
} catch (Exception e) {
String msg = "An error occurred while checking trigger condition for query with subscriptionID '"
+ subscriptionID + "': " + e.getMessage();
LOG.error(msg, e);
}
// determine next scheduled execution time
setNextScheduledExecutionTime(timer);
}
}
示例14: testControlObject
import javax.management.timer.Timer; //导入依赖的package包/类
@Test
public void testControlObject() throws Exception {
ControlService cs = new JMXControlService(DOMAIN, new Hashtable<>());
String type = "timer";
String id = "a";
String alias = "ControlA";
String controlId = cs.registerControl(type, id, alias, TimerMBean.class, new Timer());
assertNotNull(controlId);
ObjectName on = ObjectName.getInstance(controlId);
assertEquals(DOMAIN, on.getDomain());
assertEquals(type, ObjectName.unquote(on.getKeyProperty("type")));
assertEquals(id, ObjectName.unquote(on.getKeyProperty("id")));
assertEquals(alias, ObjectName.unquote(on.getKeyProperty("alias")));
assertEquals(TimerMBean.class.getName(), ObjectName.unquote(on.getKeyProperty("interface")));
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
assertTrue(mbs.isRegistered(on));
cs.unregister(controlId);
assertFalse(mbs.isRegistered(on));
}
示例15: testAdditionalKeys
import javax.management.timer.Timer; //导入依赖的package包/类
@Test
public void testAdditionalKeys() throws Exception {
Hashtable<String,String> addKeys = new Hashtable<>();
addKeys.put("job", "jobid");
addKeys.put("device", ObjectName.quote("pi"));
ControlService cs = new JMXControlService(DOMAIN, addKeys);
String type = "timer";
String id = "a";
String alias = "ControlA";
String controlId = cs.registerControl(type, id, alias, TimerMBean.class, new Timer());
assertNotNull(controlId);
ObjectName on = ObjectName.getInstance(controlId);
assertEquals(DOMAIN, on.getDomain());
assertEquals(type, ObjectName.unquote(on.getKeyProperty("type")));
assertEquals(id, ObjectName.unquote(on.getKeyProperty("id")));
assertEquals(alias, ObjectName.unquote(on.getKeyProperty("alias")));
assertEquals(TimerMBean.class.getName(), ObjectName.unquote(on.getKeyProperty("interface")));
assertEquals("jobid", on.getKeyProperty("job"));
assertEquals("pi", ObjectName.unquote(on.getKeyProperty("device")));
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
assertTrue(mbs.isRegistered(on));
cs.unregister(controlId);
assertFalse(mbs.isRegistered(on));
}