Search in sources :

Example 1 with Server

use of org.eclipse.wst.server.core.internal.Server in project liferay-ide by liferay.

the class ServerStartup method importGlobalServers.

private void importGlobalServers(File serversFile) {
    try {
        final IMemento serversMemento = XMLMemento.loadMemento(new FileInputStream(serversFile));
        if (serversMemento != null) {
            final ResourceManager resourceManager = ResourceManager.getInstance();
            final IMemento[] mementos = serversMemento.getChildren("server");
            if (ListUtil.isNotEmpty(mementos)) {
                for (IMemento memento : mementos) {
                    final Server server = new Server(null);
                    try {
                        final Method loadFromMemento = Base.class.getDeclaredMethod("loadFromMemento", IMemento.class, IProgressMonitor.class);
                        if (loadFromMemento != null) {
                            loadFromMemento.setAccessible(true);
                            loadFromMemento.invoke(server, memento, null);
                            if (ServerCore.findServer(server.getId()) == null) {
                                final Method addServer = ResourceManager.class.getDeclaredMethod("addServer", IServer.class);
                                if (addServer != null) {
                                    addServer.setAccessible(true);
                                    addServer.invoke(resourceManager, server);
                                    final IServerWorkingCopy wc = server.createWorkingCopy();
                                    ServerDelegate delegate = (ServerDelegate) wc.loadAdapter(ServerDelegate.class, null);
                                    delegate.importRuntimeConfiguration(wc.getRuntime(), null);
                                    wc.save(true, null);
                                }
                            }
                        }
                    } catch (Exception e) {
                        LiferayServerUI.logError("Unable to load server from memento", e);
                    }
                }
            }
        }
    } catch (FileNotFoundException e) {
    }
}
Also used : Server(org.eclipse.wst.server.core.internal.Server) IServer(org.eclipse.wst.server.core.IServer) IServerWorkingCopy(org.eclipse.wst.server.core.IServerWorkingCopy) FileNotFoundException(java.io.FileNotFoundException) ResourceManager(org.eclipse.wst.server.core.internal.ResourceManager) Method(java.lang.reflect.Method) ServerDelegate(org.eclipse.wst.server.core.model.ServerDelegate) IMemento(org.eclipse.wst.server.core.internal.IMemento) FileInputStream(java.io.FileInputStream) BackingStoreException(org.osgi.service.prefs.BackingStoreException) FileNotFoundException(java.io.FileNotFoundException)

Example 2 with Server

use of org.eclipse.wst.server.core.internal.Server in project liferay-ide by liferay.

the class PortalPublishTask method getTasks.

@SuppressWarnings("rawtypes")
public PublishOperation[] getTasks(IServer server, int kind, List modules, List kindList) {
    List<BundlePublishOperation> tasks = new ArrayList<BundlePublishOperation>();
    PortalServerBehavior serverBehavior = (PortalServerBehavior) server.loadAdapter(PortalServerBehavior.class, null);
    if (ListUtil.isNotEmpty(modules)) {
        final int size = modules.size();
        for (int i = 0; i < size; i++) {
            IModule[] module = (IModule[]) modules.get(i);
            Integer deltaKind = (Integer) kindList.get(i);
            boolean needClean = false;
            IModuleResourceDelta[] deltas = ((Server) server).getPublishedResourceDelta(module);
            for (IModuleResourceDelta delta : deltas) {
                final IModuleResource resource = delta.getModuleResource();
                final IFile resourceFile = (IFile) resource.getAdapter(IFile.class);
                if (resourceFile != null && resourceFile.getName().equals("bnd.bnd")) {
                    needClean = true;
                    break;
                }
            }
            switch(kind) {
                case IServer.PUBLISH_FULL:
                case IServer.PUBLISH_INCREMENTAL:
                case IServer.PUBLISH_AUTO:
                    final IProject project = module[0].getProject();
                    switch(deltaKind) {
                        case ServerBehaviourDelegate.ADDED:
                            addOperation(BundlePublishFullAddCleanBuild.class, tasks, server, module);
                            break;
                        case ServerBehaviourDelegate.CHANGED:
                            if (needClean) {
                                addOperation(BundlePublishFullAddCleanBuild.class, tasks, server, module);
                            } else {
                                addOperation(BundlePublishFullAdd.class, tasks, server, module);
                            }
                            break;
                        case ServerBehaviourDelegate.REMOVED:
                            addOperation(BundlePublishFullRemove.class, tasks, server, module);
                            break;
                        case ServerBehaviourDelegate.NO_CHANGE:
                            final IBundleProject bundleProject = LiferayCore.create(IBundleProject.class, project);
                            if (bundleProject != null) {
                                try {
                                    if (isUserRedeploy(serverBehavior, module[0]) || !isDeployed(server, serverBehavior, bundleProject.getSymbolicName())) {
                                        addOperation(BundlePublishFullAddCleanBuild.class, tasks, server, module);
                                    }
                                } catch (CoreException e) {
                                    LiferayServerCore.logError("Unable to get bsn for project " + project.getName(), e);
                                }
                            }
                            break;
                        default:
                            break;
                    }
                    break;
                default:
                    break;
            }
        }
    }
    return tasks.toArray(new PublishOperation[0]);
}
Also used : IModuleResource(org.eclipse.wst.server.core.model.IModuleResource) IModule(org.eclipse.wst.server.core.IModule) IFile(org.eclipse.core.resources.IFile) IServer(org.eclipse.wst.server.core.IServer) Server(org.eclipse.wst.server.core.internal.Server) IBundleProject(com.liferay.ide.core.IBundleProject) ArrayList(java.util.ArrayList) IModuleResourceDelta(org.eclipse.wst.server.core.model.IModuleResourceDelta) IProject(org.eclipse.core.resources.IProject) CoreException(org.eclipse.core.runtime.CoreException)

