JBoss Tools SVN: r37873 - trunk/build/parent.
by jbosstools-commits@lists.jboss.org
Author: dgolovin
Date: 2012-01-16 14:37:24 -0500 (Mon, 16 Jan 2012)
New Revision: 37873
Modified:
trunk/build/parent/pom.xml
Log:
fix for coverage report generation
meta generation fixed for plug-ins included in coverage report to exclude third party jars from coverage report
Modified: trunk/build/parent/pom.xml
===================================================================
--- trunk/build/parent/pom.xml 2012-01-16 16:18:02 UTC (rev 37872)
+++ trunk/build/parent/pom.xml 2012-01-16 19:37:24 UTC (rev 37873)
@@ -612,8 +612,9 @@
<instr metadatafile="${project.build.directory}/emma/(a){bundle}-coverage.em"
mode="copy" outdir="${project.build.directory}/instrumented-classes/@{bundle}">
<instrpath>
- <fileset dir="${@{bundle}-classes}" includes="*.jar" />
- <fileset dir="${@{bundle}-classes}/target" includes="*.jar" />
+ <dirset dir="${@{bundle}-classes}">
+ <include name="target/*classes"/>
+ </dirset>
</instrpath>
</instr>
</emma>
12 years, 12 months
JBoss Tools SVN: r37872 - trunk/download.jboss.org/jbosstools/examples.
by jbosstools-commits@lists.jboss.org
Author: fbricon
Date: 2012-01-16 11:18:02 -0500 (Mon, 16 Jan 2012)
New Revision: 37872
Modified:
trunk/download.jboss.org/jbosstools/examples/project-examples-maven-3.3.xml
trunk/download.jboss.org/jbosstools/examples/project-examples-shared-3.3.xml
Log:
JBIDE-10629 : Add icon path to the projects, used shortDescription as usable name in JBoss Central
Modified: trunk/download.jboss.org/jbosstools/examples/project-examples-maven-3.3.xml
===================================================================
--- trunk/download.jboss.org/jbosstools/examples/project-examples-maven-3.3.xml 2012-01-16 15:52:14 UTC (rev 37871)
+++ trunk/download.jboss.org/jbosstools/examples/project-examples-maven-3.3.xml 2012-01-16 16:18:02 UTC (rev 37872)
@@ -36,6 +36,7 @@
-->
</mavenArchetype>
<tags>central</tags>
+ <icon path="icons/jbossas7.png" />
</project>
<project>
@@ -78,6 +79,7 @@
<importTypeDescription>The project example requires the m2eclipse, m2eclipse-wtp and JBoss Maven Project Examples feature.</importTypeDescription>
<welcome type="cheatsheets" url="/jboss-as-helloworld/cheatsheets/helloworld.xml"/>
<tags>central</tags>
+ <icon path="icons/jbossas7.png" />
</project>
<project>
@@ -123,7 +125,8 @@
<importType>maven</importType>
<importTypeDescription>The project example requires the m2eclipse, m2eclipse-wtp and JBoss Maven Project Examples feature.</importTypeDescription>
<tags>central</tags>
- </project>
+ <icon path="icons/jbossas7.png" />
+ </project>
<project>
@@ -166,7 +169,8 @@
<importTypeDescription>The project example requires the m2eclipse, m2eclipse-wtp and JBoss Maven Project Examples feature.</importTypeDescription>
<welcome type="cheatsheets" url="/jboss-as-login/cheatsheets/login.xml"/>
<tags>central</tags>
- </project>
+ <icon path="icons/jbossas7.png" />
+ </project>
<project>
<category>JBoss AS 7 Quickstarts</category>
@@ -208,7 +212,8 @@
<importTypeDescription>The project example requires the m2eclipse, m2eclipse-wtp and JBoss Maven Project Examples feature.</importTypeDescription>
<welcome type="cheatsheets" url="/jboss-as-numberguess/cheatsheets/numberguess.xml"/>
<tags>central</tags>
- </project>
+ <icon path="icons/jbossas7.png" />
+ </project>
<project>
<category>JBoss AS 7 Quickstarts</category>
@@ -251,7 +256,8 @@
<importTypeDescription>The project example requires the m2eclipse, m2eclipse-wtp and JBoss Maven Project Examples feature.</importTypeDescription>
<welcome type="cheatsheets" url="/jboss-as-kitchensink/cheatsheets/kitchensink.xml"/>
<tags>central</tags>
- </project>
+ <icon path="icons/jbossas7.png" />
+ </project>
<project>
<category>JBoss AS 7 Quickstarts</category>
<name>poh5-helloworld</name>
@@ -292,6 +298,7 @@
<welcome type="cheatsheets" url="/poh5-helloworld/cheatsheets/poh5-helloworld.xml"/>
-->
<tags>central, poh5</tags>
- </project>
+ <icon path="icons/jbossas7.png" />
+ </project>
</projects>
Modified: trunk/download.jboss.org/jbosstools/examples/project-examples-shared-3.3.xml
===================================================================
--- trunk/download.jboss.org/jbosstools/examples/project-examples-shared-3.3.xml 2012-01-16 15:52:14 UTC (rev 37871)
+++ trunk/download.jboss.org/jbosstools/examples/project-examples-shared-3.3.xml 2012-01-16 16:18:02 UTC (rev 37872)
@@ -4,7 +4,7 @@
<category>Java EE 6 Quickstarts</category>
<name>jboss-javaee6-webapp</name>
<included-projects>jboss-javaee6-webapp</included-projects>
- <shortDescription>Java EE 6 example (Maven archetype)</shortDescription>
+ <shortDescription>Java EE Web Project</shortDescription>
<description>
This is your project! It's a sample, deployable Maven 3 project to help you get your foot in the door developing with Java EE 6 on JBoss AS 7.
This project is setup to allow you to create a compliant Java EE 6 application using JSF 2.0, CDI 1.0, EJB 3.1, JPA 2.0 and Bean Validation 1.0.
@@ -55,13 +55,14 @@
</properties>
</mavenArchetype>
<tags>wizard</tags>
+ <icon path="icons/newwebprj_wiz.gif" />
</project>
<!-- Temporary EE6 project - replace with Pete's new archetype when it's ready -->
<project>
<category>Java EE 6 Quickstarts</category>
<name>multi-javaee6-archetype</name>
<included-projects>multi-javaee6-archetype</included-projects>
- <shortDescription>JBoss AS 7 / Java EE 6 EAR Webapp(Maven archetype)</shortDescription>
+ <shortDescription>Java EE Project</shortDescription>
<description>An archetype that generates a starter Java EE 6 webapp project for JBoss AS 7 / EAP 6. The project is an EAR, with an EJB-JAR and WAR</description>
<size>13806</size>
<url/>
@@ -106,13 +107,14 @@
</mavenArchetype>
<!--targetProjectFacet facet="jst.ear" version="6.0"/-->
<tags>wizard</tags>
- </project>
+ <icon path="icons/ear-wiz-icon.gif" />
+ </project>
<!-- Temporary POH5 project - replace with Pete's new archetype when it's ready -->
<project>
<category>Java EE 6 Quickstarts</category>
<name>jboss-javaee6-poh5-archetype</name>
<included-projects>jboss-javaee6-poh5</included-projects>
- <shortDescription>Java EE 6 HTML5 Mobile Webapp</shortDescription>
+ <shortDescription>HTML5 Project</shortDescription>
<description>An archetype that generates a Java EE 6 HTML5 Mobile Webapp project for JBoss AS 7 / EAP 6</description>
<size>165567</size>
<url/>
@@ -157,13 +159,14 @@
<javaPackage>org.jboss.tools.example.html5</javaPackage>
</mavenArchetype>
<tags>wizard</tags>
- </project>
+ <icon path="icons/html5.png" />
+ </project>
<!-- Temporary Spring MVC project - replace with Marius' new archetype when it's ready -->
<project>
<category>Java EE 6 Quickstarts</category>
<name>spring-mvc-webapp</name>
<included-projects>spring-mvc-webapp</included-projects>
- <shortDescription>Java EE 6 - Spring MVC Application (Maven archetype)</shortDescription>
+ <shortDescription>Spring MVC Project</shortDescription>
<description>An archetype that generates a starter Spring MVC application with Java EE persistence settings (server bootstrapped JPA, JTA transaction management) for JBoss AS7 / EAP 6</description>
<size>165567</size>
<url/>
@@ -205,13 +208,14 @@
<javaPackage>org.jboss.tools.example.springmvc</javaPackage>
</mavenArchetype>
<tags>wizard</tags>
- </project>
+ <icon path="icons/spring_wiz.gif" />
+ </project>
<!-- Richfaces project -->
<project>
<category>Java EE 6 Quickstarts</category>
<name>richfaces-archetype-simpleapp</name>
<included-projects>richfaces-archetype-simpleapp</included-projects>
- <shortDescription>Java EE 6 - RichFaces Simple Application (Maven archetype)</shortDescription>
+ <shortDescription>RichFaces Project</shortDescription>
<description>An archetype that generates a simple Richfaces application</description>
<size>165567</size>
<url/>
@@ -262,5 +266,6 @@
-->
</mavenArchetype>
<tags>wizard</tags>
+ <icon path="icons/rf_logo.png" />
</project>
</projects>
12 years, 12 months
JBoss Tools SVN: r37871 - in trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test: smoke and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: jgargula
Date: 2012-01-16 10:52:14 -0500 (Mon, 16 Jan 2012)
New Revision: 37871
Modified:
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java
Log:
Added support for projects with Drools 5.1 or above
Modified: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java 2012-01-16 15:48:49 UTC (rev 37870)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java 2012-01-16 15:52:14 UTC (rev 37871)
@@ -69,7 +69,10 @@
public static final String GUIDED_DROOLS_RULE_NAME = "GuidedRule.brl";
public static final String DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME = "DslTest.dsl";
public static final String RULE_FLOW_JAVA_TEST_FILE_NAME = "ProcessTest.java";
- public static final String RULE_FLOW_RF_FILE_NAME = "ruleflow.rf";//"sample.bpmn";
+ public static final String RULE_FLOW_RF_FILE_NAME = "ruleflow.rf";
+ public static final String RULE_FLOW_SAMPLE_FILE_NAME = "sample.bpmn";
+ // this variable should be set in ManageDroolsProject class according to used Drools version
+ public static String RULE_FLOW_FILE_NAME = RULE_FLOW_SAMPLE_FILE_NAME; // default choice
public static final String DECISION_TABLE_JAVA_TEST_FILE_NAME = "DecisionTableTest.java";
public static final String USE_EXTERNAL_DROOLS_RUNTIME_PROPERTY_NAME = "use-external-drools-runtime";
public static final String EXTERNAL_DROOLS_RUTIME_HOME_PROPERTY_NAME = "external-drools-runtime-home";
Modified: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java 2012-01-16 15:48:49 UTC (rev 37870)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java 2012-01-16 15:52:14 UTC (rev 37871)
@@ -70,8 +70,15 @@
}
}
bot.button(IDELabel.Button.NEXT).click();
+ //final String CODE_COMPATIBILITY = IDELabel.NewDroolsProjectDialog.CODE_COMPATIBLE_WITH_50_DROOLS;
+ final String CODE_COMPATIBILITY = IDELabel.NewDroolsProjectDialog.CODE_COMPATIBLE_WITH_51_DROOLS_OR_ABOVE;
+ if (CODE_COMPATIBILITY.equals(IDELabel.NewDroolsProjectDialog.CODE_COMPATIBLE_WITH_51_DROOLS_OR_ABOVE)) {
+ DroolsAllBotTests.RULE_FLOW_FILE_NAME = DroolsAllBotTests.RULE_FLOW_SAMPLE_FILE_NAME;
+ } else {
+ DroolsAllBotTests.RULE_FLOW_FILE_NAME = DroolsAllBotTests.RULE_FLOW_RF_FILE_NAME;
+ }
bot.comboBoxWithLabel(IDELabel.NewDroolsProjectDialog.GENERATE_CODE_COMPATIBLE_WITH_COMBO_BOX_LABEL)
- .setSelection(IDELabel.NewDroolsProjectDialog.CODE_COMPATIBLE_WITH_50_DROOLS);
+ .setSelection(CODE_COMPATIBILITY);
bot.button(IDELabel.Button.FINISH).click();
}
Modified: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java 2012-01-16 15:48:49 UTC (rev 37870)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java 2012-01-16 15:52:14 UTC (rev 37871)
@@ -18,9 +18,16 @@
import java.util.LinkedList;
import java.util.List;
+import javax.xml.XMLConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Source;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamSource;
+import javax.xml.validation.Schema;
+import javax.xml.validation.SchemaFactory;
+import javax.xml.validation.Validator;
import org.eclipse.swtbot.eclipse.gef.finder.SWTGefBot;
import org.eclipse.swtbot.eclipse.gef.finder.widgets.SWTBotGefEditor;
@@ -60,14 +67,16 @@
private static final int ROOT_NODE_CHILDREN_COUNT = 3;
private boolean isEditorMaximized = false;
+
/**
* Tests Rule Flow
*/
@Test
public void testRuleFlow() {
runRuleFlowCheck(DroolsAllBotTests.RULE_FLOW_JAVA_TEST_FILE_NAME);
- ruleFlowEditorCheck(DroolsAllBotTests.RULE_FLOW_RF_FILE_NAME);
+ ruleFlowEditorCheck(DroolsAllBotTests.RULE_FLOW_FILE_NAME);
}
+
/**
* Runs newly created Drools project and check result
* @param droolsProjectName
@@ -90,18 +99,18 @@
"Expected console text is: " + "Hello World\n",
"Hello World\n".equals(consoleText));
}
+
/**
* Add all possible object to RF diagram and then remove them
* @param ruleFlowRfFileName
*/
- private void ruleFlowEditorCheck (String ruleFlowFileName){
+ private void ruleFlowEditorCheck(String ruleFlowFileName) {
packageExplorer.show();
packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- DroolsAllBotTests.RULE_FLOW_RF_FILE_NAME);
- // Test if Rule Flow RF File is opened in editor
- assertTrue("Rule Flow RF File is not opened properly. File " + ruleFlowFileName + " is not opened in editor",
- SWTEclipseExt.existEditorWithLabel(bot,ruleFlowFileName));
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE, ruleFlowFileName);
+ // Test if Rule Flow File is opened in editor
+ assertTrue("Rule Flow File is not opened properly. File " + ruleFlowFileName + " is not opened in editor",
+ SWTEclipseExt.existEditorWithLabel(bot, ruleFlowFileName));
// Maximize editor
bot.menu(IDELabel.Menu.WINDOW)
.menu(IDELabel.Menu.NAVIGATION)
@@ -112,9 +121,7 @@
SWTBotGefEditor gefEditor = gefBot.gefEditor(ruleFlowFileName);
// Clear Editor
gefEditor.setFocus();
- deleteAllObjectsFromRFFile(gefEditor,
- DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.RULE_FLOW_RF_FILE_NAME);
+ deleteAllObjectsFromRuleFile(gefEditor, DroolsAllBotTests.DROOLS_PROJECT_NAME, ruleFlowFileName);
// Draw each component
String[] tools = new String[]{"Start Event","End Event","Rule Task",
"Gateway [diverge]","Gateway [converge]","Reusable Sub-Process",
@@ -136,7 +143,7 @@
// Click on End Node
gefEditor.click(xspacing + xoffset + 5, yoffset + 5);
gefEditor.save();
- checkFullRFFile(DroolsAllBotTests.DROOLS_PROJECT_NAME , ruleFlowFileName);
+ checkFullRuleFile(DroolsAllBotTests.DROOLS_PROJECT_NAME , ruleFlowFileName);
// check synchronization with Properties View
gefEditor.activateTool("Select");
gefEditor.click(xoffset + 5, yoffset + 5);
@@ -163,23 +170,139 @@
isEditorMaximized = false;
gefEditor.save();
gefEditor.close();
- checkEmptyRFFile(DroolsAllBotTests.DROOLS_PROJECT_NAME , ruleFlowFileName);
- }
+ checkEmptyRuleFile(DroolsAllBotTests.DROOLS_PROJECT_NAME , ruleFlowFileName);
+ }
+
+ /**
+ * Converts to full path of rule flow file.
+ *
+ * @param projectName Project name
+ * @param ruleFlowFileName File name of rule flow
+ * @return Full path to rule flow file
+ */
+ private String getFullPathToRuleFlowFile(final String projectName, final String ruleFlowFileName) {
+ return SWTUtilExt.getPathToProject(projectName) + File.separator
+ + RuleFlowTest.RULE_FLOW_FILE_DIRECTORY + File.separator + ruleFlowFileName;
+ }
+
+ /**
+ * Return normalized document from file with given name.
+ *
+ * @param fileName File name to get it normalized document from.
+ * @return Normalized document
+ */
+ private Document getNormalizedDocument(final String fileName) {
+ Document document = loadXmlFile(fileName);
+ document.normalizeDocument();
+ return document;
+ }
+
+ /**
+ * Decides according to used Drools version.
+ *
+ * @param projectName
+ * @param ruleFlowFileName
+ */
+ private void checkFullRuleFile(final String projectName, final String ruleFlowFileName) {
+ if (DroolsAllBotTests.RULE_FLOW_SAMPLE_FILE_NAME.equals(ruleFlowFileName)) {
+ checkFullBpmnFile(projectName, ruleFlowFileName);
+ } else {
+ checkFullRFFile(projectName, ruleFlowFileName);
+ }
+ }
+
+ /**
+ * Checks full BPMN file.
+ *
+ * @param projectName
+ * @param ruleFlowFileName
+ */
+ private void checkFullBpmnFile(final String projectName, final String ruleFlowFileName) {
+ final String START_EVENT_NODE_NAME = "startEvent";
+ final String END_EVENT_NODE_NAME = "endEvent";
+ final String BUSINESS_RULE_TASK = "businessRuleTask";
+ final String COMPLEX_GATEWAY_NODE_NAME = "complexGateway";
+ final String CALL_ACTIVITY_NODE_NAME = "callActivity";
+ final String SCRIPT_TASK_NODE_NAME = "scriptTask";
+ final String SEQUENCE_FLOW_NODE_NAME = "sequenceFlow";
+ final String GATEWAY_DIRECTION = "gatewayDirection";
+ final String DIVERGING = "Diverging";
+ final String CONVERGING = "Converging";
+ final String SOURCE_REF = "sourceRef";
+ final String TARGET_REF = "targetRef";
+ final String ID = "id";
+
+ final String fullRuleFlowFileName = getFullPathToRuleFlowFile(projectName, ruleFlowFileName);
+
+ assertTrue("'" + fullRuleFlowFileName + "' is not valid BPMN 2 XML file.", isValidBpmnXml(fullRuleFlowFileName));
+
+ Document document = getNormalizedDocument(fullRuleFlowFileName);
+
+ final String START_EVENT_ID;
+ final String END_EVENT_ID;
+
+ assertEquals("There should be just one '" + START_EVENT_NODE_NAME + "' element in XML.",
+ 1, document.getElementsByTagName(START_EVENT_NODE_NAME).getLength());
+ START_EVENT_ID = document.getElementsByTagName(START_EVENT_NODE_NAME).item(0).getAttributes()
+ .getNamedItem(ID).getTextContent();
+
+ assertEquals("There should be just one '" + END_EVENT_NODE_NAME + "' element in XML.",
+ 1, document.getElementsByTagName(END_EVENT_NODE_NAME).getLength());
+ END_EVENT_ID = document.getElementsByTagName(END_EVENT_NODE_NAME).item(0).getAttributes()
+ .getNamedItem(ID).getTextContent();
+
+ assertEquals("There should be just one '" + BUSINESS_RULE_TASK + "' element in XML.",
+ 1, document.getElementsByTagName(BUSINESS_RULE_TASK).getLength());
+
+ NodeList gatewayNodes = document.getElementsByTagName(COMPLEX_GATEWAY_NODE_NAME);
+ assertEquals("There should be exactly two '" + COMPLEX_GATEWAY_NODE_NAME + "' elements in XML.",
+ 2, gatewayNodes.getLength());
+ int diverging = 0;
+ int converging = 0;
+ for (int i = 0; i < gatewayNodes.getLength(); i++) {
+ NamedNodeMap attributes = gatewayNodes.item(i).getAttributes();
+ for (int j = 0; j < attributes.getLength(); j++) {
+ Node attribute = attributes.item(j);
+ if (GATEWAY_DIRECTION.equals(attribute.getNodeName())) {
+ if (DIVERGING.equals(attribute.getTextContent())) {
+ diverging++;
+ } else if (CONVERGING.equals(attribute.getTextContent())) {
+ converging++;
+ }
+ }
+ }
+ }
+ assertEquals("There should be one diverging and one converting gateway, but it wasn't so.",
+ 1, diverging * converging);
+
+ assertEquals("There should be just one '" + CALL_ACTIVITY_NODE_NAME + "' element in XML.",
+ 1, document.getElementsByTagName(CALL_ACTIVITY_NODE_NAME).getLength());
+
+ assertEquals("There should be just one '" + SCRIPT_TASK_NODE_NAME + "' element in XML.",
+ 1, document.getElementsByTagName(SCRIPT_TASK_NODE_NAME).getLength());
+
+ assertEquals("There should be just one '" + SEQUENCE_FLOW_NODE_NAME + "' element in XML.",
+ 1, document.getElementsByTagName(SEQUENCE_FLOW_NODE_NAME).getLength());
+
+ NamedNodeMap attributes = document.getElementsByTagName(SEQUENCE_FLOW_NODE_NAME).item(0).getAttributes();
+ final String sourceRef = attributes.getNamedItem(SOURCE_REF).getTextContent();
+ assertEquals("Source of sequence flow should be '" + START_EVENT_ID + "' but was '"
+ + sourceRef + "'.", START_EVENT_ID, sourceRef);
+ final String targetRef = attributes.getNamedItem(TARGET_REF).getTextContent();
+ assertEquals("Target of sequence flow should be '" + END_EVENT_ID + "' but was '"
+ + targetRef, END_EVENT_ID, targetRef);
+ }
+
/**
* Check content of Rule Flow file containing all possible objects
*
* @param projectName
* @param ruleFlowFileName
*/
- private void checkFullRFFile(String projectName, String ruleFlowFileName) {
-
- Document doc = loadXmlFile(SWTUtilExt.getPathToProject(projectName)
- + File.separator + RuleFlowTest.RULE_FLOW_FILE_DIRECTORY
- + File.separator + ruleFlowFileName);
-
+ private void checkFullRFFile(final String projectName, final String ruleFlowFileName) {
String errorDescription = null;
+ Document doc = getNormalizedDocument(getFullPathToRuleFlowFile(projectName, ruleFlowFileName));
Element rootNode = doc.getDocumentElement();
- doc.normalizeDocument();
if (rootNode.getNodeName().equals(ROOT_NODE_NAME)) {
NodeList rootNodeList = rootNode.getChildNodes();
List<Node> rootNodes = removeTextNodes(rootNodeList);
@@ -213,6 +336,45 @@
}
assertNull(errorDescription,errorDescription);
}
+
+ /**
+ * Decides according to used Drools version.
+ *
+ * @param projectName
+ * @param ruleFlowFileName
+ */
+ private void checkEmptyRuleFile(final String projectName, final String ruleFlowFileName) {
+ if (DroolsAllBotTests.RULE_FLOW_SAMPLE_FILE_NAME.equals(ruleFlowFileName)) {
+ checkEmptyBpmnFile(projectName, ruleFlowFileName);
+ } else {
+ checkEmptyRFFile(projectName, ruleFlowFileName);
+ }
+ }
+
+ /**
+ * Checks empty BPMN file with given name.
+ *
+ * @param projectName
+ * @param ruleFlowFileName
+ */
+ private void checkEmptyBpmnFile(final String projectName, final String ruleFlowFileName) {
+ final String fullRuleFlowFileName = getFullPathToRuleFlowFile(projectName, ruleFlowFileName);
+ assertTrue("'" + fullRuleFlowFileName + "' is not a valid BPMN 2 XML file.",
+ isValidBpmnXml(fullRuleFlowFileName));
+
+ final String PROCESS_NODE_NAME = "process";
+ Document document = getNormalizedDocument(fullRuleFlowFileName);
+ NodeList processNode = document.getElementsByTagName(PROCESS_NODE_NAME);
+ assertEquals("There should be just one '" + PROCESS_NODE_NAME + "' node.", 1, processNode.getLength());
+ NodeList processChildNodes = processNode.item(0).getChildNodes();
+ for (int i = 0; i < processChildNodes.getLength(); i++) {
+ final String processChildNodeName = processChildNodes.item(i).getNodeName();
+ if (!("#text".equals(processChildNodeName) || "#comment".equals(processChildNodeName))) {
+ fail("'" + PROCESS_NODE_NAME + "' node should not have any child nodes (except #text and #comment) but it has.");
+ }
+ }
+ }
+
/**
* Check content of empty Rule Flow file
* @param projectName
@@ -445,6 +607,22 @@
e.printStackTrace();
}
}
+
+ /**
+ * Deletes all objects from rule file.
+ *
+ * @param gefEditor
+ * @param projectName
+ * @param ruleFlowFileName
+ */
+ private void deleteAllObjectsFromRuleFile(SWTBotGefEditor gefEditor, String projectName, String ruleFlowFileName) {
+ if (DroolsAllBotTests.RULE_FLOW_SAMPLE_FILE_NAME.equals(ruleFlowFileName)) {
+ deleteAllObjectFromBpmnFile(gefEditor, projectName, ruleFlowFileName);
+ } else {
+ deleteAllObjectsFromRFFile(gefEditor, projectName, ruleFlowFileName);
+ }
+ }
+
/**
* Delete all objects from RF File
* @param gefEditor
@@ -488,4 +666,85 @@
assertNull(errorDescription,errorDescription);
}
+ /**
+ * Deletes all object from BPMN file.
+ *
+ * @param gefEditor
+ * @param projectName
+ * @param ruleFlowFileName
+ */
+ private void deleteAllObjectFromBpmnFile(SWTBotGefEditor gefEditor, String projectName, String ruleFlowFileName) {
+ final String fileName = getFullPathToRuleFlowFile(projectName, ruleFlowFileName);
+ assertTrue("Rule flow file '" + fileName + "' is not valid.", isValidBpmnXml(fileName));
+
+ Document document = getNormalizedDocument(fileName);
+ NodeList nodeList = document.getElementsByTagName("*");
+ for (int i = 0; i < nodeList.getLength(); i++) {
+ Node xAttribute = nodeList.item(i).getAttributes().getNamedItem("g:x");
+ Node yAttribute = nodeList.item(i).getAttributes().getNamedItem("g:y");
+ if (xAttribute != null && yAttribute != null) {
+ int x = Integer.parseInt(xAttribute.getNodeValue());
+ int y = Integer.parseInt(yAttribute.getNodeValue());
+ final int OFFSET = 3;
+ gefEditor.click(x + OFFSET, y + OFFSET);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
+ bot.sleep(Timing.time1S());
+ }
+ }
+ }
+
+ /**
+ * Validates file with given name if it is valid BPMN 2 XML.
+ *
+ * @param bpmnXmlFileName Name of the file to be validated.
+ * @return <code>true</code> if given document is valid BPMN 2 XML file,
+ * <code>false</code> otherwise.
+ */
+ private static boolean isValidBpmnXml(final String bpmnXmlFileName) {
+ final String XML_SCHEMA_FILE = "resources/XMLSchemas/BPMN20.xsd";
+
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ dbf.setNamespaceAware(true);
+
+ DocumentBuilder parser;
+ Document document;
+ try {
+ parser = dbf.newDocumentBuilder();
+ document = parser.parse(new File(bpmnXmlFileName));
+ } catch (ParserConfigurationException pce) {
+ pce.printStackTrace();
+ return false;
+ } catch (SAXException saxe) {
+ saxe.printStackTrace();
+ return false;
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ return false;
+ }
+
+ SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
+ Source schemaFile = new StreamSource(new File(XML_SCHEMA_FILE));
+ Schema schema;
+ try {
+ schema = schemaFactory.newSchema(schemaFile);
+ } catch (SAXException saxe) {
+ saxe.printStackTrace();
+ return false;
+ }
+
+ Validator validator = schema.newValidator();
+ try {
+ validator.validate(new DOMSource(document));
+ } catch (SAXException saxe) {
+ // instance document is invalid!
+ log.error("ERROR: Document '" + bpmnXmlFileName + "' is invalid (" + saxe.getMessage() + ")");
+ return false;
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ return false;
+ }
+
+ return true;
+ }
}
\ No newline at end of file
12 years, 12 months
JBoss Tools SVN: r37870 - in trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test: properties and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: jpeterka
Date: 2012-01-16 10:48:49 -0500 (Mon, 16 Jan 2012)
New Revision: 37870
Added:
trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/hbbot-via-maven.launch
trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/properties/
trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/properties/hsqlint-bot.properties
Modified:
trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/pom.xml
Log:
[hbbot] update dependencies configuration for bot test via mvn
Added: trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/hbbot-via-maven.launch
===================================================================
--- trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/hbbot-via-maven.launch (rev 0)
+++ trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/hbbot-via-maven.launch 2012-01-16 15:48:49 UTC (rev 37870)
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.m2e.Maven2LaunchConfigurationType">
+<booleanAttribute key="M2_DEBUG_OUTPUT" value="false"/>
+<stringAttribute key="M2_GOALS" value="integration-test"/>
+<booleanAttribute key="M2_NON_RECURSIVE" value="false"/>
+<booleanAttribute key="M2_OFFLINE" value="false"/>
+<stringAttribute key="M2_PROFILES" value=""/>
+<listAttribute key="M2_PROPERTIES">
+<listEntry value="swt.test.skip=false"/>
+</listAttribute>
+<stringAttribute key="M2_RUNTIME" value="EMBEDDED"/>
+<booleanAttribute key="M2_SKIP_TESTS" value="false"/>
+<booleanAttribute key="M2_UPDATE_SNAPSHOTS" value="false"/>
+<booleanAttribute key="M2_WORKSPACE_RESOLUTION" value="false"/>
+<mapAttribute key="org.eclipse.debug.core.environmentVariables">
+<mapEntry key="DISPLAY" value=":0"/>
+</mapAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_27"/>
+<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:/org.jboss.tools.hibernate.ui.bot.test}"/>
+</launchConfiguration>
Property changes on: trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/hbbot-via-maven.launch
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Modified: trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/pom.xml
===================================================================
--- trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/pom.xml 2012-01-16 15:48:02 UTC (rev 37869)
+++ trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/pom.xml 2012-01-16 15:48:49 UTC (rev 37870)
@@ -10,6 +10,10 @@
<artifactId>org.jboss.tools.hibernate.ui.bot.test</artifactId>
<packaging>eclipse-test-plugin</packaging>
+
+ <properties>
+ <systemProperties>-Dtest.configurations.dir=./properties/</systemProperties>
+ </properties>
<build>
<plugins>
@@ -18,7 +22,14 @@
<artifactId>tycho-surefire-plugin</artifactId>
<configuration>
<useUIThread>false</useUIThread>
- <skip>true</skip>
+ <skip>${swt.test.skip}</skip>
+ <dependencies combine.children="append">
+ <dependency>
+ <type>p2-installable-unit</type>
+ <artifactId>org.eclipse.datatools.enablement.hsqldb.feature.feature.group</artifactId>
+ <version>0.0.0</version>
+ </dependency>
+ </dependencies>
</configuration>
</plugin>
</plugins>
Added: trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/properties/hsqlint-bot.properties
===================================================================
--- trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/properties/hsqlint-bot.properties (rev 0)
+++ trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/properties/hsqlint-bot.properties 2012-01-16 15:48:49 UTC (rev 37870)
@@ -0,0 +1,3 @@
+#DB=hsqldb18,internal,driver,jdbc,user,,/home/jpeterka/etc/hb/hsql-db.sql
+DB=hsqldb18,internal,driver,jdbc,user,,
+
Property changes on: trunk/hibernatetools/tests/org.jboss.tools.hibernate.ui.bot.test/properties/hsqlint-bot.properties
___________________________________________________________________
Added: svn:mime-type
+ text/plain
12 years, 12 months
JBoss Tools SVN: r37869 - in trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources: XMLSchemas and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: jgargula
Date: 2012-01-16 10:48:02 -0500 (Mon, 16 Jan 2012)
New Revision: 37869
Added:
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd
Log:
Added XML schemas for validating BPMN files.
Added: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd (rev 0)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd 2012-01-16 15:48:02 UTC (rev 37869)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
+ xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
+ targetNamespace="http://www.omg.org/spec/BPMN/20100524/MODEL">
+
+ <xsd:import namespace="http://www.omg.org/spec/BPMN/20100524/DI" schemaLocation="BPMNDI.xsd"/>
+ <xsd:include schemaLocation="Semantic.xsd"/>
+
+ <xsd:element name="definitions" type="tDefinitions"/>
+ <xsd:complexType name="tDefinitions">
+ <xsd:sequence>
+ <xsd:element ref="import" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="extension" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="rootElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="bpmndi:BPMNDiagram" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="relationship" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="targetNamespace" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="expressionLanguage" type="xsd:anyURI" use="optional" default="http://www.w3.org/1999/XPath"/>
+ <xsd:attribute name="typeLanguage" type="xsd:anyURI" use="optional" default="http://www.w3.org/2001/XMLSchema"/>
+ <xsd:attribute name="exporter" type="xsd:string"/>
+ <xsd:attribute name="exporterVersion" type="xsd:string"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:element name="import" type="tImport"/>
+ <xsd:complexType name="tImport">
+ <xsd:attribute name="namespace" type="xsd:anyURI" use="required"/>
+ <xsd:attribute name="location" type="xsd:string" use="required"/>
+ <xsd:attribute name="importType" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+
+</xsd:schema>
\ No newline at end of file
Added: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd (rev 0)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd 2012-01-16 15:48:02 UTC (rev 37869)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" targetNamespace="http://www.omg.org/spec/BPMN/20100524/DI" elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+ <xsd:import namespace="http://www.omg.org/spec/DD/20100524/DC" schemaLocation="DC.xsd" />
+ <xsd:import namespace="http://www.omg.org/spec/DD/20100524/DI" schemaLocation="DI.xsd" />
+
+ <xsd:element name="BPMNDiagram" type="bpmndi:BPMNDiagram" />
+ <xsd:element name="BPMNPlane" type="bpmndi:BPMNPlane" />
+ <xsd:element name="BPMNLabelStyle" type="bpmndi:BPMNLabelStyle" />
+ <xsd:element name="BPMNShape" type="bpmndi:BPMNShape" substitutionGroup="di:DiagramElement" />
+ <xsd:element name="BPMNLabel" type="bpmndi:BPMNLabel" />
+ <xsd:element name="BPMNEdge" type="bpmndi:BPMNEdge" substitutionGroup="di:DiagramElement" />
+
+ <xsd:complexType name="BPMNDiagram">
+ <xsd:complexContent>
+ <xsd:extension base="di:Diagram">
+ <xsd:sequence>
+ <xsd:element ref="bpmndi:BPMNPlane" />
+ <xsd:element ref="bpmndi:BPMNLabelStyle" maxOccurs="unbounded" minOccurs="0" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="BPMNPlane">
+ <xsd:complexContent>
+ <xsd:extension base="di:Plane">
+ <xsd:attribute name="bpmnElement" type="xsd:QName" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="BPMNEdge">
+ <xsd:complexContent>
+ <xsd:extension base="di:LabeledEdge">
+ <xsd:sequence>
+ <xsd:element ref="bpmndi:BPMNLabel" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="bpmnElement" type="xsd:QName" />
+ <xsd:attribute name="sourceElement" type="xsd:QName" />
+ <xsd:attribute name="targetElement" type="xsd:QName" />
+ <xsd:attribute name="messageVisibleKind" type="bpmndi:MessageVisibleKind" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="BPMNShape">
+ <xsd:complexContent>
+ <xsd:extension base="di:LabeledShape">
+ <xsd:sequence>
+ <xsd:element ref="bpmndi:BPMNLabel" minOccurs="0" />
+ </xsd:sequence>
+ <xsd:attribute name="bpmnElement" type="xsd:QName" />
+ <xsd:attribute name="isHorizontal" type="xsd:boolean" />
+ <xsd:attribute name="isExpanded" type="xsd:boolean" />
+ <xsd:attribute name="isMarkerVisible" type="xsd:boolean" />
+ <xsd:attribute name="isMessageVisible" type="xsd:boolean" />
+ <xsd:attribute name="participantBandKind" type="bpmndi:ParticipantBandKind" />
+ <xsd:attribute name="choreographyActivityShape" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="BPMNLabel">
+ <xsd:complexContent>
+ <xsd:extension base="di:Label">
+ <xsd:attribute name="labelStyle" type="xsd:QName" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType name="BPMNLabelStyle">
+ <xsd:complexContent>
+ <xsd:extension base="di:Style">
+ <xsd:sequence>
+ <xsd:element ref="dc:Font" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="ParticipantBandKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="top_initiating" />
+ <xsd:enumeration value="middle_initiating" />
+ <xsd:enumeration value="bottom_initiating" />
+ <xsd:enumeration value="top_non_initiating" />
+ <xsd:enumeration value="middle_non_initiating" />
+ <xsd:enumeration value="bottom_non_initiating" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="MessageVisibleKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="initiating" />
+ <xsd:enumeration value="non_initiating" />
+ </xsd:restriction>
+ </xsd:simpleType>
+
+</xsd:schema>
Added: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd (rev 0)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd 2012-01-16 15:48:02 UTC (rev 37869)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" targetNamespace="http://www.omg.org/spec/DD/20100524/DC" elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+ <xsd:element name="Font" type="dc:Font" />
+ <xsd:element name="Point" type="dc:Point" />
+ <xsd:element name="Bounds" type="dc:Bounds" />
+
+ <xsd:complexType name="Font">
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="size" type="xsd:double" />
+ <xsd:attribute name="isBold" type="xsd:boolean" />
+ <xsd:attribute name="isItalic" type="xsd:boolean" />
+ <xsd:attribute name="isUnderline" type="xsd:boolean" />
+ <xsd:attribute name="isStrikeThrough" type="xsd:boolean" />
+ </xsd:complexType>
+
+ <xsd:complexType name="Point">
+ <xsd:attribute name="x" type="xsd:double" use="required" />
+ <xsd:attribute name="y" type="xsd:double" use="required" />
+ </xsd:complexType>
+
+ <xsd:complexType name="Bounds">
+ <xsd:attribute name="x" type="xsd:double" use="required" />
+ <xsd:attribute name="y" type="xsd:double" use="required" />
+ <xsd:attribute name="width" type="xsd:double" use="required" />
+ <xsd:attribute name="height" type="xsd:double" use="required" />
+ </xsd:complexType>
+
+</xsd:schema>
Added: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd (rev 0)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd 2012-01-16 15:48:02 UTC (rev 37869)
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" targetNamespace="http://www.omg.org/spec/DD/20100524/DI" elementFormDefault="qualified" attributeFormDefault="unqualified">
+
+ <xsd:import namespace="http://www.omg.org/spec/DD/20100524/DC" schemaLocation="DC.xsd" />
+
+ <xsd:element name="DiagramElement" type="di:DiagramElement" />
+ <xsd:element name="Diagram" type="di:Diagram" />
+ <xsd:element name="Style" type="di:Style" />
+ <xsd:element name="Node" type="di:Node" />
+ <xsd:element name="Edge" type="di:Edge" />
+ <xsd:element name="Shape" type="di:Shape" />
+ <xsd:element name="Plane" type="di:Plane" />
+ <xsd:element name="LabeledEdge" type="di:LabeledEdge" />
+ <xsd:element name="Label" type="di:Label" />
+ <xsd:element name="LabeledShape" type="di:LabeledShape" />
+
+ <xsd:complexType abstract="true" name="DiagramElement">
+ <xsd:sequence>
+ <xsd:element name="extension" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" />
+ <xsd:anyAttribute namespace="##other" processContents="lax" />
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Diagram">
+ <xsd:attribute name="name" type="xsd:string" />
+ <xsd:attribute name="documentation" type="xsd:string" />
+ <xsd:attribute name="resolution" type="xsd:double" />
+ <xsd:attribute name="id" type="xsd:ID" />
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Node">
+ <xsd:complexContent>
+ <xsd:extension base="di:DiagramElement" />
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Edge">
+ <xsd:complexContent>
+ <xsd:extension base="di:DiagramElement">
+ <xsd:sequence>
+ <xsd:element maxOccurs="unbounded" minOccurs="2" name="waypoint" type="dc:Point" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="LabeledEdge">
+ <xsd:complexContent>
+ <xsd:extension base="di:Edge" />
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Shape">
+ <xsd:complexContent>
+ <xsd:extension base="di:Node">
+ <xsd:sequence>
+ <xsd:element ref="dc:Bounds" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="LabeledShape">
+ <xsd:complexContent>
+ <xsd:extension base="di:Shape" />
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Label">
+ <xsd:complexContent>
+ <xsd:extension base="di:Node">
+ <xsd:sequence>
+ <xsd:element ref="dc:Bounds" minOccurs="0" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Plane">
+ <xsd:complexContent>
+ <xsd:extension base="di:Node">
+ <xsd:sequence>
+ <xsd:element ref="di:DiagramElement" maxOccurs="unbounded" minOccurs="0" />
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:complexType abstract="true" name="Style">
+ <xsd:attribute name="id" type="xsd:ID" />
+ </xsd:complexType>
+
+</xsd:schema>
Added: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd (rev 0)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd 2012-01-16 15:48:02 UTC (rev 37869)
@@ -0,0 +1,1562 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified"
+ xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.omg.org/spec/BPMN/20100524/MODEL">
+
+ <xsd:element name="activity" type="tActivity"/>
+ <xsd:complexType name="tActivity" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode">
+ <xsd:sequence>
+ <xsd:element ref="ioSpecification" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataInputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataOutputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="resourceRole" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="loopCharacteristics" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="isForCompensation" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="startQuantity" type="xsd:integer" default="1"/>
+ <xsd:attribute name="completionQuantity" type="xsd:integer" default="1"/>
+ <xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="adHocSubProcess" type="tAdHocSubProcess" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tAdHocSubProcess">
+ <xsd:complexContent>
+ <xsd:extension base="tSubProcess">
+ <xsd:sequence>
+ <xsd:element name="completionCondition" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="cancelRemainingInstances" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="ordering" type="tAdHocOrdering"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tAdHocOrdering">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Parallel"/>
+ <xsd:enumeration value="Sequential"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="artifact" type="tArtifact"/>
+ <xsd:complexType name="tArtifact" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="assignment" type="tAssignment" />
+ <xsd:complexType name="tAssignment">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="from" type="tExpression" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="to" type="tExpression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="association" type="tAssociation" substitutionGroup="artifact"/>
+ <xsd:complexType name="tAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tArtifact">
+ <xsd:attribute name="sourceRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="targetRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="associationDirection" type="tAssociationDirection" default="None"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tAssociationDirection">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="One"/>
+ <xsd:enumeration value="Both"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="auditing" type="tAuditing"/>
+ <xsd:complexType name="tAuditing">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="baseElement" type="tBaseElement"/>
+ <xsd:complexType name="tBaseElement" abstract="true">
+ <xsd:sequence>
+ <xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="extensionElements" minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:element name="baseElementWithMixedContent" type="tBaseElementWithMixedContent"/>
+ <xsd:complexType name="tBaseElementWithMixedContent" abstract="true" mixed="true">
+ <xsd:sequence>
+ <xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="extensionElements" minOccurs="0" maxOccurs="1" />
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ <xsd:anyAttribute namespace="##other" processContents="lax"/>
+ </xsd:complexType>
+
+ <xsd:element name="boundaryEvent" type="tBoundaryEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tBoundaryEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tCatchEvent">
+ <xsd:attribute name="cancelActivity" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="attachedToRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="businessRuleTask" type="tBusinessRuleTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tBusinessRuleTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:attribute name="implementation" type="tImplementation" default="##unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callableElement" type="tCallableElement"/>
+ <xsd:complexType name="tCallableElement">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element name="supportedInterfaceRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="ioSpecification" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="ioBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callActivity" type="tCallActivity" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tCallActivity">
+ <xsd:complexContent>
+ <xsd:extension base="tActivity">
+ <xsd:attribute name="calledElement" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callChoreography" type="tCallChoreography" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tCallChoreography">
+ <xsd:complexContent>
+ <xsd:extension base="tChoreographyActivity">
+ <xsd:sequence>
+ <xsd:element ref="participantAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="calledChoreographyRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="callConversation" type="tCallConversation" substitutionGroup="conversationNode"/>
+ <xsd:complexType name="tCallConversation">
+ <xsd:complexContent>
+ <xsd:extension base="tConversationNode">
+ <xsd:sequence>
+ <xsd:element ref="participantAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="calledCollaborationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="cancelEventDefinition" type="tCancelEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tCancelEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="catchEvent" type="tCatchEvent"/>
+ <xsd:complexType name="tCatchEvent" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tEvent">
+ <xsd:sequence>
+ <xsd:element ref="dataOutput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataOutputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="outputSet" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="eventDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="eventDefinitionRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="parallelMultiple" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="category" type="tCategory" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tCategory">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="categoryValue" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="categoryValue" type="tCategoryValue"/>
+ <xsd:complexType name="tCategoryValue">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="value" type="xsd:string" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="choreography" type="tChoreography" substitutionGroup="collaboration"/>
+ <xsd:complexType name="tChoreography">
+ <xsd:complexContent>
+ <xsd:extension base="tCollaboration">
+ <xsd:sequence>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="choreographyActivity" type="tChoreographyActivity"/>
+ <xsd:complexType name="tChoreographyActivity" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode">
+ <xsd:sequence>
+ <xsd:element name="participantRef" type="xsd:QName" minOccurs="2" maxOccurs="unbounded"/>
+ <xsd:element ref="correlationKey" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="initiatingParticipantRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="loopType" type="tChoreographyLoopType" default="None"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tChoreographyLoopType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="Standard"/>
+ <xsd:enumeration value="MultiInstanceSequential"/>
+ <xsd:enumeration value="MultiInstanceParallel"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="choreographyTask" type="tChoreographyTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tChoreographyTask">
+ <xsd:complexContent>
+ <xsd:extension base="tChoreographyActivity">
+ <xsd:sequence>
+ <xsd:element name="messageFlowRef" type="xsd:QName" minOccurs="1" maxOccurs="2"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="collaboration" type="tCollaboration" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tCollaboration">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="participant" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="messageFlow" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="conversationNode" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="conversationAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="participantAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="messageFlowAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="correlationKey" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="choreographyRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="conversationLink" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="isClosed" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="compensateEventDefinition" type="tCompensateEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tCompensateEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="waitForCompletion" type="xsd:boolean"/>
+ <xsd:attribute name="activityRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="complexBehaviorDefinition" type="tComplexBehaviorDefinition"/>
+ <xsd:complexType name="tComplexBehaviorDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="condition" type="tFormalExpression" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="event" type="tImplicitThrowEvent" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="complexGateway" type="tComplexGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tComplexGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:sequence>
+ <xsd:element name="activationCondition" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="default" type="xsd:IDREF"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conditionalEventDefinition" type="tConditionalEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tConditionalEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:sequence>
+ <xsd:element name="condition" type="tExpression"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conversation" type="tConversation" substitutionGroup="conversationNode"/>
+ <xsd:complexType name="tConversation">
+ <xsd:complexContent>
+ <xsd:extension base="tConversationNode"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conversationAssociation" type="tConversationAssociation"/>
+ <xsd:complexType name="tConversationAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="innerConversationNodeRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="outerConversationNodeRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conversationLink" type="tConversationLink"/>
+ <xsd:complexType name="tConversationLink">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="sourceRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="targetRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="conversationNode" type="tConversationNode"/>
+ <xsd:complexType name="tConversationNode" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="participantRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="messageFlowRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="correlationKey" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationKey" type="tCorrelationKey"/>
+ <xsd:complexType name="tCorrelationKey">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="correlationPropertyRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationProperty" type="tCorrelationProperty" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tCorrelationProperty">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="correlationPropertyRetrievalExpression" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="type" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationPropertyBinding" type="tCorrelationPropertyBinding"/>
+ <xsd:complexType name="tCorrelationPropertyBinding">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="dataPath" type="tFormalExpression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="correlationPropertyRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationPropertyRetrievalExpression" type="tCorrelationPropertyRetrievalExpression"/>
+ <xsd:complexType name="tCorrelationPropertyRetrievalExpression">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="messagePath" type="tFormalExpression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="messageRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="correlationSubscription" type="tCorrelationSubscription"/>
+ <xsd:complexType name="tCorrelationSubscription">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="correlationPropertyBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="correlationKeyRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataAssociation" type="tDataAssociation" />
+ <xsd:complexType name="tDataAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="sourceRef" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="targetRef" type="xsd:IDREF" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="transformation" type="tFormalExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="assignment" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataInput" type="tDataInput" />
+ <xsd:complexType name="tDataInput">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName" />
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataInputAssociation" type="tDataInputAssociation" />
+ <xsd:complexType name="tDataInputAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tDataAssociation"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataObject" type="tDataObject" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tDataObject">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataObjectReference" type="tDataObjectReference" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tDataObjectReference">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ <xsd:attribute name="dataObjectRef" type="xsd:IDREF"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataOutput" type="tDataOutput" />
+ <xsd:complexType name="tDataOutput">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="optional" />
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataOutputAssociation" type="tDataOutputAssociation" />
+ <xsd:complexType name="tDataOutputAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tDataAssociation"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataState" type="tDataState" />
+ <xsd:complexType name="tDataState">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataStore" type="tDataStore" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tDataStore">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="capacity" type="xsd:integer"/>
+ <xsd:attribute name="isUnlimited" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="dataStoreReference" type="tDataStoreReference" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tDataStoreReference">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ <xsd:attribute name="dataStoreRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="documentation" type="tDocumentation"/>
+ <xsd:complexType name="tDocumentation" mixed="true">
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:ID" use="optional"/>
+ <xsd:attribute name="textFormat" type="xsd:string" default="text/plain"/>
+ </xsd:complexType>
+
+ <xsd:element name="endEvent" type="tEndEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tEndEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tThrowEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="endPoint" type="tEndPoint" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tEndPoint">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="error" type="tError" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tError">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="errorCode" type="xsd:string"/>
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="errorEventDefinition" type="tErrorEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tErrorEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="errorRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="escalation" type="tEscalation" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tEscalation">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="escalationCode" type="xsd:string"/>
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="escalationEventDefinition" type="tEscalationEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tEscalationEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="escalationRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="event" type="tEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tEvent" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode">
+ <xsd:sequence>
+ <xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="eventBasedGateway" type="tEventBasedGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tEventBasedGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:attribute name="instantiate" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="eventGatewayType" type="tEventBasedGatewayType" default="Exclusive"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tEventBasedGatewayType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Exclusive"/>
+ <xsd:enumeration value="Parallel"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="eventDefinition" type="tEventDefinition" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tEventDefinition" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="exclusiveGateway" type="tExclusiveGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tExclusiveGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="expression" type="tExpression"/>
+ <xsd:complexType name="tExpression">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElementWithMixedContent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="extension" type="tExtension"/>
+ <xsd:complexType name="tExtension">
+ <xsd:sequence>
+ <xsd:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="definition" type="xsd:QName"/>
+ <xsd:attribute name="mustUnderstand" type="xsd:boolean" use="optional" default="false"/>
+ </xsd:complexType>
+
+ <xsd:element name="extensionElements" type="tExtensionElements" />
+ <xsd:complexType name="tExtensionElements">
+ <xsd:sequence>
+ <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="flowElement" type="tFlowElement"/>
+ <xsd:complexType name="tFlowElement" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="auditing" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="monitoring" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="categoryValueRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="flowNode" type="tFlowNode"/>
+ <xsd:complexType name="tFlowNode" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element name="incoming" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="outgoing" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="formalExpression" type="tFormalExpression" substitutionGroup="expression"/>
+ <xsd:complexType name="tFormalExpression">
+ <xsd:complexContent>
+ <xsd:extension base="tExpression">
+ <xsd:attribute name="language" type="xsd:anyURI" use="optional"/>
+ <xsd:attribute name="evaluatesToTypeRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="gateway" type="tGateway" abstract="true"/>
+ <xsd:complexType name="tGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowNode">
+ <xsd:attribute name="gatewayDirection" type="tGatewayDirection" default="Unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tGatewayDirection">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Unspecified"/>
+ <xsd:enumeration value="Converging"/>
+ <xsd:enumeration value="Diverging"/>
+ <xsd:enumeration value="Mixed"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="globalBusinessRuleTask" type="tGlobalBusinessRuleTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalBusinessRuleTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask">
+ <xsd:attribute name="implementation" type="tImplementation" default="##unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalChoreographyTask" type="tGlobalChoreographyTask" substitutionGroup="choreography"/>
+ <xsd:complexType name="tGlobalChoreographyTask">
+ <xsd:complexContent>
+ <xsd:extension base="tChoreography">
+ <xsd:attribute name="initiatingParticipantRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:element name="globalConversation" type="tGlobalConversation" substitutionGroup="collaboration"/>
+ <xsd:complexType name="tGlobalConversation">
+ <xsd:complexContent>
+ <xsd:extension base="tCollaboration"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalManualTask" type="tGlobalManualTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalManualTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalScriptTask" type="tGlobalScriptTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalScriptTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask">
+ <xsd:sequence>
+ <xsd:element ref="script" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="scriptLanguage" type="xsd:anyURI"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalTask" type="tGlobalTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalTask">
+ <xsd:complexContent>
+ <xsd:extension base="tCallableElement">
+ <xsd:sequence>
+ <xsd:element ref="resourceRole" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="globalUserTask" type="tGlobalUserTask" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tGlobalUserTask">
+ <xsd:complexContent>
+ <xsd:extension base="tGlobalTask">
+ <xsd:sequence>
+ <xsd:element ref="rendering" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="implementation" type="tImplementation" default="##unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="group" type="tGroup" substitutionGroup="artifact"/>
+ <xsd:complexType name="tGroup">
+ <xsd:complexContent>
+ <xsd:extension base="tArtifact">
+ <xsd:attribute name="categoryValueRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="humanPerformer" type="tHumanPerformer" substitutionGroup="performer"/>
+ <xsd:complexType name="tHumanPerformer">
+ <xsd:complexContent>
+ <xsd:extension base="tPerformer"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tImplementation">
+ <xsd:union memberTypes="xsd:anyURI">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="##unspecified" />
+ <xsd:enumeration value="##WebService" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:union>
+ </xsd:simpleType>
+
+ <xsd:element name="implicitThrowEvent" type="tImplicitThrowEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tImplicitThrowEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tThrowEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="inclusiveGateway" type="tInclusiveGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tInclusiveGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway">
+ <xsd:attribute name="default" type="xsd:IDREF" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="inputSet" type="tInputSet" />
+ <xsd:complexType name="tInputSet">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="dataInputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="optionalInputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="whileExecutingInputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="outputSetRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" />
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="interface" type="tInterface" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tInterface">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="operation" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="implementationRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="intermediateCatchEvent" type="tIntermediateCatchEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tIntermediateCatchEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tCatchEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="intermediateThrowEvent" type="tIntermediateThrowEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tIntermediateThrowEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tThrowEvent"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="ioBinding" type="tInputOutputBinding" />
+ <xsd:complexType name="tInputOutputBinding">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="operationRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="inputDataRef" type="xsd:IDREF" use="required"/>
+ <xsd:attribute name="outputDataRef" type="xsd:IDREF" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="ioSpecification" type="tInputOutputSpecification" />
+ <xsd:complexType name="tInputOutputSpecification">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataInput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataOutput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="inputSet" minOccurs="1" maxOccurs="unbounded"/>
+ <xsd:element ref="outputSet" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="itemDefinition" type="tItemDefinition" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tItemDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ <xsd:attribute name="isCollection" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="itemKind" type="tItemKind" default="Information"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tItemKind">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Information"/>
+ <xsd:enumeration value="Physical"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="lane" type="tLane"/>
+ <xsd:complexType name="tLane">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="partitionElement" type="tBaseElement" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="flowNodeRef" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="childLaneSet" type="tLaneSet" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="partitionElementRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="laneSet" type="tLaneSet"/>
+ <xsd:complexType name="tLaneSet">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="lane" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="linkEventDefinition" type="tLinkEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tLinkEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:sequence>
+ <xsd:element name="source" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="target" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="loopCharacteristics" type="tLoopCharacteristics"/>
+ <xsd:complexType name="tLoopCharacteristics" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="manualTask" type="tManualTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tManualTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="message" type="tMessage" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tMessage">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="itemRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="messageEventDefinition" type="tMessageEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tMessageEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:sequence>
+ <xsd:element name="operationRef" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="messageRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="messageFlow" type="tMessageFlow"/>
+ <xsd:complexType name="tMessageFlow">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="name" type="xsd:string" use="optional"/>
+ <xsd:attribute name="sourceRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="targetRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="messageRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="messageFlowAssociation" type="tMessageFlowAssociation"/>
+ <xsd:complexType name="tMessageFlowAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="innerMessageFlowRef" type="xsd:QName" use="required"/>
+ <xsd:attribute name="outerMessageFlowRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="monitoring" type="tMonitoring"/>
+ <xsd:complexType name="tMonitoring">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="multiInstanceLoopCharacteristics" type="tMultiInstanceLoopCharacteristics" substitutionGroup="loopCharacteristics"/>
+ <xsd:complexType name="tMultiInstanceLoopCharacteristics">
+ <xsd:complexContent>
+ <xsd:extension base="tLoopCharacteristics">
+ <xsd:sequence>
+ <xsd:element name="loopCardinality" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="loopDataInputRef" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="loopDataOutputRef" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="inputDataItem" type="tDataInput" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="outputDataItem" type="tDataOutput" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="complexBehaviorDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="completionCondition" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="isSequential" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="behavior" type="tMultiInstanceFlowCondition" default="All"/>
+ <xsd:attribute name="oneBehaviorEventRef" type="xsd:QName" use="optional"/>
+ <xsd:attribute name="noneBehaviorEventRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tMultiInstanceFlowCondition">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="One"/>
+ <xsd:enumeration value="All"/>
+ <xsd:enumeration value="Complex"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="operation" type="tOperation"/>
+ <xsd:complexType name="tOperation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="inMessageRef" type="xsd:QName" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="outMessageRef" type="xsd:QName" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="errorRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="implementationRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="outputSet" type="tOutputSet" />
+ <xsd:complexType name="tOutputSet">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="dataOutputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="optionalOutputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="whileExecutingOutputRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="inputSetRefs" type="xsd:IDREF" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="parallelGateway" type="tParallelGateway" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tParallelGateway">
+ <xsd:complexContent>
+ <xsd:extension base="tGateway"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="participant" type="tParticipant"/>
+ <xsd:complexType name="tParticipant">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="interfaceRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="endPointRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="participantMultiplicity" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="processRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="participantAssociation" type="tParticipantAssociation"/>
+ <xsd:complexType name="tParticipantAssociation">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="innerParticipantRef" type="xsd:QName" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="outerParticipantRef" type="xsd:QName" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="participantMultiplicity" type="tParticipantMultiplicity"/>
+ <xsd:complexType name="tParticipantMultiplicity">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="minimum" type="xsd:int" default="0"/>
+ <xsd:attribute name="maximum" type="xsd:int" default="1"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="partnerEntity" type="tPartnerEntity" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tPartnerEntity">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element name="participantRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="partnerRole" type="tPartnerRole" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tPartnerRole">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element name="participantRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="performer" type="tPerformer" substitutionGroup="resourceRole"/>
+ <xsd:complexType name="tPerformer">
+ <xsd:complexContent>
+ <xsd:extension base="tResourceRole"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="potentialOwner" type="tPotentialOwner" substitutionGroup="performer"/>
+ <xsd:complexType name="tPotentialOwner">
+ <xsd:complexContent>
+ <xsd:extension base="tHumanPerformer"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="process" type="tProcess" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tProcess">
+ <xsd:complexContent>
+ <xsd:extension base="tCallableElement">
+ <xsd:sequence>
+ <xsd:element ref="auditing" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="monitoring" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="laneSet" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="resourceRole" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="correlationSubscription" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="supports" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="processType" type="tProcessType" default="None"/>
+ <xsd:attribute name="isClosed" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="isExecutable" type="xsd:boolean"/>
+ <xsd:attribute name="definitionalCollaborationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tProcessType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="Public"/>
+ <xsd:enumeration value="Private"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="property" type="tProperty" />
+ <xsd:complexType name="tProperty">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="dataState" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="itemSubjectRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="receiveTask" type="tReceiveTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tReceiveTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:attribute name="implementation" type="tImplementation" default="##WebService"/>
+ <xsd:attribute name="instantiate" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="messageRef" type="xsd:QName" use="optional"/>
+ <xsd:attribute name="operationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="relationship" type="tRelationship"/>
+ <xsd:complexType name="tRelationship">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element name="source" type="xsd:QName" minOccurs="1" maxOccurs="unbounded"/>
+ <xsd:element name="target" type="xsd:QName" minOccurs="1" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="type" type="xsd:string" use="required"/>
+ <xsd:attribute name="direction" type="tRelationshipDirection"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tRelationshipDirection">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="Forward"/>
+ <xsd:enumeration value="Backward"/>
+ <xsd:enumeration value="Both"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:element name="rendering" type="tRendering"/>
+ <xsd:complexType name="tRendering">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resource" type="tResource" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tResource">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:sequence>
+ <xsd:element ref="resourceParameter" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resourceAssignmentExpression" type="tResourceAssignmentExpression"/>
+ <xsd:complexType name="tResourceAssignmentExpression">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="expression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resourceParameter" type="tResourceParameter"/>
+ <xsd:complexType name="tResourceParameter">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="type" type="xsd:QName"/>
+ <xsd:attribute name="isRequired" type="xsd:boolean"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resourceParameterBinding" type="tResourceParameterBinding"/>
+ <xsd:complexType name="tResourceParameterBinding">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:sequence>
+ <xsd:element ref="expression" minOccurs="1" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="parameterRef" type="xsd:QName" use="required"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="resourceRole" type="tResourceRole"/>
+ <xsd:complexType name="tResourceRole">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement">
+ <xsd:choice>
+ <xsd:sequence>
+ <xsd:element name="resourceRef" type="xsd:QName"/>
+ <xsd:element ref="resourceParameterBinding" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:element ref="resourceAssignmentExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:choice>
+ <xsd:attribute name="name" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="rootElement" type="tRootElement"/>
+ <xsd:complexType name="tRootElement" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tBaseElement"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="scriptTask" type="tScriptTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tScriptTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:sequence>
+ <xsd:element ref="script" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="scriptFormat" type="xsd:string"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="script" type="tScript"/>
+ <xsd:complexType name="tScript" mixed="true">
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="sendTask" type="tSendTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tSendTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:attribute name="implementation" type="tImplementation" default="##WebService"/>
+ <xsd:attribute name="messageRef" type="xsd:QName" use="optional"/>
+ <xsd:attribute name="operationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="sequenceFlow" type="tSequenceFlow" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tSequenceFlow">
+ <xsd:complexContent>
+ <xsd:extension base="tFlowElement">
+ <xsd:sequence>
+ <xsd:element name="conditionExpression" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="sourceRef" type="xsd:IDREF" use="required"/>
+ <xsd:attribute name="targetRef" type="xsd:IDREF" use="required"/>
+ <xsd:attribute name="isImmediate" type="xsd:boolean" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="serviceTask" type="tServiceTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tServiceTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:attribute name="implementation" type="tImplementation" default="##WebService"/>
+ <xsd:attribute name="operationRef" type="xsd:QName" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="signal" type="tSignal" substitutionGroup="rootElement"/>
+ <xsd:complexType name="tSignal">
+ <xsd:complexContent>
+ <xsd:extension base="tRootElement">
+ <xsd:attribute name="name" type="xsd:string"/>
+ <xsd:attribute name="structureRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="signalEventDefinition" type="tSignalEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tSignalEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:attribute name="signalRef" type="xsd:QName"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="standardLoopCharacteristics" type="tStandardLoopCharacteristics" substitutionGroup="loopCharacteristics"/>
+ <xsd:complexType name="tStandardLoopCharacteristics">
+ <xsd:complexContent>
+ <xsd:extension base="tLoopCharacteristics">
+ <xsd:sequence>
+ <xsd:element name="loopCondition" type="tExpression" minOccurs="0"/>
+ </xsd:sequence>
+ <xsd:attribute name="testBefore" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="loopMaximum" type="xsd:integer" use="optional"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="startEvent" type="tStartEvent" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tStartEvent">
+ <xsd:complexContent>
+ <xsd:extension base="tCatchEvent">
+ <xsd:attribute name="isInterrupting" type="xsd:boolean" default="true"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="subChoreography" type="tSubChoreography" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tSubChoreography">
+ <xsd:complexContent>
+ <xsd:extension base="tChoreographyActivity">
+ <xsd:sequence>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="subConversation" type="tSubConversation" substitutionGroup="conversationNode"/>
+ <xsd:complexType name="tSubConversation">
+ <xsd:complexContent>
+ <xsd:extension base="tConversationNode">
+ <xsd:sequence>
+ <xsd:element ref="conversationNode" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="subProcess" type="tSubProcess" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tSubProcess">
+ <xsd:complexContent>
+ <xsd:extension base="tActivity">
+ <xsd:sequence>
+ <xsd:element ref="laneSet" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="flowElement" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="artifact" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="triggeredByEvent" type="xsd:boolean" default="false"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="task" type="tTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tTask">
+ <xsd:complexContent>
+ <xsd:extension base="tActivity"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="terminateEventDefinition" type="tTerminateEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tTerminateEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition"/>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="textAnnotation" type="tTextAnnotation" substitutionGroup="artifact"/>
+ <xsd:complexType name="tTextAnnotation">
+ <xsd:complexContent>
+ <xsd:extension base="tArtifact">
+ <xsd:sequence>
+ <xsd:element ref="text" minOccurs="0" maxOccurs="1"/>
+ </xsd:sequence>
+ <xsd:attribute name="textFormat" type="xsd:string" default="text/plain"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="text" type="tText"/>
+ <xsd:complexType name="tText" mixed="true">
+ <xsd:sequence>
+ <xsd:any namespace="##any" processContents="lax" minOccurs="0"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="throwEvent" type="tThrowEvent"/>
+ <xsd:complexType name="tThrowEvent" abstract="true">
+ <xsd:complexContent>
+ <xsd:extension base="tEvent">
+ <xsd:sequence>
+ <xsd:element ref="dataInput" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="dataInputAssociation" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element ref="inputSet" minOccurs="0" maxOccurs="1"/>
+ <xsd:element ref="eventDefinition" minOccurs="0" maxOccurs="unbounded"/>
+ <xsd:element name="eventDefinitionRef" type="xsd:QName" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="timerEventDefinition" type="tTimerEventDefinition" substitutionGroup="eventDefinition"/>
+ <xsd:complexType name="tTimerEventDefinition">
+ <xsd:complexContent>
+ <xsd:extension base="tEventDefinition">
+ <xsd:choice>
+ <xsd:element name="timeDate" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="timeDuration" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ <xsd:element name="timeCycle" type="tExpression" minOccurs="0" maxOccurs="1"/>
+ </xsd:choice>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:element name="transaction" type="tTransaction" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tTransaction">
+ <xsd:complexContent>
+ <xsd:extension base="tSubProcess">
+ <xsd:attribute name="method" type="tTransactionMethod" default="##Compensate"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+ <xsd:simpleType name="tTransactionMethod">
+ <xsd:union memberTypes="xsd:anyURI">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="##Compensate" />
+ <xsd:enumeration value="##Image" />
+ <xsd:enumeration value="##Store" />
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:union>
+ </xsd:simpleType>
+
+ <xsd:element name="userTask" type="tUserTask" substitutionGroup="flowElement"/>
+ <xsd:complexType name="tUserTask">
+ <xsd:complexContent>
+ <xsd:extension base="tTask">
+ <xsd:sequence>
+ <xsd:element ref="rendering" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="implementation" type="tImplementation" default="##unspecified"/>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+
+</xsd:schema>
\ No newline at end of file
12 years, 12 months
JBoss Tools SVN: r37868 - trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext.
by jbosstools-commits@lists.jboss.org
Author: jgargula
Date: 2012-01-16 10:46:49 -0500 (Mon, 16 Jan 2012)
New Revision: 37868
Modified:
trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTEclipseExt.java
Log:
Fixed very long waiting time for run as java application
Modified: trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTEclipseExt.java
===================================================================
--- trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTEclipseExt.java 2012-01-16 15:23:48 UTC (rev 37867)
+++ trunk/tests/plugins/org.jboss.tools.ui.bot.ext/src/org/jboss/tools/ui/bot/ext/SWTEclipseExt.java 2012-01-16 15:46:49 UTC (rev 37868)
@@ -1231,11 +1231,12 @@
//bot.sleep(30000l);
//System.out.println (treeItem.contextMenu("Run As").menu("2 Java Application").getText());
- bot.sleep(30000l);
+ //bot.sleep(30000l);
+ bot.sleep(Timing.time1S());
treeItem.contextMenu("Run As").menu("2 Java Application").click();
//runJavaApplication("helloworld_testclient","org.jboss.soa.esb.samples.quickstart.helloworld.test.SendJMSMessage"," ");
- bot.sleep(30000l); // This is needed to enable the test to run successfully to completion
-
+ //bot.sleep(30000l); // This is needed to enable the test to run successfully to completion
+ bot.waitForShell(IDELabel.Shell.PROGRESS_INFORMATION);
}
/**
12 years, 12 months
JBoss Tools SVN: r37867 - in trunk/jsf/tests/org.jboss.tools.jsf.test: resources and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: vrubezhny
Date: 2012-01-16 10:23:48 -0500 (Mon, 16 Jan 2012)
New Revision: 37867
Added:
trunk/jsf/tests/org.jboss.tools.jsf.test/resources/
trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/
trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_0.html
trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_1.html
trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_2.html
trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_0.xhtml
trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_1.xhtml
trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_2.xhtml
Log:
JBIDE-10472
CLONE - XHTML Validator hangs eclipse
JUnit Test is added for XHTML/Non-XHTML file detection and validtion
Added: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_0.html
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_0.html (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_0.html 2012-01-16 15:23:48 UTC (rev 37867)
@@ -0,0 +1,70 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <title>some title</title>
+</head>
+
+<body>
+<h2>some heading.</h2>
+
+SOME TEST!!!!<br>
+MORE TEXT
+
+<script type="text/javascript" language="javascript" >
+// A comment
+
+function GetCookie (name) {
+ var arg = name + "=";
+ var alen = arg.length;
+ var clen = document.cookie.length;
+ var i = 0;
+ while (i < clen) {
+ var j = i + alen;
+ if (document.cookie.substring(i, j) == arg)
+ return getCookieVal (j);
+ i = document.cookie.indexOf(" ", i) + 1;
+ if (i == 0) break;
+ }
+return null;
+}
+
+function getCookieVal (offset) {
+ var endstr = document.cookie.indexOf (";", offset);
+ if (endstr == -1)
+ endstr = document.cookie.length;
+ return document.cookie.substring(offset, endstr);
+}
+
+//comment
+var xyz = GetCookie('xyz'); // Comments
+
+var datum = new Date();
+
+var d1 = datum.getTime().toString();
+// comment "" bla
+var d2 = "100";
+// comment
+var d3 = "dba";
+// comment
+var abc = 999;
+// comment
+
+function urlEncode (string) {
+ string = string.replace(/ /g, '+');
+ return escape(string);
+ }
+
+// comment
+// comment
+if(cookie != "" && cookie != null ){
+ document.write("<img src=\"http://example.com./xxx?bla=" + xyz + "&bar="+abc+"&d1=" +urlEncode(d1)+ "&d2=" +urlEncode(d2) +"&d3=" +urlEncode(d3)+"\" alt=\"\" width=\"1\" height=\"1\" border=\"0\" >");
+}
+else {
+var cookie = "kaz"
+}
+</script>
+
+
+</body>
+</html>
\ No newline at end of file
Property changes on: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_0.html
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_1.html
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_1.html (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_1.html 2012-01-16 15:23:48 UTC (rev 37867)
@@ -0,0 +1,48 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <title>some title</title>
+</head>
+
+<body>
+
+<script type="text/javascript" language="javascript" >
+// A comment
+
+function GetCookie (name) {
+
+ while (i < clen) {
+
+ }
+
+return null;
+}
+
+</script>
+
+
+</body>
+</html>
+
+However, the following does not hang:
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+
+<body>
+
+<script type="text/javascript" language="javascript" >
+// A comment
+
+function GetCookie (name) {
+
+ while (i < clen) {
+
+ }
+
+return null;
+}
+
+</script>
Property changes on: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_1.html
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_2.html
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_2.html (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_2.html 2012-01-16 15:23:48 UTC (rev 37867)
@@ -0,0 +1,22 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+
+<html>
+<head>
+ <title>some title</title>
+</head>
+
+<body>
+
+<script type="text/javascript" language="javascript" >
+// A comment
+
+function GetCookie (name) {
+
+ while (i = clen) {
+
+ }
+
+return null;
+}
+
+</script>
Property changes on: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/html_page_2.html
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_0.xhtml
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_0.xhtml (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_0.xhtml 2012-01-16 15:23:48 UTC (rev 37867)
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:ez="http://java.sun.com/jsf/composite/demo">
+
+ <ui:composition template="/templates/common.xhtml">
+
+ <ui:define name="pageTitle">Input User Name</ui:define>
+
+ <ui:define name="pageHeader">JSF 2 Hello Application</ui:define>
+
+ <ui:define name="body">
+ <h:message showSummary="true" showDetail="false" style="color: red; font-weight: bold;" for="inputname" />
+ <ez:input id="inputname" label="${msgs.prompt}" value="#{user.name}" action="#{user.sayHello}" submitlabel="Say Hello"/>
+ </ui:define>
+ </ui:composition>
+</html>
\ No newline at end of file
Property changes on: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_0.xhtml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_1.xhtml
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_1.xhtml (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_1.xhtml 2012-01-16 15:23:48 UTC (rev 37867)
@@ -0,0 +1,71 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:f="http://java.sun.com/jsf/core"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:m="http://http://java.sun.com/jsf/composite/components/model"
+ xmlns:p="http://http://java.sun.com/jsf/composite/components/property"
+ template="/WEB-INF/layout/template.xhtml">
+
+ <ui:define name="content">
+
+ <div class="section">
+ <h1>Confirm Hotel Booking</h1>
+ </div>
+
+ <div class="section">
+ <m:displayHotel value="#{hotel}"/>
+
+ <p:output label="Total payment" value="#{booking.total}">
+ <f:convertNumber for="output" type="currency" currencySymbol="$"/>
+ </p:output>
+
+ <p:output label="Check-in date" value="#{booking.checkinDate}">
+ <f:convertDateTime for="output" type="date" pattern="MM/dd/yyyy"/>
+ </p:output>
+
+ <p:output label="Check-out date" value="#{booking.checkoutDate}">
+ <f:convertDateTime for="output" type="date" pattern="MM/dd/yyyy"/>
+ </p:output>
+
+ <p:output label="Credit card #" value="#{booking.creditCardNumber}"/>
+
+ <p:output label="Credit card type" value="#{booking.creditCardType}"/>
+
+ <div class="buttonBox">
+ <h:form id="confirmForm">
+ <h:commandButton id="confirm" value="Confirm" action="#{bookingAgent.confirm}"/>
+ #{' '}
+ <h:button id="revise" value="Revise" outcome="/book.xhtml">
+ <f:param name="cid" value="#{conversation.id}"/>
+ </h:button>
+ #{' '}
+ <h:commandButton id="cancel" value="Cancel" action="#{bookingAgent.cancel}" immediate="true"/>
+ </h:form>
+ </div>
+
+ </div>
+
+ </ui:define>
+
+ <ui:define name="sidebar">
+ <!--
+ <h1>Back button navigation</h1>
+ <p>
+ When you click "Confirm", the new booking is written to the database,
+ the conversation ends, and state associated with the conversation is
+ automatically destroyed by Seam. After you confirm your booking, try
+ hitting the back button on your web browser and clicking "Confirm"
+ again. Seam makes it easy implement applications that behave elegantly
+ in response to the back, forward and refresh buttons.
+ </p>
+ <p>
+ <a href="#" onclick="window.open('exp/confirmExp.html','exp','width=752,height=500,scrollbars=yes');">
+ What happens when the conversation ends?
+ </a>
+ </p>
+ -->
+ </ui:define>
+
+</ui:composition>
Property changes on: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_1.xhtml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Added: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_2.xhtml
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_2.xhtml (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_2.xhtml 2012-01-16 15:23:48 UTC (rev 37867)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ xmlns:h="http://java.sun.com/jsf/html"
+ xmlns:f="http://java.sun.com/jsf/core">
+
+
+ <ui:composition template="/templates/common.xhtml">
+ <ui:define name="pageTitle">Greeting to User</ui:define>
+ <ui:define name="pageHeader">Greeting Page</ui:define>
+ <ui:define name="body">
+ #{msgs.greeting} #{user.name}!
+ <h:inputText readonly="true" />
+ <h:graphicImage value="/img/seamlogo.png" alt="Seam logo & copyright" />
+ </ui:define>
+ </ui:composition>
+</html>
\ No newline at end of file
Property changes on: trunk/jsf/tests/org.jboss.tools.jsf.test/resources/pages2validate/xhtml_page_2.xhtml
___________________________________________________________________
Added: svn:mime-type
+ text/plain
12 years, 12 months
JBoss Tools SVN: r37866 - trunk/download.jboss.org/jbosstools/examples.
by jbosstools-commits@lists.jboss.org
Author: fbricon
Date: 2012-01-16 10:18:48 -0500 (Mon, 16 Jan 2012)
New Revision: 37866
Modified:
trunk/download.jboss.org/jbosstools/examples/project-examples-shared-3.3.xml
Log:
JBIDE-10629 : Add a new "wizard" tag to all examples supposed to be added as wizard (temporary hack)
Modified: trunk/download.jboss.org/jbosstools/examples/project-examples-shared-3.3.xml
===================================================================
--- trunk/download.jboss.org/jbosstools/examples/project-examples-shared-3.3.xml 2012-01-16 15:16:54 UTC (rev 37865)
+++ trunk/download.jboss.org/jbosstools/examples/project-examples-shared-3.3.xml 2012-01-16 15:18:48 UTC (rev 37866)
@@ -54,6 +54,7 @@
<property name="name" value="Java EE 6 webapp project"/>
</properties>
</mavenArchetype>
+ <tags>wizard</tags>
</project>
<!-- Temporary EE6 project - replace with Pete's new archetype when it's ready -->
<project>
@@ -104,6 +105,7 @@
<javaPackage>org.jboss.tools.example</javaPackage>
</mavenArchetype>
<!--targetProjectFacet facet="jst.ear" version="6.0"/-->
+ <tags>wizard</tags>
</project>
<!-- Temporary POH5 project - replace with Pete's new archetype when it's ready -->
<project>
@@ -154,6 +156,7 @@
<version>0.0.1-SNAPSHOT</version>
<javaPackage>org.jboss.tools.example.html5</javaPackage>
</mavenArchetype>
+ <tags>wizard</tags>
</project>
<!-- Temporary Spring MVC project - replace with Marius' new archetype when it's ready -->
<project>
@@ -201,6 +204,7 @@
<version>0.0.1-SNAPSHOT</version>
<javaPackage>org.jboss.tools.example.springmvc</javaPackage>
</mavenArchetype>
+ <tags>wizard</tags>
</project>
<!-- Richfaces project -->
<project>
@@ -257,5 +261,6 @@
</properties>
-->
</mavenArchetype>
+ <tags>wizard</tags>
</project>
</projects>
12 years, 12 months
JBoss Tools SVN: r37865 - trunk/openshift/tests.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2012-01-16 10:16:54 -0500 (Mon, 16 Jan 2012)
New Revision: 37865
Modified:
trunk/openshift/tests/pom.xml
Log:
[JBIDE-9871] added openshift.express.test feature
Modified: trunk/openshift/tests/pom.xml
===================================================================
--- trunk/openshift/tests/pom.xml 2012-01-16 15:01:27 UTC (rev 37864)
+++ trunk/openshift/tests/pom.xml 2012-01-16 15:16:54 UTC (rev 37865)
@@ -12,8 +12,7 @@
<packaging>pom</packaging>
<modules>
<module>org.jboss.tools.openshift.egit.test</module>
- <!-- JBIDE-10068
- <module>org.jboss.tools.openshift.express.client.test</module> -->
+ <module>org.jboss.tools.openshift.express.test</module>
</modules>
</project>
12 years, 12 months
JBoss Tools SVN: r37864 - in trunk/jsf: tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test and 1 other directories.
by jbosstools-commits@lists.jboss.org
Author: vrubezhny
Date: 2012-01-16 10:01:27 -0500 (Mon, 16 Jan 2012)
New Revision: 37864
Added:
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/validation/XHTMLDetectorAndValidatorTest.java
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/XHTMLValidator.java
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JsfAllTests.java
Log:
JBIDE-10472
CLONE - XHTML Validator hangs eclipse
JUnit Test is added for XHTML/Non-XHTML file detection and validtion
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/XHTMLValidator.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/XHTMLValidator.java 2012-01-16 14:25:24 UTC (rev 37863)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/XHTMLValidator.java 2012-01-16 15:01:27 UTC (rev 37864)
@@ -146,10 +146,10 @@
IDocument doc = resource instanceof IFile ? getDocument((IFile)resource) : null;
if (doc == null || !isXHTML(doc)) {
- System.out.println("XHTML is NOT Detected: " + resource.getFullPath().toString());
+// System.out.println("XHTML is NOT Detected: " + resource.getFullPath().toString());
return report;
} else {
- System.out.println("XHTML is Detected: " + resource.getFullPath().toString());
+// System.out.println("XHTML is Detected: " + resource.getFullPath().toString());
}
XHTMLElementHandler handler = new XHTMLElementHandler(uri,
@@ -194,7 +194,7 @@
return report;
}
- boolean isXHTML(IDocument document) {
+ public boolean isXHTML(IDocument document) {
XHTMLDetector detector = new XHTMLDetector(new StringReader(document.get()));
return detector.detect();
}
Modified: trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JsfAllTests.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JsfAllTests.java 2012-01-16 14:25:24 UTC (rev 37863)
+++ trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/JsfAllTests.java 2012-01-16 15:01:27 UTC (rev 37864)
@@ -28,6 +28,7 @@
import org.jboss.tools.jsf.test.validation.JSF2ComponentsInClassFolderTest;
import org.jboss.tools.jsf.test.validation.JSF2ComponentsValidatorTest;
import org.jboss.tools.jsf.test.validation.WebContentTest;
+import org.jboss.tools.jsf.test.validation.XHTMLDetectorAndValidatorTest;
import org.jboss.tools.jsf.test.validation.XHTMLValidatorTest;
import org.jboss.tools.jsf.web.validation.XHTMLValidator;
import org.jboss.tools.test.util.ProjectImportTestSetup;
@@ -54,6 +55,7 @@
old.addTestSuite(JSFBeansTest.class);
suite.addTestSuite(WebContentTest.class);
suite.addTestSuite(XHTMLValidatorTest.class);
+ suite.addTestSuite(XHTMLDetectorAndValidatorTest.class);
suite.addTestSuite(XMLCatalogTest.class);
suite.addTestSuite(JSFPaletteTest.class);
suite.addTest(new ProjectImportTestSetup(old,
Added: trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/validation/XHTMLDetectorAndValidatorTest.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/validation/XHTMLDetectorAndValidatorTest.java (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/validation/XHTMLDetectorAndValidatorTest.java 2012-01-16 15:01:27 UTC (rev 37864)
@@ -0,0 +1,278 @@
+package org.jboss.tools.jsf.test.validation;
+
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.text.Document;
+import org.eclipse.jface.text.IDocument;
+import org.eclipse.wst.validation.ValidationResult;
+import org.eclipse.wst.validation.ValidationState;
+import org.jboss.tools.common.base.test.validation.TestUtil;
+import org.jboss.tools.common.util.FileUtil;
+import org.jboss.tools.jsf.JSFModelPlugin;
+import org.jboss.tools.jsf.web.validation.XHTMLValidator;
+import org.jboss.tools.test.util.ResourcesUtils;
+import org.jboss.tools.tests.AbstractResourceMarkerTest;
+import org.osgi.framework.Bundle;
+
+public class XHTMLDetectorAndValidatorTest extends AbstractResourceMarkerTest {
+
+ protected static String PLUGIN_ID = "org.jboss.tools.jsf.test";
+ protected static String PROJECT_NAME = "jsf2pr";
+ protected static String PROJECT_PATH = "/projects/jsf2pr";
+
+ protected static final String XHTML_FILE_NAME = "/XHTMLDetectorAndValidatorTest.xhtml";
+ protected static final String HTML_FILE_NAME = "/XHTMLDetectorAndValidatorTest.html";
+
+ /*
+ protected static Set<String> LOCALIZED_ERROR_MESSAGES = new HashSet<String>();
+ static {
+ LOCALIZED_ERROR_MESSAGES.add(MessageFormat.format(JSFValidationMessage.XHTML_VALIDATION_NO_END_TAG,
+ XHTMLValidationTestMessages.XHTML_GOOD_TAGNAME));
+ LOCALIZED_ERROR_MESSAGES.add(MessageFormat.format(JSFValidationMessage.XHTML_VALIDATION_NO_START_TAG,
+ XHTMLValidationTestMessages.XHTML_WRONG_TAGNAME));
+ }
+ protected static Set<String> LOCALIZED_LARGE_ERROR_MESSAGES = new HashSet<String>();
+ static {
+ LOCALIZED_LARGE_ERROR_MESSAGES.add(MessageFormat.format(JSFValidationMessage.XHTML_VALIDATION_NO_END_TAG,
+ XHTMLValidationTestMessages.XHTML_LARGE_GOOD_TAGNAME));
+ LOCALIZED_LARGE_ERROR_MESSAGES.add(MessageFormat.format(JSFValidationMessage.XHTML_VALIDATION_NO_START_TAG,
+ XHTMLValidationTestMessages.XHTML_LARGE_WRONG_TAGNAME));
+ }
+ protected static String LOCALIZED_BROKEN_ERROR_MESSAGE = XHTMLValidationTestMessages.XHTML_MARKUP_IS_BROKEN_ERROR;
+ */
+
+ // "Bad" file validation time should be not greater than "Good" file validation time multiplied by 10
+ protected static final double NOT_BAD_DIFF_PERCENTAGE = 1000.0;
+
+ // Each validation session should take less that 1 second (1000ms)
+ protected static final long MAX_VALIDATION_TIME = 1000;
+
+ protected static final String[] XHTML_FILE_LIST = new String[] {
+ "/xhtml_page_0.xhtml",
+ "/xhtml_page_1.xhtml",
+ "/xhtml_page_2.xhtml"
+ };
+ protected static final String[] HTML_FILE_LIST = new String[] {
+ "/html_page_0.html",
+ "/html_page_1.html",
+ "/html_page_2.html"
+ };
+
+
+ IProject project;
+
+ /* (non-Javadoc)
+ * @see junit.framework.TestCase#setUp()
+ */
+ @Override
+ protected void setUp() throws Exception {
+ project = ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECT_NAME);
+ if(!project.exists()) {
+ project = ResourcesUtils.importProject(PLUGIN_ID, PROJECT_PATH);
+ }
+ TestUtil._waitForValidation(project);
+ }
+
+ public void testXHTMLDetectorAndValidator() throws CoreException {
+ XHTMLValidator validator = new XHTMLValidator();
+ ValidationState state = new ValidationState();
+ try {
+ // Detect and Validate on XHTML Content
+ for (String source : XHTML_FILE_LIST) {
+ IFile file = createTestFile(source, XHTML_FILE_NAME);
+ IDocument document = getDocument(file);
+
+ long start = System.currentTimeMillis();
+ boolean xhtmlDetected = validator.isXHTML(document);
+ long total = System.currentTimeMillis() - start;
+ System.out.println("XHTML file [Source: " + source + "] detection time: " + total + " ms");
+ assertTrue("XHTML file [Source: " + source + "] detection FAILED", xhtmlDetected);
+
+ start = System.currentTimeMillis();
+ ValidationResult result = validator.validate(file, IResourceDelta.CHANGED, state, new NullProgressMonitor());
+ total = System.currentTimeMillis() - start;
+ System.out.println("XHTML file [Source: " + source + "] validation time: " + total + " ms");
+ assertTrue("XHTML file [Source: " + source + "] validation takes too much time (more than " + MAX_VALIDATION_TIME + " ms)", (total < MAX_VALIDATION_TIME));
+ assertNotNull("No validation result is returned", result);
+ assertNotNull("No validation result is returned", result.getReporter(null));
+ List messages = result.getReporter(null).getMessages();
+ System.out.println("Total error messages reported by XHTML file [Source: " + source + "] validation: " + (messages == null ? 0 : messages.size()));
+ }
+ } finally {
+ removeTestFile(XHTML_FILE_NAME);
+ }
+
+ try {
+ // Detect and Validate on NON-XHTML Content
+ for (String source : HTML_FILE_LIST) {
+ IFile file = createTestFile(source, HTML_FILE_NAME);
+ IDocument document = getDocument(file);
+
+ long start = System.currentTimeMillis();
+ boolean xhtmlDetected = validator.isXHTML(document);
+ long total = System.currentTimeMillis() - start;
+ System.out.println("Non-XHTML file [Source: " + source + "] detection time: " + total + " ms");
+ assertFalse("Non-XHTML file [Source: " + source + "] detection FAILED", xhtmlDetected);
+
+ start = System.currentTimeMillis();
+ ValidationResult result = validator.validate(file, IResourceDelta.CHANGED, state, new NullProgressMonitor());
+ total = System.currentTimeMillis() - start;
+ System.out.println("Non-XHTML file [Source: " + source + "] validation time: " + total + " ms");
+ assertTrue("Non-XHTML file [Source: " + source + "] validation takes too much time (more than " + MAX_VALIDATION_TIME + " ms)", (total < MAX_VALIDATION_TIME));
+ assertNotNull("No validation result is returned", result);
+ assertNotNull("No validation result is returned", result.getReporter(null));
+ List messages = result.getReporter(null).getMessages();
+ System.out.println("Total error messages reported by Non-XHTML file [Source: " + source + "] validation: " + (messages == null ? 0 : messages.size()));
+ assertEquals("Wrong number of error messages reported", 0, messages == null ? 0 : messages.size());
+ }
+ } finally {
+ removeTestFile(HTML_FILE_NAME);
+ }
+
+ /*
+
+ long start = System.currentTimeMillis();
+ ValidationResult result = validator.validate(file, IResourceDelta.CHANGED, state, new NullProgressMonitor());
+ long goodValidationTime = System.currentTimeMillis() - start;
+ System.out.println("XHTML file with good DOCTYPE declaration and no XHTML Syntax errors validation time: " + goodValidationTime + " ms");
+ assertTrue("XHTML file with good DOCTYPE declaration and no XHTML Syntax errors validation takes too much time (more than " + MAX_VALIDATION_TIME + " ms)", (goodValidationTime < MAX_VALIDATION_TIME));
+ assertNotNull("No validation result is returned", result);
+ assertNotNull("No validation result is returned", result.getReporter(null));
+ List messages = result.getReporter(null).getMessages();
+ assertEquals("Wrong number of error messages reported", 0, messages == null ? 0 : messages.size());
+
+ // Validate file with bad DOCTYPE declaration and no XHTML Syntax errors
+ file = createTestFile(XHTMLValidationTestMessages.XHTML_CONTENT_TEMPLATE,
+ XHTMLValidationTestMessages.XHTML_WRONG_PUBLIC_ID, XHTMLValidationTestMessages.XHTML_WRONG_URI,
+ XHTMLValidationTestMessages.XHTML_GOOD_TAGNAME, XHTMLValidationTestMessages.XHTML_GOOD_TAGNAME);
+ start = System.currentTimeMillis();
+ result = validator.validate(file, IResourceDelta.CHANGED, state, new NullProgressMonitor());
+ long badValidationTime = System.currentTimeMillis() - start;
+ System.out.println("XHTML file with bad DOCTYPE declaration and no XHTML Syntax errors validation time: " + badValidationTime + " ms");
+ assertTrue("XHTML file with bad DOCTYPE declaration and no XHTML Syntax errors validation takes too much time (more than " + MAX_VALIDATION_TIME + " ms)", (badValidationTime < MAX_VALIDATION_TIME));
+ assertNotNull("No validation result is returned", result);
+ assertNotNull("No validation result is returned", result.getReporter(null));
+ messages = result.getReporter(null).getMessages();
+ assertEquals("Wrong number of error messages reported", 0, messages == null ? 0 : messages.size());
+
+ // Check that the difference between good and bad files validation time is not greater that NOT_BAD_DIFF_PERCENTAGE (%) of a good value
+ double diff = 100*badValidationTime/goodValidationTime;
+ System.out.println("(With no errors) Validation time difference: " + diff + "%");
+ assertTrue("Validation time difference between good and wrong content is greater than " + NOT_BAD_DIFF_PERCENTAGE + "%", (diff < NOT_BAD_DIFF_PERCENTAGE));
+
+ // Validate file with good DOCTYPE declaration and XHTML Syntax errors
+ file = createTestFile(XHTMLValidationTestMessages.XHTML_CONTENT_TEMPLATE,
+ XHTMLValidationTestMessages.XHTML_GOOD_PUBLIC_ID, XHTMLValidationTestMessages.XHTML_GOOD_URI,
+ XHTMLValidationTestMessages.XHTML_GOOD_TAGNAME, XHTMLValidationTestMessages.XHTML_WRONG_TAGNAME);
+ start = System.currentTimeMillis();
+ result = validator.validate(file, IResourceDelta.CHANGED, state, new NullProgressMonitor());
+ goodValidationTime = System.currentTimeMillis() - start;
+ System.out.println("XHTML file with good DOCTYPE declaration and XHTML Syntax errors validation time: " + goodValidationTime + " ms");
+ assertTrue("XHTML file with good DOCTYPE declaration and XHTML Syntax errors validation takes too much time (more than " + MAX_VALIDATION_TIME + " ms)", (goodValidationTime < MAX_VALIDATION_TIME));
+ assertNotNull("No validation result is returned", result);
+ assertNotNull("No validation result is returned", result.getReporter(null));
+ messages = result.getReporter(null).getMessages();
+ assertEquals("Wrong number of error messages reported", 2, messages == null ? 0 : messages.size());
+ for (Object m : messages) {
+ assertTrue("Wrong type of validation message is returned", (m instanceof Message));
+ Message message = (Message)m;
+ assertTrue("Unexpected error message found: " + message.getText(), LOCALIZED_ERROR_MESSAGES.contains(message.getText()));
+ }
+
+ // Validate file with bad DOCTYPE declaration and XHTML Syntax errors
+ file = createTestFile(XHTMLValidationTestMessages.XHTML_CONTENT_TEMPLATE,
+ XHTMLValidationTestMessages.XHTML_WRONG_PUBLIC_ID, XHTMLValidationTestMessages.XHTML_WRONG_URI,
+ XHTMLValidationTestMessages.XHTML_GOOD_TAGNAME, XHTMLValidationTestMessages.XHTML_WRONG_TAGNAME);
+ start = System.currentTimeMillis();
+ result = validator.validate(file, IResourceDelta.CHANGED, state, new NullProgressMonitor());
+ badValidationTime = System.currentTimeMillis() - start;
+ System.out.println("XHTML file with bad DOCTYPE declaration and XHTML Syntax errors validation time: " + badValidationTime + " ms");
+ assertTrue("XHTML file with bad DOCTYPE declaration and XHTML Syntax errors validation takes too much time (more than " + MAX_VALIDATION_TIME + " ms)", (badValidationTime < MAX_VALIDATION_TIME));
+ assertNotNull("No validation result is returned", result);
+ assertNotNull("No validation result is returned", result.getReporter(null));
+ messages = result.getReporter(null).getMessages();
+ assertEquals("Wrong number of error messages reported", 2, messages == null ? 0 : messages.size());
+ for (Object m : messages) {
+ assertTrue("Wrong type of validation message is returned", (m instanceof Message));
+ Message message = (Message)m;
+ assertTrue("Unexpected error message found: " + message.getText(), LOCALIZED_ERROR_MESSAGES.contains(message.getText()));
+ }
+ // Check that the difference between good and bad files validation time is not greater that NOT_BAD_DIFF_PERCENTAGE (%) of a good value
+ diff = 100*badValidationTime/goodValidationTime;
+ System.out.println("(With errors) Validation time difference: " + diff + "%");
+ assertTrue("Validation time difference between good and wrong content is greater than " + NOT_BAD_DIFF_PERCENTAGE + "%", (diff < NOT_BAD_DIFF_PERCENTAGE));
+ } finally {
+ removeTestFile();
+ }
+ */
+ }
+
+ private static final String SOURCE_FOLDER = "/resources/pages2validate";
+ private static final String WEB_CONTENT_SUFFIX = "/WebContent";
+
+ private IFile createTestFile(String sourceFile, String destinationFile) {
+ IFile testFile = project.getFile(WEB_CONTENT_SUFFIX + destinationFile);
+
+ try {
+ Bundle b = Platform.getBundle(PLUGIN_ID);
+ IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject(PROJECT_NAME);
+ String projectPath = p.getLocation().toOSString();
+ String resourcePath = FileLocator.resolve(b.getEntry(SOURCE_FOLDER)).getFile();
+
+ File from = new File(resourcePath + sourceFile);
+ File to = new File(projectPath + WEB_CONTENT_SUFFIX + destinationFile);
+ FileUtil.clear(to);
+ if (!FileUtil.copyFile(from, to)) {
+ return null;
+ }
+ p.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ TestUtil._waitForValidation(p);
+ } catch (IOException e) {
+ fail(e.getLocalizedMessage());
+ } catch (CoreException e) {
+ fail(e.getLocalizedMessage());
+ }
+ return testFile;
+ }
+
+ private void removeTestFile(String destinationFile) {
+ IFile testFile = project.getFile(WEB_CONTENT_SUFFIX + destinationFile);
+ if (testFile.exists()) {
+ try {
+ testFile.delete(true, new NullProgressMonitor());
+ } catch (CoreException e) {
+ // Do not throw the exception
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private IDocument getDocument(IFile file) {
+ if (file == null) {
+ return null;
+ }
+
+ String content;
+ try {
+ content = FileUtil.readStream(file);
+ } catch (CoreException e) {
+ JSFModelPlugin.getDefault().logError(e);
+ return null;
+ }
+
+ return (content == null ? null : new Document(content));
+ }
+
+
+}
Property changes on: trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/validation/XHTMLDetectorAndValidatorTest.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
12 years, 12 months