[overlord-commits] Overlord SVN: r253 - in cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb: dialogs and 1 other directory.

overlord-commits at lists.jboss.org overlord-commits at lists.jboss.org
Tue Aug 19 07:53:13 EDT 2008


Author: objectiser
Date: 2008-08-19 07:53:13 -0400 (Tue, 19 Aug 2008)
New Revision: 253

Modified:
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java
   cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/dialogs/GenerateDialog.java
Log:
Guard against generating jboss-esb.xml when choreography has errors, and also use default project names that contain the choreography name.

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java	2008-08-14 10:23:27 UTC (rev 252)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/actions/GenerateAction.java	2008-08-19 11:53:13 UTC (rev 253)
@@ -17,14 +17,8 @@
  */
 package org.jboss.tools.overlord.jbossesb.actions;
 
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.jface.action.IAction;
@@ -35,14 +29,9 @@
 import org.eclipse.ui.IObjectActionDelegate;
 import org.eclipse.ui.IWorkbenchPart;
 
-import org.scribble.conversation.model.ConversationModel;
-import org.scribble.extensions.RegistryFactory;
-import org.scribble.model.*;
-import org.scribble.model.change.*;
-import org.w3c.dom.Node;
+import org.scribble.osgi.util.*;
 
 import org.jboss.tools.overlord.jbossesb.dialogs.*;
-import org.jboss.tools.overlord.jbossesb.model.*;
 
 /**
  * This class implements the action to generate the choreography
@@ -50,6 +39,7 @@
  */
 public class GenerateAction implements IObjectActionDelegate {
 
+	private static final String CANNOT_GENERATE = "Choreography has errors, so cannot generate";
 	public GenerateAction() {
 	}
 
@@ -66,7 +56,7 @@
 			
 			if (res instanceof IFile) {
 				
-				if (true) {
+				if (ResourceUtil.hasErrors(res) == false) {
 					GenerateDialog dialog=
 						new GenerateDialog(m_targetPart.getSite().getShell(),
 									(IFile)res);
@@ -74,226 +64,17 @@
 					try {
 						dialog.open();
 					} catch(Throwable e) {
-						e.printStackTrace();
+						logger.log(java.util.logging.Level.SEVERE,
+								"Failed to open generate dialog", e);
 					}
 				} else {
-					generate((IFile)res);
+					warn(CANNOT_GENERATE);
 				}
 			}
 		}
 	}
 	