Example 3 with Server

use of org.eclipse.wst.server.core.internal.Server in project liferay-ide by liferay.

the class PortalServerBehavior method stop.

@Override
public void stop(boolean force) {
    if (force) {
        terminate();
        return;
    }
    int state = getServer().getServerState();
    // If stopped or stopping, no need to run stop command again
    if (state == IServer.STATE_STOPPED || state == IServer.STATE_STOPPING) {
        return;
    } else if (state == IServer.STATE_STARTING) {
        terminate();
        return;
    }
    try {
        if (state != IServer.STATE_STOPPED) {
            setServerState(IServer.STATE_STOPPING);
        }
        final ILaunchConfiguration launchConfig = ((Server) getServer()).getLaunchConfiguration(false, null);
        final ILaunchConfigurationWorkingCopy wc = launchConfig.getWorkingCopy();
        final String args = renderCommandLine(getRuntimeStopProgArgs(), " ");
        // Remove JMX arguments if present
        final String existingVMArgs = wc.getAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, (String) null);
        if (existingVMArgs.indexOf(JMX_EXCLUDE_ARGS[0]) >= 0) {
            wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, mergeArguments(existingVMArgs, getRuntimeStopVMArguments(), JMX_EXCLUDE_ARGS, false));
        } else {
            wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, mergeArguments(existingVMArgs, getRuntimeStopVMArguments(), null, true));
        }
        wc.setAttribute(IJavaLaunchConfigurationConstants.ATTR_PROGRAM_ARGUMENTS, args);
        wc.setAttribute("org.eclipse.debug.ui.private", true);
        wc.setAttribute(ATTR_STOP, "true");
        wc.launch(ILaunchManager.RUN_MODE, new NullProgressMonitor());
    } catch (Exception e) {
        LiferayServerCore.logError("Error stopping portal", e);
    }
}
Also used : NullProgressMonitor(org.eclipse.core.runtime.NullProgressMonitor) ILaunchConfiguration(org.eclipse.debug.core.ILaunchConfiguration) Server(org.eclipse.wst.server.core.internal.Server) IServer(org.eclipse.wst.server.core.IServer) ILaunchConfigurationWorkingCopy(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy) CoreException(org.eclipse.core.runtime.CoreException) IOException(java.io.IOException)

Example 4 with Server

use of org.eclipse.wst.server.core.internal.Server in project webtools.servertools by eclipse.

the class GlobalCommandManager method getReadOnlyFiles.

/**
 * Return an array of read-only files.
 *
 * @param server a server
 * @return a possibly empty array of files
 */
public static IFile[] getReadOnlyFiles(IServerAttributes server) {
    try {
        List<IFile> list = new ArrayList<IFile>();
        IFile file = ((Server) server).getFile();
        if (file != null)
            list.add(file);
        IFile[] files = new IFile[list.size()];
        list.toArray(files);
        return files;
    } catch (Exception e) {
        if (Trace.SEVERE) {
            Trace.trace(Trace.STRING_SEVERE, "getReadOnlyFiles", e);
        }
    }
    return null;
}
Also used : IFile(org.eclipse.core.resources.IFile) Server(org.eclipse.wst.server.core.internal.Server) ArrayList(java.util.ArrayList) ExecutionException(org.eclipse.core.commands.ExecutionException)

