Home | History | Annotate | Download | only in module
      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