[jboss-cvs] jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server ...

Robert Stryker rawblem at gmail.com
Mon Nov 20 14:23:53 EST 2006


  User: rawb    
  Date: 06/11/20 14:23:53

  Modified:    as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server 
                        ServerAttributeHelper.java
  Log:
  XPath preferences for each server. May be refactored later
  
  Revision  Changes    Path
  1.15      +212 -0    jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/ServerAttributeHelper.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ServerAttributeHelper.java
  ===================================================================
  RCS file: /cvsroot/jboss/jbosside/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/server/ServerAttributeHelper.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -b -r1.14 -r1.15
  --- ServerAttributeHelper.java	10 Nov 2006 00:26:25 -0000	1.14
  +++ ServerAttributeHelper.java	20 Nov 2006 19:23:53 -0000	1.15
  @@ -21,14 +21,20 @@
    */
   package org.jboss.ide.eclipse.as.core.server;
   
  +import java.util.ArrayList;
  +import java.util.HashMap;
  +import java.util.Iterator;
   import java.util.List;
   import java.util.Map;
   
   import org.eclipse.core.runtime.CoreException;
   import org.eclipse.core.runtime.IProgressMonitor;
  +import org.eclipse.core.runtime.NullProgressMonitor;
   import org.eclipse.wst.server.core.IServer;
   import org.eclipse.wst.server.core.IServerWorkingCopy;
   import org.eclipse.wst.server.core.internal.ServerWorkingCopy;
  +import org.jboss.ide.eclipse.as.core.model.DescriptorModel.ServerDescriptorModel.XPathTreeItem;
  +import org.jboss.ide.eclipse.as.core.util.SimpleTreeItem;
   
   public class ServerAttributeHelper {
   
  @@ -98,6 +104,212 @@
   		return wch.save(force, monitor);
   	}
   	
  +	public IServer save() {
  +		try {
  +			return save(false, new NullProgressMonitor());
  +		} catch( Exception e ) {}
  +		return null;
  +	}
  +	
  +
  +	
  +	
  +	
  +	
  +	
  +	
  +	
  +	
  +	
  +
  +	
  +	
  +	public static final String PORTS_DEFAULT_CATEGORY = "Ports";
  +	public static final String XPATH_CATEGORIES = "_XPATH_CATEGORIES_";
  +	public static final String XPATH_CATEGORY2_PREFIX = "_XPATH_CATEGORY2_PREFIX_";
  +	public static final String XPATH_PROPERTY_PREFIX = "_XPATH_PROPERTY_PREFIX_";
  +	public static final String PORT_CATEGORY_PREF_KEY = "_PORT_CATEGORY_NAME_";
  +
  +	public String getDefaultPortCategoryName() {
  +		return wch.getAttribute(PORT_CATEGORY_PREF_KEY, PORTS_DEFAULT_CATEGORY);
  +	}
  +	public void setDefaultPortCategoryName(String s) {
  +		wch.setAttribute(PORT_CATEGORY_PREF_KEY, s);
  +	}
  +
  +	public SimpleXPathPreferenceTreeItem getXPathPreferenceTree() {
  +		List categories = wch.getAttribute(XPATH_CATEGORIES, (List)null);
  +		if( categories == null ) {
  +			return getDefaultXPathPreferenceTree();
  +		}
  +		SimpleXPathPreferenceTreeItem model = new SimpleXPathPreferenceTreeItem(null, XPATH_CATEGORIES);
  +		Iterator i = categories.iterator();
  +		while(i.hasNext()) {
  +			String categoryName = (String)i.next();
  +			SimpleXPathPreferenceTreeItem categoryItem = new SimpleXPathPreferenceTreeItem(model, categoryName);
  +			String categoryListKey = XPATH_CATEGORY2_PREFIX + categoryName;
  +			List categoryElementsAsList = wch.getAttribute(categoryListKey, new ArrayList());
  +			Iterator j = categoryElementsAsList.iterator();
  +			while(j.hasNext()) {
  +				String xpathName = (String)j.next();
  +				String finalKey = XPATH_PROPERTY_PREFIX + categoryName + xpathName;
  +				List xpathItem = wch.getAttribute(finalKey, new ArrayList());
  +				if( xpathItem.size() == 2 ) {
  +					XPathPreferenceTreeItem xpi = new XPathPreferenceTreeItem(categoryItem, 
  +							(String)xpathItem.get(0), (String)xpathItem.get(1));
  +				} else if( xpathItem.size() == 3 ) {
  +					XPathPreferenceTreeItem xpi = new XPathPreferenceTreeItem(categoryItem, 
  +							(String)xpathItem.get(0), (String)xpathItem.get(1), (String)xpathItem.get(2));
  +				}
  +			}
  +		}
  +
  +		return model;
  +	}
  +	
  +	private SimpleXPathPreferenceTreeItem getDefaultXPathPreferenceTree() {
  +		SimpleXPathPreferenceTreeItem model = new SimpleXPathPreferenceTreeItem(null, XPATH_CATEGORIES);
  +		
  +		SimpleXPathPreferenceTreeItem ports = new SimpleXPathPreferenceTreeItem(model, PORTS_DEFAULT_CATEGORY);
  +		
  +		
  +		
  +		XPathPreferenceTreeItem jndi = new XPathPreferenceTreeItem(ports, 
  +				"JNDI", "/server/mbean[@name='jboss:service=Naming']/attribute[@name='Port']");
  +		XPathPreferenceTreeItem jndiRMI = new XPathPreferenceTreeItem(ports, 
  +				"JNDI RMI", "/server/mbean[@name='jboss:service=Naming']/attribute[@name='RmiPort']");
  +		
  +		XPathPreferenceTreeItem haJndiStub = new XPathPreferenceTreeItem(ports, 
  +				"HA JNDI Stub", "//server/mbean[@name='jboss:service=HAJNDI']/attribute[@name='Port']");
  +
  +		XPathPreferenceTreeItem haJndiRMI = new XPathPreferenceTreeItem(ports, 
  +				"HA JNDI RMI", "//server/mbean[@name='jboss:service=HAJNDI']/attribute[@name='RmiPort']");
  +
  +		XPathPreferenceTreeItem jrmpa = new XPathPreferenceTreeItem(ports, 
  +				"JRMPA RMI Object", "//server/mbean[@name='jboss:service=invoker,type=jrmpha']/attribute[@name='RMIObjectPort']");
  +
  +		XPathPreferenceTreeItem clusterUDPMcast = new XPathPreferenceTreeItem(ports, 
  +				"Cluster UDP MCast", "//server/mbean[@name='jboss:service=${jboss.partition.name:DefaultPartition}']/attribute[@name='PartitionConfig']/Config/UDP", "mcast_port");
  +		
  +		XPathPreferenceTreeItem webservices = new XPathPreferenceTreeItem(ports, 
  +				"Web Services", "//server/mbean[@name='jboss:service=WebService']/attribute[@name='Port']");
  +		
  +//		XPathPreferenceTreeItem hypersonic = new XPathPreferenceTreeItem(ports, 
  +//				"HyperSonic", "//server/mbean[@name='jboss:service=Hypersonic']/attribute[@name='Port']");
  +		
  +		XPathPreferenceTreeItem jrmpInvoker = new XPathPreferenceTreeItem(ports, 
  +				"JRMP Invoker", "//server/mbean[@name='jboss:service=invoker,type=jrmp']/attribute[@name='RMIObjectPort']");
  +		
  +		XPathPreferenceTreeItem pooledInvoker = new XPathPreferenceTreeItem(ports, 
  +				"Pooled Invoker", "//server/mbean[@name='jboss:service=invoker,type=pooled']/attribute[@name='ServerBindPort']");
  +		
  +		
  +
  +		
  +		return model;
  +	}
  +	
  +	public void saveXPathPreferenceTree(SimpleTreeItem tree) {
  +		
  +		SimpleTreeItem[] children = tree.getChildren();
  +		SimpleTreeItem[] grandChildren;
  +		ArrayList categoryList = new ArrayList();
  +		ArrayList xpathNameList, itemAsList;
  +		XPathPreferenceTreeItem xpathPrefItem;
  +		HashMap map = new HashMap();
  +		for( int i = 0; i < children.length; i++ ) {
  +			xpathNameList = new ArrayList();
  +			String categoryName = (String)children[i].getData();
  +			categoryList.add(categoryName);  // add "Ports"
  +			
  +			grandChildren = children[i].getChildren(); // list of xpaths under "Ports"
  +			for( int j = 0; j < grandChildren.length; j++ ) {
  +				xpathPrefItem = ((XPathPreferenceTreeItem)grandChildren[j]);  // JNDI
  +				itemAsList = new ArrayList();
  +				itemAsList.add(xpathPrefItem.getName());
  +				itemAsList.add(xpathPrefItem.getXPath());
  +				itemAsList.add(xpathPrefItem.getAttributeName());
  +				xpathNameList.add(xpathPrefItem.getName());
  +				map.put(XPATH_PROPERTY_PREFIX + categoryName + xpathPrefItem.getName(), itemAsList);
  +			}
  +			map.put(XPATH_CATEGORY2_PREFIX + categoryName, xpathNameList);
  +		}
  +		map.put(XPATH_CATEGORIES, categoryList);
  +		
  +		Iterator i = map.keySet().iterator();
  +		while( i.hasNext()) {
  +			String key = (String)i.next();
  +			wch.setAttribute(key, (List)map.get(key));
  +		}
  +
  +	}
  +	
  +	/* Just a label class */
  +	public static class SimpleXPathPreferenceTreeItem extends SimpleTreeItem {
  +		public SimpleXPathPreferenceTreeItem(SimpleTreeItem parent, Object data) {
  +			super(parent, data);
  +		}
  +	}
  +	public static class XPathPreferenceTreeItem extends SimpleXPathPreferenceTreeItem {
  +		private String name;
  +		private String elementXPath;
  +		private String attributeName = null;
  +		
  +		public XPathPreferenceTreeItem(SimpleTreeItem parent, String key, String value) {
  +			super(parent, null);
  +			this.name = key;
  +			this.elementXPath = value;
  +		}
  +		
  +		public XPathPreferenceTreeItem(SimpleTreeItem parent, String key, 
  +										String value, String attributeName ) {
  +			this(parent, key, value);
  +			this.attributeName = attributeName;
  +		}
  +		public String getName() {
  +			return name;
  +		}
  +		public String getXPath() {
  +			return elementXPath;
  +		}
  +		public void setXPath(String value) {
  +			this.elementXPath = value;
  +		}
  +		public void setName(String name) {
  +			this.name = name;
  +		}
  +		public String getAttributeName() {
  +			return attributeName;
  +		}
  +		public void setAttributeName(String attName) {
  +			this.attributeName = attName;
  +		}
  +		
  +		// actually a forced refresh
  +		public void ensureLoaded(JBossServer jbServer) {
  +			String XPATH_PROPERTY_LOADED = "_XPATH_PROPERTY_LOADED_";
  +
  +			String xpath = getXPath();
  +			String attribute = getAttributeName();
  +			XPathTreeItem[] items = new XPathTreeItem[0];
  +			if( attribute == null || attribute.equals("")) {
  +				items = jbServer.getDescriptorModel().getXPath(xpath);
  +			} else {
  +				items = jbServer.getDescriptorModel().getXPath(xpath, attribute);
  +			}
  +			
  +			if( getProperty(XPATH_PROPERTY_LOADED) != null ) {
  +				//deleteChildren();
  +				return;
  +			}
  +			for( int i = 0; i < items.length; i++ ) {
  +				addChild(items[i]);
  +			}
  +			setProperty(XPATH_PROPERTY_LOADED, new Boolean(true));
  +		}
  +		
  +	}
  +
   	
   
   }
  
  
  



More information about the jboss-cvs-commits mailing list