geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From d...@apache.org
Subject svn commit: r151106 [2/2] - in geronimo/trunk/modules: axis/src/java/org/apache/geronimo/axis/ axis/src/test/org/apache/geronimo/axis/ axis/src/test/org/apache/geronimo/axis/preconditions/ connector/src/java/org/apache/geronimo/connector/ connector/src/java/org/apache/geronimo/connector/outbound/ connector/src/java/org/apache/geronimo/connector/outbound/transactionlog/ connector/src/java/org/apache/geronimo/connector/work/ core/src/java/org/apache/geronimo/pool/ derby/src/java/org/apache/geronimo/derby/ interop/src/java/org/apache/geronimo/interop/ jetty/src/java/org/apache/geronimo/jetty/ jetty/src/java/org/apache/geronimo/jetty/connector/ jetty/src/java/org/apache/geronimo/jetty/requestlog/ jmx-remoting/src/java/org/apache/geronimo/jmxremoting/ kernel/src/java/org/apache/geronimo/gbean/ kernel/src/java/org/apache/geronimo/gbean/runtime/ kernel/src/java/org/apache/geronimo/kernel/ kernel/src/java/org/apache/geronimo/kernel/config/ kernel/src/java/org/apache/geronimo/kernel/jmx/ kernel/src/java/org/apache/geronimo/kernel/registry/ kernel/src/test/org/apache/geronimo/gbean/runtime/ mail/src/java/org/apache/geronimo/mail/ security/src/java/org/apache/geronimo/security/jaas/ spring/src/java/org/apache/geronimo/spring/ system/src/java/org/apache/geronimo/system/configuration/ system/src/java/org/apache/geronimo/system/repository/ system/src/java/org/apache/geronimo/system/rmi/ system/src/java/org/apache/geronimo/system/url/ timer/src/java/org/apache/geronimo/timer/ tomcat/src/java/org/apache/geronimo/tomcat/ transaction/src/java/org/apache/geronimo/transaction/log/
Date Thu, 03 Feb 2005 02:50:06 GMT
Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanInstanceState.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanInstanceState.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanInstanceState.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanInstanceState.java Wed Feb  2 18:49:54 2005
@@ -22,8 +22,6 @@
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.kernel.DependencyManager;
 import org.apache.geronimo.kernel.GBeanNotFoundException;
 import org.apache.geronimo.kernel.Kernel;
@@ -41,7 +39,7 @@
     /**
      * The GBeanInstance in which this server is registered.
      */