-	protected void generate(IFile res) {
-		ModelReference ref=
-			org.scribble.osgi.model.OSGIModelRepository.createReference(res);
-		
-		if (ref != null) {
-			ModelRepository mrep=(ModelRepository)
-					RegistryFactory.getRegistry().getExtension(
-						ModelRepository.class, null);
-
-			if (mrep != null) {
-				Model model=mrep.getModel(ref,
-								new DefaultModelListener());
-				
-				if (model instanceof ConversationModel) {
-					ConversationModel cm=(ConversationModel)model;
-					
-					java.util.List<Role> roles=cm.getRoles();
-					
-					for (int i=0; i < roles.size(); i++) {
-						
-						generateRole(cm, roles.get(i));
-					}
-				}
-			}
-		}
-	}
-	
-	protected void generateRole(ConversationModel cm, Role role) {
-		
-		if (logger.isLoggable(Level.FINEST)) {
-			logger.finest("Generate role '"+role+"' for: "+cm);
-		}
-		
-		// Project to role
-		org.scribble.projector.Projector projector=
-			(org.scribble.projector.Projector)
-			RegistryFactory.getRegistry().getExtension(
-					org.scribble.projector.Projector.class, null);
-
-		if (projector != null) {
-			Model localModel=projector.project(cm,
-					role, new DefaultModelListener());
-			
-			if (localModel instanceof ConversationModel &&
-					((ConversationModel)localModel).getConversation() != null) {
-				ConversationModel lcm=(ConversationModel)localModel;
-				
-				ModelReference targetRef=
-					new ModelReference(ESBLanguageModel.JBOSSESB_NOTATION);
-				
-				DefaultESBLanguageModel target=
-					new DefaultESBLanguageModel(targetRef);
-				
-				ModelGenerator generator=(ModelGenerator)
-					RegistryFactory.getRegistry().getExtension(
-							ModelGenerator.class, null);
-				
-				if (generator != null) {
-					generator.generate(targetRef, role, target,
-								lcm);
-				} else {
-					logger.severe("Unable to find model generator");
-				}
-
-				try {
-					System.out.println("------------------------------");
-					System.out.println("ROLE="+role.getName());
-					System.out.println("ESB Configuration:\r\n"+
-						getText(target.getESBConfiguration()));
-				} catch(Exception e) {
-					e.printStackTrace();
-				}
-			}
-		}
-	}
-	
 	/**
-	 * This class converts a DOM representation node to
-	 * text.
-	 * 
-	 * @param node The DOM node
-	 * @return The text
-	 * @throws Exception Failed to convert
-	 */
-	protected String getText(Node node) throws Exception {
-		String ret=null;
-			
-		try {
-			// Transform the DOM represent to text
-			java.io.ByteArrayOutputStream xmlstr=
-					new java.io.ByteArrayOutputStream();
-				
-			DOMSource source=new DOMSource();
-			source.setNode(node);
-			
-			StreamResult result=new StreamResult(xmlstr);
-			
-			Transformer trans=
-					TransformerFactory.newInstance().newTransformer();
-			trans.transform(source, result);
-			
-			xmlstr.close();
-			
-			ret = new String(xmlstr.toByteArray());
-			
-			if ((node instanceof org.w3c.dom.Document) == false) {
-				
-				// Strip off any <?xml> header
-				int index=ret.indexOf("<?xml");
-				if (index != -1) {
-					index = ret.indexOf("<", 1);
-					
-					if (index != -1) {
-						ret = ret.substring(index);
-					} else {
-						index = ret.indexOf("?>");
-						
-						if (index != -1) {
-							index += 2;
-							
-							// Remove any trailing whitespaces
-							// after XML header
-							while (index < ret.length() &&
-									Character.isWhitespace(ret.charAt(index))) {
-								index++;
-							}
-							
-							ret = ret.substring(index);
-						}
-					}
-				}
-			}
-
-		} catch(Exception e) {
-			throw new Exception("Failed to transform " +
-					"DOM representation into text", e);
-		}
-		
-		int pos=0;
-		int prevpos=0;
-		StringBuffer buf=new StringBuffer();
-		int level=0;
-		
-		while ((pos=ret.indexOf('<', prevpos)) != -1) {
-			
-			if (prevpos < pos &&
-					ret.substring(prevpos, pos).trim().length() > 0 &&
-					ret.charAt(prevpos-1) != '?') {
-				
-				if (ret.charAt(prevpos) == '\r' &&
-						ret.charAt(prevpos+1) == '\n') {
-					prevpos += 2;
-				}
-				for (int i=0; i < level; i++) {
-					buf.append("    ");
-				}
-				
-				buf.append(ret.substring(prevpos, pos).trim());
-				buf.append("\r\n");
-			}
-			
-			int endpos=ret.indexOf('>', pos);
-		
-			if (endpos > 0) {
-				boolean noreturn=false;
-				
-				if (pos > 0 && ret.charAt(pos+1) == '/') {
-					level--;
-				}
-				
-				for (int i=0; i < level; i++) {
-					buf.append("    ");
-				}
-				buf.append(ret.substring(pos, endpos+1));
-				
-				if (ret.charAt(endpos-1)== '?') {
-					//noreturn = true;
-					
-				} else if (ret.charAt(endpos-1) == '/') {
-					// Ignore
-				} else if (pos > 0 && ret.charAt(pos+1) == '/') {
-					// Ignore
-					
-				} else if (pos > 0 && ret.charAt(pos+1) == '!') {
-					// Ignore
-					
-				} else {
-					level++;
-				}
-							
-				if (noreturn == false) {
-					buf.append("\r\n");
-				}
-				
-				pos = endpos+1;
-			}
-			
-			prevpos = pos;
-		}
-		
-		if (prevpos != -1 &&
-				ret.substring(prevpos).trim().length() > 0) {
-			buf.append(ret.substring(prevpos));
-		}
-		
-		ret = buf.toString();
-		
-		return(ret);
-	}
-
-	/**
 	 * This method indicates that the selection has changed.
 	 * 
 	 * @param action The action

Modified: cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/dialogs/GenerateDialog.java
===================================================================
--- cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/dialogs/GenerateDialog.java	2008-08-14 10:23:27 UTC (rev 252)
+++ cdl/trunk/tools/plugins/org.jboss.tools.overlord.jbossesb/src/java/org/jboss/tools/overlord/jbossesb/dialogs/GenerateDialog.java	2008-08-19 11:53:13 UTC (rev 253)
@@ -177,8 +177,15 @@
 				});
 				
 				Text projectName=new Text(group, SWT.NONE);
-				projectName.setText(m_roles.get(i).getName());
 				
+				String prjName=m_roles.get(i).getName();
+				
+				if (m_conversationModel.getModelName() != null) {
+					prjName = m_conversationModel.getModelName().getName()+"-"+prjName;
+				}
+				
+				projectName.setText(prjName);
+				
 				gd = new GridData();
 				gd.horizontalSpan = 2;
 				gd.widthHint = 300;
@@ -319,6 +326,8 @@
 			for (int i=0; ret && i < name.length(); i++) {
 				if (i == 0) {
 					ret = Character.isJavaIdentifierStart(name.charAt(i));
+				} else if ("-.".indexOf(name.charAt(i)) != -1) {
+					ret = true;
 				} else {
 					ret = Character.isJavaIdentifierPart(name.charAt(i));
 				}




More information about the overlord-commits mailing list