[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events ...

Robert Stryker rawblem at gmail.com
Fri Dec 22 18:26:35 EST 2006


  User: rawb    
  Date: 06/12/22 18:26:35

  Added:       as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events    
                        PollingLabelProvider.java
                        ComplexEventLogLabelProvider.java
                        PublishLabelProvider.java
                        PackageBuildLabelProvider.java
  Log:
  Added deploy-only server (cannot start or stop)
  Other associated changes. 
  
  Revision  Changes    Path
  1.1      date: 2006/12/22 23:26:35;  author: rawb;  state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/PollingLabelProvider.java
  
  Index: PollingLabelProvider.java
  ===================================================================
  /**
   * 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.debug.core.ILaunchManager;
  import org.eclipse.jface.viewers.LabelProvider;
  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.model.EventLogModel.EventLogTreeItem;
  import org.jboss.ide.eclipse.as.core.runtime.server.IServerStatePoller;
  import org.jboss.ide.eclipse.as.core.runtime.server.polling.PollThread;
  import org.jboss.ide.eclipse.as.core.runtime.server.polling.TwiddlePoller;
  import org.jboss.ide.eclipse.as.core.runtime.server.polling.PollThread.PollThreadEvent;
  import org.jboss.ide.eclipse.as.core.server.JBossServerBehavior;
  import org.jboss.ide.eclipse.as.ui.views.server.extensions.IEventLogLabelProvider;
  
  /**
   *
   * @author rob.stryker at jboss.com
   */
  public class PollingLabelProvider extends ComplexEventLogLabelProvider implements IEventLogLabelProvider {
  
  	
  	protected void addSupportedTypes() {
  		supported = new ArrayList();
  		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(TwiddlePoller.TYPE_TERMINATED);
  		supported.add(TwiddlePoller.TYPE_RESULT);
  		
  		supported.add(JBossServerBehavior.FORCE_SHUTDOWN_EVENT_KEY);
  	}
  
  	public boolean supports(String type) {
  		return supported.contains(type);
  	}
  
  	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.SUCCESS)) {
  				if( expected == IServerStatePoller.SERVER_UP)
  					return getStartedImage();
  				return getStoppedImage();
  			}
  			if( element.getSpecificType().equals(PollThread.FAILURE)) 
  				return getErrorImage();
  		}
  		
  		if( element.getSpecificType().equals(TwiddlePoller.TYPE_TERMINATED)) return getErrorImage();
  		if( element.getSpecificType().equals(TwiddlePoller.TYPE_RESULT)) {
  			int state = ((Integer)element.getProperty(TwiddlePoller.STATUS)).intValue();
  			boolean expectedState = ((Boolean)element.getProperty(PollThread.EXPECTED_STATE)).booleanValue();
  			if( state == TwiddlePoller.STATE_STOPPED) 
  				return getStoppedImage();
  			if( state == TwiddlePoller.STATE_STARTED)
  				return getStartedImage();
  			if( state == TwiddlePoller.STATE_TRANSITION) {
  				if( expectedState == IServerStatePoller.SERVER_UP ) 
  					return getStartingImage();
  				return getStoppingImage();
  			}
  		}
  		
  		
  		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)) return expectedString + " aborted";
  			if( element.getSpecificType().equals(PollThread.POLL_THREAD_TIMEOUT)) return expectedString + " timed out";
  			if( element.getSpecificType().equals(PollThread.SUCCESS)) return expectedString + " succeeded";
  			if( element.getSpecificType().equals(PollThread.FAILURE)) return expectedString + " failed";
  		}
  		
  		if( element.getSpecificType().equals(TwiddlePoller.TYPE_TERMINATED)) return "All processes have been terminated";
  		if( element.getSpecificType().equals(TwiddlePoller.TYPE_RESULT)) {
  			int state = ((Integer)element.getProperty(TwiddlePoller.STATUS)).intValue();
  			boolean expectedState = ((Boolean)element.getProperty(PollThread.EXPECTED_STATE)).booleanValue();
  			if( state == TwiddlePoller.STATE_STOPPED) 
  				return "The server is down.";
  			if( state == TwiddlePoller.STATE_STARTED)
  				return "The server is up.";
  			if( state == TwiddlePoller.STATE_TRANSITION) {
  				if( expectedState == IServerStatePoller.SERVER_UP ) 
  					return "The server is still starting";
  				return "The server is still stopping.";
  			}
  		}
  		
  		
  		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_WARN_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 = new HashMap();
  		propertyToMessageMap.put(EventLogTreeItem.DATE, "Time");
  		propertyToMessageMap.put(TwiddlePoller.STATUS, "Status");
  		propertyToMessageMap.put(PollThread.EXPECTED_STATE, "Expected State");
  		
  		// now values and their readable forms
  		propertyToMessageMap.put(TwiddlePoller.STATUS + "::" + 0, "Server is Down");
  		propertyToMessageMap.put(TwiddlePoller.STATUS + "::" + 1, "Server is Up");
  		propertyToMessageMap.put(TwiddlePoller.STATUS + "::" + -1, "Server is in transition");
  		propertyToMessageMap.put(PollThread.EXPECTED_STATE + "::" + "true", "Up");
  		propertyToMessageMap.put(PollThread.EXPECTED_STATE + "::" + "false", "Down");
  	}
  }
  
  
  
  1.1      date: 2006/12/22 23:26:35;  author: rawb;  state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/ComplexEventLogLabelProvider.java
  
  Index: ComplexEventLogLabelProvider.java
  ===================================================================
  /**
   * 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.eclipse.swt.graphics.Image;
  import org.jboss.ide.eclipse.as.core.model.EventLogModel.EventLogTreeItem;
  import org.jboss.ide.eclipse.as.ui.views.server.extensions.IEventLogLabelProvider;
  
  /**
   *
   * @author rob.stryker at jboss.com
   */
  public abstract class ComplexEventLogLabelProvider 
  		extends LabelProvider implements IEventLogLabelProvider {
  
  	protected ArrayList supported;
  	protected HashMap propertyToMessageMap;
  	public ComplexEventLogLabelProvider() {
  		addSupportedTypes();
  		loadPropertyMap();
  	}
  	protected abstract void addSupportedTypes();
  	protected abstract void loadPropertyMap();
  
  	public Properties getProperties(EventLogTreeItem item) {
  		Properties p = new Properties();
  		HashMap map = item.getProperties();
  		Object key = null;
  		String keyString, valueStringKey, valueString;
  		for( Iterator 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(keyString, valueString);
  			} else {
  				keyString = propertyToMessageMap.get(key) == null ? (String)key : propertyToMessageMap.get(key).toString();
  				valueStringKey = key + "::" + 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();
  	}
  
  }
  
  
  
  1.1      date: 2006/12/22 23:26:35;  author: rawb;  state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/PublishLabelProvider.java
  
  Index: PublishLabelProvider.java
  ===================================================================
  package org.jboss.ide.eclipse.as.ui.views.server.providers.events;
  
  import java.util.ArrayList;
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.Properties;
  
  import org.eclipse.jface.viewers.LabelProvider;
  import org.eclipse.swt.graphics.Image;
  import org.jboss.ide.eclipse.as.core.model.EventLogModel.EventLogTreeItem;
  import org.jboss.ide.eclipse.as.core.publishers.IJBossServerPublisher;
  import org.jboss.ide.eclipse.as.core.publishers.PackagesPublisher;
  import org.jboss.ide.eclipse.as.core.publishers.PackagesPublisher.PackagesPublisherBuildEvent;
  import org.jboss.ide.eclipse.as.ui.views.server.extensions.IEventLogLabelProvider;
  
  public class PublishLabelProvider extends ComplexEventLogLabelProvider implements
  		IEventLogLabelProvider {
  
  	protected void addSupportedTypes() {
  		supported = new ArrayList();
  		supported.add(PackagesPublisher.REMOVE_TOP_EVENT);
  		supported.add(PackagesPublisher.REMOVE_PACKAGE_SUCCESS);
  		supported.add(PackagesPublisher.REMOVE_PACKAGE_SKIPPED);
  		supported.add(PackagesPublisher.REMOVE_PACKAGE_FAIL);
  		
  		supported.add(PackagesPublisher.PUBLISH_TOP_EVENT);
  		supported.add(PackagesPublisher.PROJECT_BUILD_EVENT);
  		supported.add(PackagesPublisher.MOVE_PACKAGE_SUCCESS);
  		supported.add(PackagesPublisher.MOVE_PACKAGE_FAIL);
  		supported.add(PackagesPublisher.MOVE_PACKAGE_SKIP);
  	}
  	protected void loadPropertyMap() {
  		propertyToMessageMap = new HashMap();
  		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.PackagesPublisherRemoveEvent.EXCEPTION_MESSAGE, "Exception Message");
  	}
  
  	public boolean supports(String type) {
  		return supported.contains(type);
  	}
  
  	public Image getImage(EventLogTreeItem item) {
  		return null;
  	}
  
  	public String getText(EventLogTreeItem item) {
  		String type = item.getSpecificType();
  		if( type.equals(PackagesPublisher.REMOVE_TOP_EVENT)) 
  			return "Removing Module: " + item.getProperty(IJBossServerPublisher.MODULE_NAME);
  		else if( type.equals(PackagesPublisher.REMOVE_PACKAGE_SUCCESS)) 
  			return "Deleted Package: " + item.getProperty(PackagesPublisher.PackagesPublisherRemoveEvent.PACKAGE_NAME);
  		else if( type.equals(PackagesPublisher.REMOVE_PACKAGE_FAIL)) 
  			return "Failed to Delete Package: " + item.getProperty(PackagesPublisher.PackagesPublisherRemoveEvent.PACKAGE_NAME);
  		else if( type.equals(PackagesPublisher.REMOVE_PACKAGE_SKIPPED)) 
  			return "Deletion Skipped: " + item.getProperty(PackagesPublisher.PackagesPublisherRemoveEvent.PACKAGE_NAME);
  		
  		
  		else if( type.equals(PackagesPublisher.PUBLISH_TOP_EVENT)) 
  			return "Publishing Module: " + item.getProperty(IJBossServerPublisher.MODULE_NAME);
  		else if( type.equals(PackagesPublisher.PROJECT_BUILD_EVENT)) 
  			return "Building Project: " + item.getProperty(PackagesPublisher.PackagesPublisherRemoveEvent.PACKAGE_NAME);
  		else if( type.equals(PackagesPublisher.MOVE_PACKAGE_SUCCESS))
  			return "Coppied File: " + item.getProperty(PackagesPublisher.PackagesPublisherMoveEvent.PACKAGE_NAME);
  		else if( type.equals(PackagesPublisher.MOVE_PACKAGE_FAIL))
  			return "File Copy Failed: " + item.getProperty(PackagesPublisher.PackagesPublisherMoveEvent.PACKAGE_NAME);
  		else if( type.equals(PackagesPublisher.MOVE_PACKAGE_SKIP))
  			return "File Copy Skipped: " + item.getProperty(PackagesPublisher.PackagesPublisherMoveEvent.PACKAGE_NAME);
  		
  		return item.toString();
  	}
  
  }
  
  
  
  1.1      date: 2006/12/22 23:26:35;  author: rawb;  state: Exp;jbosside/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/views/server/providers/events/PackageBuildLabelProvider.java
  
  Index: PackageBuildLabelProvider.java
  ===================================================================
  /**
   * 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.Properties;
  
  import org.eclipse.jface.viewers.LabelProvider;
  import org.eclipse.swt.graphics.Image;
  import org.jboss.ide.eclipse.as.core.model.PackagesBuildListener;
  import org.jboss.ide.eclipse.as.core.model.EventLogModel.EventLogTreeItem;
  import org.jboss.ide.eclipse.as.ui.views.server.extensions.IEventLogLabelProvider;
  
  /**
   *
   * @author rob.stryker at jboss.com
   */
  public class PackageBuildLabelProvider extends LabelProvider implements IEventLogLabelProvider {
  
  	public Image getImage(EventLogTreeItem item) {
  		return null;
  	}
  
  	public Properties getProperties(EventLogTreeItem item) {
  		return null;
  	}
  
  	public String getText(EventLogTreeItem item) {
  		if( item.getSpecificType().equals(PackagesBuildListener.PROJECT_BUILD_STARTED)) return "Build Started: " + item.getProperty("project.name");
  		if( item.getSpecificType().equals(PackagesBuildListener.PROJECT_BUILD_FINISHED)) return "Build Finished: " + item.getProperty("project.name");
  		if( item.getSpecificType().equals(PackagesBuildListener.PACKAGE_BUILD_STARTED)) return "Package Build Started: " + item.getProperty("package.name");
  		if( item.getSpecificType().equals(PackagesBuildListener.PACKAGE_BUILD_FINISHED)) return "Package Build Finished: " + item.getProperty("package.name");
  		if( item.getSpecificType().equals(PackagesBuildListener.PACKAGE_BUILD_FINISHED)) return "Package Build Failed: " + item.getProperty("package.name");
  		return "";
  	}
  
  	public boolean supports(String type) {
  		ArrayList list = new ArrayList();
  		list.add(PackagesBuildListener.PROJECT_BUILD_STARTED);
  		list.add(PackagesBuildListener.PROJECT_BUILD_FINISHED);
  		list.add(PackagesBuildListener.PACKAGE_BUILD_STARTED);
  		list.add(PackagesBuildListener.PACKAGE_BUILD_FINISHED);
  		list.add(PackagesBuildListener.PACKAGE_BUILD_FAILED);
  		
  		return list.contains(type);
  	}
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list