Author: rob.stryker(a)jboss.com
Date: 2008-11-17 14:06:38 -0500 (Mon, 17 Nov 2008)
New Revision: 11853
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/IServerLogListener.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/ServerLog.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/ServerLogger.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/ServerLogView.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java
Removed:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/EventLogModel.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublisherEventLogger.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/SimpleTreeItem.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/ShowStackTraceDialog.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogActionProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogContentProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogLabelProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/IEventLogLabelProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/ComplexEventLogLabelProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/PackagesPublishLabelProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/PollingLabelProvider.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/Messages.java
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/Messages.properties
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/PackagesPublisher.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/polling/JMXPoller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/JstPublisher.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/NullPublisher.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/SingleFilePublisher.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/IJBossServerPublisher.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/IServerStatePoller.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DeployableServer.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DeployableServerBehavior.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/JBossServerBehavior.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/PollThread.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/FileUtil.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/ModuleUtil.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ServerActionProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
Log:
JBIDE-3078
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/Messages.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/Messages.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/Messages.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -8,6 +8,7 @@
public static String ExceptionUnexpectedException;
public static String ExceptionCannotDeployFile;
public static String ErrorDuringPublish;
+ public static String PublishSuccessful;
public static String ArchivePublishSettings;
public static String SelectServerWizard;
public static String SelectServerWizardDescription;
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/Messages.properties
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/Messages.properties 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/Messages.properties 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,7 +1,8 @@
ExceptionCannotScanDirectory=Cannot scan directory
ExceptionUnexpectedException=Unexpected exception
-ExceptionCannotDeployFile=Cannot deploy file {0}
-ErrorDuringPublish=Error during publish
+ExceptionCannotDeployFile=Cannot publish file {0}
+ErrorDuringPublish=Error publishing module {0}
+PublishSuccessful=Module {0} published.
ArchivePublishSettings=Archive Publish Settings
SelectServerWizard=Select Server Wizard
SelectServerWizardDescription=Select the server to publish the archive to.
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/PackagesPublisher.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/PackagesPublisher.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.archives.webtools/src/org/jboss/ide/eclipse/archives/webtools/modules/PackagesPublisher.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -27,9 +27,11 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
+import org.eclipse.osgi.util.NLS;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.model.IModuleFile;
@@ -43,13 +45,11 @@
import
org.jboss.ide.eclipse.archives.webtools.modules.PackageModuleFactory.ExtendedModuleFile;
import
org.jboss.ide.eclipse.archives.webtools.modules.PackageModuleFactory.IExtendedModuleResource;
import
org.jboss.ide.eclipse.archives.webtools.modules.PackageModuleFactory.PackagedModuleDelegate;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-import org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger;
-import
org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger.PublisherFileUtilListener;
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
import org.jboss.ide.eclipse.as.core.server.IJBossServerPublisher;
import org.jboss.ide.eclipse.as.core.util.FileUtil;
import org.jboss.ide.eclipse.as.core.util.ServerConverter;
+import org.jboss.ide.eclipse.as.core.util.FileUtil.FileUtilListener;
/**
*
@@ -59,8 +59,7 @@
protected IDeployableServer server;
protected IModuleResourceDelta[] delta;
- protected EventLogTreeItem eventRoot;
-
+ protected FileUtilListener listener = new FileUtilListener();
public PackagesPublisher() {
}
@@ -76,14 +75,13 @@
}
public IStatus publishModule(IServer server, IModule[] module,
int publishType, IModuleResourceDelta[] delta,
- EventLogTreeItem log, IProgressMonitor monitor)
+ IProgressMonitor monitor)
throws CoreException {
this.server = ServerConverter.getDeployableServer(server);
- eventRoot = log;
this.delta = delta;
+ IModule module2 = module[0];
try {
- IModule module2 = module[0];
// if it's being removed
if( publishType == REMOVE_PUBLISH ) {
removeModule(module2, monitor);
@@ -93,10 +91,23 @@
publishModule(module2, true, monitor);
}
}catch(Exception e) {
- IStatus status = new Status(IStatus.ERROR, IntegrationPlugin.PLUGIN_ID,
Messages.ErrorDuringPublish, e);
- IntegrationPlugin.getDefault().getLog().log(status);
+ IStatus status = new Status(IStatus.ERROR, IntegrationPlugin.PLUGIN_ID,
+ NLS.bind(Messages.ErrorDuringPublish, module2.getName()), e);
+ return status;
}
- return null;
+
+ if( listener.getStatuses().length > 0 ) {
+ MultiStatus ms = new MultiStatus(IntegrationPlugin.PLUGIN_ID, IStatus.ERROR,
+ NLS.bind(Messages.ErrorDuringPublish, module2.getName()), null);
+ for( int i = 0; i < listener.getStatuses().length; i++ ) {
+ ms.add(listener.getStatuses()[i]);
+ }
+ return ms;
+ }
+
+ IStatus ret = new Status(IStatus.OK, IntegrationPlugin.PLUGIN_ID,
+ NLS.bind(Messages.PublishSuccessful, module2.getName()));
+ return ret;
}
protected void removeModule(IModule module, IProgressMonitor monitor) {
@@ -106,7 +117,6 @@
IPath sourcePath = pack.getArchiveFilePath();
IPath destPath = new Path(server.getDeployFolder()).append(sourcePath.lastSegment());
// remove the entire file or folder
- PublisherFileUtilListener listener = new PublisherFileUtilListener(eventRoot);
FileUtil.safeDelete(destPath.toFile(), listener);
}
}
@@ -124,10 +134,8 @@
return;
}
- PublisherFileUtilListener listener = new PublisherFileUtilListener(eventRoot);
- eventRoot.setProperty(PublisherEventLogger.CHANGED_RESOURCE_COUNT,
countChanges(delta));
if( incremental ) {
- publishFromDelta(module, destPathRoot, sourcePath.removeLastSegments(1), delta,
listener);
+ publishFromDelta(module, destPathRoot, sourcePath.removeLastSegments(1), delta);
} else {
// full publish, copy whole folder or file
FileUtil.fileSafeCopy(sourcePath.toFile(),
destPathRoot.append(sourcePath.lastSegment()).toFile(), listener);
@@ -135,10 +143,10 @@
}
protected void publishFromDelta(IModule module, IPath destPathRoot, IPath sourcePrefix,
- IModuleResourceDelta[] delta, PublisherFileUtilListener listener) {
+ IModuleResourceDelta[] delta) {
ArrayList<IPath> changedFiles = new ArrayList<IPath>();
for( int i = 0; i < delta.length; i++ ) {
- publishFromDeltaHandle(delta[i], destPathRoot, sourcePrefix, changedFiles, listener);
+ publishFromDeltaHandle(delta[i], destPathRoot, sourcePrefix, changedFiles);
}
}
@@ -183,7 +191,7 @@
}
protected void publishFromDeltaHandle(IModuleResourceDelta delta, IPath destRoot,
- IPath sourcePrefix, ArrayList<IPath> changedFiles, PublisherFileUtilListener
listener) {
+ IPath sourcePrefix, ArrayList<IPath> changedFiles) {
switch( delta.getKind()) {
case IModuleResourceDelta.REMOVED:
// removed might not be IExtendedModuleResource
@@ -244,7 +252,7 @@
IModuleResourceDelta[] children = delta.getAffectedChildren();
if( children != null ) {
for( int i = 0; i < children.length; i++ ) {
- publishFromDeltaHandle(children[i], destRoot, sourcePrefix, changedFiles, listener);
+ publishFromDeltaHandle(children[i], destRoot, sourcePrefix, changedFiles);
}
}
}
@@ -253,5 +261,4 @@
PackagedModuleDelegate delegate =
(PackagedModuleDelegate)module.loadAdapter(PackagedModuleDelegate.class, new
NullProgressMonitor());
return delegate == null ? null : delegate.getPackage();
}
-
}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/EventLogModel.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/EventLogModel.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/EventLogModel.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,215 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.core.extensions.events;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Date;
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.wst.server.core.IServer;
-import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
-import org.jboss.ide.eclipse.as.core.util.SimpleTreeItem;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- *
- * @author rob.stryker(a)jboss.com
- */
-public class EventLogModel {
- public static final String ENABLE_LOGGING_PREFERENCE =
"org.jboss.ide.eclipse.as.core.extensions.events.enableLogging";
- public static final String EVENT_TYPE_EXCEPTION =
"org.jboss.ide.eclipse.as.core.extensions.events.EXCEPTION";
- public static final String EXCEPTION_PROPERTY =
"org.jboss.ide.eclipse.as.core.extensions.events.EXCEPTION_PROPERTY";
-
- public static void enableLogging(boolean enabled) {
- if( enabled )
- enableLogging();
- else
- disableLogging();
- }
-
- public static void enableLogging() {
- IEclipsePreferences prefs = new
DefaultScope().getNode(JBossServerCorePlugin.PLUGIN_ID);
- prefs.putBoolean(ENABLE_LOGGING_PREFERENCE, true);
- try {
- prefs.flush();
- } catch (BackingStoreException e) {
- JBossServerCorePlugin.getDefault().getLog().log(new Status(IStatus.ERROR,
JBossServerCorePlugin.PLUGIN_ID, "Saving preferences failed", e));
- }
- }
-
- public static void disableLogging() {
- IEclipsePreferences prefs = new
DefaultScope().getNode(JBossServerCorePlugin.PLUGIN_ID);
- prefs.putBoolean(ENABLE_LOGGING_PREFERENCE, false);
- try {
- prefs.flush();
- } catch (BackingStoreException e) {
- JBossServerCorePlugin.getDefault().getLog().log(new Status(IStatus.ERROR,
JBossServerCorePlugin.PLUGIN_ID, "Saving preferences failed", e));
- }
- ServerEventModel[] models = getModels();
- for( int i = 0; i < models.length; i++ ) {
- models[i].clearEvents();
- }
- }
-
- public static boolean isLoggingEnabled() {
- IEclipsePreferences prefs = new
DefaultScope().getNode(JBossServerCorePlugin.PLUGIN_ID);
- return prefs.getBoolean(ENABLE_LOGGING_PREFERENCE, false);
- }
-
- public static final String JBOSS_EVENT_ROOT_TYPE = "jboss.event.root";
- private static EventLogModel instance;
- public static EventLogModel getDefault() {
- if( instance == null )
- instance = new EventLogModel();
- return instance;
- }
-
- public static ServerEventModel getModel(IServer server) {
- return getModel(server.getId());
- }
-
- public static ServerEventModel getModel(String serverId) {
- return getDefault().getEventModel(serverId);
- }
-
- public static ServerEventModel[] getModels() {
- return getDefault().getEventModels();
- }
-
- public static void markChanged(EventLogTreeItem item) {
- if( item == null ) return;
- SimpleTreeItem root = item.getRoot();
- if( root != null && root instanceof EventLogRoot ) {
- String serverId = ((EventLogRoot)root).getServerId();
- getDefault().fireItemChanged(serverId, item);
- }
- }
-
- public static interface IEventLogListener {
- public void eventModelChanged(String serverId, EventLogTreeItem changed);
- }
-
- private HashMap serverToModel;
- private ArrayList listeners;
- public EventLogModel() {
- serverToModel = new HashMap();
- listeners = new ArrayList();
- }
-
- public void addListener(IEventLogListener listener) {
- if( !listeners.contains(listener)) listeners.add(listener);
- }
- public void removeListener(IEventLogListener listener) {
- listeners.remove(listener);
- }
- public void fireItemChanged(String serverId, EventLogTreeItem changed) {
- IEventLogListener[] listenerArray = (IEventLogListener[]) listeners.toArray(new
IEventLogListener[listeners.size()]);
- for( int i = 0; i < listenerArray.length; i++ ) {
- listenerArray[i].eventModelChanged(serverId, changed);
- }
- }
-
- public ServerEventModel getEventModel(String serverId) {
- if( serverToModel.get(serverId) != null )
- return (ServerEventModel)serverToModel.get(serverId);
- ServerEventModel m = new ServerEventModel(serverId);
- serverToModel.put(serverId, m);
- return m;
- }
-
- public ServerEventModel[] getEventModels() {
- Collection c = serverToModel.values();
- return (ServerEventModel[]) c.toArray(new ServerEventModel[c.size()]);
- }
-
- public static class ServerEventModel {
- private String id;
- private EventLogRoot root;
- protected ServerEventModel(String serverId) {
- this.id = serverId;
- root = new EventLogRoot(this);
- }
- public String getId() {
- return id;
- }
- public EventLogRoot getRoot() {
- return root;
- }
- public void clearEvents() {
- root.deleteChildren();
- }
- }
-
- public static class EventLogTreeItem extends SimpleTreeItem {
- public static final String DATE =
"org.jboss.ide.eclipse.as.core.model.EventLogTreeItem.Date";
- protected String specificType, majorType;
- public EventLogTreeItem(SimpleTreeItem parent, String majorType, String specificType)
{
- super(parent, null);
- this.specificType = specificType;
- this.majorType = majorType;
- setProperty(DATE, new Long(new Date().getTime()));
- }
- public String getEventClass() {
- return majorType;
- }
- public String getSpecificType() {
- return specificType;
- }
- public EventLogTreeItem getEventRoot() {
- SimpleTreeItem item = this;
- while(item.getParent() != null && item.getParent() instanceof
EventLogTreeItem)
- item = item.getParent();
- return (EventLogTreeItem)item;
- }
-
- }
-
- public static class EventLogRoot extends EventLogTreeItem {
- protected ServerEventModel model;
- public EventLogRoot(ServerEventModel model) {
- super(null, null, JBOSS_EVENT_ROOT_TYPE);
- this.model = model;
- }
- public ServerEventModel getModel() {
- return model;
- }
- public String getServerId() {
- return model.getId();
- }
-
- public void addChild(SimpleTreeItem item) {
- if( isLoggingEnabled() )
- super.addChild(item);
- }
-
- public void addChildren(SimpleTreeItem[] kids) {
- if( isLoggingEnabled() )
- super.addChildren(kids);
- }
-
- }
-}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/IServerLogListener.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/IServerLogListener.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/IServerLogListener.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -0,0 +1,8 @@
+package org.jboss.ide.eclipse.as.core.extensions.events;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.wst.server.core.IServer;
+
+public interface IServerLogListener {
+ public void logging(IStatus status, IServer server);
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/ServerLog.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/ServerLog.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/ServerLog.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -0,0 +1,46 @@
+package org.jboss.ide.eclipse.as.core.extensions.events;
+
+import java.io.File;
+import java.util.ArrayList;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.adaptor.EclipseLog;
+import org.eclipse.osgi.framework.log.FrameworkLogEntry;
+
+public class ServerLog extends EclipseLog {
+ public ServerLog(File file) {
+ super(file);
+ }
+
+ public void log(IStatus status) {
+ log(getLog(status));
+ }
+
+ // Hard Coppied from PlatformLogWriter. You'd think
+ // they'd make that method static or some shit.
+ protected FrameworkLogEntry getLog(IStatus status) {
+ Throwable t = status.getException();
+ ArrayList<FrameworkLogEntry> childlist = new
ArrayList<FrameworkLogEntry>();
+
+ int stackCode = t instanceof CoreException ? 1 : 0;
+ // ensure a substatus inside a CoreException is properly logged
+ if (stackCode == 1) {
+ IStatus coreStatus = ((CoreException) t).getStatus();
+ if (coreStatus != null) {
+ childlist.add(getLog(coreStatus));
+ }
+ }
+
+ if (status.isMultiStatus()) {
+ IStatus[] children = status.getChildren();
+ for (int i = 0; i < children.length; i++) {
+ childlist.add(getLog(children[i]));
+ }
+ }
+
+ FrameworkLogEntry[] children = (FrameworkLogEntry[]) (childlist.size() == 0 ? null :
childlist.toArray(new FrameworkLogEntry[childlist.size()]));
+
+ return new FrameworkLogEntry(status.getPlugin(), status.getSeverity(),
status.getCode(), status.getMessage(), stackCode, t, children);
+ }
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/ServerLogger.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/ServerLogger.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/events/ServerLogger.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -0,0 +1,86 @@
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+* This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.ide.eclipse.as.core.extensions.events;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+
+public class ServerLogger {
+ private static final IPath LOG_LOCATION =
JBossServerCorePlugin.getDefault().getStateLocation().append("logs");
+
+ private static ServerLogger instance;
+ public static ServerLogger getDefault() {
+ if( instance == null ) {
+ instance = new ServerLogger();
+ if( !LOG_LOCATION.toFile().exists())
+ LOG_LOCATION.toFile().mkdirs();
+ }
+ return instance;
+ }
+
+ private HashMap<String, ServerLog> map = new HashMap<String, ServerLog>();
+ private HashMap<String, ArrayList<IServerLogListener>> listeners =
+ new HashMap<String, ArrayList<IServerLogListener>>();
+
+ public void addListener(IServer server, IServerLogListener listener) {
+ ArrayList<IServerLogListener> list = listeners.get(server.getId());
+ if( list == null ) {
+ list = new ArrayList<IServerLogListener>();
+ listeners.put(server.getId(), list);
+ }
+ list.add(listener);
+ }
+
+ public void removeListener(IServer server, IServerLogListener listener) {
+ ArrayList<IServerLogListener> list = listeners.get(server.getId());
+ if( list != null ) {
+ list.remove(listener);
+ }
+ }
+
+ public void log(IServer server, IStatus status) {
+ ServerLog log = map.get(server.getId());
+ if( log == null ) {
+ log = new ServerLog(getServerLogFile(server));
+ map.put(server.getId(), log);
+ }
+ log.log(status);
+
+ ArrayList<IServerLogListener> list = listeners.get(server.getId());
+ if( list != null ) {
+ IServerLogListener[] listeners =
+ list.toArray(new IServerLogListener[list.size()]);
+ for( int i = 0; i < listeners.length;i++)
+ listeners[i].logging(status, server);
+ }
+ }
+
+ public File getServerLogFile(IServer server) {
+ return server == null ? LOG_LOCATION.toFile() :
LOG_LOCATION.append(server.getId()).toFile();
+ }
+}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/polling/JMXPoller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/polling/JMXPoller.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/extensions/polling/JMXPoller.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -35,16 +35,17 @@
import javax.naming.InitialContext;
import javax.naming.NamingException;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
import org.eclipse.wst.server.core.IServer;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+import org.jboss.ide.eclipse.as.core.extensions.events.ServerLogger;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXClassLoaderRepository;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXUtil;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXUtil.CredentialException;
import org.jboss.ide.eclipse.as.core.server.IServerStatePoller;
import org.jboss.ide.eclipse.as.core.server.internal.PollThread;
import org.jboss.ide.eclipse.as.core.server.internal.ServerStatePollerType;
-import org.jboss.ide.eclipse.as.core.util.SimpleTreeItem;
/**
* A poller dedicated to server startup, checks via JMX
@@ -54,35 +55,33 @@
public class JMXPoller implements IServerStatePoller {
public static final String POLLER_ID =
"org.jboss.ide.eclipse.as.core.runtime.server.JMXPoller";
+
+ public static final int CODE = 2 << 16;
+ public static final int JMXPOLLER_CODE = POLLING_CODE | CODE;
- public static final String STARTED_PROPERTY =
"org.jboss.ide.eclipse.as.core.extensions.polling.jmx.STARTED_PROPERTY";
- public static final String EVENT_TYPE_STARTING =
"org.jboss.ide.eclipse.as.core.extensions.polling.jmx.eventTypes.STARTING";
-
public static final String REQUIRED_USER =
"org.jboss.ide.eclipse.as.core.extensions.polling.jmx.REQUIRED_USER";
public static final String REQUIRED_PASS =
"org.jboss.ide.eclipse.as.core.extensions.polling.jmx.REQUIRED_PASS";
public static final int STATE_STARTED = 1;
public static final int STATE_STOPPED = 0;
- public static final int STATE_TRANSITION = -1;
+ public static final int STATE_TRANSITION = 2;
private int started;
- private boolean canceled;
- private boolean done;
+ private boolean canceled, done;
private boolean waitingForCredentials = false;
+ private boolean ceFound,nnfeFound,startingFound;
+
+
private IServer server;
private ServerStatePollerType type;
private PollingException pollingException = null;
private RequiresInfoException requiresInfoException = null;
private Properties requiredPropertiesReturned = null;
- private EventLogTreeItem event;
-
public void beginPolling(IServer server, boolean expectedState,
PollThread pt) {
- this.canceled = false;
- this.done = false;
+ ceFound = nnfeFound = startingFound = canceled = done = false;
this.server = server;
- event = pt.getActiveEvent();
launchJMXPoller();
}
@@ -114,7 +113,11 @@
boolean b = ((Boolean) attInfo).booleanValue();
started = b ? STATE_STARTED : STATE_TRANSITION;
done = b;
- new JMXEvent(event, b);
+ if( !startingFound ) {
+ startingFound = true;
+ IStatus s = new Status(IStatus.INFO, JBossServerCorePlugin.PLUGIN_ID,
CODE|started, "Server is starting", null);
+ log(s);
+ }
}
} catch (SecurityException se) {
synchronized(this) {
@@ -137,10 +140,18 @@
}
} catch (CommunicationException ce) {
started = STATE_STOPPED;
- new JMXEvent(event, ce);
+ if( !ceFound ) {
+ ceFound = true;
+ IStatus s = new Status(IStatus.WARNING, JBossServerCorePlugin.PLUGIN_ID,
CODE|started, ce.getMessage(), ce);
+ log(s);
+ }
} catch (NamingException nnfe) {
started = STATE_STOPPED;
- new JMXEvent(event, nnfe);
+ if( !nnfeFound ) {
+ nnfeFound = true;
+ IStatus s = new Status(IStatus.WARNING, JBossServerCorePlugin.PLUGIN_ID,
CODE|started, nnfe.getMessage(), nnfe);
+ log(s);
+ }
} catch( OperationsException e ) {
failingException = e;
} catch (MBeanException e) {
@@ -232,20 +243,7 @@
throw requiresInfoException;
return done;
}
-
- public class JMXEvent extends EventLogTreeItem {
- public JMXEvent(SimpleTreeItem parent, boolean started) {
- super(parent, PollThread.SERVER_STATE_MAJOR_TYPE, EVENT_TYPE_STARTING );
- setProperty(STARTED_PROPERTY, new Boolean(started));
- }
-
- public JMXEvent(SimpleTreeItem parent, Exception e) {
- super(parent, PollThread.SERVER_STATE_MAJOR_TYPE, EventLogModel.EVENT_TYPE_EXCEPTION
);
- setProperty(EventLogModel.EXCEPTION_PROPERTY, e);
- }
- }
-
public void failureHandled(Properties properties) {
if( properties == null ) {
done = true;
@@ -276,4 +274,9 @@
public int getTimeoutBehavior() {
return TIMEOUT_BEHAVIOR_IGNORE;
}
+
+ private void log(IStatus s) {
+ if( !canceled )
+ ServerLogger.getDefault().log(server,s);
+ }
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/JstPublisher.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/JstPublisher.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/JstPublisher.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -25,6 +25,7 @@
import java.io.FileFilter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.runtime.Assert;
@@ -32,6 +33,7 @@
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
@@ -46,15 +48,13 @@
import org.eclipse.wst.server.core.model.ModuleDelegate;
import org.eclipse.wst.server.core.util.ProjectModule;
import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-import org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger.DeletedEvent;
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
import org.jboss.ide.eclipse.as.core.server.IJBossServerPublisher;
import org.jboss.ide.eclipse.as.core.server.xpl.ModulePackager;
import org.jboss.ide.eclipse.as.core.server.xpl.PublishUtil;
import org.jboss.ide.eclipse.as.core.util.FileUtil;
import org.jboss.ide.eclipse.as.core.util.ServerConverter;
+import org.jboss.ide.eclipse.as.core.util.FileUtil.FileUtilListener;
import org.jboss.ide.eclipse.as.core.util.FileUtil.IFileUtilListener;
/**
@@ -65,12 +65,9 @@
*/
public class JstPublisher implements IJBossServerPublisher {
- public static final int BUILD_FAILED_CODE = 100;
- public static final int PACKAGE_UNDETERMINED_CODE = 101;
protected IModuleResourceDelta[] delta;
protected IDeployableServer server;
- protected EventLogTreeItem eventRoot;
protected int publishState = IServer.PUBLISH_STATE_NONE;
@@ -87,11 +84,9 @@
}
public IStatus publishModule(IServer server, IModule[] module,
- int publishType, IModuleResourceDelta[] delta,
- EventLogTreeItem log, IProgressMonitor monitor) throws CoreException {
+ int publishType, IModuleResourceDelta[] delta, IProgressMonitor monitor) throws
CoreException {
IStatus status = null;
this.server = ServerConverter.getDeployableServer(server);
- this.eventRoot = log;
this.delta = delta;
boolean deleted = false;
@@ -118,27 +113,29 @@
protected IStatus fullPublish(IModule[] moduleTree, IModule module, IProgressMonitor
monitor) throws CoreException {
- eventRoot.setProperty(PublisherEventLogger.CHANGED_RESOURCE_COUNT,
countChanges(delta));
IPath deployPath = getDeployPath(moduleTree);
ModuleDelegate md = (ModuleDelegate)module.loadAdapter(ModuleDelegate.class, monitor);
IModuleResource[] members = md.members();
+ ArrayList<IStatus> list = new ArrayList<IStatus>();
// if the module we're publishing is a project, not a binary, clean it's
folder
if( !(new Path(module.getName()).segmentCount() > 1 ))
- localSafeDelete(deployPath, eventRoot);
+ list.addAll(Arrays.asList(localSafeDelete(deployPath)));
- IStatus[] results;
if( !deployPackaged(moduleTree) && !isBinaryObject(moduleTree))
- results = new PublishUtil(server.getServer()).publishFull(members, deployPath,
monitor);
+ list.addAll(Arrays.asList(new PublishUtil(server.getServer()).publishFull(members,
deployPath, monitor)));
else if( isBinaryObject(moduleTree))
- results = copyBinaryModule(moduleTree);
+ list.addAll(Arrays.asList(copyBinaryModule(moduleTree)));
else
- results = packModuleIntoJar(moduleTree[moduleTree.length-1], deployPath);
+ list.addAll(Arrays.asList(packModuleIntoJar(moduleTree[moduleTree.length-1],
deployPath)));
- int length = results == null ? 0 : results.length;
- for( int i = 0; i < length; i++ ) {
- new PublisherEventLogger.PublishUtilStatusWrapper(eventRoot, results[i]);
+ if( list.size() > 0 ) {
+ MultiStatus ms = new MultiStatus(JBossServerCorePlugin.PLUGIN_ID, IStatus.ERROR,
"Full Publish Failed for module " + module.getName(), null);
+ for( int i = 0; i < list.size(); i++ )
+ ms.add(list.get(i));
+ return ms;
}
+
// adjust timestamps
FileFilter filter = new FileFilter() {
@@ -150,11 +147,12 @@
};
FileUtil.touch(filter, deployPath.toFile(), true);
publishState = IServer.PUBLISH_STATE_NONE;
- return null;
+
+ IStatus ret = new Status(IStatus.OK, JBossServerCorePlugin.PLUGIN_ID,
countMembers(module) + " files modified in module " + module.getName(), null);
+ return ret;
}
protected IStatus incrementalPublish(IModule[] moduleTree, IModule module,
IProgressMonitor monitor) throws CoreException {
- eventRoot.setProperty(PublisherEventLogger.CHANGED_RESOURCE_COUNT,
countChanges(delta));
IStatus[] results = new IStatus[] {};
IPath deployPath = getDeployPath(moduleTree);
if( !deployPackaged(moduleTree) && !isBinaryObject(moduleTree))
@@ -165,21 +163,26 @@
else
results = packModuleIntoJar(moduleTree[moduleTree.length-1], deployPath);
}
- int length = results == null ? 0 : results.length;
- for( int i = 0; i < length; i++ ) {
- new PublisherEventLogger.PublishUtilStatusWrapper(eventRoot, results[i]);
+ if( results != null && results.length > 0 ) {
+ MultiStatus ms = new MultiStatus(JBossServerCorePlugin.PLUGIN_ID, IStatus.ERROR,
"Incremental Publish Failed for module " + module.getName(), null);
+ for( int i = 0; i < results.length; i++ )
+ ms.add(results[i]);
+ return ms;
}
-
- return null;
+ IStatus ret = new Status(IStatus.OK, JBossServerCorePlugin.PLUGIN_ID,
countChanges(delta) + " files modified in module " + module.getName(), null);
+ return ret;
}
protected IStatus unpublish(IDeployableServer jbServer, IModule[] module,
IProgressMonitor monitor) throws CoreException {
- eventRoot.setProperty(PublisherEventLogger.CHANGED_RESOURCE_COUNT,
countMembers(module[module.length-1]));
- boolean error = localSafeDelete(getDeployPath(module), eventRoot);
- if( error ) {
+ IStatus[] errors = localSafeDelete(getDeployPath(module));
+ if( errors.length > 0 ) {
+ IModule mod = module[module.length-1];
publishState = IServer.PUBLISH_STATE_FULL;
- throw new CoreException(new Status(IStatus.WARNING, JBossServerCorePlugin.PLUGIN_ID,
"Unable to delete module from server. (" + getModulePath(module) +
")", new Exception("Some files were not removed from the server")));
+ MultiStatus ms = new MultiStatus(JBossServerCorePlugin.PLUGIN_ID, IStatus.ERROR,
"Unable to delete module " + mod.getName(), new Exception("Some files were
not removed from the server"));
+ for( int i = 0; i < errors.length; i++ )
+ ms.addAll(errors[i]);
+ throw new CoreException(ms);
}
return null;
}
@@ -220,28 +223,6 @@
return false;
}
-
- protected class FileUtilListener implements IFileUtilListener {
- protected ArrayList<IStatus> errors = new ArrayList<IStatus>();
- public void fileCoppied(File source, File dest, boolean result,
- Exception e) {
- if(!result)
- errors.add(new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, "Error
copying file " + source.toString() + " to " + dest.toString(), e));
- }
- public void fileDeleted(File file, boolean result, Exception e) {
- if(!result)
- errors.add(new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, "Error
deleting file " + file.toString(), e));
- }
-
- public void folderDeleted(File file, boolean result, Exception e) {
- if(!result)
- errors.add(new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, "Error
deleting folder " + file.toString(), e));
- }
-
- public IStatus[] getStatuses() {
- return (IStatus[]) errors.toArray(new IStatus[errors.size()]);
- }
- }
protected IStatus[] copyBinaryModule(IModule[] moduleTree) {
try {
IPath deployPath = getDeployPath(moduleTree);
@@ -274,30 +255,25 @@
* @param event
* @return returns whether an error was found
*/
- protected boolean localSafeDelete(IPath deployPath, final EventLogTreeItem event) {
+ protected IStatus[] localSafeDelete(IPath deployPath) {
String serverDeployFolder = server.getDeployFolder();
Assert.isTrue(!deployPath.toFile().equals(new Path(serverDeployFolder).toFile()),
"An attempt to delete your entire deploy folder has been prevented. This should never
happen");
-
- final Boolean[] errorFound = new Boolean[] { new Boolean(false)};
+ final ArrayList<IStatus> status = new ArrayList<IStatus>();
IFileUtilListener listener = new IFileUtilListener() {
public void fileCoppied(File source, File dest, boolean result,Exception e) {}
public void fileDeleted(File file, boolean result, Exception e) {
if( result == false || e != null ) {
- errorFound[0] = new Boolean(true);
- new DeletedEvent(event, file, result, e);
- EventLogModel.markChanged(event);
+ status.add(new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, "Attempt
to delete " + file.getAbsolutePath() + " failed",e));
}
}
public void folderDeleted(File file, boolean result, Exception e) {
if( result == false || e != null ) {
- errorFound[0] = new Boolean(true);
- new DeletedEvent(event, file, result, e);
- EventLogModel.markChanged(event);
+ status.add(new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, "Attempt
to delete " + file.getAbsolutePath() + " failed",e));
}
}
};
FileUtil.safeDelete(deployPath.toFile(), listener);
- return errorFound[0].booleanValue();
+ return (IStatus[]) status.toArray(new IStatus[status.size()]);
}
protected boolean deployPackaged(IModule[] moduleTree) {
if(
moduleTree[moduleTree.length-1].getModuleType().getId().equals("jst.utility"))
return true;
@@ -325,7 +301,7 @@
} catch (IOException e) {
IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, 0,
"unable to assemble module", e); //$NON-NLS-1$
- throw new CoreException(status);
+ return new IStatus[]{status};
}
finally{
try{
@@ -334,10 +310,10 @@
catch(IOException e){
IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, 0,
"unable to assemble module", e); //$NON-NLS-1$
- throw new CoreException(status);
+ return new IStatus[]{status};
}
}
- return null;
+ return new IStatus[]{};
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/NullPublisher.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/NullPublisher.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/NullPublisher.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -27,7 +27,6 @@
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.model.IModuleResourceDelta;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
import org.jboss.ide.eclipse.as.core.server.IJBossServerPublisher;
/**
@@ -44,8 +43,7 @@
}
public IStatus publishModule(IServer server, IModule[] module,
- int publishType, IModuleResourceDelta[] delta,
- EventLogTreeItem log, IProgressMonitor monitor) throws CoreException {
+ int publishType, IModuleResourceDelta[] delta, IProgressMonitor monitor) throws
CoreException {
return null;
}
}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublisherEventLogger.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublisherEventLogger.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublisherEventLogger.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,115 +0,0 @@
-package org.jboss.ide.eclipse.as.core.publishers;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.wst.server.core.IModule;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-import org.jboss.ide.eclipse.as.core.util.SimpleTreeItem;
-import org.jboss.ide.eclipse.as.core.util.FileUtil.IFileUtilListener;
-
-public class PublisherEventLogger {
- public static final String PUBLISH_MAJOR_TYPE =
"org.jboss.ide.eclipse.as.core.publishers.Events.MajorType";
- public static final String MODULE_NAME =
"org.jboss.ide.eclipse.as.core.publishers.Events.Properties.ModuleName";
-
- public static class PublishEvent extends EventLogTreeItem {
- public PublishEvent(SimpleTreeItem parent, String specificType) {
- super(parent, PUBLISH_MAJOR_TYPE, specificType);
- }
- public PublishEvent(SimpleTreeItem parent, String specificType, IModule module) {
- super(parent, PUBLISH_MAJOR_TYPE, specificType);
- setProperty(MODULE_NAME, module.getName());
- }
- }
-
- // type
- public static final String ROOT_EVENT =
"org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger.ROOT_EVENT";
- public static final String MODULE_ROOT_EVENT =
"org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger.MODULE_ROOT_EVENT";
- // properties
- public static final String MODULE_KIND =
"org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger.MODULE_KIND";
- public static final String DELTA_KIND =
"org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger.DELTA_KIND";
- public static final String MODULE_PUBLISH_STATE =
"org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger.MODULE_PUBLISH_STATE";
-
- public static PublishEvent createModuleRootEvent(EventLogTreeItem parent, IModule[]
module,
- int kind, int deltaKind, int moduleStateKind) {
- PublishEvent event = new PublishEvent(parent, MODULE_ROOT_EVENT);
- String name = "";
- for( int i = 0; i < module.length; i++ ) {
- name += module[i].getName() + Path.SEPARATOR;
- }
- name = name.substring(0, name.length()-1);
- event.setProperty(MODULE_KIND, new Integer(kind));
- event.setProperty(DELTA_KIND, new Integer(deltaKind));
- event.setProperty(MODULE_PUBLISH_STATE, new Integer(moduleStateKind));
- event.setProperty(MODULE_NAME, name);
- EventLogModel.markChanged(parent);
- return event;
- }
-
- public static PublishEvent createRemoveResultsEvent() {
- return null;
- }
-
- public static class PublisherFileUtilListener implements IFileUtilListener {
- EventLogTreeItem log;
- public PublisherFileUtilListener(EventLogTreeItem log) {
- this.log = log;
- }
- public void fileCoppied(File source, File dest, boolean result, Exception e) {
- new CoppiedEvent(log, source, dest, result, e);
- EventLogModel.markChanged(log);
- }
- public void fileDeleted(File file, boolean result, Exception e) {
- new DeletedEvent(log, file, result, e);
- EventLogModel.markChanged(log);
- }
- public void folderDeleted(File file, boolean result, Exception e) {
- new DeletedEvent(log, file, result, e);
- EventLogModel.markChanged(log);
- }
- }
- // event types
- public static final String FILE_EVENT_MAJOR_TYPE =
"org.jboss.ide.eclipse.as.core.publishers.Events.FILE_EVENT_MAJOR_TYPE";
- public static final String FOLDER_DELETED_EVENT =
"org.jboss.ide.eclipse.as.core.publishers.Events.FOLDER_DELETED_EVENT";
- public static final String FILE_DELETED_EVENT =
"org.jboss.ide.eclipse.as.core.publishers.Events.FILE_DELETED_EVENT";
- public static final String FILE_COPPIED_EVENT =
"org.jboss.ide.eclipse.as.core.publishers.Events.FILE_COPPIED_EVENT";
- // properties
- public static final String SUCCESS_PROPERTY =
"org.jboss.ide.eclipse.as.core.publishers.Events.Properties.SUCCESS_PROPERTY";
- public static final String SOURCE_PROPERTY =
"org.jboss.ide.eclipse.as.core.publishers.Events.Properties.SOURCE_PROPERTY";
- public static final String DEST_PROPERTY =
"org.jboss.ide.eclipse.as.core.publishers.Events.Properties.DEST_PROPERTY";
- public static final String EXCEPTION_MESSAGE =
"org.jboss.ide.eclipse.as.core.publishers.Events.Properties.EXCEPTION_PROPERTY";
- public static final String CHANGED_MODULE_COUNT =
"org.jboss.ide.eclipse.as.core.publishers.Events.Properties.CHANGED_MODULE_COUNT_PROPERTY";
- public static final String CHANGED_RESOURCE_COUNT =
"org.jboss.ide.eclipse.as.core.publishers.Events.Properties.CHANGED_RESOURCE_COUNT_PROPERTY";
-
-
- public static class DeletedEvent extends EventLogTreeItem {
- public DeletedEvent(EventLogTreeItem parent, File file, boolean result, Exception e) {
- super(parent, FILE_EVENT_MAJOR_TYPE, file.isDirectory() ? FOLDER_DELETED_EVENT :
FILE_DELETED_EVENT);
- setProperty(SUCCESS_PROPERTY, new Boolean(result));
- setProperty(DEST_PROPERTY, file.getAbsolutePath());
- if( e != null )
- setProperty(EXCEPTION_MESSAGE, e.getMessage());
- }
-
- }
- public static class CoppiedEvent extends EventLogTreeItem {
- public CoppiedEvent(EventLogTreeItem parent, File source, File destination, boolean
result, Exception e) {
- super(parent, FILE_EVENT_MAJOR_TYPE, FILE_COPPIED_EVENT);
- setProperty(SOURCE_PROPERTY, source.getAbsolutePath());
- setProperty(DEST_PROPERTY, destination.getAbsolutePath());
- setProperty(SUCCESS_PROPERTY, new Boolean(result));
- if( e != null )
- setProperty(EXCEPTION_MESSAGE, e.getMessage());
- }
- }
-
- public static final String PUBLISH_UTIL_STATUS_WRAPPER_TYPE =
"org.jboss.ide.eclipse.as.core.publishers.Events.publishUtilStatusWrapperType";
- public static class PublishUtilStatusWrapper extends EventLogTreeItem {
- public PublishUtilStatusWrapper(EventLogTreeItem parent, IStatus status) {
- super(parent, PUBLISH_MAJOR_TYPE, PUBLISH_UTIL_STATUS_WRAPPER_TYPE);
- setData(status);
- }
- }
-}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/SingleFilePublisher.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/SingleFilePublisher.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/SingleFilePublisher.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -14,11 +14,7 @@
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.model.IModuleResourceDelta;
import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
import
org.jboss.ide.eclipse.as.core.modules.SingleDeployableFactory.SingleDeployableModuleDelegate;
-import org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger.CoppiedEvent;
-import org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger.DeletedEvent;
import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
import org.jboss.ide.eclipse.as.core.server.IJBossServerPublisher;
import org.jboss.ide.eclipse.as.core.util.FileUtil;
@@ -28,7 +24,6 @@
public class SingleFilePublisher implements IJBossServerPublisher {
private IDeployableServer server;
- private EventLogTreeItem root;
private int publishState = IServer.PUBLISH_STATE_NONE;
public SingleFilePublisher() {
}
@@ -46,11 +41,9 @@
}
public IStatus publishModule(IServer server, IModule[] module,
- int publishType, IModuleResourceDelta[] delta,
- EventLogTreeItem log, IProgressMonitor monitor) throws CoreException {
+ int publishType, IModuleResourceDelta[] delta, IProgressMonitor monitor) throws
CoreException {
this.server = ServerConverter.getDeployableServer(server);
- this.root = log;
IModule module2 = module[0];
@@ -63,7 +56,6 @@
} else if( publishType == INCREMENTAL_PUBLISH ) {
status = publish(this.server, module2, false, monitor);
}
- root.setProperty(PublisherEventLogger.CHANGED_RESOURCE_COUNT, new Integer(1));
return status;
}
@@ -73,22 +65,28 @@
if( delegate != null ) {
IPath sourcePath = delegate.getGlobalSourcePath();
IPath destFolder = new Path(server.getDeployFolder());
+ IPath tempDestFolder = new Path(server.getTempDeployFolder());
+ File tempDestFile = tempDestFolder.append(sourcePath.lastSegment()).toFile();
File destFile = destFolder.append(sourcePath.lastSegment()).toFile();
- FileUtilListener l = new FileUtilListener(root);
- FileUtil.fileSafeCopy(sourcePath.toFile(), destFile, l);
+ FileUtilListener l = new FileUtilListener();
+ FileUtil.fileSafeCopy(sourcePath.toFile(), tempDestFile, l);
+ boolean success = tempDestFile.renameTo(destFile);
if( updateTimestamp )
destFile.setLastModified(new Date().getTime());
- if( l.errorFound ) {
- publishState = IServer.PUBLISH_STATE_FULL;
+ if( l.errorFound || !success ) {
+ publishState = IServer.PUBLISH_STATE_FULL;
+ Exception e = l.e != null ? l.e : new Exception("Move from " + tempDestFile
+ " to " + destFile + " failed.");
+ return new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, "The module
cannot be published.", e);
}
} else {
// deleted module. o noes. Ignore it. We can't re-publish it, so just ignore it.
publishState = IServer.PUBLISH_STATE_UNKNOWN;
- Status status = new Status(IStatus.WARNING, JBossServerCorePlugin.PLUGIN_ID, "The
module cannot be published because it cannot be located. (" + module.getName() +
")");
- throw new CoreException(status);
+ Status status = new Status(IStatus.WARNING, JBossServerCorePlugin.PLUGIN_ID, "The
module cannot be published because it cannot be located. (" + module.getName() +
")");
+ return status;
}
- return null;
+ Status status = new Status(IStatus.OK, JBossServerCorePlugin.PLUGIN_ID, "Module
" + module.getName() + " coppied.");
+ return status;
}
protected IStatus unpublish(IDeployableServer server, IModule module, IProgressMonitor
monitor) throws CoreException {
@@ -97,42 +95,37 @@
if( delegate != null ) {
IPath sourcePath = delegate.getGlobalSourcePath();
IPath destFolder = new Path(server.getDeployFolder());
- FileUtilListener l = new FileUtilListener(root);
- FileUtil.safeDelete(destFolder.append(sourcePath.lastSegment()).toFile(), l);
+ FileUtilListener l = new FileUtilListener();
+ File destFile = destFolder.append(sourcePath.lastSegment()).toFile();
+ FileUtil.safeDelete(destFile, l);
if( l.errorFound ) {
publishState = IServer.PUBLISH_STATE_FULL;
- throw new CoreException(new Status(IStatus.WARNING, JBossServerCorePlugin.PLUGIN_ID,
"Unable to delete module from server.", new Exception("Some files were not
removed from the server")));
+ return new Status(IStatus.WARNING, JBossServerCorePlugin.PLUGIN_ID, "Unable to
delete module " + module.getName() + " from server.", l.e);
}
}
-
- return null;
+ Status status = new Status(IStatus.OK, JBossServerCorePlugin.PLUGIN_ID, "Module
" + module.getName() + " removed.");
+ return status;
}
public static class FileUtilListener implements IFileUtilListener {
- protected EventLogTreeItem root;
protected boolean errorFound = false;
- public FileUtilListener(EventLogTreeItem root) {
- this.root = root;
- }
+ protected Exception e;
public void fileCoppied(File source, File dest, boolean result,Exception e) {
if( result == false || e != null ) {
errorFound = true;
- new CoppiedEvent(root, source, dest, result, e);
- EventLogModel.markChanged(root);
+ this.e = e;
}
}
public void fileDeleted(File file, boolean result, Exception e) {
if( result == false || e != null ) {
errorFound = true;
- new DeletedEvent(root, file, result, e);
- EventLogModel.markChanged(root);
+ this.e = e;
}
}
public void folderDeleted(File file, boolean result, Exception e) {
if( result == false || e != null ) {
errorFound = true;
- new DeletedEvent(root, file, result, e);
- EventLogModel.markChanged(root);
+ this.e = e;
}
}
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/IJBossServerPublisher.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/IJBossServerPublisher.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/IJBossServerPublisher.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -27,7 +27,6 @@
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.model.IModuleResourceDelta;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
/**
*
@@ -39,14 +38,15 @@
public static final int INCREMENTAL_PUBLISH = 1;
public static final int FULL_PUBLISH = 2;
public static final int REMOVE_PUBLISH = 3;
+ public static final int POLLING_CODE = 1 << 24;
+
// pre-publish
public boolean accepts(IServer server, IModule[] module);
public IStatus publishModule(IServer server, IModule[] module,
- int publishType, IModuleResourceDelta[] delta,
- EventLogTreeItem log, IProgressMonitor monitor) throws CoreException;
+ int publishType, IModuleResourceDelta[] delta, IProgressMonitor monitor) throws
CoreException;
// post publish
public int getPublishState();
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/IServerStatePoller.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/IServerStatePoller.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/IServerStatePoller.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -34,7 +34,8 @@
*
*/
public interface IServerStatePoller {
-
+ public static final int POLLING_CODE = 1 << 24;
+
public static final boolean SERVER_UP = true;
public static final boolean SERVER_DOWN = false;
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DeployableServer.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DeployableServer.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DeployableServer.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -31,9 +31,7 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
import org.eclipse.jst.server.core.IEnterpriseApplication;
-import org.eclipse.jst.server.core.IWebModule;
import org.eclipse.wst.server.core.IModule;
-import org.eclipse.wst.server.core.IModuleType;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.IServerWorkingCopy;
import org.eclipse.wst.server.core.ServerPort;
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DeployableServerBehavior.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DeployableServerBehavior.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/DeployableServerBehavior.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -23,6 +23,8 @@
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
@@ -30,10 +32,8 @@
import org.eclipse.wst.server.core.ServerEvent;
import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
import org.jboss.ide.eclipse.as.core.ExtensionManager;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-import org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger;
-import org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger.PublishEvent;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+import org.jboss.ide.eclipse.as.core.extensions.events.ServerLogger;
import org.jboss.ide.eclipse.as.core.server.IJBossServerPublisher;
import
org.jboss.ide.eclipse.as.core.server.internal.launch.DeployableLaunchConfiguration;
@@ -50,9 +50,7 @@
workingCopy.setAttribute(DeployableLaunchConfiguration.ACTION_KEY,
DeployableLaunchConfiguration.START);
}
- protected PublishEvent publishRootEvent;
protected void publishStart(IProgressMonitor monitor) throws CoreException {
- publishRootEvent = new PublishEvent(null, PublisherEventLogger.ROOT_EVENT);
}
protected void publishFinish(IProgressMonitor monitor) throws CoreException {
@@ -64,12 +62,6 @@
}
if(allpublished)
setServerPublishState(IServer.PUBLISH_STATE_NONE);
-
- if( publishRootEvent.getChildren().length != 0 ) {
- EventLogTreeItem root = EventLogModel.getModel(getServer()).getRoot();
- root.addChild(publishRootEvent);
- }
- publishRootEvent = null;
}
@@ -90,28 +82,18 @@
IJBossServerPublisher publisher;
if( module.length > 0 && publishType != IJBossServerPublisher.NO_PUBLISH) {
- Integer i,j;
- i = (Integer)publishRootEvent.getProperty(PublisherEventLogger.CHANGED_MODULE_COUNT);
- publishRootEvent.setProperty(PublisherEventLogger.CHANGED_MODULE_COUNT, new Integer(i
== null ? 1 : i.intValue()+1));
- PublishEvent modulePublishEvent =
PublisherEventLogger.createModuleRootEvent(publishRootEvent, module, kind, deltaKind,
modulePublishState);
-
publisher = ExtensionManager.getDefault().getPublisher(getServer(), module);
if( publisher != null ) {
try {
- publisher.publishModule(getServer(), module, publishType,
- getPublishedResourceDelta(module),
- modulePublishEvent, monitor);
+ IStatus result = publisher.publishModule(getServer(), module, publishType,
+ getPublishedResourceDelta(module), monitor);
+ if( result != null )
+ ServerLogger.getDefault().log(getServer(), result);
} catch( CoreException ce ) {
throw ce;
} finally {
setModulePublishState(module, publisher.getPublishState());
}
- // add file changed count to top level element
- i =
(Integer)publishRootEvent.getProperty(PublisherEventLogger.CHANGED_RESOURCE_COUNT);
- j =
(Integer)modulePublishEvent.getProperty(PublisherEventLogger.CHANGED_RESOURCE_COUNT);
- j = j == null ? new Integer(0) : j;
- int count = (i == null ? 0 : i.intValue()) + j.intValue();
- publishRootEvent.setProperty(PublisherEventLogger.CHANGED_RESOURCE_COUNT, count);
}
}
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/JBossServerBehavior.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/JBossServerBehavior.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/JBossServerBehavior.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -36,8 +36,7 @@
import org.eclipse.debug.core.model.IProcess;
import org.eclipse.wst.server.core.IServer;
import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
+import org.jboss.ide.eclipse.as.core.extensions.events.ServerLogger;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.JMXRunnable;
import org.jboss.ide.eclipse.as.core.extensions.jmx.JMXModel.JMXSafeRunner;
import org.jboss.ide.eclipse.as.core.server.IServerStatePoller;
@@ -52,6 +51,10 @@
public class JBossServerBehavior extends DeployableServerBehavior {
private static final String STOP_FAILED_MESSAGE =
"Command to stop server failed. The next attempt will forcefully terminate the
process.";
+ private static final String FORCE_TERMINATED = "The server was shutdown forcefully.
All processes were terminated.";
+ private static final String TERMINATED = "Server processes have been
terminated.";
+ private static final String FORCE_TERMINATE_FAILED = "Killing the server process
has failed. The process may still be running.";
+
private PollThread pollThread = null;
protected IProcess process;
protected boolean nextStopRequiresForce = false;
@@ -80,11 +83,6 @@
if( !success ) {
if( process != null && !process.isTerminated() ) {
setServerStarted();
-
- // report it to error log
- IStatus s = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID,
- "", null);
- JBossServerCorePlugin.getDefault().getLog().log(s);
pollThread.cancel(STOP_FAILED_MESSAGE);
nextStopRequiresForce = true;
}
@@ -93,32 +91,39 @@
}
public void forceStop() {
- forceStop(true);
- }
-
- public void forceStop(boolean addEvent) {
// just terminate the process.
- if( process != null )
+ if( process != null && !process.isTerminated()) {
try {
process.terminate();
+ addForceStopEvent();
} catch( DebugException e ) {
- e.printStackTrace();
+ addForceStopFailedEvent(e);
}
+ }
process = null;
setServerStopped();
- if( addEvent ) {
- EventLogTreeItem tpe = new ForceShutdownEvent();
- EventLogModel.markChanged(tpe.getEventRoot());
- }
}
-
- public static final String FORCE_SHUTDOWN_EVENT_KEY =
"org.jboss.ide.eclipse.as.core.server.JBossServerBehavior.forceShutdown";
- public class ForceShutdownEvent extends EventLogTreeItem {
- public ForceShutdownEvent() {
- super(EventLogModel.getModel(getServer()).getRoot(),
PollThread.SERVER_STATE_MAJOR_TYPE, FORCE_SHUTDOWN_EVENT_KEY);
- }
+
+ protected void addForceStopFailedEvent(DebugException e) {
+ IStatus status = new Status(IStatus.ERROR,
+ JBossServerCorePlugin.PLUGIN_ID, 0,
+ FORCE_TERMINATE_FAILED, e);
+ ServerLogger.getDefault().log(getServer(), status);
}
+ protected void addForceStopEvent() {
+ IStatus status = new Status(IStatus.ERROR,
+ JBossServerCorePlugin.PLUGIN_ID, 0,
+ FORCE_TERMINATED, null);
+ ServerLogger.getDefault().log(getServer(), status);
+ }
+ protected void addProcessTerminatedEvent() {
+ IStatus status = new Status(IStatus.INFO,
+ JBossServerCorePlugin.PLUGIN_ID, 0,
+ TERMINATED, null);
+ ServerLogger.getDefault().log(getServer(), status);
+ }
+
public void setupLaunchConfiguration(ILaunchConfigurationWorkingCopy workingCopy,
IProgressMonitor monitor) throws CoreException {
JBossServerStartupLaunchConfiguration.setupLaunchConfiguration(workingCopy,
getServer());
}
@@ -126,9 +131,10 @@
protected transient IDebugEventSetListener processListener;
public void setProcess(final IProcess newProcess) {
- if (process != null)
+ if (process != null) {
+ System.out.println(process.isTerminated());
return;
-
+ }
process = newProcess;
if (processListener != null)
DebugPlugin.getDefault().removeDebugEventListener(processListener);
@@ -142,7 +148,8 @@
for (int i = 0; i < size; i++) {
if (process != null && process.equals(events[i].getSource()) &&
events[i].getKind() == DebugEvent.TERMINATE) {
DebugPlugin.getDefault().removeDebugEventListener(this);
- forceStop(false);
+ forceStop();
+ addProcessTerminatedEvent();
}
}
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/PollThread.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/PollThread.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/internal/PollThread.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,292 +1,313 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.core.server.internal;
-
-import java.util.Date;
-
-import org.eclipse.wst.server.core.IServer;
-import org.jboss.ide.eclipse.as.core.ExtensionManager;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogRoot;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-import org.jboss.ide.eclipse.as.core.server.IJBossServerConstants;
-import org.jboss.ide.eclipse.as.core.server.IPollerFailureHandler;
-import org.jboss.ide.eclipse.as.core.server.IServerStatePoller;
-import org.jboss.ide.eclipse.as.core.server.IServerStatePoller.PollingException;
-import org.jboss.ide.eclipse.as.core.server.IServerStatePoller.RequiresInfoException;
-import org.jboss.ide.eclipse.as.core.util.ServerConverter;
-import org.jboss.ide.eclipse.as.core.util.SimpleTreeItem;
-
-/**
- *
- * @author rob.stryker(a)jboss.com
- */
-public class PollThread extends Thread {
- public static final String SERVER_STATE_MAJOR_TYPE =
"org.jboss.ide.eclipse.as.core.runtime.server.polling.MajorType";
-
-
- public static final String SERVER_STARTING =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.server.starting";
- public static final String SERVER_STOPPING =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.server.stopping";
- public static final String FAILURE =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.failure";
- public static final String SUCCESS =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.success";
- public static final String POLLER_NOT_FOUND =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.pollerNotFound";
- public static final String POLL_THREAD_ABORTED =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.aborted";
- public static final String POLL_THREAD_ABORTED_CAUSE =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.aborted.cause";
- public static final String POLL_THREAD_TIMEOUT =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.timeout";
- public static final String EXPECTED_STATE =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThreadEvent.expectedState";
- public static final String POLL_THREAD_EXCEPTION =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.exception";
- public static final String POLL_THREAD_EXCEPTION_MESSAGE =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.exception.message";
-
-
- private boolean expectedState, abort, stateStartedOrStopped;
- private IServerStatePoller poller;
- private String abortMessage;
- private JBossServerBehavior behavior;
- private EventLogRoot eventRoot;
-
- private PollThreadEvent activeEvent;
-
- public PollThread(String name, boolean expectedState, JBossServerBehavior behavior) {
- super(name);
- this.expectedState = expectedState;
- this.abort = false;
- this.abortMessage = null;
- this.behavior = behavior;
- this.eventRoot = EventLogModel.getModel(behavior.getServer()).getRoot();
- this.poller = discoverPoller(behavior, expectedState);
- }
-
- protected IServerStatePoller discoverPoller(JBossServerBehavior behavior, boolean
expectedState) {
- JBossServer s = ServerConverter.getJBossServer(behavior.getServer());
- ServerAttributeHelper helper = s.getAttributeHelper();
- String key = expectedState == IServerStatePoller.SERVER_UP ?
- IJBossServerConstants.STARTUP_POLLER_KEY :
- IJBossServerConstants.SHUTDOWN_POLLER_KEY;
- String defaultPoller = expectedState == IServerStatePoller.SERVER_UP ?
- IJBossServerConstants.DEFAULT_STARTUP_POLLER :
- IJBossServerConstants.DEFAULT_SHUTDOWN_POLLER;
- String pollerId = helper.getAttribute(key, defaultPoller);
- ServerStatePollerType type = ExtensionManager.getDefault().getPollerType(pollerId);
- if( type != null ) {
- IServerStatePoller tempPoller = type.createPoller();
- tempPoller.setPollerType(type);
- return tempPoller;
- }
- return null;
- }
-
- public void cancel() {
- cancel(null);
- }
- public void cancel(String message) {
- abort = true;
- abortMessage = message;
- }
-
- public int getTimeout() {
- if( expectedState == IServerStatePoller.SERVER_UP)
- return (getServer().getStartTimeout()-2) * 1000;
- else
- return (getServer().getStopTimeout()-2) * 1000;
- }
-
-
- public void run() {
- // Poller not found
- if( poller == null ) {
- alertEventLogStarting();
- alertPollerNotFound();
- alertBehavior(!expectedState, false);
- return;
- }
-
- int maxWait = getTimeout();
- alertEventLogStarting();
-
- long startTime = new Date().getTime();
- boolean done = false;
- poller.beginPolling(getServer(), expectedState, this);
-
- // begin the loop; ask the poller every so often
- while( !stateStartedOrStopped && !abort && !done &&
- (new Date().getTime() < startTime + maxWait ) || maxWait < 0){
- try {
- Thread.sleep(100);
- } catch( InterruptedException ie ) { }
-
- try {
- done = poller.isComplete();
- } catch( PollingException e ) {
- // abort and put the message in event log
- poller.cancel(IServerStatePoller.CANCEL);
- poller.cleanup();
- alertEventLogPollerException(e);
- alertBehavior(IServerStatePoller.SERVER_DOWN, false);
- return;
- } catch( RequiresInfoException rie ) {
- // This way each request for new info is checked only once.
- if( !rie.getChecked()) {
- rie.setChecked();
- String action = expectedState == IServerStatePoller.SERVER_UP ? SERVER_STARTING :
SERVER_STOPPING;
- IPollerFailureHandler handler =
ExtensionManager.getDefault().getFirstPollFailureHandler(poller, action,
poller.getRequiredProperties());
- handler.handle(poller, action, poller.getRequiredProperties());
- }
- }
- stateStartedOrStopped = checkServerState();
- }
-
- // we stopped. Did we abort?
- if( stateStartedOrStopped ) {
- int state = behavior.getServer().getServerState();
- boolean success = false;
- if( expectedState == IServerStatePoller.SERVER_UP)
- success = state == IServer.STATE_STARTED;
- else
- success = state == IServer.STATE_STOPPED;
-
- poller.cancel(success ? IServerStatePoller.SUCCESS : IServerStatePoller.FAILED);
- poller.cleanup();
- } else if( abort ) {
- poller.cancel(IServerStatePoller.CANCEL);
- poller.cleanup();
- alertEventLogAbort();
- } else {
- boolean currentState = !expectedState;
- boolean finalAlert = true;
- if( done ) {
- // the poller has an answer
- try {
- currentState = poller.getState();
- poller.cleanup();
- alertBehavior(currentState, finalAlert);
- } catch( PollingException pe) {
- // abort and put the message in event log
- poller.cancel(IServerStatePoller.CANCEL);
- poller.cleanup();
- alertEventLogPollerException(pe);
- alertBehavior(IServerStatePoller.SERVER_DOWN, false);
- return;
- } catch( RequiresInfoException rie ) {
- // You don't have an answer... liar!
- }
- } else {
- // we timed out. get response from preferences
- poller.cancel(IServerStatePoller.TIMEOUT_REACHED);
- int behavior = poller.getTimeoutBehavior();
- poller.cleanup();
- alertEventLogTimeout();
- if( behavior != IServerStatePoller.TIMEOUT_BEHAVIOR_IGNORE) {
- // xnor;
- // if behavior is to succeed and we're expected to go up, we're up
- // if behavior is to fail and we're expecting to be down, we're up (failed
to shutdown)
- // all other cases, we're down.
- currentState = (expectedState == (behavior ==
IServerStatePoller.TIMEOUT_BEHAVIOR_SUCCEED));
- finalAlert = false;
- alertBehavior(currentState, finalAlert);
- }
- }
- }
- }
-
- protected boolean checkServerState() {
- int state = behavior.getServer().getServerState();
- if( state == IServer.STATE_STARTED ) return true;
- if( state == IServer.STATE_STOPPED ) return true;
- return false;
- }
-
- protected void alertBehavior(boolean currentState, boolean finalAlert) {
- if( currentState != expectedState ) {
- // it didnt work... cancel all processes! force stop
- behavior.forceStop(false);
- if( finalAlert ) alertEventLogFailure();
- } else {
- if( currentState == IServerStatePoller.SERVER_UP )
- behavior.setServerStarted();
- else {
- behavior.forceStop(false);
- }
- if( finalAlert ) alertEventLogSuccess(currentState);
- }
- }
-
- protected IServer getServer() {
- return behavior.getServer();
- }
-
-
- /*
- * Event Log Stuff here!
- */
- protected void alertEventLogStarting() {
- if( expectedState == IServerStatePoller.SERVER_UP) {
- activeEvent = new PollThreadEvent(eventRoot, SERVER_STARTING, expectedState);
- } else {
- activeEvent = new PollThreadEvent(eventRoot, SERVER_STOPPING, expectedState);
- }
- EventLogModel.markChanged(eventRoot);
- }
-
- public PollThreadEvent getActiveEvent() {
- return activeEvent;
- }
-
- protected void alertEventLogPollerException(PollingException e) {
- PollThreadEvent event = new PollThreadEvent(activeEvent, POLL_THREAD_EXCEPTION,
expectedState);
- event.setProperty(POLL_THREAD_EXCEPTION_MESSAGE, e.getMessage());
- EventLogModel.markChanged(activeEvent);
- }
-
- protected void alertEventLogAbort() {
- PollThreadEvent event = new PollThreadEvent(activeEvent, POLL_THREAD_ABORTED,
expectedState);
- event.setProperty(POLL_THREAD_ABORTED_CAUSE, abortMessage);
- EventLogModel.markChanged(activeEvent);
- }
- protected void alertEventLogTimeout() {
- PollThreadEvent event = new PollThreadEvent(activeEvent, POLL_THREAD_TIMEOUT,
expectedState);
- EventLogModel.markChanged(activeEvent);
- }
- protected void alertEventLogFailure() {
- PollThreadEvent event = new PollThreadEvent(eventRoot, FAILURE, expectedState);
- EventLogModel.markChanged(eventRoot);
- }
- protected void alertEventLogSuccess(boolean currentState) {
- PollThreadEvent event = new PollThreadEvent(activeEvent, SUCCESS, expectedState);
- EventLogModel.markChanged(eventRoot);
- }
- protected void alertPollerNotFound() {
- PollThreadEvent event = new PollThreadEvent(activeEvent, POLLER_NOT_FOUND,
expectedState);
- EventLogModel.markChanged(activeEvent);
- }
-
-
- public class PollThreadEvent extends EventLogTreeItem {
- public PollThreadEvent(SimpleTreeItem parent, String type, boolean expectedState) {
- super(parent, SERVER_STATE_MAJOR_TYPE, type);
- setProperty(EXPECTED_STATE, new Boolean(expectedState));
- }
-
- public boolean getExpectedState() {
- return ((Boolean) getProperty(EXPECTED_STATE)).booleanValue();
- }
- }
-}
+/**
+ * JBoss, a Division of Red Hat
+ * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.ide.eclipse.as.core.server.internal;
+
+import java.util.Date;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.core.ExtensionManager;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+import org.jboss.ide.eclipse.as.core.extensions.events.ServerLogger;
+import org.jboss.ide.eclipse.as.core.server.IJBossServerConstants;
+import org.jboss.ide.eclipse.as.core.server.IPollerFailureHandler;
+import org.jboss.ide.eclipse.as.core.server.IServerStatePoller;
+import org.jboss.ide.eclipse.as.core.server.IServerStatePoller.PollingException;
+import org.jboss.ide.eclipse.as.core.server.IServerStatePoller.RequiresInfoException;
+import org.jboss.ide.eclipse.as.core.util.ServerConverter;
+
+/**
+ *
+ * @author rob.stryker(a)jboss.com
+ */
+public class PollThread extends Thread {
+ // PollThread status objects look like this:
+ // 00000001xxxxxxxxaaaaaaaaaaaaaaaa
+ // 00000001000000010000000000xxx00x
+ public static final int POLLING_ROOT_CODE = IServerStatePoller.POLLING_CODE | 1 <<
16;
+ public static final int SUCCESS = 0x1;
+ public static final int FAIL = 0;
+ public static final int POLLING_FAIL_CODE = POLLING_ROOT_CODE | FAIL;
+ public static final int STATE_MASK = 0x111000;
+ public static final int STATE_UNKNOWN = IServer.STATE_UNKNOWN << 3;
+ public static final int STATE_STARTING = IServer.STATE_STARTING << 3;
+ public static final int STATE_STARTED = IServer.STATE_STARTED << 3;
+ public static final int STATE_STOPPING = IServer.STATE_STOPPING << 3;
+ public static final int STATE_STOPPED = IServer.STATE_STOPPED << 3;
+
+ public static final String SERVER_STARTING =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.server.starting";
+ public static final String SERVER_STOPPING =
"org.jboss.ide.eclipse.as.core.runtime.server.PollThread.server.stopping";
+
+ private boolean expectedState, abort, stateStartedOrStopped;
+ private IServerStatePoller poller;
+ private String abortMessage;
+ private JBossServerBehavior behavior;
+ private String pollerId;
+
+ public PollThread(String name, boolean expectedState,
+ JBossServerBehavior behavior) {
+ super(name);
+ this.expectedState = expectedState;
+ this.abort = false;
+ this.abortMessage = null;
+ this.behavior = behavior;
+ this.poller = discoverPoller(behavior, expectedState);
+ }
+
+ protected IServerStatePoller discoverPoller(JBossServerBehavior behavior,
+ boolean expectedState) {
+ JBossServer s = ServerConverter.getJBossServer(behavior.getServer());
+ ServerAttributeHelper helper = s.getAttributeHelper();
+ String key = expectedState == IServerStatePoller.SERVER_UP ?
IJBossServerConstants.STARTUP_POLLER_KEY
+ : IJBossServerConstants.SHUTDOWN_POLLER_KEY;
+ String defaultPoller = expectedState == IServerStatePoller.SERVER_UP ?
IJBossServerConstants.DEFAULT_STARTUP_POLLER
+ : IJBossServerConstants.DEFAULT_SHUTDOWN_POLLER;
+ pollerId = helper.getAttribute(key, defaultPoller);
+ ServerStatePollerType type = ExtensionManager.getDefault()
+ .getPollerType(pollerId);
+ if (type != null) {
+ IServerStatePoller tempPoller = type.createPoller();
+ tempPoller.setPollerType(type);
+ return tempPoller;
+ }
+ return null;
+ }
+
+ public void cancel() {
+ cancel(null);
+ }
+
+ public void cancel(String message) {
+ abort = true;
+ abortMessage = message;
+ poller.cancel(IServerStatePoller.CANCEL);
+ }
+
+ public int getTimeout() {
+ if (expectedState == IServerStatePoller.SERVER_UP)
+ return (getServer().getStartTimeout() - 2) * 1000;
+ else
+ return (getServer().getStopTimeout() - 2) * 1000;
+ }
+
+ public void run() {
+ // Poller not found
+ if (poller == null) {
+ alertEventLogStarting();
+ alertPollerNotFound();
+ alertBehavior(!expectedState, false);
+ return;
+ }
+
+ int maxWait = getTimeout();
+ alertEventLogStarting();
+
+ long startTime = new Date().getTime();
+ boolean done = false;
+ poller.beginPolling(getServer(), expectedState, this);
+
+ // begin the loop; ask the poller every so often
+ while (!stateStartedOrStopped && !abort && !done
+ && (new Date().getTime() < startTime + maxWait) || maxWait < 0) {
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException ie) {
+ }
+
+ try {
+ done = poller.isComplete();
+ } catch (PollingException e) {
+ // abort and put the message in event log
+ poller.cancel(IServerStatePoller.CANCEL);
+ poller.cleanup();
+ alertEventLogPollerException(e);
+ alertBehavior(!expectedState, false);
+ return;
+ } catch (RequiresInfoException rie) {
+ // This way each request for new info is checked only once.
+ if (!rie.getChecked()) {
+ rie.setChecked();
+ String action = expectedState == IServerStatePoller.SERVER_UP ? SERVER_STARTING
+ : SERVER_STOPPING;
+ IPollerFailureHandler handler = ExtensionManager
+ .getDefault().getFirstPollFailureHandler(poller,
+ action, poller.getRequiredProperties());
+ handler.handle(poller, action, poller
+ .getRequiredProperties());
+ }
+ }
+ stateStartedOrStopped = checkServerState();
+ }
+
+ // we stopped. Did we abort?
+ if (stateStartedOrStopped) {
+ int state = behavior.getServer().getServerState();
+ boolean success = false;
+ if (expectedState == IServerStatePoller.SERVER_UP)
+ success = state == IServer.STATE_STARTED;
+ else
+ success = state == IServer.STATE_STOPPED;
+
+ poller.cancel(success ? IServerStatePoller.SUCCESS
+ : IServerStatePoller.FAILED);
+ poller.cleanup();
+ } else if (abort) {
+ poller.cleanup();
+ alertEventLogAbort();
+ } else {
+ boolean currentState = !expectedState;
+ boolean finalAlert = true;
+ if (done) {
+ // the poller has an answer
+ try {
+ currentState = poller.getState();
+ poller.cleanup();
+ alertBehavior(currentState, finalAlert);
+ } catch (PollingException pe) {
+ // abort and put the message in event log
+ poller.cancel(IServerStatePoller.CANCEL);
+ poller.cleanup();
+ alertEventLogPollerException(pe);
+ alertBehavior(!expectedState, false);
+ return;
+ } catch (RequiresInfoException rie) {
+ // You don't have an answer... liar!
+ }
+ } else {
+ // we timed out. get response from preferences
+ poller.cancel(IServerStatePoller.TIMEOUT_REACHED);
+ int behavior = poller.getTimeoutBehavior();
+ poller.cleanup();
+ alertEventLogTimeout();
+ if (behavior != IServerStatePoller.TIMEOUT_BEHAVIOR_IGNORE) {
+ // xnor;
+ // if behavior is to succeed and we're expected to go up,
+ // we're up
+ // if behavior is to fail and we're expecting to be down,
+ // we're up (failed to shutdown)
+ // all other cases, we're down.
+ currentState = (expectedState == (behavior ==
IServerStatePoller.TIMEOUT_BEHAVIOR_SUCCEED));
+ finalAlert = false;
+ alertBehavior(currentState, finalAlert);
+ }
+ }
+ }
+ }
+
+ protected boolean checkServerState() {
+ int state = behavior.getServer().getServerState();
+ if (state == IServer.STATE_STARTED)
+ return true;
+ if (state == IServer.STATE_STOPPED)
+ return true;
+ return false;
+ }
+
+ protected void alertBehavior(boolean currentState, boolean finalAlert) {
+ if (currentState != expectedState) {
+ // it didnt work... cancel all processes! force stop
+ behavior.forceStop();
+ if (finalAlert)
+ alertEventLogFailure();
+ } else {
+ if (currentState == IServerStatePoller.SERVER_UP)
+ behavior.setServerStarted();
+ else
+ behavior.forceStop();
+
+ if (finalAlert)
+ alertEventLogSuccess(currentState);
+ }
+ }
+
+ protected IServer getServer() {
+ return behavior.getServer();
+ }
+
+ /*
+ * Event Log Stuff here!
+ */
+ protected void alertEventLogStarting() {
+ String message = expectedState ? "Server Starting" : "Server shutting
down";
+ int state = expectedState ? STATE_STARTING : STATE_STOPPING;
+
+ IStatus status = new Status(IStatus.INFO,
+ JBossServerCorePlugin.PLUGIN_ID, POLLING_ROOT_CODE | state, message, null);
+ ServerLogger.getDefault().log(behavior.getServer(), status);
+ }
+
+ protected void alertEventLogPollerException(PollingException e) {
+ IStatus status = new Status(IStatus.ERROR,
+ JBossServerCorePlugin.PLUGIN_ID, POLLING_FAIL_CODE, "Failure in Poll
Thread", e);
+ ServerLogger.getDefault().log(behavior.getServer(), status);
+ }
+
+ protected void alertEventLogAbort() {
+ IStatus status = new Status(IStatus.WARNING,
+ JBossServerCorePlugin.PLUGIN_ID, POLLING_FAIL_CODE | getStateMask(expectedState,
false), "Poll Thread Aborted: "
+ + abortMessage, null);
+ ServerLogger.getDefault().log(behavior.getServer(), status);
+ }
+
+ protected void alertEventLogTimeout() {
+ IStatus status = new Status(IStatus.ERROR,
+ JBossServerCorePlugin.PLUGIN_ID, POLLING_FAIL_CODE | getStateMask(expectedState,
false), "", null);
+ ServerLogger.getDefault().log(behavior.getServer(), status);
+ }
+
+ protected void alertEventLogFailure() {
+ String startupFailed = "Server Startup Failed";
+ String shutdownFailed = "Server Shutdown Failed";
+ IStatus status = new Status(IStatus.ERROR,
+ JBossServerCorePlugin.PLUGIN_ID, POLLING_FAIL_CODE | getStateMask(expectedState,
false),
+ expectedState ? startupFailed : shutdownFailed, null);
+ ServerLogger.getDefault().log(behavior.getServer(), status);
+ }
+
+ protected void alertEventLogSuccess(boolean currentState) {
+ String startupSuccess = "Server Startup Succeeded";
+ String shutdownSuccess = "Server Shutdown Succeeded";
+ int state = getStateMask(expectedState, true);
+ IStatus status = new Status(IStatus.INFO,
+ JBossServerCorePlugin.PLUGIN_ID, POLLING_ROOT_CODE | state | SUCCESS,
+ expectedState ? startupSuccess : shutdownSuccess, null);
+ ServerLogger.getDefault().log(behavior.getServer(), status);
+ }
+
+ protected void alertPollerNotFound() {
+ String startupPollerNotFound = "Startup Poller not found: " + pollerId;
+ String shutdownPollerNotFound = "Shutdown Poller not found: "+ pollerId;
+ IStatus status = new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID,
+ POLLING_FAIL_CODE | getStateMask(expectedState, false),
+ expectedState ? startupPollerNotFound : shutdownPollerNotFound, null);
+ ServerLogger.getDefault().log(behavior.getServer(), status);
+ }
+
+ protected int getStateMask(boolean expected, boolean success) {
+ if( expected && success )
+ return STATE_STARTED;
+ if( !expected && !success)
+ return STATE_STARTED;
+ return STATE_STOPPED;
+ }
+}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/FileUtil.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/FileUtil.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/FileUtil.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -25,8 +25,13 @@
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
+import java.util.ArrayList;
import java.util.Date;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+
public class FileUtil {
public static interface IFileUtilListener {
@@ -142,4 +147,27 @@
}
}
}
+
+ public static class FileUtilListener implements IFileUtilListener {
+ protected ArrayList<IStatus> errors = new ArrayList<IStatus>();
+ public void fileCoppied(File source, File dest, boolean result,
+ Exception e) {
+ if(!result)
+ errors.add(new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, "Error
copying file " + source.toString() + " to " + dest.toString(), e));
+ }
+ public void fileDeleted(File file, boolean result, Exception e) {
+ if(!result)
+ errors.add(new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, "Error
deleting file " + file.toString(), e));
+ }
+
+ public void folderDeleted(File file, boolean result, Exception e) {
+ if(!result)
+ errors.add(new Status(IStatus.ERROR, JBossServerCorePlugin.PLUGIN_ID, "Error
deleting folder " + file.toString(), e));
+ }
+
+ public IStatus[] getStatuses() {
+ return (IStatus[]) errors.toArray(new IStatus[errors.size()]);
+ }
+ }
+
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/ModuleUtil.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/ModuleUtil.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/ModuleUtil.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -9,7 +9,6 @@
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IModuleType;
import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.model.ModuleDelegate;
public class ModuleUtil {
public static ArrayList<IModule[]> getShallowChildren(IServer server, IModule[]
root) {
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/SimpleTreeItem.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/SimpleTreeItem.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/SimpleTreeItem.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,106 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.core.util;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-
-public class SimpleTreeItem {
-
- protected ArrayList<SimpleTreeItem> children;
- protected HashMap<Object, Object> properties;
- protected SimpleTreeItem parent;
-
- protected Object data;
-
- public SimpleTreeItem(SimpleTreeItem parent, Object data) {
- children = new ArrayList<SimpleTreeItem>();
- properties = new HashMap<Object, Object>();
- this.data = data;
- this.parent = parent;
- if( parent != null ) parent.addChild(this);
- }
-
- public SimpleTreeItem[] getChildren() {
- SimpleTreeItem[] arr = new SimpleTreeItem[children.size()];
- children.toArray(arr);
- return arr;
- }
-
- public SimpleTreeItem getParent() {
- return parent;
- }
-
- public void addChild(SimpleTreeItem item) {
- if( !children.contains(item)) {
- children.add(item);
- item.setParent(this);
- }
- }
-
- public void addChildren(SimpleTreeItem[] kids) {
- for( int i = 0; i < kids.length; i++ ) {
- addChild(kids[i]);
- }
- }
-
- public void deleteChildren() {
- children.clear();
- }
-
- public void deleteChild(SimpleTreeItem o) {
- children.remove(o);
- }
-
-
- public void setProperty( Object key, Object val ) {
- properties.put(key, val);
- }
-
- public Object getProperty(Object key) {
- return properties.get(key);
- }
-
- public HashMap<Object, Object> getProperties() {
- return properties;
- }
-
- public void setParent(SimpleTreeItem parent) {
- this.parent = parent;
- }
-
- public Object getData() {
- return this.data;
- }
-
- public void setData(Object data) {
- this.data = data;
- }
-
- public SimpleTreeItem getRoot() {
- SimpleTreeItem item = this;
- while(item.getParent() != null)
- item = item.getParent();
- return item;
- }
-
-}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF 2008-11-17 18:42:45
UTC (rev 11852)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF 2008-11-17 19:06:38
UTC (rev 11853)
@@ -42,7 +42,8 @@
org.eclipse.search,
org.apache.ant,
org.jboss.ide.eclipse.as.core,
- org.eclipse.ui.navigator;bundle-version="3.3.100"
+ org.eclipse.ui.navigator;bundle-version="3.3.100",
+ org.eclipse.ui.views.log;bundle-version="1.0.0"
Eclipse-LazyStart: true
Export-Package: org.jboss.ide.eclipse.as.ui,
org.jboss.ide.eclipse.as.ui.dialogs,
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/ShowStackTraceDialog.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/ShowStackTraceDialog.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/dialogs/ShowStackTraceDialog.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,71 +0,0 @@
-package org.jboss.ide.eclipse.as.ui.dialogs;
-
-import java.util.ArrayList;
-
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.window.IShellProvider;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.FillLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-
-public class ShowStackTraceDialog extends Dialog {
-
- private EventLogTreeItem selected;
- public ShowStackTraceDialog(IShellProvider parentShell, EventLogTreeItem selected) {
- super(parentShell);
- this.selected = selected;
- }
-
- public ShowStackTraceDialog(Shell shell, EventLogTreeItem selected) {
- super(shell);
- this.selected = selected;
- }
-
- protected void configureShell(Shell newShell) {
- super.configureShell(newShell);
- setShellStyle(SWT.SHELL_TRIM);
- newShell.setText("Exception Stack Trace");
- //newShell.setImage(JBossServerUISharedImages.getImage(JBossServerUISharedImages.TWIDDLE_IMAGE));
- newShell.setBounds(300, 300, 500, 300);
- }
-
- protected Control createDialogArea(Composite parent) {
- Composite c = (Composite)super.createDialogArea(parent);
- c.setLayout(new FillLayout());
- Text t = new Text(c, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
- Object exception = selected.getProperty(EventLogModel.EXCEPTION_PROPERTY);
- if( exception instanceof Throwable) {
- Throwable aThrowable = (Throwable)exception;
- ArrayList<Throwable> seen = new ArrayList<Throwable>();
- final StringBuilder result = new StringBuilder();
- boolean first = true;
- while( aThrowable != null && !seen.contains(aThrowable)) {
- seen.add(aThrowable);
- if( !first ) result.append("nested:" + Text.DELIMITER);
- appendDetails(aThrowable, result);
- aThrowable = aThrowable.getCause();
- first = false;
- }
- t.setText(result.toString());
- }
- return c;
- }
-
- protected void appendDetails(Throwable t, StringBuilder result) {
- result.append(t.toString());
- result.append(Text.DELIMITER);
-
- //add each element of the stack trace
- for (StackTraceElement element : t.getStackTrace() ){
- result.append(" at ");
- result.append( element );
- result.append( Text.DELIMITER );
- }
- result.append(Text.DELIMITER );
- }
-}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/ServerLogView.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/ServerLogView.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/ServerLogView.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -0,0 +1,58 @@
+package org.jboss.ide.eclipse.as.ui.views;
+
+import java.io.File;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.internal.views.log.LogView;
+import org.eclipse.wst.server.core.IServer;
+import org.jboss.ide.eclipse.as.core.extensions.events.IServerLogListener;
+import org.jboss.ide.eclipse.as.core.extensions.events.ServerLogger;
+
+public class ServerLogView extends LogView implements IServerLogListener {
+ public static final String VIEW_ID =
"org.jboss.ide.eclipse.as.ui.view.serverLogView";
+
+ private IServer server;
+ private boolean subclassLogging = false;
+ public ServerLogView() {
+ super();
+ }
+
+ public void createPartControl(Composite parent) {
+ super.createPartControl(parent);
+ setLogFile(ServerLogger.getDefault().getServerLogFile(null));
+ }
+
+ public void setServer(IServer server) {
+ if( this.server != null )
+ ServerLogger.getDefault().removeListener(this.server, this);
+ this.server = server;
+ ServerLogger.getDefault().addListener(server, this);
+ setLogFile(ServerLogger.getDefault().getServerLogFile(server));
+ }
+
+ public void dispose() {
+ setLogFile(null);
+ super.dispose();
+ }
+
+ protected void setLogFile(File f) {
+ super.setLogFile(f);
+ }
+
+ // This must be done because too many fields / classes are private
+ // and the super.logging(IStatus, String) method does nothing
+ // if the platform log is not opened. Which is stupid.
+ public void logging(IStatus status, IServer server) {
+ if( server != null && server.equals(this.server)) {
+ subclassLogging = true;
+ super.logging(status, null);
+ subclassLogging = false;
+ }
+ }
+
+ public boolean isPlatformLogOpen() {
+ return subclassLogging ? true : super.isPlatformLogOpen();
+ }
+}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogActionProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogActionProvider.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogActionProvider.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,72 +0,0 @@
-package org.jboss.ide.eclipse.as.ui.views.server.extensions;
-
-import org.eclipse.jface.action.Action;
-import org.eclipse.jface.action.IMenuManager;
-import org.eclipse.jface.viewers.IStructuredSelection;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.navigator.CommonActionProvider;
-import org.eclipse.ui.navigator.ICommonActionExtensionSite;
-import org.eclipse.ui.navigator.ICommonViewerSite;
-import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.ServerEventModel;
-import org.jboss.ide.eclipse.as.ui.dialogs.ShowStackTraceDialog;
-
-public class EventLogActionProvider extends CommonActionProvider {
- private Action clearLogAction;
- private Action showStackTraceAction;
- private ICommonActionExtensionSite actionSite;
- public EventLogActionProvider() {
- super();
- }
-
- public void init(ICommonActionExtensionSite aSite) {
- super.init(aSite);
- this.actionSite = aSite;
- createActions();
- }
- public void fillContextMenu(IMenuManager menu) {
- ICommonViewerSite site = actionSite.getViewSite();
- IStructuredSelection selection = null;
- if( site instanceof ICommonViewerWorkbenchSite ) {
- ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite)site;
- selection = (IStructuredSelection) wsSite.getSelectionProvider().getSelection();
- Object first = selection.getFirstElement();
- if( first != null && first instanceof ServerEventModel) {
- menu.add(clearLogAction);
- }
- if( first != null && first instanceof EventLogTreeItem &&
- (((EventLogTreeItem)first).getEventClass().equals(EventLogModel.EVENT_TYPE_EXCEPTION)
||
- ((EventLogTreeItem)first).getSpecificType().equals(EventLogModel.EVENT_TYPE_EXCEPTION)))
{
- menu.add(showStackTraceAction);
- }
- }
- }
-
-
- protected void createActions() {
- clearLogAction = new Action() {
- public void run() {
- IStructuredSelection selection =
(IStructuredSelection)actionSite.getStructuredViewer().getSelection();
- if(selection.getFirstElement() != null && selection.getFirstElement()
instanceof ServerEventModel) {
- ((ServerEventModel)selection.getFirstElement()).clearEvents();
- actionSite.getStructuredViewer().refresh(((ServerEventModel)selection.getFirstElement()));
- }
- }
- };
- clearLogAction.setText("Clear Event Log");
-
- showStackTraceAction = new Action() {
- public void run() {
- IStructuredSelection selection =
(IStructuredSelection)actionSite.getStructuredViewer().getSelection();
- if( selection.getFirstElement() != null && selection.getFirstElement()
instanceof EventLogTreeItem ) {
- EventLogTreeItem item = (EventLogTreeItem)selection.getFirstElement();
- ShowStackTraceDialog dialog = new ShowStackTraceDialog(new Shell(), item);
- dialog.open();
- }
- }
- };
- showStackTraceAction.setText("See Exception Details");
- }
-}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogContentProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogContentProvider.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogContentProvider.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,168 +0,0 @@
-package org.jboss.ide.eclipse.as.ui.views.server.extensions;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.viewers.ITreeContentProvider;
-import org.eclipse.jface.viewers.StructuredViewer;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.wst.server.core.IServer;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogRoot;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.IEventLogListener;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.ServerEventModel;
-import org.jboss.ide.eclipse.as.core.util.SimpleTreeItem;
-import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
-
-public class EventLogContentProvider implements ITreeContentProvider {
- public static final String SHOW_TIMESTAMP =
"org.jboss.ide.eclipse.as.ui.views.server.providers.EventLogViewProvider.showTimestamp";
- public static final String GROUP_BY_CATEGORY =
"org.jboss.ide.eclipse.as.ui.views.server.providers.EventLogViewProvider.groupByCategory";
- public static final String EVENT_ON_TOP =
"org.jboss.ide.eclipse.as.ui.views.server.providers.EventLogViewProvider.eventOnTop";
- public static final int NEWEST_ON_TOP = 1;
- public static final int OLDEST_ON_TOP = 2;
- public static final int _TRUE_ = 1;
- public static final int _FALSE_ = 2;
-
- private Viewer viewer;
- private IEventLogListener listener;
-
- public EventLogContentProvider() {
- EventLogModel.enableLogging();
- listener = new IEventLogListener() {
- public void eventModelChanged(String serverId,
- EventLogTreeItem changed) {
- if( viewer instanceof StructuredViewer ) {
- final Object o = changed.getEventRoot();
- if( o instanceof EventLogRoot) {
- Display.getDefault().asyncExec(new Runnable() {
- public void run() {
- ((StructuredViewer)viewer).refresh(((EventLogRoot)o).getModel());
- }
- });
- }
- }
- }
- };
- EventLogModel.getDefault().addListener(listener);
- }
-
- public Object[] getChildren(Object parentElement) {
- if( parentElement instanceof IServer && parentElement != null ) {
- return new Object[] { EventLogModel.getModel((IServer)parentElement)};
- }
- if( parentElement instanceof ServerEventModel) {
- ServerEventModel s = ((ServerEventModel)parentElement);
- boolean categorize = getCategorize();
- if( categorize )
- return getRootCategories(s);
- Object[] ret = s.getRoot().getChildren();
- if( getSortOrder()) {
- List<Object> l = Arrays.asList(ret);
- Collections.reverse(l);
- return l.toArray();
- }
- return ret;
- }
-
- if( parentElement instanceof MajorEventType ) {
- // get children only of this type
- String serverId = ((MajorEventType)parentElement).getServer();
- SimpleTreeItem[] children = EventLogModel.getModel(serverId).getRoot().getChildren();
- ArrayList<SimpleTreeItem> items = new ArrayList<SimpleTreeItem>();
- for( int i = 0; i < children.length; i++ ) {
- if( children[i] instanceof EventLogTreeItem ) {
- String type = ((EventLogTreeItem)children[i]).getEventClass();
- if( type != null && type.equals(((MajorEventType)parentElement).getId()))
- items.add(children[i]);
- }
- }
-
- if( getSortOrder() ) Collections.reverse(items);
-
- return items.toArray(new Object[items.size()]);
- }
-
- // just return the object's kids
- if( parentElement instanceof EventLogTreeItem ) {
- return ((EventLogTreeItem)parentElement).getChildren();
- }
- return new Object[0];
- }
-
- public static class MajorEventType {
- private String id;
- private String serverId;
- public MajorEventType(String serverId, String id) {
- this.id = id;
- this.serverId = serverId;
- }
- public String getId() {
- return id;
- }
- public String getServer() { return serverId; }
- public String toString() { return id; }
- public boolean equals(Object o) {
- return o instanceof MajorEventType &&
- ((MajorEventType)o).getId().equals(id) &&
- ((MajorEventType)o).getServer().equals(serverId);
- }
- }
-
- protected Object[] getRootCategories(ServerEventModel model) {
- EventLogRoot root = model.getRoot();
- ArrayList<String> list = new ArrayList<String>();
- ArrayList<MajorEventType> majorTypes = new ArrayList<MajorEventType>();
- SimpleTreeItem[] children = root.getChildren();
- for( int i = 0; i < children.length; i++ ) {
- if( children[i] instanceof EventLogTreeItem ) {
- String type = ((EventLogTreeItem)children[i]).getEventClass();
- if( !list.contains(type)) {
- list.add(type);
- majorTypes.add(new MajorEventType(model.getId(), type));
- }
- }
- }
- return majorTypes.toArray(new MajorEventType[majorTypes.size()]);
- }
-
-
- public Object getParent(Object element) {
- return null;
- }
-
- public boolean hasChildren(Object element) {
- return getChildren(element).length > 0 ? true : false;
- }
-
- public Object[] getElements(Object inputElement) {
- return null;
- }
-
- public void dispose() {
- EventLogModel.disableLogging();
- EventLogModel.getDefault().removeListener(listener);
- }
-
- public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
- this.viewer = viewer;
- }
-
- protected boolean getSortOrder() {
- Preferences store = JBossServerUIPlugin.getDefault().getPluginPreferences();
- int showTimestamp = store.getInt(EVENT_ON_TOP);
- if( showTimestamp == OLDEST_ON_TOP) return false;
- return true;
- }
- protected boolean getCategorize() {
- Preferences store = JBossServerUIPlugin.getDefault().getPluginPreferences();
- int showTimestamp = store.getInt(GROUP_BY_CATEGORY);
- if( showTimestamp == _TRUE_ ) return true;
- if( showTimestamp == _FALSE_) return false;
- return false; // default
- }
-}
\ No newline at end of file
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogLabelProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogLabelProvider.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/EventLogLabelProvider.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,142 +0,0 @@
-package org.jboss.ide.eclipse.as.ui.views.server.extensions;
-
-import java.util.Date;
-import java.util.HashMap;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Preferences;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.ServerEventModel;
-import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
-import
org.jboss.ide.eclipse.as.ui.views.server.extensions.EventLogContentProvider.MajorEventType;
-
-public class EventLogLabelProvider extends LabelProvider {
-
- public static final String SHOW_TIMESTAMP =
"org.jboss.ide.eclipse.as.ui.views.server.providers.EventLogViewProvider.showTimestamp";
- public static final int _TRUE_ = 1;
- public static final int _FALSE_ = 2;
- private static HashMap<String, String> majorTypeToName = new HashMap<String,
String>();
-
- static {
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] cf =
registry.getConfigurationElementsFor(JBossServerUIPlugin.PLUGIN_ID,
"EventLogMajorType");
- for( int i = 0; i < cf.length; i++ ) {
- String type = cf[i].getAttribute("typeId");
- String name = cf[i].getAttribute("name");
- majorTypeToName.put(type, name);
- }
- }
-
- private Image rootImage;
- public EventLogLabelProvider() {
- super();
- ImageDescriptor des =
ImageDescriptor.createFromURL(JBossServerUIPlugin.getDefault().getBundle().getEntry("icons/info_obj.gif"));
- rootImage = des.createImage();
- }
- public void dispose() {
- super.dispose();
- rootImage.dispose();
- }
-
- private IEventLogLabelProvider[] labelProviderDelegates = null;
- public Image getImage(Object element) {
- if( labelProviderDelegates == null )
- loadLabelProviderDelegates();
-
- if( element instanceof ServerEventModel ) {
- return rootImage;
- }
-
- if( !(element instanceof EventLogTreeItem))
- return null;
-
- EventLogTreeItem item = (EventLogTreeItem)element;
- for( int i = 0; i < labelProviderDelegates.length; i++ ) {
- if( labelProviderDelegates[i] != null
- && labelProviderDelegates[i].supports(item.getSpecificType())) {
- Image image = labelProviderDelegates[i].getImage((EventLogTreeItem)element);
- if( image != null ) return image;
- }
- }
-
- return null;
- }
-
- public String getText(Object element) {
- if( element == null ) return "ERROR: Unknown String type";
-
- if( element instanceof ServerEventModel ) {
- return "Event Log";
- }
-
-
- String suffix = getShowTimestamp() ? createTimestamp(element) : "";
- if( labelProviderDelegates == null )
- loadLabelProviderDelegates();
-
-
- if( !(element instanceof EventLogTreeItem)) {
- if( element instanceof MajorEventType ) {
- String val = majorTypeToName.get(((MajorEventType)element).getId());
- if( val != null ) return val;
- }
- return element.toString();
- }
- EventLogTreeItem item = (EventLogTreeItem)element;
-
- for( int i = 0; i < labelProviderDelegates.length; i++ ) {
- if( labelProviderDelegates[i] != null
- && labelProviderDelegates[i].supports(item.getSpecificType())) {
- String text = labelProviderDelegates[i].getText((EventLogTreeItem)element);
- if( text != null ) return text + suffix;
- }
- }
-
- return element == null ? "" : element.toString() + suffix;
- }
-
- public void loadLabelProviderDelegates() {
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IConfigurationElement[] elements =
registry.getConfigurationElementsFor(JBossServerUIPlugin.PLUGIN_ID,
"EventLogLabelProvider");
- labelProviderDelegates = new IEventLogLabelProvider[elements.length];
- for( int i = 0; i < elements.length; i++ ) {
- try {
- labelProviderDelegates[i] =
(IEventLogLabelProvider)elements[i].createExecutableExtension("class");
- } catch( CoreException ce ) {
- JBossServerUIPlugin.log("Error loading Event Log Label Provider Delegate",
ce);
- }
- }
- }
- protected boolean getShowTimestamp() {
- Preferences store = JBossServerUIPlugin.getDefault().getPluginPreferences();
- int showTimestamp = store.getInt(SHOW_TIMESTAMP);
- if( showTimestamp == _TRUE_ ) return true;
- if( showTimestamp == _FALSE_) return false;
- return false; // default
- }
-
- protected String createTimestamp(Object element) {
- if( element instanceof EventLogTreeItem ) {
- Long v = (Long) ((EventLogTreeItem)element).getProperty(EventLogTreeItem.DATE);
- if( v == null ) return "";
-
- double date = v.doubleValue();
- double now = new Date().getTime();
- int seconds = (int) (( now - date) / 1000);
- int minutes = seconds / 60;
- int hours = minutes / 60;
- minutes -= (hours * 60);
- String minString = minutes + "m ago";
- if( hours == 0 )
- return " (" + minString + ")";
- return " (" + hours + "h " + minString + ")";
- }
- return "";
- }
-}
\ No newline at end of file
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/IEventLogLabelProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/IEventLogLabelProvider.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/IEventLogLabelProvider.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,39 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.ui.views.server.extensions;
-
-import java.util.Properties;
-
-import org.eclipse.jface.viewers.ILabelProvider;
-import org.eclipse.swt.graphics.Image;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-
-/**
- *
- * @author rob.stryker(a)jboss.com
- */
-public interface IEventLogLabelProvider extends ILabelProvider {
- public boolean supports( String type );
- public Image getImage(EventLogTreeItem item);
- public String getText(EventLogTreeItem item);
- public Properties getProperties(EventLogTreeItem item);
-}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/extensions/ServerLogActionProvider.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -0,0 +1,113 @@
+package org.jboss.ide.eclipse.as.ui.views.server.extensions;
+
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.navigator.CommonActionProvider;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.ICommonActionExtensionSite;
+import org.eclipse.ui.navigator.ICommonViewerSite;
+import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
+import org.eclipse.ui.views.IViewDescriptor;
+import org.eclipse.ui.views.IViewRegistry;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.ui.internal.view.servers.AbstractServerAction;
+import org.jboss.ide.eclipse.as.core.server.IDeployableServer;
+import org.jboss.ide.eclipse.as.ui.views.ServerLogView;
+
+public class ServerLogActionProvider extends CommonActionProvider {
+ private ICommonActionExtensionSite actionSite;
+ private ShowInServerLogAction showInServerLogAction;
+ public ServerLogActionProvider() {
+ super();
+ }
+
+ public void init(ICommonActionExtensionSite aSite) {
+ super.init(aSite);
+ this.actionSite = aSite;
+ createActions(aSite);
+ }
+
+ protected void createActions(ICommonActionExtensionSite aSite) {
+ ICommonViewerSite site = aSite.getViewSite();
+ if( site instanceof ICommonViewerWorkbenchSite ) {
+ StructuredViewer v = aSite.getStructuredViewer();
+ if( v instanceof CommonViewer ) {
+ CommonViewer cv = (CommonViewer)v;
+ ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite)site;
+ showInServerLogAction = new ShowInServerLogAction(wsSite.getSelectionProvider());
+ }
+ }
+ }
+
+ public void fillContextMenu(IMenuManager menu) {
+ ICommonViewerSite site = actionSite.getViewSite();
+ IStructuredSelection selection = null;
+ if (site instanceof ICommonViewerWorkbenchSite) {
+ ICommonViewerWorkbenchSite wsSite = (ICommonViewerWorkbenchSite) site;
+ selection = (IStructuredSelection) wsSite.getSelectionProvider()
+ .getSelection();
+ }
+ if( selection != null && selection.toArray().length == 1 ) {
+ if( selection.getFirstElement() instanceof IServer ) {
+ if( menu instanceof MenuManager ) {
+ MenuManager mgr = (MenuManager)menu;
+ IContributionItem[] items = mgr.getItems();
+ for( int i = 0; i < items.length; i++ ) {
+ if( "org.eclipse.ui.navigate.showInQuickMenu".equals(items[i].getId()))
{
+ ((MenuManager)items[i]).add(showInServerLogAction);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ public class ShowInServerLogAction extends AbstractServerAction {
+ public ShowInServerLogAction(ISelectionProvider sp) {
+ super(sp, "Server Log");
+
+ IViewRegistry reg = PlatformUI.getWorkbench().getViewRegistry();
+ IViewDescriptor desc = reg.find(ServerLogView.VIEW_ID);
+ setText(desc.getLabel());
+ setImageDescriptor(desc.getImageDescriptor());
+ }
+
+ public boolean accept(IServer server) {
+ return (server.getServerType() != null &&
+ server.loadAdapter(IDeployableServer.class, new NullProgressMonitor()) != null);
+ }
+
+ public void perform(IServer server) {
+ IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow() ;
+ if (window != null) {
+ IWorkbenchPage page = window.getActivePage();
+ if (page != null) {
+ IWorkbenchPart part = page.findView(ServerLogView.VIEW_ID);
+ if (part == null) {
+ try {
+ part = page.showView(ServerLogView.VIEW_ID);
+ } catch (PartInitException e) {
+ }
+ }
+ if (part != null) {
+ ServerLogView view = (ServerLogView) part.getAdapter(ServerLogView.class);
+ if (view != null) {
+ view.setFocus();
+ view.setServer(server);
+ }
+ }
+ }
+ }
+ }
+ }
+}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/ComplexEventLogLabelProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/ComplexEventLogLabelProvider.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/ComplexEventLogLabelProvider.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,98 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.ui.views.server.providers.events;
-
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Properties;
-
-import org.eclipse.jface.viewers.LabelProvider;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-import org.jboss.ide.eclipse.as.ui.views.server.extensions.IEventLogLabelProvider;
-
-/**
- *
- * @author rob.stryker(a)jboss.com
- */
-public abstract class ComplexEventLogLabelProvider
- extends LabelProvider implements IEventLogLabelProvider {
- protected static String DELIMITER = "::";
-
- protected ArrayList<String> supported;
- protected HashMap<String, String> propertyToMessageMap;
- public ComplexEventLogLabelProvider() {
- supported = new ArrayList<String>();
- propertyToMessageMap = new HashMap<String, String>();
- addSupportedTypes();
- loadPropertyMap();
- }
- protected abstract void addSupportedTypes();
- protected abstract void loadPropertyMap();
-
- public boolean supports(String type) {
- supported.clear(); addSupportedTypes();
- return supported.contains(type);
- }
-
- public Properties getProperties(EventLogTreeItem item) {
- loadPropertyMap();
- Properties p = new Properties();
- HashMap<Object, Object> map = item.getProperties();
- Object key = null;
- String keyString, valueStringKey, valueString;
- for( Iterator<Object> i = map.keySet().iterator(); i.hasNext();) {
- try {
- key = i.next();
- if( key.equals(EventLogTreeItem.DATE)) {
- keyString = propertyToMessageMap.get(key) == null ? (String)key :
propertyToMessageMap.get(key).toString();
- valueString = getDateAsString(((Long)map.get(key)).longValue());
- p.put("Occurred", valueString);
- } else {
- keyString = propertyToMessageMap.get(key) == null ? (String)key :
propertyToMessageMap.get(key).toString();
- valueStringKey = key + DELIMITER + toString2(map.get(key));
- valueString = propertyToMessageMap.get(valueStringKey) == null ?
toString2(map.get(key)) : toString2(propertyToMessageMap.get(valueStringKey));
- p.put(keyString, valueString);
- }
- } catch( Exception e ) { e.printStackTrace(); }
- }
- return p;
- }
-
- protected String getDateAsString(long date) {
- long now = new Date().getTime();
- long seconds = (now - date) / 1000;
- long minutes = seconds / 60;
- long hours = minutes / 60;
- minutes -= (hours * 60);
- String minString = minutes + "m ago";
- if( hours == 0 )
- return minString;
- return hours + "h " + minString;
- }
-
- private String toString2(Object o) {
- return o == null ? "null" : o.toString();
- }
-
-}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/PackagesPublishLabelProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/PackagesPublishLabelProvider.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/PackagesPublishLabelProvider.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,198 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.ui.views.server.providers.events;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.core.model.ServerBehaviourDelegate;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-import org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger;
-import
org.jboss.ide.eclipse.as.core.publishers.PublisherEventLogger.PublishUtilStatusWrapper;
-import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
-import org.jboss.ide.eclipse.as.ui.views.server.extensions.IEventLogLabelProvider;
-
-/**
- *
- * @author Rob Stryker <rob.stryker(a)redhat.com>
- *
- */
-public class PackagesPublishLabelProvider extends ComplexEventLogLabelProvider
implements
- IEventLogLabelProvider {
-
- protected void addSupportedTypes() {
- supported.add(PublisherEventLogger.ROOT_EVENT);
- supported.add(PublisherEventLogger.MODULE_ROOT_EVENT);
- supported.add(PublisherEventLogger.FILE_COPPIED_EVENT);
- supported.add(PublisherEventLogger.FILE_DELETED_EVENT);
- supported.add(PublisherEventLogger.FOLDER_DELETED_EVENT);
- supported.add(PublisherEventLogger.PUBLISH_UTIL_STATUS_WRAPPER_TYPE);
- }
- protected void loadPropertyMap() {
- propertyToMessageMap.put(PublisherEventLogger.SOURCE_PROPERTY, "Source");
- propertyToMessageMap.put(PublisherEventLogger.DEST_PROPERTY, "Destination");
- propertyToMessageMap.put(PublisherEventLogger.EXCEPTION_MESSAGE,
"Exception");
- propertyToMessageMap.put(PublisherEventLogger.SUCCESS_PROPERTY, "Action
Succeeded");
- propertyToMessageMap.put(PublisherEventLogger.MODULE_NAME, "Module Name");
- propertyToMessageMap.put(PublisherEventLogger.DELTA_KIND, "Module's Change
Type");
- propertyToMessageMap.put(PublisherEventLogger.MODULE_KIND, "Server's Publish
Type");
- propertyToMessageMap.put(PublisherEventLogger.MODULE_PUBLISH_STATE, "Module's
Publish Type");
-
- propertyToMessageMap.put(PublisherEventLogger.MODULE_KIND + DELIMITER +
IServer.PUBLISH_AUTO, "Auto");
- propertyToMessageMap.put(PublisherEventLogger.MODULE_KIND + DELIMITER +
IServer.PUBLISH_CLEAN, "Clean");
- propertyToMessageMap.put(PublisherEventLogger.MODULE_KIND + DELIMITER +
IServer.PUBLISH_FULL, "Full");
- propertyToMessageMap.put(PublisherEventLogger.MODULE_KIND + DELIMITER +
IServer.PUBLISH_INCREMENTAL, "Incremental");
-
- propertyToMessageMap.put(PublisherEventLogger.MODULE_PUBLISH_STATE + DELIMITER +
IServer.PUBLISH_STATE_FULL, "Full");
- propertyToMessageMap.put(PublisherEventLogger.MODULE_PUBLISH_STATE + DELIMITER +
IServer.PUBLISH_STATE_INCREMENTAL, "Incremental");
- propertyToMessageMap.put(PublisherEventLogger.MODULE_PUBLISH_STATE + DELIMITER +
IServer.PUBLISH_STATE_NONE, "None");
- propertyToMessageMap.put(PublisherEventLogger.MODULE_PUBLISH_STATE + DELIMITER +
IServer.PUBLISH_STATE_UNKNOWN, "Unknown");
-
- propertyToMessageMap.put(PublisherEventLogger.DELTA_KIND + DELIMITER +
ServerBehaviourDelegate.ADDED, "Added");
- propertyToMessageMap.put(PublisherEventLogger.DELTA_KIND + DELIMITER +
ServerBehaviourDelegate.CHANGED, "Changed");
- propertyToMessageMap.put(PublisherEventLogger.DELTA_KIND + DELIMITER +
ServerBehaviourDelegate.REMOVED, "Removed");
- propertyToMessageMap.put(PublisherEventLogger.DELTA_KIND + DELIMITER +
ServerBehaviourDelegate.NO_CHANGE, "No Change");
-
- propertyToMessageMap.put(PublisherEventLogger.CHANGED_RESOURCE_COUNT, "Changed
File(s)");
- propertyToMessageMap.put(PublisherEventLogger.CHANGED_MODULE_COUNT, "Changed
Module(s)");
-
-// propertyToMessageMap.put(IJBossServerPublisher.MODULE_NAME, "Module
Name");
-// propertyToMessageMap.put(PackagesPublisher.PackagesPublisherRemoveEvent.PACKAGE_NAME,
"Package Name");
-// propertyToMessageMap.put(PackagesPublisher.PackagesPublisherRemoveEvent.DESTINATION,
"Package File");
-// propertyToMessageMap.put(PackagesPublisher.PackagesPublisherMoveEvent.MOVE_SOURCE,
"Source File");
-// propertyToMessageMap.put(PackagesPublisher.PackagesPublisherMoveEvent.MOVE_DESTINATION,
"Destination File");
-// propertyToMessageMap.put(PackagesPublisher.PackagesPublisherRemoveEvent.EXCEPTION_MESSAGE,
"Exception Message");
- }
-
- public Image getImage(EventLogTreeItem item) {
- String type = item.getSpecificType();
-
- if( type.equals(PublisherEventLogger.ROOT_EVENT)) {
- return JBossServerUISharedImages.getImage(JBossServerUISharedImages.PUBLISH_IMAGE);
- }
- if( type.equals(PublisherEventLogger.MODULE_ROOT_EVENT)) {
- int deltaKind =
((Integer)item.getProperty(PublisherEventLogger.DELTA_KIND)).intValue();
- if( deltaKind == ServerBehaviourDelegate.REMOVED)
- return
JBossServerUISharedImages.getImage(JBossServerUISharedImages.UNPUBLISH_IMAGE);
- return JBossServerUISharedImages.getImage(JBossServerUISharedImages.PUBLISH_IMAGE);
- }
-
- if( item.getProperty(PublisherEventLogger.EXCEPTION_MESSAGE) != null )
- return
PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
-
- if( type.equals(PublisherEventLogger.FILE_COPPIED_EVENT))
- return
PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FILE);
- if( type.equals(PublisherEventLogger.FILE_DELETED_EVENT) ||
type.equals(PublisherEventLogger.FOLDER_DELETED_EVENT))
- return
PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_TOOL_DELETE);
- if( type.equals(PublisherEventLogger.PUBLISH_UTIL_STATUS_WRAPPER_TYPE)) {
- Object data = item.getData();
- if( data != null && data instanceof IStatus ) {
- int sev = ((IStatus)data).getSeverity();
- switch (sev) {
- case IStatus.ERROR: return
PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
- case IStatus.WARNING: return
PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_WARN_TSK);
- }
- }
- }
- return null;
- }
-
- protected String getKindDeltaKind(EventLogTreeItem item) {
- int kind = ((Integer)item.getProperty(PublisherEventLogger.MODULE_KIND)).intValue();
- int deltaKind =
((Integer)item.getProperty(PublisherEventLogger.DELTA_KIND)).intValue();
- int modPublishState =
((Integer)item.getProperty(PublisherEventLogger.MODULE_PUBLISH_STATE)).intValue();
- String r = "[";
- switch(kind) {
- case IServer.PUBLISH_CLEAN: r += "Clean, "; break;
- case IServer.PUBLISH_FULL: r += "Full, "; break;
- case IServer.PUBLISH_AUTO:
- case IServer.PUBLISH_INCREMENTAL:
- if( modPublishState == IServer.PUBLISH_STATE_FULL || modPublishState ==
IServer.PUBLISH_STATE_UNKNOWN)
- r += "Full, ";
- else
- r += "Incremental, ";
- break;
- default: r += "Unknown, ";
- }
- switch( deltaKind ) {
-
- case ServerBehaviourDelegate.NO_CHANGE: r += "No Change]"; break;
- case ServerBehaviourDelegate.ADDED: r += "Added]"; break;
- case ServerBehaviourDelegate.CHANGED: r += "Changed]"; break;
- case ServerBehaviourDelegate.REMOVED: r += "Removed]"; break;
- default: r += "Unknown]";
- }
- return r;
- }
- public String getText(EventLogTreeItem item) {
- String type = item.getSpecificType();
-
- if( type.equals(PublisherEventLogger.PUBLISH_UTIL_STATUS_WRAPPER_TYPE)) {
- Object o = item.getData();
- if( o == null || !(o instanceof IStatus ))
- return "Unknown Status Event: " + o;
- return ((IStatus)o).getMessage();
- }
-
- if( type.equals(PublisherEventLogger.ROOT_EVENT)) {
- Integer tmp;
- int files, mods;
- tmp = (Integer)item.getProperty(PublisherEventLogger.CHANGED_RESOURCE_COUNT);
- files = tmp == null ? 0 : tmp.intValue();
- tmp = (Integer)item.getProperty(PublisherEventLogger.CHANGED_MODULE_COUNT);
- mods = tmp == null ? 0 : tmp.intValue();
- return "Publishing [" + mods + " modules, " + files + "
resources changed]";
- }
-
- if( type.equals(PublisherEventLogger.MODULE_ROOT_EVENT)) {
- return getKindDeltaKind(item) + " " +
item.getProperty(PublisherEventLogger.MODULE_NAME);
- }
-
- Boolean b = (Boolean)item.getProperty(PublisherEventLogger.SUCCESS_PROPERTY);
- String fail = "Failed to ";
- if( type.equals(PublisherEventLogger.FILE_COPPIED_EVENT)) {
- return (!b.booleanValue() ? fail : "") +
- "Copy File: " + new
Path((String)item.getProperty(PublisherEventLogger.SOURCE_PROPERTY)).lastSegment();
- }
- if( type.equals(PublisherEventLogger.FILE_DELETED_EVENT)) {
- return (!b.booleanValue() ? fail : "") +
- "Delete File: " + new
Path((String)item.getProperty(PublisherEventLogger.DEST_PROPERTY)).lastSegment();
- }
- if( type.equals(PublisherEventLogger.FOLDER_DELETED_EVENT)) {
- return (!b.booleanValue() ? fail : "") +
- "Delete Folder: " + new
Path((String)item.getProperty(PublisherEventLogger.DEST_PROPERTY)).lastSegment();
- }
- if( type.equals(PublisherEventLogger.PUBLISH_UTIL_STATUS_WRAPPER_TYPE)) {
- Object data = item.getData();
- if( data != null && data instanceof IStatus ) {
- IStatus s = (IStatus)data;
- return s.getMessage();
- }
- return data == null ? "null" : data.toString();
- }
- return item.getSpecificType();
- }
-
-}
Deleted:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/PollingLabelProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/PollingLabelProvider.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/PollingLabelProvider.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -1,168 +0,0 @@
-/**
- * JBoss, a Division of Red Hat
- * Copyright 2006, Red Hat Middleware, LLC, and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
-* This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.ide.eclipse.as.ui.views.server.providers.events;
-
-import org.eclipse.debug.core.ILaunchManager;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.ui.ISharedImages;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.server.core.IServer;
-import org.eclipse.wst.server.ui.internal.provisional.UIDecoratorManager;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel;
-import org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel.EventLogTreeItem;
-import org.jboss.ide.eclipse.as.core.extensions.polling.JMXPoller;
-import org.jboss.ide.eclipse.as.core.server.IServerStatePoller;
-import org.jboss.ide.eclipse.as.core.server.internal.JBossServerBehavior;
-import org.jboss.ide.eclipse.as.core.server.internal.PollThread;
-import org.jboss.ide.eclipse.as.core.server.internal.PollThread.PollThreadEvent;
-import org.jboss.ide.eclipse.as.ui.views.server.extensions.IEventLogLabelProvider;
-
-/**
- *
- * @author rob.stryker(a)jboss.com
- */
-public class PollingLabelProvider extends ComplexEventLogLabelProvider implements
IEventLogLabelProvider {
-
-
- protected void addSupportedTypes() {
- supported.add(PollThread.SERVER_STARTING);
- supported.add(PollThread.SERVER_STOPPING);
- supported.add(PollThread.FAILURE);
- supported.add(PollThread.SUCCESS);
- supported.add(PollThread.POLL_THREAD_ABORTED);
- supported.add(PollThread.POLL_THREAD_TIMEOUT);
- supported.add(PollThread.POLL_THREAD_EXCEPTION);
- supported.add(PollThread.POLLER_NOT_FOUND);
-
- supported.add(EventLogModel.EVENT_TYPE_EXCEPTION);
- supported.add(JMXPoller.EVENT_TYPE_STARTING);
-
- supported.add(JBossServerBehavior.FORCE_SHUTDOWN_EVENT_KEY);
- }
-
- public Image getImage(EventLogTreeItem element) {
- if( element.getSpecificType().equals(PollThread.SERVER_STARTING)) return
getStartingImage();
- if( element.getSpecificType().equals(PollThread.SERVER_STOPPING)) return
getStoppingImage();
-
- if( element instanceof PollThreadEvent ) {
- boolean expected = ((PollThreadEvent)element).getExpectedState();
- //String expectedString = expected == IServerStatePoller.SERVER_UP ?
"startup" : "shutdown";
- if( element.getSpecificType().equals(PollThread.POLL_THREAD_ABORTED)) return
getErrorImage();
- if( element.getSpecificType().equals(PollThread.POLL_THREAD_TIMEOUT)) return
getErrorImage();
- if( element.getSpecificType().equals(PollThread.POLL_THREAD_EXCEPTION)) return
getErrorImage();
- if( element.getSpecificType().equals(PollThread.POLLER_NOT_FOUND)) return
getErrorImage();
- if( element.getSpecificType().equals(PollThread.SUCCESS)) {
- if( expected == IServerStatePoller.SERVER_UP)
- return getStartedImage();
- return getStoppedImage();
- }
- if( element.getSpecificType().equals(PollThread.FAILURE))
- return getErrorImage();
- }
-
- if( element.getSpecificType().equals(EventLogModel.EVENT_TYPE_EXCEPTION))
- return
PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_WARN_TSK);
- if( element.getSpecificType().equals(JMXPoller.EVENT_TYPE_STARTING)) {
- boolean started =
((Boolean)element.getProperty(JMXPoller.STARTED_PROPERTY)).booleanValue();
- if( !started )
- return getStartingImage();
- return getStartedImage();
- }
-
-
- if( element.getSpecificType().equals(JBossServerBehavior.FORCE_SHUTDOWN_EVENT_KEY))
- return getErrorImage();
- return null;
- }
-
- public String getText(EventLogTreeItem element) {
- if( element.getSpecificType().equals(PollThread.SERVER_STARTING)) return "Starting
the Server";
- if( element.getSpecificType().equals(PollThread.SERVER_STOPPING)) return "Stopping
the Server";
-
- if( element instanceof PollThreadEvent ) {
- boolean expected = ((PollThreadEvent)element).getExpectedState();
- String expectedString = expected == IServerStatePoller.SERVER_UP ? "Startup"
: "Shutdown";
- if( element.getSpecificType().equals(PollThread.POLL_THREAD_ABORTED)) {
- Object cause = element.getProperty(PollThread.POLL_THREAD_ABORTED_CAUSE);
- return expectedString + " aborted" + (cause != null ? ": " +
cause.toString() : "");
- }
- if( element.getSpecificType().equals(PollThread.POLL_THREAD_TIMEOUT)) return
expectedString + " timed out";
- if( element.getSpecificType().equals(PollThread.POLL_THREAD_EXCEPTION)) return
"Failure: " + element.getProperty(PollThread.POLL_THREAD_EXCEPTION_MESSAGE);
- if( element.getSpecificType().equals(PollThread.SUCCESS)) return expectedString +
" succeeded";
- if( element.getSpecificType().equals(PollThread.FAILURE)) return expectedString +
" failed";
- if( element.getSpecificType().equals(PollThread.POLLER_NOT_FOUND)) return
expectedString + " failed. Poller not found";
- }
-
- if( element.getSpecificType().equals(EventLogModel.EVENT_TYPE_EXCEPTION)) {
- Object o = element.getProperty(EventLogModel.EXCEPTION_PROPERTY);
- return "JMXException: " + ( o == null ? "null" :
((Exception)o).getMessage());
- }
-
- if( element.getSpecificType().equals(JMXPoller.EVENT_TYPE_STARTING)) {
- boolean started =
((Boolean)element.getProperty(JMXPoller.STARTED_PROPERTY)).booleanValue();
- if( !started )
- return "Server is still starting";
- return "Server has completed startup";
- }
-
- if( element.getSpecificType().equals(JBossServerBehavior.FORCE_SHUTDOWN_EVENT_KEY))
- return "The server was shutdown forcefully. All processes terminated.";
- return null;
- }
-
- protected Image getStateImage(int state) {
- return UIDecoratorManager.getUIDecorator(null).getStateImage(state,
ILaunchManager.RUN_MODE, 0);
- }
-
- protected Image getErrorImage() {
- return
PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK);
- }
- public Image getStartedImage() {
- return getStateImage(IServer.STATE_STARTED);
- }
- public Image getStartingImage() {
- return getStateImage(IServer.STATE_STARTING);
- }
- public Image getStoppingImage() {
- return getStateImage(IServer.STATE_STOPPING);
- }
- public Image getStoppedImage() {
- return getStateImage(IServer.STATE_STOPPED);
- }
-
-
-
- /*
- * Property Stuff
- */
- protected void loadPropertyMap() {
- // property names and their readable forms
- propertyToMessageMap.put(EventLogTreeItem.DATE, "Time");
- propertyToMessageMap.put(PollThread.EXPECTED_STATE, "Expected State");
- propertyToMessageMap.put(EventLogModel.EXCEPTION_PROPERTY, "Exception");
- propertyToMessageMap.put(JMXPoller.STARTED_PROPERTY, "Server Started");
- propertyToMessageMap.put(PollThread.POLL_THREAD_ABORTED_CAUSE, "Abort
Cause");
- // now values and their readable forms
- propertyToMessageMap.put(PollThread.EXPECTED_STATE + DELIMITER + "true",
"Up");
- propertyToMessageMap.put(PollThread.EXPECTED_STATE + DELIMITER + "false",
"Down");
- }
-}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ServerActionProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ServerActionProvider.java 2008-11-17
18:42:45 UTC (rev 11852)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/tools/as/wst/server/ui/ServerActionProvider.java 2008-11-17
19:06:38 UTC (rev 11853)
@@ -215,7 +215,7 @@
text += "\t" + activeBindings[0].format();
}
- MenuManager showInMenu = new MenuManager(text);
+ MenuManager showInMenu = new MenuManager(text,
"org.eclipse.ui.navigate.showInQuickMenu");
showInMenu.add(showInConsoleAction);
showInMenu.add(showInDebugAction);
//IActionBars actionBars = getViewSite().getActionBars();
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-11-17 18:42:45 UTC (rev
11852)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2008-11-17 19:06:38 UTC (rev
11853)
@@ -268,6 +268,14 @@
category="org.eclipse.wst.server.ui"
class="org.jboss.tools.as.wst.server.ui.ServersView"
icon="icons/jboss.gif"/>
+ <view
+ category="org.eclipse.wst.server.ui"
+ class="org.jboss.ide.eclipse.as.ui.views.ServerLogView"
+ icon="icons/console.gif"
+ id="org.jboss.ide.eclipse.as.ui.view.serverLogView"
+ name="Server Log"
+ restorable="true">
+ </view>
</extension>
<extension point="org.eclipse.ui.decorators">
@@ -360,34 +368,6 @@
<extension
point="org.eclipse.ui.navigator.navigatorContent">
- <navigatorContent
- id="org.jboss.ide.eclipse.as.ui.extensions.eventLog"
- activeByDefault="true"
- icon="icons/info_obj.gif"
-
contentProvider="org.jboss.ide.eclipse.as.ui.views.server.extensions.EventLogContentProvider"
-
labelProvider="org.jboss.ide.eclipse.as.ui.views.server.extensions.EventLogLabelProvider"
- name="JBoss Server Event Log"
- priority="normal">
- <triggerPoints>
- <instanceof
- value="org.eclipse.wst.server.core.IServer">
- </instanceof>
- </triggerPoints>
- <possibleChildren>
- <or>
- <instanceof
-
value="org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel$EventLogTreeItem">
- </instanceof>
- <instanceof
-
value="org.jboss.ide.eclipse.as.core.extensions.events.EventLogModel$ServerEventModel">
- </instanceof>
- </or></possibleChildren>
- <actionProvider
-
class="org.jboss.ide.eclipse.as.ui.views.server.extensions.EventLogActionProvider"
- id="org.jboss.ide.eclipse.as.ui.extensions.eventLog.actions"
- priority="highest">
- </actionProvider>
- </navigatorContent>
<navigatorContent
activeByDefault="true"
contentProvider="org.jboss.ide.eclipse.as.ui.views.server.extensions.XPathTreeContentProvider"
@@ -437,6 +417,15 @@
</instanceof>
</enablement>
</actionProvider>
+ <actionProvider
+
class="org.jboss.ide.eclipse.as.ui.views.server.extensions.ServerLogActionProvider"
+ id="org.jboss.ide.eclipse.as.ui.extensions.serverLog">
+ <enablement>
+ <instanceof
+ value="org.eclipse.wst.server.core.IServer">
+ </instanceof>
+ </enablement>
+ </actionProvider>
</extension>
@@ -446,22 +435,19 @@
<viewerContentBinding
viewerId="org.jboss.ide.eclipse.as.ui.views.JBossServerView">
<includes>
- <contentExtension
- isRoot="false"
- pattern="org.jboss.ide.eclipse.as.ui.extensions.eventLog">
- </contentExtension>
- <contentExtension
+ <contentExtension
isRoot="false"
pattern="org.jboss.ide.eclipse.as.ui.extensions.xml">
- </contentExtension>
+ </contentExtension>
</includes>
</viewerContentBinding>
<viewerActionBinding
viewerId="org.jboss.ide.eclipse.as.ui.views.JBossServerView">
<includes>
<actionExtension
- pattern="org.jboss.ide.eclipse.as.ui.extensions.modules">
- </actionExtension>
+ pattern="org.jboss.ide.eclipse.as.ui.extensions.modules"/>
+ <actionExtension
+
pattern="org.jboss.ide.eclipse.as.ui.extensions.serverLog"/>
</includes>
</viewerActionBinding>
</extension>