-    private final GBeanLifecycle gbeanLifecycle;
+    private final GBeanInstance gbeanInstance;
 
     /**
      * The kernel in which this server is registered.
@@ -73,11 +71,11 @@
     // objects check if each other are in one state or another (i.e., classic A calls B while B calls A)
     private volatile State state = State.STOPPED;
 
-    GBeanInstanceState(ObjectName objectName, Kernel kernel, DependencyManager dependencyManager, GBeanLifecycle gbeanLifecycle, LifecycleBroadcaster lifecycleBroadcaster) {
+    GBeanInstanceState(ObjectName objectName, Kernel kernel, DependencyManager dependencyManager, GBeanInstance gbeanInstance, LifecycleBroadcaster lifecycleBroadcaster) {
         this.objectName = objectName;
         this.kernel = kernel;
         this.dependencyManager = dependencyManager;
-        this.gbeanLifecycle = gbeanLifecycle;
+        this.gbeanInstance = gbeanInstance;
         this.lifecycleBroadcaster = lifecycleBroadcaster;
     }
 
@@ -93,20 +91,20 @@
         assert !Thread.holdsLock(this): "This method cannot be called while holding a synchronized lock on this";
 
         // Move to the starting state
-        State state;
+        State originalState;
         synchronized (this) {
-            state = getStateInstance();
-            if (state == State.RUNNING) {
+            originalState = getStateInstance();
+            if (originalState == State.RUNNING) {
                 return;
             }
             // only try to change states if we are not already starting
-            if (state != State.STARTING) {
+            if (originalState != State.STARTING) {
                 setStateInstance(State.STARTING);
             }
         }
 
         // only fire a notification if we are not already starting
-        if (state != State.STARTING) {
+        if (originalState != State.STARTING) {
             lifecycleBroadcaster.fireStartingEvent();
         }
 
@@ -166,21 +164,21 @@
         assert !Thread.holdsLock(this): "This method cannot be called while holding a synchronized lock on this";
 
         // move to the stopping state
-        State state;
+        State originalState;
         synchronized (this) {
-            state = getStateInstance();
-            if (state == State.STOPPED) {
+            originalState = getStateInstance();
+            if (originalState == State.STOPPED) {
                 return;
             }
 
             // only try to change states if we are not already stopping
-            if (state != State.STOPPING) {
+            if (originalState != State.STOPPING) {
                 setStateInstance(State.STOPPING);
             }
         }
 
         // only fire a notification if we are not already stopping
-        if (state != State.STOPPING) {
+        if (originalState != State.STOPPING) {
             lifecycleBroadcaster.fireStoppingEvent();
         }
 
@@ -221,209 +219,207 @@
             if (state == State.STOPPED || state == State.FAILED) {
                 return;
             }
-            doSafeFail();
-            setStateInstance(State.FAILED);
         }
+
+        try {
+            if (gbeanInstance.destroyInstance(false)) {
+                // instance is not ready to destroyed... this is because another thread has
+                // already killed the gbean.
+                return;
+            }
+        } catch (Throwable e) {
+            log.warn("Problem in doFail", e);
+        }
+        setStateInstance(State.FAILED);
         lifecycleBroadcaster.fireFailedEvent();
     }
 
     /**
      * Attempts to bring the component into {@link org.apache.geronimo.kernel.management.State#RUNNING} state. If an Exception occurs while
      * starting the component, the component will be failed.
-     *
+     * <p/>
      * <p/>
      * Note: Do not call this from within a synchronized block as it makes may send a JMX notification
      */
     void attemptFullStart() {
         assert !Thread.holdsLock(this): "This method cannot be called while holding a synchronized lock on this";
 
-        State newState = null;
-        try {
-            synchronized (this) {
-                try {
-                    // if we are still trying to start and can start now... start
-                    if (getStateInstance() != State.STARTING) {
-                        return;
-                    }
+        synchronized (this) {
+            // if we are still trying to start and can start now... start
+            if (getStateInstance() != State.STARTING) {
+                return;
+            }
 
-                    // check if an mbean is blocking us from starting
-                    final ObjectName blocker = dependencyManager.checkBlocker(objectName);
-                    if (blocker != null) {
-                        blockerListener = new LifecycleAdapter() {
+            if (blockerListener != null) {
+                log.trace("Cannot run because gbean is still being blocked");
+                return;
+            }
 
-                            public void stopped(ObjectName objectName) {
-                                checkBlocker(objectName);
-                            }
+            // check if an gbean is blocking us from starting
+            final ObjectName blocker = dependencyManager.checkBlocker(objectName);
+            if (blocker != null) {
+                blockerListener = new LifecycleAdapter() {
 
-                            public void failed(ObjectName objectName) {
-                                checkBlocker(objectName);
-                            }
+                    public void stopped(ObjectName objectName) {
+                        checkBlocker(objectName);
+                    }
 
-                            public void unloaded(ObjectName objectName) {
-                                checkBlocker(objectName);
-                            }
+                    public void failed(ObjectName objectName) {
+                        checkBlocker(objectName);
+                    }
 
-                            private void checkBlocker(ObjectName objectName) {
-                                if (objectName.equals(blocker)) {
-                                    try {
-                                        attemptFullStart();
-                                    } catch (Exception e) {
-                                        log.warn("A problem occured while attempting to start", e);
-                                    }
-                                }
-                            }
-                        };
-                        kernel.getLifecycleMonitor().addLifecycleListener(blockerListener, blocker);
-                        return;
+                    public void unloaded(ObjectName objectName) {
+                        checkBlocker(objectName);
                     }
 
-                    // check if all of the mbeans we depend on are running
-                    Set parents = dependencyManager.getParents(objectName);
-                    for (Iterator i = parents.iterator(); i.hasNext();) {
-                        ObjectName parent = (ObjectName) i.next();
-                        if (!kernel.isLoaded(parent)) {
-                            log.trace("Cannot run because parent is not registered: parent=" + parent);
-                            return;
-                        }
-                        try {
-                            log.trace("Checking if parent is running: parent=" + parent);
-                            if (((Integer) kernel.getAttribute(parent, "state")).intValue() != State.RUNNING_INDEX) {
-                                log.trace("Cannot run because parent is not running: parent=" + parent);
+                    private void checkBlocker(ObjectName objectName) {
+                        synchronized (GBeanInstanceState.this) {
+                            if (!objectName.equals(blocker)) {
+                                // it did not start so just exit this method
                                 return;
                             }
-                            log.trace("Parent is running: parent=" + parent);
-                        } catch (NoSuchAttributeException e) {
-                            // ok -- parent is not a startable
-                            log.trace("Parent does not have a State attibute");
-                        } catch (GBeanNotFoundException e) {
-                            // depended on instance was removed bewteen the register check and the invoke
-                            log.trace("Cannot run because parent is not registered: parent=" + parent);
-                            return;
-                        } catch (Exception e) {
-                            // problem getting the attribute, parent has most likely failed
-                            log.trace("Cannot run because an error occurred while checking if parent is running: parent=" + parent);
-                            return;
+
+                            // it started, so remove the blocker and attempt a full start
+                            kernel.getLifecycleMonitor().removeLifecycleListener(this);
+                            GBeanInstanceState.this.blockerListener = null;
                         }
-                    }
 
-                    // remove any open watches on a blocker
-                    // todo is this correct if we are returning to a waiting state?
-                    if (blockerListener != null) {
-                        // remove any open watches on a blocker
-                        kernel.getLifecycleMonitor().removeLifecycleListener(blockerListener);
-                        blockerListener = null;
+                        try {
+                            attemptFullStart();
+                        } catch (Exception e) {
+                            log.warn("A problem occured while attempting to start", e);
+                        }
                     }
+                };
+                // register the listener and return
+                kernel.getLifecycleMonitor().addLifecycleListener(blockerListener, blocker);
+                return;
+            }
 
-                    try {
-                        gbeanLifecycle.doStart();
-                    } catch (WaitingException e) {
-                        log.debug("Waiting to start: objectName=\"" + objectName + "\" reason=\"" + e.getMessage() + "\"");
-                        return;
-                    } catch (Exception e) {
-                        log.error("Error while starting: objectName=\"" + objectName+ "\"", e);
+            // check if all of the gbeans we depend on are running
+            Set parents = dependencyManager.getParents(objectName);
+            for (Iterator i = parents.iterator(); i.hasNext();) {
+                ObjectName parent = (ObjectName) i.next();
+                if (!kernel.isLoaded(parent)) {
+                    log.trace("Cannot run because parent is not registered: parent=" + parent);
+                    return;
+                }
+                try {
+                    log.trace("Checking if parent is running: parent=" + parent);
+                    if (((Integer) kernel.getAttribute(parent, "state")).intValue() != State.RUNNING_INDEX) {
+                        log.trace("Cannot run because parent is not running: parent=" + parent);
                         return;
                     }
-                    setStateInstance(State.RUNNING);
-                    newState = State.RUNNING;
-                } catch (Error e) {
-                    doSafeFail();
-                    setStateInstance(State.FAILED);
-                    newState = State.FAILED;
-                    throw e;
+                    log.trace("Parent is running: parent=" + parent);
+                } catch (NoSuchAttributeException e) {
+                    // ok -- parent is not a startable
+                    log.trace("Parent does not have a State attibute");
+                } catch (GBeanNotFoundException e) {
+                    // depended on instance was removed bewteen the register check and the invoke
+                    log.trace("Cannot run because parent is not registered: parent=" + parent);
+                    return;
+                } catch (Exception e) {
+                    // problem getting the attribute, parent has most likely failed
+                    log.trace("Cannot run because an error occurred while checking if parent is running: parent=" + parent);
+                    return;
                 }
             }
-        } finally {
-            if (newState != null) {
-                stateChanged(newState);
+        }
+
+        try {
+            // try to create the instance
+            if (!gbeanInstance.createInstance()) {
+                // instance is not ready to start... this is normally caused by references
+                // not being available, but could be because someone alreayd started the gbean.
+                // in another thread.  The reference will log a debug message about why
+                // it could not start
+                return;
+            }
+        } catch (Throwable t) {
+            // oops there was a problem and the gbean failed
+            setStateInstance(State.FAILED);
+            lifecycleBroadcaster.fireFailedEvent();
+
+            if (t instanceof Exception) {
+                log.error("Error while starting; GBean is not in the FAILED state: objectName=\"" + objectName + "\"", t);
+            } else if (t instanceof Error) {
+                throw (Error) t;
+            } else {
+                throw new Error(t);
             }
         }
+
+        // started successfully... notify everyone else
+        setStateInstance(State.RUNNING);
+        lifecycleBroadcaster.fireRunningEvent();
     }
 
     /**
      * Attempt to bring the component into the fully stopped state.
      * If an exception occurs while stopping the component, the component will be failed.
-     *
+     * <p/>
      * <p/>
      * Note: Do not call this from within a synchronized block as it may send a JMX notification
      */
     void attemptFullStop() {
         assert !Thread.holdsLock(this): "This method cannot be called while holding a synchronized lock on this";
 
-        State newState = null;
-        try {
-            synchronized (this) {
-                // if we are still trying to stop...
-                if (getStateInstance() != State.STOPPING) {
-                    return;
-                }
-                try {
-                    // check if all of the mbeans depending on us are stopped
-                    Set children = dependencyManager.getChildren(objectName);
-                    for (Iterator i = children.iterator(); i.hasNext();) {
-                        ObjectName child = (ObjectName) i.next();
-                        if (kernel.isLoaded(child)) {
-                            try {
-                                log.trace("Checking if child is stopped: child=" + child);
-                                int state = ((Integer) kernel.getAttribute(child, "State")).intValue();
-                                if (state == State.RUNNING_INDEX) {
-                                    log.trace("Cannot stop because child is still running: child=" + child);
-                                    return;
-                                }
-                            } catch (NoSuchAttributeException e) {
-                                // ok -- dependect bean is not state manageable
-                                log.trace("Child does not have a State attibute");
-                            } catch (GBeanNotFoundException e) {
-                                // depended on instance was removed between the register check and the invoke
-                            } catch (Exception e) {
-                                // problem getting the attribute, depended on bean has most likely failed
-                                log.trace("Cannot run because an error occurred while checking if child is stopped: child=" + child);
-                                return;
-                            }
-                        }
-                    }
+        // check if we are able to stop
+        synchronized (this) {
+            // if we are still trying to stop...
+            if (getStateInstance() != State.STOPPING) {
+                return;
+            }
 
-                    // if we can stop, stop
+            // check if all of the mbeans depending on us are stopped
+            Set children = dependencyManager.getChildren(objectName);
+            for (Iterator i = children.iterator(); i.hasNext();) {
+                ObjectName child = (ObjectName) i.next();
+                if (kernel.isLoaded(child)) {
                     try {
-                        gbeanLifecycle.doStop();
-                    } catch (WaitingException e) {
-                        log.debug("Waiting to stop: objectName=\"" + objectName + "\" reason=\"" + e.getMessage() + "\"");
-                        return;
+                        log.trace("Checking if child is stopped: child=" + child);
+                        int state = ((Integer) kernel.getAttribute(child, "State")).intValue();
+                        if (state == State.RUNNING_INDEX) {
+                            log.trace("Cannot stop because child is still running: child=" + child);
+                            return;
+                        }
+                    } catch (NoSuchAttributeException e) {
+                        // ok -- dependect bean is not state manageable
+                        log.trace("Child does not have a State attibute");
+                    } catch (GBeanNotFoundException e) {
+                        // depended on instance was removed between the register check and the invoke
                     } catch (Exception e) {
-                        log.error("Error while stopping: objectName=\"" + objectName+ "\"", e);
+                        // problem getting the attribute, depended on bean has most likely failed
+                        log.trace("Cannot run because an error occurred while checking if child is stopped: child=" + child);
                         return;
                     }
-                    setStateInstance(State.STOPPED);
-                    newState = State.STOPPED;
-                } catch (Error e) {
-                    doSafeFail();
-                    setStateInstance(State.FAILED);
-                    newState = State.FAILED;
-                    throw e;
                 }
             }
-        } finally {
-            if (newState != null) {
-                stateChanged(newState);
-            }
         }
-    }
-
-    /**
-     * Calls doFail, but catches all RutimeExceptions and Errors.
-     * These problems are logged but ignored.
-     * <p/>
-     * Note: This must be called while holding a lock on this
-     */
-    private void doSafeFail() {
-        assert Thread.holdsLock(this): "This method can only called while holding a synchronized lock on this";
 
+        // all is clear to stop... try to stop
         try {
-            gbeanLifecycle.doFail();
-        } catch (RuntimeException e) {
-            log.warn("RuntimeException thrown from doFail", e);
-        } catch (Error e) {
-            log.warn("Error thrown from doFail", e);
+            if (!gbeanInstance.destroyInstance(true)) {
+                // instance is not ready to stop... this is because another thread has
+                // already stopped the gbean.
+                return;
+            }
+        } catch (Throwable t) {
+            setStateInstance(State.FAILED);
+            lifecycleBroadcaster.fireFailedEvent();
+
+            if (t instanceof Exception) {
+                log.error("Error while stopping; GBean is not in the FAILED state: objectName=\"" + objectName + "\"", t);
+            } else if (t instanceof Error) {
+                throw (Error) t;
+            } else {
+                throw new Error(t);
+            }
         }
+
+        // we successfully stopped, notify everyone else
+        setStateInstance(State.STOPPED);
+        lifecycleBroadcaster.fireStoppedEvent();
     }
 
     public int getState() {
@@ -504,31 +500,6 @@
         }
         log.debug(toString() + " State changed from " + state + " to " + newState);
         state = newState;
-    }
-
-    private void stateChanged(State state) {
-        assert !Thread.holdsLock(this): "This method cannot be called while holding a synchronized lock on this";
-        switch (state.toInt()) {
-            case State.STOPPED_INDEX:
-                lifecycleBroadcaster.fireStoppedEvent();
-                break;
-
-            case State.STARTING_INDEX:
-                lifecycleBroadcaster.fireStartingEvent();
-                break;
-
-            case State.RUNNING_INDEX:
-                lifecycleBroadcaster.fireRunningEvent();
-                break;
-
-            case State.STOPPING_INDEX:
-                lifecycleBroadcaster.fireStoppingEvent();
-                break;
-
-            case State.FAILED_INDEX:
-                lifecycleBroadcaster.fireFailedEvent();
-                break;
-        }
     }
 
     public String toString() {

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanOperation.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanOperation.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanOperation.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanOperation.java Wed Feb  2 18:49:54 2005
@@ -80,7 +80,7 @@
                 private String[] types = (String[]) parameterTypes.toArray(new String[parameterTypes.size()]);
 
                 public Object invoke(Object target, Object[] arguments) throws Exception {
-                    DynamicGBean dynamicGBean = (DynamicGBean) GBeanOperation.this.gbeanInstance.getTarget();
+                    DynamicGBean dynamicGBean = (DynamicGBean) target;
                     dynamicGBean.invoke(name, arguments, types);
                     return null;
                 }
@@ -114,8 +114,8 @@
         return framework;
     }
 
-    public Object invoke(final Object[] arguments) throws Exception {
-        return methodInvoker.invoke(gbeanInstance.getTarget(), arguments);
+    public Object invoke(Object target, final Object[] arguments) throws Exception {
+        return methodInvoker.invoke(target, arguments);
     }
 
     public String getDescription() {

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanReference.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanReference.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanReference.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanReference.java Wed Feb  2 18:49:54 2005
@@ -40,11 +40,11 @@
 
     void offline();
 
-    void start() throws Exception;
+    boolean start();
 
     void stop();
 
     Object getProxy();
 
-    void inject() throws Exception;
+    void inject(Object target) throws Exception;
 }

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanSingleReference.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanSingleReference.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanSingleReference.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/gbean/runtime/GBeanSingleReference.java Wed Feb  2 18:49:54 2005
@@ -25,9 +25,10 @@
 import org.apache.commons.logging.LogFactory;
 import org.apache.geronimo.gbean.GReferenceInfo;
 import org.apache.geronimo.gbean.InvalidConfigurationException;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.kernel.Kernel;
 import org.apache.geronimo.kernel.DependencyManager;
+import org.apache.geronimo.kernel.lifecycle.LifecycleAdapter;
+import org.apache.geronimo.kernel.lifecycle.LifecycleListener;
 import org.apache.geronimo.kernel.management.State;
 
 /**
@@ -50,40 +51,37 @@
         super(gbeanInstance, referenceInfo, kernel, dependencyManager);
     }
 
-    public synchronized void start() throws Exception {
-        // if there are no patterns then there is nothing to start
-        if (getPatterns().isEmpty()) {
-            return;
-        }
-
-        // if we already have a proxy then we have already been started
-        if (getProxy() != null) {
-            return;
-        }
-
-        //
-        // We must have exactally one running target
-        //
-        Set targets = getTargets();
-        if (targets.size() == 0) {
-            waitingForMe = true;
-            throw new WaitingException("No targets are running for " + getName() + " reference matching patterns " + getPatternsText());
-        } else if (targets.size() > 1) {
-            waitingForMe = true;
-            throw new WaitingException("More then one targets are running for " + getName() + " reference matching patterns " + getPatternsText());
-        }
-        waitingForMe = false;
+    public synchronized boolean start() {
+        // We only need to start if there are patterns and we don't already have a proxy
+        if (!getPatterns().isEmpty() && getProxy() == null) {
+            //
+            // We must have exactally one running target
+            //
+            ObjectName objectName = getGBeanInstance().getObjectNameObject();
+            Set targets = getTargets();
+            if (targets.size() == 0) {
+                waitingForMe = true;
+                log.debug("Waiting to start " + objectName + " because no targets are running for reference " + getName() +" matching the patternspatterns " + getPatternsText());
+                return false;
+            } else if (targets.size() > 1) {
+                waitingForMe = true;
+                log.debug("Waiting to start " + objectName + " because more then one targets are running for the single valued reference " + getName() +" matching the patternspatterns " + getPatternsText());
+                return false;
+            }
+            waitingForMe = false;
 
-        // stop all gbeans that would match our patterns from starting
-        ObjectName objectName = getGBeanInstance().getObjectNameObject();
-        DependencyManager dependencyManager = getDependencyManager();
-        dependencyManager.addStartHolds(objectName, getPatterns());
+            // stop all gbeans that would match our patterns from starting
+            DependencyManager dependencyManager = getDependencyManager();
+            dependencyManager.addStartHolds(objectName, getPatterns());
+
+            // add a dependency on our target and create the proxy
+            ObjectName target = (ObjectName) targets.iterator().next();
+            setProxy(getKernel().getProxyManager().createProxy(target, getReferenceType()));
+            proxyTarget = target;
+            dependencyManager.addDependency(objectName, target);
+        }
 
-        // add a dependency on our target and create the proxy
-        ObjectName target = (ObjectName) targets.iterator().next();
-        setProxy(getKernel().getProxyManager().createProxy(target, getReferenceType()));
-        proxyTarget = target;
-        dependencyManager.addDependency(objectName, target);
+        return true;
     }
 
     private String getPatternsText() {
@@ -114,11 +112,11 @@
         }
     }
 
-    public synchronized void targetAdded(ObjectName target) {
+    protected synchronized void targetAdded(ObjectName target) {
         // if we are running, and we now have two valid targets, which is an illegal state so we need to fail
         GBeanInstance gbeanInstance = getGBeanInstance();
         if (gbeanInstance.getStateInstance() == State.RUNNING) {
-            gbeanInstance.fail();
+            gbeanInstance.referenceFailed();
         } else if (waitingForMe) {
             Set targets = getTargets();
             if (targets.size() == 1) {
@@ -128,11 +126,11 @@
         }
     }
 
-    public synchronized void targetRemoved(ObjectName target) {
+    protected synchronized void targetRemoved(ObjectName target) {
         GBeanInstance gbeanInstance = getGBeanInstance();
         if (gbeanInstance.getStateInstance() == State.RUNNING) {
             // we no longer have a valid target, which is an illegal state so we need to fail
-            gbeanInstance.fail();
+            gbeanInstance.referenceFailed();
         } else if (waitingForMe) {
             Set targets = getTargets();
             if (targets.size() == 1) {
@@ -154,4 +152,23 @@
         }
     }
 
+    protected LifecycleListener createLifecycleListener() {
+        return new LifecycleAdapter() {
+                    public void running(ObjectName objectName) {
+                        addTarget(objectName);
+                    }
+
+                    public void stopped(ObjectName objectName) {
+                        removeTarget(objectName);
+                    }
+
+                    public void failed(ObjectName objectName) {
+                        removeTarget(objectName);
+                    }
+
+                    public void unloaded(ObjectName objectName) {
+                        removeTarget(objectName);
+                    }
+                };
+    }
 }

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/Kernel.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/Kernel.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/Kernel.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/Kernel.java Wed Feb  2 18:49:54 2005
@@ -354,7 +354,9 @@
     }
 
     public void unloadGBean(ObjectName name) throws GBeanNotFoundException, InternalKernelException, IllegalStateException {
-       gbeanRegistry.unregister(name);
+        GBeanInstance gbeanInstance = gbeanRegistry.getGBeanInstance(name);
+        gbeanInstance.die();
+        gbeanRegistry.unregister(name);
     }
 
     public Set listGBeans(ObjectName pattern) {

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/Configuration.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/Configuration.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/Configuration.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/Configuration.java Wed Feb  2 18:49:54 2005
@@ -48,7 +48,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.kernel.Kernel;
 import org.apache.geronimo.kernel.jmx.JMXUtil;
 import org.apache.geronimo.kernel.repository.MissingDependencyException;
@@ -288,7 +287,7 @@
         }
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
     }
 
     public void doStop() throws Exception {

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/jmx/JMXGBeanRegistry.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/jmx/JMXGBeanRegistry.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/jmx/JMXGBeanRegistry.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/jmx/JMXGBeanRegistry.java Wed Feb  2 18:49:54 2005
@@ -35,7 +35,6 @@
 import org.apache.geronimo.kernel.InternalKernelException;
 import org.apache.geronimo.kernel.Kernel;
 import org.apache.geronimo.kernel.lifecycle.LifecycleListener;
-import org.apache.geronimo.kernel.lifecycle.LifecycleListener;
 
 /**
  * @version $Rev$ $Date$
@@ -48,20 +47,9 @@
     public void start(Kernel kernel) {
         this.kernel = kernel;
         mbServer = MBeanServerFactory.createMBeanServer(kernel.getKernelName());
-//        try {
-//            mbServer.registerMBean(kernel, Kernel.KERNEL);
-//        } catch (Exception e) {
-//            throw new InternalKernelException("Error registering kernel with MBeanServer", unwrapJMException(e));
-//        }
     }
 
     public void stop() {
-//        try {
-//            mbServer.unregisterMBean(Kernel.KERNEL);
-//        } catch (Exception e) {
-//            // ignore
-//        }
-//
         MBeanServerFactory.releaseMBeanServer(mbServer);
 
         // todo destroy instances

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/registry/AbstractGBeanRegistry.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/registry/AbstractGBeanRegistry.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/registry/AbstractGBeanRegistry.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/registry/AbstractGBeanRegistry.java Wed Feb  2 18:49:54 2005
@@ -16,20 +16,19 @@
  */
 package org.apache.geronimo.kernel.registry;
 
-import java.util.Map;
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
-import java.util.Set;
 import java.util.HashSet;
-import java.util.List;
-import java.util.ArrayList;
 import java.util.Iterator;
-import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import java.util.regex.Pattern;
 import javax.management.ObjectName;
 
 import org.apache.geronimo.kernel.GBeanNotFoundException;
 import org.apache.geronimo.kernel.InternalKernelException;
-import org.apache.geronimo.kernel.Kernel;
 
 /**
  * @version $Rev:  $ $Date:  $

Modified: geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/registry/BasicGBeanRegistry.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/registry/BasicGBeanRegistry.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/registry/BasicGBeanRegistry.java (original)
+++ geronimo/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/registry/BasicGBeanRegistry.java Wed Feb  2 18:49:54 2005
@@ -16,22 +16,13 @@
  */
 package org.apache.geronimo.kernel.registry;
 
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.regex.Pattern;
 import javax.management.ObjectName;
 
 import org.apache.geronimo.gbean.runtime.GBeanInstance;
-import org.apache.geronimo.kernel.Kernel;
 import org.apache.geronimo.kernel.GBeanAlreadyExistsException;
-import org.apache.geronimo.kernel.InternalKernelException;
 import org.apache.geronimo.kernel.GBeanNotFoundException;
+import org.apache.geronimo.kernel.InternalKernelException;
+import org.apache.geronimo.kernel.Kernel;
 
 /**
  * @version $Rev$ $Date$

Modified: geronimo/trunk/modules/kernel/src/test/org/apache/geronimo/gbean/runtime/GBeanAttributeTest.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/kernel/src/test/org/apache/geronimo/gbean/runtime/GBeanAttributeTest.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/kernel/src/test/org/apache/geronimo/gbean/runtime/GBeanAttributeTest.java (original)
+++ geronimo/trunk/modules/kernel/src/test/org/apache/geronimo/gbean/runtime/GBeanAttributeTest.java Wed Feb  2 18:49:54 2005
@@ -54,7 +54,7 @@
     private Kernel kernel;
 //    private GAttributeInfo throwingExceptionAttributeInfo = null;
 
-    public final void testGBeanMBeanAttributeGBeanMBeanStringClassMethodInvokerMethodInvoker() {
+    public final void testGBeanAttributStringClassMethodInvokerMethodInvoker() {
         try {
             GBeanAttribute.createFrameworkAttribute(null, null, null, null);
             fail("IllegalArgumentException expected");
@@ -231,7 +231,7 @@
             // attribute that isn't readable and persistent
             final GBeanAttribute attribute = GBeanAttribute.createFrameworkAttribute(gbeanInstance, attributeName, String.class, null, setInvoker, false, null);
             try {
-                attribute.getValue();
+                attribute.getValue(gbeanInstance);
                 fail("Only persistent attributes can be accessed while offline; exception expected");
             } catch (/* IllegalState */Exception expected) {
             }
@@ -243,7 +243,7 @@
             try {
                 gbeanInstance.start();
 
-                attribute.getValue();
+                attribute.getValue(gbeanInstance);
                 fail("This attribute is not readable; exception expected");
             } catch (/* IllegalArgument */Throwable expected) {
             } finally {
@@ -258,7 +258,7 @@
         {
             final GBeanAttribute attribute = GBeanAttribute.createFrameworkAttribute(gbeanInstance, attributeName, String.class, null, setInvoker, false, null);
             try {
-                attribute.setValue(null);
+                attribute.setValue(gbeanInstance, null);
                 fail("Only persistent attributes can be modified while offline; exception expected");
             } catch (/* IllegalState */Exception expected) {
             }
@@ -269,7 +269,7 @@
         {
             final GBeanAttribute persistentAttribute = new GBeanAttribute(gbeanInstance, persistentPrimitiveAttributeInfo, false);
             try {
-                persistentAttribute.setValue(null);
+                persistentAttribute.setValue(gbeanInstance, null);
                 fail("Cannot assign null to a primitive attribute; exception expected");
             } catch (/* IllegalArgument */Exception expected) {
             }
@@ -282,7 +282,7 @@
             try {
                 gbeanInstance.start();
 
-                immutableAttribute.setValue(null);
+                immutableAttribute.setValue(gbeanInstance, null);
                 fail("This attribute is not writable; exception expected");
             } catch (/* IllegalArgument */Exception expected) {
             } finally {
@@ -297,7 +297,7 @@
             try {
                 gbeanInstance.start();
 
-                mutablePersistentAttribute.setValue(null);
+                mutablePersistentAttribute.setValue(gbeanInstance, null);
                 fail("Cannot assign null to a primitive attribute; exception expected");
             } catch (/* IllegalArgument */Exception expected) {
             } finally {
@@ -313,7 +313,7 @@
             try {
                 gbeanInstance.start();
 
-                mutablePersistentAttribute.setValue(new Integer(4));
+                mutablePersistentAttribute.setValue(gbeanInstance, new Integer(4));
                 //fail("Cannot assign a value to a persistent attribute while
                 // online; exception expected");
             } catch (/* IllegalState */Exception expected) {
@@ -335,7 +335,7 @@
             try {
                 gbeanInstance.start();
 
-                attribute.setValue(new Integer(4));
+                attribute.setValue(gbeanInstance, new Integer(4));
                 fail("Exception expected upon setValue's call");
             } catch (/* IllegalState */Exception expected) {
             } finally {

Modified: geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/IMAPStoreGBean.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/IMAPStoreGBean.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/IMAPStoreGBean.java (original)
+++ geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/IMAPStoreGBean.java Wed Feb  2 18:49:54 2005
@@ -23,8 +23,6 @@
 
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
-import org.apache.geronimo.gbean.WaitingException;
-
 
 /**
  * A GBean that provides for the configuration of a JavaMail IMAP message store
@@ -750,11 +748,11 @@
         if (socketFactoryPort != null) props.put("mail.imap.socketFactory.port", socketFactoryPort);
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         log.info("Started " + getObjectName());
     }
 
-    public void doStop() throws WaitingException, Exception {
+    public void doStop() throws Exception {
         log.info("Stopped " + getObjectName());
     }
 

Modified: geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/MailGBean.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/MailGBean.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/MailGBean.java (original)
+++ geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/MailGBean.java Wed Feb  2 18:49:54 2005
@@ -28,7 +28,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
 
 
@@ -330,7 +329,7 @@
         }
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         log.info("Started " + objectName + " - will return "
                  + (Boolean.TRUE.equals(useDefault) ? "default" : "new")
                  + " JavaMail Session "
@@ -338,7 +337,7 @@
                  + " authenticator");
     }
 
-    public void doStop() throws WaitingException, Exception {
+    public void doStop() throws Exception {
         log.info("Stopped " + objectName);
     }
 

Modified: geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/POP3StoreGBean.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/POP3StoreGBean.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/POP3StoreGBean.java (original)
+++ geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/POP3StoreGBean.java Wed Feb  2 18:49:54 2005
@@ -23,7 +23,6 @@
 
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
-import org.apache.geronimo.gbean.WaitingException;
 
 
 /**
@@ -412,11 +411,11 @@
         if (socketFactoryPort != null) props.put("mail.pop3.socketFactory.port", socketFactoryPort);
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         log.info("Started " + getObjectName());
     }
 
-    public void doStop() throws WaitingException, Exception {
+    public void doStop() throws Exception {
         log.info("Stopped " + getObjectName());
     }
 

Modified: geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/ProtocolGBean.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/ProtocolGBean.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/ProtocolGBean.java (original)
+++ geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/ProtocolGBean.java Wed Feb  2 18:49:54 2005
@@ -24,8 +24,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
-
 
 /**
  * A generic GBean that provides for the configuration of a JavaMail protocol.
@@ -152,11 +150,11 @@
         if (user != null) props.put("mail." + protocol + ".user", user);
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         log.info("Started " + objectName);
     }
 
-    public void doStop() throws WaitingException, Exception {
+    public void doStop() throws Exception {
         log.info("Stopped " + objectName);
     }
 

Modified: geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/SMTPTransportGBean.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/SMTPTransportGBean.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/SMTPTransportGBean.java (original)
+++ geronimo/trunk/modules/mail/src/java/org/apache/geronimo/mail/SMTPTransportGBean.java Wed Feb  2 18:49:54 2005
@@ -23,8 +23,6 @@
 
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
-import org.apache.geronimo.gbean.WaitingException;
-
 
 /**
  * A GBean that provides for the configuration of a JavaMail SMTP transport
@@ -717,11 +715,11 @@
         if (mailExtension != null) props.put("mail.smtp.mailextension", mailExtension);
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         log.info("Started " + getObjectName());
     }
 
-    public void doStop() throws WaitingException, Exception {
+    public void doStop() throws Exception {
         log.info("Stopped " + getObjectName());
     }
 

Modified: geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/jaas/GeronimoLoginConfiguration.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/jaas/GeronimoLoginConfiguration.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/jaas/GeronimoLoginConfiguration.java (original)
+++ geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/jaas/GeronimoLoginConfiguration.java Wed Feb  2 18:49:54 2005
@@ -33,7 +33,6 @@
 import org.apache.geronimo.gbean.ReferenceCollection;
 import org.apache.geronimo.gbean.ReferenceCollectionEvent;
 import org.apache.geronimo.gbean.ReferenceCollectionListener;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.security.SecurityServiceImpl;
 
 
@@ -118,7 +117,7 @@
         log.info("Added Application Configuration Entry " + factory.getConfigurationName());
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         try {
             oldConfiguration = Configuration.getConfiguration();
         } catch (SecurityException e) {
@@ -128,7 +127,7 @@
         log.info("Installed Geronimo login configuration");
     }
 
-    public void doStop() throws WaitingException, Exception {
+    public void doStop() throws Exception {
         Configuration.setConfiguration(oldConfiguration);
 
         for (Iterator iter = entries.keySet().iterator(); iter.hasNext();){

Modified: geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/jaas/JaasLoginService.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/jaas/JaasLoginService.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/jaas/JaasLoginService.java (original)
+++ geronimo/trunk/modules/security/src/java/org/apache/geronimo/security/jaas/JaasLoginService.java Wed Feb  2 18:49:54 2005
@@ -44,7 +44,6 @@
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
 import org.apache.geronimo.gbean.ReferenceCollection;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.kernel.jmx.JMXUtil;
 import org.apache.geronimo.security.ContextManager;
 import org.apache.geronimo.security.IdentificationPrincipal;
@@ -131,11 +130,11 @@
         this.expiredLoginScanIntervalMillis = expiredLoginScanIntervalMillis;
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         expiredLoginScanIdentifier = clockDaemon.executePeriodically(expiredLoginScanIntervalMillis, new ExpirationMonitor(), true);
     }
 
-    public void doStop() throws WaitingException, Exception {
+    public void doStop() throws Exception {
         ClockDaemon.cancel(expiredLoginScanIdentifier);
         //todo: shut down all logins
     }

Modified: geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/POJOGBean.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/POJOGBean.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/POJOGBean.java (original)
+++ geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/POJOGBean.java Wed Feb  2 18:49:54 2005
@@ -29,7 +29,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.gbean.jmx.GBeanMBean;
 import org.apache.geronimo.kernel.Kernel;
 import org.springframework.beans.BeansException;
@@ -92,7 +91,7 @@
   // GBeanLifecycle
   //----------------------------------------
 
-  public void doStart() throws WaitingException, Exception {}
-  public void doStop() throws WaitingException, Exception {}
+  public void doStart() throws Exception {}
+  public void doStop() throws Exception {}
   public void doFail() {}
 }

Modified: geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/SpringGBean.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/SpringGBean.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/SpringGBean.java (original)
+++ geronimo/trunk/modules/spring/src/java/org/apache/geronimo/spring/SpringGBean.java Wed Feb  2 18:49:54 2005
@@ -32,7 +32,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.kernel.Kernel;
 import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.config.BeanPostProcessor;
@@ -110,7 +109,7 @@
 
   public void
     doStart()
-    throws WaitingException, Exception
+    throws Exception
   {
     _jmxName=new ObjectName(_objectName);
 

Modified: geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/FileConfigurationList.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/FileConfigurationList.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/FileConfigurationList.java (original)
+++ geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/FileConfigurationList.java Wed Feb  2 18:49:54 2005
@@ -36,7 +36,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.kernel.Kernel;
 import org.apache.geronimo.kernel.config.ConfigurationInfo;
 import org.apache.geronimo.kernel.config.NoSuchStoreException;
@@ -92,7 +91,7 @@
         this.configFile = configDir;
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         configList = serverInfo.resolve(configFile);
         File parent = configList.getParentFile();
         if (!parent.isDirectory()) {

Modified: geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalConfigStore.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalConfigStore.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalConfigStore.java (original)
+++ geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalConfigStore.java Wed Feb  2 18:49:54 2005
@@ -46,7 +46,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.kernel.Kernel;
 import org.apache.geronimo.kernel.config.Configuration;
 import org.apache.geronimo.kernel.config.ConfigurationStore;
@@ -96,7 +95,7 @@
         return objectName.toString();
     }
 
-    public void doStart() throws WaitingException, FileNotFoundException, IOException {
+    public void doStart() throws FileNotFoundException, IOException {
         // resolve the root dir if not alredy resolved
         if (rootDir == null) {
             if (serverInfo == null) {
@@ -122,7 +121,7 @@
         }
     }
 
-    public void doStop() throws WaitingException {
+    public void doStop() {
     }
 
     public void doFail() {

Modified: geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/repository/ReadOnlyRepository.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/repository/ReadOnlyRepository.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/repository/ReadOnlyRepository.java (original)
+++ geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/repository/ReadOnlyRepository.java Wed Feb  2 18:49:54 2005
@@ -28,7 +28,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.kernel.repository.Repository;
 import org.apache.geronimo.system.serverinfo.ServerInfo;
 
@@ -75,14 +74,14 @@
         return rootURI.resolve(uri).toURL();
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         if (rootURI == null) {
             rootURI = serverInfo.resolve(root);
         }
         log.info("Repository root is " + rootURI);
     }
 
-    public void doStop() throws WaitingException, Exception {
+    public void doStop() throws Exception {
     }
 
     public void doFail() {

Modified: geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/rmi/RMIRegistryService.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/rmi/RMIRegistryService.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/rmi/RMIRegistryService.java (original)
+++ geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/rmi/RMIRegistryService.java Wed Feb  2 18:49:54 2005
@@ -25,7 +25,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 
 /**
  * Thin GBean wrapper around the RMI Registry.
@@ -45,13 +44,13 @@
         this.port = port;
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         System.setProperty("java.rmi.server.RMIClassLoaderSpi",RMIClassLoaderSpiImpl.class.getName());
         registry = LocateRegistry.createRegistry(port);
         log.info("Started RMI Registry on port " + port);
     }
 
-    public void doStop() throws WaitingException, Exception {
+    public void doStop() throws Exception {
         UnicastRemoteObject.unexportObject(registry, true);
         log.info("Stopped RMI Registry");
     }

Modified: geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/url/GeronimoURLFactory.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/url/GeronimoURLFactory.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/url/GeronimoURLFactory.java (original)
+++ geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/url/GeronimoURLFactory.java Wed Feb  2 18:49:54 2005
@@ -32,7 +32,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 
 /**
  * This service replaces the URLStreamHandlerFactory used in URL, which gives Geronimo
@@ -45,13 +44,13 @@
     private static final URLStreamHandlerFactory factory = new URLStreamHandlerFactory();
     private static boolean installed = false;
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         // verify that our factory is installed... if our factory can not be
         // installed the gbean will fail
         install();
     }
 
-    public void doStop() throws WaitingException, Exception {
+    public void doStop() throws Exception {
     }
 
     public void doFail() {

Modified: geronimo/trunk/modules/timer/src/java/org/apache/geronimo/timer/ThreadPooledTimer.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/timer/src/java/org/apache/geronimo/timer/ThreadPooledTimer.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/timer/src/java/org/apache/geronimo/timer/ThreadPooledTimer.java (original)
+++ geronimo/trunk/modules/timer/src/java/org/apache/geronimo/timer/ThreadPooledTimer.java Wed Feb  2 18:49:54 2005
@@ -35,7 +35,6 @@
 
 import EDU.oswego.cs.dl.util.concurrent.Executor;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.transaction.context.TransactionContext;
 import org.apache.geronimo.transaction.context.TransactionContextManager;
 
@@ -68,7 +67,7 @@
         this.transactionContextManager = transactionContextManager;
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         delegate = new Timer(true);
     }
 

Modified: geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java (original)
+++ geronimo/trunk/modules/tomcat/src/java/org/apache/geronimo/tomcat/TomcatWebAppContext.java Wed Feb  2 18:49:54 2005
@@ -34,7 +34,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.security.deploy.Security;
 
 
@@ -147,7 +146,7 @@
         this.path = path;
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
 
         // See the note of TomcatContainer::addContext
         container.addContext(this);

Modified: geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/log/HOWLLog.java
URL: http://svn.apache.org/viewcvs/geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/log/HOWLLog.java?view=diff&r1=151105&r2=151106
==============================================================================
--- geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/log/HOWLLog.java (original)
+++ geronimo/trunk/modules/transaction/src/java/org/apache/geronimo/transaction/log/HOWLLog.java Wed Feb  2 18:49:54 2005
@@ -30,7 +30,6 @@
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.WaitingException;
 import org.apache.geronimo.system.serverinfo.ServerInfo;
 import org.apache.geronimo.transaction.manager.LogException;
 import org.apache.geronimo.transaction.manager.Recovery;
@@ -209,7 +208,7 @@
         return serverInfo;
     }
 
-    public void doStart() throws WaitingException, Exception {
+    public void doStart() throws Exception {
         started = true;
         setLogFileDir(logFileDir);
         log.info("Initiating transaction manager recovery");
@@ -223,7 +222,7 @@
         log.info("In doubt transactions recovered from log");
     }
 
-    public void doStop() throws WaitingException, Exception {
+    public void doStop() throws Exception {
         started = false;
         logger.close();
         recovered = null;



Mime
View raw message