+++ /dev/null
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.naming;
-
-import javax.management.AttributeChangeNotification;
-import javax.management.MBeanRegistration;
-import javax.management.MBeanServer;
-import javax.management.Notification;
-import javax.management.NotificationBroadcasterSupport;
-import javax.management.ObjectName;
-import javax.naming.Context;
-
-/**
- * Implementation of the NamingService JMX MBean.
- *
- * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision$
- */
-
-public final class NamingService
- extends NotificationBroadcasterSupport
- implements NamingServiceMBean, MBeanRegistration {
-
-
- // ----------------------------------------------------- Instance Variables
-
-
- /**
- * Status of the Slide domain.
- */
- private int state = STOPPED;
-
-
- /**
- * Notification sequence number.
- */
- private long sequenceNumber = 0;
-
-
- /**
- * Old URL packages value.
- */
- private String oldUrlValue = "";
-
-
- /**
- * Old initial context value.
- */
- private String oldIcValue = "";
-
-
- // ---------------------------------------------- MBeanRegistration Methods
-
-
- public ObjectName preRegister(MBeanServer server, ObjectName name)
- throws Exception {
- return new ObjectName(OBJECT_NAME);
- }
-
-
- public void postRegister(Boolean registrationDone) {
- if (!registrationDone.booleanValue())
- destroy();
- }
-
-
- public void preDeregister()
- throws Exception {
- }
-
-
- public void postDeregister() {
- destroy();
- }
-
-
- // ----------------------------------------------------- SlideMBean Methods
-
-
- /**
- * Returns the Catalina component name.
- */
- public String getName() {
- return NAME;
- }
-
-
- /**
- * Returns the state.
- */
- public int getState() {
- return state;
- }
-
-
- /**
- * Returns a String representation of the state.
- */
- public String getStateString() {
- return states[state];
- }
-
-
- /**
- * Start the servlet container.
- */
- public void start()
- throws Exception {
-
- Notification notification = null;
-
- if (state != STOPPED)
- return;
-
- state = STARTING;
-
- // Notifying the MBEan server that we're starting
-
- notification = new AttributeChangeNotification
- (this, sequenceNumber++, System.currentTimeMillis(),
- "Starting " + NAME, "State", "java.lang.Integer",
- new Integer(STOPPED), new Integer(STARTING));
- sendNotification(notification);
-
- try {
-
- String value = "org.apache.naming";
- String oldValue = System.getProperty(Context.URL_PKG_PREFIXES);
- if (oldValue != null) {
- oldUrlValue = oldValue;
- value = oldValue + ":" + value;
- }
- System.setProperty(Context.URL_PKG_PREFIXES, value);
-
- oldValue = System.getProperty(Context.INITIAL_CONTEXT_FACTORY);
- if ((oldValue != null) && (oldValue.length() > 0)) {
- oldIcValue = oldValue;
- } else {
- System.setProperty(Context.INITIAL_CONTEXT_FACTORY,
- Constants.Package
- + ".java.javaURLContextFactory");
- }
-
- } catch (Exception e) {
- state = STOPPED;
- notification = new AttributeChangeNotification
- (this, sequenceNumber++, System.currentTimeMillis(),
- "Stopped " + NAME, "State", "java.lang.Integer",
- new Integer(STARTING), new Integer(STOPPED));
- sendNotification(notification);
- }
-
- state = STARTED;
- notification = new AttributeChangeNotification
- (this, sequenceNumber++, System.currentTimeMillis(),
- "Started " + NAME, "State", "java.lang.Integer",
- new Integer(STARTING), new Integer(STARTED));
- sendNotification(notification);
-
- }
-
-
- /**
- * Stop the servlet container.
- */
- public void stop() {
-
- Notification notification = null;
-
- if (state != STARTED)
- return;
-
- state = STOPPING;
-
- notification = new AttributeChangeNotification
- (this, sequenceNumber++, System.currentTimeMillis(),
- "Stopping " + NAME, "State", "java.lang.Integer",
- new Integer(STARTED), new Integer(STOPPING));
- sendNotification(notification);
-
- try {
-
- System.setProperty(Context.URL_PKG_PREFIXES, oldUrlValue);
- System.setProperty(Context.INITIAL_CONTEXT_FACTORY, oldIcValue);
-
- } catch (Exception e) {
- // FIXME
- e.printStackTrace();
- }
-
- state = STOPPED;
-
- notification = new AttributeChangeNotification
- (this, sequenceNumber++, System.currentTimeMillis(),
- "Stopped " + NAME, "State", "java.lang.Integer",
- new Integer(STOPPING), new Integer(STOPPED));
- sendNotification(notification);
-
- }
-
-
- /**
- * Destroy servlet container (if any is running).
- */
- public void destroy() {
-
- if (getState() != STOPPED)
- stop();
-
- }
-
-
-}
+++ /dev/null
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.naming;
-
-/**
- * Naming MBean interface.
- *
- * @author <a href="mailto:remm@apache.org">Remy Maucherat</a>
- * @version $Revision$
- */
-
-public interface NamingServiceMBean {
-
-
- // -------------------------------------------------------------- Constants
-
-
- /**
- * Status constants.
- */
- public static final String[] states =
- {"Stopped", "Stopping", "Starting", "Started"};
-
-
- public static final int STOPPED = 0;
- public static final int STOPPING = 1;
- public static final int STARTING = 2;
- public static final int STARTED = 3;
-
-
- /**
- * Component name.
- */
- public static final String NAME = "Apache JNDI Naming Service";
-
-
- /**
- * Object name.
- */
- public static final String OBJECT_NAME = ":service=Naming";
-
-
- // ------------------------------------------------------ Interface Methods
-
-
- /**
- * Returns the JNDI component name.
- */
- public String getName();
-
-
- /**
- * Returns the state.
- */
- public int getState();
-
-
- /**
- * Returns a String representation of the state.
- */
- public String getStateString();
-
-
- /**
- * Start the servlet container.
- */
- public void start()
- throws Exception;
-
-
- /**
- * Stop the servlet container.
- */
- public void stop();
-
-
- /**
- * Destroy servlet container (if any is running).
- */
- public void destroy();
-
-
-}