public void stop()

in plugins/org.apache.karaf.eik.wtp.core/src/main/java/org/apache/karaf/eik/wtp/core/server/KarafServerBehavior.java [150:198]


    public void stop(final boolean force) {
        mbeanProviderServiceTracker.close();

        if (force) {
            terminate();
            return;
        }

        final int state = getServer().getServerState();

        if (state == IServer.STATE_STOPPED || state == IServer.STATE_STOPPING) {
            return;
        } else if (state == IServer.STATE_STARTING) {
            terminate();
            return;
        } else {
            setServerState(IServer.STATE_STOPPING);

            try {
                if (mbeanProvider != null && mbeanProvider.isOpen()) {
                    mbeanProvider.getMBean(FRAMEWORK, FrameworkMBean.class).shutdownFramework();
                    mbeanProvider.close();
                }
            } catch (final IOException e) {
            }

            final Job j = new Job("Waiting for server to stop...") {

                @Override
                protected IStatus run(final IProgressMonitor monitor) {
                    try {
                        final ILaunch launch = getServer().getLaunch();
                        if (launch != null) {
                            launch.terminate();
                        }
                    } catch (final DebugException e) {
                        // Do nothing
                    }

                    setServerState(IServer.STATE_STOPPED);

                    return Status.OK_STATUS;
                }
            };

            j.setSystem(true);
            j.schedule(SERVER_TERMINATE_JOB_SCHEDULE_DELAY);
        }
    }