Author: guixl Date: Wed Jul 21 11:35:45 2010 New Revision: 966187 URL: http://svn.apache.org/viewvc?rev=966187&view=rev Log: improve import/export/Apache Commons SCXML runtime creation process
Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-beanutils-1.8.3.jar (with props) commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-digester-2.0.jar (with props) commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-jexl-1.1.jar (with props) commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-logging-1.1.1.jar (with props) commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/scxml.jar (with props) Modified: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.properties commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.xml commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingImportWizard.java commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/xslt/export.xsl commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/xslt/import.xsl Modified: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java?rev=966187&r1=966186&r2=966187&view=diff ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java (original) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java Wed Jul 21 11:35:45 2010 @@ -32,7 +32,7 @@ public class $CLASS_NAME$ { */ SCXML scxml=null; try { - scxml = SCXMLParser.parse($CLASS_NAME$.class.getClassLoader(). + scxml = SCXMLParser.parse($CLASS_NAME$.class. getResource("$SCXML_DOCUMENT_RESOURCE$"), null, customActions); SCXMLExecutor engine = new SCXMLExecutor(new JexlEvaluator(), new SimpleDispatcher(), new SimpleErrorReporter()); Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-beanutils-1.8.3.jar URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-beanutils-1.8.3.jar?rev=966187&view=auto ============================================================================== Binary file - no diff available. Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-beanutils-1.8.3.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-digester-2.0.jar URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-digester-2.0.jar?rev=966187&view=auto ============================================================================== Binary file - no diff available. Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-digester-2.0.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-jexl-1.1.jar URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-jexl-1.1.jar?rev=966187&view=auto ============================================================================== Binary file - no diff available. Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-jexl-1.1.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-logging-1.1.1.jar URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-logging-1.1.1.jar?rev=966187&view=auto ============================================================================== Binary file - no diff available. Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/commons-logging-1.1.1.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/scxml.jar URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/scxml.jar?rev=966187&view=auto ============================================================================== Binary file - no diff available. Propchange: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/scxml.jar ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Modified: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.properties URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.properties?rev=966187&r1=966186&r2=966187&view=diff ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.properties (original) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.properties Wed Jul 21 11:35:45 2010 @@ -21,6 +21,7 @@ SCXML=SCXML createDebugWizardName=Create Apache Commons SCXML Debug Runtime createDebugWizardDesc=Creates Apache Commons SCXML engine runtime. +scxmlPopupMenuLabel=SCXML exportScxmlDocumentLabel=Export Scxml Document initDiagramActionLabel=Initialize modeling_diagram diagram file loadResourceActionLabel=Load Resource... Modified: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.xml URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.xml?rev=966187&r1=966186&r2=966187&view=diff ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.xml (original) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/plugin.xml Wed Jul 21 11:35:45 2010 @@ -73,8 +73,7 @@ </wizard> </extension> - <extension point="org.eclipse.ui.popupMenus"> - <?gmfgen generated="true"?> + <extension point="org.eclipse.ui.popupMenus"> <objectContribution adaptable="false" id="org.apache.commons.scxml.modeling.diagram.LoadResource" @@ -86,59 +85,79 @@ label="%loadResourceActionLabel" menubarPath="additions"> </action> - </objectContribution> - </extension> - + </objectContribution> + </extension> + <extension point="org.eclipse.ui.popupMenus"> <?gmfgen generated="true"?> - <objectContribution - id="org.apache.commons.scxml.modeling.diagram.InitDiagram" - nameFilter="*.modeling" - objectClass="org.eclipse.core.resources.IFile"> - <action - label="%initDiagramActionLabel" - class="org.apache.commons.scxml.modeling.diagram.part.ModelingInitDiagramFileAction" - menubarPath="additions" - enablesFor="1" - id="org.apache.commons.scxml.modeling.diagram.InitDiagramAction"> - </action> - </objectContribution> - </extension> - - <extension point="org.eclipse.ui.popupMenus"> - <objectContribution + + <objectContribution objectClass="org.eclipse.core.resources.IFile" nameFilter="*.modeling" id="org.apache.commons.scxml.modeling.export"> + <menu + label="%scxmlPopupMenuLabel" + path="additions" + id="org.apache.commons.scxml.modeling.scxmlPopupMenu"> + <separator + name="group2"> + </separator> + </menu> <action enablesFor="1" label="%exportScxmlDocumentLabel" tooltip="%exportScxmlDocumentLabel" class="org.apache.commons.scxml.modeling.export.ScxmlDocumentExportMenu" icon="icons/obj16/ScxmlDocumentExport.gif" - menubarPath="additions" + menubarPath="org.apache.commons.scxml.modeling.scxmlPopupMenu/group2" id="org.apache.commons.scxml.modeling.exportAction"> </action> </objectContribution> - </extension> - - <extension point="org.eclipse.ui.popupMenus"> - <objectContribution + <objectContribution objectClass="org.eclipse.core.resources.IFile" nameFilter="*.modeling" id="org.apache.commons.scxml.modeling.createDebug"> + <menu + label="%scxmlPopupMenuLabel" + path="additions" + id="org.apache.commons.scxml.modeling.scxmlPopupMenu"> + <separator + name="group1"> + </separator> + </menu> <action enablesFor="1" label="%createDebugWizardName" tooltip="%createDebugWizardDesc" class="org.apache.commons.scxml.modeling.debug.ModelingDocumentDebugWizard" icon="icons/obj16/ScxmlCreateDebug.gif" - menubarPath="additions" + menubarPath="org.apache.commons.scxml.modeling.scxmlPopupMenu/group1" id="org.apache.commons.scxml.modeling.createDebugAction"> </action> </objectContribution> + <objectContribution + id="org.apache.commons.scxml.modeling.diagram.InitDiagram" + nameFilter="*.modeling" + objectClass="org.eclipse.core.resources.IFile"> + <menu + label="%scxmlPopupMenuLabel" + path="additions" + id="org.apache.commons.scxml.modeling.scxmlPopupMenu"> + <separator + name="group3"> + </separator> + </menu> + <action + label="%initDiagramActionLabel" + class="org.apache.commons.scxml.modeling.diagram.part.ModelingInitDiagramFileAction" + menubarPath="org.apache.commons.scxml.modeling.scxmlPopupMenu/group3" + enablesFor="1" + icon="icons/obj16/ScxmlDiagramFile.gif" + id="org.apache.commons.scxml.modeling.diagram.InitDiagramAction"> + </action> + </objectContribution> </extension> - + <extension point="org.eclipse.gmf.runtime.common.ui.services.action.globalActionHandlerProviders"> <?gmfgen generated="true"?> <GlobalActionHandlerProvider Modified: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingImportWizard.java URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingImportWizard.java?rev=966187&r1=966186&r2=966187&view=diff ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingImportWizard.java (original) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingImportWizard.java Wed Jul 21 11:35:45 2010 @@ -244,7 +244,6 @@ public class ModelingImportWizard extend String content = shc.ExecuteXSL(documentContent, this .getClass().getClassLoader().getResourceAsStream( "xslt/import.xsl")); - System.out.println(content); monitor.worked(1); content=getTargetList(content); monitor.worked(1); Modified: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java?rev=966187&r1=966186&r2=966187&view=diff ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java (original) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java Wed Jul 21 11:35:45 2010 @@ -26,13 +26,11 @@ import java.util.LinkedList; import java.util.List; import org.apache.commons.scxml.modeling.diagram.edit.parts.ServiceTemplateEditPart; -import org.apache.commons.scxml.modeling.diagram.part.Messages; -import org.apache.commons.scxml.modeling.diagram.part.ModelElementSelectionPage; -import org.apache.commons.scxml.modeling.diagram.part.ModelingDiagramEditorPlugin; -import org.apache.commons.scxml.modeling.diagram.part.ModelingDiagramEditorUtil; -import org.apache.commons.scxml.modeling.diagram.part.ModelingVisualIDRegistry; import org.apache.commons.scxml.modeling.export.ScxmlExportStreamHandlerAction; import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; @@ -79,6 +77,8 @@ public class ModelingNewDebugFileWizard private String testCaseClassName; private IPath filePath; + + private IPath selectedPath; /** * @generated @@ -99,7 +99,7 @@ public class ModelingNewDebugFileWizard Messages.ModelingNewScxmlFileWizard_CreationPageDescription, ServiceTemplateEditPart.MODEL_ID)); - testCaseClassName=domainModelURI.trimFileExtension().lastSegment()+"TestCase"; + testCaseClassName=domainModelURI.trimFileExtension().lastSegment(); if (domainModelURI.isPlatformResource()) { filePath = new Path(domainModelURI.trimSegments(1) .toPlatformString(true)); @@ -111,7 +111,7 @@ public class ModelingNewDebugFileWizard } myFileCreationPage.setContainerFullPath(filePath); myFileCreationPage.setFileName(ModelingDiagramEditorUtil - .getUniqueFileName(filePath, testCaseClassName, "java")); //$NON-NLS-1$ + .getUniqueFileName(filePath, testCaseClassName+"TestCase", "java")); //$NON-NLS-1$ diagramRootElementSelectionPage = new DiagramRootElementSelectionPage( Messages.ModelingNewScxmlFileWizard_RootSelectionPageName); @@ -174,6 +174,7 @@ public class ModelingNewDebugFileWizard public boolean performFinish() { try { List affectedFiles = new LinkedList(); + selectedPath=myFileCreationPage.getContainerFullPath(); final IFile xmlFile = myFileCreationPage.createNewFile(); affectedFiles.add(xmlFile); new ProgressMonitorDialog(null).run(true, false, @@ -223,44 +224,59 @@ public class ModelingNewDebugFileWizard int diagramVID = ModelingVisualIDRegistry .getDiagramVisualID(diagramRootElementSelectionPage .getModelElement()); - monitor.beginTask("SCXML document export progress",9); + monitor.beginTask("SCXML document export progress",12); try { - InputStream fileTemplate=this.getClass().getClassLoader().getResourceAsStream("debug/CommonsSCXMLEngine.java"); - monitor.worked(1); - String content=inputStream2String(fileTemplate); - content=content.replace("$CLASS_NAME$", testCaseClassName); - monitor.worked(1); - String wholePath=filePath+"/"+testCaseClassName+".xml"; + String scxmlDoc=testCaseClassName+".xml"; + String wholePath=selectedPath+"/"+scxmlDoc; + String projectName=wholePath.substring(1,wholePath.indexOf("/",1)); String scxmlPath=wholePath.substring(wholePath.indexOf("/", 1)); - content=content.replace("$SCXML_DOCUMENT_RESOURCE$", scxmlPath); - monitor.worked(1); - debugClassFile.setContents(string2InputStream(content), 1, null); - monitor.worked(7); - // get target list by regular expression - /*ScxmlExportStreamHandlerAction shc = new ScxmlExportStreamHandlerAction( + IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); + IProject theProject = root.getProject(projectName); + try { + if (!theProject.isOpen()) + theProject.open(null); + + IFile target = theProject.getFile(scxmlPath); + if(!target.exists()){ + //export SCXML document + ScxmlExportStreamHandlerAction shc = new ScxmlExportStreamHandlerAction( modelFile.getContents()); - shc.contentPreHandler(); - monitor.worked(1); - shc.getTargetList(); - monitor.worked(1); - shc.transferToXpath(); - monitor.worked(1); - shc.getIdMap(modelFile.getContents()); + shc.contentPreHandler(); + monitor.worked(1); + shc.getTargetList(); + monitor.worked(1); + shc.transferToXpath(); + monitor.worked(1); + shc.getIdMap(modelFile.getContents()); + monitor.worked(1); + shc.updateTargetId(); + monitor.worked(1); + String content = shc.ExecuteXSL(shc.getStreamContnet(), this + .getClass().getClassLoader().getResourceAsStream( + "xslt/export.xsl")); + monitor.worked(1); + content=content.replace("xmlns_attribute_url_in_xslt_file", "xmlns"); + monitor.worked(1); + target.create(shc.string2InputStream(content), false, null); + monitor.worked(1); + }else monitor.worked(8); + } catch (Exception ex) { + ex.printStackTrace(); + } + + //create Apache Commons SCXML runtime class + InputStream fileTemplate=this.getClass().getClassLoader().getResourceAsStream("debug/CommonsSCXMLEngine.java"); monitor.worked(1); - shc.updateTargetId(); + String content=inputStream2String(fileTemplate); + content=content.replace("$CLASS_NAME$", testCaseClassName+"TestCase"); monitor.worked(1); - System.out.println(shc.getStreamContnet()); - String content = shc.ExecuteXSL(shc.getStreamContnet(), this - .getClass().getClassLoader().getResourceAsStream( - "xslt/export.xsl")); + + content=content.replace("$SCXML_DOCUMENT_RESOURCE$", scxmlDoc); monitor.worked(1); - content=content.replace("xmlns_attribute_url_in_xslt_file", "xmlns"); + debugClassFile.setContents(string2InputStream(content), 1, null); monitor.worked(1); - xmlFile.setContents(shc.string2InputStream(content), 1, null); - monitor.worked(1);*/ - if (monitor.isCanceled()) throw new InterruptedException( "The SCXML document debug class creation operation was cancelled"); Modified: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/xslt/export.xsl URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/xslt/export.xsl?rev=966187&r1=966186&r2=966187&view=diff ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/xslt/export.xsl (original) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/xslt/export.xsl Wed Jul 21 11:35:45 2010 @@ -49,13 +49,13 @@ </xsl:template> <xsl:template match="onEntry"> - <xsl:element name="onEntry"> + <xsl:element name="onentry"> <xsl:apply-templates/> </xsl:element> </xsl:template> <xsl:template match="onExit"> - <xsl:element name="onExit"> + <xsl:element name="onexit"> <xsl:apply-templates/> </xsl:element> </xsl:template> Modified: commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/xslt/import.xsl URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/xslt/import.xsl?rev=966187&r1=966186&r2=966187&view=diff ============================================================================== --- commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/xslt/import.xsl (original) +++ commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/xslt/import.xsl Wed Jul 21 11:35:45 2010 @@ -78,13 +78,13 @@ </xsl:choose> </xsl:template> -<xsl:template match="onEntry"> +<xsl:template match="onEntry|onentry"> <xsl:element name="onEntry"> <xsl:apply-templates/> </xsl:element> </xsl:template> -<xsl:template match="onExit"> +<xsl:template match="onExit|onexit"> <xsl:element name="onExit"> <xsl:apply-templates/> </xsl:element>