[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