1 239 stephen /* 2 239 stephen * CDDL HEADER START 3 239 stephen * 4 239 stephen * The contents of this file are subject to the terms of the 5 239 stephen * Common Development and Distribution License (the "License"). 6 239 stephen * You may not use this file except in compliance with the License. 7 239 stephen * 8 239 stephen * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 239 stephen * or http://www.opensolaris.org/os/licensing. 10 239 stephen * See the License for the specific language governing permissions 11 239 stephen * and limitations under the License. 12 239 stephen * 13 239 stephen * When distributing Covered Code, include this CDDL HEADER in each 14 239 stephen * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 239 stephen * If applicable, add the following below this CDDL HEADER, with the 16 239 stephen * fields enclosed by brackets "[]" replaced with your own identifying 17 239 stephen * information: Portions Copyright [yyyy] [name of copyright owner] 18 239 stephen * 19 239 stephen * CDDL HEADER END 20 239 stephen */ 21 239 stephen 22 239 stephen /* 23 239 stephen * Copyright 2009 Sun Microsystems, Inc. All rights reserved. 24 239 stephen * Use is subject to license terms. 25 239 stephen */ 26 239 stephen 27 239 stephen package org.opensolaris.os.vp.panels.example.time2.server.module; 28 239 stephen 29 239 stephen import com.sun.cacao.*; 30 239 stephen import com.sun.cacao.element.*; 31 239 stephen import java.util.logging.*; 32 239 stephen import javax.management.ObjectName; 33 239 stephen import org.opensolaris.os.vp.panels.example.time2.common.TimeMXBean; 34 304 stephen import org.opensolaris.os.vp.util.misc.TextUtil; 35 239 stephen 36 239 stephen public class TimeModule extends Module { 37 239 stephen // 38 239 stephen // Instance data 39 239 stephen // 40 239 stephen 41 239 stephen private TimeMXBean bean; 42 239 stephen private ObjectName name; 43 239 stephen protected final Logger logger; 44 239 stephen protected final String LOGTAG; 45 239 stephen 46 239 stephen // 47 239 stephen // Constructors 48 239 stephen // 49 239 stephen 50 239 stephen public TimeModule(DeploymentDescriptor descriptor) { 51 239 stephen super(descriptor); 52 239 stephen bean = new Time(); 53 239 stephen 54 239 stephen Class<? extends TimeModule> c = getClass(); 55 239 stephen logger = Logger.getLogger(c.getPackage().getName()); 56 304 stephen LOGTAG = TextUtil.getBaseName(c); 57 239 stephen } 58 239 stephen 59 239 stephen // 60 239 stephen // ElementSupport methods 61 239 stephen // 62 239 stephen 63 239 stephen @Override 64 239 stephen protected void start() { 65 239 stephen logger.entering(LOGTAG, "start"); 66 239 stephen 67 239 stephen try { 68 239 stephen name = getMbs().registerMBean(bean, null).getObjectName(); 69 239 stephen } catch (Exception e) { 70 239 stephen logger.log(Level.WARNING, "error during start", e); 71 239 stephen availabilityStatusSetAdd(AvailabilityStatusEnum.FAILED); 72 239 stephen setOperationalState(OperationalStateEnum.DISABLED); 73 239 stephen } 74 239 stephen 75 239 stephen logger.exiting(LOGTAG, "start"); 76 239 stephen } 77 239 stephen 78 239 stephen @Override 79 239 stephen protected void stop() { 80 239 stephen logger.entering(LOGTAG, "stop"); 81 239 stephen 82 239 stephen try { 83 239 stephen getMbs().unregisterMBean(name); 84 239 stephen } catch (Exception e) { 85 239 stephen } 86 239 stephen 87 239 stephen logger.exiting(LOGTAG, "stop"); 88 239 stephen } 89 239 stephen } 90