JBoss Tools SVN: r40427 - trunk/common/plugins/org.jboss.tools.common.mylyn/META-INF.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2012-04-23 18:56:23 -0400 (Mon, 23 Apr 2012)
New Revision: 40427
Modified:
trunk/common/plugins/org.jboss.tools.common.mylyn/META-INF/MANIFEST.MF
Log:
https://issues.jboss.org/browse/JBIDE-11609 Wrong provider and plugin name for org.jboss.tools.common.mylyn plugin
Modified: trunk/common/plugins/org.jboss.tools.common.mylyn/META-INF/MANIFEST.MF
===================================================================
--- trunk/common/plugins/org.jboss.tools.common.mylyn/META-INF/MANIFEST.MF 2012-04-23 22:10:17 UTC (rev 40426)
+++ trunk/common/plugins/org.jboss.tools.common.mylyn/META-INF/MANIFEST.MF 2012-04-23 22:56:23 UTC (rev 40427)
@@ -1,9 +1,9 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
-Bundle-Name: %pluginName
+Bundle-Name: JBoss Tools Mylyn Connections
Bundle-SymbolicName: org.jboss.tools.common.mylyn;singleton:=true
Bundle-Version: 3.3.0.qualifier
-Bundle-Vendor: %providerName
+Bundle-Vendor: JBoss by Red Hat
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Require-Bundle: org.jboss.tools.common.mylyn,
org.eclipse.mylyn;bundle-version="3.6.0",
13 years, 8 months
JBoss Tools SVN: r40426 - trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher.
by jbosstools-commits@lists.jboss.org
Author: bfitzpat
Date: 2012-04-23 18:10:17 -0400 (Mon, 23 Apr 2012)
New Revision: 40426
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java
Log:
JBIDE-11337 - one tweak to the URL
Modified: trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java 2012-04-23 21:16:46 UTC (rev 40425)
+++ trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java 2012-04-23 22:10:17 UTC (rev 40426)
@@ -91,7 +91,7 @@
* @return
*/
private String computeEndpointURI(final IModule module, final IJaxrsEndpoint endpoint) {
- String uriPathTemplate = module.getName() + "/" + endpoint.getUriPathTemplate();
+ String uriPathTemplate = module.getName() + endpoint.getUriPathTemplate();
// check to see if this project has been deployed...
IServer[] servers = ServerUtil.getServersByModule(module, null);
if (servers == null || servers.length == 0) {
13 years, 8 months
JBoss Tools SVN: r40425 - trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher.
by jbosstools-commits@lists.jboss.org
Author: xcoulon
Date: 2012-04-23 17:16:46 -0400 (Mon, 23 Apr 2012)
New Revision: 40425
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java
Log:
Fixed - JBIDE-11337 - https://issues.jboss.org/browse/JBIDE-11337
Web Service Tester: wrong URL initialization after selecting "Run on Server"
(and make it work on Windows, too)
Modified: trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java 2012-04-23 20:28:54 UTC (rev 40424)
+++ trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java 2012-04-23 21:16:46 UTC (rev 40425)
@@ -10,9 +10,7 @@
import java.lang.reflect.Method;
-import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
import org.eclipse.debug.core.ILaunch;
import org.eclipse.ui.IViewPart;
@@ -93,17 +91,16 @@
* @return
*/
private String computeEndpointURI(final IModule module, final IJaxrsEndpoint endpoint) {
- String uriPathTemplate = endpoint.getUriPathTemplate();
- IPath path = new Path(module.getName()).append(uriPathTemplate);
+ String uriPathTemplate = module.getName() + "/" + endpoint.getUriPathTemplate();
// check to see if this project has been deployed...
IServer[] servers = ServerUtil.getServersByModule(module, null);
if (servers == null || servers.length == 0) {
- return "http://[domain]:[port]/" + path.toPortableString(); //$NON-NLS-1$
+ return "http://[domain]:[port]/" + uriPathTemplate; //$NON-NLS-1$
}
// if it's been deployed, we can grab the domain and web port
String domain = servers[0].getHost();
String webport = servers[0].getAttribute("org.jboss.ide.eclipse.as.core.server.webPort", "8080");//$NON-NLS-1$ //$NON-NLS-2$
- return "http://" + domain + ':' + webport + "/" + path.toString(); //$NON-NLS-1$
+ return "http://" + domain + ':' + webport + "/" + uriPathTemplate; //$NON-NLS-1$
}
}
13 years, 8 months
JBoss Tools SVN: r40424 - in trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui: internal/launcher and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: xcoulon
Date: 2012-04-23 16:28:54 -0400 (Mon, 23 Apr 2012)
New Revision: 40424
Modified:
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/cnf/action/OpenInWSTesterAction.java
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/cnf/action/OpenInWSTesterActionProvider.java
trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java
Log:
Fixed - JBIDE-11337 - https://issues.jboss.org/browse/JBIDE-11337
Web Service Tester: wrong URL initialization after selecting "Run on Server"
Modified: trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/cnf/action/OpenInWSTesterAction.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/cnf/action/OpenInWSTesterAction.java 2012-04-23 19:02:01 UTC (rev 40423)
+++ trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/cnf/action/OpenInWSTesterAction.java 2012-04-23 20:28:54 UTC (rev 40424)
@@ -33,11 +33,12 @@
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.ServerUtil;
import org.jboss.tools.ws.jaxrs.ui.cnf.UriPathTemplateElement;
+import org.jboss.tools.ws.jaxrs.ui.internal.launcher.WSTesterClientDelegate;
import org.jboss.tools.ws.jaxrs.ui.internal.utils.Logger;
/**
* @author bfitzpat
- *
+ * @deprecated replaced by {@link WSTesterClientDelegate}
*/
public class OpenInWSTesterAction extends Action implements ISelectionChangedListener {
Modified: trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/cnf/action/OpenInWSTesterActionProvider.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/cnf/action/OpenInWSTesterActionProvider.java 2012-04-23 19:02:01 UTC (rev 40423)
+++ trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/cnf/action/OpenInWSTesterActionProvider.java 2012-04-23 20:28:54 UTC (rev 40424)
@@ -19,11 +19,14 @@
import org.eclipse.ui.navigator.ICommonMenuConstants;
import org.eclipse.ui.navigator.ICommonViewerSite;
import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
+import org.jboss.tools.ws.jaxrs.ui.internal.launcher.WSTesterClientDelegate;
+import org.jboss.tools.ws.jaxrs.ui.internal.launcher.WSTesterLaunchableAdapterDelegate;
/**
* @author bfitzpat
- *
+ * @deprecated replaced by {@link WSTesterLaunchableAdapterDelegate}
*/
+@Deprecated
public class OpenInWSTesterActionProvider extends CommonActionProvider {
private OpenInWSTesterAction openInWSTesterAction = null;
Modified: trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java
===================================================================
--- trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java 2012-04-23 19:02:01 UTC (rev 40423)
+++ trunk/ws/plugins/org.jboss.tools.ws.jaxrs.ui/src/org/jboss/tools/ws/jaxrs/ui/internal/launcher/WSTesterClientDelegate.java 2012-04-23 20:28:54 UTC (rev 40424)
@@ -103,7 +103,7 @@
// if it's been deployed, we can grab the domain and web port
String domain = servers[0].getHost();
String webport = servers[0].getAttribute("org.jboss.ide.eclipse.as.core.server.webPort", "8080");//$NON-NLS-1$ //$NON-NLS-2$
- return "http://" + domain + ':' + webport + "/" + path.toPortableString(); //$NON-NLS-1$
+ return "http://" + domain + ':' + webport + "/" + path.toString(); //$NON-NLS-1$
}
}
13 years, 8 months
JBoss Tools SVN: r40423 - trunk/build/aggregate/soatests-site/site.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2012-04-23 15:02:01 -0400 (Mon, 23 Apr 2012)
New Revision: 40423
Modified:
trunk/build/aggregate/soatests-site/site/index.html
Log:
regen index
Modified: trunk/build/aggregate/soatests-site/site/index.html
===================================================================
--- trunk/build/aggregate/soatests-site/site/index.html 2012-04-23 19:01:53 UTC (rev 40422)
+++ trunk/build/aggregate/soatests-site/site/index.html 2012-04-23 19:02:01 UTC (rev 40423)
@@ -82,10 +82,10 @@
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.bpel.test.feature_1.2.0.v20120401-2114-H720-Beta3.jar">org.jboss.tools.bpel.test.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.bpel.test.feature_1.2.0.v20120423-1411-H740-Beta3.jar">org.jboss.tools.bpel.test.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.2.0.v20120401-2114-H720-Beta3</span>
+<span style="font-size:x-small">1.2.0.v20120423-1411-H740-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -97,10 +97,10 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.esb.test.feature_1.5.0.v20120401-2137-H825-Beta3.jar">org.jboss.tools.esb.test.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.drools.test.feature_1.0.0.v20120423-1856-Beta3.jar">org.jboss.tools.drools.test.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.5.0.v20120401-2137-H825-Beta3</span>
+<span style="font-size:x-small">1.0.0.v20120423-1856-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -112,10 +112,10 @@
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.flow.common.test.feature_0.0.1.v20120401-2106-H672-Beta3.jar">org.jboss.tools.flow.common.test.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.esb.test.feature_1.5.0.v20120423-1404-H846-Beta3.jar">org.jboss.tools.esb.test.feature</a>
</td>
<td>
-<span style="font-size:x-small">0.0.1.v20120401-2106-H672-Beta3</span>
+<span style="font-size:x-small">1.5.0.v20120423-1404-H846-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -127,10 +127,10 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.jbpm3.test.feature_3.3.0.v20120401-2122-H700-Beta3.jar">org.jboss.tools.jbpm3.test.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.flow.common.test.feature_0.0.1.v20120423-1609-H718-Beta3.jar">org.jboss.tools.flow.common.test.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120401-2122-H700-Beta3</span>
+<span style="font-size:x-small">0.0.1.v20120423-1609-H718-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -142,10 +142,10 @@
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.jbpm4.test.feature_4.4.0.v20120401-2122-H700-Beta3.jar">org.jboss.tools.jbpm4.test.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.jbpm3.test.feature_3.3.0.v20120423-1620-H763-Beta3.jar">org.jboss.tools.jbpm3.test.feature</a>
</td>
<td>
-<span style="font-size:x-small">4.4.0.v20120401-2122-H700-Beta3</span>
+<span style="font-size:x-small">3.3.0.v20120423-1620-H763-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -157,10 +157,10 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.modeshape.rest.test.feature_1.1.0.v20120401-2114-H648-Beta3.jar">org.jboss.tools.modeshape.rest.test.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.jbpm4.test.feature_4.4.0.v20120423-1620-H763-Beta3.jar">org.jboss.tools.jbpm4.test.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.1.0.v20120401-2114-H648-Beta3</span>
+<span style="font-size:x-small">4.4.0.v20120423-1620-H763-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -172,10 +172,10 @@
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.runtime.soa.test.feature_1.3.0.v20120404-0454-Beta3.jar">org.jboss.tools.runtime.soa.test.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.modeshape.jcr.test.feature_1.1.0.v20120423-1403-H671-Beta3.jar">org.jboss.tools.modeshape.jcr.test.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120404-0454-Beta3</span>
+<span style="font-size:x-small">1.1.0.v20120423-1403-H671-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -187,10 +187,10 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.runtime.soa.test.feature.source_1.3.0.v20120404-0454-Beta3.jar">org.jboss.tools.runtime.soa.test.feature.source</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.modeshape.rest.test.feature_1.1.0.v20120423-1403-H671-Beta3.jar">org.jboss.tools.modeshape.rest.test.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120404-0454-Beta3</span>
+<span style="font-size:x-small">1.1.0.v20120423-1403-H671-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -198,6 +198,36 @@
JBoss Tools - SOA Tooling Tests</span>
</td>
</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.runtime.soa.test.feature_1.3.0.v20120423-1622-H284-Beta3.jar">org.jboss.tools.runtime.soa.test.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1622-H284-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ JBoss Tools - SOA Tooling Tests</span>
+</td>
+</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.runtime.soa.test.feature.source_1.3.0.v20120423-1622-H284-Beta3.jar">org.jboss.tools.runtime.soa.test.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1622-H284-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ JBoss Tools - SOA Tooling Tests</span>
+</td>
+</tr>
<tr style="background-color:#DDDDDD">
<th style="font-size:small" colspan="1">Metadata</th>
<th style="font-size:small" colspan="1"/>
13 years, 8 months
JBoss Tools SVN: r40422 - trunk/build/aggregate/site.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2012-04-23 15:01:53 -0400 (Mon, 23 Apr 2012)
New Revision: 40422
Modified:
trunk/build/aggregate/site/index.html
trunk/build/aggregate/site/jbosstools-directory.xml
Log:
expose org.jboss.tools.community.central.feature instead of org.jboss.tools.central.feature so people will install the all-in-one feature which includes AS, Seam, Runtime, etc. (JBIDE-10803); regen index
Modified: trunk/build/aggregate/site/index.html
===================================================================
--- trunk/build/aggregate/site/index.html 2012-04-23 19:01:33 UTC (rev 40421)
+++ trunk/build/aggregate/site/index.html 2012-04-23 19:01:53 UTC (rev 40422)
@@ -82,10 +82,10 @@
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.ide.eclipse.archives.feature_3.2.1.v20120217-2051-H724-Beta1.jar">org.jboss.ide.eclipse.archives.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.ide.eclipse.archives.feature_3.2.1.v20120420-2013-H859-Beta3.jar">org.jboss.ide.eclipse.archives.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.2.1.v20120217-2051-H724-Beta1</span>
+<span style="font-size:x-small">3.2.1.v20120420-2013-H859-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -100,14 +100,29 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.ide.eclipse.as.feature_2.3.0.v20120305-1347-H1121-Beta2.jar">org.jboss.ide.eclipse.as.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.ide.eclipse.archives.feature.source_3.2.1.v20120420-2013-H859-Beta3.jar">org.jboss.ide.eclipse.archives.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">2.3.0.v20120305-1347-H1121-Beta2</span>
+<span style="font-size:x-small">3.2.1.v20120420-2013-H859-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.ide.eclipse.as.feature_2.3.0.v20120420-2037-H1271-Beta3.jar">org.jboss.ide.eclipse.as.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">2.3.0.v20120420-2037-H1271-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -115,13 +130,28 @@
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.ide.eclipse.as.feature.source_2.3.0.v20120420-2037-H1271-Beta3.jar">org.jboss.ide.eclipse.as.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">2.3.0.v20120420-2037-H1271-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.ide.eclipse.freemarker.feature_1.2.0.v20120221-1511-Beta2.jar">org.jboss.ide.eclipse.freemarker.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.ide.eclipse.freemarker.feature_1.2.0.v20120423-1729-H861-Beta3.jar">org.jboss.ide.eclipse.freemarker.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.2.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.2.0.v20120423-1729-H861-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -136,25 +166,55 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.birt.feature_1.3.0.v20120217-2051-H729-Beta1.jar">org.jboss.tools.birt.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.ide.eclipse.freemarker.feature.source_1.2.0.v20120423-1729-H861-Beta3.jar">org.jboss.ide.eclipse.freemarker.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120217-2051-H729-Beta1</span>
+<span style="font-size:x-small">1.2.0.v20120423-1729-H861-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.birt.feature_1.3.0.v20120420-2013-H880-Beta3.jar">org.jboss.tools.birt.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120420-2013-H880-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
ReportTools</span>
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.birt.feature.source_1.3.0.v20120420-2013-H880-Beta3.jar">org.jboss.tools.birt.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120420-2013-H880-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.cdi.feature_1.2.0.v20120217-2350-H920-Beta1.jar">org.jboss.tools.cdi.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.cdi.feature_1.2.0.v20120420-2035-H1067-Beta3.jar">org.jboss.tools.cdi.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.2.0.v20120217-2350-H920-Beta1</span>
+<span style="font-size:x-small">1.2.0.v20120420-2035-H1067-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -172,14 +232,29 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.cdi.seam.feature_1.2.0.v20120217-2350-H920-Beta1.jar">org.jboss.tools.cdi.seam.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.cdi.feature.source_1.2.0.v20120420-2035-H1067-Beta3.jar">org.jboss.tools.cdi.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.2.0.v20120217-2350-H920-Beta1</span>
+<span style="font-size:x-small">1.2.0.v20120420-2035-H1067-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.cdi.seam.feature_1.2.0.v20120420-2035-H1067-Beta3.jar">org.jboss.tools.cdi.seam.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.2.0.v20120420-2035-H1067-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -190,13 +265,28 @@
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.cdi.seam.feature.source_1.2.0.v20120420-2035-H1067-Beta3.jar">org.jboss.tools.cdi.seam.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.2.0.v20120420-2035-H1067-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.central.discovery.feature_1.0.0.v20120305-1700-Beta2.jar">org.jboss.tools.central.discovery.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.central.discovery.feature_1.0.0.v20120423-1759-Beta3.jar">org.jboss.tools.central.discovery.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.0.0.v20120305-1700-Beta2</span>
+<span style="font-size:x-small">1.0.0.v20120423-1759-Beta3</span>
</td>
<td/>
</tr>
@@ -204,28 +294,21 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.central.feature_1.0.0.v20120305-1700-Beta2.jar">org.jboss.tools.central.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.central.feature_1.0.0.v20120423-1759-Beta3.jar">org.jboss.tools.central.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.0.0.v20120305-1700-Beta2</span>
+<span style="font-size:x-small">1.0.0.v20120423-1759-Beta3</span>
</td>
-<td>
-<span style="font-size:x-small">
- |
- AbridgedTools</span>
-<span style="font-size:x-small">
- |
- GeneralTools</span>
-</td>
+<td/>
</tr>
<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.common.core.feature_3.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.common.core.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.common.core.feature_3.3.0.v20120420-1954-H857-Beta3.jar">org.jboss.tools.common.core.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120420-1954-H857-Beta3</span>
</td>
<td/>
</tr>
@@ -233,10 +316,10 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.common.feature_3.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.common.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.common.feature_3.3.0.v20120420-1954-H857-Beta3.jar">org.jboss.tools.common.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120420-1954-H857-Beta3</span>
</td>
<td/>
</tr>
@@ -244,10 +327,10 @@
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.common.jdt.feature_3.3.0.v20120305-1501-H763-Beta2.jar">org.jboss.tools.common.jdt.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.common.jdt.feature_3.3.0.v20120420-1954-H857-Beta3.jar">org.jboss.tools.common.jdt.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120305-1501-H763-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120420-1954-H857-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -262,28 +345,55 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.common.mylyn.feature_3.3.0.v20120305-1501-H763-Beta2.jar">org.jboss.tools.common.mylyn.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.common.jdt.feature.source_3.3.0.v20120420-1954-H857-Beta3.jar">org.jboss.tools.common.jdt.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120305-1501-H763-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120420-1954-H857-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
- AbridgedTools</span>
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.common.mylyn.feature_3.3.0.v20120420-1954-H857-Beta3.jar">org.jboss.tools.common.mylyn.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">3.3.0.v20120420-1954-H857-Beta3</span>
+</td>
+<td>
<span style="font-size:x-small">
|
GeneralTools</span>
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.common.mylyn.feature.source_3.3.0.v20120420-1954-H857-Beta3.jar">org.jboss.tools.common.mylyn.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">3.3.0.v20120420-1954-H857-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.common.text.ext.feature_3.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.common.text.ext.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.common.text.ext.feature_3.3.0.v20120420-1954-H857-Beta3.jar">org.jboss.tools.common.text.ext.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120420-1954-H857-Beta3</span>
</td>
<td/>
</tr>
@@ -291,10 +401,10 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.common.ui.feature_3.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.common.ui.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.common.ui.feature_3.3.0.v20120420-1954-H857-Beta3.jar">org.jboss.tools.common.ui.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120420-1954-H857-Beta3</span>
</td>
<td/>
</tr>
@@ -302,10 +412,10 @@
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.common.verification.feature_3.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.common.verification.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.common.verification.feature_3.3.0.v20120420-1954-H857-Beta3.jar">org.jboss.tools.common.verification.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120420-1954-H857-Beta3</span>
</td>
<td/>
</tr>
@@ -313,10 +423,10 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.community.project.examples.feature_1.2.1.v20120305-1325-H596-Beta2.jar">org.jboss.tools.community.project.examples.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.community.central.feature_1.0.0.v20120423-1759-Beta3.jar">org.jboss.tools.community.central.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.2.1.v20120305-1325-H596-Beta2</span>
+<span style="font-size:x-small">1.0.0.v20120423-1759-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -331,10 +441,10 @@
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.forge.feature_1.0.0.v20120218-0059-H561-Beta1.jar">org.jboss.tools.forge.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.community.project.examples.feature_1.2.1.v20120420-2320-H645-Beta3.jar">org.jboss.tools.community.project.examples.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.0.0.v20120218-0059-H561-Beta1</span>
+<span style="font-size:x-small">1.2.1.v20120420-2320-H645-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -342,6 +452,39 @@
AbridgedTools</span>
<span style="font-size:x-small">
|
+ GeneralTools</span>
+</td>
+</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.community.project.examples.feature.source_1.2.1.v20120420-2320-H645-Beta3.jar">org.jboss.tools.community.project.examples.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.2.1.v20120420-2320-H645-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.forge.feature_1.0.0.v20120421-1805-H686-Beta3.jar">org.jboss.tools.forge.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.0.0.v20120421-1805-H686-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AbridgedTools</span>
+<span style="font-size:x-small">
+ |
WebTools</span>
</td>
</tr>
@@ -349,25 +492,55 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.gwt.feature_1.0.2.v20120217-2051-H503-Beta1.jar">org.jboss.tools.gwt.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.forge.feature.source_1.0.0.v20120421-1805-H686-Beta3.jar">org.jboss.tools.forge.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.0.2.v20120217-2051-H503-Beta1</span>
+<span style="font-size:x-small">1.0.0.v20120421-1805-H686-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.gwt.feature_1.0.2.v20120420-2014-H630-Beta3.jar">org.jboss.tools.gwt.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.0.2.v20120420-2014-H630-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
GeneralTools</span>
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.gwt.feature.source_1.0.2.v20120420-2014-H630-Beta3.jar">org.jboss.tools.gwt.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.0.2.v20120420-2014-H630-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.jmx.feature_1.2.0.v20120217-2058-H684-Beta1.jar">org.jboss.tools.jmx.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.jmx.feature_1.2.0.v20120420-2018-H784-Beta3.jar">org.jboss.tools.jmx.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.2.0.v20120217-2058-H684-Beta1</span>
+<span style="font-size:x-small">1.2.0.v20120420-2018-H784-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -382,14 +555,29 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.jsf.feature_3.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.jsf.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.jmx.feature.source_1.2.0.v20120420-2018-H784-Beta3.jar">org.jboss.tools.jmx.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.2.0.v20120420-2018-H784-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.jsf.feature_3.3.0.v20120423-1739-H894-Beta3.jar">org.jboss.tools.jsf.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">3.3.0.v20120423-1739-H894-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -397,13 +585,28 @@
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.jsf.feature.source_3.3.0.v20120423-1739-H894-Beta3.jar">org.jboss.tools.jsf.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">3.3.0.v20120423-1739-H894-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.jst.feature_3.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.jst.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.jst.feature_3.3.0.v20120423-1800-H1020-Beta3.jar">org.jboss.tools.jst.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120423-1800-H1020-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -418,14 +621,29 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.maven.cdi.feature_1.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.maven.cdi.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.jst.feature.source_3.3.0.v20120423-1800-H1020-Beta3.jar">org.jboss.tools.jst.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120423-1800-H1020-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.cdi.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.cdi.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -433,13 +651,28 @@
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.cdi.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.cdi.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.maven.feature_1.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.maven.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -454,14 +687,59 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.maven.hibernate.feature_1.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.maven.hibernate.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.gwt.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.gwt.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ MavenTools</span>
+</td>
+</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.gwt.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.gwt.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.hibernate.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.hibernate.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -469,13 +747,28 @@
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.hibernate.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.hibernate.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.maven.jaxrs.feature_1.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.maven.jaxrs.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.jaxrs.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.jaxrs.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -490,25 +783,55 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.maven.jbosspackaging.feature_1.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.maven.jbosspackaging.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.jaxrs.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.jaxrs.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.jbosspackaging.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.jbosspackaging.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
MavenTools</span>
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.jbosspackaging.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.jbosspackaging.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.maven.jpa.feature_1.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.maven.jpa.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.jpa.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.jpa.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -523,14 +846,29 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.maven.jsf.feature_1.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.maven.jsf.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.jpa.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.jpa.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.jsf.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.jsf.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -538,13 +876,28 @@
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.jsf.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.jsf.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.maven.portlet.feature_1.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.maven.portlet.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.portlet.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.portlet.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -559,10 +912,10 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.maven.profiles.feature_1.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.maven.profiles.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.portlet.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.portlet.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -577,10 +930,10 @@
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.maven.project.examples.feature_1.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.maven.project.examples.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.profiles.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.profiles.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -595,14 +948,29 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.maven.seam.feature_1.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.maven.seam.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.profiles.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.profiles.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.project.examples.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.project.examples.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -610,13 +978,28 @@
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.project.examples.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.project.examples.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.openshift.egit.integration.feature_2.3.0.v20120217-2351-H280-Beta1.jar">org.jboss.tools.openshift.egit.integration.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.seam.feature_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.seam.feature</a>
</td>
<td>
-<span style="font-size:x-small">2.3.0.v20120217-2351-H280-Beta1</span>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -624,6 +1007,39 @@
AbridgedTools</span>
<span style="font-size:x-small">
|
+ MavenTools</span>
+</td>
+</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.maven.seam.feature.source_1.3.0.v20120423-1531-H612-Beta3.jar">org.jboss.tools.maven.seam.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1531-H612-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.openshift.egit.integration.feature_2.3.0.v20120423-1306-H415-Beta3.jar">org.jboss.tools.openshift.egit.integration.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">2.3.0.v20120423-1306-H415-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AbridgedTools</span>
+<span style="font-size:x-small">
+ |
CloudTools</span>
</td>
</tr>
@@ -631,14 +1047,29 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.openshift.express.feature_2.3.0.v20120217-2351-H280-Beta1.jar">org.jboss.tools.openshift.express.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.openshift.egit.integration.feature.source_2.3.0.v20120423-1306-H415-Beta3.jar">org.jboss.tools.openshift.egit.integration.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">2.3.0.v20120217-2351-H280-Beta1</span>
+<span style="font-size:x-small">2.3.0.v20120423-1306-H415-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.openshift.express.feature_2.3.0.v20120423-1306-H415-Beta3.jar">org.jboss.tools.openshift.express.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">2.3.0.v20120423-1306-H415-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -646,13 +1077,28 @@
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.openshift.express.feature.source_2.3.0.v20120423-1306-H415-Beta3.jar">org.jboss.tools.openshift.express.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">2.3.0.v20120423-1306-H415-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.portlet.feature_1.2.0.v20120221-1511-Beta2.jar">org.jboss.tools.portlet.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.portlet.feature_1.2.0.v20120423-1609-H569-Beta3.jar">org.jboss.tools.portlet.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.2.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.2.0.v20120423-1609-H569-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -667,14 +1113,29 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.project.examples.feature_1.2.1.v20120305-1325-H596-Beta2.jar">org.jboss.tools.project.examples.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.portlet.feature.source_1.2.0.v20120423-1609-H569-Beta3.jar">org.jboss.tools.portlet.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.2.1.v20120305-1325-H596-Beta2</span>
+<span style="font-size:x-small">1.2.0.v20120423-1609-H569-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.project.examples.feature_1.2.1.v20120420-2320-H645-Beta3.jar">org.jboss.tools.project.examples.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.2.1.v20120420-2320-H645-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -682,13 +1143,28 @@
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.project.examples.feature.source_1.2.1.v20120420-2320-H645-Beta3.jar">org.jboss.tools.project.examples.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.2.1.v20120420-2320-H645-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.richfaces.feature_3.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.richfaces.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.richfaces.feature_3.3.0.v20120423-1739-H894-Beta3.jar">org.jboss.tools.richfaces.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120423-1739-H894-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -703,14 +1179,29 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.runtime.as.detector.feature_1.3.0.v20120305-1714-H626-Beta2.jar">org.jboss.tools.runtime.as.detector.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.richfaces.feature.source_3.3.0.v20120423-1739-H894-Beta3.jar">org.jboss.tools.richfaces.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120305-1714-H626-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120423-1739-H894-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.runtime.as.detector.feature_1.3.0.v20120423-1620-H709-Beta3.jar">org.jboss.tools.runtime.as.detector.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120423-1620-H709-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -718,13 +1209,13 @@
</td>
</tr>
<tr style="background-color:
- #EEEEEE
+ #FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.runtime.core.feature_1.3.0.v20120305-1714-H626-Beta2.jar">org.jboss.tools.runtime.core.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.runtime.core.feature_1.3.0.v20120423-1620-H709-Beta3.jar">org.jboss.tools.runtime.core.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120305-1714-H626-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1620-H709-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -733,13 +1224,13 @@
</td>
</tr>
<tr style="background-color:
- #FFFFFF
+ #EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.runtime.seam.detector.feature_1.3.0.v20120305-1714-H626-Beta2.jar">org.jboss.tools.runtime.seam.detector.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.runtime.seam.detector.feature_1.3.0.v20120423-1620-H709-Beta3.jar">org.jboss.tools.runtime.seam.detector.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.3.0.v20120305-1714-H626-Beta2</span>
+<span style="font-size:x-small">1.3.0.v20120423-1620-H709-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -751,13 +1242,13 @@
</td>
</tr>
<tr style="background-color:
- #EEEEEE
+ #FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.seam.feature_3.3.0.v20120305-1739-H862-Beta2.jar">org.jboss.tools.seam.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.seam.feature_3.3.0.v20120423-1641-H946-Beta3.jar">org.jboss.tools.seam.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120305-1739-H862-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120423-1641-H946-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -769,18 +1260,30 @@
</td>
</tr>
<tr style="background-color:
- #FFFFFF
+ #EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.struts.feature_3.3.0.v20120218-0005-H649-Beta1.jar">org.jboss.tools.struts.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.seam.feature.source_3.3.0.v20120423-1641-H946-Beta3.jar">org.jboss.tools.seam.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120218-0005-H649-Beta1</span>
+<span style="font-size:x-small">3.3.0.v20120423-1641-H946-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
- AbridgedTools</span>
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.struts.feature_3.3.0.v20120423-1716-H795-Beta3.jar">org.jboss.tools.struts.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">3.3.0.v20120423-1716-H795-Beta3</span>
+</td>
+<td>
<span style="font-size:x-small">
|
WebTools</span>
@@ -790,14 +1293,29 @@
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.usage.feature_1.1.0.v20120221-1511-Beta2.jar">org.jboss.tools.usage.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.struts.feature.source_3.3.0.v20120423-1716-H795-Beta3.jar">org.jboss.tools.struts.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.1.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120423-1716-H795-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.usage.feature_1.1.0.v20120420-2009-H691-Beta3.jar">org.jboss.tools.usage.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.1.0.v20120420-2009-H691-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -805,13 +1323,13 @@
</td>
</tr>
<tr style="background-color:
- #FFFFFF
+ #EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.vpe.browsersim.feature_3.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.vpe.browsersim.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.vpe.browsersim.feature_3.3.0.v20120423-1651-H999-Beta3.jar">org.jboss.tools.vpe.browsersim.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120423-1651-H999-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -823,13 +1341,28 @@
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.vpe.browsersim.feature.source_3.3.0.v20120423-1651-H999-Beta3.jar">org.jboss.tools.vpe.browsersim.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">3.3.0.v20120423-1651-H999-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.vpe.feature_3.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.vpe.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.vpe.feature_3.3.0.v20120423-1651-H999-Beta3.jar">org.jboss.tools.vpe.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.3.0.v20120423-1651-H999-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -844,14 +1377,29 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.ws.feature_1.2.2.v20120217-1720-H797-Beta1.jar">org.jboss.tools.ws.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.vpe.feature.source_3.3.0.v20120423-1651-H999-Beta3.jar">org.jboss.tools.vpe.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.2.2.v20120217-1720-H797-Beta1</span>
+<span style="font-size:x-small">3.3.0.v20120423-1651-H999-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
|
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.ws.feature_1.2.2.v20120420-2112-H913-Beta3.jar">org.jboss.tools.ws.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.2.2.v20120420-2112-H913-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
AbridgedTools</span>
<span style="font-size:x-small">
|
@@ -859,13 +1407,28 @@
</td>
</tr>
<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.ws.feature.source_1.2.2.v20120420-2112-H913-Beta3.jar">org.jboss.tools.ws.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.2.2.v20120420-2112-H913-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.ws.jaxrs.feature_1.2.2.v20120217-1720-H797-Beta1.jar">org.jboss.tools.ws.jaxrs.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.ws.jaxrs.feature_1.2.2.v20120420-2112-H913-Beta3.jar">org.jboss.tools.ws.jaxrs.feature</a>
</td>
<td>
-<span style="font-size:x-small">1.2.2.v20120217-1720-H797-Beta1</span>
+<span style="font-size:x-small">1.2.2.v20120420-2112-H913-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -880,13 +1443,39 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.xulrunner.feature_3.3.0.v20120221-1511-Beta2.jar">org.jboss.tools.xulrunner.feature</a>
+<a style="font-size:x-small" href="features/org.jboss.tools.ws.jaxrs.feature.source_1.2.2.v20120420-2112-H913-Beta3.jar">org.jboss.tools.ws.jaxrs.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">3.3.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">1.2.2.v20120420-2112-H913-Beta3</span>
</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.xulrunner.feature_3.3.0.v20120423-1651-H999-Beta3.jar">org.jboss.tools.xulrunner.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">3.3.0.v20120423-1651-H999-Beta3</span>
+</td>
<td/>
</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.xulrunner.feature.source_3.3.0.v20120423-1651-H999-Beta3.jar">org.jboss.tools.xulrunner.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">3.3.0.v20120423-1651-H999-Beta3</span>
+</td>
+<td/>
+</tr>
<tr style="background-color:#DDDDDD">
<th style="font-size:small">Feature</th>
<th style="font-size:small">Version</th>
@@ -898,10 +1487,10 @@
#EEEEEE
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.hibernate.eclipse.feature_3.4.0.v20120221-1511-Beta2.jar">org.hibernate.eclipse.feature</a>
+<a style="font-size:x-small" href="features/org.hibernate.eclipse.feature_3.4.0.v20120423-1738-H925-Beta3.jar">org.hibernate.eclipse.feature</a>
</td>
<td>
-<span style="font-size:x-small">3.4.0.v20120221-1511-Beta2</span>
+<span style="font-size:x-small">3.4.0.v20120423-1738-H925-Beta3</span>
</td>
<td>
<span style="font-size:x-small">
@@ -922,13 +1511,39 @@
#FFFFFF
">
<td class="rowLine">
-<a style="font-size:x-small" href="features/org.mozilla.xulrunner.feature_1.9.218.v20120216-1728-Beta1.jar">org.mozilla.xulrunner.feature</a>
+<a style="font-size:x-small" href="features/org.hibernate.eclipse.feature.source_3.4.0.v20120423-1738-H925-Beta3.jar">org.hibernate.eclipse.feature.source</a>
</td>
<td>
-<span style="font-size:x-small">1.9.218.v20120216-1728-Beta1</span>
+<span style="font-size:x-small">3.4.0.v20120423-1738-H925-Beta3</span>
</td>
+<td>
+<span style="font-size:x-small">
+ |
+ AllSources</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.mozilla.xulrunner.feature_1.9.218.v20120423-1351-H143-Beta3.jar">org.mozilla.xulrunner.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.9.218.v20120423-1351-H143-Beta3</span>
+</td>
<td/>
</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.mozilla.xulrunner.feature.source_1.9.218.v20120423-1351-H143-Beta3.jar">org.mozilla.xulrunner.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.9.218.v20120423-1351-H143-Beta3</span>
+</td>
+<td/>
+</tr>
<tr style="background-color:#DDDDDD">
<th style="font-size:small" colspan="1">Metadata</th>
<th style="font-size:small" colspan="1"/>
Modified: trunk/build/aggregate/site/jbosstools-directory.xml
===================================================================
--- trunk/build/aggregate/site/jbosstools-directory.xml 2012-04-23 19:01:33 UTC (rev 40421)
+++ trunk/build/aggregate/site/jbosstools-directory.xml 2012-04-23 19:01:53 UTC (rev 40422)
@@ -1,4 +1,4 @@
<?xml version='1.0' encoding='UTF-8'?>
<directory xmlns="http://www.eclipse.org/mylyn/discovery/directory/">
-<entry url="plugins/org.jboss.tools.central.discovery_1.0.0.v20120305-1700-Beta2.jar" permitCategories="true"/>
+<entry url="plugins/org.jboss.tools.central.discovery_1.0.0.v20120423-1759-Beta3.jar" permitCategories="true"/>
</directory>
13 years, 8 months
JBoss Tools SVN: r40421 - in trunk/build/aggregate/soatests-site: features and 16 other directories.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2012-04-23 15:01:33 -0400 (Mon, 23 Apr 2012)
New Revision: 40421
Added:
trunk/build/aggregate/soatests-site/.gitignore
trunk/build/aggregate/soatests-site/features/
trunk/build/aggregate/soatests-site/features/.gitignore
trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/
trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/.gitignore
trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/build.properties
trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/epl-v10.html
trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/feature.xml
trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/pom.xml
trunk/build/aggregate/soatests-site/features/pom.xml
trunk/build/aggregate/soatests-site/site/
trunk/build/aggregate/soatests-site/site/.gitignore
trunk/build/aggregate/soatests-site/site/associate.properties
trunk/build/aggregate/soatests-site/site/index.html
trunk/build/aggregate/soatests-site/site/pom.xml
trunk/build/aggregate/soatests-site/site/site.xml
trunk/build/aggregate/soatests-site/tests/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DecisionTableTest.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRules.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.java
trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java
trunk/build/aggregate/soatests-site/tests/pom.xml
Removed:
trunk/build/aggregate/soatests-site/associate.properties
trunk/build/aggregate/soatests-site/index.html
trunk/build/aggregate/soatests-site/site.xml
Modified:
trunk/build/aggregate/soatests-site/pom.xml
Log:
add org.jboss.tools.drools.ui.bot.test and org.jboss.tools.drools.test.feature to soatests-site so that they aren't needed on the old bottests site
Added: trunk/build/aggregate/soatests-site/.gitignore
===================================================================
--- trunk/build/aggregate/soatests-site/.gitignore (rev 0)
+++ trunk/build/aggregate/soatests-site/.gitignore 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,2 @@
+.project
+.settings/
Deleted: trunk/build/aggregate/soatests-site/associate.properties
===================================================================
--- trunk/build/aggregate/soatests-site/associate.properties 2012-04-23 18:02:44 UTC (rev 40420)
+++ trunk/build/aggregate/soatests-site/associate.properties 2012-04-23 19:01:33 UTC (rev 40421)
@@ -1,7 +0,0 @@
-# options: Nightly Build (default), Development Milestone, Stable Release
-#update.site.description=Nightly Build
-#update.site.description=Development Milestone
-#update.site.version=3.2.0.M2.2010-07-16_13-26-18-H21
-
-# associate sites to add to the resulting repo
-associate.sites=http://download.jboss.org/jbosstools/updates/indigo/SR2/,http://download.jboss.org/jbosstools/updates/development/indigo/,http://download.jboss.org/jbosstools/updates/development/indigo/soa-tooling/
Added: trunk/build/aggregate/soatests-site/features/.gitignore
===================================================================
--- trunk/build/aggregate/soatests-site/features/.gitignore (rev 0)
+++ trunk/build/aggregate/soatests-site/features/.gitignore 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,2 @@
+.settings/
+.project
Added: trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/.gitignore
===================================================================
--- trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/.gitignore (rev 0)
+++ trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/.gitignore 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1 @@
+target/
Added: trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/build.properties
===================================================================
--- trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/build.properties (rev 0)
+++ trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/build.properties 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,3 @@
+bin.includes = feature.xml
+src.includes = feature.xml,\
+ build.properties
Added: trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/epl-v10.html
===================================================================
--- trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/epl-v10.html (rev 0)
+++ trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/epl-v10.html 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!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">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+ body {
+ size: 8.5in 11.0in;
+ margin: 0.25in 0.5in 0.25in 0.5in;
+ tab-interval: 0.5in;
+ }
+ p {
+ margin-left: auto;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ p.list {
+ margin-left: 0.5in;
+ margin-top: 0.05em;
+ margin-bottom: 0.05em;
+ }
+ </style>
+
+</head>
+
+<body lang="EN-US">
+
+<p align=center><b>Eclipse Public License - v 1.0</b></p>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+</body>
+
+</html>
Added: trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/feature.xml
===================================================================
--- trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/feature.xml (rev 0)
+++ trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/feature.xml 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature id="org.jboss.tools.drools.test.feature" label="JBoss Tools - SOA Tooling - Drools Tests" version="1.0.0.qualifier">
+
+ <description url="http://www.jboss.org/tools">
+ JBoss Tools - SOA Tooling - Drools Tests
+ </description>
+
+ <copyright>
+ Copyright (c) 2011 Red Hat, Inc. and Exadel, Inc.
+Distributed under license by JBoss by Red Hat. All rights reserved.
+This program is made available under the terms of the
+Eclipse Public License v1.0 which accompanies this distribution,
+and is available at http://www.eclipse.org/legal/epl-v10.html
+Contributors:
+JBoss by Red Hat and Exadel, Inc. - initial API and implementation
+ </copyright>
+
+ <license>
+ Red Hat, Inc. licenses these features and plugins to you under
+certain open source licenses (or aggregations of such licenses), which
+in a particular case may include the Eclipse Public License, the GNU
+Lesser General Public License, and/or certain other open source
+licenses. For precise licensing details, consult the corresponding
+source code, or contact Red Hat Legal Affairs, 1801 Varsity Drive,
+Raleigh NC 27606 USA.
+ </license>
+
+ <plugin id="org.jboss.tools.drools.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+</feature>
Added: trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/pom.xml
===================================================================
--- trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/pom.xml (rev 0)
+++ trunk/build/aggregate/soatests-site/features/org.jboss.tools.drools.test.feature/pom.xml 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools.soa-tooling</groupId>
+ <artifactId>org.jboss.tools.soa-tooling.tests.features</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.drools.test.feature</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>eclipse-feature</packaging>
+</project>
Added: trunk/build/aggregate/soatests-site/features/pom.xml
===================================================================
--- trunk/build/aggregate/soatests-site/features/pom.xml (rev 0)
+++ trunk/build/aggregate/soatests-site/features/pom.xml 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,16 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.site.soa-tooling.tests.root</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools.soa-tooling</groupId>
+ <artifactId>org.jboss.tools.soa-tooling.tests.features</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <modules>
+ <module>org.jboss.tools.drools.test.feature</module>
+ </modules>
+</project>
Deleted: trunk/build/aggregate/soatests-site/index.html
===================================================================
--- trunk/build/aggregate/soatests-site/index.html 2012-04-23 18:02:44 UTC (rev 40420)
+++ trunk/build/aggregate/soatests-site/index.html 2012-04-23 19:01:33 UTC (rev 40421)
@@ -1,289 +0,0 @@
-<html>
-<head>
-<title>JBoss Tools - SOA Tooling Tests - Nightly Build Update Site</title>
-<style>
-@import url("http://download.jboss.org/jbosstools/updates/web/site.css");
-</style>
-</head>
-<body marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">
-<center>
-<table marginheight="0" marginwidth="0" leftmargin="0" topmargin="0"
- cellspacing="0" cellpadding="0" width="920" class="bodyText">
- <tr>
- <td colspan="3"><img
- src="https://www.jboss.org/dms/tools/images/tools-banner.png" /></td>
- </tr>
- <tr>
- <td>      </td>
- <td>      </td>
- <td>      </td>
- </tr>
- <tr>
- <td>      </td>
- <td>
- <h2 class="title">JBoss Tools - SOA Tooling Tests - Nightly Build Update Site</h2>
- <table width="100%">
- <tr class="header">
- <td class="sub-header" width="100%"><span>Latest Build</span></td>
- </tr>
-
- <tr class="light-row" style="height: 30px">
- <td class="bodyText">
- <p class="bodyText">This is the <b>Nightly Build</b>
- Update Site for JBoss Tools - SOA Tooling Tests.
- <blockquote style="border: 1px dashed #1778be; padding: 2px">
- <ol>
- <li>To <a class="link"
- href="http://www.jboss.org/tools/download/installation/update_3_3">install</a>
- from this site, start up Eclipse 3.7, then do:
- <ul>
- <code><strong>Help > Install New Software... ></strong></code>
- </ul>
- </li>
- <li>Copy this site's URL into Eclipse, and hit Enter.</li>
- <li>When the site loads, select the features to install,
- or click the <code><strong>Select All</strong></code> button.</li>
- <li>To properly resolve all dependencies, check
- <ul><code><strong>[x] Contact all update sites during install to find required software</strong></code></ul>
-
- <li>Click <code><strong>Next</strong></code>, agree to the license
- terms, and install.</li>
-
- <p class="bodyText">
- You can also download JBoss Tools as individual zips for
- offline installation. See <a class="link"
- href="http://www.jboss.org/tools/download">JBoss Tools
- Downloads</a>.<br /> If you downloaded this site as a zip, see
- <a href="README.installation.txt">Installation README</a>.
- See also <a
- href="http://www.jboss.org/tools/download/installation">Installation
- methods</a>.
- </p>
- </ol>
- </blockquote>
- </td>
- </tr>
- </table>
- </td>
- <td>      </td>
- </tr>
- <tr>
- <td></td>
- <td>
- <table xmlns="http://www.w3.org/1999/xhtml" xmlns:xalan="http://xml.apache.org/xalan" border="0" cellpadding="0" cellspacing="2">
-<tr style="background-color:#DDDDDD">
-<th style="font-size:small">Feature</th>
-<th style="font-size:small">Version</th>
-<th style="font-size:small">
- Feature Categor(ies)
- </th>
-</tr>
-<tr style="background-color:
- #EEEEEE
- ">
-<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.bpel.test.feature_1.2.0.v20120401-2114-H720-Beta3.jar">org.jboss.tools.bpel.test.feature</a>
-</td>
-<td>
-<span style="font-size:x-small">1.2.0.v20120401-2114-H720-Beta3</span>
-</td>
-<td>
-<span style="font-size:x-small">
- |
- JBoss Tools - SOA Tooling Tests</span>
-</td>
-</tr>
-<tr style="background-color:
- #FFFFFF
- ">
-<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.esb.test.feature_1.5.0.v20120401-2137-H825-Beta3.jar">org.jboss.tools.esb.test.feature</a>
-</td>
-<td>
-<span style="font-size:x-small">1.5.0.v20120401-2137-H825-Beta3</span>
-</td>
-<td>
-<span style="font-size:x-small">
- |
- JBoss Tools - SOA Tooling Tests</span>
-</td>
-</tr>
-<tr style="background-color:
- #EEEEEE
- ">
-<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.flow.common.test.feature_0.0.1.v20120401-2106-H672-Beta3.jar">org.jboss.tools.flow.common.test.feature</a>
-</td>
-<td>
-<span style="font-size:x-small">0.0.1.v20120401-2106-H672-Beta3</span>
-</td>
-<td>
-<span style="font-size:x-small">
- |
- JBoss Tools - SOA Tooling Tests</span>
-</td>
-</tr>
-<tr style="background-color:
- #FFFFFF
- ">
-<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.jbpm3.test.feature_3.3.0.v20120401-2122-H700-Beta3.jar">org.jboss.tools.jbpm3.test.feature</a>
-</td>
-<td>
-<span style="font-size:x-small">3.3.0.v20120401-2122-H700-Beta3</span>
-</td>
-<td>
-<span style="font-size:x-small">
- |
- JBoss Tools - SOA Tooling Tests</span>
-</td>
-</tr>
-<tr style="background-color:
- #EEEEEE
- ">
-<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.jbpm4.test.feature_4.4.0.v20120401-2122-H700-Beta3.jar">org.jboss.tools.jbpm4.test.feature</a>
-</td>
-<td>
-<span style="font-size:x-small">4.4.0.v20120401-2122-H700-Beta3</span>
-</td>
-<td>
-<span style="font-size:x-small">
- |
- JBoss Tools - SOA Tooling Tests</span>
-</td>
-</tr>
-<tr style="background-color:
- #FFFFFF
- ">
-<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.modeshape.rest.test.feature_1.1.0.v20120401-2114-H648-Beta3.jar">org.jboss.tools.modeshape.rest.test.feature</a>
-</td>
-<td>
-<span style="font-size:x-small">1.1.0.v20120401-2114-H648-Beta3</span>
-</td>
-<td>
-<span style="font-size:x-small">
- |
- JBoss Tools - SOA Tooling Tests</span>
-</td>
-</tr>
-<tr style="background-color:
- #EEEEEE
- ">
-<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.runtime.soa.test.feature_1.3.0.v20120404-0454-Beta3.jar">org.jboss.tools.runtime.soa.test.feature</a>
-</td>
-<td>
-<span style="font-size:x-small">1.3.0.v20120404-0454-Beta3</span>
-</td>
-<td>
-<span style="font-size:x-small">
- |
- JBoss Tools - SOA Tooling Tests</span>
-</td>
-</tr>
-<tr style="background-color:
- #FFFFFF
- ">
-<td class="rowLine">
-<a style="font-size:x-small" href="features/org.jboss.tools.runtime.soa.test.feature.source_1.3.0.v20120404-0454-Beta3.jar">org.jboss.tools.runtime.soa.test.feature.source</a>
-</td>
-<td>
-<span style="font-size:x-small">1.3.0.v20120404-0454-Beta3</span>
-</td>
-<td>
-<span style="font-size:x-small">
- |
- JBoss Tools - SOA Tooling Tests</span>
-</td>
-</tr>
-<tr style="background-color:#DDDDDD">
-<th style="font-size:small" colspan="1">Metadata</th>
-<th style="font-size:small" colspan="1"/>
-<th style="font-size:small" colspan="1"/>
-</tr>
-<tr style="background-color:#EEEEEE">
-<td colspan="1" class="rowLine">
-<a style="font-size:x-small" href="site.xml">site.xml</a>
- ::
- <a style="font-size:x-small" href="artifacts.jar">artifacts.jar</a>
- ::
- <a style="font-size:x-small" href="content.jar">content.jar</a>
-</td>
-<td colspan="1" class="rowLine">
- ::
- <a style="font-size:x-small" href="plugins/">plugins</a>
- ::
- <a style="font-size:x-small" href="features/">features</a>
-</td>
-<td colspan="1" class="rowLine">
-
- :: <a href="site.properties" style="font-size:x-small">site.properties</a>
- </td>
-</tr>
-</table><br xmlns="http://www.w3.org/1999/xhtml" xmlns:xalan="http://xml.apache.org/xalan"/>
-
- </td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td>
- <table width="100%">
- <tr class="header">
- <td class="sub-header" width="100%"><span> Installation
- Types</span></td>
- </tr>
- <tr class="light-row" style="height: 30px">
- <td class="bodyText">
- <p class="bodyText">Depending on how close to the bleeding edge
- you like to be, there are several types of releases available.</p>
- <br />
-
- </td>
- </tr>
-
- <tr class="dark-row" style="height: 30px">
- <td class="bodyText">
- <h4>Stable Releases</h4>
-
- <p><a href="https://www.jboss.org/tools/download/stable.html">Stable
- releases</a> are - as indicated by their name - stable.</p><br/>
-
- </td>
- </tr>
-
- <tr class="light-row" style="height: 30px">
- <td class="bodyText">
- <h4>Development Milestones</h4>
-
- <p><a href="https://www.jboss.org/tools/download/dev.html">Development
- builds</a>, released once per milestone and only a few times a year, are
- fairly stable, but there may be some things which do not yet work.
- If you would like to try one of these milestones, we'd greatly
- appreciate the assistance in testing and <a
- href="https://jira.jboss.org/jira/browse/JBIDE">reporting of
- issues in our issue tracker</a>.</p><br/>
-
- </td>
- </tr>
-
- <tr class="dark-row" style="height: 30px">
- <td class="bodyText">
- <h4>Nightly Builds</h4>
-
- <p>The <a
- href="https://www.jboss.org/tools/download/nightly.html">bleeding
- edge</a> contains the latest and greatest new features, but nothing is
- stable or guaranteed - yet. If you're using a Milestone and need a
- fix, you can update to the latest Nightly, or wait for the next
- Milestone.</p><br/>
- </td>
- </tr>
- </table>
- </td>
- </tr>
-</table>
-</center>
-</html>
Modified: trunk/build/aggregate/soatests-site/pom.xml
===================================================================
--- trunk/build/aggregate/soatests-site/pom.xml 2012-04-23 18:02:44 UTC (rev 40420)
+++ trunk/build/aggregate/soatests-site/pom.xml 2012-04-23 19:01:33 UTC (rev 40421)
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.jboss.tools</groupId>
@@ -8,80 +7,23 @@
<version>0.0.2-SNAPSHOT</version>
</parent>
<groupId>org.jboss.tools</groupId>
- <artifactId>org.jboss.tools.site.soa-tooling.tests</artifactId>
- <name>JBoss Tools - SOA Tooling Tests Site</name>
- <packaging>eclipse-update-site</packaging>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.7</version>
- <executions>
- <execution>
- <id>install</id>
- <phase>install</phase>
- <configuration>
- <quiet>true</quiet>
- <tasks>
- <!-- called AFTER generating update site + zip to add in extra content -->
- <ant antfile="build.xml" target="basic.build" dir="../">
- <property name="output.dir" value="${basedir}" />
- <property name="inputRepo"
- value="${jbosstools-nightly-staging-composite}" />
- <property name="update.site.name" value="JBoss Tools - SOA Tooling Tests"/>
- <property name="JBT_VERSION" value="${JBT_VERSION}" />
- <property name="BUILD_ALIAS" value="${BUILD_ALIAS}" />
- </ant>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>commons-net</groupId>
- <artifactId>commons-net</artifactId>
- <version>1.4.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- <version>1.8.2</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-nodeps</artifactId>
- <version>1.8.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-trax</artifactId>
- <version>1.8.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-commons-net</artifactId>
- <version>1.8.2</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-apache-regexp</artifactId>
- <version>1.8.2</version>
- </dependency>
- <dependency>
- <groupId>ant-contrib</groupId>
- <artifactId>ant-contrib</artifactId>
- <version>1.0b3</version>
- </dependency>
- </dependencies>
- </plugin>
- </plugins>
- </build>
+ <artifactId>org.jboss.tools.site.soa-tooling.tests.root</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <name>JBoss Tools - SOA Tooling Tests</name>
+ <packaging>pom</packaging>
+ <!-- This site build depends on both the Core and SOA Tooling composite sites, plus the usual upstream dependencies and TP.
+ mvn clean install
+ or
+ mvn clean install -Pdefault,local.site -Dlocal.site=file://home/nboldt/tmp/JBDS_REPO_Indigo/
+ -->
+ <modules>
+ <module>tests</module>
+ <module>features</module>
+ <module>site</module>
+ </modules>
<repositories>
+ <!-- JBT nightly components -->
<repository>
<id>jbosstools-nightly-staging-composite</id>
<url>${jbosstools-nightly-staging-composite}</url>
@@ -104,6 +46,7 @@
<enabled>true</enabled>
</releases>
</repository>
+ <!-- JBT target platform -->
<repository>
<id>jbosstools-target-site</id>
<url>${jbosstools-target-site}</url>
@@ -115,16 +58,5 @@
<enabled>true</enabled>
</releases>
</repository>
- <repository>
- <id>jboss-requirements-composite-mirror</id>
- <url>${jboss-requirements-composite-mirror}</url>
- <layout>p2</layout>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- </releases>
- </repository>
</repositories>
</project>
Added: trunk/build/aggregate/soatests-site/site/.gitignore
===================================================================
--- trunk/build/aggregate/soatests-site/site/.gitignore (rev 0)
+++ trunk/build/aggregate/soatests-site/site/.gitignore 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,5 @@
+.settings/
+.project
+target/
+.classpath
+zips/
Copied: trunk/build/aggregate/soatests-site/site/associate.properties (from rev 40420, trunk/build/aggregate/soatests-site/associate.properties)
===================================================================
--- trunk/build/aggregate/soatests-site/site/associate.properties (rev 0)
+++ trunk/build/aggregate/soatests-site/site/associate.properties 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,7 @@
+# options: Nightly Build (default), Development Milestone, Stable Release
+#update.site.description=Nightly Build
+#update.site.description=Development Milestone
+#update.site.version=3.2.0.M2.2010-07-16_13-26-18-H21
+
+# associate sites to add to the resulting repo
+associate.sites=http://download.jboss.org/jbosstools/updates/indigo/SR2/,http://download.jboss.org/jbosstools/updates/development/indigo/,http://download.jboss.org/jbosstools/updates/development/indigo/soa-tooling/
Copied: trunk/build/aggregate/soatests-site/site/index.html (from rev 40420, trunk/build/aggregate/soatests-site/index.html)
===================================================================
--- trunk/build/aggregate/soatests-site/site/index.html (rev 0)
+++ trunk/build/aggregate/soatests-site/site/index.html 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,289 @@
+<html>
+<head>
+<title>JBoss Tools - SOA Tooling Tests - Nightly Build Update Site</title>
+<style>
+@import url("http://download.jboss.org/jbosstools/updates/web/site.css");
+</style>
+</head>
+<body marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">
+<center>
+<table marginheight="0" marginwidth="0" leftmargin="0" topmargin="0"
+ cellspacing="0" cellpadding="0" width="920" class="bodyText">
+ <tr>
+ <td colspan="3"><img
+ src="https://www.jboss.org/dms/tools/images/tools-banner.png" /></td>
+ </tr>
+ <tr>
+ <td>      </td>
+ <td>      </td>
+ <td>      </td>
+ </tr>
+ <tr>
+ <td>      </td>
+ <td>
+ <h2 class="title">JBoss Tools - SOA Tooling Tests - Nightly Build Update Site</h2>
+ <table width="100%">
+ <tr class="header">
+ <td class="sub-header" width="100%"><span>Latest Build</span></td>
+ </tr>
+
+ <tr class="light-row" style="height: 30px">
+ <td class="bodyText">
+ <p class="bodyText">This is the <b>Nightly Build</b>
+ Update Site for JBoss Tools - SOA Tooling Tests.
+ <blockquote style="border: 1px dashed #1778be; padding: 2px">
+ <ol>
+ <li>To <a class="link"
+ href="http://www.jboss.org/tools/download/installation/update_3_3">install</a>
+ from this site, start up Eclipse 3.7, then do:
+ <ul>
+ <code><strong>Help > Install New Software... ></strong></code>
+ </ul>
+ </li>
+ <li>Copy this site's URL into Eclipse, and hit Enter.</li>
+ <li>When the site loads, select the features to install,
+ or click the <code><strong>Select All</strong></code> button.</li>
+ <li>To properly resolve all dependencies, check
+ <ul><code><strong>[x] Contact all update sites during install to find required software</strong></code></ul>
+
+ <li>Click <code><strong>Next</strong></code>, agree to the license
+ terms, and install.</li>
+
+ <p class="bodyText">
+ You can also download JBoss Tools as individual zips for
+ offline installation. See <a class="link"
+ href="http://www.jboss.org/tools/download">JBoss Tools
+ Downloads</a>.<br /> If you downloaded this site as a zip, see
+ <a href="README.installation.txt">Installation README</a>.
+ See also <a
+ href="http://www.jboss.org/tools/download/installation">Installation
+ methods</a>.
+ </p>
+ </ol>
+ </blockquote>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td>      </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>
+ <table xmlns="http://www.w3.org/1999/xhtml" xmlns:xalan="http://xml.apache.org/xalan" border="0" cellpadding="0" cellspacing="2">
+<tr style="background-color:#DDDDDD">
+<th style="font-size:small">Feature</th>
+<th style="font-size:small">Version</th>
+<th style="font-size:small">
+ Feature Categor(ies)
+ </th>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.bpel.test.feature_1.2.0.v20120401-2114-H720-Beta3.jar">org.jboss.tools.bpel.test.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.2.0.v20120401-2114-H720-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ JBoss Tools - SOA Tooling Tests</span>
+</td>
+</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.esb.test.feature_1.5.0.v20120401-2137-H825-Beta3.jar">org.jboss.tools.esb.test.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.5.0.v20120401-2137-H825-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ JBoss Tools - SOA Tooling Tests</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.flow.common.test.feature_0.0.1.v20120401-2106-H672-Beta3.jar">org.jboss.tools.flow.common.test.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">0.0.1.v20120401-2106-H672-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ JBoss Tools - SOA Tooling Tests</span>
+</td>
+</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.jbpm3.test.feature_3.3.0.v20120401-2122-H700-Beta3.jar">org.jboss.tools.jbpm3.test.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">3.3.0.v20120401-2122-H700-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ JBoss Tools - SOA Tooling Tests</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.jbpm4.test.feature_4.4.0.v20120401-2122-H700-Beta3.jar">org.jboss.tools.jbpm4.test.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">4.4.0.v20120401-2122-H700-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ JBoss Tools - SOA Tooling Tests</span>
+</td>
+</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.modeshape.rest.test.feature_1.1.0.v20120401-2114-H648-Beta3.jar">org.jboss.tools.modeshape.rest.test.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.1.0.v20120401-2114-H648-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ JBoss Tools - SOA Tooling Tests</span>
+</td>
+</tr>
+<tr style="background-color:
+ #EEEEEE
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.runtime.soa.test.feature_1.3.0.v20120404-0454-Beta3.jar">org.jboss.tools.runtime.soa.test.feature</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120404-0454-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ JBoss Tools - SOA Tooling Tests</span>
+</td>
+</tr>
+<tr style="background-color:
+ #FFFFFF
+ ">
+<td class="rowLine">
+<a style="font-size:x-small" href="features/org.jboss.tools.runtime.soa.test.feature.source_1.3.0.v20120404-0454-Beta3.jar">org.jboss.tools.runtime.soa.test.feature.source</a>
+</td>
+<td>
+<span style="font-size:x-small">1.3.0.v20120404-0454-Beta3</span>
+</td>
+<td>
+<span style="font-size:x-small">
+ |
+ JBoss Tools - SOA Tooling Tests</span>
+</td>
+</tr>
+<tr style="background-color:#DDDDDD">
+<th style="font-size:small" colspan="1">Metadata</th>
+<th style="font-size:small" colspan="1"/>
+<th style="font-size:small" colspan="1"/>
+</tr>
+<tr style="background-color:#EEEEEE">
+<td colspan="1" class="rowLine">
+<a style="font-size:x-small" href="site.xml">site.xml</a>
+ ::
+ <a style="font-size:x-small" href="artifacts.jar">artifacts.jar</a>
+ ::
+ <a style="font-size:x-small" href="content.jar">content.jar</a>
+</td>
+<td colspan="1" class="rowLine">
+ ::
+ <a style="font-size:x-small" href="plugins/">plugins</a>
+ ::
+ <a style="font-size:x-small" href="features/">features</a>
+</td>
+<td colspan="1" class="rowLine">
+
+ :: <a href="site.properties" style="font-size:x-small">site.properties</a>
+ </td>
+</tr>
+</table><br xmlns="http://www.w3.org/1999/xhtml" xmlns:xalan="http://xml.apache.org/xalan"/>
+
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>
+ <table width="100%">
+ <tr class="header">
+ <td class="sub-header" width="100%"><span> Installation
+ Types</span></td>
+ </tr>
+ <tr class="light-row" style="height: 30px">
+ <td class="bodyText">
+ <p class="bodyText">Depending on how close to the bleeding edge
+ you like to be, there are several types of releases available.</p>
+ <br />
+
+ </td>
+ </tr>
+
+ <tr class="dark-row" style="height: 30px">
+ <td class="bodyText">
+ <h4>Stable Releases</h4>
+
+ <p><a href="https://www.jboss.org/tools/download/stable.html">Stable
+ releases</a> are - as indicated by their name - stable.</p><br/>
+
+ </td>
+ </tr>
+
+ <tr class="light-row" style="height: 30px">
+ <td class="bodyText">
+ <h4>Development Milestones</h4>
+
+ <p><a href="https://www.jboss.org/tools/download/dev.html">Development
+ builds</a>, released once per milestone and only a few times a year, are
+ fairly stable, but there may be some things which do not yet work.
+ If you would like to try one of these milestones, we'd greatly
+ appreciate the assistance in testing and <a
+ href="https://jira.jboss.org/jira/browse/JBIDE">reporting of
+ issues in our issue tracker</a>.</p><br/>
+
+ </td>
+ </tr>
+
+ <tr class="dark-row" style="height: 30px">
+ <td class="bodyText">
+ <h4>Nightly Builds</h4>
+
+ <p>The <a
+ href="https://www.jboss.org/tools/download/nightly.html">bleeding
+ edge</a> contains the latest and greatest new features, but nothing is
+ stable or guaranteed - yet. If you're using a Milestone and need a
+ fix, you can update to the latest Nightly, or wait for the next
+ Milestone.</p><br/>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+</center>
+</html>
Copied: trunk/build/aggregate/soatests-site/site/pom.xml (from rev 40420, trunk/build/aggregate/soatests-site/pom.xml)
===================================================================
--- trunk/build/aggregate/soatests-site/site/pom.xml (rev 0)
+++ trunk/build/aggregate/soatests-site/site/pom.xml 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.site</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.site.soa-tooling.tests</artifactId>
+ <name>JBoss Tools - SOA Tooling Tests Site</name>
+ <packaging>eclipse-update-site</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.7</version>
+ <executions>
+ <execution>
+ <id>install</id>
+ <phase>install</phase>
+ <configuration>
+ <quiet>true</quiet>
+ <tasks>
+ <!-- called AFTER generating update site + zip to add in extra content -->
+ <ant antfile="build.xml" target="basic.build" dir="../../">
+ <property name="output.dir" value="${basedir}" />
+ <property name="inputRepo"
+ value="${jbosstools-nightly-staging-composite-soa-tooling}" />
+ <property name="update.site.name" value="JBoss Tools - SOA Tooling Tests"/>
+ <property name="JBT_VERSION" value="${JBT_VERSION}" />
+ <property name="BUILD_ALIAS" value="${BUILD_ALIAS}" />
+ </ant>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>commons-net</groupId>
+ <artifactId>commons-net</artifactId>
+ <version>1.4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>1.8.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-nodeps</artifactId>
+ <version>1.8.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-trax</artifactId>
+ <version>1.8.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-commons-net</artifactId>
+ <version>1.8.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-apache-regexp</artifactId>
+ <version>1.8.2</version>
+ </dependency>
+ <dependency>
+ <groupId>ant-contrib</groupId>
+ <artifactId>ant-contrib</artifactId>
+ <version>1.0b3</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+
+ <repositories>
+ <repository>
+ <id>jbosstools-nightly-staging-composite-soa-tooling</id>
+ <url>${jbosstools-nightly-staging-composite-soa-tooling}</url>
+ <layout>p2</layout>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ <!-- JBIDE-10670 - TODO: instead of upstream staging bits, use ${jbosstools-nightly} ? -->
+ <repository>
+ <id>jbosstools-nightly-staging-composite</id>
+ <url>${jbosstools-nightly-staging-composite}</url>
+ <layout>p2</layout>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>jbosstools-target-site</id>
+ <url>${jbosstools-target-site}</url>
+ <layout>p2</layout>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>jboss-requirements-composite-mirror</id>
+ <url>${jboss-requirements-composite-mirror}</url>
+ <layout>p2</layout>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ </repositories>
+</project>
Copied: trunk/build/aggregate/soatests-site/site/site.xml (from rev 40420, trunk/build/aggregate/soatests-site/site.xml)
===================================================================
--- trunk/build/aggregate/soatests-site/site/site.xml (rev 0)
+++ trunk/build/aggregate/soatests-site/site/site.xml 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+ <description>JBoss Tools 3.3 - SOA Tooling Tests</description>
+
+ <!-- PLEASE NOTE!
+ When updating this file, please be sure that it parses as valid XML before committing it.
+ To test, just run `mvn clean install` in this folder.
+
+ To regenerate the list of included test features, do this:
+
+ $ cd ~/trunk; find . -mindepth 3 -maxdepth 3 -type d -name "*test*feature" | sort | \
+ sed "s#\.\/.\+\/features\/\(.\+\)#<feature url=\"features/\1_0.0.0.jar\" id=\"\1\" version=\"0.0.0\"><category name=\"JBoss Tools - SOA Tooling Tests\"/></feature>#g"
+ -->
+
+ <category-def name="JBoss Tools - SOA Tooling Tests" label="JBoss Tools - SOA Tooling Tests">
+ <description>JBoss Tools - SOA Tooling Tests
+ </description>
+ </category-def>
+
+<feature url="features/org.jboss.tools.bpel.test.feature_0.0.0.jar" id="org.jboss.tools.bpel.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.drools.test.feature_0.0.0.jar" id="org.jboss.tools.drools.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.esb.test.feature_0.0.0.jar" id="org.jboss.tools.esb.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.flow.common.test.feature_0.0.0.jar" id="org.jboss.tools.flow.common.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.jbpm3.test.feature_0.0.0.jar" id="org.jboss.tools.jbpm3.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.jbpm4.test.feature_0.0.0.jar" id="org.jboss.tools.jbpm4.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.modeshape.rest.test.feature_0.0.0.jar" id="org.jboss.tools.modeshape.rest.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.modeshape.jcr.test.feature_0.0.0.jar" id="org.jboss.tools.modeshape.jcr.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.runtime.soa.test.feature_0.0.0.jar" id="org.jboss.tools.runtime.soa.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+
+<!-- TODO: add source features
+<feature url="features/org.jboss.tools.bpel.test.feature.source_0.0.0.jar" id="org.jboss.tools.bpel.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.drools.test.feature.source_0.0.0.jar" id="org.jboss.tools.drools.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.esb.test.feature.source_0.0.0.jar" id="org.jboss.tools.esb.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.flow.common.test.feature.source_0.0.0.jar" id="org.jboss.tools.flow.common.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.jbpm3.test.feature.source_0.0.0.jar" id="org.jboss.tools.jbpm3.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.jbpm4.test.feature.source_0.0.0.jar" id="org.jboss.tools.jbpm4.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.modeshape.rest.test.feature.source_0.0.0.jar" id="org.jboss.tools.modeshape.rest.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+<feature url="features/org.jboss.tools.modeshape.jcr.test.feature.source_0.0.0.jar" id="org.jboss.tools.modeshape.jcr.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+-->
+<feature url="features/org.jboss.tools.runtime.soa.test.feature.source_0.0.0.jar" id="org.jboss.tools.runtime.soa.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+
+<!-- disabled/deprecated/not included
+<feature url="features/org.jboss.tools.smooks.test.feature_0.0.0.jar" id="org.jboss.tools.smooks.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
+-->
+
+</site>
Deleted: trunk/build/aggregate/soatests-site/site.xml
===================================================================
--- trunk/build/aggregate/soatests-site/site.xml 2012-04-23 18:02:44 UTC (rev 40420)
+++ trunk/build/aggregate/soatests-site/site.xml 2012-04-23 19:01:33 UTC (rev 40421)
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
- <description>JBoss Tools 3.3 - SOA Tooling Tests</description>
-
- <!-- PLEASE NOTE!
- When updating this file, please be sure that it parses as valid XML before committing it.
- To test, just run `mvn clean install` in this folder.
-
- To regenerate the list of included test features, do this:
-
- $ cd ~/trunk; find . -mindepth 3 -maxdepth 3 -type d -name "*test*feature" | sort | \
- sed "s#\.\/.\+\/features\/\(.\+\)#<feature url=\"features/\1_0.0.0.jar\" id=\"\1\" version=\"0.0.0\"><category name=\"JBoss Tools - SOA Tooling Tests\"/></feature>#g"
- -->
-
- <category-def name="JBoss Tools - SOA Tooling Tests" label="JBoss Tools - SOA Tooling Tests">
- <description>JBoss Tools - SOA Tooling Tests
- </description>
- </category-def>
-
-<feature url="features/org.jboss.tools.bpel.test.feature_0.0.0.jar" id="org.jboss.tools.bpel.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.esb.test.feature_0.0.0.jar" id="org.jboss.tools.esb.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.flow.common.test.feature_0.0.0.jar" id="org.jboss.tools.flow.common.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.jbpm3.test.feature_0.0.0.jar" id="org.jboss.tools.jbpm3.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.jbpm4.test.feature_0.0.0.jar" id="org.jboss.tools.jbpm4.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.modeshape.rest.test.feature_0.0.0.jar" id="org.jboss.tools.modeshape.rest.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.modeshape.jcr.test.feature_0.0.0.jar" id="org.jboss.tools.modeshape.jcr.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.runtime.soa.test.feature_0.0.0.jar" id="org.jboss.tools.runtime.soa.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-
-<!-- TODO: add source features
-<feature url="features/org.jboss.tools.bpel.test.feature.source_0.0.0.jar" id="org.jboss.tools.bpel.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.esb.test.feature.source_0.0.0.jar" id="org.jboss.tools.esb.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.flow.common.test.feature.source_0.0.0.jar" id="org.jboss.tools.flow.common.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.jbpm3.test.feature.source_0.0.0.jar" id="org.jboss.tools.jbpm3.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.jbpm4.test.feature.source_0.0.0.jar" id="org.jboss.tools.jbpm4.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.modeshape.rest.test.feature.source_0.0.0.jar" id="org.jboss.tools.modeshape.rest.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-<feature url="features/org.jboss.tools.modeshape.jcr.test.feature.source_0.0.0.jar" id="org.jboss.tools.modeshape.jcr.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
--->
-<feature url="features/org.jboss.tools.runtime.soa.test.feature.source_0.0.0.jar" id="org.jboss.tools.runtime.soa.test.feature.source" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
-
-<!-- disabled/deprecated/not included
-<feature url="features/org.jboss.tools.smooks.test.feature_0.0.0.jar" id="org.jboss.tools.smooks.test.feature" version="0.0.0"><category name="JBoss Tools - SOA Tooling Tests"/></feature>
--->
-
-</site>
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="resources"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1 @@
+target
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Drools UI SWTBot Tests
+Bundle-SymbolicName: org.jboss.tools.drools.ui.bot.test
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.jboss.tools.drools.ui.bot.test.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.jboss.tools.jst.ui.bot.test,
+ org.eclipse.swtbot.eclipse.core;bundle-version="2.0.0",
+ org.eclipse.swtbot.eclipse.finder;bundle-version="2.0.0",
+ org.eclipse.swtbot.swt.finder;bundle-version="2.0.0",
+ org.junit4;bundle-version="4.5.0",
+ org.jboss.tools.ui.bot.ext,
+ org.drools.eclipse;bundle-version="5.3.0",
+ org.eclipse.swtbot.eclipse.gef.finder,
+ org.apache.log4j;bundle-version="1.2.13"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: JBoss by Red Hat
+Import-Package: org.eclipse.ui.forms.widgets
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,5 @@
+source.. = src/,\
+ resources/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools.soa-tooling</groupId>
+ <artifactId>org.jboss.tools.soa-tooling.tests</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.drools.ui.bot.test</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>eclipse-test-plugin</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-surefire-plugin</artifactId>
+ <version>${tychoVersion}</version>
+ <configuration>
+ <useUIThread>false</useUIThread>
+ <testSuite>org.jboss.tools.drools.ui.bot.test</testSuite>
+ <testClass>org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests</testClass>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd 2012-04-23 19:01:33 UTC (rev 40421)
@@ -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/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd 2012-04-23 19:01:33 UTC (rev 40421)
@@ -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/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd 2012-04-23 19:01:33 UTC (rev 40421)
@@ -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/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd 2012-04-23 19:01:33 UTC (rev 40421)
@@ -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/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd 2012-04-23 19:01:33 UTC (rev 40421)
@@ -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
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,3 @@
+use-external-drools-runtime=true
+guvnor-repository-url=/jboss-brms/org.drools.guvnor.Guvnor/webdav
+external-drools-runtime-home=/home/vpakan/tmp/drools
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,50 @@
+package org.jboss.tools.drools.ui.bot.test;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.jboss.tools.drools.ui.bot.test";
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,205 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2009 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.drools.ui.bot.test;
+
+import java.io.File;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.jboss.tools.drools.ui.bot.test.smoke.DecisionTableTest;
+import org.jboss.tools.drools.ui.bot.test.smoke.DomainSpecificLanguageEditorTest;
+import org.jboss.tools.drools.ui.bot.test.smoke.DroolsRulesEditorTest;
+import org.jboss.tools.drools.ui.bot.test.smoke.DroolsViewsTest;
+import org.jboss.tools.drools.ui.bot.test.smoke.GuvnorRepositoriesTest;
+import org.jboss.tools.drools.ui.bot.test.smoke.ManageDroolsProject;
+import org.jboss.tools.drools.ui.bot.test.smoke.ManageDroolsRules;
+import org.jboss.tools.drools.ui.bot.test.smoke.ManageDroolsRuntime;
+import org.jboss.tools.drools.ui.bot.test.smoke.OpenDroolsPerspective;
+import org.jboss.tools.drools.ui.bot.test.smoke.RuleFlowTest;
+import org.jboss.tools.ui.bot.ext.RequirementAwareSuite;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.SWTUtilExt;
+import org.jboss.tools.ui.bot.ext.config.ServerBean;
+import org.jboss.tools.ui.bot.ext.config.TestConfigurator;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.PerspectiveType;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ *
+ * This is Drools swtbot test case for JBoss Tools.
+ *
+ * @author Vladimir Pakan
+ *
+ */
+(a)RunWith(RequirementAwareSuite.class)
+@SuiteClasses({
+ OpenDroolsPerspective.class,
+ ManageDroolsRuntime.class,
+ ManageDroolsProject.class,
+ ManageDroolsRules.class,
+ DroolsRulesEditorTest.class,
+ // GuidedDroolsRulesEditorTest.class,
+ DomainSpecificLanguageEditorTest.class,
+ RuleFlowTest.class,
+ DecisionTableTest.class,
+ GuvnorRepositoriesTest.class,
+ DroolsViewsTest.class
+})
+public class DroolsAllBotTests extends SWTTestExt {
+ public static final String DROOLS_PROJECT_NAME = "droolsTest";
+ public static final String DROOLS_RUNTIME_NAME = "Drools Test Runtime";
+ public static String DROOLS_RUNTIME_LOCATION = null;
+ public static String CREATE_DROOLS_RUNTIME_LOCATION = null;
+ public static String SRC_MAIN_JAVA_TREE_NODE = "src/main/java";
+ public static String SRC_MAIN_RULES_TREE_NODE = "src/main/rules";
+ public static String COM_SAMPLE_TREE_NODE = "com.sample";
+ public static String DROOLS_TEST_JAVA_TREE_NODE = "DroolsTest.java";
+ public static final String TEST_DROOLS_RULE_NAME = "TestRule.drl";
+ public static final String SAMPLE_DROOLS_RULE_NAME = "Sample.drl";
+ 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";
+ 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";
+ public static final String GUVNOR_REPOSITORY_URL_PROPERTY_NAME = "guvnor-repository-url";
+ private static boolean USE_EXTERNAL_DROOLS_RUNTIME;
+ private static boolean isFirstRun = true;
+
+ private static String testDroolsRuntimeName = null;
+ private static String testDroolsRuntimeLocation = null;
+ private static String guvnorRepositoryUrl = null;
+ private static String guvnorRepositoryRootTreeItem = "http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/webdav/";
+
+ public static String getTestDroolsRuntimeName() {
+ return testDroolsRuntimeName;
+ }
+
+ public static void setTestDroolsRuntimeName(String testDroolsRuntimeName) {
+ DroolsAllBotTests.testDroolsRuntimeName = testDroolsRuntimeName;
+ }
+
+ public static String getTestDroolsRuntimeLocation() {
+ return testDroolsRuntimeLocation;
+ }
+
+ public static void setTestDroolsRuntimeLocation(String testDroolsRuntimeLocation) {
+ DroolsAllBotTests.testDroolsRuntimeLocation = testDroolsRuntimeLocation;
+ }
+
+ public static String getGuvnorRepositoryUrl() {
+ return guvnorRepositoryUrl;
+ }
+
+ private static void setGuvnorRepositoryUrl(String guvnorRepositoryUrl) {
+ DroolsAllBotTests.guvnorRepositoryUrl = guvnorRepositoryUrl;
+ }
+
+ public static String getGuvnorRepositoryRootTreeItem() {
+ return guvnorRepositoryRootTreeItem;
+ }
+
+ private static void setGuvnorRepositoryRootTreeItem(String guvnorRepositoryRootTreeItem) {
+ DroolsAllBotTests.guvnorRepositoryRootTreeItem = guvnorRepositoryRootTreeItem;
+ }
+
+ @BeforeClass
+ public static void setUpTest() {
+ if (isFirstRun) {
+ isFirstRun = false;
+ } else {
+ return;
+ }
+ props = util.loadProperties(Activator.PLUGIN_ID);
+ String guvnorRepositoryUrl = props.getProperty(DroolsAllBotTests.GUVNOR_REPOSITORY_URL_PROPERTY_NAME);
+ if (guvnorRepositoryUrl != null) {
+ DroolsAllBotTests.setGuvnorRepositoryUrl(guvnorRepositoryUrl);
+ DroolsAllBotTests.setGuvnorRepositoryRootTreeItem("http://localhost:8080" + guvnorRepositoryUrl);
+ }
+ String useExternalDroolRuntime = props.getProperty(DroolsAllBotTests.USE_EXTERNAL_DROOLS_RUNTIME_PROPERTY_NAME);
+ DroolsAllBotTests.USE_EXTERNAL_DROOLS_RUNTIME = useExternalDroolRuntime != null && useExternalDroolRuntime.equalsIgnoreCase("true");
+ String droolsRuntimeLocation = props.getProperty(DroolsAllBotTests.EXTERNAL_DROOLS_RUTIME_HOME_PROPERTY_NAME);
+ String tmpDir = System.getProperty("java.io.tmpdir");
+ if (droolsRuntimeLocation == null || droolsRuntimeLocation.length() == 0) {
+ DroolsAllBotTests.DROOLS_RUNTIME_LOCATION = tmpDir;
+ } else {
+ DroolsAllBotTests.DROOLS_RUNTIME_LOCATION = droolsRuntimeLocation;
+ }
+ DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION = tmpDir + File.separator + "drools";
+ // Create directory for Drools Runtime which will be created as a part of test
+ new File(DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION).mkdir();
+ try {
+ bot.button(IDELabel.Button.NO).click();
+ } catch (WidgetNotFoundException wnfe) {
+ // Do nothing ignore this error
+ }
+ try {
+ SWTBotView welcomeView = eclipse.getBot().viewByTitle(IDELabel.View.WELCOME);
+ welcomeView.close();
+ } catch (WidgetNotFoundException wnfe) {
+ // Do nothing ignore this error
+ }
+ // Close JBoss Central editor
+ for (SWTBotEditor editor : bot.editors()) {
+ if (IDELabel.View.JBOSS_CENTRAL.equals(editor.getTitle())) {
+ editor.close();
+ break;
+ }
+ }
+ eclipse.openPerspective(PerspectiveType.JAVA);
+ eclipse.maximizeActiveShell();
+
+ // Removes legacy files after previous run
+ ServerBean server = TestConfigurator.currentConfig.getServer();
+ if (server != null) {
+ final String serverHome = server.runtimeHome;
+ if (serverHome != null) {
+ deleteGuvnorRepositoryIfExists(serverHome + "/bin/");
+ }
+ }
+ }
+
+ private static void deleteGuvnorRepositoryIfExists(final String pathToDirectoryWithRepository) {
+ delete(new File(pathToDirectoryWithRepository + "repository.xml"));
+ delete(new File(pathToDirectoryWithRepository + "repository"));
+ }
+
+ public static boolean delete(final File file) {
+ if (!file.exists()) {
+ return false;
+ }
+ if (file.isDirectory()) {
+ for (final String s : file.list()) {
+ delete(new File(file, s));
+ }
+ }
+ return file.delete();
+ }
+
+ public static boolean useExternalDroolsRuntime() {
+ return USE_EXTERNAL_DROOLS_RUNTIME;
+ }
+
+ @AfterClass
+ public static void tearDownTest() {
+ // delete created drools runtime
+ SWTUtilExt.deleteDirectory(DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION);
+ }
+}
\ No newline at end of file
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DecisionTableTest.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DecisionTableTest.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DecisionTableTest.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,53 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.junit.Test;
+/**
+ * Tests Decision Table
+ * @author Vladimir Pakan
+ *
+ */
+public class DecisionTableTest extends SWTTestExt{
+ /**
+ * Tests Decision Table
+ */
+ @Test
+ public void testDecisionTable() {
+ runDecisionTable(DroolsAllBotTests.DECISION_TABLE_JAVA_TEST_FILE_NAME);
+ }
+ /**
+ * Runs newly created Drools project and check result
+ * @param decisionTableFileName
+ */
+ private void runDecisionTable(String decisionTableFileName){
+ console.clearConsole();
+ bot.sleep(5000L);
+
+ SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(decisionTableFileName,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
+
+ eclipse.runTreeItemAsJavaApplication(tiTestFile);
+
+ String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+
+ assertTrue(decisionTableFileName + " didn't run properly.\n" +
+ "Console Text was: " + consoleText + "\n" +
+ "Expected console text is: Hello World\nGoodbye cruel world\n",
+ consoleText.endsWith("Hello World\nGoodbye cruel world\n"));
+ }
+}
\ No newline at end of file
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,229 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
+import org.jboss.tools.ui.bot.ext.parts.SWTBotEditorExt;
+import org.jboss.tools.ui.bot.ext.types.EntityType;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.JobName;
+import org.jboss.tools.ui.bot.ext.view.ProblemsView;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.junit.Test;
+/**
+ * Tests Domain Specific Language Editor
+ * @author Vladimir Pakan
+ *
+ */
+public class DomainSpecificLanguageEditorTest extends SWTTestExt{
+ /**
+ * Tests Domain Specific Language Editor
+ */
+ private static final String LANGUAGE_EXRESSION = "Message {msg} of type {t} contains {what}";
+ @Test
+ public void testDomainSpecificLanguageEditor() {
+ createDslFile(DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME);
+ addDslExpression(DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME);
+ useDslExpression(DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME,
+ DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
+ runDslExpressionCheck(DroolsAllBotTests.DROOLS_TEST_JAVA_TREE_NODE,
+ DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME);
+ }
+ /**
+ * Creates DSL File
+ * @param dslFileName
+ */
+ private void createDslFile(String dslFileName){
+ packageExplorer.show();
+ SWTBotTreeItem tiRules = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
+
+ tiRules.select();
+ eclipse.createNew(EntityType.DSL_DROOLS_FILE);
+ bot.textWithLabel(IDELabel.NewDslDroolsFileDialog.FILE_NAME).setText(dslFileName);
+ eclipse.selectTreeLocation(DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ "src",
+ "main",
+ "rules");
+ bot.button(IDELabel.Button.FINISH).click();
+ bot.sleep(Timing.time1S());
+ tiRules.expand();
+ // Test if new DSL File is within package tree view
+ assertTrue("New DSL File was not created properly. It's not present within Package Explorer",
+ SWTEclipseExt.containsTreeItemWithLabel(tiRules, dslFileName));
+ // Test if new DSL File is opened in editor
+ assertTrue("New DSL File was not created properly. File " + dslFileName + " is not opened in editor",
+ SWTEclipseExt.existEditorWithLabel(bot,dslFileName));
+
+ }
+ /**
+ * Adds DSL Expression to DSL File
+ * @param dslFileName
+ */
+ private void addDslExpression(String dslFileName){
+ SWTBotEditor dslRuleEditor = bot.editorByTitle(dslFileName);
+ SWTBot dslRuleEditorBot = dslRuleEditor.bot();
+ dslRuleEditorBot
+ .button(IDELabel.Button.ADD_WITHOUT_DOTS).click();
+ SWTBot dialogBot = dslRuleEditorBot
+ .shell(IDELabel.DslDroolsFileEditor.ADD_LANGUAGE_MAPPING_DIALOG_TITLE)
+ .activate()
+ .bot();
+
+ dialogBot.textWithLabel(IDELabel.DslDroolsFileEditor.LANGUAGE_EXPRESSION_TEXT_LABEL)
+ .setText(DomainSpecificLanguageEditorTest.LANGUAGE_EXRESSION);
+ dialogBot.textWithLabel(IDELabel.DslDroolsFileEditor.RULE_MAPPING_TEXT_LABEL)
+ .setText("{msg} : Message(status == {t}, {what} : message)");
+ dialogBot.comboBoxWithLabel(IDELabel.DslDroolsFileEditor.SCOPE_COMBO_LABEL)
+ .setSelection(IDELabel.DslDroolsFileEditor.SCOPE_COMBO_VALUE);
+ dialogBot.button(IDELabel.Button.OK).click();
+ dslRuleEditor.save();
+
+ assertTrue("DSL table has to containt this Language Expression:\n" +
+ DomainSpecificLanguageEditorTest.LANGUAGE_EXRESSION,
+ SWTEclipseExt.isItemInTableColumn(dslRuleEditorBot.table(),
+ DomainSpecificLanguageEditorTest.LANGUAGE_EXRESSION,
+ 0));
+
+ }
+ /**
+ * Use defined language expression in dslFileName file within sampleDrlFileName file
+ * @param dslFileName
+ * @param sampleDrlFileName
+ */
+ private void useDslExpression (String dslFileName,String sampleDrlFileName){
+ packageExplorer.show();
+ SWTBotEclipseEditor drlDroolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME).toTextEditor();
+ SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
+ ruleEditor.selectPage(IDELabel.DroolsEditor.TEXT_EDITOR_TAB);
+ // update drl file
+ drlDroolsEditor.insertText(3,0,"\nexpander " +
+ dslFileName +
+ ";\n");
+ int[] linesToIgnoreExpander = new int[]{8,10,11,12,13,20};
+ for (int lineNumber : linesToIgnoreExpander){
+ drlDroolsEditor.insertText(lineNumber,0,">");
+ }
+ drlDroolsEditor.selectLine(18);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCode(bot.getDisplay(),(int)SWT.DEL);
+ bot.sleep(Timing.time1S());
+ drlDroolsEditor.insertText(18, 0, " Message m of type Message.GOODBYE contains myMessage");
+ drlDroolsEditor.save();
+ util.waitForJobs(Timing.time10S(), JobName.BUILDING_WS);
+ SWTBotTreeItem[] errors = ProblemsView
+ .getFilteredErrorsTreeItems(bot,
+ null,
+ null,
+ sampleDrlFileName,
+ null);
+ assertTrue("File "
+ + sampleDrlFileName
+ + " was not udpated properly. There are these errors: "
+ + SWTEclipseExt.getFormattedTreeNodesText(errors),
+ errors == null || errors.length == 0);
+
+ SWTBotTreeItem[] warnings = ProblemsView
+ .getFilteredWarningsTreeItems(bot,
+ null,
+ null,
+ sampleDrlFileName,
+ null);
+ assertTrue("File "
+ + sampleDrlFileName
+ + " was not udpated properly. There are these warnings: "
+ + SWTEclipseExt.getFormattedTreeNodesText(warnings),
+ warnings == null || warnings.length == 0);
+ }
+ /**
+ * Runs javaFileName testing defined DSL
+ * @param javaFileName
+ * @param dslFileName
+ */
+ private void runDslExpressionCheck(String javaFileName,
+ String dslFileName){
+
+ packageExplorer.show();
+ SWTBotEclipseEditor drlDroolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE,
+ javaFileName).toTextEditor();
+ // Change java file content to support new DSL
+ updateJavaTestFile(drlDroolsEditor,dslFileName);
+
+ console.clearConsole();
+ bot.sleep(Timing.time5S());
+
+ SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(javaFileName,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
+
+ eclipse.runTreeItemAsJavaApplication(tiTestFile);
+
+ String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+
+ assertTrue(javaFileName + " didn't run properly.\n" +
+ "Console Text was: " + consoleText + "\n" +
+ "Expected console text is: " + "Hello World\nGoodbye cruel world\n",
+ "Hello World\nGoodbye cruel world\n".equals(consoleText));
+ }
+ /**
+ * Update properly Java Test file in drlDroolsEditor to be able to run
+ * with new DSL definition
+ * @param drlDroolsEditor
+ * @param dslFileName
+ */
+ private void updateJavaTestFile(SWTBotEclipseEditor drlDroolsEditor,
+ String dslFileName){
+ int lineIndex = 0;
+ String foundLineText = null;
+ while (lineIndex < drlDroolsEditor.getLineCount() && foundLineText == null){
+ String lineText = drlDroolsEditor.getTextOnLine(lineIndex);
+ if(lineText.trim().startsWith("kbuilder.add")){
+ foundLineText = lineText;
+ }
+ else{
+ lineIndex++;
+ }
+ }
+ if (foundLineText != null){
+ drlDroolsEditor.insertText(lineIndex,0,
+ "kbuilder.add(ResourceFactory.newClassPathResource(\"" +
+ dslFileName +
+ "\"), ResourceType.DSL);\n");
+ lineIndex++;
+ drlDroolsEditor.selectLine(lineIndex);
+ KeyboardHelper.pressKeyCode(bot.getDisplay(),(int)SWT.DEL);
+ drlDroolsEditor.insertText(foundLineText
+ .replace("ResourceType.DRL","ResourceType.DSLR") + "\n");
+ drlDroolsEditor.save();
+ util.waitForJobs(Timing.time10S(), JobName.BUILDING_WS);
+ }
+ else{
+ throw new RuntimeException("File " +
+ drlDroolsEditor.getTitle() +
+ " has wrong content. It doesn't contain 'kbuilder.add' string.");
+ }
+ }
+
+}
\ No newline at end of file
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,95 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
+import org.eclipse.swtbot.swt.finder.utils.Position;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.parts.ContentAssistBot;
+import org.jboss.tools.ui.bot.ext.parts.SWTBotEditorExt;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.junit.Test;
+/**
+ * Tests Drools Rule Editor
+ * @author Vladimir Pakan
+ *
+ */
+public class DroolsRulesEditorTest extends SWTTestExt{
+ /**
+ * Tests Drools Rule Editor
+ */
+ private static final String CONTENT_ASSIST_IMPORT = "import";
+ private static final String CONTENT_ASSIST_MESSAGE = "Message";
+ @Test
+ public void testDroolsRulesEditor() {
+ codeCompletionCheck(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
+ reteViewCheck(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
+ }
+ /**
+ * Check code completion for Drools Rule
+ * @param droolsRuleName
+ */
+ private void codeCompletionCheck(String droolsRuleName){
+
+ packageExplorer.show();
+ packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,droolsRuleName);
+ SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(droolsRuleName);
+ ruleEditor.selectPage(IDELabel.DroolsEditor.TEXT_EDITOR_TAB);
+ ruleEditor.typeText(3, 0, "i");
+ ContentAssistBot contentAssist = ruleEditor.contentAssist();
+ contentAssist.checkContentAssist(DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT, true);
+ ruleEditor.typeText(6, 0, "m");
+ contentAssist.checkContentAssist(DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE, true);
+
+ SWTBotEclipseEditor ruleTextEditor = ruleEditor.toTextEditor();
+ String lineText = ruleTextEditor.getTextOnLine(3).trim();
+ assertTrue("Content Assist for " + DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT +
+ " was not inserted properly.\n" +
+ "Inserted text is: " + lineText + "\n" +
+ "Expected text is: " + DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT,
+ lineText.equals(DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT));
+
+ lineText = ruleTextEditor.getTextOnLine(6).trim();
+ String messageContentAssistText = DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE + "( )";
+ assertTrue("Content Assist for " + DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE +
+ " was not inserted properly.\n" +
+ "Inserted text is: " + lineText + "\n" +
+ "Expected text has to stard with: " + messageContentAssistText,
+ lineText.startsWith(messageContentAssistText));
+
+ Position cursorPosition = ruleTextEditor.cursorPosition();
+ assertTrue("Content Assist for " + DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE +
+ " was not inserted properly.\n" +
+ "Position of cursor is wrong: " + cursorPosition + "\n" +
+ "Expected X cursor position is: " + 9,
+ cursorPosition.column == 9);
+
+ ruleEditor.close();
+
+ }
+ /**
+ * Check Rete View of Drools Rule
+ * @param droolsRuleName
+ */
+ private void reteViewCheck(String droolsRuleName){
+
+ packageExplorer.show();
+ packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,droolsRuleName);
+ SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(droolsRuleName);
+ ruleEditor.selectPage(IDELabel.DroolsEditor.RETE_TREE_TAB);
+
+ }
+}
+
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,589 @@
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.withLabel;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.ui.bot.ext.SWTOpenExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.gen.IView;
+import org.jboss.tools.ui.bot.ext.helper.DragAndDropHelper;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * Test class for testing Drools views.
+ *
+ * @author jgargula
+ */
+public class DroolsViewsTest extends SWTTestExt {
+
+ private static final String PROJECT_NAME = "droolsViewsTest";
+ private static final String RULES_FILE = "Sample.drl";
+ private static final String RULES_FILE_PATH = "src/main/rules";
+ private static final String JAVA_FILE = "DroolsTest.java";
+ private static final String JAVA_FILE_PATH = "src/main/java";
+ private static final String SAMPLE_TREE_NODE = "com.sample";
+ private static final String GLOBAL_VARIABLE_NAME = "globalString";
+ private static final String GLOBAL_VARIABLE_VALUE = "abcd";
+ private static final String LOG_FILE = "test.log";
+ private static boolean isFirstTimeRun = true;
+
+ /**
+ * Prepares all necessary things.
+ */
+ @Before
+ public void setUp() {
+ if (isFirstTimeRun) {
+ eclipse.closeAllEditors();
+ manageProject();
+ setUpOnce();
+ }
+
+ SWTBotTreeItem javaTreeItem = packageExplorer.selectTreeItem(JAVA_FILE, new String[] {PROJECT_NAME, JAVA_FILE_PATH, SAMPLE_TREE_NODE});
+ eclipse.debugTreeItemAsDroolsApplication(javaTreeItem);
+
+ if (isFirstTimeRun) {
+ eclipse.closeConfirmPerspectiveSwitchShellIfOpened(false, true);
+ } else {
+ while (bot.waitForShell(IDELabel.Shell.PROGRESS_INFORMATION, 0) != null) {
+ bot.sleep(Timing.time2S());
+ }
+ }
+
+ // waits for running debugging
+ while (!eclipse.isDebugging()) {
+ bot.sleep(Timing.time500MS());
+ }
+
+ // waits for stopping at breakpoint
+ while (!eclipse.isSuspendedAtBreakpoint()) {
+ bot.sleep(Timing.time1S());
+ }
+
+ isFirstTimeRun = false;
+ bot.sleep(Timing.time1S());
+ }
+
+ /**
+ * This should be executed just before the first test.
+ */
+ private void setUpOnce() {
+ adjustDroolsTestFile();
+ adjustSampleFile();
+ bot.saveAllEditors();
+ }
+
+ /**
+ * Deletes all existing projects
+ * and creates brand new project.
+ */
+ private void manageProject() {
+ ManageDroolsProject.createDroolsProject(PROJECT_NAME);
+
+ Widget openingProjectWidget = null;
+ try {
+ openingProjectWidget = bot.widget(withLabel("Drools Runtime"));
+ } catch (WidgetNotFoundException wnfe) {
+ // openingProjectWidget should be null in this case
+ }
+ for (int i = 0; i < 30; i++) {
+ if (openingProjectWidget == null || (openingProjectWidget.isDisposed()
+ && packageExplorer.bot().tree().getAllItems().length > 0)) {
+ break;
+ } else {
+ bot.sleep(Timing.time2S());
+ }
+ }
+ }
+
+ /**
+ * Finishes tests.
+ */
+ @After
+ public void tearDown() {
+ eclipse.closeView(IDELabel.View.AGENDA);
+ eclipse.closeView(IDELabel.View.GLOBAL_DATA);
+ eclipse.closeView(IDELabel.View.AUDIT);
+ eclipse.closeView(IDELabel.View.WORKING_MEMORY);
+ eclipse.finishDebug();
+ }
+
+ /**
+ * Test of Agenda view.
+ */
+ @Test
+ public void agendaTest() {
+ bot.editorByTitle(RULES_FILE).show();
+ eclipse.stepOver();
+ openView(IDELabel.View.AGENDA);
+ HashSet<Activation> expectedSet = new HashSet<Activation>(2);
+ // indicies are not compared
+ expectedSet.add(new Activation(0, "Bye Bye"));
+ expectedSet.add(new Activation(1, "GoodBye"));
+ assertEquals(expectedSet, new HashSet<Activation>(getActivationsFromAgenda()));
+ eclipse.resumeDebug();
+ final String CONSOLE_TEXT_MESSAGE_1 = "Expected console text is:\n";
+ final String CONSOLE_TEXT_MESSAGE_2 = "but was:\n";
+ final String EXPECTED_CONSOLE_TEXT_1 = "Hello World\nGoodbye cruel world\nabcd\n";
+ final String EXPECTED_CONSOLE_TEXT_2 = "JustBye rule\nFinished\n";
+ assertTrue(CONSOLE_TEXT_MESSAGE_1 + EXPECTED_CONSOLE_TEXT_1 + CONSOLE_TEXT_MESSAGE_2 + console.getConsoleText(),
+ EXPECTED_CONSOLE_TEXT_1.equals(console.getConsoleText()));
+ expectedSet.clear();
+ expectedSet.add(new Activation(0, "Finish rule"));
+ showView(IDELabel.View.AGENDA);
+ assertEquals(expectedSet, new HashSet<Activation>(getActivationsFromAgenda()));
+ eclipse.finishDebug();
+ assertTrue(CONSOLE_TEXT_MESSAGE_1 + EXPECTED_CONSOLE_TEXT_1 + EXPECTED_CONSOLE_TEXT_2 + CONSOLE_TEXT_MESSAGE_2
+ + console.getConsoleText(), (EXPECTED_CONSOLE_TEXT_1 + EXPECTED_CONSOLE_TEXT_2).equals(console.getConsoleText()));
+ }
+
+ /**
+ * Tests refreshing of Agenda view.
+ */
+ @Test
+ @Ignore
+ public void refreshAgendaTest() {
+ openView(IDELabel.View.AGENDA);
+ eclipse.stepOver();
+ assertTrue("Agenda is not refreshing automatically.", bot.tree().getAllItems()[0].getItems().length > 0);
+ }
+
+ /**
+ * Test of global variable in Global Data.
+ */
+ @Test
+ public void globalDataTest() {
+ openView(IDELabel.View.GLOBAL_DATA);
+ assertTrue("Global data has wrong number of items. Expected 1 but was "
+ + bot.tree().getAllItems().length, bot.tree().getAllItems().length == 1);
+ assertTrue("Global data does not contain variable '" + GLOBAL_VARIABLE_NAME + "' with value '"
+ + GLOBAL_VARIABLE_VALUE + "'", bot.tree().getAllItems()[0].getText()
+ .contains(GLOBAL_VARIABLE_NAME + "= \"" + GLOBAL_VARIABLE_VALUE + "\""));
+ }
+
+ /**
+ * Test of Audit view.
+ */
+ @Test
+ public void auditTest() {
+ eclipse.finishDebug();
+ openView(IDELabel.View.AUDIT);
+ SWTBotView auditView = bot.viewByTitle(IDELabel.View.AUDIT);
+ assertEquals("Tree in Audit view should be empty, but it has " + auditView.bot().tree().getAllItems().length
+ + " items.", 0, auditView.bot().tree().getAllItems().length);
+ packageExplorer.selectTreeItem(PROJECT_NAME, null).contextMenu(IDELabel.Menu.REFRESH).click();
+ assertTrue("Log file '" + LOG_FILE + "' was not created.", packageExplorer.existsResource(PROJECT_NAME, LOG_FILE));
+ SWTBotTreeItem treeItem = packageExplorer.selectTreeItem(LOG_FILE, new String[] {PROJECT_NAME});
+ DragAndDropHelper.dragAndDropOnTo(treeItem.widget, auditView.getWidget());
+ SWTBotTreeItem[] auditTreeItems = auditView.bot().tree().getAllItems();
+ assertTrue("Tree in Audit view should not be empty, but it was.", auditTreeItems.length > 0);
+ assertFalse("Log file '" + LOG_FILE + "' was not loaded properly into Audit view.",
+ "The selected audit log is empty.".equals(auditTreeItems[0].getText()));
+ assertEquals("Tree in Audit view has wrong number of items.", 4, auditTreeItems.length);
+ int index = 0;
+ assertTrue("The first node of the audit view's tree does not contain right text.",
+ auditTreeItems[index].getText().startsWith("Object inserted"));
+ assertEquals("The first node has wrong number of items", 1, auditTreeItems[index].getItems().length);
+ assertTrue("Child node of the first node does not contain right text.",
+ auditTreeItems[index].getItems()[0].getText().startsWith("Activation created: Rule Hello World"));
+ index = 1;
+ assertTrue("The second node does not contain the right text.",
+ auditTreeItems[index].getText().startsWith("Activation executed: Rule Hello World"));
+ assertEquals("The second node has wrong number of items.", 1, auditTreeItems[index].getItems().length);
+ assertTrue("Child node of the second node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getText().startsWith("Object updated"));
+ assertEquals("Child node of the second node has wrong number of items.", 2, auditTreeItems[index].getItems()[0].getItems().length);
+ assertTrue("Child node of the second node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getItems()[0].getText().startsWith("Activation created: Rule GoodBye"));
+ assertTrue("Child node of the second node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getItems()[1].getText().startsWith("Activation created: Rule Bye Bye"));
+ index = 2;
+ assertTrue("The third node does not contain the right text.",
+ auditTreeItems[index].getText().startsWith("Activation executed: Rule Bye Bye"));
+ assertEquals("The third node has wrong number of items.", 1, auditTreeItems[index].getItems().length);
+ assertTrue("Child node of the third node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getText().startsWith("Object updated"));
+ assertEquals("Child node of the third node has wrong number of items.", 2, auditTreeItems[index].getItems()[0].getItems().length);
+ assertTrue("Child node of the third node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getItems()[0].getText().startsWith("Activation created: Rule Finish rule"));
+ assertTrue("Child node of the third node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getItems()[1].getText().startsWith("Activation cancelled: Rule GoodBye"));
+ index = 3;
+ assertTrue("The fourth node does not contain the right text.",
+ auditTreeItems[index].getText().startsWith("Activation executed: Rule Finish rule"));
+ assertEquals("The fourth node has wrong number of items.", 0, auditTreeItems[index].getItems().length);
+
+ auditView.toolbarButton("Clear Log").click();
+ assertEquals("Tree should be empty, but it was not.", 0, auditView.bot().tree().getAllItems().length);
+ }
+
+ /**
+ * Test of Working Memory view
+ */
+ @Test
+ public void workingMemoryTest() {
+ openView(IDELabel.View.WORKING_MEMORY);
+
+ SWTBotTree workingMemoryTree = bot.tree();
+ assertEquals("Working memory tree was expected to have exactly 1 root item, but it had "
+ + workingMemoryTree.getAllItems().length + " root items.", 1, workingMemoryTree.getAllItems().length);
+
+ String rootItemText = workingMemoryTree.getAllItems()[0].getText();
+ assertNotNull(rootItemText);
+ assertTrue("Root item of working memory tree had unexpected text: " + rootItemText,
+ rootItemText.contains("DroolsTest$Message"));
+
+ List<String> treeItemsStrings = workingMemoryTree.expandNode(rootItemText).getNodes();
+ final int EXPECTED_ITEMS = 6;
+ assertEquals("There should be " + EXPECTED_ITEMS + " items but was " + treeItemsStrings.size(),
+ EXPECTED_ITEMS, treeItemsStrings.size());
+
+ String messageString = "message= \"Goodbye cruel world\"";
+ String statusString = "status= 1";
+ String[] itemsStrings = new String[] {"BYE= 2", "FINISH= 3","GOODBYE= 1", "HELLO= 0", messageString, statusString};
+ Set<String> expectedWorkingMemorySet = new HashSet<String>(EXPECTED_ITEMS);
+ for (int i = 0; i < itemsStrings.length; i++) {
+ expectedWorkingMemorySet.add(itemsStrings[i]);
+ }
+ assertEquals(expectedWorkingMemorySet, getWorkingMemoryItems(rootItemText));
+
+ eclipse.resumeDebug();
+ expectedWorkingMemorySet.remove(messageString);
+ expectedWorkingMemorySet.remove(statusString);
+ messageString = "message= \"JustBye rule\"";
+ statusString = "status= 3";
+ expectedWorkingMemorySet.add(messageString);
+ expectedWorkingMemorySet.add(statusString);
+ assertEquals(expectedWorkingMemorySet, getWorkingMemoryItems(rootItemText));
+
+ eclipse.resumeDebug();
+ expectedWorkingMemorySet.clear();
+ showView(IDELabel.View.CONSOLE);
+ showView(IDELabel.View.WORKING_MEMORY);
+ assertEquals("Working memory view should be empty. Maybe it was not refreshed.",
+ expectedWorkingMemorySet, getWorkingMemoryItems(rootItemText));
+ }
+
+ /**
+ * Gets working memory items from Working Memory view.
+ *
+ * @param rootNode Root node name
+ * @return Set of strings representing working memory items.
+ */
+ private Set<String> getWorkingMemoryItems(final String rootNode) {
+ waitForStoppingDebugging();
+ showView(IDELabel.View.WORKING_MEMORY);
+ Set<String> stringSet = new HashSet<String>();
+
+ List<String> nodesStrings = null;
+ try {
+ nodesStrings = bot.tree().expandNode(rootNode).getNodes();
+ } catch (WidgetNotFoundException wnfe) {
+ return stringSet;
+ }
+
+ for (String s : nodesStrings) {
+ final int index = s.indexOf('(');
+ if (index > 0) {
+ s = s.substring(0, index);
+ }
+ stringSet.add(s.trim());
+ }
+
+ return stringSet;
+ }
+
+ /**
+ * Waits while debugging is stopped at breakpoint or finished.
+ */
+ private void waitForStoppingDebugging() {
+ for (int i = 0; i < 20; i++) {
+ SWTBotMenu resumeMenu = bot.menu(IDELabel.Menu.RUN).menu(IDELabel.Menu.RESUME);
+ if (resumeMenu.isEnabled()) {
+ return;
+ }
+ SWTBotMenu terminateMenu = bot.menu(IDELabel.Menu.RUN).menu(IDELabel.Menu.TERMINATE);
+ if (!resumeMenu.isEnabled() && !terminateMenu.isEnabled()) {
+ return;
+ }
+ bot.sleep(Timing.time1S());
+ }
+ }
+
+ /**
+ * Adds some pieces of code to DroolsTest.java
+ */
+ private void adjustDroolsTestFile() {
+ packageExplorer.show();
+ SWTBotEclipseEditor droolsTestEditor = packageExplorer.openFile(PROJECT_NAME,
+ JAVA_FILE_PATH, SAMPLE_TREE_NODE, JAVA_FILE).toTextEditor();
+ droolsTestEditor.insertText(46, 0, " public static final int BYE = 2;\n"
+ + " public static final int FINISH = 3;\n");
+ droolsTestEditor.insertText(20, 0, " ksession.setGlobal(\""
+ + GLOBAL_VARIABLE_NAME + "\", \"" + GLOBAL_VARIABLE_VALUE + "\");\n");
+ }
+
+ /**
+ * Adds some source code to Sample.drl
+ */
+ private void adjustSampleFile() {
+ packageExplorer.show();
+ SWTBotEclipseEditor sampleEditor = packageExplorer.openFile(PROJECT_NAME,
+ RULES_FILE_PATH, RULES_FILE).toTextEditor();
+ sampleEditor.insertText(20, 0, "\nrule \"Bye Bye\"\n"
+ + " when\n"
+ + " m : Message(status == Message.BYE || status == Message.GOODBYE, myMessage : message)\n"
+ + " then\n"
+ + " System.out.println(myMessage);\n"
+ + " System.out.println(globalString);\n"
+ + " m.setMessage(\"JustBye rule\");\n"
+ + " m.setStatus(Message.FINISH);\n"
+ + " update(m);\n"
+ + "end\n\n"
+ + "rule \"Finish rule\"\n"
+ + " when\n"
+ + " Message(status == Message.FINISH, myMessage : message)\n"
+ + " then\n"
+ + " System.out.println(myMessage);\n"
+ + " System.out.println(\"Finished\");\n"
+ + "end\n");
+ sampleEditor.insertText(16, 8, "m : ");
+ sampleEditor.insertText(19, 0, " m.setMessage(\"Bye Bye\");\n"
+ + " m.setStatus(Message.BYE);\n"
+ + " update(m);\n");
+ sampleEditor.insertText(4, 0, "global String globalString;\n\n");
+ eclipse.setNewBreakpoints(sampleEditor, 13, 35);
+ }
+
+ /**
+ * This method opens view with given title.
+ *
+ * @param viewTitle Title of desired view.
+ */
+ private void openView(final String viewTitle) {
+ checkViewTitleNull(viewTitle);
+
+ IView iView;
+ try {
+ iView = (IView) Class.forName("org.jboss.tools.ui.bot.ext.gen.ActionItem$View$Drools"
+ + viewTitle.replace(" ", "")).getField("LABEL").get(null);
+ } catch (Exception e) {
+ throw new IllegalArgumentException("It is not possible to get IView object for view with title '"
+ + viewTitle + "'.", e);
+ }
+
+ new SWTOpenExt(bot).viewOpen(iView);
+ }
+
+ /**
+ * Shows view with given title.
+ * It shows and focuses chosen view.
+ * If view is closed then it is opened.
+ *
+ * @param viewTitle Title of desired view.
+ */
+ private void showView(final String viewTitle) {
+ checkViewTitleNull(viewTitle);
+ boolean isViewOpened = false;
+ for (final SWTBotView view : bot.views()) {
+ if (viewTitle.equals(view.getTitle())) {
+ view.getWidget().getDisplay().syncExec(new Runnable() {
+ public void run() {
+ view.show();
+ view.setFocus();
+ }
+ });
+ isViewOpened = true;
+ break;
+ }
+ }
+ if (!isViewOpened) {
+ openView(viewTitle);
+ }
+ }
+
+ /**
+ * Checks if given string is null and if so this method
+ * throws IllegalArgumentException.
+ *
+ * @param viewTitle String to check.
+ */
+ private void checkViewTitleNull(final String viewTitle) {
+ if (viewTitle == null) {
+ throw new IllegalArgumentException("'viewTitle' cannot be null");
+ }
+ }
+
+ /**
+ * Gets list of current activations in working memory.
+ *
+ * @return List of current activations in working memory
+ */
+ private List<Activation> getActivationsFromAgenda() {
+ List<Activation> activations = new ArrayList<Activation>();
+ bot.tree().expandNode(bot.tree().getAllItems()[0].getText(), true);
+ for (SWTBotTreeItem item : bot.tree().getAllItems()[0].getItems()) {
+ Activation activation = new Activation(
+ parseIndex(item.getText()),
+ parseRuleName(item.getItems()[0].getText()));
+ activations.add(activation);
+ }
+ return activations;
+ }
+
+ /**
+ * Parses text for an activation index in working memory.
+ *
+ * @param text Text to parse
+ * @return index of activation in working memory
+ */
+ private int parseIndex(final String text) {
+ int beginIndex = text.indexOf('[');
+ int endIndex = text.indexOf(']');
+ if (beginIndex < 0 || endIndex < 0) {
+ throw new IllegalArgumentException("Given text is not parsable for index. Given text was '" + text + "'");
+ }
+ return Integer.valueOf(text.substring(beginIndex + 1, endIndex));
+ }
+
+ /**
+ * Parses rule name of activation in working memory.
+ *
+ * @param text Text to parse
+ * @return Rule name
+ */
+ private String parseRuleName(final String text) {
+ if (!text.startsWith("ruleName")) {
+ return null;
+ }
+ int i = text.indexOf('"');
+ return text.substring(i + 1, text.indexOf('"', i + 1));
+ }
+
+ /**
+ * This class is representation of activation in working memory.
+ *
+ * @author jgargula
+ */
+ private class Activation {
+ private int index = 0;
+ private String ruleName = null;
+
+ /**
+ * Constructor.
+ */
+ public Activation() {
+ super();
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param index Index of activation
+ */
+ public Activation(int index) {
+ this();
+ setIndex(index);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param index Index of activation
+ * @param ruleName Rule name of activation
+ */
+ public Activation(int index, String ruleName) {
+ this(index);
+ setRuleName(ruleName);
+ }
+
+ /**
+ * Getter for <code>index</code>.
+ *
+ * @return index of activation
+ */
+ public int getIndex() {
+ return index;
+ }
+
+ /**
+ * Setter for <code>index</code>.
+ *
+ * @param index Index to be set on the activation
+ */
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ /**
+ * Getter for <code>ruleName</code>.
+ *
+ * @return rule name of activation
+ */
+ public String getRuleName() {
+ return ruleName;
+ }
+
+ /**
+ * Setter for <code>ruleName</code>.
+ * @param ruleName
+ */
+ public void setRuleName(String ruleName) {
+ this.ruleName = ruleName;
+ }
+
+ /**
+ * @return String representation of activation.
+ */
+ public String toString() {
+ return "Activation [index=" + getIndex() + "; ruleName=\"" + getRuleName() + "\"]";
+ }
+
+ /**
+ * Hash code.
+ */
+ @Override
+ public int hashCode() {
+ return 31 + ((ruleName == null) ? 0 : ruleName.hashCode());
+ }
+
+ /**
+ * Two activations are equal if they have the same rule name.
+ * Indicies are ignored while comparing.
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || !(obj instanceof Activation)) {
+ return false;
+ }
+ if (this == obj) {
+ return true;
+ }
+ Activation other = (Activation) obj;
+ if (getRuleName() == null) {
+ if (other.getRuleName() != null) {
+ return false;
+ }
+ }
+ if (getRuleName() == null && other.getRuleName() == null) {
+ return true;
+ }
+ return getRuleName().equals(other.getRuleName());
+ }
+ }
+}
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,175 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import java.awt.event.KeyEvent;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.helper.ImageHyperlinkHelper;
+import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
+import org.jboss.tools.ui.bot.ext.parts.SWTBotEditorExt;
+import org.jboss.tools.ui.bot.ext.types.EntityType;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.junit.Test;
+/**
+ * Tests Guided Drools Rule Editor
+ * @author Vladimir Pakan
+ *
+ */
+public class GuidedDroolsRulesEditorTest extends SWTTestExt{
+ private static final String DROOLS_PACKAGE_FILE = "drools.package";
+ /**
+ * Tests Guided Drools Rule Editor
+ */
+ @Test
+ public void testGuidedDroolsRulesEditorTest() {
+ createGuidedDroolsRule(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ editDroolsPackageFile();
+ addGuidedDroolsRuleCondition(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ removeGuidedDroolsRuleCondition(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ }
+ /**
+ * Creates Guided Drools Rule
+ * @param guidedDroolsRuleName
+ */
+ private void createGuidedDroolsRule(String guidedDroolsRuleName){
+ packageExplorer.show();
+ SWTBotTreeItem tiRules = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
+
+ tiRules.select();
+ eclipse.createNew(EntityType.GUIDED_DROOLS_RULE);
+ bot.textWithLabel(IDELabel.NewGuidedDroolsRuleDialog.FILE_NAME).setText(guidedDroolsRuleName);
+ eclipse.selectTreeLocation(DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ "src",
+ "main",
+ "rules");
+ bot.button(IDELabel.Button.FINISH).click();
+ bot.sleep(Timing.time1S());
+ tiRules.expand();
+ // Test if new Drools Rule is within package tree view
+ assertTrue("New Guided Drools Rule was not created properly. It's not present within Package Explorer",
+ SWTEclipseExt.containsTreeItemWithLabel(tiRules, guidedDroolsRuleName));
+ // Test if new Drools Rule is opened in editor
+ assertTrue("New Guided Drools Rule was not created properly. File " + guidedDroolsRuleName + " is not opened in editor",
+ SWTEclipseExt.existEditorWithLabel(bot,guidedDroolsRuleName));
+ // Test if drools.package file is within package tree view
+ assertTrue("New Guided Drools Rule was not created properly. It's not present within Package Explorer",
+ SWTEclipseExt.containsTreeItemWithLabel(tiRules,
+ GuidedDroolsRulesEditorTest.DROOLS_PACKAGE_FILE));
+ }
+ /**
+ * Edits drools.package file.
+ * Actually only adds import java.util.List to file
+ */
+ private void editDroolsPackageFile(){
+ packageExplorer.show();
+ SWTBotEclipseEditor droolsPackageEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ GuidedDroolsRulesEditorTest.DROOLS_PACKAGE_FILE).toTextEditor();
+ droolsPackageEditor.setText(droolsPackageEditor.getText() +
+ "\nimport java.util.List;");
+ droolsPackageEditor.save();
+ droolsPackageEditor.close();
+ }
+
+ private void addGuidedDroolsRuleCondition(String guidedDroolsRuleName){
+ packageExplorer.show();
+ SWTBotEclipseEditor droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
+ SWTBot droolsEditorBot = droolsEditor.bot();
+ droolsEditorBot.toolbarButton().click();
+ SWTBotShell dialogShell = droolsEditorBot.shell(IDELabel.GuidedDroolsRuleEditor.WHEN_ADD_DIALOG_TITLE);
+ dialogShell.activate();
+ dialogShell.bot().comboBoxWithLabel(IDELabel.GuidedDroolsRuleEditor.WHEN_ADD_FACT_COMBO)
+ .setSelection("List");
+ ImageHyperlinkHelper
+ .imageHyperlinkWithTooltip(droolsEditorBot,
+ IDELabel.GuidedDroolsRuleEditor.ADD_FIELD_TO_THIS_CONDITION_TOOLTIP)
+ .click();
+ dialogShell = droolsEditorBot.shell(IDELabel.GuidedDroolsRuleEditor.UPDATE_CONSTRAINTS_DIALOG_TITLE);
+ dialogShell.activate();
+ dialogShell.bot().comboBox()
+ .setSelection(IDELabel.GuidedDroolsRuleEditor.ADD_RESTRICTION_ON_A_FIELD_COMBO_VALUE);
+ droolsEditorBot.comboBox()
+ .setSelection(IDELabel.GuidedDroolsRuleEditor.WHEN_COMBO_CONSTRAINTS_VALUE);
+ ImageHyperlinkHelper
+ .imageHyperlinkWithTooltip(droolsEditorBot,
+ IDELabel.GuidedDroolsRuleEditor.CHOOSE_VALUE_EDITOR_TYPE_TOOLTIP)
+ .click();
+ dialogShell = droolsEditorBot.shell(IDELabel.GuidedDroolsRuleEditor.SELECT_VALUE_EDITOR_TYPE_DIALOG_TITLE);
+ dialogShell.activate();
+ dialogShell.bot().comboBoxWithLabel(IDELabel.GuidedDroolsRuleEditor.SELECT_VALUE_EDITOR_TYPE_COMBO_LABEL)
+ .setSelection(IDELabel.GuidedDroolsRuleEditor.SELECT_VALUE_EDITOR_TYPE_COMBO_VALUE);
+ droolsEditorBot.comboBox(1).setSelection(IDELabel.GuidedDroolsRuleEditor.FIELD_VALUE_COMBO_VALUE);
+ droolsEditor.save();
+ droolsEditor.close();
+ droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
+ SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ ruleEditor.selectPage(2);
+ String editorContent = droolsEditor.getText();
+ assertTrue(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME +
+ " has to contain text: List( empty == true )\n" +
+ "but it doesn't.\n" +
+ "It contains this text: " + editorContent,
+ editorContent.replaceAll(" ","").indexOf("List(empty==true)") > 0);
+ }
+ /**
+ * Removes Drools Rule Condition from Guided Drools Rule
+ * @param guidedDroolsRuleName
+ */
+ private void removeGuidedDroolsRuleCondition(String guidedDroolsRuleName){
+ packageExplorer.show();
+ SWTBotEclipseEditor droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
+ SWTBot droolsEditorBot = droolsEditor.bot();
+ SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ ruleEditor.selectPage(0);
+ ImageHyperlinkHelper
+ .imageHyperlinkWithTooltip(droolsEditorBot,
+ IDELabel.GuidedDroolsRuleEditor.REMOVE_THIS_CONDITION_TOOLTIP)
+ .click();
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ bot.sleep(Timing.time1S());
+ droolsEditor.save();
+ droolsEditor.close();
+ droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
+ ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ ruleEditor.selectPage(2);
+ String editorContent = droolsEditor.getText();
+ assertTrue(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME +
+ " has to contain textjak e:\nwhen\nthen\n" +
+ "but it doesn't.\n" +
+ "It contains this text: " + editorContent,
+ ruleEditor.getTextOnLine(2).trim().equals("when") &&
+ ruleEditor.getTextOnLine(3).trim().equals("then"));
+ }
+
+}
\ No newline at end of file
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,559 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import static org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable.syncExec;
+
+import java.awt.event.KeyEvent;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory;
+import org.eclipse.swtbot.swt.finder.results.StringResult;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.hamcrest.Matcher;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.SWTUtilExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.config.Annotations.Require;
+import org.jboss.tools.ui.bot.ext.config.Annotations.Server;
+import org.jboss.tools.ui.bot.ext.config.Annotations.ServerState;
+import org.jboss.tools.ui.bot.ext.config.requirement.PrepareViews;
+import org.jboss.tools.ui.bot.ext.config.requirement.RequirementNotFulfilledException;
+import org.jboss.tools.ui.bot.ext.config.requirement.StartServer;
+import org.jboss.tools.ui.bot.ext.config.requirement.StopServer;
+import org.jboss.tools.ui.bot.ext.gen.ActionItem.View.GuvnorGuvnorResourceHistory;
+import org.jboss.tools.ui.bot.ext.helper.ContextMenuHelper;
+import org.jboss.tools.ui.bot.ext.helper.DragAndDropHelper;
+import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
+import org.jboss.tools.ui.bot.ext.parts.SWTBotBrowserExt;
+import org.jboss.tools.ui.bot.ext.types.EntityType;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.JobName;
+import org.jboss.tools.ui.bot.ext.types.PerspectiveType;
+import org.jboss.tools.ui.bot.ext.view.GuvnorRepositories;
+import org.junit.Test;
+/**
+ * Tests Guvnor Repositories
+ * @author Vladimir Pakan
+ *
+ */
+@Require(server = @Server(state = ServerState.Present),
+clearProjects=false,
+clearWorkspace=false,
+runOnce=true,
+perspective="Guvnor Repository Exploring"
+)
+public class GuvnorRepositoriesTest extends SWTTestExt{
+ @SuppressWarnings("unused")
+ private static final Logger log = Logger.getLogger(GuvnorRepositoriesTest.class);
+ private static final String GUVNOR_TEST_FILE = "Dummy rule.drl";
+ private static final String GUVNOR_REPOSITORY_IMPORT_TEST_FILE = "Underage.brl";
+ private static final String GUVNOR_REPOSITORY_HISTORY_TEST_FILE = "MortgageModel.model.drl";
+ private static final String GUVNOR_USER_NAME = "admin";
+ private static final String GUVNOR_PASSWORD = "admin";
+ private GuvnorRepositories guvnorRepositories = new GuvnorRepositories();
+
+ /**
+ * Tests Guvnor Repositories
+ */
+ @Test
+ public void testGuvnorRepositories() {
+ startGuvnor();
+ addGuvnorRepository();
+ deleteGuvnorRepository();
+ addGuvnorRepository();
+ openGuvnorConsole();
+ drillIntoFunctionalityCheck();
+ browseGuvnorRepository(GuvnorRepositoriesTest.GUVNOR_TEST_FILE);
+ guvnorFunctionalityCheck(GuvnorRepositoriesTest.GUVNOR_TEST_FILE,
+ DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME,
+ GuvnorRepositoriesTest.GUVNOR_REPOSITORY_IMPORT_TEST_FILE);
+ repositoryHistoryCheck(GuvnorRepositoriesTest.GUVNOR_REPOSITORY_HISTORY_TEST_FILE);
+ stopGuvnor();
+ }
+
+ /**
+ * Adds Guvnor Repository
+ */
+ private void addGuvnorRepository(){
+ eclipse.openPerspective(PerspectiveType.GUVNOR_REPOSITORY_EXPLORING);
+ SWTBot guvnorRepositoriesBot = guvnorRepositories.show().bot();
+ SWTUtilExt.getViewToolbarButtonWithTooltip(
+ guvnorRepositories.show(),
+ IDELabel.GuvnorRepositories.ADD_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ eclipse.waitForShell("");
+ SWTBot addGuvnorRepositoryDialog = guvnorRepositoriesBot.activeShell().bot();
+ String guvnorRepositoryUrl = DroolsAllBotTests.getGuvnorRepositoryUrl();
+ if (guvnorRepositoryUrl != null && guvnorRepositoryUrl.length() > 0){
+ addGuvnorRepositoryDialog.textWithLabel(IDELabel.GuvnorAddRepositoryDialog.REPOSITORY)
+ .setText(guvnorRepositoryUrl);
+ }
+ addGuvnorRepositoryDialog.button(IDELabel.Button.FINISH).click();
+ assertTrue("Guvnor repository was not created properly",
+ guvnorRepositoriesBot.tree().rowCount() == 1);
+ }
+ /**
+ * Deletes Guvnor Repostiry
+ */
+ private void deleteGuvnorRepository(){
+ SWTBot guvnorRepositoriesBot = guvnorRepositories.show().bot();;
+ SWTBotTree guvnorRepositoryTree = guvnorRepositoriesBot.tree();
+ guvnorRepositoryTree.select(0);
+ SWTUtilExt.getViewToolbarButtonWithTooltip(
+ guvnorRepositories.show(),
+ IDELabel.GuvnorRepositories.REMOVE_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ guvnorRepositoriesBot.shell(IDELabel.GuvnorRepositories.REMOVE_GUVNOR_REPOSITORY_DIALOG_TITLE)
+ .activate();
+ bot.button(IDELabel.Button.OK).click();
+ assertTrue("Guvnor repository was not deleted properly",
+ guvnorRepositoriesBot.tree().rowCount() == 0);
+ }
+
+ /**
+ * Opens Guvnor Console
+ */
+ private void openGuvnorConsole(){
+ SWTBot guvnorRepositoriesBot = guvnorRepositories.show().bot();
+ SWTBotTree guvnorRepositoryTree = guvnorRepositoriesBot.tree();
+ SWTBotTreeItem tiGuvnorRepository = guvnorRepositoryTree.getAllItems()[0];
+ ContextMenuHelper.prepareTreeItemForContextMenu(guvnorRepositoryTree, tiGuvnorRepository);
+ new SWTBotMenu(ContextMenuHelper.getContextMenu(guvnorRepositoryTree,
+ IDELabel.Menu.OPEN_GUVNOR_CONSOLE, false)).click();
+ bot.sleep(Timing.time5S());
+ SWTBotBrowserExt browser = bot.browserByTitle(IDELabel.GuvnorConsole.GUVNOR_CONSOLE_TITLE);
+ browser.setInputTextViaJavaScript(GuvnorRepositoriesTest.GUVNOR_USER_NAME, 1, bot);
+ browser.setInputTextViaJavaScript(GuvnorRepositoriesTest.GUVNOR_PASSWORD, 2, bot);
+ browser.clickOnButtonViaJavaScript(0, bot);
+ browser.clickOnButtonViaJavaScript(IDELabel.GuvnorConsole.BUTTON_YES_INSTALL_SAMPLES, bot);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ bot.sleep(Timing.time30S()); // so long because of NFS filesystem on remote machines
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ }
+ /**
+ * Browse Guvnor Repository and open fileToOpenFile
+ * @param fileToOpen
+ */
+ private void browseGuvnorRepository(String fileToOpen){
+
+ guvnorRepositories.show();
+
+ guvnorRepositories.openFile(Timing.time3S(),DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
+ fileToOpen);
+
+ assertTrue("File from Guvnor Repository was not opened properly. File " + fileToOpen + " is not opened in editor",
+ SWTEclipseExt.existEditorWithLabel(bot,fileToOpen + " (Read only)"));
+
+ }
+ /**
+ * Starts Guvnor AS
+ */
+ private void startGuvnor(){
+ try {
+ new StartServer().fulfill();
+ new PrepareViews().fulfill();
+ } catch (RequirementNotFulfilledException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ /**
+ * Stops Guvnor AS
+ */
+ private void stopGuvnor(){
+ try {
+ new StopServer().fulfill();
+ } catch (RequirementNotFulfilledException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ /**
+ * Imports file with fileName to Drools project and check update and commit Guvnor functionality
+ * @param fileName
+ * @param sampleFileName
+ * @param importFileName
+ */
+ private void guvnorFunctionalityCheck(String fileName, String sampleFileName, String importFileName){
+ eclipse.openPerspective(PerspectiveType.JAVA);
+ guvnorRepositories.show().bot();
+ SWTBotTreeItem tiGuvnorFile = guvnorRepositories.selectTreeItem(Timing.time3S(),fileName,
+ new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM});
+ tiGuvnorFile.select();
+ SWTBot packageExplorerBot = packageExplorer.show().bot();
+ SWTBotTreeItem tiDroolRuleDir = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
+ DragAndDropHelper.dragAndDropOnTo(tiGuvnorFile.widget,tiDroolRuleDir.widget);
+ bot.waitForShell(IDELabel.Shell.COPY_FILE_FROM_GUVNOR_TO_PACKAGE_EXPLORER).activate();
+ bot.button(IDELabel.Button.OK).click();
+ SWTBotTree packageExplorerTree = packageExplorerBot.tree();
+ // File is renamed because there is appended Guvnor info to Tree Item Label
+ // So we need to get real label of Tree Item and use it later
+ SWTBotTreeItem tiDroolRuleFile = SWTEclipseExt.getTreeItemOnPathStartsWith(packageExplorerBot,
+ packageExplorerTree,
+ Timing.time1S(),
+ fileName,
+ new String[]{DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
+ SWTBotEditor editor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ tiDroolRuleFile.getText());
+
+ assertTrue("File moved from Guvnor Repository to Drools project was not opened properly. File " + fileName + " is not opened in editor",
+ SWTEclipseExt.existEditorWithLabel(bot,fileName));
+ // Test Update from Guvnor Repository
+ final String changeText = "#$%SWTBot Change#$%";
+ final String originalEditorText = editor.toTextEditor().getText();
+ editor.toTextEditor().insertText(0, 0, changeText);
+ editor.save();
+ bot.sleep(Timing.time1S());
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiDroolRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_UPDATE);
+ bot.sleep(Timing.time5S());
+ assertTrue("Update from Guvnor Repository was not successful. File " + fileName + " has not updated content.",
+ editor.toTextEditor().getText().equals(originalEditorText));
+ // Test commit to Guvnor Repository
+ editor.toTextEditor().insertText(0, 0, changeText);
+ editor.save();
+ bot.sleep(Timing.time1S());
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiDroolRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_COMMIT);
+ bot.sleep(Timing.time5S());
+ editor.close();
+ editor = guvnorRepositories.openFile(Timing.time2S(),DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
+ fileName);
+ String editorText = GuvnorRepositoriesTest.trimEditorText(editor.toTextEditor().getText());
+ String expectedEditorText = GuvnorRepositoriesTest.trimEditorText(changeText + originalEditorText);
+ assertTrue("Commit to Guvnor Repository was not successful. File " + fileName + " was not commited properly." +
+ "\nIt has content: " + editorText +
+ "\nExpected content: " + expectedEditorText,
+ editorText.equals(expectedEditorText));
+ // Test Add To Repository
+ SWTBotTreeItem tiSampleFile = packageExplorer.selectTreeItem(sampleFileName,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiSampleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_ADD);
+ eclipse.waitForShell("");
+ SWTBotShell addToGuvnorShell = packageExplorerBot.activeShell();
+ SWTBot addToGuvnorDialogBot = addToGuvnorShell.bot();
+ addToGuvnorDialogBot.button(IDELabel.Button.NEXT).click();
+ SWTEclipseExt.getTreeItemOnPath(addToGuvnorDialogBot,
+ addToGuvnorDialogBot.tree(),
+ Timing.time3S(),
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
+ new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM})
+ .select();
+ bot.sleep(Timing.time5S());
+ addToGuvnorDialogBot.button(IDELabel.Button.FINISH).click();
+ eclipse.waitForClosedShell(addToGuvnorShell);
+ boolean isAddedToGuvnorRepository = false;
+ try{
+ guvnorRepositories.selectTreeItem(Timing.time2S(),sampleFileName,
+ new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM});
+ isAddedToGuvnorRepository = true;
+ } catch (WidgetNotFoundException wnfe){
+ isAddedToGuvnorRepository = false;
+ }
+
+ assertTrue("File " + sampleFileName + " was not added to Guvnor Repository.",
+ isAddedToGuvnorRepository);
+ // Test Deleting from Guvnor Repository file is already selected in Guvnor Repository Tree
+ packageExplorerBot = packageExplorer.show().bot();
+ packageExplorerTree = packageExplorerBot.tree();
+ packageExplorerBot.sleep(Timing.time2S());
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiSampleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_DELETE);
+ SWTBot dialogBot = packageExplorerBot.shell(IDELabel.Shell.CONFIRM_DELETE).activate().bot();
+ dialogBot.button(IDELabel.Button.OK).click();
+ packageExplorerBot.sleep(Timing.time2S());
+ boolean isRemovedFromGuvnorRepository = false;
+ try{
+ guvnorRepositories.selectTreeItem(Timing.time2S(),sampleFileName,
+ new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM});
+ isRemovedFromGuvnorRepository = false;
+ } catch (WidgetNotFoundException wnfe){
+ isRemovedFromGuvnorRepository = true;
+ }
+ assertTrue("File " + sampleFileName + " was not removed from Guvnor Repository.",
+ isRemovedFromGuvnorRepository);
+ // Import File From Repository
+ eclipse.createNew(EntityType.RESOURCES_FROM_GUVNOR);
+ bot.button(IDELabel.Button.NEXT).click();
+ bot.sleep(Timing.time2S());
+ SWTEclipseExt.getTreeItemOnPath(
+ bot,
+ bot.tree(),
+ Timing.time5S(),
+ importFileName,
+ new String[] {
+ DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM }).select();
+ bot.button(IDELabel.Button.NEXT).click();
+ SWTEclipseExt.getTreeItemOnPath(bot,
+ bot.tree(),
+ Timing.time1S(),
+ "rules",
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,"src","main"}).select();
+ bot.button(IDELabel.Button.FINISH).click();
+ util.waitForJobs(Timing.time5S(),JobName.BUILDING_WS);
+ bot.sleep(Timing.time1S());
+ packageExplorerBot = packageExplorer.show().bot();
+ packageExplorerTree = packageExplorerBot.tree();
+ boolean isAddedFromGuvnorRepository = false;
+ SWTBotTreeItem tiImportRuleFile = null;
+ try{
+ tiImportRuleFile = SWTEclipseExt.getTreeItemOnPathStartsWith(packageExplorerBot,
+ packageExplorerTree,
+ Timing.time1S(),
+ importFileName,
+ new String[]{DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
+ isAddedFromGuvnorRepository = true;
+ } catch (WidgetNotFoundException wnfe){
+ isAddedFromGuvnorRepository = false;
+ }
+ assertTrue("File " + importFileName + " was not added from Guvnor Repository.",
+ isAddedFromGuvnorRepository);
+
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiImportRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_DISCONNECT);
+ bot.sleep(Timing.time1S());
+ // name of the file has to be without Guvnor information appended to end of file name
+ // when imported from Guvnor repository
+ assertTrue("File " + importFileName + " was not disconnected from Guvnor Repository.",
+ tiImportRuleFile.getText().trim().equals(importFileName));
+ }
+ private void drillIntoFunctionalityCheck(){
+ SWTBotView guvnorReposioryView = guvnorRepositories.show();
+ SWTBotTreeItem tiRoot = guvnorRepositories.selectTreeItem(DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),null)
+ .doubleClick();
+ bot.sleep(Timing.time5S());
+ SWTBotShell activeShell = bot.activeShell();
+ SWTBot dialogBot = null;
+ if (activeShell.getText().length() != 0){
+ dialogBot = bot.shell("").activate().bot();
+ }
+ else{
+ dialogBot = activeShell.bot();
+ }
+
+ dialogBot.textWithLabel(IDELabel.GuvnorConsoleLoginDialog.USER_NAME).setText(
+ GuvnorRepositoriesTest.GUVNOR_USER_NAME);
+ dialogBot.textWithLabel(IDELabel.GuvnorConsoleLoginDialog.PASSWORD).setText(
+ GuvnorRepositoriesTest.GUVNOR_PASSWORD);
+ dialogBot.button(IDELabel.Button.OK).click();
+ tiRoot.expand();
+ bot.sleep(Timing.time2S());
+ tiRoot.select(IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM);
+ SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
+ IDELabel.GuvnorRepositories.GO_INTO_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ SWTBot guvnorRepositoryBot = guvnorReposioryView.bot();
+ SWTBotTree guvnorRepositoryTree = guvnorRepositoryBot.tree();
+ guvnorRepositoryBot.sleep(Timing.time3S());
+ assertTrue("Guvnor repository Go Into functionality doesn't work properly.\n" +
+ "Expected First Tree Item in Guvnor Repository is " + IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM +
+ "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
+ IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM.equals(guvnorRepositoryTree.getAllItems()[0].getText()));
+
+ guvnorRepositories.selectTreeItem(Timing.time2S(), IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
+ null);
+ SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
+ IDELabel.GuvnorRepositories.GO_INTO_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ guvnorRepositoryBot.sleep(Timing.time3S());
+ assertTrue("Guvnor repository Go Into functionality doesn't work properly.\n" +
+ "Expected First Tree Item in Guvnor Repository is " + IDELabel.GuvnorRepositories.APPLICANTDSL_DSL_TREE_ITEM +
+ "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
+ IDELabel.GuvnorRepositories.APPLICANTDSL_DSL_TREE_ITEM.equals(guvnorRepositoryTree.getAllItems()[0].getText()));
+
+ SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
+ IDELabel.GuvnorRepositories.BACK_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ guvnorRepositoryBot.sleep(Timing.time3S());
+ assertTrue("Guvnor repository Back functionality doesn't work properly.\n" +
+ "Expected First Tree Item in Guvnor Repository is " + IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM +
+ "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
+ IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM.equals(guvnorRepositoryTree.getAllItems()[0].getText()));
+
+ SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
+ IDELabel.GuvnorRepositories.HOME_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ guvnorRepositoryBot.sleep(Timing.time3S());
+ assertTrue("Guvnor repository Home functionality doesn't work properly.\n" +
+ "Expected First Tree Item in Guvnor Repository is " + DroolsAllBotTests.getGuvnorRepositoryRootTreeItem() +
+ "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
+ DroolsAllBotTests.getGuvnorRepositoryRootTreeItem().equals(guvnorRepositoryTree.getAllItems()[0].getText()));
+ }
+ /**
+ * Check Repository History Functionality
+ * @param testFileName
+ */
+ private void repositoryHistoryCheck (String testFileName){
+ // Import File From Repository
+ eclipse.createNew(EntityType.RESOURCES_FROM_GUVNOR);
+ bot.button(IDELabel.Button.NEXT).click();
+ SWTEclipseExt.getTreeItemOnPath(
+ bot,
+ bot.tree(),
+ Timing.time5S(),
+ testFileName,
+ new String[] {
+ DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM }).select();
+ bot.button(IDELabel.Button.NEXT).click();
+ SWTEclipseExt.getTreeItemOnPath(bot,
+ bot.tree(),
+ Timing.time1S(),
+ "rules",
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,"src","main"}).select();
+ bot.button(IDELabel.Button.FINISH).click();
+ util.waitForJobs(Timing.time5S(),JobName.BUILDING_WS);
+ bot.sleep(Timing.time1S());
+ SWTBot packageExplorerBot = packageExplorer.show().bot();
+ SWTBotTree packageExplorerTree = packageExplorerBot.tree();
+ // File is renamed because there is appended Guvnor info to Tree Item Label
+ // So we need to get real label of Tree Item and use it later
+ SWTBotTreeItem tiTestRuleFile = SWTEclipseExt.getTreeItemOnPathStartsWith(packageExplorerBot,
+ packageExplorerTree,
+ Timing.time1S(),
+ testFileName,
+ new String[]{DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
+ SWTBotEditor editor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ tiTestRuleFile.getText());
+ // change test file
+ String addedChange = "SWTBOT Change!@#$asdfghjkl)(*&^";
+ editor.toTextEditor().insertText(0,0,addedChange);
+ editor.save();
+ bot.sleep(Timing.time1S());
+ // commit changes
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_COMMIT);
+ bot.sleep(Timing.time5S());
+ // check history
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_SHOW_HISTORY);
+ bot.sleep(Timing.time5S());
+ SWTBotView guvnorResourceHistoryView = open.viewOpen(GuvnorGuvnorResourceHistory.LABEL);
+ SWTBot guvnorResourceHistoryBot = guvnorResourceHistoryView.bot();
+ SWTBotTable guvnorResourceHistoryTable = guvnorResourceHistoryView.bot().table();
+ assertTrue("Guvnor Resource History table for file " + testFileName +
+ " has to contain at least one record but is empty.",
+ guvnorResourceHistoryTable.rowCount() > 0);
+ // Compare Revisions
+ String secondAddedChange = "222222" + addedChange;
+ editor.toTextEditor().insertText(0,0,secondAddedChange);
+ editor.saveAndClose();
+ bot.sleep(Timing.time1S());
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_COMPARE_WITH_VERSION);
+ eclipse.waitForShell("");
+ guvnorResourceHistoryBot.activeShell().bot().button(IDELabel.Button.OK).click();
+ SWTBotEditor compareEditor = bot.editorByTitle("Compare");
+ Matcher<StyledText> widgetOfTypeMatcher = WidgetMatcherFactory.widgetOfType(StyledText.class);
+ final List<?> styledTexts = compareEditor.bot().widgets(widgetOfTypeMatcher,compareEditor.getWidget());
+ String newVersionEditorText = syncExec(new StringResult() {
+ public String run() {
+ return ((StyledText)styledTexts.get(0)).getText();
+ }
+ });
+ String revisionEditorText = syncExec(new StringResult() {
+ public String run() {
+ return ((StyledText)styledTexts.get(1)).getText();
+ }
+ });
+ compareEditor.close();
+ assertTrue("Actual version of file opened within compare editor has wrong content.\n" +
+ "Content should start with " + secondAddedChange +
+ "\n but is " + newVersionEditorText,newVersionEditorText.startsWith(secondAddedChange));
+ assertTrue("File stored in Guvnor Repository opened within compare editor has wrong content.\n" +
+ "Content should start with " + addedChange +
+ "\n but is " + revisionEditorText,revisionEditorText.startsWith(addedChange));
+ // Open Revision
+ guvnorResourceHistoryView.show();
+ guvnorResourceHistoryTable.setFocus();
+ bot.sleep(Timing.time1S());
+ guvnorResourceHistoryTable.select(0);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ bot.sleep(Timing.time1S());
+ SWTBotEditor revisonFileEditor = eclipse.editorStartsWith(testFileName);
+ String revisionFileText = revisonFileEditor.toTextEditor().getText();
+ revisonFileEditor.close();
+ assertTrue("File stored in Guvnor Repository has wrong content.\n" +
+ "Content should start with " + addedChange +
+ "\n but is " + revisionFileText,revisionFileText.startsWith(addedChange));
+ // Switch to version
+ editor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ tiTestRuleFile.getText());
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_SWITCH_TO_VERSION);
+ eclipse.waitForShell("");
+ guvnorResourceHistoryBot.activeShell().bot().button(IDELabel.Button.OK).click();
+ bot.sleep(Timing.time3S());
+ String editorText = editor.toTextEditor().getText();
+ assertTrue("Switched version of file has wrong content.\n" +
+ "Content should start with " + addedChange +
+ "\n but is " + editorText,editorText.startsWith(addedChange));
+ }
+
+ private static String trimEditorText (String textToTrim){
+
+ return textToTrim.replaceAll("\n", "").replaceAll("\t", "").replaceAll("\r", "").replaceAll(" ", "");
+
+ }
+
+}
\ No newline at end of file
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,167 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import java.io.File;
+
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotCheckBox;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.helper.FileRenameHelper;
+import org.jboss.tools.ui.bot.ext.types.EntityType;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.ViewType;
+import org.jboss.tools.ui.bot.ext.view.ProblemsView;
+import org.jboss.tools.ui.bot.test.WidgetVariables;
+import org.junit.Test;
+/**
+ * Test managing of Drools Project
+ * @author Vladimir Pakan
+ *
+ */
+public class ManageDroolsProject extends SWTTestExt{
+ /**
+ * Test manage Drools project
+ */
+ private static final String RENAMED_DROOLS_PROJECT = DroolsAllBotTests.DROOLS_PROJECT_NAME + "-renamed";
+
+ @Test
+ public void testManageDroolsProject() {
+ createDroolsProjectTest (DroolsAllBotTests.DROOLS_PROJECT_NAME);
+ runNewDroolsProject (DroolsAllBotTests.DROOLS_PROJECT_NAME);
+ renameDroolsProject (DroolsAllBotTests.DROOLS_PROJECT_NAME, ManageDroolsProject.RENAMED_DROOLS_PROJECT);
+ deleteDroolsProject (ManageDroolsProject.RENAMED_DROOLS_PROJECT);
+ createDroolsProjectTest (DroolsAllBotTests.DROOLS_PROJECT_NAME);
+ }
+
+ public static void createDroolsProject(String droolsProjectName) {
+ eclipse.showView(ViewType.PACKAGE_EXPLORER);
+ eclipse.createNew(EntityType.DROOLS_PROJECT);
+ bot.textWithLabel(IDELabel.NewDroolsProjectDialog.NAME).setText(droolsProjectName);
+ bot.button(IDELabel.Button.NEXT).click();
+ // check all buttons
+ int index = 0;
+ boolean checkBoxExists = true;
+ while (checkBoxExists){
+ try{
+ SWTBotCheckBox checkBox = bot.checkBox(index);
+ if (!checkBox.isChecked()){
+ checkBox.click();
+ }
+ index++;
+ }catch (WidgetNotFoundException wnfe){
+ checkBoxExists = false;
+ }catch (IndexOutOfBoundsException ioobe){
+ checkBoxExists = false;
+ }
+ }
+ 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(CODE_COMPATIBILITY);
+ bot.button(IDELabel.Button.FINISH).click();
+ }
+
+ /**
+ * Creates new Drools project
+ * @param droolsProjectName
+ */
+ private void createDroolsProjectTest(String droolsProjectName){
+ createDroolsProject(droolsProjectName);
+ SWTTestExt.util.waitForAll(30*1000L);
+ bot.waitForNumberOfShells(1, 60);
+ assertTrue("Project "
+ + droolsProjectName
+ + " was not created properly.",SWTEclipseExt.isProjectInPackageExplorer(bot,droolsProjectName));
+ String projectPath = File.separator + droolsProjectName;
+ SWTBotTreeItem[] errors = ProblemsView.getFilteredErrorsTreeItems(bot,null ,projectPath, null,null);
+ assertTrue("Project "
+ + droolsProjectName
+ + " was not created properly. There are these errors: "
+ + SWTEclipseExt.getFormattedTreeNodesText(errors),
+ errors == null || errors.length == 0);
+ SWTBotTreeItem[] warnings = ProblemsView.getFilteredWarningsTreeItems(bot,null ,projectPath, null,null);
+ assertTrue("Project "
+ + droolsProjectName
+ + " was not created properly. There are these warnings: "
+ + SWTEclipseExt.getFormattedTreeNodesText(warnings),
+ warnings == null || warnings.length == 0);
+
+ }
+ /**
+ * Runs newly created Drools project and check result
+ * @param droolsProjectName
+ */
+ private void runNewDroolsProject(String droolsProjectName){
+ console.clearConsole();
+ bot.sleep(5000L);
+
+ SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(DroolsAllBotTests.DROOLS_TEST_JAVA_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
+
+ eclipse.runTreeItemAsJavaApplication(tiTestFile);
+
+ String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+
+ assertTrue("DroolsTest.java class didn't run properly.\n" +
+ "Console Text was: " + consoleText + "\n" +
+ "Expected console text is: " + "Hello World\nGoodbye cruel world\n",
+ "Hello World\nGoodbye cruel world\n".equals(consoleText));
+ }
+ /**
+ * Renames Drools project and check result
+ * @param droolsProjectName
+ * @param renamedProjectName
+ */
+ private void renameDroolsProject(String droolsProjectName, String renamedProjectName){
+ packageExplorer.show();
+
+ bot.sleep(TIME_1S);
+
+ SWTBot webProjects = bot.viewByTitle(WidgetVariables.PACKAGE_EXPLORER).bot();
+ SWTBotTree tree = webProjects.tree();
+
+ tree.setFocus();
+ String checkResult = FileRenameHelper.checkProjectRenamingWithinPackageExplorer(bot,
+ DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ ManageDroolsProject.RENAMED_DROOLS_PROJECT,
+ IDELabel.Shell.RENAME_JAVA_PROJECT);
+ assertNull(checkResult,checkResult);
+ }
+
+ /**
+ * Deletes Drools project and check result
+ *
+ * @param droolsProjectName
+ */
+ private void deleteDroolsProject(final String droolsProjectName) {
+ bot.sleep(Timing.time10S()); // because of NFS filesystem
+ packageExplorer.deleteProject(droolsProjectName, true);
+ assertFalse("Drools project: " + droolsProjectName + " was not deleted properly",
+ packageExplorer.existsResource(droolsProjectName));
+ }
+}
+
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRules.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRules.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRules.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,118 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.helper.ContextMenuHelper;
+import org.jboss.tools.ui.bot.ext.types.EntityType;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.ViewType;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.junit.Test;
+/**
+ * Test managing of Drools Rules
+ * @author Vladimir Pakan
+ *
+ */
+public class ManageDroolsRules extends SWTTestExt{
+ /**
+ * Test manage Drools Rules
+ */
+ @Test
+ public void testManageDroolsRules() {
+ createDroolsRule (DroolsAllBotTests.TEST_DROOLS_RULE_NAME);
+ bot.sleep(Timing.time3S());
+ debugDroolsRule (DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
+ }
+ /**
+ * Creates Drools Rule and checks result
+ * @param droolsRuletName
+ */
+ private void createDroolsRule(String droolsRuleName){
+
+ packageExplorer.show();
+ SWTBotTreeItem tiDroolsRules = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
+
+ tiDroolsRules.select();
+ eclipse.createNew(EntityType.DROOLS_RULE);
+
+ bot.textWithLabel(IDELabel.NewDroolsRuleDialog.FILE_NAME).setText(droolsRuleName);
+ bot.textWithLabel(IDELabel.NewDroolsRuleDialog.RULE_PACKAGE_NAME).setText(DroolsAllBotTests.COM_SAMPLE_TREE_NODE);
+ bot.button(IDELabel.Button.FINISH).click();
+ bot.sleep(Timing.time1S());
+ tiDroolsRules.expand();
+ // Test if new Drools Rule is within package tree view
+ boolean isRuleCreated = true;
+ try{
+ tiDroolsRules.getNode(droolsRuleName);
+ } catch (WidgetNotFoundException wnfe){
+ isRuleCreated = false;
+ }
+ assertTrue("New Drools Rule was not created properly. It's not present within Package Explorer",isRuleCreated);
+ // Test if new Drools Rule is opened in editor
+ isRuleCreated = true;
+ try{
+ bot.editorByTitle(droolsRuleName);
+ } catch (WidgetNotFoundException wnfe){
+ isRuleCreated = false;
+ }
+ assertTrue("New Drools Rule was not created properly. File " + droolsRuleName + " is not opened in editor",isRuleCreated);
+ }
+ /**
+ * Debug Drools Rule and checks result
+ * @param droolsRuletName
+ */
+ private void debugDroolsRule(String droolsRuleName){
+ packageExplorer.show();
+ SWTBotTreeItem tiDroolsRule = packageExplorer.selectTreeItem(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
+ SWTBot packageExplorerBot = bot.viewByTitle(ViewType.PACKAGE_EXPLORER.getViewLabel()).bot();
+ SWTBotTree tree = packageExplorerBot.tree();
+ // Select and Open Rule File
+ ContextMenuHelper.prepareTreeItemForContextMenu(tree , tiDroolsRule);
+ new SWTBotMenu(ContextMenuHelper.getContextMenu(tree, IDELabel.Menu.OPEN, true)).click();
+ SWTBotEclipseEditor ruleEditor = bot.editorByTitle(droolsRuleName).toTextEditor();
+ ruleEditor.selectRange(8, 0, 0);
+ bot.menu(IDELabel.Menu.RUN).menu(IDELabel.Menu.TOGGLE_BREAKPOINT).click();
+ SWTBotTreeItem tiDroolsTest = packageExplorer.selectTreeItem(DroolsAllBotTests.DROOLS_TEST_JAVA_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
+ console.clearConsole();
+ eclipse.debugTreeItemAsDroolsApplication(tiDroolsTest);
+ eclipse.closeConfirmPerspectiveSwitchShellIfOpened(false);
+ String consoleText = console.getConsoleText(3*1000L,3*1000L,true);
+ assertTrue("Drools Rule was not debuged properly.\nConsole content should have been empty but is:\n" + consoleText,
+ consoleText.length() == 0);
+ SWTBotView debugView = bot.viewByTitle(ViewType.DEBUG.getViewLabel());
+ debugView.toolbarButton(IDELabel.DebugView.BUTTON_STEP_OVER_TOOLTIP).click();
+ consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+ assertTrue("Drools Rule was not debuged properly.\nConsole content should be:\n'Hello World\n' but is:\n" + consoleText,
+ consoleText.equals("Hello World\n"));
+ debugView.toolbarButton(IDELabel.DebugView.BUTTON_RESUME_TOOLTIP).click();
+ consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+ assertTrue("Drools Rule was not debuged properly.\nConsole content should be:Hello World\nGoodbye cruel world\n" + consoleText,
+ consoleText.equals("Hello World\nGoodbye cruel world\n"));
+ }
+
+}
+
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,180 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import java.io.File;
+
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.IDELabel.PreferencesDialog;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.junit.Test;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
+import org.drools.eclipse.util.DroolsRuntimeManager;
+import org.drools.eclipse.util.DroolsRuntime;
+/**
+ * Test managing of Drools Runtime
+ * @author Vladimir Pakan
+ *
+ */
+public class ManageDroolsRuntime extends SWTTestExt{
+ /**
+ * Test manage Drools Runtime
+ */
+ @Test
+ public void testManageDroolsRuntime() {
+ addDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME,DroolsAllBotTests.DROOLS_RUNTIME_LOCATION,true);
+ editDroolsRuntime(DroolsAllBotTests.getTestDroolsRuntimeName(),
+ DroolsAllBotTests.getTestDroolsRuntimeLocation(),
+ "edited" , "testedit");
+ removeDroolsRuntime(DroolsAllBotTests.getTestDroolsRuntimeName());
+ createDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME,DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION);
+ if (DroolsAllBotTests.useExternalDroolsRuntime()){
+ removeDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME);
+ addDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME,DroolsAllBotTests.DROOLS_RUNTIME_LOCATION,true);
+ }
+ }
+ /**
+ * Adds Drools Runtime
+ * @param runtimeName
+ * @param runtimeLocation
+ * @param setAsDefault
+ */
+ private void addDroolsRuntime(String runtimeName, String runtimeLocation, boolean setAsDefault){
+ selectDroolsPreferences();
+ bot.button(IDELabel.Button.ADD).click();
+ bot.shell(IDELabel.Shell.DROOLS_RUNTIME).activate();
+ bot.textWithLabel(IDELabel.DroolsRuntimeDialog.NAME).setText(runtimeName);
+ bot.textWithLabel(IDELabel.DroolsRuntimeDialog.PATH).setText(runtimeLocation);
+ bot.button(IDELabel.Button.OK).click();
+ bot.shell(IDELabel.Shell.PREFERENCES).activate();
+ SWTBotTable table = bot.table();
+ boolean droolsRuntimeAdded =
+ SWTEclipseExt.isItemInTableColumn(table,runtimeName,IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX)
+ && SWTEclipseExt.isItemInTableColumn(table,runtimeLocation,IDELabel.DroolsRuntimeDialog.COLUMN_LOCATION_INDEX);
+ // Set new runtime as default
+ if (setAsDefault){
+ table.getTableItem(0).check();
+ }
+ bot.button(IDELabel.Button.OK).click();
+ assertTrue("Drools Runtime with name [" + runtimeName +
+ "] and location [" + runtimeLocation +
+ "] was not added properly.",droolsRuntimeAdded);
+ DroolsAllBotTests.setTestDroolsRuntimeName(runtimeName);
+ DroolsAllBotTests.setTestDroolsRuntimeLocation(runtimeLocation);
+ SWTEclipseExt.hideWarningIfDisplayed(bot);
+ }
+ /**
+ * Selects Drools Preferences within Preferences Dialog
+ */
+ private void selectDroolsPreferences(){
+ jbt.delay();
+ bot.menu(IDELabel.Menu.WINDOW).menu(IDELabel.Menu.PREFERENCES).click();
+ bot.shell(IDELabel.Shell.PREFERENCES).activate();
+ SWTBotTreeItem tiDroolsGroup = bot.tree().expandNode(IDELabel.PreferencesDialog.DROOLS_GROUP);
+ tiDroolsGroup.select(PreferencesDialog.INSTALLED_DROOLS_RUNTIMES);
+ }
+ /**
+ * Edits Drools Runtime
+ * @param runtimeName
+ * @param runtimeLocation
+ * @param nameSuffix
+ * @param locationSuffix
+ */
+ private void editDroolsRuntime(String runtimeName, String runtimeLocation, String nameSuffix, String locationSuffix){
+ selectDroolsPreferences();
+ SWTBotTable table = bot.table();
+ table.getTableItem(runtimeName).select();
+ bot.button(IDELabel.Button.EDIT).click();
+ bot.shell(IDELabel.Shell.DROOLS_RUNTIME).activate();
+ SWTBotText txName = bot.textWithLabel(IDELabel.DroolsRuntimeDialog.NAME);
+ SWTBotText txPath = bot.textWithLabel(IDELabel.DroolsRuntimeDialog.PATH);
+ String editedDroolsRuntimeName = txName.getText() + " " + nameSuffix;
+ String editedDroolsRuntimeLocation = txPath.getText() + File.separator + nameSuffix;
+ new File(editedDroolsRuntimeLocation).mkdir();
+ txName.setText(editedDroolsRuntimeName);
+ txPath.setText(editedDroolsRuntimeLocation);
+ bot.button(IDELabel.Button.OK).click();
+ bot.shell(IDELabel.Shell.PREFERENCES).activate();
+ boolean droolsRuntimeEdited =
+ SWTEclipseExt.isItemInTableColumn(table,editedDroolsRuntimeName,IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX)
+ && SWTEclipseExt.isItemInTableColumn(table,editedDroolsRuntimeLocation,IDELabel.DroolsRuntimeDialog.COLUMN_LOCATION_INDEX);
+ bot.button(IDELabel.Button.OK).click();
+ assertTrue("Drools Runtime with name [" + runtimeName +
+ "] and location [" + runtimeLocation +
+ "] was not renamed properly.",droolsRuntimeEdited);
+ DroolsAllBotTests.setTestDroolsRuntimeName(editedDroolsRuntimeName);
+ DroolsAllBotTests.setTestDroolsRuntimeLocation(editedDroolsRuntimeLocation);
+ SWTEclipseExt.hideWarningIfDisplayed(bot);
+ }
+
+ /**
+ * Removes Drools Runtime
+ * @param runtimeName
+ * @param runtimeLocation
+ */
+ private void removeDroolsRuntime(String runtimeName){
+ selectDroolsPreferences();
+ SWTBotTable table = bot.table();
+ table.getTableItem(runtimeName).select();
+ bot.button(IDELabel.Button.REMOVE).click();
+ boolean droolsRuntimeRemoved = !SWTEclipseExt.isItemInTableColumn(table,runtimeName,
+ IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX);
+ bot.button(IDELabel.Button.OK).click();
+ assertTrue("Drools Runtime with name [" + runtimeName +
+ "] was not removed properly.",droolsRuntimeRemoved);
+ // Remove temporary directory created within editDroolsRuntime() method
+ if (!DroolsAllBotTests.getTestDroolsRuntimeName().equals(DroolsAllBotTests.DROOLS_RUNTIME_NAME)){
+ File tempDir = new File (DroolsAllBotTests.getTestDroolsRuntimeLocation());
+ if (tempDir.isDirectory()){
+ tempDir.delete();
+ }
+ }
+ DroolsAllBotTests.setTestDroolsRuntimeName(null);
+ DroolsAllBotTests.setTestDroolsRuntimeLocation(null);
+ SWTEclipseExt.hideWarningIfDisplayed(bot);
+ }
+ /**
+ * Creates Drools Runtime
+ * @param runtimeName
+ * @param runtimeLocation
+ */
+ private void createDroolsRuntime(String runtimeName, String runtimeLocation){
+ DroolsRuntimeManager.createDefaultRuntime(runtimeLocation);
+ DroolsRuntime droolsRuntime = new DroolsRuntime();
+ droolsRuntime.setName(runtimeName);
+ droolsRuntime.setPath(runtimeLocation);
+ droolsRuntime.setDefault(true);
+ DroolsRuntimeManager.setDroolsRuntimes(new DroolsRuntime[]{droolsRuntime});
+ // Test if Drools runtime is defined
+ assertTrue("Drools Runtime was not properly created on location: " + runtimeLocation,
+ new File (runtimeLocation + File.separator + "drools-core.jar").exists());
+ selectDroolsPreferences();
+ SWTBotTable table = bot.table();
+ boolean droolsRuntimeCreated =
+ SWTEclipseExt.isItemInTableColumn(table,runtimeName,IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX)
+ && SWTEclipseExt.isItemInTableColumn(table,runtimeLocation,IDELabel.DroolsRuntimeDialog.COLUMN_LOCATION_INDEX);
+ bot.button(IDELabel.Button.OK).click();
+ SWTEclipseExt.hideWarningIfDisplayed(bot);
+ assertTrue("Drools Runtime with name [" + runtimeName +
+ "] and location [" + runtimeLocation +
+ "] was not created properly.",droolsRuntimeCreated);
+ DroolsAllBotTests.setTestDroolsRuntimeName(runtimeName);
+ DroolsAllBotTests.setTestDroolsRuntimeLocation(runtimeLocation);
+
+ }
+
+}
+
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,50 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.PerspectiveType;
+import org.junit.Test;
+/**
+ * Test opening perspective
+ * @author Vladimir Pakan
+ *
+ */
+public class OpenDroolsPerspective extends SWTTestExt{
+ /**
+ * Test Opening Drools Rules
+ */
+ @Test
+ public void testOpenDroolsPerspective() {
+ openDroolsPerspective();
+ }
+ /**
+ * Open Drools Perspective
+ */
+ private void openDroolsPerspective(){
+ eclipse.openPerspective(PerspectiveType.DROOLS);
+ boolean wasFound = false;
+ try{
+ bot.toolbarDropDownButtonWithTooltip(IDELabel.Button.DROOLS_WORKBENCH);
+ wasFound = true;
+ } catch (WidgetNotFoundException wnfe){
+ wasFound = false;
+ }
+ eclipse.openPerspective(PerspectiveType.JAVA);
+ assertTrue("Drools Perspective was not opened properly. Button " +
+ IDELabel.Button.DROOLS_WORKBENCH + " is not present in Workbench",
+ wasFound);
+ }
+}
+
Added: trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java
===================================================================
--- trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,770 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import java.awt.event.KeyEvent;
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+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;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotCheckBox;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTOpenExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.SWTUtilExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.gen.ActionItem;
+import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.ViewType;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+/**
+ * Tests Rule Flow
+ * @author Vladimir Pakan
+ *
+ */
+public class RuleFlowTest extends SWTTestExt{
+ private static final String RULE_FLOW_FILE_DIRECTORY = "src" + File.separator +
+ "main" + File.separator +
+ "rules";
+ private static final String ROOT_NODE_NAME = "process";
+ private static final String HEADER_NODE_NAME = "header";
+ private static final String NODES_NODE_NAME = "nodes";
+ private static final String CONNECTIONS_NODE_NAME = "connections";
+ private static final String CONNECTION_NODE_NAME = "connection";
+ private static final int NODES_NODE_CHILDREN_COUNT = 7;
+ private static final int CONNECTIONS_NODE_CHILDREN_COUNT = 1;
+ 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_FILE_NAME);
+ }
+
+ /**
+ * Sets all drools flow nodes.
+ */
+ @SuppressWarnings("unused")
+ private void setAllDroolsFlowNodes() {
+ new SWTOpenExt(bot).preferenceOpen(ActionItem.Preference.DroolsDroolsFlownodes.LABEL);
+ bot.waitForShell(IDELabel.Shell.PREFERENCES);
+ for (SWTBotCheckBox checkBox : bot.checkBoxes()) {
+ if (checkBox.isEnabled()) {
+ checkBox.select();
+ }
+ }
+ bot.button(IDELabel.Button.OK).click();
+ bot.waitForShell(IDELabel.Shell.WARNING);
+ bot.button(IDELabel.Button.OK).click();
+ }
+
+ /**
+ * Runs newly created Drools project and check result
+ * @param droolsProjectName
+ */
+ private void runRuleFlowCheck(String droolsRuleTestFileName){
+ console.clearConsole();
+ bot.sleep(5000L);
+
+ SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(droolsRuleTestFileName,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
+
+ eclipse.runTreeItemAsJavaApplication(tiTestFile);
+
+ String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+
+ assertTrue(droolsRuleTestFileName + " didn't run properly.\n" +
+ "Console Text was: " + consoleText + "\n" +
+ "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) {
+ packageExplorer.show();
+ packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ 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)
+ .menu(IDELabel.Menu.MAXIMIZE_ACTIVE_VIEW_OR_EDITOR)
+ .click();
+ isEditorMaximized = true;
+ SWTGefBot gefBot = new SWTGefBot();
+ SWTBotGefEditor gefEditor = gefBot.gefEditor(ruleFlowFileName);
+ // Clear Editor
+ gefEditor.setFocus();
+ 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",
+ "Script Task"
+ };
+ int xspacing = 100;
+ int xoffset = 10;
+ int yspacing = 100;
+ int yoffset = 10;
+ for (int toolIndex = 0;toolIndex < tools.length;toolIndex++){
+ gefEditor.activateTool(tools[toolIndex]);
+ gefEditor.click(xspacing * (toolIndex % 3) + xoffset,
+ yspacing * (toolIndex / 3) + yoffset);
+ }
+ // Add Sequence Flow between Start and End Node
+ gefEditor.activateTool("Sequence Flow");
+ // Click on Start Node
+ gefEditor.click(xoffset + 5, yoffset + 5);
+ // Click on End Node
+ gefEditor.click(xspacing + xoffset + 5, yoffset + 5);
+ gefEditor.save();
+ checkFullRuleFile(DroolsAllBotTests.DROOLS_PROJECT_NAME , ruleFlowFileName);
+ // check synchronization with Properties View
+ gefEditor.activateTool("Select");
+ gefEditor.click(xoffset + 5, yoffset + 5);
+ SWTBotTree tree = eclipse.showView(ViewType.PROPERTIES).tree();
+ String id = tree.getTreeItem("Id").cell(1);
+ String name = tree.getTreeItem("Name").cell(1);
+ assertTrue("First editor element has to have Id=1 and Name=Start." +
+ "\nBut it has Id=" + id +
+ " Name=" + name, id.equals("1") && name.equals("Start"));
+ // Delete each component
+ gefEditor.activateTool("Select");
+ for (int toolIndex = 0;toolIndex < tools.length;toolIndex++){
+ gefEditor.click(xspacing * (toolIndex % 3) + xoffset + 10,
+ yspacing * (toolIndex / 3) + yoffset + 10);
+ gefEditor.setFocus();
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
+ }
+ // Restore maximized editor
+ bot.menu(IDELabel.Menu.WINDOW)
+ .menu(IDELabel.Menu.NAVIGATION)
+ .menu(IDELabel.Menu.MAXIMIZE_ACTIVE_VIEW_OR_EDITOR)
+ .click();
+ isEditorMaximized = false;
+ gefEditor.save();
+ gefEditor.close();
+ 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(final String projectName, final String ruleFlowFileName) {
+ String errorDescription = null;
+ Document doc = getNormalizedDocument(getFullPathToRuleFlowFile(projectName, ruleFlowFileName));
+ Element rootNode = doc.getDocumentElement();
+ if (rootNode.getNodeName().equals(ROOT_NODE_NAME)) {
+ NodeList rootNodeList = rootNode.getChildNodes();
+ List<Node> rootNodes = removeTextNodes(rootNodeList);
+ if (rootNodes.size() == ROOT_NODE_CHILDREN_COUNT) {
+ Node header = rootNodes.get(0);
+ errorDescription = checkEmptyFileNode(header, HEADER_NODE_NAME);
+ if (errorDescription == null) {
+ Node nodesNode = rootNodes.get(1);
+ errorDescription = checkNodeName(nodesNode, NODES_NODE_NAME);
+ if (errorDescription == null) {
+ errorDescription = checkNodesFileNodes(removeTextNodes(nodesNode
+ .getChildNodes()));
+ if (errorDescription == null) {
+ Node connectionsNode = rootNodes.get(2);
+ errorDescription = checkNodeName(connectionsNode,
+ CONNECTIONS_NODE_NAME);
+ if (errorDescription == null) {
+ errorDescription = checkConnectionsFileNodes(removeTextNodes(connectionsNode
+ .getChildNodes()));
+ }
+ }
+ }
+ }
+ } else {
+ errorDescription = "Root node has to have " + ROOT_NODE_CHILDREN_COUNT
+ + " child nodes but it has " + rootNodeList.getLength();
+ }
+ } else {
+ errorDescription = "Root node has to have name '" + ROOT_NODE_NAME
+ + "' but it has name '" + rootNode.getNodeName() + "'";
+ }
+ 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
+ * @param ruleFlowRfFileName
+ */
+ private void checkEmptyRFFile(String projectName, String ruleFlowFileName){
+
+ Document doc = loadXmlFile(SWTUtilExt.getPathToProject(projectName) +
+ File.separator + RuleFlowTest.RULE_FLOW_FILE_DIRECTORY + File.separator +
+ ruleFlowFileName);
+
+ String errorDescription = null;
+
+ Element rootNode = doc.getDocumentElement();
+ doc.normalizeDocument();
+ if (rootNode.getNodeName().equals(ROOT_NODE_NAME)) {
+ NodeList rootNodeList = rootNode.getChildNodes();
+ List<Node> nodes = removeTextNodes(rootNodeList);
+ if (nodes.size() == ROOT_NODE_CHILDREN_COUNT) {
+ Node header = nodes.get(0);
+ errorDescription = checkEmptyFileNode(header, HEADER_NODE_NAME);
+ if (errorDescription == null) {
+ Node nodesNode = nodes.get(1);
+ errorDescription = checkEmptyFileNode(nodesNode, NODES_NODE_NAME);
+ if (errorDescription == null) {
+ Node connnections = nodes.get(2);
+ errorDescription = checkEmptyFileNode(connnections, CONNECTIONS_NODE_NAME);
+ }
+ }
+ } else {
+ errorDescription = "Root node has to have " +
+ ROOT_NODE_CHILDREN_COUNT +
+ " child nodes but it has " +
+ rootNodeList.getLength();
+ }
+ } else {
+ errorDescription = "Root node has to have name '" + ROOT_NODE_NAME
+ + "' but it has name '" + rootNode.getNodeName() + "'";
+ }
+ assertNull(errorDescription,errorDescription);
+
+ }
+ /**
+ * Loads and parse XML file with fileName from file system
+ * @param fileName - full path to XML file
+ * @return
+ */
+ private Document loadXmlFile (String fileName){
+ File file = new File(fileName);
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder db;
+ Document doc = null;
+ try {
+ db = dbf.newDocumentBuilder();
+ doc = db.parse(file);
+ } catch (ParserConfigurationException pce) {
+ throw new RuntimeException(pce);
+ } catch (SAXException saxe) {
+ throw new RuntimeException(saxe);
+ } catch (IOException ioe) {
+ throw new RuntimeException(ioe);
+ }
+ return doc;
+ }
+ private static List<Node> removeTextNodes(NodeList rootNodeList){
+ LinkedList<Node> nodes = new LinkedList<Node>();
+ for (int index = 0 ; index < rootNodeList.getLength(); index++){
+ Node node = rootNodeList.item(index);
+ if (!node.getNodeName().equals("#text")){
+ nodes.add(node);
+ }
+ }
+ return nodes;
+ }
+ /**
+ * Check if node is correct for empty file
+ * @param node
+ * @param expectedNodeName
+ * @return
+ */
+ private static String checkEmptyFileNode (Node node,String expectedNodeName){
+ String errorDescription = null;
+ if (node.getNodeName().equals(expectedNodeName)){
+ if (removeTextNodes(node.getChildNodes()).size() == 0){
+ if(node.getTextContent().trim().length() != 0){
+ errorDescription = expectedNodeName + " node has to have no text value but it has " +
+ node.getTextContent();
+ }
+ }
+ else{
+ errorDescription = expectedNodeName + " node has to have no children but is has " +
+ removeTextNodes(node.getChildNodes()).size();
+
+ }
+ }
+ else{
+ errorDescription = checkNodeName(node, expectedNodeName);
+ }
+
+ return errorDescription;
+
+ }
+ /**
+ * Check nodes of Nodes children.
+ * @param nodes - list of nodes of nodes node stripped from text nodes
+ * @return
+ */
+ private static String checkNodesFileNodes(List<Node> nodes){
+ String errorDescription = null;
+
+ if (nodes.size() == NODES_NODE_CHILDREN_COUNT){
+ List<String> mandatoryNodes = getMandatoryNodesOfNodesNode();
+ int index = 0;
+ Iterator<Node> iterator = nodes.iterator();
+ while (index < nodes.size() && errorDescription == null){
+ String nodeName = iterator.next().getNodeName();
+ if (mandatoryNodes.contains(nodeName)){
+ mandatoryNodes.remove(nodeName);
+ }
+ else{
+ errorDescription = "Nodes node cannot contain node " + nodeName;
+ }
+ index++;
+ }
+ if (errorDescription == null && mandatoryNodes.size() > 0) {
+ StringBuilder sb = new StringBuilder("");
+ for (String nodeName : mandatoryNodes){
+ if (sb.length() != 0){
+ sb.append(", ");
+ }
+ sb.append(nodeName);
+ }
+ errorDescription = "Nodes node doesn't contain all necesarry nodes.\n" +
+ "These node(s) are missing within nodes node: " +
+ sb.toString();
+ }
+ }
+ else{
+ errorDescription = "Nodes node has to have " +
+ NODES_NODE_CHILDREN_COUNT +
+ " child nodes but it has " +
+ nodes.size();
+ }
+
+ return errorDescription;
+ }
+ /**
+ * Returns list of mandatory nodes of nodes node
+ * @return
+ */
+ private static List<String> getMandatoryNodesOfNodesNode(){
+ LinkedList<String> allowedNodes = new LinkedList<String>();
+ allowedNodes.add("split");
+ /*
+ allowedNodes.add("timerNode");
+ allowedNodes.add("humanTask");
+ */
+ allowedNodes.add("ruleSet");
+ allowedNodes.add("actionNode");
+ /*
+ allowedNodes.add("composite");
+ */
+ allowedNodes.add("end");
+ /*
+ allowedNodes.add("workItem");
+ allowedNodes.add("fault");
+ */
+ allowedNodes.add("subProcess");
+ allowedNodes.add("start");
+ /*
+ allowedNodes.add("workItem");
+ allowedNodes.add("eventNode");
+ */
+ allowedNodes.add("join");
+
+ return allowedNodes;
+ }
+
+ /**
+ * Check nodes of connections children.
+ * @param nodes - list of nodes of connections node stripped from text nodes
+ * @return
+ */
+ private static String checkConnectionsFileNodes(List<Node> nodes){
+ String errorDescription = null;
+
+ if (nodes.size() == CONNECTIONS_NODE_CHILDREN_COUNT){
+ Node connectioNode = nodes.get(0);
+ errorDescription = checkEmptyFileNode(connectioNode, CONNECTION_NODE_NAME);
+ }
+ else{
+ errorDescription = "Conections node has to have " +
+ CONNECTIONS_NODE_CHILDREN_COUNT +
+ " child nodes but it has " +
+ nodes.size();
+ }
+
+ return errorDescription;
+ }
+ /**
+ * Check if node has expected name
+ * @param node
+ * @param expectedNodeName
+ * @return
+ */
+ private static String checkNodeName (Node node, String expectedNodeName){
+ String errorDescription = null;
+
+ if (!node.getNodeName().equals(expectedNodeName)){
+ errorDescription = "Node has to have name '" +
+ expectedNodeName + "' but it has name '" +
+ node.getNodeName() + "'";
+ }
+
+ return errorDescription;
+ }
+
+ protected void tearDown(){
+ if (isEditorMaximized){
+ // Restore maximized editor
+ bot.menu(IDELabel.Menu.WINDOW)
+ .menu(IDELabel.Menu.NAVIGATION)
+ .menu(IDELabel.Menu.MAXIMIZE_ACTIVE_VIEW_OR_EDITOR)
+ .click();
+ isEditorMaximized = false;
+ }
+ try {
+ super.tearDown();
+ } catch (Exception e) {
+ 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
+ * @param projectName
+ * @param ruleFlowFileName
+ */
+ private void deleteAllObjectsFromRFFile(SWTBotGefEditor gefEditor, String projectName, String ruleFlowFileName) {
+
+ Document doc = loadXmlFile(SWTUtilExt.getPathToProject(projectName)
+ + File.separator + RuleFlowTest.RULE_FLOW_FILE_DIRECTORY
+ + File.separator + ruleFlowFileName);
+
+ String errorDescription = null;
+ Element rootNode = doc.getDocumentElement();
+ doc.normalizeDocument();
+ if (rootNode.getNodeName().equals(ROOT_NODE_NAME)) {
+ NodeList rootNodeList = rootNode.getChildNodes();
+ List<Node> rootNodes = removeTextNodes(rootNodeList);
+ if (rootNodes.size() == ROOT_NODE_CHILDREN_COUNT) {
+ Node nodesNode = rootNodes.get(1);
+ errorDescription = checkNodeName(nodesNode, NODES_NODE_NAME);
+ if (errorDescription == null) {
+ List<Node> nodes = removeTextNodes(nodesNode.getChildNodes());
+ for (Node node : nodes){
+ NamedNodeMap attributes = node.getAttributes();
+ int xPos = Integer.parseInt(attributes.getNamedItem("x").getNodeValue());
+ int yPos = Integer.parseInt(attributes.getNamedItem("y").getNodeValue());
+ gefEditor.click(xPos + 3, yPos + 3);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
+ bot.sleep(Timing.time1S());
+ }
+ }
+ } else {
+ errorDescription = "'" + NODES_NODE_NAME + "'" +" was not found on expected location within RF file." +
+ " RF file structure has been changed";
+ }
+ } else {
+ errorDescription = "Root Node has to have name '" + ROOT_NODE_NAME + "'. RF file structure has been changed.";
+ }
+ 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
Added: trunk/build/aggregate/soatests-site/tests/pom.xml
===================================================================
--- trunk/build/aggregate/soatests-site/tests/pom.xml (rev 0)
+++ trunk/build/aggregate/soatests-site/tests/pom.xml 2012-04-23 19:01:33 UTC (rev 40421)
@@ -0,0 +1,16 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.site.soa-tooling.tests.root</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools.soa-tooling</groupId>
+ <artifactId>org.jboss.tools.soa-tooling.tests</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <modules>
+ <module>org.jboss.tools.drools.ui.bot.test</module>
+ </modules>
+</project>
13 years, 8 months
JBoss Tools SVN: r40420 - in trunk/central: plugins and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2012-04-23 14:02:44 -0400 (Mon, 23 Apr 2012)
New Revision: 40420
Modified:
trunk/central/features/pom.xml
trunk/central/plugins/pom.xml
Log:
add org.jboss.tools.community.central to reactor
Modified: trunk/central/features/pom.xml
===================================================================
--- trunk/central/features/pom.xml 2012-04-23 18:02:23 UTC (rev 40419)
+++ trunk/central/features/pom.xml 2012-04-23 18:02:44 UTC (rev 40420)
@@ -14,6 +14,7 @@
<packaging>pom</packaging>
<modules>
<module>org.jboss.tools.central.feature</module>
+ <module>org.jboss.tools.community.central.feature</module>
<module>org.jboss.tools.central.discovery.feature</module>
<module>org.jboss.tools.central.test.feature</module>
</modules>
Modified: trunk/central/plugins/pom.xml
===================================================================
--- trunk/central/plugins/pom.xml 2012-04-23 18:02:23 UTC (rev 40419)
+++ trunk/central/plugins/pom.xml 2012-04-23 18:02:44 UTC (rev 40420)
@@ -14,6 +14,7 @@
<packaging>pom</packaging>
<modules>
<module>org.jboss.tools.central</module>
+ <module>org.jboss.tools.community.central</module>
<module>org.jboss.tools.central.discovery</module>
</modules>
</project>
13 years, 8 months
JBoss Tools SVN: r40419 - in trunk/build/aggregate/DEPRECATED_bottests-site: features and 17 other directories.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2012-04-23 14:02:23 -0400 (Mon, 23 Apr 2012)
New Revision: 40419
Added:
trunk/build/aggregate/DEPRECATED_bottests-site/.gitignore
trunk/build/aggregate/DEPRECATED_bottests-site/features/
trunk/build/aggregate/DEPRECATED_bottests-site/features/.gitignore
trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/
trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/.gitignore
trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/build.properties
trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/epl-v10.html
trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/feature.xml
trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/pom.xml
trunk/build/aggregate/DEPRECATED_bottests-site/features/pom.xml
trunk/build/aggregate/DEPRECATED_bottests-site/plugins/
trunk/build/aggregate/DEPRECATED_bottests-site/plugins/.gitignore
trunk/build/aggregate/DEPRECATED_bottests-site/plugins/pom.xml
trunk/build/aggregate/DEPRECATED_bottests-site/pom.xml
trunk/build/aggregate/DEPRECATED_bottests-site/site/
trunk/build/aggregate/DEPRECATED_bottests-site/site/.gitignore
trunk/build/aggregate/DEPRECATED_bottests-site/site/associate.properties
trunk/build/aggregate/DEPRECATED_bottests-site/site/index.html
trunk/build/aggregate/DEPRECATED_bottests-site/site/pom.xml
trunk/build/aggregate/DEPRECATED_bottests-site/site/site.xml
trunk/build/aggregate/DEPRECATED_bottests-site/tests/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DecisionTableTest.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRules.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java
trunk/build/aggregate/DEPRECATED_bottests-site/tests/pom.xml
Log:
add deprecation marker for bottests site (JBIDE-11077)
Added: trunk/build/aggregate/DEPRECATED_bottests-site/.gitignore
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/.gitignore (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/.gitignore 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,2 @@
+.project
+.settings/
Added: trunk/build/aggregate/DEPRECATED_bottests-site/features/.gitignore
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/features/.gitignore (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/features/.gitignore 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,2 @@
+.settings/
+.project
Added: trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/.gitignore
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/.gitignore (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/.gitignore 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1 @@
+target/
Added: trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/build.properties
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/build.properties (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/build.properties 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,3 @@
+bin.includes = feature.xml
+src.includes = feature.xml,\
+ build.properties
Added: trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/epl-v10.html
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/epl-v10.html (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/epl-v10.html 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!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">
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+ body {
+ size: 8.5in 11.0in;
+ margin: 0.25in 0.5in 0.25in 0.5in;
+ tab-interval: 0.5in;
+ }
+ p {
+ margin-left: auto;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ p.list {
+ margin-left: 0.5in;
+ margin-top: 0.05em;
+ margin-bottom: 0.05em;
+ }
+ </style>
+
+</head>
+
+<body lang="EN-US">
+
+<p align=center><b>Eclipse Public License - v 1.0</b></p>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+</body>
+
+</html>
Added: trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/feature.xml
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/feature.xml (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/feature.xml 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature id="org.jboss.tools.bot.test.feature" label="JBoss Tools Bot Tests" version="3.1.0.qualifier">
+
+ <description url="http://www.jboss.org/tools">
+ JBoss Tools Bot Tests
+ </description>
+
+ <copyright>
+ Copyright (c) 2011 Red Hat, Inc. and Exadel, Inc.
+Distributed under license by JBoss by Red Hat. All rights reserved.
+This program is made available under the terms of the
+Eclipse Public License v1.0 which accompanies this distribution,
+and is available at http://www.eclipse.org/legal/epl-v10.html
+Contributors:
+JBoss by Red Hat and Exadel, Inc. - initial API and implementation
+ </copyright>
+
+ <license>
+ Red Hat, Inc. licenses these features and plugins to you under
+certain open source licenses (or aggregations of such licenses), which
+in a particular case may include the Eclipse Public License, the GNU
+Lesser General Public License, and/or certain other open source
+licenses. For precise licensing details, consult the corresponding
+source code, or contact Red Hat Legal Affairs, 1801 Varsity Drive,
+Raleigh NC 27606 USA.
+ </license>
+
+ <!-- depends on upstream components being built,
+ including tests, common, bpel, cdi, deltacloud, etc.
+ Can source these from http://download.jboss.org/jbosstools/builds/staging/_composite_/trunk/
+ -->
+
+ <plugin id="org.jboss.tools.tests" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.jboss.tools.ui.bot.ext" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.jboss.tools.ui.bot.ext.test" download-size="0" install-size="0" version="0.0.0" />
+
+ <plugin id="org.jboss.tools.cdi.bot.test" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.jboss.tools.hibernate.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.jboss.tools.jsf.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.jboss.tools.jst.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+ <!-- <plugin id="org.jboss.tools.maven.ui.bot.test" download-size="0" install-size="0" version="0.0.0" /> -->
+ <plugin id="org.jboss.tools.seam.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.jboss.tools.struts.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.jboss.tools.vpe.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.jboss.tools.ws.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+
+ <!-- SOA Tooling tests -->
+ <plugin id="org.jboss.tools.bpel.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.jboss.tools.drools.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+ <!-- TODO JBIDE-9464 add this back in after test is fixed <plugin id="org.jboss.tools.esb.ui.bot.test" download-size="0" install-size="0" version="0.0.0" /> -->
+ <plugin id="org.jboss.tools.jbpm.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.jboss.tools.modeshape.rest.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.teiid.designer.ui.bot.ext" download-size="0" install-size="0" version="0.0.0" />
+ <plugin id="org.teiid.designer.ui.bot.tests" download-size="0" install-size="0" version="0.0.0" />
+
+ <!-- removed/deprecated -->
+ <!-- JBIDE-10422 remove <plugin id="org.jboss.tools.deltacloud.ui.bot.test" download-size="0" install-size="0" version="0.0.0" /> -->
+ <!-- JBIDE-11088 remove <plugin id="org.jboss.tools.smooks.ui.bot.test" download-size="0" install-size="0" version="0.0.0" /> -->
+</feature>
Added: trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/pom.xml
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/pom.xml (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/features/org.jboss.tools.bot.test.feature/pom.xml 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools.bot.tests</groupId>
+ <artifactId>org.jboss.tools.bot.tests.features</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.bot.test.feature</artifactId>
+ <version>3.1.0-SNAPSHOT</version>
+ <packaging>eclipse-feature</packaging>
+</project>
Added: trunk/build/aggregate/DEPRECATED_bottests-site/features/pom.xml
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/features/pom.xml (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/features/pom.xml 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,16 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.site.bottests.root</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools.bot.tests</groupId>
+ <artifactId>org.jboss.tools.bot.tests.features</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <modules>
+ <module>org.jboss.tools.bot.test.feature</module>
+ </modules>
+</project>
Added: trunk/build/aggregate/DEPRECATED_bottests-site/plugins/.gitignore
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/plugins/.gitignore (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/plugins/.gitignore 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,2 @@
+.project
+.settings/
Added: trunk/build/aggregate/DEPRECATED_bottests-site/plugins/pom.xml
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/plugins/pom.xml (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/plugins/pom.xml 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,16 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.site.bottests.root</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools.bot.tests</groupId>
+ <artifactId>org.jboss.tools.bot.tests.plugins</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <modules>
+ <!-- no plugins yet -->
+ </modules>
+</project>
Added: trunk/build/aggregate/DEPRECATED_bottests-site/pom.xml
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/pom.xml (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/pom.xml 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.site</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.site.bottests.root</artifactId>
+ <packaging>pom</packaging>
+ <modules>
+ <module>plugins</module>
+ <module>tests</module>
+ <module>features</module>
+ <module>site</module>
+ </modules>
+<!-- This site build depends on both the Core and SOA Tooling composite sites, plus the usual upstream dependencies and TP.
+
+ To build, run this:
+
+ mvn3 -Pdefault,jbosstools-nightly-staging-composite,jbosstools-nightly-staging-composite-soa-tooling,local.site
+-->
+</project>
Added: trunk/build/aggregate/DEPRECATED_bottests-site/site/.gitignore
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/site/.gitignore (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/site/.gitignore 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,5 @@
+.settings/
+.project
+target/
+.classpath
+zips/
Added: trunk/build/aggregate/DEPRECATED_bottests-site/site/associate.properties
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/site/associate.properties (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/site/associate.properties 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,7 @@
+# options: Nightly Build (default), Development Milestone, Stable Release
+#update.site.description=Nightly Build
+#update.site.description=Development Milestone
+#update.site.version=3.2.0.M2.2010-07-16_13-26-18-H21
+
+# associate sites to add to the resulting repo
+associate.sites=http://download.jboss.org/jbosstools/updates/indigo/SR2/,http://download.jboss.org/jbosstools/updates/development/indigo/
Added: trunk/build/aggregate/DEPRECATED_bottests-site/site/index.html
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/site/index.html (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/site/index.html 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,180 @@
+<html>
+<head>
+<title>JBoss Tools - Bot Tests - Nightly Build Update Site</title>
+<style>
+@import url("http://download.jboss.org/jbosstools/updates/web/site.css");
+</style>
+</head>
+<body marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">
+<center>
+<table marginheight="0" marginwidth="0" leftmargin="0" topmargin="0"
+ cellspacing="0" cellpadding="0" width="920" class="bodyText">
+ <tr>
+ <td colspan="3"><img
+ src="https://www.jboss.org/dms/tools/images/tools-banner.png" /></td>
+ </tr>
+ <tr>
+ <td>      </td>
+ <td>      </td>
+ <td>      </td>
+ </tr>
+ <tr>
+ <td>      </td>
+ <td>
+ <h2 class="title">JBoss Tools - Bot Tests - Nightly Build Update Site</h2>
+ <table width="100%">
+ <tr class="header">
+ <td class="sub-header" width="100%"><span>Latest Build</span></td>
+ </tr>
+
+ <tr class="light-row" style="height: 30px">
+ <td class="bodyText">
+ <p class="bodyText">This is the <b>Nightly Build</b>
+ Update Site for JBoss Tools - Bot Tests.
+ <blockquote style="border: 1px dashed #1778be; padding: 2px">
+ <ol>
+ <li>To <a class="link"
+ href="http://www.jboss.org/tools/download/installation/update_3_3">install</a>
+ from this site, start up Eclipse 3.7, then do:
+ <ul>
+ <code><strong>Help > Install New Software... ></strong></code>
+ </ul>
+ </li>
+ <li>Copy this site's URL into Eclipse, and hit Enter.</li>
+ <li>When the site loads, select the features to install,
+ or click the <code><strong>Select All</strong></code> button.</li>
+ <li>To properly resolve all dependencies, check
+ <ul><code><strong>[x] Contact all update sites during install to find required software</strong></code></ul>
+
+ <li>Click <code><strong>Next</strong></code>, agree to the license
+ terms, and install.</li>
+
+ <p class="bodyText">
+ You can also download JBoss Tools as individual zips for
+ offline installation. See <a class="link"
+ href="http://www.jboss.org/tools/download">JBoss Tools
+ Downloads</a>.<br /> If you downloaded this site as a zip, see
+ <a href="README.installation.txt">Installation README</a>.
+ See also <a
+ href="http://www.jboss.org/tools/download/installation">Installation
+ methods</a>.
+ </p>
+ </ol>
+ </blockquote>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td>      </td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>
+ <table xmlns="http://www.w3.org/1999/xhtml" xmlns:xalan="http://xml.apache.org/xalan" cellspacing="2" cellpadding="0" border="0">
+ <tr style="background-color:#DDDDDD">
+ <th style="font-size:small">Feature</th>
+ <th style="font-size:small">Version</th>
+ <th style="font-size:small">
+ Feature Categor(ies)
+
+ </th>
+ </tr>
+ <tr style="background-color:
							#EEEEEE
						">
+ <td class="rowLine"><a href="features/org.jboss.tools.bot.test.feature_3.1.0.v20111123-1957-M5.jar" style="font-size:x-small">org.jboss.tools.bot.test.feature</a></td>
+ <td><span style="font-size:x-small">3.1.0.v20111123-1957-M5</span></td>
+ <td><span style="font-size:x-small">
+ |
+ Bot Tests</span></td>
+ </tr>
+ <tr style="background-color:
							#FFFFFF
						">
+ <td class="rowLine"><a href="features/org.jboss.tools.test.feature_3.2.0.v20111123-0956-H473-M5.jar" style="font-size:x-small">org.jboss.tools.test.feature</a></td>
+ <td><span style="font-size:x-small">3.2.0.v20111123-0956-H473-M5</span></td>
+ <td><span style="font-size:x-small">
+ |
+ Bot Tests</span></td>
+ </tr>
+ <tr style="background-color:#DDDDDD">
+ <th colspan="1" style="font-size:small">Metadata</th>
+ <th colspan="1" style="font-size:small"></th>
+ <th colspan="1" style="font-size:small"></th>
+ </tr>
+ <tr style="background-color:#EEEEEE">
+ <td class="rowLine" colspan="1"><a href="site.xml" style="font-size:x-small">site.xml</a>
+ ::
+ <a href="artifacts.jar" style="font-size:x-small">artifacts.jar</a>
+ ::
+ <a href="content.jar" style="font-size:x-small">content.jar</a></td>
+ <td class="rowLine" colspan="1">
+ ::
+ <a href="plugins/" style="font-size:x-small">plugins</a>
+ ::
+ <a href="features/" style="font-size:x-small">features</a></td>
+ <td class="rowLine" colspan="1">
+
+
+ </td>
+ </tr>
+</table><br xmlns="http://www.w3.org/1999/xhtml" xmlns:xalan="http://xml.apache.org/xalan"></br>
+ </td>
+ <td></td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>
+ <table width="100%">
+ <tr class="header">
+ <td class="sub-header" width="100%"><span> Installation
+ Types</span></td>
+ </tr>
+ <tr class="light-row" style="height: 30px">
+ <td class="bodyText">
+ <p class="bodyText">Depending on how close to the bleeding edge
+ you like to be, there are several types of releases available.</p>
+ <br />
+
+ </td>
+ </tr>
+
+ <tr class="dark-row" style="height: 30px">
+ <td class="bodyText">
+ <h4>Stable Releases</h4>
+
+ <p><a href="https://www.jboss.org/tools/download/stable.html">Stable
+ releases</a> are - as indicated by their name - stable.</p><br/>
+
+ </td>
+ </tr>
+
+ <tr class="light-row" style="height: 30px">
+ <td class="bodyText">
+ <h4>Development Milestones</h4>
+
+ <p><a href="https://www.jboss.org/tools/download/dev.html">Development
+ builds</a>, released once per milestone and only a few times a year, are
+ fairly stable, but there may be some things which do not yet work.
+ If you would like to try one of these milestones, we'd greatly
+ appreciate the assistance in testing and <a
+ href="https://jira.jboss.org/jira/browse/JBIDE">reporting of
+ issues in our issue tracker</a>.</p><br/>
+
+ </td>
+ </tr>
+
+ <tr class="dark-row" style="height: 30px">
+ <td class="bodyText">
+ <h4>Nightly Builds</h4>
+
+ <p>The <a
+ href="https://www.jboss.org/tools/download/nightly.html">bleeding
+ edge</a> contains the latest and greatest new features, but nothing is
+ stable or guaranteed - yet. If you're using a Milestone and need a
+ fix, you can update to the latest Nightly, or wait for the next
+ Milestone.</p><br/>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+</center>
+</html>
Added: trunk/build/aggregate/DEPRECATED_bottests-site/site/pom.xml
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/site/pom.xml (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/site/pom.xml 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.site</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ <relativePath>../../pom.xml</relativePath>
+ </parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.site.bottests</artifactId>
+ <name>JBoss Tools - Bot Tests Site</name>
+ <packaging>eclipse-update-site</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>${maven.antrun.plugin.version}</version>
+ <executions>
+ <execution>
+ <id>install</id>
+ <phase>install</phase>
+ <configuration>
+ <quiet>true</quiet>
+ <tasks>
+ <!-- called AFTER generating update site + zip to add in extra content -->
+ <ant antfile="build.xml" target="basic.build" dir="../../">
+ <property name="output.dir" value="${basedir}" />
+ <property name="inputRepo"
+ value="${jbosstools-nightly-staging-composite}" />
+ <property name="update.site.name" value="JBoss Tools - Bot Tests"/>
+ <property name="JBT_VERSION" value="${JBT_VERSION}" />
+ <property name="BUILD_ALIAS" value="${BUILD_ALIAS}" />
+ </ant>
+ </tasks>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>commons-net</groupId>
+ <artifactId>commons-net</artifactId>
+ <version>1.4.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>1.7.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-nodeps</artifactId>
+ <version>1.7.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-trax</artifactId>
+ <version>1.7.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-commons-net</artifactId>
+ <version>1.7.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant-apache-regexp</artifactId>
+ <version>1.7.1</version>
+ </dependency>
+ <dependency>
+ <groupId>ant-contrib</groupId>
+ <artifactId>ant-contrib</artifactId>
+ <version>1.0b3</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+
+ <repositories>
+ <repository>
+ <id>jbosstools-nightly-staging-composite</id>
+ <url>${jbosstools-nightly-staging-composite}</url>
+ <layout>p2</layout>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ <repository>
+ <id>jboss-requirements-composite-mirror</id>
+ <url>${jboss-requirements-composite-mirror}</url>
+ <layout>p2</layout>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ </repository>
+ </repositories>
+</project>
Added: trunk/build/aggregate/DEPRECATED_bottests-site/site/site.xml
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/site/site.xml (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/site/site.xml 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<site>
+ <description>To install these features, point Eclipse at this site.</description>
+ <!-- Bot Tests -->
+ <category-def label="Bot Tests" name="Bot Tests">
+ <description>Bot Tests: contains all features in this build.</description>
+ </category-def>
+ <feature url="features/org.jboss.tools.bot.test.feature_0.0.0.jar" id="org.jboss.tools.bot.test.feature" version="0.0.0">
+ <category name="Bot Tests"/>
+ </feature>
+ <feature url="features/org.jboss.tools.test.feature_0.0.0.jar" id="org.jboss.tools.test.feature" version="0.0.0">
+ <category name="Bot Tests"/>
+ </feature>
+</site>
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="src" path="resources"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1 @@
+target
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,21 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Drools UI SWTBot Tests
+Bundle-SymbolicName: org.jboss.tools.drools.ui.bot.test
+Bundle-Version: 1.0.0.qualifier
+Bundle-Activator: org.jboss.tools.drools.ui.bot.test.Activator
+Require-Bundle: org.eclipse.ui,
+ org.eclipse.core.runtime,
+ org.jboss.tools.jst.ui.bot.test,
+ org.eclipse.swtbot.eclipse.core;bundle-version="2.0.0",
+ org.eclipse.swtbot.eclipse.finder;bundle-version="2.0.0",
+ org.eclipse.swtbot.swt.finder;bundle-version="2.0.0",
+ org.junit4;bundle-version="4.5.0",
+ org.jboss.tools.ui.bot.ext,
+ org.drools.eclipse;bundle-version="5.3.0",
+ org.eclipse.swtbot.eclipse.gef.finder,
+ org.apache.log4j;bundle-version="1.2.13"
+Bundle-ActivationPolicy: lazy
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-Vendor: JBoss by Red Hat
+Import-Package: org.eclipse.ui.forms.widgets
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,5 @@
+source.. = src/,\
+ resources/
+output.. = bin/
+bin.includes = META-INF/,\
+ .
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools.bot.tests</groupId>
+ <artifactId>org.jboss.tools.bot.tests.tests</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools.drools</groupId>
+ <artifactId>org.jboss.tools.drools.ui.bot.test</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>eclipse-test-plugin</packaging>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-surefire-plugin</artifactId>
+ <version>${tychoVersion}</version>
+ <configuration>
+ <useUIThread>false</useUIThread>
+ <testSuite>org.jboss.tools.drools.ui.bot.test</testSuite>
+ <testClass>org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests</testClass>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd 2012-04-23 18:02:23 UTC (rev 40419)
@@ -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/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd 2012-04-23 18:02:23 UTC (rev 40419)
@@ -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/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd 2012-04-23 18:02:23 UTC (rev 40419)
@@ -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/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd 2012-04-23 18:02:23 UTC (rev 40419)
@@ -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/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd 2012-04-23 18:02:23 UTC (rev 40419)
@@ -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
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,3 @@
+use-external-drools-runtime=true
+guvnor-repository-url=/jboss-brms/org.drools.guvnor.Guvnor/webdav
+external-drools-runtime-home=/home/vpakan/tmp/drools
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,50 @@
+package org.jboss.tools.drools.ui.bot.test;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+ // The plug-in ID
+ public static final String PLUGIN_ID = "org.jboss.tools.drools.ui.bot.test";
+
+ // The shared instance
+ private static Activator plugin;
+
+ /**
+ * The constructor
+ */
+ public Activator() {
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+ */
+ public void start(BundleContext context) throws Exception {
+ super.start(context);
+ plugin = this;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext context) throws Exception {
+ plugin = null;
+ super.stop(context);
+ }
+
+ /**
+ * Returns the shared instance
+ *
+ * @return the shared instance
+ */
+ public static Activator getDefault() {
+ return plugin;
+ }
+
+}
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,205 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2009 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.tools.drools.ui.bot.test;
+
+import java.io.File;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.jboss.tools.drools.ui.bot.test.smoke.DecisionTableTest;
+import org.jboss.tools.drools.ui.bot.test.smoke.DomainSpecificLanguageEditorTest;
+import org.jboss.tools.drools.ui.bot.test.smoke.DroolsRulesEditorTest;
+import org.jboss.tools.drools.ui.bot.test.smoke.DroolsViewsTest;
+import org.jboss.tools.drools.ui.bot.test.smoke.GuvnorRepositoriesTest;
+import org.jboss.tools.drools.ui.bot.test.smoke.ManageDroolsProject;
+import org.jboss.tools.drools.ui.bot.test.smoke.ManageDroolsRules;
+import org.jboss.tools.drools.ui.bot.test.smoke.ManageDroolsRuntime;
+import org.jboss.tools.drools.ui.bot.test.smoke.OpenDroolsPerspective;
+import org.jboss.tools.drools.ui.bot.test.smoke.RuleFlowTest;
+import org.jboss.tools.ui.bot.ext.RequirementAwareSuite;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.SWTUtilExt;
+import org.jboss.tools.ui.bot.ext.config.ServerBean;
+import org.jboss.tools.ui.bot.ext.config.TestConfigurator;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.PerspectiveType;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ *
+ * This is Drools swtbot test case for JBoss Tools.
+ *
+ * @author Vladimir Pakan
+ *
+ */
+(a)RunWith(RequirementAwareSuite.class)
+@SuiteClasses({
+ OpenDroolsPerspective.class,
+ ManageDroolsRuntime.class,
+ ManageDroolsProject.class,
+ ManageDroolsRules.class,
+ DroolsRulesEditorTest.class,
+ // GuidedDroolsRulesEditorTest.class,
+ DomainSpecificLanguageEditorTest.class,
+ RuleFlowTest.class,
+ DecisionTableTest.class,
+ GuvnorRepositoriesTest.class,
+ DroolsViewsTest.class
+})
+public class DroolsAllBotTests extends SWTTestExt {
+ public static final String DROOLS_PROJECT_NAME = "droolsTest";
+ public static final String DROOLS_RUNTIME_NAME = "Drools Test Runtime";
+ public static String DROOLS_RUNTIME_LOCATION = null;
+ public static String CREATE_DROOLS_RUNTIME_LOCATION = null;
+ public static String SRC_MAIN_JAVA_TREE_NODE = "src/main/java";
+ public static String SRC_MAIN_RULES_TREE_NODE = "src/main/rules";
+ public static String COM_SAMPLE_TREE_NODE = "com.sample";
+ public static String DROOLS_TEST_JAVA_TREE_NODE = "DroolsTest.java";
+ public static final String TEST_DROOLS_RULE_NAME = "TestRule.drl";
+ public static final String SAMPLE_DROOLS_RULE_NAME = "Sample.drl";
+ 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";
+ 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";
+ public static final String GUVNOR_REPOSITORY_URL_PROPERTY_NAME = "guvnor-repository-url";
+ private static boolean USE_EXTERNAL_DROOLS_RUNTIME;
+ private static boolean isFirstRun = true;
+
+ private static String testDroolsRuntimeName = null;
+ private static String testDroolsRuntimeLocation = null;
+ private static String guvnorRepositoryUrl = null;
+ private static String guvnorRepositoryRootTreeItem = "http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/webdav/";
+
+ public static String getTestDroolsRuntimeName() {
+ return testDroolsRuntimeName;
+ }
+
+ public static void setTestDroolsRuntimeName(String testDroolsRuntimeName) {
+ DroolsAllBotTests.testDroolsRuntimeName = testDroolsRuntimeName;
+ }
+
+ public static String getTestDroolsRuntimeLocation() {
+ return testDroolsRuntimeLocation;
+ }
+
+ public static void setTestDroolsRuntimeLocation(String testDroolsRuntimeLocation) {
+ DroolsAllBotTests.testDroolsRuntimeLocation = testDroolsRuntimeLocation;
+ }
+
+ public static String getGuvnorRepositoryUrl() {
+ return guvnorRepositoryUrl;
+ }
+
+ private static void setGuvnorRepositoryUrl(String guvnorRepositoryUrl) {
+ DroolsAllBotTests.guvnorRepositoryUrl = guvnorRepositoryUrl;
+ }
+
+ public static String getGuvnorRepositoryRootTreeItem() {
+ return guvnorRepositoryRootTreeItem;
+ }
+
+ private static void setGuvnorRepositoryRootTreeItem(String guvnorRepositoryRootTreeItem) {
+ DroolsAllBotTests.guvnorRepositoryRootTreeItem = guvnorRepositoryRootTreeItem;
+ }
+
+ @BeforeClass
+ public static void setUpTest() {
+ if (isFirstRun) {
+ isFirstRun = false;
+ } else {
+ return;
+ }
+ props = util.loadProperties(Activator.PLUGIN_ID);
+ String guvnorRepositoryUrl = props.getProperty(DroolsAllBotTests.GUVNOR_REPOSITORY_URL_PROPERTY_NAME);
+ if (guvnorRepositoryUrl != null) {
+ DroolsAllBotTests.setGuvnorRepositoryUrl(guvnorRepositoryUrl);
+ DroolsAllBotTests.setGuvnorRepositoryRootTreeItem("http://localhost:8080" + guvnorRepositoryUrl);
+ }
+ String useExternalDroolRuntime = props.getProperty(DroolsAllBotTests.USE_EXTERNAL_DROOLS_RUNTIME_PROPERTY_NAME);
+ DroolsAllBotTests.USE_EXTERNAL_DROOLS_RUNTIME = useExternalDroolRuntime != null && useExternalDroolRuntime.equalsIgnoreCase("true");
+ String droolsRuntimeLocation = props.getProperty(DroolsAllBotTests.EXTERNAL_DROOLS_RUTIME_HOME_PROPERTY_NAME);
+ String tmpDir = System.getProperty("java.io.tmpdir");
+ if (droolsRuntimeLocation == null || droolsRuntimeLocation.length() == 0) {
+ DroolsAllBotTests.DROOLS_RUNTIME_LOCATION = tmpDir;
+ } else {
+ DroolsAllBotTests.DROOLS_RUNTIME_LOCATION = droolsRuntimeLocation;
+ }
+ DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION = tmpDir + File.separator + "drools";
+ // Create directory for Drools Runtime which will be created as a part of test
+ new File(DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION).mkdir();
+ try {
+ bot.button(IDELabel.Button.NO).click();
+ } catch (WidgetNotFoundException wnfe) {
+ // Do nothing ignore this error
+ }
+ try {
+ SWTBotView welcomeView = eclipse.getBot().viewByTitle(IDELabel.View.WELCOME);
+ welcomeView.close();
+ } catch (WidgetNotFoundException wnfe) {
+ // Do nothing ignore this error
+ }
+ // Close JBoss Central editor
+ for (SWTBotEditor editor : bot.editors()) {
+ if (IDELabel.View.JBOSS_CENTRAL.equals(editor.getTitle())) {
+ editor.close();
+ break;
+ }
+ }
+ eclipse.openPerspective(PerspectiveType.JAVA);
+ eclipse.maximizeActiveShell();
+
+ // Removes legacy files after previous run
+ ServerBean server = TestConfigurator.currentConfig.getServer();
+ if (server != null) {
+ final String serverHome = server.runtimeHome;
+ if (serverHome != null) {
+ deleteGuvnorRepositoryIfExists(serverHome + "/bin/");
+ }
+ }
+ }
+
+ private static void deleteGuvnorRepositoryIfExists(final String pathToDirectoryWithRepository) {
+ delete(new File(pathToDirectoryWithRepository + "repository.xml"));
+ delete(new File(pathToDirectoryWithRepository + "repository"));
+ }
+
+ public static boolean delete(final File file) {
+ if (!file.exists()) {
+ return false;
+ }
+ if (file.isDirectory()) {
+ for (final String s : file.list()) {
+ delete(new File(file, s));
+ }
+ }
+ return file.delete();
+ }
+
+ public static boolean useExternalDroolsRuntime() {
+ return USE_EXTERNAL_DROOLS_RUNTIME;
+ }
+
+ @AfterClass
+ public static void tearDownTest() {
+ // delete created drools runtime
+ SWTUtilExt.deleteDirectory(DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION);
+ }
+}
\ No newline at end of file
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DecisionTableTest.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DecisionTableTest.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DecisionTableTest.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,53 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.junit.Test;
+/**
+ * Tests Decision Table
+ * @author Vladimir Pakan
+ *
+ */
+public class DecisionTableTest extends SWTTestExt{
+ /**
+ * Tests Decision Table
+ */
+ @Test
+ public void testDecisionTable() {
+ runDecisionTable(DroolsAllBotTests.DECISION_TABLE_JAVA_TEST_FILE_NAME);
+ }
+ /**
+ * Runs newly created Drools project and check result
+ * @param decisionTableFileName
+ */
+ private void runDecisionTable(String decisionTableFileName){
+ console.clearConsole();
+ bot.sleep(5000L);
+
+ SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(decisionTableFileName,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
+
+ eclipse.runTreeItemAsJavaApplication(tiTestFile);
+
+ String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+
+ assertTrue(decisionTableFileName + " didn't run properly.\n" +
+ "Console Text was: " + consoleText + "\n" +
+ "Expected console text is: Hello World\nGoodbye cruel world\n",
+ consoleText.endsWith("Hello World\nGoodbye cruel world\n"));
+ }
+}
\ No newline at end of file
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,229 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
+import org.jboss.tools.ui.bot.ext.parts.SWTBotEditorExt;
+import org.jboss.tools.ui.bot.ext.types.EntityType;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.JobName;
+import org.jboss.tools.ui.bot.ext.view.ProblemsView;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.junit.Test;
+/**
+ * Tests Domain Specific Language Editor
+ * @author Vladimir Pakan
+ *
+ */
+public class DomainSpecificLanguageEditorTest extends SWTTestExt{
+ /**
+ * Tests Domain Specific Language Editor
+ */
+ private static final String LANGUAGE_EXRESSION = "Message {msg} of type {t} contains {what}";
+ @Test
+ public void testDomainSpecificLanguageEditor() {
+ createDslFile(DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME);
+ addDslExpression(DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME);
+ useDslExpression(DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME,
+ DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
+ runDslExpressionCheck(DroolsAllBotTests.DROOLS_TEST_JAVA_TREE_NODE,
+ DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME);
+ }
+ /**
+ * Creates DSL File
+ * @param dslFileName
+ */
+ private void createDslFile(String dslFileName){
+ packageExplorer.show();
+ SWTBotTreeItem tiRules = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
+
+ tiRules.select();
+ eclipse.createNew(EntityType.DSL_DROOLS_FILE);
+ bot.textWithLabel(IDELabel.NewDslDroolsFileDialog.FILE_NAME).setText(dslFileName);
+ eclipse.selectTreeLocation(DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ "src",
+ "main",
+ "rules");
+ bot.button(IDELabel.Button.FINISH).click();
+ bot.sleep(Timing.time1S());
+ tiRules.expand();
+ // Test if new DSL File is within package tree view
+ assertTrue("New DSL File was not created properly. It's not present within Package Explorer",
+ SWTEclipseExt.containsTreeItemWithLabel(tiRules, dslFileName));
+ // Test if new DSL File is opened in editor
+ assertTrue("New DSL File was not created properly. File " + dslFileName + " is not opened in editor",
+ SWTEclipseExt.existEditorWithLabel(bot,dslFileName));
+
+ }
+ /**
+ * Adds DSL Expression to DSL File
+ * @param dslFileName
+ */
+ private void addDslExpression(String dslFileName){
+ SWTBotEditor dslRuleEditor = bot.editorByTitle(dslFileName);
+ SWTBot dslRuleEditorBot = dslRuleEditor.bot();
+ dslRuleEditorBot
+ .button(IDELabel.Button.ADD_WITHOUT_DOTS).click();
+ SWTBot dialogBot = dslRuleEditorBot
+ .shell(IDELabel.DslDroolsFileEditor.ADD_LANGUAGE_MAPPING_DIALOG_TITLE)
+ .activate()
+ .bot();
+
+ dialogBot.textWithLabel(IDELabel.DslDroolsFileEditor.LANGUAGE_EXPRESSION_TEXT_LABEL)
+ .setText(DomainSpecificLanguageEditorTest.LANGUAGE_EXRESSION);
+ dialogBot.textWithLabel(IDELabel.DslDroolsFileEditor.RULE_MAPPING_TEXT_LABEL)
+ .setText("{msg} : Message(status == {t}, {what} : message)");
+ dialogBot.comboBoxWithLabel(IDELabel.DslDroolsFileEditor.SCOPE_COMBO_LABEL)
+ .setSelection(IDELabel.DslDroolsFileEditor.SCOPE_COMBO_VALUE);
+ dialogBot.button(IDELabel.Button.OK).click();
+ dslRuleEditor.save();
+
+ assertTrue("DSL table has to containt this Language Expression:\n" +
+ DomainSpecificLanguageEditorTest.LANGUAGE_EXRESSION,
+ SWTEclipseExt.isItemInTableColumn(dslRuleEditorBot.table(),
+ DomainSpecificLanguageEditorTest.LANGUAGE_EXRESSION,
+ 0));
+
+ }
+ /**
+ * Use defined language expression in dslFileName file within sampleDrlFileName file
+ * @param dslFileName
+ * @param sampleDrlFileName
+ */
+ private void useDslExpression (String dslFileName,String sampleDrlFileName){
+ packageExplorer.show();
+ SWTBotEclipseEditor drlDroolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME).toTextEditor();
+ SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
+ ruleEditor.selectPage(IDELabel.DroolsEditor.TEXT_EDITOR_TAB);
+ // update drl file
+ drlDroolsEditor.insertText(3,0,"\nexpander " +
+ dslFileName +
+ ";\n");
+ int[] linesToIgnoreExpander = new int[]{8,10,11,12,13,20};
+ for (int lineNumber : linesToIgnoreExpander){
+ drlDroolsEditor.insertText(lineNumber,0,">");
+ }
+ drlDroolsEditor.selectLine(18);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCode(bot.getDisplay(),(int)SWT.DEL);
+ bot.sleep(Timing.time1S());
+ drlDroolsEditor.insertText(18, 0, " Message m of type Message.GOODBYE contains myMessage");
+ drlDroolsEditor.save();
+ util.waitForJobs(Timing.time10S(), JobName.BUILDING_WS);
+ SWTBotTreeItem[] errors = ProblemsView
+ .getFilteredErrorsTreeItems(bot,
+ null,
+ null,
+ sampleDrlFileName,
+ null);
+ assertTrue("File "
+ + sampleDrlFileName
+ + " was not udpated properly. There are these errors: "
+ + SWTEclipseExt.getFormattedTreeNodesText(errors),
+ errors == null || errors.length == 0);
+
+ SWTBotTreeItem[] warnings = ProblemsView
+ .getFilteredWarningsTreeItems(bot,
+ null,
+ null,
+ sampleDrlFileName,
+ null);
+ assertTrue("File "
+ + sampleDrlFileName
+ + " was not udpated properly. There are these warnings: "
+ + SWTEclipseExt.getFormattedTreeNodesText(warnings),
+ warnings == null || warnings.length == 0);
+ }
+ /**
+ * Runs javaFileName testing defined DSL
+ * @param javaFileName
+ * @param dslFileName
+ */
+ private void runDslExpressionCheck(String javaFileName,
+ String dslFileName){
+
+ packageExplorer.show();
+ SWTBotEclipseEditor drlDroolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE,
+ javaFileName).toTextEditor();
+ // Change java file content to support new DSL
+ updateJavaTestFile(drlDroolsEditor,dslFileName);
+
+ console.clearConsole();
+ bot.sleep(Timing.time5S());
+
+ SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(javaFileName,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
+
+ eclipse.runTreeItemAsJavaApplication(tiTestFile);
+
+ String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+
+ assertTrue(javaFileName + " didn't run properly.\n" +
+ "Console Text was: " + consoleText + "\n" +
+ "Expected console text is: " + "Hello World\nGoodbye cruel world\n",
+ "Hello World\nGoodbye cruel world\n".equals(consoleText));
+ }
+ /**
+ * Update properly Java Test file in drlDroolsEditor to be able to run
+ * with new DSL definition
+ * @param drlDroolsEditor
+ * @param dslFileName
+ */
+ private void updateJavaTestFile(SWTBotEclipseEditor drlDroolsEditor,
+ String dslFileName){
+ int lineIndex = 0;
+ String foundLineText = null;
+ while (lineIndex < drlDroolsEditor.getLineCount() && foundLineText == null){
+ String lineText = drlDroolsEditor.getTextOnLine(lineIndex);
+ if(lineText.trim().startsWith("kbuilder.add")){
+ foundLineText = lineText;
+ }
+ else{
+ lineIndex++;
+ }
+ }
+ if (foundLineText != null){
+ drlDroolsEditor.insertText(lineIndex,0,
+ "kbuilder.add(ResourceFactory.newClassPathResource(\"" +
+ dslFileName +
+ "\"), ResourceType.DSL);\n");
+ lineIndex++;
+ drlDroolsEditor.selectLine(lineIndex);
+ KeyboardHelper.pressKeyCode(bot.getDisplay(),(int)SWT.DEL);
+ drlDroolsEditor.insertText(foundLineText
+ .replace("ResourceType.DRL","ResourceType.DSLR") + "\n");
+ drlDroolsEditor.save();
+ util.waitForJobs(Timing.time10S(), JobName.BUILDING_WS);
+ }
+ else{
+ throw new RuntimeException("File " +
+ drlDroolsEditor.getTitle() +
+ " has wrong content. It doesn't contain 'kbuilder.add' string.");
+ }
+ }
+
+}
\ No newline at end of file
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,95 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
+import org.eclipse.swtbot.swt.finder.utils.Position;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.parts.ContentAssistBot;
+import org.jboss.tools.ui.bot.ext.parts.SWTBotEditorExt;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.junit.Test;
+/**
+ * Tests Drools Rule Editor
+ * @author Vladimir Pakan
+ *
+ */
+public class DroolsRulesEditorTest extends SWTTestExt{
+ /**
+ * Tests Drools Rule Editor
+ */
+ private static final String CONTENT_ASSIST_IMPORT = "import";
+ private static final String CONTENT_ASSIST_MESSAGE = "Message";
+ @Test
+ public void testDroolsRulesEditor() {
+ codeCompletionCheck(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
+ reteViewCheck(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
+ }
+ /**
+ * Check code completion for Drools Rule
+ * @param droolsRuleName
+ */
+ private void codeCompletionCheck(String droolsRuleName){
+
+ packageExplorer.show();
+ packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,droolsRuleName);
+ SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(droolsRuleName);
+ ruleEditor.selectPage(IDELabel.DroolsEditor.TEXT_EDITOR_TAB);
+ ruleEditor.typeText(3, 0, "i");
+ ContentAssistBot contentAssist = ruleEditor.contentAssist();
+ contentAssist.checkContentAssist(DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT, true);
+ ruleEditor.typeText(6, 0, "m");
+ contentAssist.checkContentAssist(DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE, true);
+
+ SWTBotEclipseEditor ruleTextEditor = ruleEditor.toTextEditor();
+ String lineText = ruleTextEditor.getTextOnLine(3).trim();
+ assertTrue("Content Assist for " + DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT +
+ " was not inserted properly.\n" +
+ "Inserted text is: " + lineText + "\n" +
+ "Expected text is: " + DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT,
+ lineText.equals(DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT));
+
+ lineText = ruleTextEditor.getTextOnLine(6).trim();
+ String messageContentAssistText = DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE + "( )";
+ assertTrue("Content Assist for " + DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE +
+ " was not inserted properly.\n" +
+ "Inserted text is: " + lineText + "\n" +
+ "Expected text has to stard with: " + messageContentAssistText,
+ lineText.startsWith(messageContentAssistText));
+
+ Position cursorPosition = ruleTextEditor.cursorPosition();
+ assertTrue("Content Assist for " + DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE +
+ " was not inserted properly.\n" +
+ "Position of cursor is wrong: " + cursorPosition + "\n" +
+ "Expected X cursor position is: " + 9,
+ cursorPosition.column == 9);
+
+ ruleEditor.close();
+
+ }
+ /**
+ * Check Rete View of Drools Rule
+ * @param droolsRuleName
+ */
+ private void reteViewCheck(String droolsRuleName){
+
+ packageExplorer.show();
+ packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,droolsRuleName);
+ SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(droolsRuleName);
+ ruleEditor.selectPage(IDELabel.DroolsEditor.RETE_TREE_TAB);
+
+ }
+}
+
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,589 @@
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.withLabel;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.ui.bot.ext.SWTOpenExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.gen.IView;
+import org.jboss.tools.ui.bot.ext.helper.DragAndDropHelper;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+
+/**
+ * Test class for testing Drools views.
+ *
+ * @author jgargula
+ */
+public class DroolsViewsTest extends SWTTestExt {
+
+ private static final String PROJECT_NAME = "droolsViewsTest";
+ private static final String RULES_FILE = "Sample.drl";
+ private static final String RULES_FILE_PATH = "src/main/rules";
+ private static final String JAVA_FILE = "DroolsTest.java";
+ private static final String JAVA_FILE_PATH = "src/main/java";
+ private static final String SAMPLE_TREE_NODE = "com.sample";
+ private static final String GLOBAL_VARIABLE_NAME = "globalString";
+ private static final String GLOBAL_VARIABLE_VALUE = "abcd";
+ private static final String LOG_FILE = "test.log";
+ private static boolean isFirstTimeRun = true;
+
+ /**
+ * Prepares all necessary things.
+ */
+ @Before
+ public void setUp() {
+ if (isFirstTimeRun) {
+ eclipse.closeAllEditors();
+ manageProject();
+ setUpOnce();
+ }
+
+ SWTBotTreeItem javaTreeItem = packageExplorer.selectTreeItem(JAVA_FILE, new String[] {PROJECT_NAME, JAVA_FILE_PATH, SAMPLE_TREE_NODE});
+ eclipse.debugTreeItemAsDroolsApplication(javaTreeItem);
+
+ if (isFirstTimeRun) {
+ eclipse.closeConfirmPerspectiveSwitchShellIfOpened(false, true);
+ } else {
+ while (bot.waitForShell(IDELabel.Shell.PROGRESS_INFORMATION, 0) != null) {
+ bot.sleep(Timing.time2S());
+ }
+ }
+
+ // waits for running debugging
+ while (!eclipse.isDebugging()) {
+ bot.sleep(Timing.time500MS());
+ }
+
+ // waits for stopping at breakpoint
+ while (!eclipse.isSuspendedAtBreakpoint()) {
+ bot.sleep(Timing.time1S());
+ }
+
+ isFirstTimeRun = false;
+ bot.sleep(Timing.time1S());
+ }
+
+ /**
+ * This should be executed just before the first test.
+ */
+ private void setUpOnce() {
+ adjustDroolsTestFile();
+ adjustSampleFile();
+ bot.saveAllEditors();
+ }
+
+ /**
+ * Deletes all existing projects
+ * and creates brand new project.
+ */
+ private void manageProject() {
+ ManageDroolsProject.createDroolsProject(PROJECT_NAME);
+
+ Widget openingProjectWidget = null;
+ try {
+ openingProjectWidget = bot.widget(withLabel("Drools Runtime"));
+ } catch (WidgetNotFoundException wnfe) {
+ // openingProjectWidget should be null in this case
+ }
+ for (int i = 0; i < 30; i++) {
+ if (openingProjectWidget == null || (openingProjectWidget.isDisposed()
+ && packageExplorer.bot().tree().getAllItems().length > 0)) {
+ break;
+ } else {
+ bot.sleep(Timing.time2S());
+ }
+ }
+ }
+
+ /**
+ * Finishes tests.
+ */
+ @After
+ public void tearDown() {
+ eclipse.closeView(IDELabel.View.AGENDA);
+ eclipse.closeView(IDELabel.View.GLOBAL_DATA);
+ eclipse.closeView(IDELabel.View.AUDIT);
+ eclipse.closeView(IDELabel.View.WORKING_MEMORY);
+ eclipse.finishDebug();
+ }
+
+ /**
+ * Test of Agenda view.
+ */
+ @Test
+ public void agendaTest() {
+ bot.editorByTitle(RULES_FILE).show();
+ eclipse.stepOver();
+ openView(IDELabel.View.AGENDA);
+ HashSet<Activation> expectedSet = new HashSet<Activation>(2);
+ // indicies are not compared
+ expectedSet.add(new Activation(0, "Bye Bye"));
+ expectedSet.add(new Activation(1, "GoodBye"));
+ assertEquals(expectedSet, new HashSet<Activation>(getActivationsFromAgenda()));
+ eclipse.resumeDebug();
+ final String CONSOLE_TEXT_MESSAGE_1 = "Expected console text is:\n";
+ final String CONSOLE_TEXT_MESSAGE_2 = "but was:\n";
+ final String EXPECTED_CONSOLE_TEXT_1 = "Hello World\nGoodbye cruel world\nabcd\n";
+ final String EXPECTED_CONSOLE_TEXT_2 = "JustBye rule\nFinished\n";
+ assertTrue(CONSOLE_TEXT_MESSAGE_1 + EXPECTED_CONSOLE_TEXT_1 + CONSOLE_TEXT_MESSAGE_2 + console.getConsoleText(),
+ EXPECTED_CONSOLE_TEXT_1.equals(console.getConsoleText()));
+ expectedSet.clear();
+ expectedSet.add(new Activation(0, "Finish rule"));
+ showView(IDELabel.View.AGENDA);
+ assertEquals(expectedSet, new HashSet<Activation>(getActivationsFromAgenda()));
+ eclipse.finishDebug();
+ assertTrue(CONSOLE_TEXT_MESSAGE_1 + EXPECTED_CONSOLE_TEXT_1 + EXPECTED_CONSOLE_TEXT_2 + CONSOLE_TEXT_MESSAGE_2
+ + console.getConsoleText(), (EXPECTED_CONSOLE_TEXT_1 + EXPECTED_CONSOLE_TEXT_2).equals(console.getConsoleText()));
+ }
+
+ /**
+ * Tests refreshing of Agenda view.
+ */
+ @Test
+ @Ignore
+ public void refreshAgendaTest() {
+ openView(IDELabel.View.AGENDA);
+ eclipse.stepOver();
+ assertTrue("Agenda is not refreshing automatically.", bot.tree().getAllItems()[0].getItems().length > 0);
+ }
+
+ /**
+ * Test of global variable in Global Data.
+ */
+ @Test
+ public void globalDataTest() {
+ openView(IDELabel.View.GLOBAL_DATA);
+ assertTrue("Global data has wrong number of items. Expected 1 but was "
+ + bot.tree().getAllItems().length, bot.tree().getAllItems().length == 1);
+ assertTrue("Global data does not contain variable '" + GLOBAL_VARIABLE_NAME + "' with value '"
+ + GLOBAL_VARIABLE_VALUE + "'", bot.tree().getAllItems()[0].getText()
+ .contains(GLOBAL_VARIABLE_NAME + "= \"" + GLOBAL_VARIABLE_VALUE + "\""));
+ }
+
+ /**
+ * Test of Audit view.
+ */
+ @Test
+ public void auditTest() {
+ eclipse.finishDebug();
+ openView(IDELabel.View.AUDIT);
+ SWTBotView auditView = bot.viewByTitle(IDELabel.View.AUDIT);
+ assertEquals("Tree in Audit view should be empty, but it has " + auditView.bot().tree().getAllItems().length
+ + " items.", 0, auditView.bot().tree().getAllItems().length);
+ packageExplorer.selectTreeItem(PROJECT_NAME, null).contextMenu(IDELabel.Menu.REFRESH).click();
+ assertTrue("Log file '" + LOG_FILE + "' was not created.", packageExplorer.existsResource(PROJECT_NAME, LOG_FILE));
+ SWTBotTreeItem treeItem = packageExplorer.selectTreeItem(LOG_FILE, new String[] {PROJECT_NAME});
+ DragAndDropHelper.dragAndDropOnTo(treeItem.widget, auditView.getWidget());
+ SWTBotTreeItem[] auditTreeItems = auditView.bot().tree().getAllItems();
+ assertTrue("Tree in Audit view should not be empty, but it was.", auditTreeItems.length > 0);
+ assertFalse("Log file '" + LOG_FILE + "' was not loaded properly into Audit view.",
+ "The selected audit log is empty.".equals(auditTreeItems[0].getText()));
+ assertEquals("Tree in Audit view has wrong number of items.", 4, auditTreeItems.length);
+ int index = 0;
+ assertTrue("The first node of the audit view's tree does not contain right text.",
+ auditTreeItems[index].getText().startsWith("Object inserted"));
+ assertEquals("The first node has wrong number of items", 1, auditTreeItems[index].getItems().length);
+ assertTrue("Child node of the first node does not contain right text.",
+ auditTreeItems[index].getItems()[0].getText().startsWith("Activation created: Rule Hello World"));
+ index = 1;
+ assertTrue("The second node does not contain the right text.",
+ auditTreeItems[index].getText().startsWith("Activation executed: Rule Hello World"));
+ assertEquals("The second node has wrong number of items.", 1, auditTreeItems[index].getItems().length);
+ assertTrue("Child node of the second node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getText().startsWith("Object updated"));
+ assertEquals("Child node of the second node has wrong number of items.", 2, auditTreeItems[index].getItems()[0].getItems().length);
+ assertTrue("Child node of the second node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getItems()[0].getText().startsWith("Activation created: Rule GoodBye"));
+ assertTrue("Child node of the second node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getItems()[1].getText().startsWith("Activation created: Rule Bye Bye"));
+ index = 2;
+ assertTrue("The third node does not contain the right text.",
+ auditTreeItems[index].getText().startsWith("Activation executed: Rule Bye Bye"));
+ assertEquals("The third node has wrong number of items.", 1, auditTreeItems[index].getItems().length);
+ assertTrue("Child node of the third node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getText().startsWith("Object updated"));
+ assertEquals("Child node of the third node has wrong number of items.", 2, auditTreeItems[index].getItems()[0].getItems().length);
+ assertTrue("Child node of the third node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getItems()[0].getText().startsWith("Activation created: Rule Finish rule"));
+ assertTrue("Child node of the third node does not contain the right text.",
+ auditTreeItems[index].getItems()[0].getItems()[1].getText().startsWith("Activation cancelled: Rule GoodBye"));
+ index = 3;
+ assertTrue("The fourth node does not contain the right text.",
+ auditTreeItems[index].getText().startsWith("Activation executed: Rule Finish rule"));
+ assertEquals("The fourth node has wrong number of items.", 0, auditTreeItems[index].getItems().length);
+
+ auditView.toolbarButton("Clear Log").click();
+ assertEquals("Tree should be empty, but it was not.", 0, auditView.bot().tree().getAllItems().length);
+ }
+
+ /**
+ * Test of Working Memory view
+ */
+ @Test
+ public void workingMemoryTest() {
+ openView(IDELabel.View.WORKING_MEMORY);
+
+ SWTBotTree workingMemoryTree = bot.tree();
+ assertEquals("Working memory tree was expected to have exactly 1 root item, but it had "
+ + workingMemoryTree.getAllItems().length + " root items.", 1, workingMemoryTree.getAllItems().length);
+
+ String rootItemText = workingMemoryTree.getAllItems()[0].getText();
+ assertNotNull(rootItemText);
+ assertTrue("Root item of working memory tree had unexpected text: " + rootItemText,
+ rootItemText.contains("DroolsTest$Message"));
+
+ List<String> treeItemsStrings = workingMemoryTree.expandNode(rootItemText).getNodes();
+ final int EXPECTED_ITEMS = 6;
+ assertEquals("There should be " + EXPECTED_ITEMS + " items but was " + treeItemsStrings.size(),
+ EXPECTED_ITEMS, treeItemsStrings.size());
+
+ String messageString = "message= \"Goodbye cruel world\"";
+ String statusString = "status= 1";
+ String[] itemsStrings = new String[] {"BYE= 2", "FINISH= 3","GOODBYE= 1", "HELLO= 0", messageString, statusString};
+ Set<String> expectedWorkingMemorySet = new HashSet<String>(EXPECTED_ITEMS);
+ for (int i = 0; i < itemsStrings.length; i++) {
+ expectedWorkingMemorySet.add(itemsStrings[i]);
+ }
+ assertEquals(expectedWorkingMemorySet, getWorkingMemoryItems(rootItemText));
+
+ eclipse.resumeDebug();
+ expectedWorkingMemorySet.remove(messageString);
+ expectedWorkingMemorySet.remove(statusString);
+ messageString = "message= \"JustBye rule\"";
+ statusString = "status= 3";
+ expectedWorkingMemorySet.add(messageString);
+ expectedWorkingMemorySet.add(statusString);
+ assertEquals(expectedWorkingMemorySet, getWorkingMemoryItems(rootItemText));
+
+ eclipse.resumeDebug();
+ expectedWorkingMemorySet.clear();
+ showView(IDELabel.View.CONSOLE);
+ showView(IDELabel.View.WORKING_MEMORY);
+ assertEquals("Working memory view should be empty. Maybe it was not refreshed.",
+ expectedWorkingMemorySet, getWorkingMemoryItems(rootItemText));
+ }
+
+ /**
+ * Gets working memory items from Working Memory view.
+ *
+ * @param rootNode Root node name
+ * @return Set of strings representing working memory items.
+ */
+ private Set<String> getWorkingMemoryItems(final String rootNode) {
+ waitForStoppingDebugging();
+ showView(IDELabel.View.WORKING_MEMORY);
+ Set<String> stringSet = new HashSet<String>();
+
+ List<String> nodesStrings = null;
+ try {
+ nodesStrings = bot.tree().expandNode(rootNode).getNodes();
+ } catch (WidgetNotFoundException wnfe) {
+ return stringSet;
+ }
+
+ for (String s : nodesStrings) {
+ final int index = s.indexOf('(');
+ if (index > 0) {
+ s = s.substring(0, index);
+ }
+ stringSet.add(s.trim());
+ }
+
+ return stringSet;
+ }
+
+ /**
+ * Waits while debugging is stopped at breakpoint or finished.
+ */
+ private void waitForStoppingDebugging() {
+ for (int i = 0; i < 20; i++) {
+ SWTBotMenu resumeMenu = bot.menu(IDELabel.Menu.RUN).menu(IDELabel.Menu.RESUME);
+ if (resumeMenu.isEnabled()) {
+ return;
+ }
+ SWTBotMenu terminateMenu = bot.menu(IDELabel.Menu.RUN).menu(IDELabel.Menu.TERMINATE);
+ if (!resumeMenu.isEnabled() && !terminateMenu.isEnabled()) {
+ return;
+ }
+ bot.sleep(Timing.time1S());
+ }
+ }
+
+ /**
+ * Adds some pieces of code to DroolsTest.java
+ */
+ private void adjustDroolsTestFile() {
+ packageExplorer.show();
+ SWTBotEclipseEditor droolsTestEditor = packageExplorer.openFile(PROJECT_NAME,
+ JAVA_FILE_PATH, SAMPLE_TREE_NODE, JAVA_FILE).toTextEditor();
+ droolsTestEditor.insertText(46, 0, " public static final int BYE = 2;\n"
+ + " public static final int FINISH = 3;\n");
+ droolsTestEditor.insertText(20, 0, " ksession.setGlobal(\""
+ + GLOBAL_VARIABLE_NAME + "\", \"" + GLOBAL_VARIABLE_VALUE + "\");\n");
+ }
+
+ /**
+ * Adds some source code to Sample.drl
+ */
+ private void adjustSampleFile() {
+ packageExplorer.show();
+ SWTBotEclipseEditor sampleEditor = packageExplorer.openFile(PROJECT_NAME,
+ RULES_FILE_PATH, RULES_FILE).toTextEditor();
+ sampleEditor.insertText(20, 0, "\nrule \"Bye Bye\"\n"
+ + " when\n"
+ + " m : Message(status == Message.BYE || status == Message.GOODBYE, myMessage : message)\n"
+ + " then\n"
+ + " System.out.println(myMessage);\n"
+ + " System.out.println(globalString);\n"
+ + " m.setMessage(\"JustBye rule\");\n"
+ + " m.setStatus(Message.FINISH);\n"
+ + " update(m);\n"
+ + "end\n\n"
+ + "rule \"Finish rule\"\n"
+ + " when\n"
+ + " Message(status == Message.FINISH, myMessage : message)\n"
+ + " then\n"
+ + " System.out.println(myMessage);\n"
+ + " System.out.println(\"Finished\");\n"
+ + "end\n");
+ sampleEditor.insertText(16, 8, "m : ");
+ sampleEditor.insertText(19, 0, " m.setMessage(\"Bye Bye\");\n"
+ + " m.setStatus(Message.BYE);\n"
+ + " update(m);\n");
+ sampleEditor.insertText(4, 0, "global String globalString;\n\n");
+ eclipse.setNewBreakpoints(sampleEditor, 13, 35);
+ }
+
+ /**
+ * This method opens view with given title.
+ *
+ * @param viewTitle Title of desired view.
+ */
+ private void openView(final String viewTitle) {
+ checkViewTitleNull(viewTitle);
+
+ IView iView;
+ try {
+ iView = (IView) Class.forName("org.jboss.tools.ui.bot.ext.gen.ActionItem$View$Drools"
+ + viewTitle.replace(" ", "")).getField("LABEL").get(null);
+ } catch (Exception e) {
+ throw new IllegalArgumentException("It is not possible to get IView object for view with title '"
+ + viewTitle + "'.", e);
+ }
+
+ new SWTOpenExt(bot).viewOpen(iView);
+ }
+
+ /**
+ * Shows view with given title.
+ * It shows and focuses chosen view.
+ * If view is closed then it is opened.
+ *
+ * @param viewTitle Title of desired view.
+ */
+ private void showView(final String viewTitle) {
+ checkViewTitleNull(viewTitle);
+ boolean isViewOpened = false;
+ for (final SWTBotView view : bot.views()) {
+ if (viewTitle.equals(view.getTitle())) {
+ view.getWidget().getDisplay().syncExec(new Runnable() {
+ public void run() {
+ view.show();
+ view.setFocus();
+ }
+ });
+ isViewOpened = true;
+ break;
+ }
+ }
+ if (!isViewOpened) {
+ openView(viewTitle);
+ }
+ }
+
+ /**
+ * Checks if given string is null and if so this method
+ * throws IllegalArgumentException.
+ *
+ * @param viewTitle String to check.
+ */
+ private void checkViewTitleNull(final String viewTitle) {
+ if (viewTitle == null) {
+ throw new IllegalArgumentException("'viewTitle' cannot be null");
+ }
+ }
+
+ /**
+ * Gets list of current activations in working memory.
+ *
+ * @return List of current activations in working memory
+ */
+ private List<Activation> getActivationsFromAgenda() {
+ List<Activation> activations = new ArrayList<Activation>();
+ bot.tree().expandNode(bot.tree().getAllItems()[0].getText(), true);
+ for (SWTBotTreeItem item : bot.tree().getAllItems()[0].getItems()) {
+ Activation activation = new Activation(
+ parseIndex(item.getText()),
+ parseRuleName(item.getItems()[0].getText()));
+ activations.add(activation);
+ }
+ return activations;
+ }
+
+ /**
+ * Parses text for an activation index in working memory.
+ *
+ * @param text Text to parse
+ * @return index of activation in working memory
+ */
+ private int parseIndex(final String text) {
+ int beginIndex = text.indexOf('[');
+ int endIndex = text.indexOf(']');
+ if (beginIndex < 0 || endIndex < 0) {
+ throw new IllegalArgumentException("Given text is not parsable for index. Given text was '" + text + "'");
+ }
+ return Integer.valueOf(text.substring(beginIndex + 1, endIndex));
+ }
+
+ /**
+ * Parses rule name of activation in working memory.
+ *
+ * @param text Text to parse
+ * @return Rule name
+ */
+ private String parseRuleName(final String text) {
+ if (!text.startsWith("ruleName")) {
+ return null;
+ }
+ int i = text.indexOf('"');
+ return text.substring(i + 1, text.indexOf('"', i + 1));
+ }
+
+ /**
+ * This class is representation of activation in working memory.
+ *
+ * @author jgargula
+ */
+ private class Activation {
+ private int index = 0;
+ private String ruleName = null;
+
+ /**
+ * Constructor.
+ */
+ public Activation() {
+ super();
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param index Index of activation
+ */
+ public Activation(int index) {
+ this();
+ setIndex(index);
+ }
+
+ /**
+ * Constructor.
+ *
+ * @param index Index of activation
+ * @param ruleName Rule name of activation
+ */
+ public Activation(int index, String ruleName) {
+ this(index);
+ setRuleName(ruleName);
+ }
+
+ /**
+ * Getter for <code>index</code>.
+ *
+ * @return index of activation
+ */
+ public int getIndex() {
+ return index;
+ }
+
+ /**
+ * Setter for <code>index</code>.
+ *
+ * @param index Index to be set on the activation
+ */
+ public void setIndex(int index) {
+ this.index = index;
+ }
+
+ /**
+ * Getter for <code>ruleName</code>.
+ *
+ * @return rule name of activation
+ */
+ public String getRuleName() {
+ return ruleName;
+ }
+
+ /**
+ * Setter for <code>ruleName</code>.
+ * @param ruleName
+ */
+ public void setRuleName(String ruleName) {
+ this.ruleName = ruleName;
+ }
+
+ /**
+ * @return String representation of activation.
+ */
+ public String toString() {
+ return "Activation [index=" + getIndex() + "; ruleName=\"" + getRuleName() + "\"]";
+ }
+
+ /**
+ * Hash code.
+ */
+ @Override
+ public int hashCode() {
+ return 31 + ((ruleName == null) ? 0 : ruleName.hashCode());
+ }
+
+ /**
+ * Two activations are equal if they have the same rule name.
+ * Indicies are ignored while comparing.
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if (obj == null || !(obj instanceof Activation)) {
+ return false;
+ }
+ if (this == obj) {
+ return true;
+ }
+ Activation other = (Activation) obj;
+ if (getRuleName() == null) {
+ if (other.getRuleName() != null) {
+ return false;
+ }
+ }
+ if (getRuleName() == null && other.getRuleName() == null) {
+ return true;
+ }
+ return getRuleName().equals(other.getRuleName());
+ }
+ }
+}
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,175 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import java.awt.event.KeyEvent;
+
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.helper.ImageHyperlinkHelper;
+import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
+import org.jboss.tools.ui.bot.ext.parts.SWTBotEditorExt;
+import org.jboss.tools.ui.bot.ext.types.EntityType;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.junit.Test;
+/**
+ * Tests Guided Drools Rule Editor
+ * @author Vladimir Pakan
+ *
+ */
+public class GuidedDroolsRulesEditorTest extends SWTTestExt{
+ private static final String DROOLS_PACKAGE_FILE = "drools.package";
+ /**
+ * Tests Guided Drools Rule Editor
+ */
+ @Test
+ public void testGuidedDroolsRulesEditorTest() {
+ createGuidedDroolsRule(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ editDroolsPackageFile();
+ addGuidedDroolsRuleCondition(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ removeGuidedDroolsRuleCondition(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ }
+ /**
+ * Creates Guided Drools Rule
+ * @param guidedDroolsRuleName
+ */
+ private void createGuidedDroolsRule(String guidedDroolsRuleName){
+ packageExplorer.show();
+ SWTBotTreeItem tiRules = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
+
+ tiRules.select();
+ eclipse.createNew(EntityType.GUIDED_DROOLS_RULE);
+ bot.textWithLabel(IDELabel.NewGuidedDroolsRuleDialog.FILE_NAME).setText(guidedDroolsRuleName);
+ eclipse.selectTreeLocation(DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ "src",
+ "main",
+ "rules");
+ bot.button(IDELabel.Button.FINISH).click();
+ bot.sleep(Timing.time1S());
+ tiRules.expand();
+ // Test if new Drools Rule is within package tree view
+ assertTrue("New Guided Drools Rule was not created properly. It's not present within Package Explorer",
+ SWTEclipseExt.containsTreeItemWithLabel(tiRules, guidedDroolsRuleName));
+ // Test if new Drools Rule is opened in editor
+ assertTrue("New Guided Drools Rule was not created properly. File " + guidedDroolsRuleName + " is not opened in editor",
+ SWTEclipseExt.existEditorWithLabel(bot,guidedDroolsRuleName));
+ // Test if drools.package file is within package tree view
+ assertTrue("New Guided Drools Rule was not created properly. It's not present within Package Explorer",
+ SWTEclipseExt.containsTreeItemWithLabel(tiRules,
+ GuidedDroolsRulesEditorTest.DROOLS_PACKAGE_FILE));
+ }
+ /**
+ * Edits drools.package file.
+ * Actually only adds import java.util.List to file
+ */
+ private void editDroolsPackageFile(){
+ packageExplorer.show();
+ SWTBotEclipseEditor droolsPackageEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ GuidedDroolsRulesEditorTest.DROOLS_PACKAGE_FILE).toTextEditor();
+ droolsPackageEditor.setText(droolsPackageEditor.getText() +
+ "\nimport java.util.List;");
+ droolsPackageEditor.save();
+ droolsPackageEditor.close();
+ }
+
+ private void addGuidedDroolsRuleCondition(String guidedDroolsRuleName){
+ packageExplorer.show();
+ SWTBotEclipseEditor droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
+ SWTBot droolsEditorBot = droolsEditor.bot();
+ droolsEditorBot.toolbarButton().click();
+ SWTBotShell dialogShell = droolsEditorBot.shell(IDELabel.GuidedDroolsRuleEditor.WHEN_ADD_DIALOG_TITLE);
+ dialogShell.activate();
+ dialogShell.bot().comboBoxWithLabel(IDELabel.GuidedDroolsRuleEditor.WHEN_ADD_FACT_COMBO)
+ .setSelection("List");
+ ImageHyperlinkHelper
+ .imageHyperlinkWithTooltip(droolsEditorBot,
+ IDELabel.GuidedDroolsRuleEditor.ADD_FIELD_TO_THIS_CONDITION_TOOLTIP)
+ .click();
+ dialogShell = droolsEditorBot.shell(IDELabel.GuidedDroolsRuleEditor.UPDATE_CONSTRAINTS_DIALOG_TITLE);
+ dialogShell.activate();
+ dialogShell.bot().comboBox()
+ .setSelection(IDELabel.GuidedDroolsRuleEditor.ADD_RESTRICTION_ON_A_FIELD_COMBO_VALUE);
+ droolsEditorBot.comboBox()
+ .setSelection(IDELabel.GuidedDroolsRuleEditor.WHEN_COMBO_CONSTRAINTS_VALUE);
+ ImageHyperlinkHelper
+ .imageHyperlinkWithTooltip(droolsEditorBot,
+ IDELabel.GuidedDroolsRuleEditor.CHOOSE_VALUE_EDITOR_TYPE_TOOLTIP)
+ .click();
+ dialogShell = droolsEditorBot.shell(IDELabel.GuidedDroolsRuleEditor.SELECT_VALUE_EDITOR_TYPE_DIALOG_TITLE);
+ dialogShell.activate();
+ dialogShell.bot().comboBoxWithLabel(IDELabel.GuidedDroolsRuleEditor.SELECT_VALUE_EDITOR_TYPE_COMBO_LABEL)
+ .setSelection(IDELabel.GuidedDroolsRuleEditor.SELECT_VALUE_EDITOR_TYPE_COMBO_VALUE);
+ droolsEditorBot.comboBox(1).setSelection(IDELabel.GuidedDroolsRuleEditor.FIELD_VALUE_COMBO_VALUE);
+ droolsEditor.save();
+ droolsEditor.close();
+ droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
+ SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ ruleEditor.selectPage(2);
+ String editorContent = droolsEditor.getText();
+ assertTrue(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME +
+ " has to contain text: List( empty == true )\n" +
+ "but it doesn't.\n" +
+ "It contains this text: " + editorContent,
+ editorContent.replaceAll(" ","").indexOf("List(empty==true)") > 0);
+ }
+ /**
+ * Removes Drools Rule Condition from Guided Drools Rule
+ * @param guidedDroolsRuleName
+ */
+ private void removeGuidedDroolsRuleCondition(String guidedDroolsRuleName){
+ packageExplorer.show();
+ SWTBotEclipseEditor droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
+ SWTBot droolsEditorBot = droolsEditor.bot();
+ SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ ruleEditor.selectPage(0);
+ ImageHyperlinkHelper
+ .imageHyperlinkWithTooltip(droolsEditorBot,
+ IDELabel.GuidedDroolsRuleEditor.REMOVE_THIS_CONDITION_TOOLTIP)
+ .click();
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ bot.sleep(Timing.time1S());
+ droolsEditor.save();
+ droolsEditor.close();
+ droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
+ ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
+ ruleEditor.selectPage(2);
+ String editorContent = droolsEditor.getText();
+ assertTrue(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME +
+ " has to contain textjak e:\nwhen\nthen\n" +
+ "but it doesn't.\n" +
+ "It contains this text: " + editorContent,
+ ruleEditor.getTextOnLine(2).trim().equals("when") &&
+ ruleEditor.getTextOnLine(3).trim().equals("then"));
+ }
+
+}
\ No newline at end of file
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,559 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import static org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable.syncExec;
+
+import java.awt.event.KeyEvent;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory;
+import org.eclipse.swtbot.swt.finder.results.StringResult;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.hamcrest.Matcher;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.SWTUtilExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.config.Annotations.Require;
+import org.jboss.tools.ui.bot.ext.config.Annotations.Server;
+import org.jboss.tools.ui.bot.ext.config.Annotations.ServerState;
+import org.jboss.tools.ui.bot.ext.config.requirement.PrepareViews;
+import org.jboss.tools.ui.bot.ext.config.requirement.RequirementNotFulfilledException;
+import org.jboss.tools.ui.bot.ext.config.requirement.StartServer;
+import org.jboss.tools.ui.bot.ext.config.requirement.StopServer;
+import org.jboss.tools.ui.bot.ext.gen.ActionItem.View.GuvnorGuvnorResourceHistory;
+import org.jboss.tools.ui.bot.ext.helper.ContextMenuHelper;
+import org.jboss.tools.ui.bot.ext.helper.DragAndDropHelper;
+import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
+import org.jboss.tools.ui.bot.ext.parts.SWTBotBrowserExt;
+import org.jboss.tools.ui.bot.ext.types.EntityType;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.JobName;
+import org.jboss.tools.ui.bot.ext.types.PerspectiveType;
+import org.jboss.tools.ui.bot.ext.view.GuvnorRepositories;
+import org.junit.Test;
+/**
+ * Tests Guvnor Repositories
+ * @author Vladimir Pakan
+ *
+ */
+@Require(server = @Server(state = ServerState.Present),
+clearProjects=false,
+clearWorkspace=false,
+runOnce=true,
+perspective="Guvnor Repository Exploring"
+)
+public class GuvnorRepositoriesTest extends SWTTestExt{
+ @SuppressWarnings("unused")
+ private static final Logger log = Logger.getLogger(GuvnorRepositoriesTest.class);
+ private static final String GUVNOR_TEST_FILE = "Dummy rule.drl";
+ private static final String GUVNOR_REPOSITORY_IMPORT_TEST_FILE = "Underage.brl";
+ private static final String GUVNOR_REPOSITORY_HISTORY_TEST_FILE = "MortgageModel.model.drl";
+ private static final String GUVNOR_USER_NAME = "admin";
+ private static final String GUVNOR_PASSWORD = "admin";
+ private GuvnorRepositories guvnorRepositories = new GuvnorRepositories();
+
+ /**
+ * Tests Guvnor Repositories
+ */
+ @Test
+ public void testGuvnorRepositories() {
+ startGuvnor();
+ addGuvnorRepository();
+ deleteGuvnorRepository();
+ addGuvnorRepository();
+ openGuvnorConsole();
+ drillIntoFunctionalityCheck();
+ browseGuvnorRepository(GuvnorRepositoriesTest.GUVNOR_TEST_FILE);
+ guvnorFunctionalityCheck(GuvnorRepositoriesTest.GUVNOR_TEST_FILE,
+ DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME,
+ GuvnorRepositoriesTest.GUVNOR_REPOSITORY_IMPORT_TEST_FILE);
+ repositoryHistoryCheck(GuvnorRepositoriesTest.GUVNOR_REPOSITORY_HISTORY_TEST_FILE);
+ stopGuvnor();
+ }
+
+ /**
+ * Adds Guvnor Repository
+ */
+ private void addGuvnorRepository(){
+ eclipse.openPerspective(PerspectiveType.GUVNOR_REPOSITORY_EXPLORING);
+ SWTBot guvnorRepositoriesBot = guvnorRepositories.show().bot();
+ SWTUtilExt.getViewToolbarButtonWithTooltip(
+ guvnorRepositories.show(),
+ IDELabel.GuvnorRepositories.ADD_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ eclipse.waitForShell("");
+ SWTBot addGuvnorRepositoryDialog = guvnorRepositoriesBot.activeShell().bot();
+ String guvnorRepositoryUrl = DroolsAllBotTests.getGuvnorRepositoryUrl();
+ if (guvnorRepositoryUrl != null && guvnorRepositoryUrl.length() > 0){
+ addGuvnorRepositoryDialog.textWithLabel(IDELabel.GuvnorAddRepositoryDialog.REPOSITORY)
+ .setText(guvnorRepositoryUrl);
+ }
+ addGuvnorRepositoryDialog.button(IDELabel.Button.FINISH).click();
+ assertTrue("Guvnor repository was not created properly",
+ guvnorRepositoriesBot.tree().rowCount() == 1);
+ }
+ /**
+ * Deletes Guvnor Repostiry
+ */
+ private void deleteGuvnorRepository(){
+ SWTBot guvnorRepositoriesBot = guvnorRepositories.show().bot();;
+ SWTBotTree guvnorRepositoryTree = guvnorRepositoriesBot.tree();
+ guvnorRepositoryTree.select(0);
+ SWTUtilExt.getViewToolbarButtonWithTooltip(
+ guvnorRepositories.show(),
+ IDELabel.GuvnorRepositories.REMOVE_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ guvnorRepositoriesBot.shell(IDELabel.GuvnorRepositories.REMOVE_GUVNOR_REPOSITORY_DIALOG_TITLE)
+ .activate();
+ bot.button(IDELabel.Button.OK).click();
+ assertTrue("Guvnor repository was not deleted properly",
+ guvnorRepositoriesBot.tree().rowCount() == 0);
+ }
+
+ /**
+ * Opens Guvnor Console
+ */
+ private void openGuvnorConsole(){
+ SWTBot guvnorRepositoriesBot = guvnorRepositories.show().bot();
+ SWTBotTree guvnorRepositoryTree = guvnorRepositoriesBot.tree();
+ SWTBotTreeItem tiGuvnorRepository = guvnorRepositoryTree.getAllItems()[0];
+ ContextMenuHelper.prepareTreeItemForContextMenu(guvnorRepositoryTree, tiGuvnorRepository);
+ new SWTBotMenu(ContextMenuHelper.getContextMenu(guvnorRepositoryTree,
+ IDELabel.Menu.OPEN_GUVNOR_CONSOLE, false)).click();
+ bot.sleep(Timing.time5S());
+ SWTBotBrowserExt browser = bot.browserByTitle(IDELabel.GuvnorConsole.GUVNOR_CONSOLE_TITLE);
+ browser.setInputTextViaJavaScript(GuvnorRepositoriesTest.GUVNOR_USER_NAME, 1, bot);
+ browser.setInputTextViaJavaScript(GuvnorRepositoriesTest.GUVNOR_PASSWORD, 2, bot);
+ browser.clickOnButtonViaJavaScript(0, bot);
+ browser.clickOnButtonViaJavaScript(IDELabel.GuvnorConsole.BUTTON_YES_INSTALL_SAMPLES, bot);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ bot.sleep(Timing.time30S()); // so long because of NFS filesystem on remote machines
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ }
+ /**
+ * Browse Guvnor Repository and open fileToOpenFile
+ * @param fileToOpen
+ */
+ private void browseGuvnorRepository(String fileToOpen){
+
+ guvnorRepositories.show();
+
+ guvnorRepositories.openFile(Timing.time3S(),DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
+ fileToOpen);
+
+ assertTrue("File from Guvnor Repository was not opened properly. File " + fileToOpen + " is not opened in editor",
+ SWTEclipseExt.existEditorWithLabel(bot,fileToOpen + " (Read only)"));
+
+ }
+ /**
+ * Starts Guvnor AS
+ */
+ private void startGuvnor(){
+ try {
+ new StartServer().fulfill();
+ new PrepareViews().fulfill();
+ } catch (RequirementNotFulfilledException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ /**
+ * Stops Guvnor AS
+ */
+ private void stopGuvnor(){
+ try {
+ new StopServer().fulfill();
+ } catch (RequirementNotFulfilledException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ /**
+ * Imports file with fileName to Drools project and check update and commit Guvnor functionality
+ * @param fileName
+ * @param sampleFileName
+ * @param importFileName
+ */
+ private void guvnorFunctionalityCheck(String fileName, String sampleFileName, String importFileName){
+ eclipse.openPerspective(PerspectiveType.JAVA);
+ guvnorRepositories.show().bot();
+ SWTBotTreeItem tiGuvnorFile = guvnorRepositories.selectTreeItem(Timing.time3S(),fileName,
+ new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM});
+ tiGuvnorFile.select();
+ SWTBot packageExplorerBot = packageExplorer.show().bot();
+ SWTBotTreeItem tiDroolRuleDir = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
+ DragAndDropHelper.dragAndDropOnTo(tiGuvnorFile.widget,tiDroolRuleDir.widget);
+ bot.waitForShell(IDELabel.Shell.COPY_FILE_FROM_GUVNOR_TO_PACKAGE_EXPLORER).activate();
+ bot.button(IDELabel.Button.OK).click();
+ SWTBotTree packageExplorerTree = packageExplorerBot.tree();
+ // File is renamed because there is appended Guvnor info to Tree Item Label
+ // So we need to get real label of Tree Item and use it later
+ SWTBotTreeItem tiDroolRuleFile = SWTEclipseExt.getTreeItemOnPathStartsWith(packageExplorerBot,
+ packageExplorerTree,
+ Timing.time1S(),
+ fileName,
+ new String[]{DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
+ SWTBotEditor editor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ tiDroolRuleFile.getText());
+
+ assertTrue("File moved from Guvnor Repository to Drools project was not opened properly. File " + fileName + " is not opened in editor",
+ SWTEclipseExt.existEditorWithLabel(bot,fileName));
+ // Test Update from Guvnor Repository
+ final String changeText = "#$%SWTBot Change#$%";
+ final String originalEditorText = editor.toTextEditor().getText();
+ editor.toTextEditor().insertText(0, 0, changeText);
+ editor.save();
+ bot.sleep(Timing.time1S());
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiDroolRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_UPDATE);
+ bot.sleep(Timing.time5S());
+ assertTrue("Update from Guvnor Repository was not successful. File " + fileName + " has not updated content.",
+ editor.toTextEditor().getText().equals(originalEditorText));
+ // Test commit to Guvnor Repository
+ editor.toTextEditor().insertText(0, 0, changeText);
+ editor.save();
+ bot.sleep(Timing.time1S());
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiDroolRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_COMMIT);
+ bot.sleep(Timing.time5S());
+ editor.close();
+ editor = guvnorRepositories.openFile(Timing.time2S(),DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
+ fileName);
+ String editorText = GuvnorRepositoriesTest.trimEditorText(editor.toTextEditor().getText());
+ String expectedEditorText = GuvnorRepositoriesTest.trimEditorText(changeText + originalEditorText);
+ assertTrue("Commit to Guvnor Repository was not successful. File " + fileName + " was not commited properly." +
+ "\nIt has content: " + editorText +
+ "\nExpected content: " + expectedEditorText,
+ editorText.equals(expectedEditorText));
+ // Test Add To Repository
+ SWTBotTreeItem tiSampleFile = packageExplorer.selectTreeItem(sampleFileName,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiSampleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_ADD);
+ eclipse.waitForShell("");
+ SWTBotShell addToGuvnorShell = packageExplorerBot.activeShell();
+ SWTBot addToGuvnorDialogBot = addToGuvnorShell.bot();
+ addToGuvnorDialogBot.button(IDELabel.Button.NEXT).click();
+ SWTEclipseExt.getTreeItemOnPath(addToGuvnorDialogBot,
+ addToGuvnorDialogBot.tree(),
+ Timing.time3S(),
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
+ new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM})
+ .select();
+ bot.sleep(Timing.time5S());
+ addToGuvnorDialogBot.button(IDELabel.Button.FINISH).click();
+ eclipse.waitForClosedShell(addToGuvnorShell);
+ boolean isAddedToGuvnorRepository = false;
+ try{
+ guvnorRepositories.selectTreeItem(Timing.time2S(),sampleFileName,
+ new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM});
+ isAddedToGuvnorRepository = true;
+ } catch (WidgetNotFoundException wnfe){
+ isAddedToGuvnorRepository = false;
+ }
+
+ assertTrue("File " + sampleFileName + " was not added to Guvnor Repository.",
+ isAddedToGuvnorRepository);
+ // Test Deleting from Guvnor Repository file is already selected in Guvnor Repository Tree
+ packageExplorerBot = packageExplorer.show().bot();
+ packageExplorerTree = packageExplorerBot.tree();
+ packageExplorerBot.sleep(Timing.time2S());
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiSampleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_DELETE);
+ SWTBot dialogBot = packageExplorerBot.shell(IDELabel.Shell.CONFIRM_DELETE).activate().bot();
+ dialogBot.button(IDELabel.Button.OK).click();
+ packageExplorerBot.sleep(Timing.time2S());
+ boolean isRemovedFromGuvnorRepository = false;
+ try{
+ guvnorRepositories.selectTreeItem(Timing.time2S(),sampleFileName,
+ new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM});
+ isRemovedFromGuvnorRepository = false;
+ } catch (WidgetNotFoundException wnfe){
+ isRemovedFromGuvnorRepository = true;
+ }
+ assertTrue("File " + sampleFileName + " was not removed from Guvnor Repository.",
+ isRemovedFromGuvnorRepository);
+ // Import File From Repository
+ eclipse.createNew(EntityType.RESOURCES_FROM_GUVNOR);
+ bot.button(IDELabel.Button.NEXT).click();
+ bot.sleep(Timing.time2S());
+ SWTEclipseExt.getTreeItemOnPath(
+ bot,
+ bot.tree(),
+ Timing.time5S(),
+ importFileName,
+ new String[] {
+ DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM }).select();
+ bot.button(IDELabel.Button.NEXT).click();
+ SWTEclipseExt.getTreeItemOnPath(bot,
+ bot.tree(),
+ Timing.time1S(),
+ "rules",
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,"src","main"}).select();
+ bot.button(IDELabel.Button.FINISH).click();
+ util.waitForJobs(Timing.time5S(),JobName.BUILDING_WS);
+ bot.sleep(Timing.time1S());
+ packageExplorerBot = packageExplorer.show().bot();
+ packageExplorerTree = packageExplorerBot.tree();
+ boolean isAddedFromGuvnorRepository = false;
+ SWTBotTreeItem tiImportRuleFile = null;
+ try{
+ tiImportRuleFile = SWTEclipseExt.getTreeItemOnPathStartsWith(packageExplorerBot,
+ packageExplorerTree,
+ Timing.time1S(),
+ importFileName,
+ new String[]{DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
+ isAddedFromGuvnorRepository = true;
+ } catch (WidgetNotFoundException wnfe){
+ isAddedFromGuvnorRepository = false;
+ }
+ assertTrue("File " + importFileName + " was not added from Guvnor Repository.",
+ isAddedFromGuvnorRepository);
+
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiImportRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_DISCONNECT);
+ bot.sleep(Timing.time1S());
+ // name of the file has to be without Guvnor information appended to end of file name
+ // when imported from Guvnor repository
+ assertTrue("File " + importFileName + " was not disconnected from Guvnor Repository.",
+ tiImportRuleFile.getText().trim().equals(importFileName));
+ }
+ private void drillIntoFunctionalityCheck(){
+ SWTBotView guvnorReposioryView = guvnorRepositories.show();
+ SWTBotTreeItem tiRoot = guvnorRepositories.selectTreeItem(DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),null)
+ .doubleClick();
+ bot.sleep(Timing.time5S());
+ SWTBotShell activeShell = bot.activeShell();
+ SWTBot dialogBot = null;
+ if (activeShell.getText().length() != 0){
+ dialogBot = bot.shell("").activate().bot();
+ }
+ else{
+ dialogBot = activeShell.bot();
+ }
+
+ dialogBot.textWithLabel(IDELabel.GuvnorConsoleLoginDialog.USER_NAME).setText(
+ GuvnorRepositoriesTest.GUVNOR_USER_NAME);
+ dialogBot.textWithLabel(IDELabel.GuvnorConsoleLoginDialog.PASSWORD).setText(
+ GuvnorRepositoriesTest.GUVNOR_PASSWORD);
+ dialogBot.button(IDELabel.Button.OK).click();
+ tiRoot.expand();
+ bot.sleep(Timing.time2S());
+ tiRoot.select(IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM);
+ SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
+ IDELabel.GuvnorRepositories.GO_INTO_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ SWTBot guvnorRepositoryBot = guvnorReposioryView.bot();
+ SWTBotTree guvnorRepositoryTree = guvnorRepositoryBot.tree();
+ guvnorRepositoryBot.sleep(Timing.time3S());
+ assertTrue("Guvnor repository Go Into functionality doesn't work properly.\n" +
+ "Expected First Tree Item in Guvnor Repository is " + IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM +
+ "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
+ IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM.equals(guvnorRepositoryTree.getAllItems()[0].getText()));
+
+ guvnorRepositories.selectTreeItem(Timing.time2S(), IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
+ null);
+ SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
+ IDELabel.GuvnorRepositories.GO_INTO_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ guvnorRepositoryBot.sleep(Timing.time3S());
+ assertTrue("Guvnor repository Go Into functionality doesn't work properly.\n" +
+ "Expected First Tree Item in Guvnor Repository is " + IDELabel.GuvnorRepositories.APPLICANTDSL_DSL_TREE_ITEM +
+ "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
+ IDELabel.GuvnorRepositories.APPLICANTDSL_DSL_TREE_ITEM.equals(guvnorRepositoryTree.getAllItems()[0].getText()));
+
+ SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
+ IDELabel.GuvnorRepositories.BACK_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ guvnorRepositoryBot.sleep(Timing.time3S());
+ assertTrue("Guvnor repository Back functionality doesn't work properly.\n" +
+ "Expected First Tree Item in Guvnor Repository is " + IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM +
+ "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
+ IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM.equals(guvnorRepositoryTree.getAllItems()[0].getText()));
+
+ SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
+ IDELabel.GuvnorRepositories.HOME_GUVNOR_REPOSITORY_TOOLTIP)
+ .click();
+ guvnorRepositoryBot.sleep(Timing.time3S());
+ assertTrue("Guvnor repository Home functionality doesn't work properly.\n" +
+ "Expected First Tree Item in Guvnor Repository is " + DroolsAllBotTests.getGuvnorRepositoryRootTreeItem() +
+ "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
+ DroolsAllBotTests.getGuvnorRepositoryRootTreeItem().equals(guvnorRepositoryTree.getAllItems()[0].getText()));
+ }
+ /**
+ * Check Repository History Functionality
+ * @param testFileName
+ */
+ private void repositoryHistoryCheck (String testFileName){
+ // Import File From Repository
+ eclipse.createNew(EntityType.RESOURCES_FROM_GUVNOR);
+ bot.button(IDELabel.Button.NEXT).click();
+ SWTEclipseExt.getTreeItemOnPath(
+ bot,
+ bot.tree(),
+ Timing.time5S(),
+ testFileName,
+ new String[] {
+ DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
+ IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
+ IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM }).select();
+ bot.button(IDELabel.Button.NEXT).click();
+ SWTEclipseExt.getTreeItemOnPath(bot,
+ bot.tree(),
+ Timing.time1S(),
+ "rules",
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,"src","main"}).select();
+ bot.button(IDELabel.Button.FINISH).click();
+ util.waitForJobs(Timing.time5S(),JobName.BUILDING_WS);
+ bot.sleep(Timing.time1S());
+ SWTBot packageExplorerBot = packageExplorer.show().bot();
+ SWTBotTree packageExplorerTree = packageExplorerBot.tree();
+ // File is renamed because there is appended Guvnor info to Tree Item Label
+ // So we need to get real label of Tree Item and use it later
+ SWTBotTreeItem tiTestRuleFile = SWTEclipseExt.getTreeItemOnPathStartsWith(packageExplorerBot,
+ packageExplorerTree,
+ Timing.time1S(),
+ testFileName,
+ new String[]{DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
+ SWTBotEditor editor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ tiTestRuleFile.getText());
+ // change test file
+ String addedChange = "SWTBOT Change!@#$asdfghjkl)(*&^";
+ editor.toTextEditor().insertText(0,0,addedChange);
+ editor.save();
+ bot.sleep(Timing.time1S());
+ // commit changes
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_COMMIT);
+ bot.sleep(Timing.time5S());
+ // check history
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_SHOW_HISTORY);
+ bot.sleep(Timing.time5S());
+ SWTBotView guvnorResourceHistoryView = open.viewOpen(GuvnorGuvnorResourceHistory.LABEL);
+ SWTBot guvnorResourceHistoryBot = guvnorResourceHistoryView.bot();
+ SWTBotTable guvnorResourceHistoryTable = guvnorResourceHistoryView.bot().table();
+ assertTrue("Guvnor Resource History table for file " + testFileName +
+ " has to contain at least one record but is empty.",
+ guvnorResourceHistoryTable.rowCount() > 0);
+ // Compare Revisions
+ String secondAddedChange = "222222" + addedChange;
+ editor.toTextEditor().insertText(0,0,secondAddedChange);
+ editor.saveAndClose();
+ bot.sleep(Timing.time1S());
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_COMPARE_WITH_VERSION);
+ eclipse.waitForShell("");
+ guvnorResourceHistoryBot.activeShell().bot().button(IDELabel.Button.OK).click();
+ SWTBotEditor compareEditor = bot.editorByTitle("Compare");
+ Matcher<StyledText> widgetOfTypeMatcher = WidgetMatcherFactory.widgetOfType(StyledText.class);
+ final List<?> styledTexts = compareEditor.bot().widgets(widgetOfTypeMatcher,compareEditor.getWidget());
+ String newVersionEditorText = syncExec(new StringResult() {
+ public String run() {
+ return ((StyledText)styledTexts.get(0)).getText();
+ }
+ });
+ String revisionEditorText = syncExec(new StringResult() {
+ public String run() {
+ return ((StyledText)styledTexts.get(1)).getText();
+ }
+ });
+ compareEditor.close();
+ assertTrue("Actual version of file opened within compare editor has wrong content.\n" +
+ "Content should start with " + secondAddedChange +
+ "\n but is " + newVersionEditorText,newVersionEditorText.startsWith(secondAddedChange));
+ assertTrue("File stored in Guvnor Repository opened within compare editor has wrong content.\n" +
+ "Content should start with " + addedChange +
+ "\n but is " + revisionEditorText,revisionEditorText.startsWith(addedChange));
+ // Open Revision
+ guvnorResourceHistoryView.show();
+ guvnorResourceHistoryTable.setFocus();
+ bot.sleep(Timing.time1S());
+ guvnorResourceHistoryTable.select(0);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
+ bot.sleep(Timing.time1S());
+ SWTBotEditor revisonFileEditor = eclipse.editorStartsWith(testFileName);
+ String revisionFileText = revisonFileEditor.toTextEditor().getText();
+ revisonFileEditor.close();
+ assertTrue("File stored in Guvnor Repository has wrong content.\n" +
+ "Content should start with " + addedChange +
+ "\n but is " + revisionFileText,revisionFileText.startsWith(addedChange));
+ // Switch to version
+ editor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ tiTestRuleFile.getText());
+ ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
+ ContextMenuHelper.clickContextMenu(packageExplorerTree,
+ IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_SWITCH_TO_VERSION);
+ eclipse.waitForShell("");
+ guvnorResourceHistoryBot.activeShell().bot().button(IDELabel.Button.OK).click();
+ bot.sleep(Timing.time3S());
+ String editorText = editor.toTextEditor().getText();
+ assertTrue("Switched version of file has wrong content.\n" +
+ "Content should start with " + addedChange +
+ "\n but is " + editorText,editorText.startsWith(addedChange));
+ }
+
+ private static String trimEditorText (String textToTrim){
+
+ return textToTrim.replaceAll("\n", "").replaceAll("\t", "").replaceAll("\r", "").replaceAll(" ", "");
+
+ }
+
+}
\ No newline at end of file
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsProject.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,167 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import java.io.File;
+
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotCheckBox;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.helper.FileRenameHelper;
+import org.jboss.tools.ui.bot.ext.types.EntityType;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.ViewType;
+import org.jboss.tools.ui.bot.ext.view.ProblemsView;
+import org.jboss.tools.ui.bot.test.WidgetVariables;
+import org.junit.Test;
+/**
+ * Test managing of Drools Project
+ * @author Vladimir Pakan
+ *
+ */
+public class ManageDroolsProject extends SWTTestExt{
+ /**
+ * Test manage Drools project
+ */
+ private static final String RENAMED_DROOLS_PROJECT = DroolsAllBotTests.DROOLS_PROJECT_NAME + "-renamed";
+
+ @Test
+ public void testManageDroolsProject() {
+ createDroolsProjectTest (DroolsAllBotTests.DROOLS_PROJECT_NAME);
+ runNewDroolsProject (DroolsAllBotTests.DROOLS_PROJECT_NAME);
+ renameDroolsProject (DroolsAllBotTests.DROOLS_PROJECT_NAME, ManageDroolsProject.RENAMED_DROOLS_PROJECT);
+ deleteDroolsProject (ManageDroolsProject.RENAMED_DROOLS_PROJECT);
+ createDroolsProjectTest (DroolsAllBotTests.DROOLS_PROJECT_NAME);
+ }
+
+ public static void createDroolsProject(String droolsProjectName) {
+ eclipse.showView(ViewType.PACKAGE_EXPLORER);
+ eclipse.createNew(EntityType.DROOLS_PROJECT);
+ bot.textWithLabel(IDELabel.NewDroolsProjectDialog.NAME).setText(droolsProjectName);
+ bot.button(IDELabel.Button.NEXT).click();
+ // check all buttons
+ int index = 0;
+ boolean checkBoxExists = true;
+ while (checkBoxExists){
+ try{
+ SWTBotCheckBox checkBox = bot.checkBox(index);
+ if (!checkBox.isChecked()){
+ checkBox.click();
+ }
+ index++;
+ }catch (WidgetNotFoundException wnfe){
+ checkBoxExists = false;
+ }catch (IndexOutOfBoundsException ioobe){
+ checkBoxExists = false;
+ }
+ }
+ 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(CODE_COMPATIBILITY);
+ bot.button(IDELabel.Button.FINISH).click();
+ }
+
+ /**
+ * Creates new Drools project
+ * @param droolsProjectName
+ */
+ private void createDroolsProjectTest(String droolsProjectName){
+ createDroolsProject(droolsProjectName);
+ SWTTestExt.util.waitForAll(30*1000L);
+ bot.waitForNumberOfShells(1, 60);
+ assertTrue("Project "
+ + droolsProjectName
+ + " was not created properly.",SWTEclipseExt.isProjectInPackageExplorer(bot,droolsProjectName));
+ String projectPath = File.separator + droolsProjectName;
+ SWTBotTreeItem[] errors = ProblemsView.getFilteredErrorsTreeItems(bot,null ,projectPath, null,null);
+ assertTrue("Project "
+ + droolsProjectName
+ + " was not created properly. There are these errors: "
+ + SWTEclipseExt.getFormattedTreeNodesText(errors),
+ errors == null || errors.length == 0);
+ SWTBotTreeItem[] warnings = ProblemsView.getFilteredWarningsTreeItems(bot,null ,projectPath, null,null);
+ assertTrue("Project "
+ + droolsProjectName
+ + " was not created properly. There are these warnings: "
+ + SWTEclipseExt.getFormattedTreeNodesText(warnings),
+ warnings == null || warnings.length == 0);
+
+ }
+ /**
+ * Runs newly created Drools project and check result
+ * @param droolsProjectName
+ */
+ private void runNewDroolsProject(String droolsProjectName){
+ console.clearConsole();
+ bot.sleep(5000L);
+
+ SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(DroolsAllBotTests.DROOLS_TEST_JAVA_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
+
+ eclipse.runTreeItemAsJavaApplication(tiTestFile);
+
+ String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+
+ assertTrue("DroolsTest.java class didn't run properly.\n" +
+ "Console Text was: " + consoleText + "\n" +
+ "Expected console text is: " + "Hello World\nGoodbye cruel world\n",
+ "Hello World\nGoodbye cruel world\n".equals(consoleText));
+ }
+ /**
+ * Renames Drools project and check result
+ * @param droolsProjectName
+ * @param renamedProjectName
+ */
+ private void renameDroolsProject(String droolsProjectName, String renamedProjectName){
+ packageExplorer.show();
+
+ bot.sleep(TIME_1S);
+
+ SWTBot webProjects = bot.viewByTitle(WidgetVariables.PACKAGE_EXPLORER).bot();
+ SWTBotTree tree = webProjects.tree();
+
+ tree.setFocus();
+ String checkResult = FileRenameHelper.checkProjectRenamingWithinPackageExplorer(bot,
+ DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ ManageDroolsProject.RENAMED_DROOLS_PROJECT,
+ IDELabel.Shell.RENAME_JAVA_PROJECT);
+ assertNull(checkResult,checkResult);
+ }
+
+ /**
+ * Deletes Drools project and check result
+ *
+ * @param droolsProjectName
+ */
+ private void deleteDroolsProject(final String droolsProjectName) {
+ bot.sleep(Timing.time10S()); // because of NFS filesystem
+ packageExplorer.deleteProject(droolsProjectName, true);
+ assertFalse("Drools project: " + droolsProjectName + " was not deleted properly",
+ packageExplorer.existsResource(droolsProjectName));
+ }
+}
+
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRules.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRules.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRules.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,118 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
+import org.eclipse.swtbot.swt.finder.SWTBot;
+import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.helper.ContextMenuHelper;
+import org.jboss.tools.ui.bot.ext.types.EntityType;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.ViewType;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.junit.Test;
+/**
+ * Test managing of Drools Rules
+ * @author Vladimir Pakan
+ *
+ */
+public class ManageDroolsRules extends SWTTestExt{
+ /**
+ * Test manage Drools Rules
+ */
+ @Test
+ public void testManageDroolsRules() {
+ createDroolsRule (DroolsAllBotTests.TEST_DROOLS_RULE_NAME);
+ bot.sleep(Timing.time3S());
+ debugDroolsRule (DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
+ }
+ /**
+ * Creates Drools Rule and checks result
+ * @param droolsRuletName
+ */
+ private void createDroolsRule(String droolsRuleName){
+
+ packageExplorer.show();
+ SWTBotTreeItem tiDroolsRules = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
+
+ tiDroolsRules.select();
+ eclipse.createNew(EntityType.DROOLS_RULE);
+
+ bot.textWithLabel(IDELabel.NewDroolsRuleDialog.FILE_NAME).setText(droolsRuleName);
+ bot.textWithLabel(IDELabel.NewDroolsRuleDialog.RULE_PACKAGE_NAME).setText(DroolsAllBotTests.COM_SAMPLE_TREE_NODE);
+ bot.button(IDELabel.Button.FINISH).click();
+ bot.sleep(Timing.time1S());
+ tiDroolsRules.expand();
+ // Test if new Drools Rule is within package tree view
+ boolean isRuleCreated = true;
+ try{
+ tiDroolsRules.getNode(droolsRuleName);
+ } catch (WidgetNotFoundException wnfe){
+ isRuleCreated = false;
+ }
+ assertTrue("New Drools Rule was not created properly. It's not present within Package Explorer",isRuleCreated);
+ // Test if new Drools Rule is opened in editor
+ isRuleCreated = true;
+ try{
+ bot.editorByTitle(droolsRuleName);
+ } catch (WidgetNotFoundException wnfe){
+ isRuleCreated = false;
+ }
+ assertTrue("New Drools Rule was not created properly. File " + droolsRuleName + " is not opened in editor",isRuleCreated);
+ }
+ /**
+ * Debug Drools Rule and checks result
+ * @param droolsRuletName
+ */
+ private void debugDroolsRule(String droolsRuleName){
+ packageExplorer.show();
+ SWTBotTreeItem tiDroolsRule = packageExplorer.selectTreeItem(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
+ SWTBot packageExplorerBot = bot.viewByTitle(ViewType.PACKAGE_EXPLORER.getViewLabel()).bot();
+ SWTBotTree tree = packageExplorerBot.tree();
+ // Select and Open Rule File
+ ContextMenuHelper.prepareTreeItemForContextMenu(tree , tiDroolsRule);
+ new SWTBotMenu(ContextMenuHelper.getContextMenu(tree, IDELabel.Menu.OPEN, true)).click();
+ SWTBotEclipseEditor ruleEditor = bot.editorByTitle(droolsRuleName).toTextEditor();
+ ruleEditor.selectRange(8, 0, 0);
+ bot.menu(IDELabel.Menu.RUN).menu(IDELabel.Menu.TOGGLE_BREAKPOINT).click();
+ SWTBotTreeItem tiDroolsTest = packageExplorer.selectTreeItem(DroolsAllBotTests.DROOLS_TEST_JAVA_TREE_NODE,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
+ console.clearConsole();
+ eclipse.debugTreeItemAsDroolsApplication(tiDroolsTest);
+ eclipse.closeConfirmPerspectiveSwitchShellIfOpened(false);
+ String consoleText = console.getConsoleText(3*1000L,3*1000L,true);
+ assertTrue("Drools Rule was not debuged properly.\nConsole content should have been empty but is:\n" + consoleText,
+ consoleText.length() == 0);
+ SWTBotView debugView = bot.viewByTitle(ViewType.DEBUG.getViewLabel());
+ debugView.toolbarButton(IDELabel.DebugView.BUTTON_STEP_OVER_TOOLTIP).click();
+ consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+ assertTrue("Drools Rule was not debuged properly.\nConsole content should be:\n'Hello World\n' but is:\n" + consoleText,
+ consoleText.equals("Hello World\n"));
+ debugView.toolbarButton(IDELabel.DebugView.BUTTON_RESUME_TOOLTIP).click();
+ consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+ assertTrue("Drools Rule was not debuged properly.\nConsole content should be:Hello World\nGoodbye cruel world\n" + consoleText,
+ consoleText.equals("Hello World\nGoodbye cruel world\n"));
+ }
+
+}
+
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,180 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import java.io.File;
+
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.IDELabel.PreferencesDialog;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.junit.Test;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
+import org.drools.eclipse.util.DroolsRuntimeManager;
+import org.drools.eclipse.util.DroolsRuntime;
+/**
+ * Test managing of Drools Runtime
+ * @author Vladimir Pakan
+ *
+ */
+public class ManageDroolsRuntime extends SWTTestExt{
+ /**
+ * Test manage Drools Runtime
+ */
+ @Test
+ public void testManageDroolsRuntime() {
+ addDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME,DroolsAllBotTests.DROOLS_RUNTIME_LOCATION,true);
+ editDroolsRuntime(DroolsAllBotTests.getTestDroolsRuntimeName(),
+ DroolsAllBotTests.getTestDroolsRuntimeLocation(),
+ "edited" , "testedit");
+ removeDroolsRuntime(DroolsAllBotTests.getTestDroolsRuntimeName());
+ createDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME,DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION);
+ if (DroolsAllBotTests.useExternalDroolsRuntime()){
+ removeDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME);
+ addDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME,DroolsAllBotTests.DROOLS_RUNTIME_LOCATION,true);
+ }
+ }
+ /**
+ * Adds Drools Runtime
+ * @param runtimeName
+ * @param runtimeLocation
+ * @param setAsDefault
+ */
+ private void addDroolsRuntime(String runtimeName, String runtimeLocation, boolean setAsDefault){
+ selectDroolsPreferences();
+ bot.button(IDELabel.Button.ADD).click();
+ bot.shell(IDELabel.Shell.DROOLS_RUNTIME).activate();
+ bot.textWithLabel(IDELabel.DroolsRuntimeDialog.NAME).setText(runtimeName);
+ bot.textWithLabel(IDELabel.DroolsRuntimeDialog.PATH).setText(runtimeLocation);
+ bot.button(IDELabel.Button.OK).click();
+ bot.shell(IDELabel.Shell.PREFERENCES).activate();
+ SWTBotTable table = bot.table();
+ boolean droolsRuntimeAdded =
+ SWTEclipseExt.isItemInTableColumn(table,runtimeName,IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX)
+ && SWTEclipseExt.isItemInTableColumn(table,runtimeLocation,IDELabel.DroolsRuntimeDialog.COLUMN_LOCATION_INDEX);
+ // Set new runtime as default
+ if (setAsDefault){
+ table.getTableItem(0).check();
+ }
+ bot.button(IDELabel.Button.OK).click();
+ assertTrue("Drools Runtime with name [" + runtimeName +
+ "] and location [" + runtimeLocation +
+ "] was not added properly.",droolsRuntimeAdded);
+ DroolsAllBotTests.setTestDroolsRuntimeName(runtimeName);
+ DroolsAllBotTests.setTestDroolsRuntimeLocation(runtimeLocation);
+ SWTEclipseExt.hideWarningIfDisplayed(bot);
+ }
+ /**
+ * Selects Drools Preferences within Preferences Dialog
+ */
+ private void selectDroolsPreferences(){
+ jbt.delay();
+ bot.menu(IDELabel.Menu.WINDOW).menu(IDELabel.Menu.PREFERENCES).click();
+ bot.shell(IDELabel.Shell.PREFERENCES).activate();
+ SWTBotTreeItem tiDroolsGroup = bot.tree().expandNode(IDELabel.PreferencesDialog.DROOLS_GROUP);
+ tiDroolsGroup.select(PreferencesDialog.INSTALLED_DROOLS_RUNTIMES);
+ }
+ /**
+ * Edits Drools Runtime
+ * @param runtimeName
+ * @param runtimeLocation
+ * @param nameSuffix
+ * @param locationSuffix
+ */
+ private void editDroolsRuntime(String runtimeName, String runtimeLocation, String nameSuffix, String locationSuffix){
+ selectDroolsPreferences();
+ SWTBotTable table = bot.table();
+ table.getTableItem(runtimeName).select();
+ bot.button(IDELabel.Button.EDIT).click();
+ bot.shell(IDELabel.Shell.DROOLS_RUNTIME).activate();
+ SWTBotText txName = bot.textWithLabel(IDELabel.DroolsRuntimeDialog.NAME);
+ SWTBotText txPath = bot.textWithLabel(IDELabel.DroolsRuntimeDialog.PATH);
+ String editedDroolsRuntimeName = txName.getText() + " " + nameSuffix;
+ String editedDroolsRuntimeLocation = txPath.getText() + File.separator + nameSuffix;
+ new File(editedDroolsRuntimeLocation).mkdir();
+ txName.setText(editedDroolsRuntimeName);
+ txPath.setText(editedDroolsRuntimeLocation);
+ bot.button(IDELabel.Button.OK).click();
+ bot.shell(IDELabel.Shell.PREFERENCES).activate();
+ boolean droolsRuntimeEdited =
+ SWTEclipseExt.isItemInTableColumn(table,editedDroolsRuntimeName,IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX)
+ && SWTEclipseExt.isItemInTableColumn(table,editedDroolsRuntimeLocation,IDELabel.DroolsRuntimeDialog.COLUMN_LOCATION_INDEX);
+ bot.button(IDELabel.Button.OK).click();
+ assertTrue("Drools Runtime with name [" + runtimeName +
+ "] and location [" + runtimeLocation +
+ "] was not renamed properly.",droolsRuntimeEdited);
+ DroolsAllBotTests.setTestDroolsRuntimeName(editedDroolsRuntimeName);
+ DroolsAllBotTests.setTestDroolsRuntimeLocation(editedDroolsRuntimeLocation);
+ SWTEclipseExt.hideWarningIfDisplayed(bot);
+ }
+
+ /**
+ * Removes Drools Runtime
+ * @param runtimeName
+ * @param runtimeLocation
+ */
+ private void removeDroolsRuntime(String runtimeName){
+ selectDroolsPreferences();
+ SWTBotTable table = bot.table();
+ table.getTableItem(runtimeName).select();
+ bot.button(IDELabel.Button.REMOVE).click();
+ boolean droolsRuntimeRemoved = !SWTEclipseExt.isItemInTableColumn(table,runtimeName,
+ IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX);
+ bot.button(IDELabel.Button.OK).click();
+ assertTrue("Drools Runtime with name [" + runtimeName +
+ "] was not removed properly.",droolsRuntimeRemoved);
+ // Remove temporary directory created within editDroolsRuntime() method
+ if (!DroolsAllBotTests.getTestDroolsRuntimeName().equals(DroolsAllBotTests.DROOLS_RUNTIME_NAME)){
+ File tempDir = new File (DroolsAllBotTests.getTestDroolsRuntimeLocation());
+ if (tempDir.isDirectory()){
+ tempDir.delete();
+ }
+ }
+ DroolsAllBotTests.setTestDroolsRuntimeName(null);
+ DroolsAllBotTests.setTestDroolsRuntimeLocation(null);
+ SWTEclipseExt.hideWarningIfDisplayed(bot);
+ }
+ /**
+ * Creates Drools Runtime
+ * @param runtimeName
+ * @param runtimeLocation
+ */
+ private void createDroolsRuntime(String runtimeName, String runtimeLocation){
+ DroolsRuntimeManager.createDefaultRuntime(runtimeLocation);
+ DroolsRuntime droolsRuntime = new DroolsRuntime();
+ droolsRuntime.setName(runtimeName);
+ droolsRuntime.setPath(runtimeLocation);
+ droolsRuntime.setDefault(true);
+ DroolsRuntimeManager.setDroolsRuntimes(new DroolsRuntime[]{droolsRuntime});
+ // Test if Drools runtime is defined
+ assertTrue("Drools Runtime was not properly created on location: " + runtimeLocation,
+ new File (runtimeLocation + File.separator + "drools-core.jar").exists());
+ selectDroolsPreferences();
+ SWTBotTable table = bot.table();
+ boolean droolsRuntimeCreated =
+ SWTEclipseExt.isItemInTableColumn(table,runtimeName,IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX)
+ && SWTEclipseExt.isItemInTableColumn(table,runtimeLocation,IDELabel.DroolsRuntimeDialog.COLUMN_LOCATION_INDEX);
+ bot.button(IDELabel.Button.OK).click();
+ SWTEclipseExt.hideWarningIfDisplayed(bot);
+ assertTrue("Drools Runtime with name [" + runtimeName +
+ "] and location [" + runtimeLocation +
+ "] was not created properly.",droolsRuntimeCreated);
+ DroolsAllBotTests.setTestDroolsRuntimeName(runtimeName);
+ DroolsAllBotTests.setTestDroolsRuntimeLocation(runtimeLocation);
+
+ }
+
+}
+
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,50 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.PerspectiveType;
+import org.junit.Test;
+/**
+ * Test opening perspective
+ * @author Vladimir Pakan
+ *
+ */
+public class OpenDroolsPerspective extends SWTTestExt{
+ /**
+ * Test Opening Drools Rules
+ */
+ @Test
+ public void testOpenDroolsPerspective() {
+ openDroolsPerspective();
+ }
+ /**
+ * Open Drools Perspective
+ */
+ private void openDroolsPerspective(){
+ eclipse.openPerspective(PerspectiveType.DROOLS);
+ boolean wasFound = false;
+ try{
+ bot.toolbarDropDownButtonWithTooltip(IDELabel.Button.DROOLS_WORKBENCH);
+ wasFound = true;
+ } catch (WidgetNotFoundException wnfe){
+ wasFound = false;
+ }
+ eclipse.openPerspective(PerspectiveType.JAVA);
+ assertTrue("Drools Perspective was not opened properly. Button " +
+ IDELabel.Button.DROOLS_WORKBENCH + " is not present in Workbench",
+ wasFound);
+ }
+}
+
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/RuleFlowTest.java 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,770 @@
+ /*******************************************************************************
+ * Copyright (c) 2007-2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.drools.ui.bot.test.smoke;
+
+import java.awt.event.KeyEvent;
+import java.io.File;
+import java.io.IOException;
+import java.util.Iterator;
+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;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotCheckBox;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
+import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
+import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
+import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
+import org.jboss.tools.ui.bot.ext.SWTOpenExt;
+import org.jboss.tools.ui.bot.ext.SWTTestExt;
+import org.jboss.tools.ui.bot.ext.SWTUtilExt;
+import org.jboss.tools.ui.bot.ext.Timing;
+import org.jboss.tools.ui.bot.ext.gen.ActionItem;
+import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
+import org.jboss.tools.ui.bot.ext.types.IDELabel;
+import org.jboss.tools.ui.bot.ext.types.ViewType;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+/**
+ * Tests Rule Flow
+ * @author Vladimir Pakan
+ *
+ */
+public class RuleFlowTest extends SWTTestExt{
+ private static final String RULE_FLOW_FILE_DIRECTORY = "src" + File.separator +
+ "main" + File.separator +
+ "rules";
+ private static final String ROOT_NODE_NAME = "process";
+ private static final String HEADER_NODE_NAME = "header";
+ private static final String NODES_NODE_NAME = "nodes";
+ private static final String CONNECTIONS_NODE_NAME = "connections";
+ private static final String CONNECTION_NODE_NAME = "connection";
+ private static final int NODES_NODE_CHILDREN_COUNT = 7;
+ private static final int CONNECTIONS_NODE_CHILDREN_COUNT = 1;
+ 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_FILE_NAME);
+ }
+
+ /**
+ * Sets all drools flow nodes.
+ */
+ @SuppressWarnings("unused")
+ private void setAllDroolsFlowNodes() {
+ new SWTOpenExt(bot).preferenceOpen(ActionItem.Preference.DroolsDroolsFlownodes.LABEL);
+ bot.waitForShell(IDELabel.Shell.PREFERENCES);
+ for (SWTBotCheckBox checkBox : bot.checkBoxes()) {
+ if (checkBox.isEnabled()) {
+ checkBox.select();
+ }
+ }
+ bot.button(IDELabel.Button.OK).click();
+ bot.waitForShell(IDELabel.Shell.WARNING);
+ bot.button(IDELabel.Button.OK).click();
+ }
+
+ /**
+ * Runs newly created Drools project and check result
+ * @param droolsProjectName
+ */
+ private void runRuleFlowCheck(String droolsRuleTestFileName){
+ console.clearConsole();
+ bot.sleep(5000L);
+
+ SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(droolsRuleTestFileName,
+ new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
+ DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
+ DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
+
+ eclipse.runTreeItemAsJavaApplication(tiTestFile);
+
+ String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
+
+ assertTrue(droolsRuleTestFileName + " didn't run properly.\n" +
+ "Console Text was: " + consoleText + "\n" +
+ "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) {
+ packageExplorer.show();
+ packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
+ 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)
+ .menu(IDELabel.Menu.MAXIMIZE_ACTIVE_VIEW_OR_EDITOR)
+ .click();
+ isEditorMaximized = true;
+ SWTGefBot gefBot = new SWTGefBot();
+ SWTBotGefEditor gefEditor = gefBot.gefEditor(ruleFlowFileName);
+ // Clear Editor
+ gefEditor.setFocus();
+ 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",
+ "Script Task"
+ };
+ int xspacing = 100;
+ int xoffset = 10;
+ int yspacing = 100;
+ int yoffset = 10;
+ for (int toolIndex = 0;toolIndex < tools.length;toolIndex++){
+ gefEditor.activateTool(tools[toolIndex]);
+ gefEditor.click(xspacing * (toolIndex % 3) + xoffset,
+ yspacing * (toolIndex / 3) + yoffset);
+ }
+ // Add Sequence Flow between Start and End Node
+ gefEditor.activateTool("Sequence Flow");
+ // Click on Start Node
+ gefEditor.click(xoffset + 5, yoffset + 5);
+ // Click on End Node
+ gefEditor.click(xspacing + xoffset + 5, yoffset + 5);
+ gefEditor.save();
+ checkFullRuleFile(DroolsAllBotTests.DROOLS_PROJECT_NAME , ruleFlowFileName);
+ // check synchronization with Properties View
+ gefEditor.activateTool("Select");
+ gefEditor.click(xoffset + 5, yoffset + 5);
+ SWTBotTree tree = eclipse.showView(ViewType.PROPERTIES).tree();
+ String id = tree.getTreeItem("Id").cell(1);
+ String name = tree.getTreeItem("Name").cell(1);
+ assertTrue("First editor element has to have Id=1 and Name=Start." +
+ "\nBut it has Id=" + id +
+ " Name=" + name, id.equals("1") && name.equals("Start"));
+ // Delete each component
+ gefEditor.activateTool("Select");
+ for (int toolIndex = 0;toolIndex < tools.length;toolIndex++){
+ gefEditor.click(xspacing * (toolIndex % 3) + xoffset + 10,
+ yspacing * (toolIndex / 3) + yoffset + 10);
+ gefEditor.setFocus();
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
+ }
+ // Restore maximized editor
+ bot.menu(IDELabel.Menu.WINDOW)
+ .menu(IDELabel.Menu.NAVIGATION)
+ .menu(IDELabel.Menu.MAXIMIZE_ACTIVE_VIEW_OR_EDITOR)
+ .click();
+ isEditorMaximized = false;
+ gefEditor.save();
+ gefEditor.close();
+ 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(final String projectName, final String ruleFlowFileName) {
+ String errorDescription = null;
+ Document doc = getNormalizedDocument(getFullPathToRuleFlowFile(projectName, ruleFlowFileName));
+ Element rootNode = doc.getDocumentElement();
+ if (rootNode.getNodeName().equals(ROOT_NODE_NAME)) {
+ NodeList rootNodeList = rootNode.getChildNodes();
+ List<Node> rootNodes = removeTextNodes(rootNodeList);
+ if (rootNodes.size() == ROOT_NODE_CHILDREN_COUNT) {
+ Node header = rootNodes.get(0);
+ errorDescription = checkEmptyFileNode(header, HEADER_NODE_NAME);
+ if (errorDescription == null) {
+ Node nodesNode = rootNodes.get(1);
+ errorDescription = checkNodeName(nodesNode, NODES_NODE_NAME);
+ if (errorDescription == null) {
+ errorDescription = checkNodesFileNodes(removeTextNodes(nodesNode
+ .getChildNodes()));
+ if (errorDescription == null) {
+ Node connectionsNode = rootNodes.get(2);
+ errorDescription = checkNodeName(connectionsNode,
+ CONNECTIONS_NODE_NAME);
+ if (errorDescription == null) {
+ errorDescription = checkConnectionsFileNodes(removeTextNodes(connectionsNode
+ .getChildNodes()));
+ }
+ }
+ }
+ }
+ } else {
+ errorDescription = "Root node has to have " + ROOT_NODE_CHILDREN_COUNT
+ + " child nodes but it has " + rootNodeList.getLength();
+ }
+ } else {
+ errorDescription = "Root node has to have name '" + ROOT_NODE_NAME
+ + "' but it has name '" + rootNode.getNodeName() + "'";
+ }
+ 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
+ * @param ruleFlowRfFileName
+ */
+ private void checkEmptyRFFile(String projectName, String ruleFlowFileName){
+
+ Document doc = loadXmlFile(SWTUtilExt.getPathToProject(projectName) +
+ File.separator + RuleFlowTest.RULE_FLOW_FILE_DIRECTORY + File.separator +
+ ruleFlowFileName);
+
+ String errorDescription = null;
+
+ Element rootNode = doc.getDocumentElement();
+ doc.normalizeDocument();
+ if (rootNode.getNodeName().equals(ROOT_NODE_NAME)) {
+ NodeList rootNodeList = rootNode.getChildNodes();
+ List<Node> nodes = removeTextNodes(rootNodeList);
+ if (nodes.size() == ROOT_NODE_CHILDREN_COUNT) {
+ Node header = nodes.get(0);
+ errorDescription = checkEmptyFileNode(header, HEADER_NODE_NAME);
+ if (errorDescription == null) {
+ Node nodesNode = nodes.get(1);
+ errorDescription = checkEmptyFileNode(nodesNode, NODES_NODE_NAME);
+ if (errorDescription == null) {
+ Node connnections = nodes.get(2);
+ errorDescription = checkEmptyFileNode(connnections, CONNECTIONS_NODE_NAME);
+ }
+ }
+ } else {
+ errorDescription = "Root node has to have " +
+ ROOT_NODE_CHILDREN_COUNT +
+ " child nodes but it has " +
+ rootNodeList.getLength();
+ }
+ } else {
+ errorDescription = "Root node has to have name '" + ROOT_NODE_NAME
+ + "' but it has name '" + rootNode.getNodeName() + "'";
+ }
+ assertNull(errorDescription,errorDescription);
+
+ }
+ /**
+ * Loads and parse XML file with fileName from file system
+ * @param fileName - full path to XML file
+ * @return
+ */
+ private Document loadXmlFile (String fileName){
+ File file = new File(fileName);
+ DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
+ DocumentBuilder db;
+ Document doc = null;
+ try {
+ db = dbf.newDocumentBuilder();
+ doc = db.parse(file);
+ } catch (ParserConfigurationException pce) {
+ throw new RuntimeException(pce);
+ } catch (SAXException saxe) {
+ throw new RuntimeException(saxe);
+ } catch (IOException ioe) {
+ throw new RuntimeException(ioe);
+ }
+ return doc;
+ }
+ private static List<Node> removeTextNodes(NodeList rootNodeList){
+ LinkedList<Node> nodes = new LinkedList<Node>();
+ for (int index = 0 ; index < rootNodeList.getLength(); index++){
+ Node node = rootNodeList.item(index);
+ if (!node.getNodeName().equals("#text")){
+ nodes.add(node);
+ }
+ }
+ return nodes;
+ }
+ /**
+ * Check if node is correct for empty file
+ * @param node
+ * @param expectedNodeName
+ * @return
+ */
+ private static String checkEmptyFileNode (Node node,String expectedNodeName){
+ String errorDescription = null;
+ if (node.getNodeName().equals(expectedNodeName)){
+ if (removeTextNodes(node.getChildNodes()).size() == 0){
+ if(node.getTextContent().trim().length() != 0){
+ errorDescription = expectedNodeName + " node has to have no text value but it has " +
+ node.getTextContent();
+ }
+ }
+ else{
+ errorDescription = expectedNodeName + " node has to have no children but is has " +
+ removeTextNodes(node.getChildNodes()).size();
+
+ }
+ }
+ else{
+ errorDescription = checkNodeName(node, expectedNodeName);
+ }
+
+ return errorDescription;
+
+ }
+ /**
+ * Check nodes of Nodes children.
+ * @param nodes - list of nodes of nodes node stripped from text nodes
+ * @return
+ */
+ private static String checkNodesFileNodes(List<Node> nodes){
+ String errorDescription = null;
+
+ if (nodes.size() == NODES_NODE_CHILDREN_COUNT){
+ List<String> mandatoryNodes = getMandatoryNodesOfNodesNode();
+ int index = 0;
+ Iterator<Node> iterator = nodes.iterator();
+ while (index < nodes.size() && errorDescription == null){
+ String nodeName = iterator.next().getNodeName();
+ if (mandatoryNodes.contains(nodeName)){
+ mandatoryNodes.remove(nodeName);
+ }
+ else{
+ errorDescription = "Nodes node cannot contain node " + nodeName;
+ }
+ index++;
+ }
+ if (errorDescription == null && mandatoryNodes.size() > 0) {
+ StringBuilder sb = new StringBuilder("");
+ for (String nodeName : mandatoryNodes){
+ if (sb.length() != 0){
+ sb.append(", ");
+ }
+ sb.append(nodeName);
+ }
+ errorDescription = "Nodes node doesn't contain all necesarry nodes.\n" +
+ "These node(s) are missing within nodes node: " +
+ sb.toString();
+ }
+ }
+ else{
+ errorDescription = "Nodes node has to have " +
+ NODES_NODE_CHILDREN_COUNT +
+ " child nodes but it has " +
+ nodes.size();
+ }
+
+ return errorDescription;
+ }
+ /**
+ * Returns list of mandatory nodes of nodes node
+ * @return
+ */
+ private static List<String> getMandatoryNodesOfNodesNode(){
+ LinkedList<String> allowedNodes = new LinkedList<String>();
+ allowedNodes.add("split");
+ /*
+ allowedNodes.add("timerNode");
+ allowedNodes.add("humanTask");
+ */
+ allowedNodes.add("ruleSet");
+ allowedNodes.add("actionNode");
+ /*
+ allowedNodes.add("composite");
+ */
+ allowedNodes.add("end");
+ /*
+ allowedNodes.add("workItem");
+ allowedNodes.add("fault");
+ */
+ allowedNodes.add("subProcess");
+ allowedNodes.add("start");
+ /*
+ allowedNodes.add("workItem");
+ allowedNodes.add("eventNode");
+ */
+ allowedNodes.add("join");
+
+ return allowedNodes;
+ }
+
+ /**
+ * Check nodes of connections children.
+ * @param nodes - list of nodes of connections node stripped from text nodes
+ * @return
+ */
+ private static String checkConnectionsFileNodes(List<Node> nodes){
+ String errorDescription = null;
+
+ if (nodes.size() == CONNECTIONS_NODE_CHILDREN_COUNT){
+ Node connectioNode = nodes.get(0);
+ errorDescription = checkEmptyFileNode(connectioNode, CONNECTION_NODE_NAME);
+ }
+ else{
+ errorDescription = "Conections node has to have " +
+ CONNECTIONS_NODE_CHILDREN_COUNT +
+ " child nodes but it has " +
+ nodes.size();
+ }
+
+ return errorDescription;
+ }
+ /**
+ * Check if node has expected name
+ * @param node
+ * @param expectedNodeName
+ * @return
+ */
+ private static String checkNodeName (Node node, String expectedNodeName){
+ String errorDescription = null;
+
+ if (!node.getNodeName().equals(expectedNodeName)){
+ errorDescription = "Node has to have name '" +
+ expectedNodeName + "' but it has name '" +
+ node.getNodeName() + "'";
+ }
+
+ return errorDescription;
+ }
+
+ protected void tearDown(){
+ if (isEditorMaximized){
+ // Restore maximized editor
+ bot.menu(IDELabel.Menu.WINDOW)
+ .menu(IDELabel.Menu.NAVIGATION)
+ .menu(IDELabel.Menu.MAXIMIZE_ACTIVE_VIEW_OR_EDITOR)
+ .click();
+ isEditorMaximized = false;
+ }
+ try {
+ super.tearDown();
+ } catch (Exception e) {
+ 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
+ * @param projectName
+ * @param ruleFlowFileName
+ */
+ private void deleteAllObjectsFromRFFile(SWTBotGefEditor gefEditor, String projectName, String ruleFlowFileName) {
+
+ Document doc = loadXmlFile(SWTUtilExt.getPathToProject(projectName)
+ + File.separator + RuleFlowTest.RULE_FLOW_FILE_DIRECTORY
+ + File.separator + ruleFlowFileName);
+
+ String errorDescription = null;
+ Element rootNode = doc.getDocumentElement();
+ doc.normalizeDocument();
+ if (rootNode.getNodeName().equals(ROOT_NODE_NAME)) {
+ NodeList rootNodeList = rootNode.getChildNodes();
+ List<Node> rootNodes = removeTextNodes(rootNodeList);
+ if (rootNodes.size() == ROOT_NODE_CHILDREN_COUNT) {
+ Node nodesNode = rootNodes.get(1);
+ errorDescription = checkNodeName(nodesNode, NODES_NODE_NAME);
+ if (errorDescription == null) {
+ List<Node> nodes = removeTextNodes(nodesNode.getChildNodes());
+ for (Node node : nodes){
+ NamedNodeMap attributes = node.getAttributes();
+ int xPos = Integer.parseInt(attributes.getNamedItem("x").getNodeValue());
+ int yPos = Integer.parseInt(attributes.getNamedItem("y").getNodeValue());
+ gefEditor.click(xPos + 3, yPos + 3);
+ bot.sleep(Timing.time1S());
+ KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
+ bot.sleep(Timing.time1S());
+ }
+ }
+ } else {
+ errorDescription = "'" + NODES_NODE_NAME + "'" +" was not found on expected location within RF file." +
+ " RF file structure has been changed";
+ }
+ } else {
+ errorDescription = "Root Node has to have name '" + ROOT_NODE_NAME + "'. RF file structure has been changed.";
+ }
+ 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
Added: trunk/build/aggregate/DEPRECATED_bottests-site/tests/pom.xml
===================================================================
--- trunk/build/aggregate/DEPRECATED_bottests-site/tests/pom.xml (rev 0)
+++ trunk/build/aggregate/DEPRECATED_bottests-site/tests/pom.xml 2012-04-23 18:02:23 UTC (rev 40419)
@@ -0,0 +1,16 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.jboss.tools</groupId>
+ <artifactId>org.jboss.tools.site.bottests.root</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ </parent>
+ <groupId>org.jboss.tools.bot.tests</groupId>
+ <artifactId>org.jboss.tools.bot.tests.tests</artifactId>
+ <version>0.0.2-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <modules>
+ <module>org.jboss.tools.drools.ui.bot.test</module>
+ </modules>
+</project>
13 years, 8 months
JBoss Tools SVN: r40418 - in trunk/build/aggregate/bottests-site: features and 11 other directories.
by jbosstools-commits@lists.jboss.org
Author: nickboldt
Date: 2012-04-23 14:01:46 -0400 (Mon, 23 Apr 2012)
New Revision: 40418
Removed:
trunk/build/aggregate/bottests-site/.gitignore
trunk/build/aggregate/bottests-site/features/.gitignore
trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/.gitignore
trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/build.properties
trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/epl-v10.html
trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/feature.xml
trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/pom.xml
trunk/build/aggregate/bottests-site/features/pom.xml
trunk/build/aggregate/bottests-site/plugins/.gitignore
trunk/build/aggregate/bottests-site/plugins/pom.xml
trunk/build/aggregate/bottests-site/pom.xml
trunk/build/aggregate/bottests-site/site/.gitignore
trunk/build/aggregate/bottests-site/site/associate.properties
trunk/build/aggregate/bottests-site/site/index.html
trunk/build/aggregate/bottests-site/site/pom.xml
trunk/build/aggregate/bottests-site/site/site.xml
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.project
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.settings/org.eclipse.jdt.core.prefs
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml
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
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java
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/DecisionTableTest.java
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.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/ManageDroolsRules.java
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java
trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.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
trunk/build/aggregate/bottests-site/tests/pom.xml
Log:
add deprecation marker for bottests site (JBIDE-11077)
Deleted: trunk/build/aggregate/bottests-site/.gitignore
===================================================================
--- trunk/build/aggregate/bottests-site/.gitignore 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/.gitignore 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,2 +0,0 @@
-.project
-.settings/
Deleted: trunk/build/aggregate/bottests-site/features/.gitignore
===================================================================
--- trunk/build/aggregate/bottests-site/features/.gitignore 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/features/.gitignore 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,2 +0,0 @@
-.settings/
-.project
Deleted: trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/.gitignore
===================================================================
--- trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/.gitignore 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/.gitignore 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1 +0,0 @@
-target/
Deleted: trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/build.properties
===================================================================
--- trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/build.properties 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/build.properties 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,3 +0,0 @@
-bin.includes = feature.xml
-src.includes = feature.xml,\
- build.properties
Deleted: trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/epl-v10.html
===================================================================
--- trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/epl-v10.html 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/epl-v10.html 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,261 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!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">
-
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Public License - Version 1.0</title>
-<style type="text/css">
- body {
- size: 8.5in 11.0in;
- margin: 0.25in 0.5in 0.25in 0.5in;
- tab-interval: 0.5in;
- }
- p {
- margin-left: auto;
- margin-top: 0.5em;
- margin-bottom: 0.5em;
- }
- p.list {
- margin-left: 0.5in;
- margin-top: 0.05em;
- margin-bottom: 0.05em;
- }
- </style>
-
-</head>
-
-<body lang="EN-US">
-
-<p align=center><b>Eclipse Public License - v 1.0</b></p>
-
-<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
-PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
-DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
-AGREEMENT.</p>
-
-<p><b>1. DEFINITIONS</b></p>
-
-<p>"Contribution" means:</p>
-
-<p class="list">a) in the case of the initial Contributor, the initial
-code and documentation distributed under this Agreement, and</p>
-<p class="list">b) in the case of each subsequent Contributor:</p>
-<p class="list">i) changes to the Program, and</p>
-<p class="list">ii) additions to the Program;</p>
-<p class="list">where such changes and/or additions to the Program
-originate from and are distributed by that particular Contributor. A
-Contribution 'originates' from a Contributor if it was added to the
-Program by such Contributor itself or anyone acting on such
-Contributor's behalf. Contributions do not include additions to the
-Program which: (i) are separate modules of software distributed in
-conjunction with the Program under their own license agreement, and (ii)
-are not derivative works of the Program.</p>
-
-<p>"Contributor" means any person or entity that distributes
-the Program.</p>
-
-<p>"Licensed Patents" mean patent claims licensable by a
-Contributor which are necessarily infringed by the use or sale of its
-Contribution alone or when combined with the Program.</p>
-
-<p>"Program" means the Contributions distributed in accordance
-with this Agreement.</p>
-
-<p>"Recipient" means anyone who receives the Program under
-this Agreement, including all Contributors.</p>
-
-<p><b>2. GRANT OF RIGHTS</b></p>
-
-<p class="list">a) Subject to the terms of this Agreement, each
-Contributor hereby grants Recipient a non-exclusive, worldwide,
-royalty-free copyright license to reproduce, prepare derivative works
-of, publicly display, publicly perform, distribute and sublicense the
-Contribution of such Contributor, if any, and such derivative works, in
-source code and object code form.</p>
-
-<p class="list">b) Subject to the terms of this Agreement, each
-Contributor hereby grants Recipient a non-exclusive, worldwide,
-royalty-free patent license under Licensed Patents to make, use, sell,
-offer to sell, import and otherwise transfer the Contribution of such
-Contributor, if any, in source code and object code form. This patent
-license shall apply to the combination of the Contribution and the
-Program if, at the time the Contribution is added by the Contributor,
-such addition of the Contribution causes such combination to be covered
-by the Licensed Patents. The patent license shall not apply to any other
-combinations which include the Contribution. No hardware per se is
-licensed hereunder.</p>
-
-<p class="list">c) Recipient understands that although each Contributor
-grants the licenses to its Contributions set forth herein, no assurances
-are provided by any Contributor that the Program does not infringe the
-patent or other intellectual property rights of any other entity. Each
-Contributor disclaims any liability to Recipient for claims brought by
-any other entity based on infringement of intellectual property rights
-or otherwise. As a condition to exercising the rights and licenses
-granted hereunder, each Recipient hereby assumes sole responsibility to
-secure any other intellectual property rights needed, if any. For
-example, if a third party patent license is required to allow Recipient
-to distribute the Program, it is Recipient's responsibility to acquire
-that license before distributing the Program.</p>
-
-<p class="list">d) Each Contributor represents that to its knowledge it
-has sufficient copyright rights in its Contribution, if any, to grant
-the copyright license set forth in this Agreement.</p>
-
-<p><b>3. REQUIREMENTS</b></p>
-
-<p>A Contributor may choose to distribute the Program in object code
-form under its own license agreement, provided that:</p>
-
-<p class="list">a) it complies with the terms and conditions of this
-Agreement; and</p>
-
-<p class="list">b) its license agreement:</p>
-
-<p class="list">i) effectively disclaims on behalf of all Contributors
-all warranties and conditions, express and implied, including warranties
-or conditions of title and non-infringement, and implied warranties or
-conditions of merchantability and fitness for a particular purpose;</p>
-
-<p class="list">ii) effectively excludes on behalf of all Contributors
-all liability for damages, including direct, indirect, special,
-incidental and consequential damages, such as lost profits;</p>
-
-<p class="list">iii) states that any provisions which differ from this
-Agreement are offered by that Contributor alone and not by any other
-party; and</p>
-
-<p class="list">iv) states that source code for the Program is available
-from such Contributor, and informs licensees how to obtain it in a
-reasonable manner on or through a medium customarily used for software
-exchange.</p>
-
-<p>When the Program is made available in source code form:</p>
-
-<p class="list">a) it must be made available under this Agreement; and</p>
-
-<p class="list">b) a copy of this Agreement must be included with each
-copy of the Program.</p>
-
-<p>Contributors may not remove or alter any copyright notices contained
-within the Program.</p>
-
-<p>Each Contributor must identify itself as the originator of its
-Contribution, if any, in a manner that reasonably allows subsequent
-Recipients to identify the originator of the Contribution.</p>
-
-<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
-
-<p>Commercial distributors of software may accept certain
-responsibilities with respect to end users, business partners and the
-like. While this license is intended to facilitate the commercial use of
-the Program, the Contributor who includes the Program in a commercial
-product offering should do so in a manner which does not create
-potential liability for other Contributors. Therefore, if a Contributor
-includes the Program in a commercial product offering, such Contributor
-("Commercial Contributor") hereby agrees to defend and
-indemnify every other Contributor ("Indemnified Contributor")
-against any losses, damages and costs (collectively "Losses")
-arising from claims, lawsuits and other legal actions brought by a third
-party against the Indemnified Contributor to the extent caused by the
-acts or omissions of such Commercial Contributor in connection with its
-distribution of the Program in a commercial product offering. The
-obligations in this section do not apply to any claims or Losses
-relating to any actual or alleged intellectual property infringement. In
-order to qualify, an Indemnified Contributor must: a) promptly notify
-the Commercial Contributor in writing of such claim, and b) allow the
-Commercial Contributor to control, and cooperate with the Commercial
-Contributor in, the defense and any related settlement negotiations. The
-Indemnified Contributor may participate in any such claim at its own
-expense.</p>
-
-<p>For example, a Contributor might include the Program in a commercial
-product offering, Product X. That Contributor is then a Commercial
-Contributor. If that Commercial Contributor then makes performance
-claims, or offers warranties related to Product X, those performance
-claims and warranties are such Commercial Contributor's responsibility
-alone. Under this section, the Commercial Contributor would have to
-defend claims against the other Contributors related to those
-performance claims and warranties, and if a court requires any other
-Contributor to pay any damages as a result, the Commercial Contributor
-must pay those damages.</p>
-
-<p><b>5. NO WARRANTY</b></p>
-
-<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
-PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
-OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
-ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
-OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
-responsible for determining the appropriateness of using and
-distributing the Program and assumes all risks associated with its
-exercise of rights under this Agreement , including but not limited to
-the risks and costs of program errors, compliance with applicable laws,
-damage to or loss of data, programs or equipment, and unavailability or
-interruption of operations.</p>
-
-<p><b>6. DISCLAIMER OF LIABILITY</b></p>
-
-<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
-NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
-INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
-WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
-DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
-HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
-
-<p><b>7. GENERAL</b></p>
-
-<p>If any provision of this Agreement is invalid or unenforceable under
-applicable law, it shall not affect the validity or enforceability of
-the remainder of the terms of this Agreement, and without further action
-by the parties hereto, such provision shall be reformed to the minimum
-extent necessary to make such provision valid and enforceable.</p>
-
-<p>If Recipient institutes patent litigation against any entity
-(including a cross-claim or counterclaim in a lawsuit) alleging that the
-Program itself (excluding combinations of the Program with other
-software or hardware) infringes such Recipient's patent(s), then such
-Recipient's rights granted under Section 2(b) shall terminate as of the
-date such litigation is filed.</p>
-
-<p>All Recipient's rights under this Agreement shall terminate if it
-fails to comply with any of the material terms or conditions of this
-Agreement and does not cure such failure in a reasonable period of time
-after becoming aware of such noncompliance. If all Recipient's rights
-under this Agreement terminate, Recipient agrees to cease use and
-distribution of the Program as soon as reasonably practicable. However,
-Recipient's obligations under this Agreement and any licenses granted by
-Recipient relating to the Program shall continue and survive.</p>
-
-<p>Everyone is permitted to copy and distribute copies of this
-Agreement, but in order to avoid inconsistency the Agreement is
-copyrighted and may only be modified in the following manner. The
-Agreement Steward reserves the right to publish new versions (including
-revisions) of this Agreement from time to time. No one other than the
-Agreement Steward has the right to modify this Agreement. The Eclipse
-Foundation is the initial Agreement Steward. The Eclipse Foundation may
-assign the responsibility to serve as the Agreement Steward to a
-suitable separate entity. Each new version of the Agreement will be
-given a distinguishing version number. The Program (including
-Contributions) may always be distributed subject to the version of the
-Agreement under which it was received. In addition, after a new version
-of the Agreement is published, Contributor may elect to distribute the
-Program (including its Contributions) under the new version. Except as
-expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
-rights or licenses to the intellectual property of any Contributor under
-this Agreement, whether expressly, by implication, estoppel or
-otherwise. All rights in the Program not expressly granted under this
-Agreement are reserved.</p>
-
-<p>This Agreement is governed by the laws of the State of New York and
-the intellectual property laws of the United States of America. No party
-to this Agreement will bring a legal action under this Agreement more
-than one year after the cause of action arose. Each party waives its
-rights to a jury trial in any resulting litigation.</p>
-
-</body>
-
-</html>
Deleted: trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/feature.xml
===================================================================
--- trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/feature.xml 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/feature.xml 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<feature id="org.jboss.tools.bot.test.feature" label="JBoss Tools Bot Tests" version="3.1.0.qualifier">
-
- <description url="http://www.jboss.org/tools">
- JBoss Tools Bot Tests
- </description>
-
- <copyright>
- Copyright (c) 2011 Red Hat, Inc. and Exadel, Inc.
-Distributed under license by JBoss by Red Hat. All rights reserved.
-This program is made available under the terms of the
-Eclipse Public License v1.0 which accompanies this distribution,
-and is available at http://www.eclipse.org/legal/epl-v10.html
-Contributors:
-JBoss by Red Hat and Exadel, Inc. - initial API and implementation
- </copyright>
-
- <license>
- Red Hat, Inc. licenses these features and plugins to you under
-certain open source licenses (or aggregations of such licenses), which
-in a particular case may include the Eclipse Public License, the GNU
-Lesser General Public License, and/or certain other open source
-licenses. For precise licensing details, consult the corresponding
-source code, or contact Red Hat Legal Affairs, 1801 Varsity Drive,
-Raleigh NC 27606 USA.
- </license>
-
- <!-- depends on upstream components being built,
- including tests, common, bpel, cdi, deltacloud, etc.
- Can source these from http://download.jboss.org/jbosstools/builds/staging/_composite_/trunk/
- -->
-
- <plugin id="org.jboss.tools.tests" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.jboss.tools.ui.bot.ext" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.jboss.tools.ui.bot.ext.test" download-size="0" install-size="0" version="0.0.0" />
-
- <plugin id="org.jboss.tools.cdi.bot.test" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.jboss.tools.hibernate.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.jboss.tools.jsf.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.jboss.tools.jst.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
- <!-- <plugin id="org.jboss.tools.maven.ui.bot.test" download-size="0" install-size="0" version="0.0.0" /> -->
- <plugin id="org.jboss.tools.seam.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.jboss.tools.struts.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.jboss.tools.vpe.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.jboss.tools.ws.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
-
- <!-- SOA Tooling tests -->
- <plugin id="org.jboss.tools.bpel.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.jboss.tools.drools.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
- <!-- TODO JBIDE-9464 add this back in after test is fixed <plugin id="org.jboss.tools.esb.ui.bot.test" download-size="0" install-size="0" version="0.0.0" /> -->
- <plugin id="org.jboss.tools.jbpm.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.jboss.tools.modeshape.rest.ui.bot.test" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.teiid.designer.ui.bot.ext" download-size="0" install-size="0" version="0.0.0" />
- <plugin id="org.teiid.designer.ui.bot.tests" download-size="0" install-size="0" version="0.0.0" />
-
- <!-- removed/deprecated -->
- <!-- JBIDE-10422 remove <plugin id="org.jboss.tools.deltacloud.ui.bot.test" download-size="0" install-size="0" version="0.0.0" /> -->
- <!-- JBIDE-11088 remove <plugin id="org.jboss.tools.smooks.ui.bot.test" download-size="0" install-size="0" version="0.0.0" /> -->
-</feature>
Deleted: trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/pom.xml
===================================================================
--- trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/pom.xml 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/features/org.jboss.tools.bot.test.feature/pom.xml 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.jboss.tools.bot.tests</groupId>
- <artifactId>org.jboss.tools.bot.tests.features</artifactId>
- <version>0.0.2-SNAPSHOT</version>
- </parent>
- <groupId>org.jboss.tools</groupId>
- <artifactId>org.jboss.tools.bot.test.feature</artifactId>
- <version>3.1.0-SNAPSHOT</version>
- <packaging>eclipse-feature</packaging>
-</project>
Deleted: trunk/build/aggregate/bottests-site/features/pom.xml
===================================================================
--- trunk/build/aggregate/bottests-site/features/pom.xml 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/features/pom.xml 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,16 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.jboss.tools</groupId>
- <artifactId>org.jboss.tools.site.bottests.root</artifactId>
- <version>0.0.2-SNAPSHOT</version>
- </parent>
- <groupId>org.jboss.tools.bot.tests</groupId>
- <artifactId>org.jboss.tools.bot.tests.features</artifactId>
- <version>0.0.2-SNAPSHOT</version>
- <packaging>pom</packaging>
- <modules>
- <module>org.jboss.tools.bot.test.feature</module>
- </modules>
-</project>
Deleted: trunk/build/aggregate/bottests-site/plugins/.gitignore
===================================================================
--- trunk/build/aggregate/bottests-site/plugins/.gitignore 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/plugins/.gitignore 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,2 +0,0 @@
-.project
-.settings/
Deleted: trunk/build/aggregate/bottests-site/plugins/pom.xml
===================================================================
--- trunk/build/aggregate/bottests-site/plugins/pom.xml 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/plugins/pom.xml 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,16 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.jboss.tools</groupId>
- <artifactId>org.jboss.tools.site.bottests.root</artifactId>
- <version>0.0.2-SNAPSHOT</version>
- </parent>
- <groupId>org.jboss.tools.bot.tests</groupId>
- <artifactId>org.jboss.tools.bot.tests.plugins</artifactId>
- <version>0.0.2-SNAPSHOT</version>
- <packaging>pom</packaging>
- <modules>
- <!-- no plugins yet -->
- </modules>
-</project>
Deleted: trunk/build/aggregate/bottests-site/pom.xml
===================================================================
--- trunk/build/aggregate/bottests-site/pom.xml 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/pom.xml 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.jboss.tools</groupId>
- <artifactId>org.jboss.tools.site</artifactId>
- <version>0.0.2-SNAPSHOT</version>
- </parent>
- <groupId>org.jboss.tools</groupId>
- <artifactId>org.jboss.tools.site.bottests.root</artifactId>
- <packaging>pom</packaging>
- <modules>
- <module>plugins</module>
- <module>tests</module>
- <module>features</module>
- <module>site</module>
- </modules>
-<!-- This site build depends on both the Core and SOA Tooling composite sites, plus the usual upstream dependencies and TP.
-
- To build, run this:
-
- mvn3 -Pdefault,jbosstools-nightly-staging-composite,jbosstools-nightly-staging-composite-soa-tooling,local.site
--->
-</project>
Deleted: trunk/build/aggregate/bottests-site/site/.gitignore
===================================================================
--- trunk/build/aggregate/bottests-site/site/.gitignore 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/site/.gitignore 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,5 +0,0 @@
-.settings/
-.project
-target/
-.classpath
-zips/
Deleted: trunk/build/aggregate/bottests-site/site/associate.properties
===================================================================
--- trunk/build/aggregate/bottests-site/site/associate.properties 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/site/associate.properties 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,7 +0,0 @@
-# options: Nightly Build (default), Development Milestone, Stable Release
-#update.site.description=Nightly Build
-#update.site.description=Development Milestone
-#update.site.version=3.2.0.M2.2010-07-16_13-26-18-H21
-
-# associate sites to add to the resulting repo
-associate.sites=http://download.jboss.org/jbosstools/updates/indigo/SR2/,http://download.jboss.org/jbosstools/updates/development/indigo/
Deleted: trunk/build/aggregate/bottests-site/site/index.html
===================================================================
--- trunk/build/aggregate/bottests-site/site/index.html 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/site/index.html 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,180 +0,0 @@
-<html>
-<head>
-<title>JBoss Tools - Bot Tests - Nightly Build Update Site</title>
-<style>
-@import url("http://download.jboss.org/jbosstools/updates/web/site.css");
-</style>
-</head>
-<body marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">
-<center>
-<table marginheight="0" marginwidth="0" leftmargin="0" topmargin="0"
- cellspacing="0" cellpadding="0" width="920" class="bodyText">
- <tr>
- <td colspan="3"><img
- src="https://www.jboss.org/dms/tools/images/tools-banner.png" /></td>
- </tr>
- <tr>
- <td>      </td>
- <td>      </td>
- <td>      </td>
- </tr>
- <tr>
- <td>      </td>
- <td>
- <h2 class="title">JBoss Tools - Bot Tests - Nightly Build Update Site</h2>
- <table width="100%">
- <tr class="header">
- <td class="sub-header" width="100%"><span>Latest Build</span></td>
- </tr>
-
- <tr class="light-row" style="height: 30px">
- <td class="bodyText">
- <p class="bodyText">This is the <b>Nightly Build</b>
- Update Site for JBoss Tools - Bot Tests.
- <blockquote style="border: 1px dashed #1778be; padding: 2px">
- <ol>
- <li>To <a class="link"
- href="http://www.jboss.org/tools/download/installation/update_3_3">install</a>
- from this site, start up Eclipse 3.7, then do:
- <ul>
- <code><strong>Help > Install New Software... ></strong></code>
- </ul>
- </li>
- <li>Copy this site's URL into Eclipse, and hit Enter.</li>
- <li>When the site loads, select the features to install,
- or click the <code><strong>Select All</strong></code> button.</li>
- <li>To properly resolve all dependencies, check
- <ul><code><strong>[x] Contact all update sites during install to find required software</strong></code></ul>
-
- <li>Click <code><strong>Next</strong></code>, agree to the license
- terms, and install.</li>
-
- <p class="bodyText">
- You can also download JBoss Tools as individual zips for
- offline installation. See <a class="link"
- href="http://www.jboss.org/tools/download">JBoss Tools
- Downloads</a>.<br /> If you downloaded this site as a zip, see
- <a href="README.installation.txt">Installation README</a>.
- See also <a
- href="http://www.jboss.org/tools/download/installation">Installation
- methods</a>.
- </p>
- </ol>
- </blockquote>
- </td>
- </tr>
- </table>
- </td>
- <td>      </td>
- </tr>
- <tr>
- <td></td>
- <td>
- <table xmlns="http://www.w3.org/1999/xhtml" xmlns:xalan="http://xml.apache.org/xalan" cellspacing="2" cellpadding="0" border="0">
- <tr style="background-color:#DDDDDD">
- <th style="font-size:small">Feature</th>
- <th style="font-size:small">Version</th>
- <th style="font-size:small">
- Feature Categor(ies)
-
- </th>
- </tr>
- <tr style="background-color:
							#EEEEEE
						">
- <td class="rowLine"><a href="features/org.jboss.tools.bot.test.feature_3.1.0.v20111123-1957-M5.jar" style="font-size:x-small">org.jboss.tools.bot.test.feature</a></td>
- <td><span style="font-size:x-small">3.1.0.v20111123-1957-M5</span></td>
- <td><span style="font-size:x-small">
- |
- Bot Tests</span></td>
- </tr>
- <tr style="background-color:
							#FFFFFF
						">
- <td class="rowLine"><a href="features/org.jboss.tools.test.feature_3.2.0.v20111123-0956-H473-M5.jar" style="font-size:x-small">org.jboss.tools.test.feature</a></td>
- <td><span style="font-size:x-small">3.2.0.v20111123-0956-H473-M5</span></td>
- <td><span style="font-size:x-small">
- |
- Bot Tests</span></td>
- </tr>
- <tr style="background-color:#DDDDDD">
- <th colspan="1" style="font-size:small">Metadata</th>
- <th colspan="1" style="font-size:small"></th>
- <th colspan="1" style="font-size:small"></th>
- </tr>
- <tr style="background-color:#EEEEEE">
- <td class="rowLine" colspan="1"><a href="site.xml" style="font-size:x-small">site.xml</a>
- ::
- <a href="artifacts.jar" style="font-size:x-small">artifacts.jar</a>
- ::
- <a href="content.jar" style="font-size:x-small">content.jar</a></td>
- <td class="rowLine" colspan="1">
- ::
- <a href="plugins/" style="font-size:x-small">plugins</a>
- ::
- <a href="features/" style="font-size:x-small">features</a></td>
- <td class="rowLine" colspan="1">
-
-
- </td>
- </tr>
-</table><br xmlns="http://www.w3.org/1999/xhtml" xmlns:xalan="http://xml.apache.org/xalan"></br>
- </td>
- <td></td>
- </tr>
- <tr>
- <td></td>
- <td>
- <table width="100%">
- <tr class="header">
- <td class="sub-header" width="100%"><span> Installation
- Types</span></td>
- </tr>
- <tr class="light-row" style="height: 30px">
- <td class="bodyText">
- <p class="bodyText">Depending on how close to the bleeding edge
- you like to be, there are several types of releases available.</p>
- <br />
-
- </td>
- </tr>
-
- <tr class="dark-row" style="height: 30px">
- <td class="bodyText">
- <h4>Stable Releases</h4>
-
- <p><a href="https://www.jboss.org/tools/download/stable.html">Stable
- releases</a> are - as indicated by their name - stable.</p><br/>
-
- </td>
- </tr>
-
- <tr class="light-row" style="height: 30px">
- <td class="bodyText">
- <h4>Development Milestones</h4>
-
- <p><a href="https://www.jboss.org/tools/download/dev.html">Development
- builds</a>, released once per milestone and only a few times a year, are
- fairly stable, but there may be some things which do not yet work.
- If you would like to try one of these milestones, we'd greatly
- appreciate the assistance in testing and <a
- href="https://jira.jboss.org/jira/browse/JBIDE">reporting of
- issues in our issue tracker</a>.</p><br/>
-
- </td>
- </tr>
-
- <tr class="dark-row" style="height: 30px">
- <td class="bodyText">
- <h4>Nightly Builds</h4>
-
- <p>The <a
- href="https://www.jboss.org/tools/download/nightly.html">bleeding
- edge</a> contains the latest and greatest new features, but nothing is
- stable or guaranteed - yet. If you're using a Milestone and need a
- fix, you can update to the latest Nightly, or wait for the next
- Milestone.</p><br/>
- </td>
- </tr>
- </table>
- </td>
- </tr>
-</table>
-</center>
-</html>
Deleted: trunk/build/aggregate/bottests-site/site/pom.xml
===================================================================
--- trunk/build/aggregate/bottests-site/site/pom.xml 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/site/pom.xml 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,109 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.jboss.tools</groupId>
- <artifactId>org.jboss.tools.site</artifactId>
- <version>0.0.2-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
- </parent>
- <groupId>org.jboss.tools</groupId>
- <artifactId>org.jboss.tools.site.bottests</artifactId>
- <name>JBoss Tools - Bot Tests Site</name>
- <packaging>eclipse-update-site</packaging>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>${maven.antrun.plugin.version}</version>
- <executions>
- <execution>
- <id>install</id>
- <phase>install</phase>
- <configuration>
- <quiet>true</quiet>
- <tasks>
- <!-- called AFTER generating update site + zip to add in extra content -->
- <ant antfile="build.xml" target="basic.build" dir="../../">
- <property name="output.dir" value="${basedir}" />
- <property name="inputRepo"
- value="${jbosstools-nightly-staging-composite}" />
- <property name="update.site.name" value="JBoss Tools - Bot Tests"/>
- <property name="JBT_VERSION" value="${JBT_VERSION}" />
- <property name="BUILD_ALIAS" value="${BUILD_ALIAS}" />
- </ant>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- <dependencies>
- <dependency>
- <groupId>commons-net</groupId>
- <artifactId>commons-net</artifactId>
- <version>1.4.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant</artifactId>
- <version>1.7.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-nodeps</artifactId>
- <version>1.7.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-trax</artifactId>
- <version>1.7.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-commons-net</artifactId>
- <version>1.7.1</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ant</groupId>
- <artifactId>ant-apache-regexp</artifactId>
- <version>1.7.1</version>
- </dependency>
- <dependency>
- <groupId>ant-contrib</groupId>
- <artifactId>ant-contrib</artifactId>
- <version>1.0b3</version>
- </dependency>
- </dependencies>
- </plugin>
- </plugins>
- </build>
-
- <repositories>
- <repository>
- <id>jbosstools-nightly-staging-composite</id>
- <url>${jbosstools-nightly-staging-composite}</url>
- <layout>p2</layout>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- </releases>
- </repository>
- <repository>
- <id>jboss-requirements-composite-mirror</id>
- <url>${jboss-requirements-composite-mirror}</url>
- <layout>p2</layout>
- <snapshots>
- <enabled>true</enabled>
- </snapshots>
- <releases>
- <enabled>true</enabled>
- </releases>
- </repository>
- </repositories>
-</project>
Deleted: trunk/build/aggregate/bottests-site/site/site.xml
===================================================================
--- trunk/build/aggregate/bottests-site/site/site.xml 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/site/site.xml 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<site>
- <description>To install these features, point Eclipse at this site.</description>
- <!-- Bot Tests -->
- <category-def label="Bot Tests" name="Bot Tests">
- <description>Bot Tests: contains all features in this build.</description>
- </category-def>
- <feature url="features/org.jboss.tools.bot.test.feature_0.0.0.jar" id="org.jboss.tools.bot.test.feature" version="0.0.0">
- <category name="Bot Tests"/>
- </feature>
- <feature url="features/org.jboss.tools.test.feature_0.0.0.jar" id="org.jboss.tools.test.feature" version="0.0.0">
- <category name="Bot Tests"/>
- </feature>
-</site>
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.classpath 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
- <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
- <classpathentry kind="src" path="src"/>
- <classpathentry kind="src" path="resources"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.gitignore 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1 +0,0 @@
-target
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.project
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.project 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.project 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>org.jboss.tools.drools.ui.bot.test</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.ManifestBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.SchemaBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.pde.PluginNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- <nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
- </natures>
-</projectDescription>
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.settings/org.eclipse.jdt.core.prefs 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/.settings/org.eclipse.jdt.core.prefs 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,8 +0,0 @@
-#Tue Apr 06 13:22:27 CEST 2010
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/META-INF/MANIFEST.MF 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,21 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: Drools UI SWTBot Tests
-Bundle-SymbolicName: org.jboss.tools.drools.ui.bot.test
-Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.jboss.tools.drools.ui.bot.test.Activator
-Require-Bundle: org.eclipse.ui,
- org.eclipse.core.runtime,
- org.jboss.tools.jst.ui.bot.test,
- org.eclipse.swtbot.eclipse.core;bundle-version="2.0.0",
- org.eclipse.swtbot.eclipse.finder;bundle-version="2.0.0",
- org.eclipse.swtbot.swt.finder;bundle-version="2.0.0",
- org.junit4;bundle-version="4.5.0",
- org.jboss.tools.ui.bot.ext,
- org.drools.eclipse;bundle-version="5.3.0",
- org.eclipse.swtbot.eclipse.gef.finder,
- org.apache.log4j;bundle-version="1.2.13"
-Bundle-ActivationPolicy: lazy
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Bundle-Vendor: JBoss by Red Hat
-Import-Package: org.eclipse.ui.forms.widgets
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/build.properties 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,5 +0,0 @@
-source.. = src/,\
- resources/
-output.. = bin/
-bin.includes = META-INF/,\
- .
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/pom.xml 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.jboss.tools.bot.tests</groupId>
- <artifactId>org.jboss.tools.bot.tests.tests</artifactId>
- <version>0.0.2-SNAPSHOT</version>
- </parent>
- <groupId>org.jboss.tools.drools</groupId>
- <artifactId>org.jboss.tools.drools.ui.bot.test</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <packaging>eclipse-test-plugin</packaging>
- <build>
- <plugins>
- <plugin>
- <groupId>org.eclipse.tycho</groupId>
- <artifactId>tycho-surefire-plugin</artifactId>
- <version>${tychoVersion}</version>
- <configuration>
- <useUIThread>false</useUIThread>
- <testSuite>org.jboss.tools.drools.ui.bot.test</testSuite>
- <testClass>org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests</testClass>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
Deleted: 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 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMN20.xsd 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,37 +0,0 @@
-<?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
Deleted: 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 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/BPMNDI.xsd 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,100 +0,0 @@
-<?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>
Deleted: 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 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DC.xsd 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,29 +0,0 @@
-<?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>
Deleted: 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 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/DI.xsd 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,100 +0,0 @@
-<?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>
Deleted: 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 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/XMLSchemas/Semantic.xsd 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,1562 +0,0 @@
-<?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
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/resources/project.properties 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,3 +0,0 @@
-use-external-drools-runtime=true
-guvnor-repository-url=/jboss-brms/org.drools.guvnor.Guvnor/webdav
-external-drools-runtime-home=/home/vpakan/tmp/drools
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/Activator.java 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,50 +0,0 @@
-package org.jboss.tools.drools.ui.bot.test;
-
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The activator class controls the plug-in life cycle
- */
-public class Activator extends AbstractUIPlugin {
-
- // The plug-in ID
- public static final String PLUGIN_ID = "org.jboss.tools.drools.ui.bot.test";
-
- // The shared instance
- private static Activator plugin;
-
- /**
- * The constructor
- */
- public Activator() {
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
- */
- public void start(BundleContext context) throws Exception {
- super.start(context);
- plugin = this;
- }
-
- /*
- * (non-Javadoc)
- * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
- */
- public void stop(BundleContext context) throws Exception {
- plugin = null;
- super.stop(context);
- }
-
- /**
- * Returns the shared instance
- *
- * @return the shared instance
- */
- public static Activator getDefault() {
- return plugin;
- }
-
-}
Deleted: 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-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/DroolsAllBotTests.java 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007-2009 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-package org.jboss.tools.drools.ui.bot.test;
-
-import java.io.File;
-
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.jboss.tools.drools.ui.bot.test.smoke.DecisionTableTest;
-import org.jboss.tools.drools.ui.bot.test.smoke.DomainSpecificLanguageEditorTest;
-import org.jboss.tools.drools.ui.bot.test.smoke.DroolsRulesEditorTest;
-import org.jboss.tools.drools.ui.bot.test.smoke.DroolsViewsTest;
-import org.jboss.tools.drools.ui.bot.test.smoke.GuvnorRepositoriesTest;
-import org.jboss.tools.drools.ui.bot.test.smoke.ManageDroolsProject;
-import org.jboss.tools.drools.ui.bot.test.smoke.ManageDroolsRules;
-import org.jboss.tools.drools.ui.bot.test.smoke.ManageDroolsRuntime;
-import org.jboss.tools.drools.ui.bot.test.smoke.OpenDroolsPerspective;
-import org.jboss.tools.drools.ui.bot.test.smoke.RuleFlowTest;
-import org.jboss.tools.ui.bot.ext.RequirementAwareSuite;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.jboss.tools.ui.bot.ext.SWTUtilExt;
-import org.jboss.tools.ui.bot.ext.config.ServerBean;
-import org.jboss.tools.ui.bot.ext.config.TestConfigurator;
-import org.jboss.tools.ui.bot.ext.types.IDELabel;
-import org.jboss.tools.ui.bot.ext.types.PerspectiveType;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.runner.RunWith;
-import org.junit.runners.Suite.SuiteClasses;
-
-/**
- *
- * This is Drools swtbot test case for JBoss Tools.
- *
- * @author Vladimir Pakan
- *
- */
-(a)RunWith(RequirementAwareSuite.class)
-@SuiteClasses({
- OpenDroolsPerspective.class,
- ManageDroolsRuntime.class,
- ManageDroolsProject.class,
- ManageDroolsRules.class,
- DroolsRulesEditorTest.class,
- // GuidedDroolsRulesEditorTest.class,
- DomainSpecificLanguageEditorTest.class,
- RuleFlowTest.class,
- DecisionTableTest.class,
- GuvnorRepositoriesTest.class,
- DroolsViewsTest.class
-})
-public class DroolsAllBotTests extends SWTTestExt {
- public static final String DROOLS_PROJECT_NAME = "droolsTest";
- public static final String DROOLS_RUNTIME_NAME = "Drools Test Runtime";
- public static String DROOLS_RUNTIME_LOCATION = null;
- public static String CREATE_DROOLS_RUNTIME_LOCATION = null;
- public static String SRC_MAIN_JAVA_TREE_NODE = "src/main/java";
- public static String SRC_MAIN_RULES_TREE_NODE = "src/main/rules";
- public static String COM_SAMPLE_TREE_NODE = "com.sample";
- public static String DROOLS_TEST_JAVA_TREE_NODE = "DroolsTest.java";
- public static final String TEST_DROOLS_RULE_NAME = "TestRule.drl";
- public static final String SAMPLE_DROOLS_RULE_NAME = "Sample.drl";
- 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";
- 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";
- public static final String GUVNOR_REPOSITORY_URL_PROPERTY_NAME = "guvnor-repository-url";
- private static boolean USE_EXTERNAL_DROOLS_RUNTIME;
- private static boolean isFirstRun = true;
-
- private static String testDroolsRuntimeName = null;
- private static String testDroolsRuntimeLocation = null;
- private static String guvnorRepositoryUrl = null;
- private static String guvnorRepositoryRootTreeItem = "http://localhost:8080/jboss-brms/org.drools.guvnor.Guvnor/webdav/";
-
- public static String getTestDroolsRuntimeName() {
- return testDroolsRuntimeName;
- }
-
- public static void setTestDroolsRuntimeName(String testDroolsRuntimeName) {
- DroolsAllBotTests.testDroolsRuntimeName = testDroolsRuntimeName;
- }
-
- public static String getTestDroolsRuntimeLocation() {
- return testDroolsRuntimeLocation;
- }
-
- public static void setTestDroolsRuntimeLocation(String testDroolsRuntimeLocation) {
- DroolsAllBotTests.testDroolsRuntimeLocation = testDroolsRuntimeLocation;
- }
-
- public static String getGuvnorRepositoryUrl() {
- return guvnorRepositoryUrl;
- }
-
- private static void setGuvnorRepositoryUrl(String guvnorRepositoryUrl) {
- DroolsAllBotTests.guvnorRepositoryUrl = guvnorRepositoryUrl;
- }
-
- public static String getGuvnorRepositoryRootTreeItem() {
- return guvnorRepositoryRootTreeItem;
- }
-
- private static void setGuvnorRepositoryRootTreeItem(String guvnorRepositoryRootTreeItem) {
- DroolsAllBotTests.guvnorRepositoryRootTreeItem = guvnorRepositoryRootTreeItem;
- }
-
- @BeforeClass
- public static void setUpTest() {
- if (isFirstRun) {
- isFirstRun = false;
- } else {
- return;
- }
- props = util.loadProperties(Activator.PLUGIN_ID);
- String guvnorRepositoryUrl = props.getProperty(DroolsAllBotTests.GUVNOR_REPOSITORY_URL_PROPERTY_NAME);
- if (guvnorRepositoryUrl != null) {
- DroolsAllBotTests.setGuvnorRepositoryUrl(guvnorRepositoryUrl);
- DroolsAllBotTests.setGuvnorRepositoryRootTreeItem("http://localhost:8080" + guvnorRepositoryUrl);
- }
- String useExternalDroolRuntime = props.getProperty(DroolsAllBotTests.USE_EXTERNAL_DROOLS_RUNTIME_PROPERTY_NAME);
- DroolsAllBotTests.USE_EXTERNAL_DROOLS_RUNTIME = useExternalDroolRuntime != null && useExternalDroolRuntime.equalsIgnoreCase("true");
- String droolsRuntimeLocation = props.getProperty(DroolsAllBotTests.EXTERNAL_DROOLS_RUTIME_HOME_PROPERTY_NAME);
- String tmpDir = System.getProperty("java.io.tmpdir");
- if (droolsRuntimeLocation == null || droolsRuntimeLocation.length() == 0) {
- DroolsAllBotTests.DROOLS_RUNTIME_LOCATION = tmpDir;
- } else {
- DroolsAllBotTests.DROOLS_RUNTIME_LOCATION = droolsRuntimeLocation;
- }
- DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION = tmpDir + File.separator + "drools";
- // Create directory for Drools Runtime which will be created as a part of test
- new File(DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION).mkdir();
- try {
- bot.button(IDELabel.Button.NO).click();
- } catch (WidgetNotFoundException wnfe) {
- // Do nothing ignore this error
- }
- try {
- SWTBotView welcomeView = eclipse.getBot().viewByTitle(IDELabel.View.WELCOME);
- welcomeView.close();
- } catch (WidgetNotFoundException wnfe) {
- // Do nothing ignore this error
- }
- // Close JBoss Central editor
- for (SWTBotEditor editor : bot.editors()) {
- if (IDELabel.View.JBOSS_CENTRAL.equals(editor.getTitle())) {
- editor.close();
- break;
- }
- }
- eclipse.openPerspective(PerspectiveType.JAVA);
- eclipse.maximizeActiveShell();
-
- // Removes legacy files after previous run
- ServerBean server = TestConfigurator.currentConfig.getServer();
- if (server != null) {
- final String serverHome = server.runtimeHome;
- if (serverHome != null) {
- deleteGuvnorRepositoryIfExists(serverHome + "/bin/");
- }
- }
- }
-
- private static void deleteGuvnorRepositoryIfExists(final String pathToDirectoryWithRepository) {
- delete(new File(pathToDirectoryWithRepository + "repository.xml"));
- delete(new File(pathToDirectoryWithRepository + "repository"));
- }
-
- public static boolean delete(final File file) {
- if (!file.exists()) {
- return false;
- }
- if (file.isDirectory()) {
- for (final String s : file.list()) {
- delete(new File(file, s));
- }
- }
- return file.delete();
- }
-
- public static boolean useExternalDroolsRuntime() {
- return USE_EXTERNAL_DROOLS_RUNTIME;
- }
-
- @AfterClass
- public static void tearDownTest() {
- // delete created drools runtime
- SWTUtilExt.deleteDirectory(DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION);
- }
-}
\ No newline at end of file
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DecisionTableTest.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DecisionTableTest.java 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DecisionTableTest.java 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,53 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.drools.ui.bot.test.smoke;
-
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.junit.Test;
-/**
- * Tests Decision Table
- * @author Vladimir Pakan
- *
- */
-public class DecisionTableTest extends SWTTestExt{
- /**
- * Tests Decision Table
- */
- @Test
- public void testDecisionTable() {
- runDecisionTable(DroolsAllBotTests.DECISION_TABLE_JAVA_TEST_FILE_NAME);
- }
- /**
- * Runs newly created Drools project and check result
- * @param decisionTableFileName
- */
- private void runDecisionTable(String decisionTableFileName){
- console.clearConsole();
- bot.sleep(5000L);
-
- SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(decisionTableFileName,
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
- DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
-
- eclipse.runTreeItemAsJavaApplication(tiTestFile);
-
- String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
-
- assertTrue(decisionTableFileName + " didn't run properly.\n" +
- "Console Text was: " + consoleText + "\n" +
- "Expected console text is: Hello World\nGoodbye cruel world\n",
- consoleText.endsWith("Hello World\nGoodbye cruel world\n"));
- }
-}
\ No newline at end of file
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DomainSpecificLanguageEditorTest.java 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,229 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.drools.ui.bot.test.smoke;
-
-import org.eclipse.swt.SWT;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
-import org.eclipse.swtbot.swt.finder.SWTBot;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.jboss.tools.ui.bot.ext.Timing;
-import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
-import org.jboss.tools.ui.bot.ext.parts.SWTBotEditorExt;
-import org.jboss.tools.ui.bot.ext.types.EntityType;
-import org.jboss.tools.ui.bot.ext.types.IDELabel;
-import org.jboss.tools.ui.bot.ext.types.JobName;
-import org.jboss.tools.ui.bot.ext.view.ProblemsView;
-import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
-import org.junit.Test;
-/**
- * Tests Domain Specific Language Editor
- * @author Vladimir Pakan
- *
- */
-public class DomainSpecificLanguageEditorTest extends SWTTestExt{
- /**
- * Tests Domain Specific Language Editor
- */
- private static final String LANGUAGE_EXRESSION = "Message {msg} of type {t} contains {what}";
- @Test
- public void testDomainSpecificLanguageEditor() {
- createDslFile(DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME);
- addDslExpression(DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME);
- useDslExpression(DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME,
- DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
- runDslExpressionCheck(DroolsAllBotTests.DROOLS_TEST_JAVA_TREE_NODE,
- DroolsAllBotTests.DOMAIN_SPECIFIC_LANGUAGE_FILE_NAME);
- }
- /**
- * Creates DSL File
- * @param dslFileName
- */
- private void createDslFile(String dslFileName){
- packageExplorer.show();
- SWTBotTreeItem tiRules = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
-
- tiRules.select();
- eclipse.createNew(EntityType.DSL_DROOLS_FILE);
- bot.textWithLabel(IDELabel.NewDslDroolsFileDialog.FILE_NAME).setText(dslFileName);
- eclipse.selectTreeLocation(DroolsAllBotTests.DROOLS_PROJECT_NAME,
- "src",
- "main",
- "rules");
- bot.button(IDELabel.Button.FINISH).click();
- bot.sleep(Timing.time1S());
- tiRules.expand();
- // Test if new DSL File is within package tree view
- assertTrue("New DSL File was not created properly. It's not present within Package Explorer",
- SWTEclipseExt.containsTreeItemWithLabel(tiRules, dslFileName));
- // Test if new DSL File is opened in editor
- assertTrue("New DSL File was not created properly. File " + dslFileName + " is not opened in editor",
- SWTEclipseExt.existEditorWithLabel(bot,dslFileName));
-
- }
- /**
- * Adds DSL Expression to DSL File
- * @param dslFileName
- */
- private void addDslExpression(String dslFileName){
- SWTBotEditor dslRuleEditor = bot.editorByTitle(dslFileName);
- SWTBot dslRuleEditorBot = dslRuleEditor.bot();
- dslRuleEditorBot
- .button(IDELabel.Button.ADD_WITHOUT_DOTS).click();
- SWTBot dialogBot = dslRuleEditorBot
- .shell(IDELabel.DslDroolsFileEditor.ADD_LANGUAGE_MAPPING_DIALOG_TITLE)
- .activate()
- .bot();
-
- dialogBot.textWithLabel(IDELabel.DslDroolsFileEditor.LANGUAGE_EXPRESSION_TEXT_LABEL)
- .setText(DomainSpecificLanguageEditorTest.LANGUAGE_EXRESSION);
- dialogBot.textWithLabel(IDELabel.DslDroolsFileEditor.RULE_MAPPING_TEXT_LABEL)
- .setText("{msg} : Message(status == {t}, {what} : message)");
- dialogBot.comboBoxWithLabel(IDELabel.DslDroolsFileEditor.SCOPE_COMBO_LABEL)
- .setSelection(IDELabel.DslDroolsFileEditor.SCOPE_COMBO_VALUE);
- dialogBot.button(IDELabel.Button.OK).click();
- dslRuleEditor.save();
-
- assertTrue("DSL table has to containt this Language Expression:\n" +
- DomainSpecificLanguageEditorTest.LANGUAGE_EXRESSION,
- SWTEclipseExt.isItemInTableColumn(dslRuleEditorBot.table(),
- DomainSpecificLanguageEditorTest.LANGUAGE_EXRESSION,
- 0));
-
- }
- /**
- * Use defined language expression in dslFileName file within sampleDrlFileName file
- * @param dslFileName
- * @param sampleDrlFileName
- */
- private void useDslExpression (String dslFileName,String sampleDrlFileName){
- packageExplorer.show();
- SWTBotEclipseEditor drlDroolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME).toTextEditor();
- SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
- ruleEditor.selectPage(IDELabel.DroolsEditor.TEXT_EDITOR_TAB);
- // update drl file
- drlDroolsEditor.insertText(3,0,"\nexpander " +
- dslFileName +
- ";\n");
- int[] linesToIgnoreExpander = new int[]{8,10,11,12,13,20};
- for (int lineNumber : linesToIgnoreExpander){
- drlDroolsEditor.insertText(lineNumber,0,">");
- }
- drlDroolsEditor.selectLine(18);
- bot.sleep(Timing.time1S());
- KeyboardHelper.pressKeyCode(bot.getDisplay(),(int)SWT.DEL);
- bot.sleep(Timing.time1S());
- drlDroolsEditor.insertText(18, 0, " Message m of type Message.GOODBYE contains myMessage");
- drlDroolsEditor.save();
- util.waitForJobs(Timing.time10S(), JobName.BUILDING_WS);
- SWTBotTreeItem[] errors = ProblemsView
- .getFilteredErrorsTreeItems(bot,
- null,
- null,
- sampleDrlFileName,
- null);
- assertTrue("File "
- + sampleDrlFileName
- + " was not udpated properly. There are these errors: "
- + SWTEclipseExt.getFormattedTreeNodesText(errors),
- errors == null || errors.length == 0);
-
- SWTBotTreeItem[] warnings = ProblemsView
- .getFilteredWarningsTreeItems(bot,
- null,
- null,
- sampleDrlFileName,
- null);
- assertTrue("File "
- + sampleDrlFileName
- + " was not udpated properly. There are these warnings: "
- + SWTEclipseExt.getFormattedTreeNodesText(warnings),
- warnings == null || warnings.length == 0);
- }
- /**
- * Runs javaFileName testing defined DSL
- * @param javaFileName
- * @param dslFileName
- */
- private void runDslExpressionCheck(String javaFileName,
- String dslFileName){
-
- packageExplorer.show();
- SWTBotEclipseEditor drlDroolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
- DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
- DroolsAllBotTests.COM_SAMPLE_TREE_NODE,
- javaFileName).toTextEditor();
- // Change java file content to support new DSL
- updateJavaTestFile(drlDroolsEditor,dslFileName);
-
- console.clearConsole();
- bot.sleep(Timing.time5S());
-
- SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(javaFileName,
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
- DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
-
- eclipse.runTreeItemAsJavaApplication(tiTestFile);
-
- String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
-
- assertTrue(javaFileName + " didn't run properly.\n" +
- "Console Text was: " + consoleText + "\n" +
- "Expected console text is: " + "Hello World\nGoodbye cruel world\n",
- "Hello World\nGoodbye cruel world\n".equals(consoleText));
- }
- /**
- * Update properly Java Test file in drlDroolsEditor to be able to run
- * with new DSL definition
- * @param drlDroolsEditor
- * @param dslFileName
- */
- private void updateJavaTestFile(SWTBotEclipseEditor drlDroolsEditor,
- String dslFileName){
- int lineIndex = 0;
- String foundLineText = null;
- while (lineIndex < drlDroolsEditor.getLineCount() && foundLineText == null){
- String lineText = drlDroolsEditor.getTextOnLine(lineIndex);
- if(lineText.trim().startsWith("kbuilder.add")){
- foundLineText = lineText;
- }
- else{
- lineIndex++;
- }
- }
- if (foundLineText != null){
- drlDroolsEditor.insertText(lineIndex,0,
- "kbuilder.add(ResourceFactory.newClassPathResource(\"" +
- dslFileName +
- "\"), ResourceType.DSL);\n");
- lineIndex++;
- drlDroolsEditor.selectLine(lineIndex);
- KeyboardHelper.pressKeyCode(bot.getDisplay(),(int)SWT.DEL);
- drlDroolsEditor.insertText(foundLineText
- .replace("ResourceType.DRL","ResourceType.DSLR") + "\n");
- drlDroolsEditor.save();
- util.waitForJobs(Timing.time10S(), JobName.BUILDING_WS);
- }
- else{
- throw new RuntimeException("File " +
- drlDroolsEditor.getTitle() +
- " has wrong content. It doesn't contain 'kbuilder.add' string.");
- }
- }
-
-}
\ No newline at end of file
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsRulesEditorTest.java 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,95 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.drools.ui.bot.test.smoke;
-
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
-import org.eclipse.swtbot.swt.finder.utils.Position;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.jboss.tools.ui.bot.ext.parts.ContentAssistBot;
-import org.jboss.tools.ui.bot.ext.parts.SWTBotEditorExt;
-import org.jboss.tools.ui.bot.ext.types.IDELabel;
-import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
-import org.junit.Test;
-/**
- * Tests Drools Rule Editor
- * @author Vladimir Pakan
- *
- */
-public class DroolsRulesEditorTest extends SWTTestExt{
- /**
- * Tests Drools Rule Editor
- */
- private static final String CONTENT_ASSIST_IMPORT = "import";
- private static final String CONTENT_ASSIST_MESSAGE = "Message";
- @Test
- public void testDroolsRulesEditor() {
- codeCompletionCheck(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
- reteViewCheck(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
- }
- /**
- * Check code completion for Drools Rule
- * @param droolsRuleName
- */
- private void codeCompletionCheck(String droolsRuleName){
-
- packageExplorer.show();
- packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,droolsRuleName);
- SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(droolsRuleName);
- ruleEditor.selectPage(IDELabel.DroolsEditor.TEXT_EDITOR_TAB);
- ruleEditor.typeText(3, 0, "i");
- ContentAssistBot contentAssist = ruleEditor.contentAssist();
- contentAssist.checkContentAssist(DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT, true);
- ruleEditor.typeText(6, 0, "m");
- contentAssist.checkContentAssist(DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE, true);
-
- SWTBotEclipseEditor ruleTextEditor = ruleEditor.toTextEditor();
- String lineText = ruleTextEditor.getTextOnLine(3).trim();
- assertTrue("Content Assist for " + DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT +
- " was not inserted properly.\n" +
- "Inserted text is: " + lineText + "\n" +
- "Expected text is: " + DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT,
- lineText.equals(DroolsRulesEditorTest.CONTENT_ASSIST_IMPORT));
-
- lineText = ruleTextEditor.getTextOnLine(6).trim();
- String messageContentAssistText = DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE + "( )";
- assertTrue("Content Assist for " + DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE +
- " was not inserted properly.\n" +
- "Inserted text is: " + lineText + "\n" +
- "Expected text has to stard with: " + messageContentAssistText,
- lineText.startsWith(messageContentAssistText));
-
- Position cursorPosition = ruleTextEditor.cursorPosition();
- assertTrue("Content Assist for " + DroolsRulesEditorTest.CONTENT_ASSIST_MESSAGE +
- " was not inserted properly.\n" +
- "Position of cursor is wrong: " + cursorPosition + "\n" +
- "Expected X cursor position is: " + 9,
- cursorPosition.column == 9);
-
- ruleEditor.close();
-
- }
- /**
- * Check Rete View of Drools Rule
- * @param droolsRuleName
- */
- private void reteViewCheck(String droolsRuleName){
-
- packageExplorer.show();
- packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,droolsRuleName);
- SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(droolsRuleName);
- ruleEditor.selectPage(IDELabel.DroolsEditor.RETE_TREE_TAB);
-
- }
-}
-
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/DroolsViewsTest.java 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,589 +0,0 @@
-package org.jboss.tools.drools.ui.bot.test.smoke;
-
-import static org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory.withLabel;
-
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.jboss.tools.ui.bot.ext.SWTOpenExt;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.jboss.tools.ui.bot.ext.Timing;
-import org.jboss.tools.ui.bot.ext.gen.IView;
-import org.jboss.tools.ui.bot.ext.helper.DragAndDropHelper;
-import org.jboss.tools.ui.bot.ext.types.IDELabel;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-
-/**
- * Test class for testing Drools views.
- *
- * @author jgargula
- */
-public class DroolsViewsTest extends SWTTestExt {
-
- private static final String PROJECT_NAME = "droolsViewsTest";
- private static final String RULES_FILE = "Sample.drl";
- private static final String RULES_FILE_PATH = "src/main/rules";
- private static final String JAVA_FILE = "DroolsTest.java";
- private static final String JAVA_FILE_PATH = "src/main/java";
- private static final String SAMPLE_TREE_NODE = "com.sample";
- private static final String GLOBAL_VARIABLE_NAME = "globalString";
- private static final String GLOBAL_VARIABLE_VALUE = "abcd";
- private static final String LOG_FILE = "test.log";
- private static boolean isFirstTimeRun = true;
-
- /**
- * Prepares all necessary things.
- */
- @Before
- public void setUp() {
- if (isFirstTimeRun) {
- eclipse.closeAllEditors();
- manageProject();
- setUpOnce();
- }
-
- SWTBotTreeItem javaTreeItem = packageExplorer.selectTreeItem(JAVA_FILE, new String[] {PROJECT_NAME, JAVA_FILE_PATH, SAMPLE_TREE_NODE});
- eclipse.debugTreeItemAsDroolsApplication(javaTreeItem);
-
- if (isFirstTimeRun) {
- eclipse.closeConfirmPerspectiveSwitchShellIfOpened(false, true);
- } else {
- while (bot.waitForShell(IDELabel.Shell.PROGRESS_INFORMATION, 0) != null) {
- bot.sleep(Timing.time2S());
- }
- }
-
- // waits for running debugging
- while (!eclipse.isDebugging()) {
- bot.sleep(Timing.time500MS());
- }
-
- // waits for stopping at breakpoint
- while (!eclipse.isSuspendedAtBreakpoint()) {
- bot.sleep(Timing.time1S());
- }
-
- isFirstTimeRun = false;
- bot.sleep(Timing.time1S());
- }
-
- /**
- * This should be executed just before the first test.
- */
- private void setUpOnce() {
- adjustDroolsTestFile();
- adjustSampleFile();
- bot.saveAllEditors();
- }
-
- /**
- * Deletes all existing projects
- * and creates brand new project.
- */
- private void manageProject() {
- ManageDroolsProject.createDroolsProject(PROJECT_NAME);
-
- Widget openingProjectWidget = null;
- try {
- openingProjectWidget = bot.widget(withLabel("Drools Runtime"));
- } catch (WidgetNotFoundException wnfe) {
- // openingProjectWidget should be null in this case
- }
- for (int i = 0; i < 30; i++) {
- if (openingProjectWidget == null || (openingProjectWidget.isDisposed()
- && packageExplorer.bot().tree().getAllItems().length > 0)) {
- break;
- } else {
- bot.sleep(Timing.time2S());
- }
- }
- }
-
- /**
- * Finishes tests.
- */
- @After
- public void tearDown() {
- eclipse.closeView(IDELabel.View.AGENDA);
- eclipse.closeView(IDELabel.View.GLOBAL_DATA);
- eclipse.closeView(IDELabel.View.AUDIT);
- eclipse.closeView(IDELabel.View.WORKING_MEMORY);
- eclipse.finishDebug();
- }
-
- /**
- * Test of Agenda view.
- */
- @Test
- public void agendaTest() {
- bot.editorByTitle(RULES_FILE).show();
- eclipse.stepOver();
- openView(IDELabel.View.AGENDA);
- HashSet<Activation> expectedSet = new HashSet<Activation>(2);
- // indicies are not compared
- expectedSet.add(new Activation(0, "Bye Bye"));
- expectedSet.add(new Activation(1, "GoodBye"));
- assertEquals(expectedSet, new HashSet<Activation>(getActivationsFromAgenda()));
- eclipse.resumeDebug();
- final String CONSOLE_TEXT_MESSAGE_1 = "Expected console text is:\n";
- final String CONSOLE_TEXT_MESSAGE_2 = "but was:\n";
- final String EXPECTED_CONSOLE_TEXT_1 = "Hello World\nGoodbye cruel world\nabcd\n";
- final String EXPECTED_CONSOLE_TEXT_2 = "JustBye rule\nFinished\n";
- assertTrue(CONSOLE_TEXT_MESSAGE_1 + EXPECTED_CONSOLE_TEXT_1 + CONSOLE_TEXT_MESSAGE_2 + console.getConsoleText(),
- EXPECTED_CONSOLE_TEXT_1.equals(console.getConsoleText()));
- expectedSet.clear();
- expectedSet.add(new Activation(0, "Finish rule"));
- showView(IDELabel.View.AGENDA);
- assertEquals(expectedSet, new HashSet<Activation>(getActivationsFromAgenda()));
- eclipse.finishDebug();
- assertTrue(CONSOLE_TEXT_MESSAGE_1 + EXPECTED_CONSOLE_TEXT_1 + EXPECTED_CONSOLE_TEXT_2 + CONSOLE_TEXT_MESSAGE_2
- + console.getConsoleText(), (EXPECTED_CONSOLE_TEXT_1 + EXPECTED_CONSOLE_TEXT_2).equals(console.getConsoleText()));
- }
-
- /**
- * Tests refreshing of Agenda view.
- */
- @Test
- @Ignore
- public void refreshAgendaTest() {
- openView(IDELabel.View.AGENDA);
- eclipse.stepOver();
- assertTrue("Agenda is not refreshing automatically.", bot.tree().getAllItems()[0].getItems().length > 0);
- }
-
- /**
- * Test of global variable in Global Data.
- */
- @Test
- public void globalDataTest() {
- openView(IDELabel.View.GLOBAL_DATA);
- assertTrue("Global data has wrong number of items. Expected 1 but was "
- + bot.tree().getAllItems().length, bot.tree().getAllItems().length == 1);
- assertTrue("Global data does not contain variable '" + GLOBAL_VARIABLE_NAME + "' with value '"
- + GLOBAL_VARIABLE_VALUE + "'", bot.tree().getAllItems()[0].getText()
- .contains(GLOBAL_VARIABLE_NAME + "= \"" + GLOBAL_VARIABLE_VALUE + "\""));
- }
-
- /**
- * Test of Audit view.
- */
- @Test
- public void auditTest() {
- eclipse.finishDebug();
- openView(IDELabel.View.AUDIT);
- SWTBotView auditView = bot.viewByTitle(IDELabel.View.AUDIT);
- assertEquals("Tree in Audit view should be empty, but it has " + auditView.bot().tree().getAllItems().length
- + " items.", 0, auditView.bot().tree().getAllItems().length);
- packageExplorer.selectTreeItem(PROJECT_NAME, null).contextMenu(IDELabel.Menu.REFRESH).click();
- assertTrue("Log file '" + LOG_FILE + "' was not created.", packageExplorer.existsResource(PROJECT_NAME, LOG_FILE));
- SWTBotTreeItem treeItem = packageExplorer.selectTreeItem(LOG_FILE, new String[] {PROJECT_NAME});
- DragAndDropHelper.dragAndDropOnTo(treeItem.widget, auditView.getWidget());
- SWTBotTreeItem[] auditTreeItems = auditView.bot().tree().getAllItems();
- assertTrue("Tree in Audit view should not be empty, but it was.", auditTreeItems.length > 0);
- assertFalse("Log file '" + LOG_FILE + "' was not loaded properly into Audit view.",
- "The selected audit log is empty.".equals(auditTreeItems[0].getText()));
- assertEquals("Tree in Audit view has wrong number of items.", 4, auditTreeItems.length);
- int index = 0;
- assertTrue("The first node of the audit view's tree does not contain right text.",
- auditTreeItems[index].getText().startsWith("Object inserted"));
- assertEquals("The first node has wrong number of items", 1, auditTreeItems[index].getItems().length);
- assertTrue("Child node of the first node does not contain right text.",
- auditTreeItems[index].getItems()[0].getText().startsWith("Activation created: Rule Hello World"));
- index = 1;
- assertTrue("The second node does not contain the right text.",
- auditTreeItems[index].getText().startsWith("Activation executed: Rule Hello World"));
- assertEquals("The second node has wrong number of items.", 1, auditTreeItems[index].getItems().length);
- assertTrue("Child node of the second node does not contain the right text.",
- auditTreeItems[index].getItems()[0].getText().startsWith("Object updated"));
- assertEquals("Child node of the second node has wrong number of items.", 2, auditTreeItems[index].getItems()[0].getItems().length);
- assertTrue("Child node of the second node does not contain the right text.",
- auditTreeItems[index].getItems()[0].getItems()[0].getText().startsWith("Activation created: Rule GoodBye"));
- assertTrue("Child node of the second node does not contain the right text.",
- auditTreeItems[index].getItems()[0].getItems()[1].getText().startsWith("Activation created: Rule Bye Bye"));
- index = 2;
- assertTrue("The third node does not contain the right text.",
- auditTreeItems[index].getText().startsWith("Activation executed: Rule Bye Bye"));
- assertEquals("The third node has wrong number of items.", 1, auditTreeItems[index].getItems().length);
- assertTrue("Child node of the third node does not contain the right text.",
- auditTreeItems[index].getItems()[0].getText().startsWith("Object updated"));
- assertEquals("Child node of the third node has wrong number of items.", 2, auditTreeItems[index].getItems()[0].getItems().length);
- assertTrue("Child node of the third node does not contain the right text.",
- auditTreeItems[index].getItems()[0].getItems()[0].getText().startsWith("Activation created: Rule Finish rule"));
- assertTrue("Child node of the third node does not contain the right text.",
- auditTreeItems[index].getItems()[0].getItems()[1].getText().startsWith("Activation cancelled: Rule GoodBye"));
- index = 3;
- assertTrue("The fourth node does not contain the right text.",
- auditTreeItems[index].getText().startsWith("Activation executed: Rule Finish rule"));
- assertEquals("The fourth node has wrong number of items.", 0, auditTreeItems[index].getItems().length);
-
- auditView.toolbarButton("Clear Log").click();
- assertEquals("Tree should be empty, but it was not.", 0, auditView.bot().tree().getAllItems().length);
- }
-
- /**
- * Test of Working Memory view
- */
- @Test
- public void workingMemoryTest() {
- openView(IDELabel.View.WORKING_MEMORY);
-
- SWTBotTree workingMemoryTree = bot.tree();
- assertEquals("Working memory tree was expected to have exactly 1 root item, but it had "
- + workingMemoryTree.getAllItems().length + " root items.", 1, workingMemoryTree.getAllItems().length);
-
- String rootItemText = workingMemoryTree.getAllItems()[0].getText();
- assertNotNull(rootItemText);
- assertTrue("Root item of working memory tree had unexpected text: " + rootItemText,
- rootItemText.contains("DroolsTest$Message"));
-
- List<String> treeItemsStrings = workingMemoryTree.expandNode(rootItemText).getNodes();
- final int EXPECTED_ITEMS = 6;
- assertEquals("There should be " + EXPECTED_ITEMS + " items but was " + treeItemsStrings.size(),
- EXPECTED_ITEMS, treeItemsStrings.size());
-
- String messageString = "message= \"Goodbye cruel world\"";
- String statusString = "status= 1";
- String[] itemsStrings = new String[] {"BYE= 2", "FINISH= 3","GOODBYE= 1", "HELLO= 0", messageString, statusString};
- Set<String> expectedWorkingMemorySet = new HashSet<String>(EXPECTED_ITEMS);
- for (int i = 0; i < itemsStrings.length; i++) {
- expectedWorkingMemorySet.add(itemsStrings[i]);
- }
- assertEquals(expectedWorkingMemorySet, getWorkingMemoryItems(rootItemText));
-
- eclipse.resumeDebug();
- expectedWorkingMemorySet.remove(messageString);
- expectedWorkingMemorySet.remove(statusString);
- messageString = "message= \"JustBye rule\"";
- statusString = "status= 3";
- expectedWorkingMemorySet.add(messageString);
- expectedWorkingMemorySet.add(statusString);
- assertEquals(expectedWorkingMemorySet, getWorkingMemoryItems(rootItemText));
-
- eclipse.resumeDebug();
- expectedWorkingMemorySet.clear();
- showView(IDELabel.View.CONSOLE);
- showView(IDELabel.View.WORKING_MEMORY);
- assertEquals("Working memory view should be empty. Maybe it was not refreshed.",
- expectedWorkingMemorySet, getWorkingMemoryItems(rootItemText));
- }
-
- /**
- * Gets working memory items from Working Memory view.
- *
- * @param rootNode Root node name
- * @return Set of strings representing working memory items.
- */
- private Set<String> getWorkingMemoryItems(final String rootNode) {
- waitForStoppingDebugging();
- showView(IDELabel.View.WORKING_MEMORY);
- Set<String> stringSet = new HashSet<String>();
-
- List<String> nodesStrings = null;
- try {
- nodesStrings = bot.tree().expandNode(rootNode).getNodes();
- } catch (WidgetNotFoundException wnfe) {
- return stringSet;
- }
-
- for (String s : nodesStrings) {
- final int index = s.indexOf('(');
- if (index > 0) {
- s = s.substring(0, index);
- }
- stringSet.add(s.trim());
- }
-
- return stringSet;
- }
-
- /**
- * Waits while debugging is stopped at breakpoint or finished.
- */
- private void waitForStoppingDebugging() {
- for (int i = 0; i < 20; i++) {
- SWTBotMenu resumeMenu = bot.menu(IDELabel.Menu.RUN).menu(IDELabel.Menu.RESUME);
- if (resumeMenu.isEnabled()) {
- return;
- }
- SWTBotMenu terminateMenu = bot.menu(IDELabel.Menu.RUN).menu(IDELabel.Menu.TERMINATE);
- if (!resumeMenu.isEnabled() && !terminateMenu.isEnabled()) {
- return;
- }
- bot.sleep(Timing.time1S());
- }
- }
-
- /**
- * Adds some pieces of code to DroolsTest.java
- */
- private void adjustDroolsTestFile() {
- packageExplorer.show();
- SWTBotEclipseEditor droolsTestEditor = packageExplorer.openFile(PROJECT_NAME,
- JAVA_FILE_PATH, SAMPLE_TREE_NODE, JAVA_FILE).toTextEditor();
- droolsTestEditor.insertText(46, 0, " public static final int BYE = 2;\n"
- + " public static final int FINISH = 3;\n");
- droolsTestEditor.insertText(20, 0, " ksession.setGlobal(\""
- + GLOBAL_VARIABLE_NAME + "\", \"" + GLOBAL_VARIABLE_VALUE + "\");\n");
- }
-
- /**
- * Adds some source code to Sample.drl
- */
- private void adjustSampleFile() {
- packageExplorer.show();
- SWTBotEclipseEditor sampleEditor = packageExplorer.openFile(PROJECT_NAME,
- RULES_FILE_PATH, RULES_FILE).toTextEditor();
- sampleEditor.insertText(20, 0, "\nrule \"Bye Bye\"\n"
- + " when\n"
- + " m : Message(status == Message.BYE || status == Message.GOODBYE, myMessage : message)\n"
- + " then\n"
- + " System.out.println(myMessage);\n"
- + " System.out.println(globalString);\n"
- + " m.setMessage(\"JustBye rule\");\n"
- + " m.setStatus(Message.FINISH);\n"
- + " update(m);\n"
- + "end\n\n"
- + "rule \"Finish rule\"\n"
- + " when\n"
- + " Message(status == Message.FINISH, myMessage : message)\n"
- + " then\n"
- + " System.out.println(myMessage);\n"
- + " System.out.println(\"Finished\");\n"
- + "end\n");
- sampleEditor.insertText(16, 8, "m : ");
- sampleEditor.insertText(19, 0, " m.setMessage(\"Bye Bye\");\n"
- + " m.setStatus(Message.BYE);\n"
- + " update(m);\n");
- sampleEditor.insertText(4, 0, "global String globalString;\n\n");
- eclipse.setNewBreakpoints(sampleEditor, 13, 35);
- }
-
- /**
- * This method opens view with given title.
- *
- * @param viewTitle Title of desired view.
- */
- private void openView(final String viewTitle) {
- checkViewTitleNull(viewTitle);
-
- IView iView;
- try {
- iView = (IView) Class.forName("org.jboss.tools.ui.bot.ext.gen.ActionItem$View$Drools"
- + viewTitle.replace(" ", "")).getField("LABEL").get(null);
- } catch (Exception e) {
- throw new IllegalArgumentException("It is not possible to get IView object for view with title '"
- + viewTitle + "'.", e);
- }
-
- new SWTOpenExt(bot).viewOpen(iView);
- }
-
- /**
- * Shows view with given title.
- * It shows and focuses chosen view.
- * If view is closed then it is opened.
- *
- * @param viewTitle Title of desired view.
- */
- private void showView(final String viewTitle) {
- checkViewTitleNull(viewTitle);
- boolean isViewOpened = false;
- for (final SWTBotView view : bot.views()) {
- if (viewTitle.equals(view.getTitle())) {
- view.getWidget().getDisplay().syncExec(new Runnable() {
- public void run() {
- view.show();
- view.setFocus();
- }
- });
- isViewOpened = true;
- break;
- }
- }
- if (!isViewOpened) {
- openView(viewTitle);
- }
- }
-
- /**
- * Checks if given string is null and if so this method
- * throws IllegalArgumentException.
- *
- * @param viewTitle String to check.
- */
- private void checkViewTitleNull(final String viewTitle) {
- if (viewTitle == null) {
- throw new IllegalArgumentException("'viewTitle' cannot be null");
- }
- }
-
- /**
- * Gets list of current activations in working memory.
- *
- * @return List of current activations in working memory
- */
- private List<Activation> getActivationsFromAgenda() {
- List<Activation> activations = new ArrayList<Activation>();
- bot.tree().expandNode(bot.tree().getAllItems()[0].getText(), true);
- for (SWTBotTreeItem item : bot.tree().getAllItems()[0].getItems()) {
- Activation activation = new Activation(
- parseIndex(item.getText()),
- parseRuleName(item.getItems()[0].getText()));
- activations.add(activation);
- }
- return activations;
- }
-
- /**
- * Parses text for an activation index in working memory.
- *
- * @param text Text to parse
- * @return index of activation in working memory
- */
- private int parseIndex(final String text) {
- int beginIndex = text.indexOf('[');
- int endIndex = text.indexOf(']');
- if (beginIndex < 0 || endIndex < 0) {
- throw new IllegalArgumentException("Given text is not parsable for index. Given text was '" + text + "'");
- }
- return Integer.valueOf(text.substring(beginIndex + 1, endIndex));
- }
-
- /**
- * Parses rule name of activation in working memory.
- *
- * @param text Text to parse
- * @return Rule name
- */
- private String parseRuleName(final String text) {
- if (!text.startsWith("ruleName")) {
- return null;
- }
- int i = text.indexOf('"');
- return text.substring(i + 1, text.indexOf('"', i + 1));
- }
-
- /**
- * This class is representation of activation in working memory.
- *
- * @author jgargula
- */
- private class Activation {
- private int index = 0;
- private String ruleName = null;
-
- /**
- * Constructor.
- */
- public Activation() {
- super();
- }
-
- /**
- * Constructor.
- *
- * @param index Index of activation
- */
- public Activation(int index) {
- this();
- setIndex(index);
- }
-
- /**
- * Constructor.
- *
- * @param index Index of activation
- * @param ruleName Rule name of activation
- */
- public Activation(int index, String ruleName) {
- this(index);
- setRuleName(ruleName);
- }
-
- /**
- * Getter for <code>index</code>.
- *
- * @return index of activation
- */
- public int getIndex() {
- return index;
- }
-
- /**
- * Setter for <code>index</code>.
- *
- * @param index Index to be set on the activation
- */
- public void setIndex(int index) {
- this.index = index;
- }
-
- /**
- * Getter for <code>ruleName</code>.
- *
- * @return rule name of activation
- */
- public String getRuleName() {
- return ruleName;
- }
-
- /**
- * Setter for <code>ruleName</code>.
- * @param ruleName
- */
- public void setRuleName(String ruleName) {
- this.ruleName = ruleName;
- }
-
- /**
- * @return String representation of activation.
- */
- public String toString() {
- return "Activation [index=" + getIndex() + "; ruleName=\"" + getRuleName() + "\"]";
- }
-
- /**
- * Hash code.
- */
- @Override
- public int hashCode() {
- return 31 + ((ruleName == null) ? 0 : ruleName.hashCode());
- }
-
- /**
- * Two activations are equal if they have the same rule name.
- * Indicies are ignored while comparing.
- */
- @Override
- public boolean equals(Object obj) {
- if (obj == null || !(obj instanceof Activation)) {
- return false;
- }
- if (this == obj) {
- return true;
- }
- Activation other = (Activation) obj;
- if (getRuleName() == null) {
- if (other.getRuleName() != null) {
- return false;
- }
- }
- if (getRuleName() == null && other.getRuleName() == null) {
- return true;
- }
- return getRuleName().equals(other.getRuleName());
- }
- }
-}
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuidedDroolsRulesEditorTest.java 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,175 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.drools.ui.bot.test.smoke;
-
-import java.awt.event.KeyEvent;
-
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
-import org.eclipse.swtbot.swt.finder.SWTBot;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.jboss.tools.ui.bot.ext.Timing;
-import org.jboss.tools.ui.bot.ext.helper.ImageHyperlinkHelper;
-import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
-import org.jboss.tools.ui.bot.ext.parts.SWTBotEditorExt;
-import org.jboss.tools.ui.bot.ext.types.EntityType;
-import org.jboss.tools.ui.bot.ext.types.IDELabel;
-import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
-import org.junit.Test;
-/**
- * Tests Guided Drools Rule Editor
- * @author Vladimir Pakan
- *
- */
-public class GuidedDroolsRulesEditorTest extends SWTTestExt{
- private static final String DROOLS_PACKAGE_FILE = "drools.package";
- /**
- * Tests Guided Drools Rule Editor
- */
- @Test
- public void testGuidedDroolsRulesEditorTest() {
- createGuidedDroolsRule(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
- editDroolsPackageFile();
- addGuidedDroolsRuleCondition(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
- removeGuidedDroolsRuleCondition(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
- }
- /**
- * Creates Guided Drools Rule
- * @param guidedDroolsRuleName
- */
- private void createGuidedDroolsRule(String guidedDroolsRuleName){
- packageExplorer.show();
- SWTBotTreeItem tiRules = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
-
- tiRules.select();
- eclipse.createNew(EntityType.GUIDED_DROOLS_RULE);
- bot.textWithLabel(IDELabel.NewGuidedDroolsRuleDialog.FILE_NAME).setText(guidedDroolsRuleName);
- eclipse.selectTreeLocation(DroolsAllBotTests.DROOLS_PROJECT_NAME,
- "src",
- "main",
- "rules");
- bot.button(IDELabel.Button.FINISH).click();
- bot.sleep(Timing.time1S());
- tiRules.expand();
- // Test if new Drools Rule is within package tree view
- assertTrue("New Guided Drools Rule was not created properly. It's not present within Package Explorer",
- SWTEclipseExt.containsTreeItemWithLabel(tiRules, guidedDroolsRuleName));
- // Test if new Drools Rule is opened in editor
- assertTrue("New Guided Drools Rule was not created properly. File " + guidedDroolsRuleName + " is not opened in editor",
- SWTEclipseExt.existEditorWithLabel(bot,guidedDroolsRuleName));
- // Test if drools.package file is within package tree view
- assertTrue("New Guided Drools Rule was not created properly. It's not present within Package Explorer",
- SWTEclipseExt.containsTreeItemWithLabel(tiRules,
- GuidedDroolsRulesEditorTest.DROOLS_PACKAGE_FILE));
- }
- /**
- * Edits drools.package file.
- * Actually only adds import java.util.List to file
- */
- private void editDroolsPackageFile(){
- packageExplorer.show();
- SWTBotEclipseEditor droolsPackageEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- GuidedDroolsRulesEditorTest.DROOLS_PACKAGE_FILE).toTextEditor();
- droolsPackageEditor.setText(droolsPackageEditor.getText() +
- "\nimport java.util.List;");
- droolsPackageEditor.save();
- droolsPackageEditor.close();
- }
-
- private void addGuidedDroolsRuleCondition(String guidedDroolsRuleName){
- packageExplorer.show();
- SWTBotEclipseEditor droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
- SWTBot droolsEditorBot = droolsEditor.bot();
- droolsEditorBot.toolbarButton().click();
- SWTBotShell dialogShell = droolsEditorBot.shell(IDELabel.GuidedDroolsRuleEditor.WHEN_ADD_DIALOG_TITLE);
- dialogShell.activate();
- dialogShell.bot().comboBoxWithLabel(IDELabel.GuidedDroolsRuleEditor.WHEN_ADD_FACT_COMBO)
- .setSelection("List");
- ImageHyperlinkHelper
- .imageHyperlinkWithTooltip(droolsEditorBot,
- IDELabel.GuidedDroolsRuleEditor.ADD_FIELD_TO_THIS_CONDITION_TOOLTIP)
- .click();
- dialogShell = droolsEditorBot.shell(IDELabel.GuidedDroolsRuleEditor.UPDATE_CONSTRAINTS_DIALOG_TITLE);
- dialogShell.activate();
- dialogShell.bot().comboBox()
- .setSelection(IDELabel.GuidedDroolsRuleEditor.ADD_RESTRICTION_ON_A_FIELD_COMBO_VALUE);
- droolsEditorBot.comboBox()
- .setSelection(IDELabel.GuidedDroolsRuleEditor.WHEN_COMBO_CONSTRAINTS_VALUE);
- ImageHyperlinkHelper
- .imageHyperlinkWithTooltip(droolsEditorBot,
- IDELabel.GuidedDroolsRuleEditor.CHOOSE_VALUE_EDITOR_TYPE_TOOLTIP)
- .click();
- dialogShell = droolsEditorBot.shell(IDELabel.GuidedDroolsRuleEditor.SELECT_VALUE_EDITOR_TYPE_DIALOG_TITLE);
- dialogShell.activate();
- dialogShell.bot().comboBoxWithLabel(IDELabel.GuidedDroolsRuleEditor.SELECT_VALUE_EDITOR_TYPE_COMBO_LABEL)
- .setSelection(IDELabel.GuidedDroolsRuleEditor.SELECT_VALUE_EDITOR_TYPE_COMBO_VALUE);
- droolsEditorBot.comboBox(1).setSelection(IDELabel.GuidedDroolsRuleEditor.FIELD_VALUE_COMBO_VALUE);
- droolsEditor.save();
- droolsEditor.close();
- droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
- SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
- ruleEditor.selectPage(2);
- String editorContent = droolsEditor.getText();
- assertTrue(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME +
- " has to contain text: List( empty == true )\n" +
- "but it doesn't.\n" +
- "It contains this text: " + editorContent,
- editorContent.replaceAll(" ","").indexOf("List(empty==true)") > 0);
- }
- /**
- * Removes Drools Rule Condition from Guided Drools Rule
- * @param guidedDroolsRuleName
- */
- private void removeGuidedDroolsRuleCondition(String guidedDroolsRuleName){
- packageExplorer.show();
- SWTBotEclipseEditor droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
- SWTBot droolsEditorBot = droolsEditor.bot();
- SWTBotEditorExt ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
- ruleEditor.selectPage(0);
- ImageHyperlinkHelper
- .imageHyperlinkWithTooltip(droolsEditorBot,
- IDELabel.GuidedDroolsRuleEditor.REMOVE_THIS_CONDITION_TOOLTIP)
- .click();
- bot.sleep(Timing.time1S());
- KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
- KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
- bot.sleep(Timing.time1S());
- KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
- KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
- bot.sleep(Timing.time1S());
- droolsEditor.save();
- droolsEditor.close();
- droolsEditor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME).toTextEditor();
- ruleEditor = bot.swtBotEditorExtByTitle(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME);
- ruleEditor.selectPage(2);
- String editorContent = droolsEditor.getText();
- assertTrue(DroolsAllBotTests.GUIDED_DROOLS_RULE_NAME +
- " has to contain textjak e:\nwhen\nthen\n" +
- "but it doesn't.\n" +
- "It contains this text: " + editorContent,
- ruleEditor.getTextOnLine(2).trim().equals("when") &&
- ruleEditor.getTextOnLine(3).trim().equals("then"));
- }
-
-}
\ No newline at end of file
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.java 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/GuvnorRepositoriesTest.java 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,559 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.drools.ui.bot.test.smoke;
-
-import static org.eclipse.swtbot.swt.finder.finders.UIThreadRunnable.syncExec;
-
-import java.awt.event.KeyEvent;
-import java.util.List;
-
-import org.apache.log4j.Logger;
-import org.eclipse.swt.custom.StyledText;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.swtbot.swt.finder.SWTBot;
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.eclipse.swtbot.swt.finder.matchers.WidgetMatcherFactory;
-import org.eclipse.swtbot.swt.finder.results.StringResult;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.hamcrest.Matcher;
-import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
-import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.jboss.tools.ui.bot.ext.SWTUtilExt;
-import org.jboss.tools.ui.bot.ext.Timing;
-import org.jboss.tools.ui.bot.ext.config.Annotations.Require;
-import org.jboss.tools.ui.bot.ext.config.Annotations.Server;
-import org.jboss.tools.ui.bot.ext.config.Annotations.ServerState;
-import org.jboss.tools.ui.bot.ext.config.requirement.PrepareViews;
-import org.jboss.tools.ui.bot.ext.config.requirement.RequirementNotFulfilledException;
-import org.jboss.tools.ui.bot.ext.config.requirement.StartServer;
-import org.jboss.tools.ui.bot.ext.config.requirement.StopServer;
-import org.jboss.tools.ui.bot.ext.gen.ActionItem.View.GuvnorGuvnorResourceHistory;
-import org.jboss.tools.ui.bot.ext.helper.ContextMenuHelper;
-import org.jboss.tools.ui.bot.ext.helper.DragAndDropHelper;
-import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
-import org.jboss.tools.ui.bot.ext.parts.SWTBotBrowserExt;
-import org.jboss.tools.ui.bot.ext.types.EntityType;
-import org.jboss.tools.ui.bot.ext.types.IDELabel;
-import org.jboss.tools.ui.bot.ext.types.JobName;
-import org.jboss.tools.ui.bot.ext.types.PerspectiveType;
-import org.jboss.tools.ui.bot.ext.view.GuvnorRepositories;
-import org.junit.Test;
-/**
- * Tests Guvnor Repositories
- * @author Vladimir Pakan
- *
- */
-@Require(server = @Server(state = ServerState.Present),
-clearProjects=false,
-clearWorkspace=false,
-runOnce=true,
-perspective="Guvnor Repository Exploring"
-)
-public class GuvnorRepositoriesTest extends SWTTestExt{
- @SuppressWarnings("unused")
- private static final Logger log = Logger.getLogger(GuvnorRepositoriesTest.class);
- private static final String GUVNOR_TEST_FILE = "Dummy rule.drl";
- private static final String GUVNOR_REPOSITORY_IMPORT_TEST_FILE = "Underage.brl";
- private static final String GUVNOR_REPOSITORY_HISTORY_TEST_FILE = "MortgageModel.model.drl";
- private static final String GUVNOR_USER_NAME = "admin";
- private static final String GUVNOR_PASSWORD = "admin";
- private GuvnorRepositories guvnorRepositories = new GuvnorRepositories();
-
- /**
- * Tests Guvnor Repositories
- */
- @Test
- public void testGuvnorRepositories() {
- startGuvnor();
- addGuvnorRepository();
- deleteGuvnorRepository();
- addGuvnorRepository();
- openGuvnorConsole();
- drillIntoFunctionalityCheck();
- browseGuvnorRepository(GuvnorRepositoriesTest.GUVNOR_TEST_FILE);
- guvnorFunctionalityCheck(GuvnorRepositoriesTest.GUVNOR_TEST_FILE,
- DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME,
- GuvnorRepositoriesTest.GUVNOR_REPOSITORY_IMPORT_TEST_FILE);
- repositoryHistoryCheck(GuvnorRepositoriesTest.GUVNOR_REPOSITORY_HISTORY_TEST_FILE);
- stopGuvnor();
- }
-
- /**
- * Adds Guvnor Repository
- */
- private void addGuvnorRepository(){
- eclipse.openPerspective(PerspectiveType.GUVNOR_REPOSITORY_EXPLORING);
- SWTBot guvnorRepositoriesBot = guvnorRepositories.show().bot();
- SWTUtilExt.getViewToolbarButtonWithTooltip(
- guvnorRepositories.show(),
- IDELabel.GuvnorRepositories.ADD_GUVNOR_REPOSITORY_TOOLTIP)
- .click();
- eclipse.waitForShell("");
- SWTBot addGuvnorRepositoryDialog = guvnorRepositoriesBot.activeShell().bot();
- String guvnorRepositoryUrl = DroolsAllBotTests.getGuvnorRepositoryUrl();
- if (guvnorRepositoryUrl != null && guvnorRepositoryUrl.length() > 0){
- addGuvnorRepositoryDialog.textWithLabel(IDELabel.GuvnorAddRepositoryDialog.REPOSITORY)
- .setText(guvnorRepositoryUrl);
- }
- addGuvnorRepositoryDialog.button(IDELabel.Button.FINISH).click();
- assertTrue("Guvnor repository was not created properly",
- guvnorRepositoriesBot.tree().rowCount() == 1);
- }
- /**
- * Deletes Guvnor Repostiry
- */
- private void deleteGuvnorRepository(){
- SWTBot guvnorRepositoriesBot = guvnorRepositories.show().bot();;
- SWTBotTree guvnorRepositoryTree = guvnorRepositoriesBot.tree();
- guvnorRepositoryTree.select(0);
- SWTUtilExt.getViewToolbarButtonWithTooltip(
- guvnorRepositories.show(),
- IDELabel.GuvnorRepositories.REMOVE_GUVNOR_REPOSITORY_TOOLTIP)
- .click();
- guvnorRepositoriesBot.shell(IDELabel.GuvnorRepositories.REMOVE_GUVNOR_REPOSITORY_DIALOG_TITLE)
- .activate();
- bot.button(IDELabel.Button.OK).click();
- assertTrue("Guvnor repository was not deleted properly",
- guvnorRepositoriesBot.tree().rowCount() == 0);
- }
-
- /**
- * Opens Guvnor Console
- */
- private void openGuvnorConsole(){
- SWTBot guvnorRepositoriesBot = guvnorRepositories.show().bot();
- SWTBotTree guvnorRepositoryTree = guvnorRepositoriesBot.tree();
- SWTBotTreeItem tiGuvnorRepository = guvnorRepositoryTree.getAllItems()[0];
- ContextMenuHelper.prepareTreeItemForContextMenu(guvnorRepositoryTree, tiGuvnorRepository);
- new SWTBotMenu(ContextMenuHelper.getContextMenu(guvnorRepositoryTree,
- IDELabel.Menu.OPEN_GUVNOR_CONSOLE, false)).click();
- bot.sleep(Timing.time5S());
- SWTBotBrowserExt browser = bot.browserByTitle(IDELabel.GuvnorConsole.GUVNOR_CONSOLE_TITLE);
- browser.setInputTextViaJavaScript(GuvnorRepositoriesTest.GUVNOR_USER_NAME, 1, bot);
- browser.setInputTextViaJavaScript(GuvnorRepositoriesTest.GUVNOR_PASSWORD, 2, bot);
- browser.clickOnButtonViaJavaScript(0, bot);
- browser.clickOnButtonViaJavaScript(IDELabel.GuvnorConsole.BUTTON_YES_INSTALL_SAMPLES, bot);
- bot.sleep(Timing.time1S());
- KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
- KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_RIGHT);
- bot.sleep(Timing.time1S());
- KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
- KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
- bot.sleep(Timing.time30S()); // so long because of NFS filesystem on remote machines
- KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
- KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
- }
- /**
- * Browse Guvnor Repository and open fileToOpenFile
- * @param fileToOpen
- */
- private void browseGuvnorRepository(String fileToOpen){
-
- guvnorRepositories.show();
-
- guvnorRepositories.openFile(Timing.time3S(),DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
- IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
- IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
- fileToOpen);
-
- assertTrue("File from Guvnor Repository was not opened properly. File " + fileToOpen + " is not opened in editor",
- SWTEclipseExt.existEditorWithLabel(bot,fileToOpen + " (Read only)"));
-
- }
- /**
- * Starts Guvnor AS
- */
- private void startGuvnor(){
- try {
- new StartServer().fulfill();
- new PrepareViews().fulfill();
- } catch (RequirementNotFulfilledException e) {
- throw new RuntimeException(e);
- }
- }
- /**
- * Stops Guvnor AS
- */
- private void stopGuvnor(){
- try {
- new StopServer().fulfill();
- } catch (RequirementNotFulfilledException e) {
- throw new RuntimeException(e);
- }
- }
- /**
- * Imports file with fileName to Drools project and check update and commit Guvnor functionality
- * @param fileName
- * @param sampleFileName
- * @param importFileName
- */
- private void guvnorFunctionalityCheck(String fileName, String sampleFileName, String importFileName){
- eclipse.openPerspective(PerspectiveType.JAVA);
- guvnorRepositories.show().bot();
- SWTBotTreeItem tiGuvnorFile = guvnorRepositories.selectTreeItem(Timing.time3S(),fileName,
- new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
- IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
- IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM});
- tiGuvnorFile.select();
- SWTBot packageExplorerBot = packageExplorer.show().bot();
- SWTBotTreeItem tiDroolRuleDir = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
- DragAndDropHelper.dragAndDropOnTo(tiGuvnorFile.widget,tiDroolRuleDir.widget);
- bot.waitForShell(IDELabel.Shell.COPY_FILE_FROM_GUVNOR_TO_PACKAGE_EXPLORER).activate();
- bot.button(IDELabel.Button.OK).click();
- SWTBotTree packageExplorerTree = packageExplorerBot.tree();
- // File is renamed because there is appended Guvnor info to Tree Item Label
- // So we need to get real label of Tree Item and use it later
- SWTBotTreeItem tiDroolRuleFile = SWTEclipseExt.getTreeItemOnPathStartsWith(packageExplorerBot,
- packageExplorerTree,
- Timing.time1S(),
- fileName,
- new String[]{DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
- SWTBotEditor editor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- tiDroolRuleFile.getText());
-
- assertTrue("File moved from Guvnor Repository to Drools project was not opened properly. File " + fileName + " is not opened in editor",
- SWTEclipseExt.existEditorWithLabel(bot,fileName));
- // Test Update from Guvnor Repository
- final String changeText = "#$%SWTBot Change#$%";
- final String originalEditorText = editor.toTextEditor().getText();
- editor.toTextEditor().insertText(0, 0, changeText);
- editor.save();
- bot.sleep(Timing.time1S());
- ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiDroolRuleFile);
- ContextMenuHelper.clickContextMenu(packageExplorerTree,
- IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_UPDATE);
- bot.sleep(Timing.time5S());
- assertTrue("Update from Guvnor Repository was not successful. File " + fileName + " has not updated content.",
- editor.toTextEditor().getText().equals(originalEditorText));
- // Test commit to Guvnor Repository
- editor.toTextEditor().insertText(0, 0, changeText);
- editor.save();
- bot.sleep(Timing.time1S());
- ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiDroolRuleFile);
- ContextMenuHelper.clickContextMenu(packageExplorerTree,
- IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_COMMIT);
- bot.sleep(Timing.time5S());
- editor.close();
- editor = guvnorRepositories.openFile(Timing.time2S(),DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
- IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
- IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
- fileName);
- String editorText = GuvnorRepositoriesTest.trimEditorText(editor.toTextEditor().getText());
- String expectedEditorText = GuvnorRepositoriesTest.trimEditorText(changeText + originalEditorText);
- assertTrue("Commit to Guvnor Repository was not successful. File " + fileName + " was not commited properly." +
- "\nIt has content: " + editorText +
- "\nExpected content: " + expectedEditorText,
- editorText.equals(expectedEditorText));
- // Test Add To Repository
- SWTBotTreeItem tiSampleFile = packageExplorer.selectTreeItem(sampleFileName,
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
- ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiSampleFile);
- ContextMenuHelper.clickContextMenu(packageExplorerTree,
- IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_ADD);
- eclipse.waitForShell("");
- SWTBotShell addToGuvnorShell = packageExplorerBot.activeShell();
- SWTBot addToGuvnorDialogBot = addToGuvnorShell.bot();
- addToGuvnorDialogBot.button(IDELabel.Button.NEXT).click();
- SWTEclipseExt.getTreeItemOnPath(addToGuvnorDialogBot,
- addToGuvnorDialogBot.tree(),
- Timing.time3S(),
- IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
- new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
- IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM})
- .select();
- bot.sleep(Timing.time5S());
- addToGuvnorDialogBot.button(IDELabel.Button.FINISH).click();
- eclipse.waitForClosedShell(addToGuvnorShell);
- boolean isAddedToGuvnorRepository = false;
- try{
- guvnorRepositories.selectTreeItem(Timing.time2S(),sampleFileName,
- new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
- IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
- IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM});
- isAddedToGuvnorRepository = true;
- } catch (WidgetNotFoundException wnfe){
- isAddedToGuvnorRepository = false;
- }
-
- assertTrue("File " + sampleFileName + " was not added to Guvnor Repository.",
- isAddedToGuvnorRepository);
- // Test Deleting from Guvnor Repository file is already selected in Guvnor Repository Tree
- packageExplorerBot = packageExplorer.show().bot();
- packageExplorerTree = packageExplorerBot.tree();
- packageExplorerBot.sleep(Timing.time2S());
- ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiSampleFile);
- ContextMenuHelper.clickContextMenu(packageExplorerTree,
- IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_DELETE);
- SWTBot dialogBot = packageExplorerBot.shell(IDELabel.Shell.CONFIRM_DELETE).activate().bot();
- dialogBot.button(IDELabel.Button.OK).click();
- packageExplorerBot.sleep(Timing.time2S());
- boolean isRemovedFromGuvnorRepository = false;
- try{
- guvnorRepositories.selectTreeItem(Timing.time2S(),sampleFileName,
- new String[]{DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
- IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
- IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM});
- isRemovedFromGuvnorRepository = false;
- } catch (WidgetNotFoundException wnfe){
- isRemovedFromGuvnorRepository = true;
- }
- assertTrue("File " + sampleFileName + " was not removed from Guvnor Repository.",
- isRemovedFromGuvnorRepository);
- // Import File From Repository
- eclipse.createNew(EntityType.RESOURCES_FROM_GUVNOR);
- bot.button(IDELabel.Button.NEXT).click();
- bot.sleep(Timing.time2S());
- SWTEclipseExt.getTreeItemOnPath(
- bot,
- bot.tree(),
- Timing.time5S(),
- importFileName,
- new String[] {
- DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
- IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
- IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM }).select();
- bot.button(IDELabel.Button.NEXT).click();
- SWTEclipseExt.getTreeItemOnPath(bot,
- bot.tree(),
- Timing.time1S(),
- "rules",
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,"src","main"}).select();
- bot.button(IDELabel.Button.FINISH).click();
- util.waitForJobs(Timing.time5S(),JobName.BUILDING_WS);
- bot.sleep(Timing.time1S());
- packageExplorerBot = packageExplorer.show().bot();
- packageExplorerTree = packageExplorerBot.tree();
- boolean isAddedFromGuvnorRepository = false;
- SWTBotTreeItem tiImportRuleFile = null;
- try{
- tiImportRuleFile = SWTEclipseExt.getTreeItemOnPathStartsWith(packageExplorerBot,
- packageExplorerTree,
- Timing.time1S(),
- importFileName,
- new String[]{DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
- isAddedFromGuvnorRepository = true;
- } catch (WidgetNotFoundException wnfe){
- isAddedFromGuvnorRepository = false;
- }
- assertTrue("File " + importFileName + " was not added from Guvnor Repository.",
- isAddedFromGuvnorRepository);
-
- ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiImportRuleFile);
- ContextMenuHelper.clickContextMenu(packageExplorerTree,
- IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_DISCONNECT);
- bot.sleep(Timing.time1S());
- // name of the file has to be without Guvnor information appended to end of file name
- // when imported from Guvnor repository
- assertTrue("File " + importFileName + " was not disconnected from Guvnor Repository.",
- tiImportRuleFile.getText().trim().equals(importFileName));
- }
- private void drillIntoFunctionalityCheck(){
- SWTBotView guvnorReposioryView = guvnorRepositories.show();
- SWTBotTreeItem tiRoot = guvnorRepositories.selectTreeItem(DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),null)
- .doubleClick();
- bot.sleep(Timing.time5S());
- SWTBotShell activeShell = bot.activeShell();
- SWTBot dialogBot = null;
- if (activeShell.getText().length() != 0){
- dialogBot = bot.shell("").activate().bot();
- }
- else{
- dialogBot = activeShell.bot();
- }
-
- dialogBot.textWithLabel(IDELabel.GuvnorConsoleLoginDialog.USER_NAME).setText(
- GuvnorRepositoriesTest.GUVNOR_USER_NAME);
- dialogBot.textWithLabel(IDELabel.GuvnorConsoleLoginDialog.PASSWORD).setText(
- GuvnorRepositoriesTest.GUVNOR_PASSWORD);
- dialogBot.button(IDELabel.Button.OK).click();
- tiRoot.expand();
- bot.sleep(Timing.time2S());
- tiRoot.select(IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM);
- SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
- IDELabel.GuvnorRepositories.GO_INTO_GUVNOR_REPOSITORY_TOOLTIP)
- .click();
- SWTBot guvnorRepositoryBot = guvnorReposioryView.bot();
- SWTBotTree guvnorRepositoryTree = guvnorRepositoryBot.tree();
- guvnorRepositoryBot.sleep(Timing.time3S());
- assertTrue("Guvnor repository Go Into functionality doesn't work properly.\n" +
- "Expected First Tree Item in Guvnor Repository is " + IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM +
- "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
- IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM.equals(guvnorRepositoryTree.getAllItems()[0].getText()));
-
- guvnorRepositories.selectTreeItem(Timing.time2S(), IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM,
- null);
- SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
- IDELabel.GuvnorRepositories.GO_INTO_GUVNOR_REPOSITORY_TOOLTIP)
- .click();
- guvnorRepositoryBot.sleep(Timing.time3S());
- assertTrue("Guvnor repository Go Into functionality doesn't work properly.\n" +
- "Expected First Tree Item in Guvnor Repository is " + IDELabel.GuvnorRepositories.APPLICANTDSL_DSL_TREE_ITEM +
- "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
- IDELabel.GuvnorRepositories.APPLICANTDSL_DSL_TREE_ITEM.equals(guvnorRepositoryTree.getAllItems()[0].getText()));
-
- SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
- IDELabel.GuvnorRepositories.BACK_GUVNOR_REPOSITORY_TOOLTIP)
- .click();
- guvnorRepositoryBot.sleep(Timing.time3S());
- assertTrue("Guvnor repository Back functionality doesn't work properly.\n" +
- "Expected First Tree Item in Guvnor Repository is " + IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM +
- "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
- IDELabel.GuvnorRepositories.DEFAULT_PACKAGE_TREE_ITEM.equals(guvnorRepositoryTree.getAllItems()[0].getText()));
-
- SWTUtilExt.getViewToolbarButtonWithTooltip(guvnorReposioryView,
- IDELabel.GuvnorRepositories.HOME_GUVNOR_REPOSITORY_TOOLTIP)
- .click();
- guvnorRepositoryBot.sleep(Timing.time3S());
- assertTrue("Guvnor repository Home functionality doesn't work properly.\n" +
- "Expected First Tree Item in Guvnor Repository is " + DroolsAllBotTests.getGuvnorRepositoryRootTreeItem() +
- "\nBut it was " + guvnorRepositoryTree.getAllItems()[0].getText(),
- DroolsAllBotTests.getGuvnorRepositoryRootTreeItem().equals(guvnorRepositoryTree.getAllItems()[0].getText()));
- }
- /**
- * Check Repository History Functionality
- * @param testFileName
- */
- private void repositoryHistoryCheck (String testFileName){
- // Import File From Repository
- eclipse.createNew(EntityType.RESOURCES_FROM_GUVNOR);
- bot.button(IDELabel.Button.NEXT).click();
- SWTEclipseExt.getTreeItemOnPath(
- bot,
- bot.tree(),
- Timing.time5S(),
- testFileName,
- new String[] {
- DroolsAllBotTests.getGuvnorRepositoryRootTreeItem(),
- IDELabel.GuvnorRepositories.PACKAGES_TREE_ITEM,
- IDELabel.GuvnorRepositories.MORTGAGE_TREE_ITEM }).select();
- bot.button(IDELabel.Button.NEXT).click();
- SWTEclipseExt.getTreeItemOnPath(bot,
- bot.tree(),
- Timing.time1S(),
- "rules",
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,"src","main"}).select();
- bot.button(IDELabel.Button.FINISH).click();
- util.waitForJobs(Timing.time5S(),JobName.BUILDING_WS);
- bot.sleep(Timing.time1S());
- SWTBot packageExplorerBot = packageExplorer.show().bot();
- SWTBotTree packageExplorerTree = packageExplorerBot.tree();
- // File is renamed because there is appended Guvnor info to Tree Item Label
- // So we need to get real label of Tree Item and use it later
- SWTBotTreeItem tiTestRuleFile = SWTEclipseExt.getTreeItemOnPathStartsWith(packageExplorerBot,
- packageExplorerTree,
- Timing.time1S(),
- testFileName,
- new String[]{DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
- SWTBotEditor editor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- tiTestRuleFile.getText());
- // change test file
- String addedChange = "SWTBOT Change!@#$asdfghjkl)(*&^";
- editor.toTextEditor().insertText(0,0,addedChange);
- editor.save();
- bot.sleep(Timing.time1S());
- // commit changes
- ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
- ContextMenuHelper.clickContextMenu(packageExplorerTree,
- IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_COMMIT);
- bot.sleep(Timing.time5S());
- // check history
- ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
- ContextMenuHelper.clickContextMenu(packageExplorerTree,
- IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_SHOW_HISTORY);
- bot.sleep(Timing.time5S());
- SWTBotView guvnorResourceHistoryView = open.viewOpen(GuvnorGuvnorResourceHistory.LABEL);
- SWTBot guvnorResourceHistoryBot = guvnorResourceHistoryView.bot();
- SWTBotTable guvnorResourceHistoryTable = guvnorResourceHistoryView.bot().table();
- assertTrue("Guvnor Resource History table for file " + testFileName +
- " has to contain at least one record but is empty.",
- guvnorResourceHistoryTable.rowCount() > 0);
- // Compare Revisions
- String secondAddedChange = "222222" + addedChange;
- editor.toTextEditor().insertText(0,0,secondAddedChange);
- editor.saveAndClose();
- bot.sleep(Timing.time1S());
- ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
- ContextMenuHelper.clickContextMenu(packageExplorerTree,
- IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_COMPARE_WITH_VERSION);
- eclipse.waitForShell("");
- guvnorResourceHistoryBot.activeShell().bot().button(IDELabel.Button.OK).click();
- SWTBotEditor compareEditor = bot.editorByTitle("Compare");
- Matcher<StyledText> widgetOfTypeMatcher = WidgetMatcherFactory.widgetOfType(StyledText.class);
- final List<?> styledTexts = compareEditor.bot().widgets(widgetOfTypeMatcher,compareEditor.getWidget());
- String newVersionEditorText = syncExec(new StringResult() {
- public String run() {
- return ((StyledText)styledTexts.get(0)).getText();
- }
- });
- String revisionEditorText = syncExec(new StringResult() {
- public String run() {
- return ((StyledText)styledTexts.get(1)).getText();
- }
- });
- compareEditor.close();
- assertTrue("Actual version of file opened within compare editor has wrong content.\n" +
- "Content should start with " + secondAddedChange +
- "\n but is " + newVersionEditorText,newVersionEditorText.startsWith(secondAddedChange));
- assertTrue("File stored in Guvnor Repository opened within compare editor has wrong content.\n" +
- "Content should start with " + addedChange +
- "\n but is " + revisionEditorText,revisionEditorText.startsWith(addedChange));
- // Open Revision
- guvnorResourceHistoryView.show();
- guvnorResourceHistoryTable.setFocus();
- bot.sleep(Timing.time1S());
- guvnorResourceHistoryTable.select(0);
- bot.sleep(Timing.time1S());
- KeyboardHelper.pressKeyCodeUsingAWT(KeyEvent.VK_ENTER);
- KeyboardHelper.releaseKeyCodeUsingAWT(KeyEvent.VK_ENTER);
- bot.sleep(Timing.time1S());
- SWTBotEditor revisonFileEditor = eclipse.editorStartsWith(testFileName);
- String revisionFileText = revisonFileEditor.toTextEditor().getText();
- revisonFileEditor.close();
- assertTrue("File stored in Guvnor Repository has wrong content.\n" +
- "Content should start with " + addedChange +
- "\n but is " + revisionFileText,revisionFileText.startsWith(addedChange));
- // Switch to version
- editor = packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- tiTestRuleFile.getText());
- ContextMenuHelper.prepareTreeItemForContextMenu(packageExplorerTree, tiTestRuleFile);
- ContextMenuHelper.clickContextMenu(packageExplorerTree,
- IDELabel.Menu.GUVNOR,IDELabel.Menu.GUVNOR_SWITCH_TO_VERSION);
- eclipse.waitForShell("");
- guvnorResourceHistoryBot.activeShell().bot().button(IDELabel.Button.OK).click();
- bot.sleep(Timing.time3S());
- String editorText = editor.toTextEditor().getText();
- assertTrue("Switched version of file has wrong content.\n" +
- "Content should start with " + addedChange +
- "\n but is " + editorText,editorText.startsWith(addedChange));
- }
-
- private static String trimEditorText (String textToTrim){
-
- return textToTrim.replaceAll("\n", "").replaceAll("\t", "").replaceAll("\r", "").replaceAll(" ", "");
-
- }
-
-}
\ No newline at end of file
Deleted: 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-04-23 18:01:23 UTC (rev 40417)
+++ 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-04-23 18:01:46 UTC (rev 40418)
@@ -1,167 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.drools.ui.bot.test.smoke;
-
-import java.io.File;
-
-import org.eclipse.swtbot.swt.finder.SWTBot;
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotCheckBox;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
-import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.jboss.tools.ui.bot.ext.Timing;
-import org.jboss.tools.ui.bot.ext.helper.FileRenameHelper;
-import org.jboss.tools.ui.bot.ext.types.EntityType;
-import org.jboss.tools.ui.bot.ext.types.IDELabel;
-import org.jboss.tools.ui.bot.ext.types.ViewType;
-import org.jboss.tools.ui.bot.ext.view.ProblemsView;
-import org.jboss.tools.ui.bot.test.WidgetVariables;
-import org.junit.Test;
-/**
- * Test managing of Drools Project
- * @author Vladimir Pakan
- *
- */
-public class ManageDroolsProject extends SWTTestExt{
- /**
- * Test manage Drools project
- */
- private static final String RENAMED_DROOLS_PROJECT = DroolsAllBotTests.DROOLS_PROJECT_NAME + "-renamed";
-
- @Test
- public void testManageDroolsProject() {
- createDroolsProjectTest (DroolsAllBotTests.DROOLS_PROJECT_NAME);
- runNewDroolsProject (DroolsAllBotTests.DROOLS_PROJECT_NAME);
- renameDroolsProject (DroolsAllBotTests.DROOLS_PROJECT_NAME, ManageDroolsProject.RENAMED_DROOLS_PROJECT);
- deleteDroolsProject (ManageDroolsProject.RENAMED_DROOLS_PROJECT);
- createDroolsProjectTest (DroolsAllBotTests.DROOLS_PROJECT_NAME);
- }
-
- public static void createDroolsProject(String droolsProjectName) {
- eclipse.showView(ViewType.PACKAGE_EXPLORER);
- eclipse.createNew(EntityType.DROOLS_PROJECT);
- bot.textWithLabel(IDELabel.NewDroolsProjectDialog.NAME).setText(droolsProjectName);
- bot.button(IDELabel.Button.NEXT).click();
- // check all buttons
- int index = 0;
- boolean checkBoxExists = true;
- while (checkBoxExists){
- try{
- SWTBotCheckBox checkBox = bot.checkBox(index);
- if (!checkBox.isChecked()){
- checkBox.click();
- }
- index++;
- }catch (WidgetNotFoundException wnfe){
- checkBoxExists = false;
- }catch (IndexOutOfBoundsException ioobe){
- checkBoxExists = false;
- }
- }
- 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(CODE_COMPATIBILITY);
- bot.button(IDELabel.Button.FINISH).click();
- }
-
- /**
- * Creates new Drools project
- * @param droolsProjectName
- */
- private void createDroolsProjectTest(String droolsProjectName){
- createDroolsProject(droolsProjectName);
- SWTTestExt.util.waitForAll(30*1000L);
- bot.waitForNumberOfShells(1, 60);
- assertTrue("Project "
- + droolsProjectName
- + " was not created properly.",SWTEclipseExt.isProjectInPackageExplorer(bot,droolsProjectName));
- String projectPath = File.separator + droolsProjectName;
- SWTBotTreeItem[] errors = ProblemsView.getFilteredErrorsTreeItems(bot,null ,projectPath, null,null);
- assertTrue("Project "
- + droolsProjectName
- + " was not created properly. There are these errors: "
- + SWTEclipseExt.getFormattedTreeNodesText(errors),
- errors == null || errors.length == 0);
- SWTBotTreeItem[] warnings = ProblemsView.getFilteredWarningsTreeItems(bot,null ,projectPath, null,null);
- assertTrue("Project "
- + droolsProjectName
- + " was not created properly. There are these warnings: "
- + SWTEclipseExt.getFormattedTreeNodesText(warnings),
- warnings == null || warnings.length == 0);
-
- }
- /**
- * Runs newly created Drools project and check result
- * @param droolsProjectName
- */
- private void runNewDroolsProject(String droolsProjectName){
- console.clearConsole();
- bot.sleep(5000L);
-
- SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(DroolsAllBotTests.DROOLS_TEST_JAVA_TREE_NODE,
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
- DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
-
- eclipse.runTreeItemAsJavaApplication(tiTestFile);
-
- String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
-
- assertTrue("DroolsTest.java class didn't run properly.\n" +
- "Console Text was: " + consoleText + "\n" +
- "Expected console text is: " + "Hello World\nGoodbye cruel world\n",
- "Hello World\nGoodbye cruel world\n".equals(consoleText));
- }
- /**
- * Renames Drools project and check result
- * @param droolsProjectName
- * @param renamedProjectName
- */
- private void renameDroolsProject(String droolsProjectName, String renamedProjectName){
- packageExplorer.show();
-
- bot.sleep(TIME_1S);
-
- SWTBot webProjects = bot.viewByTitle(WidgetVariables.PACKAGE_EXPLORER).bot();
- SWTBotTree tree = webProjects.tree();
-
- tree.setFocus();
- String checkResult = FileRenameHelper.checkProjectRenamingWithinPackageExplorer(bot,
- DroolsAllBotTests.DROOLS_PROJECT_NAME,
- ManageDroolsProject.RENAMED_DROOLS_PROJECT,
- IDELabel.Shell.RENAME_JAVA_PROJECT);
- assertNull(checkResult,checkResult);
- }
-
- /**
- * Deletes Drools project and check result
- *
- * @param droolsProjectName
- */
- private void deleteDroolsProject(final String droolsProjectName) {
- bot.sleep(Timing.time10S()); // because of NFS filesystem
- packageExplorer.deleteProject(droolsProjectName, true);
- assertFalse("Drools project: " + droolsProjectName + " was not deleted properly",
- packageExplorer.existsResource(droolsProjectName));
- }
-}
-
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRules.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRules.java 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRules.java 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,118 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.drools.ui.bot.test.smoke;
-
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEclipseEditor;
-import org.eclipse.swtbot.swt.finder.SWTBot;
-import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.jboss.tools.ui.bot.ext.Timing;
-import org.jboss.tools.ui.bot.ext.helper.ContextMenuHelper;
-import org.jboss.tools.ui.bot.ext.types.EntityType;
-import org.jboss.tools.ui.bot.ext.types.IDELabel;
-import org.jboss.tools.ui.bot.ext.types.ViewType;
-import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
-import org.junit.Test;
-/**
- * Test managing of Drools Rules
- * @author Vladimir Pakan
- *
- */
-public class ManageDroolsRules extends SWTTestExt{
- /**
- * Test manage Drools Rules
- */
- @Test
- public void testManageDroolsRules() {
- createDroolsRule (DroolsAllBotTests.TEST_DROOLS_RULE_NAME);
- bot.sleep(Timing.time3S());
- debugDroolsRule (DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME);
- }
- /**
- * Creates Drools Rule and checks result
- * @param droolsRuletName
- */
- private void createDroolsRule(String droolsRuleName){
-
- packageExplorer.show();
- SWTBotTreeItem tiDroolsRules = packageExplorer.selectTreeItem(DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE,
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME});
-
- tiDroolsRules.select();
- eclipse.createNew(EntityType.DROOLS_RULE);
-
- bot.textWithLabel(IDELabel.NewDroolsRuleDialog.FILE_NAME).setText(droolsRuleName);
- bot.textWithLabel(IDELabel.NewDroolsRuleDialog.RULE_PACKAGE_NAME).setText(DroolsAllBotTests.COM_SAMPLE_TREE_NODE);
- bot.button(IDELabel.Button.FINISH).click();
- bot.sleep(Timing.time1S());
- tiDroolsRules.expand();
- // Test if new Drools Rule is within package tree view
- boolean isRuleCreated = true;
- try{
- tiDroolsRules.getNode(droolsRuleName);
- } catch (WidgetNotFoundException wnfe){
- isRuleCreated = false;
- }
- assertTrue("New Drools Rule was not created properly. It's not present within Package Explorer",isRuleCreated);
- // Test if new Drools Rule is opened in editor
- isRuleCreated = true;
- try{
- bot.editorByTitle(droolsRuleName);
- } catch (WidgetNotFoundException wnfe){
- isRuleCreated = false;
- }
- assertTrue("New Drools Rule was not created properly. File " + droolsRuleName + " is not opened in editor",isRuleCreated);
- }
- /**
- * Debug Drools Rule and checks result
- * @param droolsRuletName
- */
- private void debugDroolsRule(String droolsRuleName){
- packageExplorer.show();
- SWTBotTreeItem tiDroolsRule = packageExplorer.selectTreeItem(DroolsAllBotTests.SAMPLE_DROOLS_RULE_NAME,
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_RULES_TREE_NODE});
- SWTBot packageExplorerBot = bot.viewByTitle(ViewType.PACKAGE_EXPLORER.getViewLabel()).bot();
- SWTBotTree tree = packageExplorerBot.tree();
- // Select and Open Rule File
- ContextMenuHelper.prepareTreeItemForContextMenu(tree , tiDroolsRule);
- new SWTBotMenu(ContextMenuHelper.getContextMenu(tree, IDELabel.Menu.OPEN, true)).click();
- SWTBotEclipseEditor ruleEditor = bot.editorByTitle(droolsRuleName).toTextEditor();
- ruleEditor.selectRange(8, 0, 0);
- bot.menu(IDELabel.Menu.RUN).menu(IDELabel.Menu.TOGGLE_BREAKPOINT).click();
- SWTBotTreeItem tiDroolsTest = packageExplorer.selectTreeItem(DroolsAllBotTests.DROOLS_TEST_JAVA_TREE_NODE,
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
- DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
- console.clearConsole();
- eclipse.debugTreeItemAsDroolsApplication(tiDroolsTest);
- eclipse.closeConfirmPerspectiveSwitchShellIfOpened(false);
- String consoleText = console.getConsoleText(3*1000L,3*1000L,true);
- assertTrue("Drools Rule was not debuged properly.\nConsole content should have been empty but is:\n" + consoleText,
- consoleText.length() == 0);
- SWTBotView debugView = bot.viewByTitle(ViewType.DEBUG.getViewLabel());
- debugView.toolbarButton(IDELabel.DebugView.BUTTON_STEP_OVER_TOOLTIP).click();
- consoleText = console.getConsoleText(3*1000L,60*1000L,true);
- assertTrue("Drools Rule was not debuged properly.\nConsole content should be:\n'Hello World\n' but is:\n" + consoleText,
- consoleText.equals("Hello World\n"));
- debugView.toolbarButton(IDELabel.DebugView.BUTTON_RESUME_TOOLTIP).click();
- consoleText = console.getConsoleText(3*1000L,60*1000L,true);
- assertTrue("Drools Rule was not debuged properly.\nConsole content should be:Hello World\nGoodbye cruel world\n" + consoleText,
- consoleText.equals("Hello World\nGoodbye cruel world\n"));
- }
-
-}
-
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/ManageDroolsRuntime.java 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,180 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.drools.ui.bot.test.smoke;
-
-import java.io.File;
-
-import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.jboss.tools.ui.bot.ext.types.IDELabel;
-import org.jboss.tools.ui.bot.ext.types.IDELabel.PreferencesDialog;
-import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
-import org.junit.Test;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTable;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotText;
-import org.drools.eclipse.util.DroolsRuntimeManager;
-import org.drools.eclipse.util.DroolsRuntime;
-/**
- * Test managing of Drools Runtime
- * @author Vladimir Pakan
- *
- */
-public class ManageDroolsRuntime extends SWTTestExt{
- /**
- * Test manage Drools Runtime
- */
- @Test
- public void testManageDroolsRuntime() {
- addDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME,DroolsAllBotTests.DROOLS_RUNTIME_LOCATION,true);
- editDroolsRuntime(DroolsAllBotTests.getTestDroolsRuntimeName(),
- DroolsAllBotTests.getTestDroolsRuntimeLocation(),
- "edited" , "testedit");
- removeDroolsRuntime(DroolsAllBotTests.getTestDroolsRuntimeName());
- createDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME,DroolsAllBotTests.CREATE_DROOLS_RUNTIME_LOCATION);
- if (DroolsAllBotTests.useExternalDroolsRuntime()){
- removeDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME);
- addDroolsRuntime(DroolsAllBotTests.DROOLS_RUNTIME_NAME,DroolsAllBotTests.DROOLS_RUNTIME_LOCATION,true);
- }
- }
- /**
- * Adds Drools Runtime
- * @param runtimeName
- * @param runtimeLocation
- * @param setAsDefault
- */
- private void addDroolsRuntime(String runtimeName, String runtimeLocation, boolean setAsDefault){
- selectDroolsPreferences();
- bot.button(IDELabel.Button.ADD).click();
- bot.shell(IDELabel.Shell.DROOLS_RUNTIME).activate();
- bot.textWithLabel(IDELabel.DroolsRuntimeDialog.NAME).setText(runtimeName);
- bot.textWithLabel(IDELabel.DroolsRuntimeDialog.PATH).setText(runtimeLocation);
- bot.button(IDELabel.Button.OK).click();
- bot.shell(IDELabel.Shell.PREFERENCES).activate();
- SWTBotTable table = bot.table();
- boolean droolsRuntimeAdded =
- SWTEclipseExt.isItemInTableColumn(table,runtimeName,IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX)
- && SWTEclipseExt.isItemInTableColumn(table,runtimeLocation,IDELabel.DroolsRuntimeDialog.COLUMN_LOCATION_INDEX);
- // Set new runtime as default
- if (setAsDefault){
- table.getTableItem(0).check();
- }
- bot.button(IDELabel.Button.OK).click();
- assertTrue("Drools Runtime with name [" + runtimeName +
- "] and location [" + runtimeLocation +
- "] was not added properly.",droolsRuntimeAdded);
- DroolsAllBotTests.setTestDroolsRuntimeName(runtimeName);
- DroolsAllBotTests.setTestDroolsRuntimeLocation(runtimeLocation);
- SWTEclipseExt.hideWarningIfDisplayed(bot);
- }
- /**
- * Selects Drools Preferences within Preferences Dialog
- */
- private void selectDroolsPreferences(){
- jbt.delay();
- bot.menu(IDELabel.Menu.WINDOW).menu(IDELabel.Menu.PREFERENCES).click();
- bot.shell(IDELabel.Shell.PREFERENCES).activate();
- SWTBotTreeItem tiDroolsGroup = bot.tree().expandNode(IDELabel.PreferencesDialog.DROOLS_GROUP);
- tiDroolsGroup.select(PreferencesDialog.INSTALLED_DROOLS_RUNTIMES);
- }
- /**
- * Edits Drools Runtime
- * @param runtimeName
- * @param runtimeLocation
- * @param nameSuffix
- * @param locationSuffix
- */
- private void editDroolsRuntime(String runtimeName, String runtimeLocation, String nameSuffix, String locationSuffix){
- selectDroolsPreferences();
- SWTBotTable table = bot.table();
- table.getTableItem(runtimeName).select();
- bot.button(IDELabel.Button.EDIT).click();
- bot.shell(IDELabel.Shell.DROOLS_RUNTIME).activate();
- SWTBotText txName = bot.textWithLabel(IDELabel.DroolsRuntimeDialog.NAME);
- SWTBotText txPath = bot.textWithLabel(IDELabel.DroolsRuntimeDialog.PATH);
- String editedDroolsRuntimeName = txName.getText() + " " + nameSuffix;
- String editedDroolsRuntimeLocation = txPath.getText() + File.separator + nameSuffix;
- new File(editedDroolsRuntimeLocation).mkdir();
- txName.setText(editedDroolsRuntimeName);
- txPath.setText(editedDroolsRuntimeLocation);
- bot.button(IDELabel.Button.OK).click();
- bot.shell(IDELabel.Shell.PREFERENCES).activate();
- boolean droolsRuntimeEdited =
- SWTEclipseExt.isItemInTableColumn(table,editedDroolsRuntimeName,IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX)
- && SWTEclipseExt.isItemInTableColumn(table,editedDroolsRuntimeLocation,IDELabel.DroolsRuntimeDialog.COLUMN_LOCATION_INDEX);
- bot.button(IDELabel.Button.OK).click();
- assertTrue("Drools Runtime with name [" + runtimeName +
- "] and location [" + runtimeLocation +
- "] was not renamed properly.",droolsRuntimeEdited);
- DroolsAllBotTests.setTestDroolsRuntimeName(editedDroolsRuntimeName);
- DroolsAllBotTests.setTestDroolsRuntimeLocation(editedDroolsRuntimeLocation);
- SWTEclipseExt.hideWarningIfDisplayed(bot);
- }
-
- /**
- * Removes Drools Runtime
- * @param runtimeName
- * @param runtimeLocation
- */
- private void removeDroolsRuntime(String runtimeName){
- selectDroolsPreferences();
- SWTBotTable table = bot.table();
- table.getTableItem(runtimeName).select();
- bot.button(IDELabel.Button.REMOVE).click();
- boolean droolsRuntimeRemoved = !SWTEclipseExt.isItemInTableColumn(table,runtimeName,
- IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX);
- bot.button(IDELabel.Button.OK).click();
- assertTrue("Drools Runtime with name [" + runtimeName +
- "] was not removed properly.",droolsRuntimeRemoved);
- // Remove temporary directory created within editDroolsRuntime() method
- if (!DroolsAllBotTests.getTestDroolsRuntimeName().equals(DroolsAllBotTests.DROOLS_RUNTIME_NAME)){
- File tempDir = new File (DroolsAllBotTests.getTestDroolsRuntimeLocation());
- if (tempDir.isDirectory()){
- tempDir.delete();
- }
- }
- DroolsAllBotTests.setTestDroolsRuntimeName(null);
- DroolsAllBotTests.setTestDroolsRuntimeLocation(null);
- SWTEclipseExt.hideWarningIfDisplayed(bot);
- }
- /**
- * Creates Drools Runtime
- * @param runtimeName
- * @param runtimeLocation
- */
- private void createDroolsRuntime(String runtimeName, String runtimeLocation){
- DroolsRuntimeManager.createDefaultRuntime(runtimeLocation);
- DroolsRuntime droolsRuntime = new DroolsRuntime();
- droolsRuntime.setName(runtimeName);
- droolsRuntime.setPath(runtimeLocation);
- droolsRuntime.setDefault(true);
- DroolsRuntimeManager.setDroolsRuntimes(new DroolsRuntime[]{droolsRuntime});
- // Test if Drools runtime is defined
- assertTrue("Drools Runtime was not properly created on location: " + runtimeLocation,
- new File (runtimeLocation + File.separator + "drools-core.jar").exists());
- selectDroolsPreferences();
- SWTBotTable table = bot.table();
- boolean droolsRuntimeCreated =
- SWTEclipseExt.isItemInTableColumn(table,runtimeName,IDELabel.DroolsRuntimeDialog.COLUMN_NAME_INDEX)
- && SWTEclipseExt.isItemInTableColumn(table,runtimeLocation,IDELabel.DroolsRuntimeDialog.COLUMN_LOCATION_INDEX);
- bot.button(IDELabel.Button.OK).click();
- SWTEclipseExt.hideWarningIfDisplayed(bot);
- assertTrue("Drools Runtime with name [" + runtimeName +
- "] and location [" + runtimeLocation +
- "] was not created properly.",droolsRuntimeCreated);
- DroolsAllBotTests.setTestDroolsRuntimeName(runtimeName);
- DroolsAllBotTests.setTestDroolsRuntimeLocation(runtimeLocation);
-
- }
-
-}
-
Deleted: trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.java
===================================================================
--- trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.java 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/org.jboss.tools.drools.ui.bot.test/src/org/jboss/tools/drools/ui/bot/test/smoke/OpenDroolsPerspective.java 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,50 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.drools.ui.bot.test.smoke;
-
-import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.jboss.tools.ui.bot.ext.types.IDELabel;
-import org.jboss.tools.ui.bot.ext.types.PerspectiveType;
-import org.junit.Test;
-/**
- * Test opening perspective
- * @author Vladimir Pakan
- *
- */
-public class OpenDroolsPerspective extends SWTTestExt{
- /**
- * Test Opening Drools Rules
- */
- @Test
- public void testOpenDroolsPerspective() {
- openDroolsPerspective();
- }
- /**
- * Open Drools Perspective
- */
- private void openDroolsPerspective(){
- eclipse.openPerspective(PerspectiveType.DROOLS);
- boolean wasFound = false;
- try{
- bot.toolbarDropDownButtonWithTooltip(IDELabel.Button.DROOLS_WORKBENCH);
- wasFound = true;
- } catch (WidgetNotFoundException wnfe){
- wasFound = false;
- }
- eclipse.openPerspective(PerspectiveType.JAVA);
- assertTrue("Drools Perspective was not opened properly. Button " +
- IDELabel.Button.DROOLS_WORKBENCH + " is not present in Workbench",
- wasFound);
- }
-}
-
Deleted: 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-04-23 18:01:23 UTC (rev 40417)
+++ 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-04-23 18:01:46 UTC (rev 40418)
@@ -1,770 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2007-2010 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is made available under the terms of the
- * Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributor:
- * Red Hat, Inc. - initial API and implementation
- ******************************************************************************/
-
-package org.jboss.tools.drools.ui.bot.test.smoke;
-
-import java.awt.event.KeyEvent;
-import java.io.File;
-import java.io.IOException;
-import java.util.Iterator;
-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;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotCheckBox;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTree;
-import org.eclipse.swtbot.swt.finder.widgets.SWTBotTreeItem;
-import org.jboss.tools.drools.ui.bot.test.DroolsAllBotTests;
-import org.jboss.tools.ui.bot.ext.SWTEclipseExt;
-import org.jboss.tools.ui.bot.ext.SWTOpenExt;
-import org.jboss.tools.ui.bot.ext.SWTTestExt;
-import org.jboss.tools.ui.bot.ext.SWTUtilExt;
-import org.jboss.tools.ui.bot.ext.Timing;
-import org.jboss.tools.ui.bot.ext.gen.ActionItem;
-import org.jboss.tools.ui.bot.ext.helper.KeyboardHelper;
-import org.jboss.tools.ui.bot.ext.types.IDELabel;
-import org.jboss.tools.ui.bot.ext.types.ViewType;
-import org.junit.Test;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.SAXException;
-/**
- * Tests Rule Flow
- * @author Vladimir Pakan
- *
- */
-public class RuleFlowTest extends SWTTestExt{
- private static final String RULE_FLOW_FILE_DIRECTORY = "src" + File.separator +
- "main" + File.separator +
- "rules";
- private static final String ROOT_NODE_NAME = "process";
- private static final String HEADER_NODE_NAME = "header";
- private static final String NODES_NODE_NAME = "nodes";
- private static final String CONNECTIONS_NODE_NAME = "connections";
- private static final String CONNECTION_NODE_NAME = "connection";
- private static final int NODES_NODE_CHILDREN_COUNT = 7;
- private static final int CONNECTIONS_NODE_CHILDREN_COUNT = 1;
- 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_FILE_NAME);
- }
-
- /**
- * Sets all drools flow nodes.
- */
- @SuppressWarnings("unused")
- private void setAllDroolsFlowNodes() {
- new SWTOpenExt(bot).preferenceOpen(ActionItem.Preference.DroolsDroolsFlownodes.LABEL);
- bot.waitForShell(IDELabel.Shell.PREFERENCES);
- for (SWTBotCheckBox checkBox : bot.checkBoxes()) {
- if (checkBox.isEnabled()) {
- checkBox.select();
- }
- }
- bot.button(IDELabel.Button.OK).click();
- bot.waitForShell(IDELabel.Shell.WARNING);
- bot.button(IDELabel.Button.OK).click();
- }
-
- /**
- * Runs newly created Drools project and check result
- * @param droolsProjectName
- */
- private void runRuleFlowCheck(String droolsRuleTestFileName){
- console.clearConsole();
- bot.sleep(5000L);
-
- SWTBotTreeItem tiTestFile = packageExplorer.selectTreeItem(droolsRuleTestFileName,
- new String[] {DroolsAllBotTests.DROOLS_PROJECT_NAME,
- DroolsAllBotTests.SRC_MAIN_JAVA_TREE_NODE,
- DroolsAllBotTests.COM_SAMPLE_TREE_NODE});
-
- eclipse.runTreeItemAsJavaApplication(tiTestFile);
-
- String consoleText = console.getConsoleText(3*1000L,60*1000L,true);
-
- assertTrue(droolsRuleTestFileName + " didn't run properly.\n" +
- "Console Text was: " + consoleText + "\n" +
- "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) {
- packageExplorer.show();
- packageExplorer.openFile(DroolsAllBotTests.DROOLS_PROJECT_NAME ,
- 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)
- .menu(IDELabel.Menu.MAXIMIZE_ACTIVE_VIEW_OR_EDITOR)
- .click();
- isEditorMaximized = true;
- SWTGefBot gefBot = new SWTGefBot();
- SWTBotGefEditor gefEditor = gefBot.gefEditor(ruleFlowFileName);
- // Clear Editor
- gefEditor.setFocus();
- 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",
- "Script Task"
- };
- int xspacing = 100;
- int xoffset = 10;
- int yspacing = 100;
- int yoffset = 10;
- for (int toolIndex = 0;toolIndex < tools.length;toolIndex++){
- gefEditor.activateTool(tools[toolIndex]);
- gefEditor.click(xspacing * (toolIndex % 3) + xoffset,
- yspacing * (toolIndex / 3) + yoffset);
- }
- // Add Sequence Flow between Start and End Node
- gefEditor.activateTool("Sequence Flow");
- // Click on Start Node
- gefEditor.click(xoffset + 5, yoffset + 5);
- // Click on End Node
- gefEditor.click(xspacing + xoffset + 5, yoffset + 5);
- gefEditor.save();
- checkFullRuleFile(DroolsAllBotTests.DROOLS_PROJECT_NAME , ruleFlowFileName);
- // check synchronization with Properties View
- gefEditor.activateTool("Select");
- gefEditor.click(xoffset + 5, yoffset + 5);
- SWTBotTree tree = eclipse.showView(ViewType.PROPERTIES).tree();
- String id = tree.getTreeItem("Id").cell(1);
- String name = tree.getTreeItem("Name").cell(1);
- assertTrue("First editor element has to have Id=1 and Name=Start." +
- "\nBut it has Id=" + id +
- " Name=" + name, id.equals("1") && name.equals("Start"));
- // Delete each component
- gefEditor.activateTool("Select");
- for (int toolIndex = 0;toolIndex < tools.length;toolIndex++){
- gefEditor.click(xspacing * (toolIndex % 3) + xoffset + 10,
- yspacing * (toolIndex / 3) + yoffset + 10);
- gefEditor.setFocus();
- bot.sleep(Timing.time1S());
- KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
- }
- // Restore maximized editor
- bot.menu(IDELabel.Menu.WINDOW)
- .menu(IDELabel.Menu.NAVIGATION)
- .menu(IDELabel.Menu.MAXIMIZE_ACTIVE_VIEW_OR_EDITOR)
- .click();
- isEditorMaximized = false;
- gefEditor.save();
- gefEditor.close();
- 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(final String projectName, final String ruleFlowFileName) {
- String errorDescription = null;
- Document doc = getNormalizedDocument(getFullPathToRuleFlowFile(projectName, ruleFlowFileName));
- Element rootNode = doc.getDocumentElement();
- if (rootNode.getNodeName().equals(ROOT_NODE_NAME)) {
- NodeList rootNodeList = rootNode.getChildNodes();
- List<Node> rootNodes = removeTextNodes(rootNodeList);
- if (rootNodes.size() == ROOT_NODE_CHILDREN_COUNT) {
- Node header = rootNodes.get(0);
- errorDescription = checkEmptyFileNode(header, HEADER_NODE_NAME);
- if (errorDescription == null) {
- Node nodesNode = rootNodes.get(1);
- errorDescription = checkNodeName(nodesNode, NODES_NODE_NAME);
- if (errorDescription == null) {
- errorDescription = checkNodesFileNodes(removeTextNodes(nodesNode
- .getChildNodes()));
- if (errorDescription == null) {
- Node connectionsNode = rootNodes.get(2);
- errorDescription = checkNodeName(connectionsNode,
- CONNECTIONS_NODE_NAME);
- if (errorDescription == null) {
- errorDescription = checkConnectionsFileNodes(removeTextNodes(connectionsNode
- .getChildNodes()));
- }
- }
- }
- }
- } else {
- errorDescription = "Root node has to have " + ROOT_NODE_CHILDREN_COUNT
- + " child nodes but it has " + rootNodeList.getLength();
- }
- } else {
- errorDescription = "Root node has to have name '" + ROOT_NODE_NAME
- + "' but it has name '" + rootNode.getNodeName() + "'";
- }
- 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
- * @param ruleFlowRfFileName
- */
- private void checkEmptyRFFile(String projectName, String ruleFlowFileName){
-
- Document doc = loadXmlFile(SWTUtilExt.getPathToProject(projectName) +
- File.separator + RuleFlowTest.RULE_FLOW_FILE_DIRECTORY + File.separator +
- ruleFlowFileName);
-
- String errorDescription = null;
-
- Element rootNode = doc.getDocumentElement();
- doc.normalizeDocument();
- if (rootNode.getNodeName().equals(ROOT_NODE_NAME)) {
- NodeList rootNodeList = rootNode.getChildNodes();
- List<Node> nodes = removeTextNodes(rootNodeList);
- if (nodes.size() == ROOT_NODE_CHILDREN_COUNT) {
- Node header = nodes.get(0);
- errorDescription = checkEmptyFileNode(header, HEADER_NODE_NAME);
- if (errorDescription == null) {
- Node nodesNode = nodes.get(1);
- errorDescription = checkEmptyFileNode(nodesNode, NODES_NODE_NAME);
- if (errorDescription == null) {
- Node connnections = nodes.get(2);
- errorDescription = checkEmptyFileNode(connnections, CONNECTIONS_NODE_NAME);
- }
- }
- } else {
- errorDescription = "Root node has to have " +
- ROOT_NODE_CHILDREN_COUNT +
- " child nodes but it has " +
- rootNodeList.getLength();
- }
- } else {
- errorDescription = "Root node has to have name '" + ROOT_NODE_NAME
- + "' but it has name '" + rootNode.getNodeName() + "'";
- }
- assertNull(errorDescription,errorDescription);
-
- }
- /**
- * Loads and parse XML file with fileName from file system
- * @param fileName - full path to XML file
- * @return
- */
- private Document loadXmlFile (String fileName){
- File file = new File(fileName);
- DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
- DocumentBuilder db;
- Document doc = null;
- try {
- db = dbf.newDocumentBuilder();
- doc = db.parse(file);
- } catch (ParserConfigurationException pce) {
- throw new RuntimeException(pce);
- } catch (SAXException saxe) {
- throw new RuntimeException(saxe);
- } catch (IOException ioe) {
- throw new RuntimeException(ioe);
- }
- return doc;
- }
- private static List<Node> removeTextNodes(NodeList rootNodeList){
- LinkedList<Node> nodes = new LinkedList<Node>();
- for (int index = 0 ; index < rootNodeList.getLength(); index++){
- Node node = rootNodeList.item(index);
- if (!node.getNodeName().equals("#text")){
- nodes.add(node);
- }
- }
- return nodes;
- }
- /**
- * Check if node is correct for empty file
- * @param node
- * @param expectedNodeName
- * @return
- */
- private static String checkEmptyFileNode (Node node,String expectedNodeName){
- String errorDescription = null;
- if (node.getNodeName().equals(expectedNodeName)){
- if (removeTextNodes(node.getChildNodes()).size() == 0){
- if(node.getTextContent().trim().length() != 0){
- errorDescription = expectedNodeName + " node has to have no text value but it has " +
- node.getTextContent();
- }
- }
- else{
- errorDescription = expectedNodeName + " node has to have no children but is has " +
- removeTextNodes(node.getChildNodes()).size();
-
- }
- }
- else{
- errorDescription = checkNodeName(node, expectedNodeName);
- }
-
- return errorDescription;
-
- }
- /**
- * Check nodes of Nodes children.
- * @param nodes - list of nodes of nodes node stripped from text nodes
- * @return
- */
- private static String checkNodesFileNodes(List<Node> nodes){
- String errorDescription = null;
-
- if (nodes.size() == NODES_NODE_CHILDREN_COUNT){
- List<String> mandatoryNodes = getMandatoryNodesOfNodesNode();
- int index = 0;
- Iterator<Node> iterator = nodes.iterator();
- while (index < nodes.size() && errorDescription == null){
- String nodeName = iterator.next().getNodeName();
- if (mandatoryNodes.contains(nodeName)){
- mandatoryNodes.remove(nodeName);
- }
- else{
- errorDescription = "Nodes node cannot contain node " + nodeName;
- }
- index++;
- }
- if (errorDescription == null && mandatoryNodes.size() > 0) {
- StringBuilder sb = new StringBuilder("");
- for (String nodeName : mandatoryNodes){
- if (sb.length() != 0){
- sb.append(", ");
- }
- sb.append(nodeName);
- }
- errorDescription = "Nodes node doesn't contain all necesarry nodes.\n" +
- "These node(s) are missing within nodes node: " +
- sb.toString();
- }
- }
- else{
- errorDescription = "Nodes node has to have " +
- NODES_NODE_CHILDREN_COUNT +
- " child nodes but it has " +
- nodes.size();
- }
-
- return errorDescription;
- }
- /**
- * Returns list of mandatory nodes of nodes node
- * @return
- */
- private static List<String> getMandatoryNodesOfNodesNode(){
- LinkedList<String> allowedNodes = new LinkedList<String>();
- allowedNodes.add("split");
- /*
- allowedNodes.add("timerNode");
- allowedNodes.add("humanTask");
- */
- allowedNodes.add("ruleSet");
- allowedNodes.add("actionNode");
- /*
- allowedNodes.add("composite");
- */
- allowedNodes.add("end");
- /*
- allowedNodes.add("workItem");
- allowedNodes.add("fault");
- */
- allowedNodes.add("subProcess");
- allowedNodes.add("start");
- /*
- allowedNodes.add("workItem");
- allowedNodes.add("eventNode");
- */
- allowedNodes.add("join");
-
- return allowedNodes;
- }
-
- /**
- * Check nodes of connections children.
- * @param nodes - list of nodes of connections node stripped from text nodes
- * @return
- */
- private static String checkConnectionsFileNodes(List<Node> nodes){
- String errorDescription = null;
-
- if (nodes.size() == CONNECTIONS_NODE_CHILDREN_COUNT){
- Node connectioNode = nodes.get(0);
- errorDescription = checkEmptyFileNode(connectioNode, CONNECTION_NODE_NAME);
- }
- else{
- errorDescription = "Conections node has to have " +
- CONNECTIONS_NODE_CHILDREN_COUNT +
- " child nodes but it has " +
- nodes.size();
- }
-
- return errorDescription;
- }
- /**
- * Check if node has expected name
- * @param node
- * @param expectedNodeName
- * @return
- */
- private static String checkNodeName (Node node, String expectedNodeName){
- String errorDescription = null;
-
- if (!node.getNodeName().equals(expectedNodeName)){
- errorDescription = "Node has to have name '" +
- expectedNodeName + "' but it has name '" +
- node.getNodeName() + "'";
- }
-
- return errorDescription;
- }
-
- protected void tearDown(){
- if (isEditorMaximized){
- // Restore maximized editor
- bot.menu(IDELabel.Menu.WINDOW)
- .menu(IDELabel.Menu.NAVIGATION)
- .menu(IDELabel.Menu.MAXIMIZE_ACTIVE_VIEW_OR_EDITOR)
- .click();
- isEditorMaximized = false;
- }
- try {
- super.tearDown();
- } catch (Exception e) {
- 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
- * @param projectName
- * @param ruleFlowFileName
- */
- private void deleteAllObjectsFromRFFile(SWTBotGefEditor gefEditor, String projectName, String ruleFlowFileName) {
-
- Document doc = loadXmlFile(SWTUtilExt.getPathToProject(projectName)
- + File.separator + RuleFlowTest.RULE_FLOW_FILE_DIRECTORY
- + File.separator + ruleFlowFileName);
-
- String errorDescription = null;
- Element rootNode = doc.getDocumentElement();
- doc.normalizeDocument();
- if (rootNode.getNodeName().equals(ROOT_NODE_NAME)) {
- NodeList rootNodeList = rootNode.getChildNodes();
- List<Node> rootNodes = removeTextNodes(rootNodeList);
- if (rootNodes.size() == ROOT_NODE_CHILDREN_COUNT) {
- Node nodesNode = rootNodes.get(1);
- errorDescription = checkNodeName(nodesNode, NODES_NODE_NAME);
- if (errorDescription == null) {
- List<Node> nodes = removeTextNodes(nodesNode.getChildNodes());
- for (Node node : nodes){
- NamedNodeMap attributes = node.getAttributes();
- int xPos = Integer.parseInt(attributes.getNamedItem("x").getNodeValue());
- int yPos = Integer.parseInt(attributes.getNamedItem("y").getNodeValue());
- gefEditor.click(xPos + 3, yPos + 3);
- bot.sleep(Timing.time1S());
- KeyboardHelper.typeKeyCodeUsingAWT(KeyEvent.VK_DELETE);
- bot.sleep(Timing.time1S());
- }
- }
- } else {
- errorDescription = "'" + NODES_NODE_NAME + "'" +" was not found on expected location within RF file." +
- " RF file structure has been changed";
- }
- } else {
- errorDescription = "Root Node has to have name '" + ROOT_NODE_NAME + "'. RF file structure has been changed.";
- }
- 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
Deleted: trunk/build/aggregate/bottests-site/tests/pom.xml
===================================================================
--- trunk/build/aggregate/bottests-site/tests/pom.xml 2012-04-23 18:01:23 UTC (rev 40417)
+++ trunk/build/aggregate/bottests-site/tests/pom.xml 2012-04-23 18:01:46 UTC (rev 40418)
@@ -1,16 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.jboss.tools</groupId>
- <artifactId>org.jboss.tools.site.bottests.root</artifactId>
- <version>0.0.2-SNAPSHOT</version>
- </parent>
- <groupId>org.jboss.tools.bot.tests</groupId>
- <artifactId>org.jboss.tools.bot.tests.tests</artifactId>
- <version>0.0.2-SNAPSHOT</version>
- <packaging>pom</packaging>
- <modules>
- <module>org.jboss.tools.drools.ui.bot.test</module>
- </modules>
-</project>
13 years, 8 months