Example 5 with Server

use of org.eclipse.wst.server.core.internal.Server in project webtools.servertools by eclipse.

the class ServerTableViewer method addListeners.

protected void addListeners() {
    serverResourceListener = new IServerLifecycleListener() {

        public void serverAdded(IServer server) {
            addServer(server);
            server.addServerListener(serverListener);
            ((Server) server).addPublishListener(publishListener);
        }

        public void serverChanged(IServer server) {
            refreshServer(server);
        }

        public void serverRemoved(IServer server) {
            removeServer(server);
            server.removeServerListener(serverListener);
            ((Server) server).removePublishListener(publishListener);
        }
    };
    ServerCore.addServerLifecycleListener(serverResourceListener);
    publishListener = new PublishAdapter() {

        public void publishStarted(IServer server) {
            handlePublishChange(server, true);
        }

        public void publishFinished(IServer server, IStatus status) {
            handlePublishChange(server, false);
        }
    };
    serverListener = new IServerListener() {

        public void serverChanged(ServerEvent event) {
            if (event == null)
                return;
            int eventKind = event.getKind();
            IServer server = event.getServer();
            if ((eventKind & ServerEvent.SERVER_CHANGE) != 0) {
                // server change event
                if ((eventKind & ServerEvent.STATE_CHANGE) != 0) {
                    refreshServer(server);
                    int state = event.getState();
                    String id = server.getId();
                    if (state == IServer.STATE_STARTING || state == IServer.STATE_STOPPING) {
                        boolean startThread = false;
                        synchronized (starting) {
                            if (!starting.contains(id)) {
                                if (starting.isEmpty())
                                    startThread = true;
                                starting.add(id);
                            }
                        }
                        if (startThread)
                            startThread();
                    } else {
                        boolean stopThread = false;
                        synchronized (starting) {
                            if (starting.contains(id)) {
                                starting.remove(id);
                                if (starting.isEmpty())
                                    stopThread = true;
                            }
                        }
                        if (stopThread)
                            stopThread();
                    }
                } else
                    refreshServer(server);
            } else if ((eventKind & ServerEvent.MODULE_CHANGE) != 0) {
                // module change event
                if ((eventKind & ServerEvent.STATE_CHANGE) != 0 || (eventKind & ServerEvent.PUBLISH_STATE_CHANGE) != 0) {
                    refreshServer(server);
                }
            }
        }
    };
    // add listeners to servers
    IServer[] servers = ServerCore.getServers();
    if (servers != null) {
        int size = servers.length;
        for (int i = 0; i < size; i++) {
            servers[i].addServerListener(serverListener);
            ((Server) servers[i]).addPublishListener(publishListener);
        }
    }
}
Also used : IStatus(org.eclipse.core.runtime.IStatus) Server(org.eclipse.wst.server.core.internal.Server) PublishAdapter(org.eclipse.wst.server.core.util.PublishAdapter)

Aggregations

Server (org.eclipse.wst.server.core.internal.Server)23 IServer (org.eclipse.wst.server.core.IServer)17 IStatus (org.eclipse.core.runtime.IStatus)11 CoreException (org.eclipse.core.runtime.CoreException)7 IOException (java.io.IOException)5 NullProgressMonitor (org.eclipse.core.runtime.NullProgressMonitor)5 IProgressMonitor (org.eclipse.core.runtime.IProgressMonitor)4 Job (org.eclipse.core.runtime.jobs.Job)4 ControllableServerBehavior (org.jboss.ide.eclipse.as.wtp.core.server.behavior.ControllableServerBehavior)4 File (java.io.File)3 IFile (org.eclipse.core.resources.IFile)3 Status (org.eclipse.core.runtime.Status)3 IServerType (org.eclipse.wst.server.core.IServerType)3 IMemento (org.eclipse.wst.server.core.internal.IMemento)3 IControllableServerBehavior (org.jboss.ide.eclipse.as.wtp.core.server.behavior.IControllableServerBehavior)3 CDKServer (org.jboss.tools.openshift.cdk.server.core.internal.adapter.CDKServer)3 ArrayList (java.util.ArrayList)2 IProject (org.eclipse.core.resources.IProject)2 IDebugEventSetListener (org.eclipse.debug.core.IDebugEventSetListener)2 ILaunchConfiguration (org.eclipse.debug.core.ILaunchConfiguration)2