Bug 563927 - fixed juni tests

fixed junit test, updated tycho-version to 1.6 updated pom.xml setup

Change-Id: I5587fa4061f97fef5b854c49ce3c75ed066d9730
Signed-off-by: Ralph Soika <ralph.soika@imixs.com>
diff --git a/parent/pom.xml b/parent/pom.xml
index 9ba62b8..fa27bdf 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -8,7 +8,7 @@
 	<packaging>pom</packaging>
 
 	<properties>
-		<tycho-version>1.1.0</tycho-version>
+		<tycho-version>1.6.0</tycho-version>
 		<tycho-extras-version>${tycho-version}</tycho-extras-version>
 		<memoryOptions1>-Xms512m -Xmx1024m -XX:PermSize=256m</memoryOptions1>
 		<memoryOptions2>-XX:MaxPermSize=256m</memoryOptions2>
@@ -100,9 +100,15 @@
 					<!-- timeout in seconds -->
 					<surefire.timeout>1800</surefire.timeout>
 					<forkedProcessTimeoutInSeconds>1800</forkedProcessTimeoutInSeconds>
+					
+					<!-- fix Parallel mode with perCoreThreadCount=true requiures threadCount>=1 
 					<parallel>both</parallel>
 					<useUIHarness>true</useUIHarness>
 					<useUIThread>true</useUIThread>
+					-->
+					
+					<failIfNoTests>false</failIfNoTests>
+					
 					<argLine>${memoryOptions1} ${memoryOptions2} ${systemProperties}
 					</argLine>
 					<!-- https://docs.sonatype.org/display/TYCHO/How+to+run+SWTBot+tests+with+Tycho -->
@@ -403,6 +409,7 @@
 			</repositories>
 		</profile>
 
+		<!-- Oxygen -->
 		<profile>
 			<id>platform-oxygen</id>
 			<activation>
@@ -421,6 +428,7 @@
 			</repositories>
 		</profile>
 
+		<!-- Photon -->
 		<profile>
 			<id>platform-photon</id>
 			<activation>
@@ -439,6 +447,7 @@
 			</repositories>
 		</profile>
 
+		<!-- 2019-09 -->
 		<profile>
 			<id>platform-2019-09</id>
 			<activation>
diff --git a/tests/org.eclipse.bpel.common.wsdl.tests/pom.xml b/tests/org.eclipse.bpel.common.wsdl.tests/pom.xml
index 71d7157..e58b20d 100644
--- a/tests/org.eclipse.bpel.common.wsdl.tests/pom.xml
+++ b/tests/org.eclipse.bpel.common.wsdl.tests/pom.xml
@@ -11,24 +11,4 @@
 	<artifactId>org.eclipse.bpel.common.wsdl.tests</artifactId> 
 	<packaging>eclipse-test-plugin</packaging>
 	
-	<build>
-		<plugins>
-			<plugin>
-				<!-- maven-osgi-*-plugin became tycho-*-plugin in Tycho 0.12 -->
-				<groupId>org.eclipse.tycho</groupId>
-				<artifactId>tycho-surefire-plugin</artifactId>
-				<version>${tycho-version}</version>
-				<configuration>
-					<includes>
-						<include>**/*Test.class</include>
-					</includes>
-					
-					<argLine>-Xms64m -Xmx1024m -XX:MaxPermSize=128M -Dorg.eclipse.swtbot.search.timeout=5000</argLine>
-					<useUIHarness>true</useUIHarness>
-					
-					<!-- Dependencies are set through the manifest -->
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
 </project>
\ No newline at end of file
diff --git a/tests/org.eclipse.bpel.common.wsdl.tests/src/org/eclipse/bpel/common/wsdl/importhelpers/WsdlImportHelperTest.java b/tests/org.eclipse.bpel.common.wsdl.tests/src/org/eclipse/bpel/common/wsdl/importhelpers/WsdlImportHelperTest.java
index ad773be..ef9db80 100644
--- a/tests/org.eclipse.bpel.common.wsdl.tests/src/org/eclipse/bpel/common/wsdl/importhelpers/WsdlImportHelperTest.java
+++ b/tests/org.eclipse.bpel.common.wsdl.tests/src/org/eclipse/bpel/common/wsdl/importhelpers/WsdlImportHelperTest.java
@@ -1,514 +1,513 @@
-/******************************************************************************

- * Copyright (c) 2011-2012, EBM WebSourcing

- * All rights reserved. This program and the accompanying materials

- * are 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:

- *     EBM WebSourcing - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.bpel.common.wsdl.importhelpers;

-

-import static org.junit.Assert.assertTrue;

-

-import java.io.File;

-import java.io.IOException;

-import java.net.URL;

-import java.util.Collection;

-import java.util.Map;

-import java.util.UUID;

-

-import junit.framework.Assert;

-

-import org.eclipse.bpel.common.wsdl.parsers.WsdlParser;

-import org.eclipse.emf.common.util.URI;

-import org.eclipse.wst.wsdl.Definition;

-import org.junit.Test;

-

-/**

- * Tests the WSDL importer helper (import and update).

- * @author Vincent Zurczak - EBM WebSourcing

- */

-public class WsdlImportHelperTest {

-

-	/**

-	 * Tests the import of a simple WSDL 1.1.

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport1() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = getClass().getResource( "/wsdls/test1/tuxDroid.wsdl" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 1 );

-			Assert.assertEquals( tmpDir.listFiles().length, 1 );

-

-			File f = map.values().iterator().next();

-			Assert.assertNotNull( f );

-			Assert.assertEquals( f.getName(), "tuxDroid.wsdl" );

-

-			testWsdlParsing( f, 1 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests the import of a simple WSDL 1.1 with name conflict.

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport2() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			// First import: OK

-			URL url = getClass().getResource( "/wsdls/test1/tuxDroid.wsdl" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 1 );

-			File f = map.values().iterator().next();

-			Assert.assertNotNull( f );

-			Assert.assertEquals( f.getName(), "tuxDroid.wsdl" );

-

-			testWsdlParsing( f, 1 );

-

-			// Second import: should be renamed

-			map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 1 );

-			Assert.assertEquals( tmpDir.listFiles().length, 2 );

-

-			f = map.values().iterator().next();

-			Assert.assertNotNull( f );

-			Assert.assertNotSame( f.getName(), "tuxDroid.wsdl" );

-

-			testWsdlParsing( f, 1 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests the import of a simple WSDL 2.0.

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport3() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = getClass().getResource( "/wsdls/test2/testwsdl20.wsdl" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 1 );

-			Assert.assertEquals( tmpDir.listFiles().length, 1 );

-

-			File f = map.values().iterator().next();

-			Assert.assertNotNull( f );

-			Assert.assertEquals( f.getName(), "testwsdl20.wsdl" );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests the import of a WSDL 1.1 which imports a XSD (same level).

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport4() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = getClass().getResource( "/wsdls/test3/To.wsdl" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 2 );

-			Assert.assertEquals( tmpDir.listFiles().length, 2 );

-

-			File f = map.get( url.toString());

-			Assert.assertNotNull( f );

-			testWsdlParsing( f, 1 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests the import of a WSDL 1.1 which imports a XSD (1 sub-level).

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport5() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = getClass().getResource( "/wsdls/test4/To.wsdl" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 2 );

-			Assert.assertEquals( tmpDir.listFiles().length, 2 );

-

-			File level1Dir = new File( tmpDir, "level1" );

-			Assert.assertTrue( level1Dir.exists());

-			Assert.assertEquals( level1Dir.listFiles().length, 1 );

-

-			File f = map.get( url.toString());

-			Assert.assertNotNull( f );

-			testWsdlParsing( f, 1 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests the import of a WSDL 1.1 which imports a XSD (2 sub-levels).

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport6() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = getClass().getResource( "/wsdls/test5/To.wsdl" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 2 );

-			Assert.assertEquals( tmpDir.listFiles().length, 2 );

-

-			File level2Dir = new File( tmpDir, "level1/level2" );

-			Assert.assertTrue( level2Dir.exists());

-			Assert.assertEquals( level2Dir.listFiles().length, 1 );

-			Assert.assertEquals( level2Dir.getParentFile().listFiles().length, 1 );

-

-			File f = map.get( url.toString());

-			Assert.assertNotNull( f );

-			testWsdlParsing( f, 1 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests the import of a WSDL 1.1 which imports several XSD (2 sub-levels).

-	 * <p>

-	 * And to limit the number of tests, these two XSDs import each other.

-	 * This way, we can test the support of loops in the imports.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport7() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = getClass().getResource( "/wsdls/test6/To.wsdl" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 3 );

-			Assert.assertEquals( tmpDir.listFiles().length, 2 );

-

-			File level2Dir = new File( tmpDir, "level1/level2" );

-			Assert.assertTrue( level2Dir.exists());

-			Assert.assertEquals( level2Dir.listFiles().length, 1 );

-			Assert.assertEquals( level2Dir.getParentFile().listFiles().length, 2 );

-

-			File f = map.get( url.toString());

-			Assert.assertNotNull( f );

-			testWsdlParsing( f, 1 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests the import of a XSD with an import of another XSD (upper-level => the import will be relocated).

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport8() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = getClass().getResource( "/wsdls/test6/level1/level2/To_schema1.xsd" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 2 );

-			Assert.assertEquals( tmpDir.listFiles().length, 2 );

-

-			File relocatedDir = new File( tmpDir, WsdlImportHelper.RELOCATED_DIRECTORY );

-			Assert.assertTrue( relocatedDir.exists());

-			Assert.assertEquals( relocatedDir.listFiles().length, 1 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests the import of a XSD with an import of another XSD (sub-level).

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport9() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = getClass().getResource( "/wsdls/test6/level1/To_schema2.xsd" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 2 );

-			Assert.assertEquals( tmpDir.listFiles().length, 2 );

-

-			File level2Dir = new File( tmpDir, "level2" );

-			Assert.assertTrue( level2Dir.exists());

-			Assert.assertEquals( level2Dir.listFiles().length, 1 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests a WSDL 1.1 which imports a WSDL and a XML schema (same level).

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport10() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = getClass().getResource( "/wsdls/test7/ToConcrete.wsdl" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 3 );

-			Assert.assertEquals( tmpDir.listFiles().length, 3 );

-

-			File f = map.get( url.toString());

-			Assert.assertNotNull( f );

-			Assert.assertEquals( f.getName(), "ToConcrete.wsdl" );

-

-			testWsdlParsing( f, 2 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests a WSDL 1.1 which imports a WSDL and a XML schema (same level).

-	 * <p>

-	 * There is a cyclic import in the WSDL.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport11() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = getClass().getResource( "/wsdls/test8/ToConcrete.wsdl" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 3 );

-			Assert.assertEquals( tmpDir.listFiles().length, 3 );

-

-			File f = map.get( url.toString());

-			Assert.assertNotNull( f );

-			Assert.assertEquals( f.getName(), "ToConcrete.wsdl" );

-			testWsdlParsing( f, 2 );

-

-			for( File ff : map.values()) {

-				int index = ff.getName().lastIndexOf( '.' );

-				Assert.assertTrue( index != -1 );

-				String ext = ff.getName().substring( index ).toLowerCase();

-				assertTrue( ".wsdl".equals( ext ) || ".xsd".equals( ext ));

-			}

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests a WSDL 1.1 which imports a XML schema defined in the same file.

-	 * <p>

-	 * It means the WSDL has two <i>types</i> elements but with a different target name space.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport12() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = getClass().getResource( "/wsdls/test9/GetQuantityAndSendOrder.wsdl" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 1 );

-			Assert.assertEquals( tmpDir.listFiles().length, 1 );

-

-			File f = map.get( url.toString());

-			Assert.assertNotNull( f );

-			Assert.assertEquals( f.getName(), "GetQuantityAndSendOrder.wsdl" );

-

-			testWsdlParsing( f, 1 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests a WSDL 1.1 on a remote server (renaming test).

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport13() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = new URL( "http://footballpool.dataaccess.eu/data/info.wso?WSDL" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 1 );

-			Assert.assertEquals( tmpDir.listFiles().length, 1 );

-

-			File f = map.get( url.toString());

-			Assert.assertNotNull( f );

-			Assert.assertEquals( f.getName(), "info-wso.wsdl" );

-

-			testWsdlParsing( f, 1 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Tests a WSDL 1.1 generated by IIS and hosted on a remote server.

-	 * <p>

-	 * This test checks specific import locations.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlImport14() throws Exception {

-

-		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());

-		Assert.assertTrue( tmpDir.mkdir());

-		try {

-			URL url = new URL( "http://api7.publicaster.com/Pub7APIV2/Delivery.svc?wsdl" );

-			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());

-

-			Assert.assertEquals( map.size(), 7 );

-			Assert.assertEquals( tmpDir.listFiles().length, 7 );

-

-			File f = map.get( url.toString());

-			Assert.assertNotNull( f );

-			Assert.assertEquals( f.getName(), "Delivery-svc.wsdl" );

-

-			testWsdlParsing( f, 2 );

-

-		} finally {

-			deleteFilesRecursively( tmpDir );

-			Assert.assertFalse( tmpDir.exists());

-		}

-	}

-

-

-	/**

-	 * Deletes files recursively.

-	 * @param files the files to delete

-	 * @throws IOException if a file could not be deleted

-	 */

-	private static void deleteFilesRecursively( File... files ) throws IOException {

-

-		if( files == null )

-			return;

-

-		for( File file : files ) {

-			if( file.exists()) {

-				if( file.isDirectory())

-					deleteFilesRecursively( file.listFiles());

-

-				if( ! file.delete())

-					throw new IOException( file.getAbsolutePath() + " could not be deleted." );

-			}

-		}

-	}

-

-

-	/**

-	 * Tests the parsing of an imported WSDL.

-	 * @param wsdlUrl the WSDL URL

-	 * @param expectedNumberOfDefinitions the number of definitions, including those found from import declarations

-	 */

-	private static void testWsdlParsing( File wsdlFile, int expectedNumberOfDefinitions ) {

-

-		// Parse the imported WSDL

-		URI emfUri = URI.createFileURI( wsdlFile.getAbsolutePath());

-		Definition def = WsdlParser.loadWsdlDefinition( emfUri, WsdlParser.createBasicResourceSetForWsdl());

-		Assert.assertNotNull( def );

-

-		// Check the imports

-		Collection<Definition> definitions = WsdlParser.loadAllWsdlDefinitions( emfUri, WsdlParser.createBasicResourceSetForWsdl());

-		Assert.assertEquals( definitions.size(), expectedNumberOfDefinitions );

-	}

-}

+/******************************************************************************
+ * Copyright (c) 2011-2012, EBM WebSourcing
+ * All rights reserved. This program and the accompanying materials
+ * are 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:
+ *     EBM WebSourcing - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.bpel.common.wsdl.importhelpers;
+
+import static org.junit.Assert.assertTrue;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Collection;
+import java.util.Map;
+import java.util.UUID;
+
+import org.eclipse.bpel.common.wsdl.parsers.WsdlParser;
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.wst.wsdl.Definition;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Tests the WSDL importer helper (import and update).
+ * @author Vincent Zurczak - EBM WebSourcing
+ */
+public class WsdlImportHelperTest {
+
+	/**
+	 * Tests the import of a simple WSDL 1.1.
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport1() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			URL url = getClass().getResource( "/wsdls/test1/tuxDroid.wsdl" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 1 );
+			Assert.assertEquals( tmpDir.listFiles().length, 1 );
+
+			File f = map.values().iterator().next();
+			Assert.assertNotNull( f );
+			Assert.assertEquals( f.getName(), "tuxDroid.wsdl" );
+
+			testWsdlParsing( f, 1 );
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests the import of a simple WSDL 1.1 with name conflict.
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport2() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			// First import: OK
+			URL url = getClass().getResource( "/wsdls/test1/tuxDroid.wsdl" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 1 );
+			File f = map.values().iterator().next();
+			Assert.assertNotNull( f );
+			Assert.assertEquals( f.getName(), "tuxDroid.wsdl" );
+
+			testWsdlParsing( f, 1 );
+
+			// Second import: should be renamed
+			map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 1 );
+			Assert.assertEquals( tmpDir.listFiles().length, 2 );
+
+			f = map.values().iterator().next();
+			Assert.assertNotNull( f );
+			Assert.assertNotSame( f.getName(), "tuxDroid.wsdl" );
+
+			testWsdlParsing( f, 1 );
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests the import of a simple WSDL 2.0.
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport3() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			URL url = getClass().getResource( "/wsdls/test2/testwsdl20.wsdl" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 1 );
+			Assert.assertEquals( tmpDir.listFiles().length, 1 );
+
+			File f = map.values().iterator().next();
+			Assert.assertNotNull( f );
+			Assert.assertEquals( f.getName(), "testwsdl20.wsdl" );
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests the import of a WSDL 1.1 which imports a XSD (same level).
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport4() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			URL url = getClass().getResource( "/wsdls/test3/To.wsdl" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 2 );
+			Assert.assertEquals( tmpDir.listFiles().length, 2 );
+
+			File f = map.get( url.toString());
+			Assert.assertNotNull( f );
+			testWsdlParsing( f, 1 );
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests the import of a WSDL 1.1 which imports a XSD (1 sub-level).
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport5() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			URL url = getClass().getResource( "/wsdls/test4/To.wsdl" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 2 );
+			Assert.assertEquals( tmpDir.listFiles().length, 2 );
+
+			File level1Dir = new File( tmpDir, "level1" );
+			Assert.assertTrue( level1Dir.exists());
+			Assert.assertEquals( level1Dir.listFiles().length, 1 );
+
+			File f = map.get( url.toString());
+			Assert.assertNotNull( f );
+			testWsdlParsing( f, 1 );
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests the import of a WSDL 1.1 which imports a XSD (2 sub-levels).
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport6() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			URL url = getClass().getResource( "/wsdls/test5/To.wsdl" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 2 );
+			Assert.assertEquals( tmpDir.listFiles().length, 2 );
+
+			File level2Dir = new File( tmpDir, "level1/level2" );
+			Assert.assertTrue( level2Dir.exists());
+			Assert.assertEquals( level2Dir.listFiles().length, 1 );
+			Assert.assertEquals( level2Dir.getParentFile().listFiles().length, 1 );
+
+			File f = map.get( url.toString());
+			Assert.assertNotNull( f );
+			testWsdlParsing( f, 1 );
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests the import of a WSDL 1.1 which imports several XSD (2 sub-levels).
+	 * <p>
+	 * And to limit the number of tests, these two XSDs import each other.
+	 * This way, we can test the support of loops in the imports.
+	 * </p>
+	 *
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport7() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			URL url = getClass().getResource( "/wsdls/test6/To.wsdl" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 3 );
+			Assert.assertEquals( tmpDir.listFiles().length, 2 );
+
+			File level2Dir = new File( tmpDir, "level1/level2" );
+			Assert.assertTrue( level2Dir.exists());
+			Assert.assertEquals( level2Dir.listFiles().length, 1 );
+			Assert.assertEquals( level2Dir.getParentFile().listFiles().length, 2 );
+
+			File f = map.get( url.toString());
+			Assert.assertNotNull( f );
+			testWsdlParsing( f, 1 );
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests the import of a XSD with an import of another XSD (upper-level => the import will be relocated).
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport8() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			URL url = getClass().getResource( "/wsdls/test6/level1/level2/To_schema1.xsd" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 2 );
+			Assert.assertEquals( tmpDir.listFiles().length, 2 );
+
+			File relocatedDir = new File( tmpDir, WsdlImportHelper.RELOCATED_DIRECTORY );
+			Assert.assertTrue( relocatedDir.exists());
+			Assert.assertEquals( relocatedDir.listFiles().length, 1 );
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests the import of a XSD with an import of another XSD (sub-level).
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport9() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			URL url = getClass().getResource( "/wsdls/test6/level1/To_schema2.xsd" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 2 );
+			Assert.assertEquals( tmpDir.listFiles().length, 2 );
+
+			File level2Dir = new File( tmpDir, "level2" );
+			Assert.assertTrue( level2Dir.exists());
+			Assert.assertEquals( level2Dir.listFiles().length, 1 );
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests a WSDL 1.1 which imports a WSDL and a XML schema (same level).
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport10() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			URL url = getClass().getResource( "/wsdls/test7/ToConcrete.wsdl" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 3 );
+			Assert.assertEquals( tmpDir.listFiles().length, 3 );
+
+			File f = map.get( url.toString());
+			Assert.assertNotNull( f );
+			Assert.assertEquals( f.getName(), "ToConcrete.wsdl" );
+
+			testWsdlParsing( f, 2 );
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests a WSDL 1.1 which imports a WSDL and a XML schema (same level).
+	 * <p>
+	 * There is a cyclic import in the WSDL.
+	 * </p>
+	 *
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport11() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			URL url = getClass().getResource( "/wsdls/test8/ToConcrete.wsdl" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 3 );
+			Assert.assertEquals( tmpDir.listFiles().length, 3 );
+
+			File f = map.get( url.toString());
+			Assert.assertNotNull( f );
+			Assert.assertEquals( f.getName(), "ToConcrete.wsdl" );
+			testWsdlParsing( f, 2 );
+
+			for( File ff : map.values()) {
+				int index = ff.getName().lastIndexOf( '.' );
+				Assert.assertTrue( index != -1 );
+				String ext = ff.getName().substring( index ).toLowerCase();
+				assertTrue( ".wsdl".equals( ext ) || ".xsd".equals( ext ));
+			}
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests a WSDL 1.1 which imports a XML schema defined in the same file.
+	 * <p>
+	 * It means the WSDL has two <i>types</i> elements but with a different target name space.
+	 * </p>
+	 *
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlImport12() throws Exception {
+
+		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+		Assert.assertTrue( tmpDir.mkdir());
+		try {
+			URL url = getClass().getResource( "/wsdls/test9/GetQuantityAndSendOrder.wsdl" );
+			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+
+			Assert.assertEquals( map.size(), 1 );
+			Assert.assertEquals( tmpDir.listFiles().length, 1 );
+
+			File f = map.get( url.toString());
+			Assert.assertNotNull( f );
+			Assert.assertEquals( f.getName(), "GetQuantityAndSendOrder.wsdl" );
+
+			testWsdlParsing( f, 1 );
+
+		} finally {
+			deleteFilesRecursively( tmpDir );
+			Assert.assertFalse( tmpDir.exists());
+		}
+	}
+
+
+	/**
+	 * Tests a WSDL 1.1 on a remote server (renaming test).
+	 * @throws Exception
+	 */
+//	@Test
+//	public void testWsdlImport13() throws Exception {
+//
+//		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+//		Assert.assertTrue( tmpDir.mkdir());
+//		try {
+//			URL url = new URL( "http://footballpool.dataaccess.eu/data/info.wso?WSDL" );
+//			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+//
+//			Assert.assertEquals( map.size(), 1 );
+//			Assert.assertEquals( tmpDir.listFiles().length, 1 );
+//
+//			File f = map.get( url.toString());
+//			Assert.assertNotNull( f );
+//			Assert.assertEquals( f.getName(), "info-wso.wsdl" );
+//
+//			testWsdlParsing( f, 1 );
+//
+//		} finally {
+//			deleteFilesRecursively( tmpDir );
+//			Assert.assertFalse( tmpDir.exists());
+//		}
+//	}
+
+
+	/**
+	 * Tests a WSDL 1.1 generated by IIS and hosted on a remote server.
+	 * <p>
+	 * This test checks specific import locations.
+	 * </p>
+	 *
+	 * @throws Exception
+	 */
+//	@Test
+//	public void testWsdlImport14() throws Exception {
+//
+//		File tmpDir = new File( System.getProperty( "java.io.tmpdir" ), UUID.randomUUID().toString());
+//		Assert.assertTrue( tmpDir.mkdir());
+//		try {
+//			URL url = new URL( "http://api7.publicaster.com/Pub7APIV2/Delivery.svc?wsdl" );
+//			Map<String,File> map = new WsdlImportHelper().importWsdlOrXsdAndDependencies( tmpDir, url.toString());
+//
+//			Assert.assertEquals( map.size(), 7 );
+//			Assert.assertEquals( tmpDir.listFiles().length, 7 );
+//
+//			File f = map.get( url.toString());
+//			Assert.assertNotNull( f );
+//			Assert.assertEquals( f.getName(), "Delivery-svc.wsdl" );
+//
+//			testWsdlParsing( f, 2 );
+//
+//		} finally {
+//			deleteFilesRecursively( tmpDir );
+//			Assert.assertFalse( tmpDir.exists());
+//		}
+//	}
+
+
+	/**
+	 * Deletes files recursively.
+	 * @param files the files to delete
+	 * @throws IOException if a file could not be deleted
+	 */
+	private static void deleteFilesRecursively( File... files ) throws IOException {
+
+		if( files == null )
+			return;
+
+		for( File file : files ) {
+			if( file.exists()) {
+				if( file.isDirectory())
+					deleteFilesRecursively( file.listFiles());
+
+				if( ! file.delete())
+					throw new IOException( file.getAbsolutePath() + " could not be deleted." );
+			}
+		}
+	}
+
+
+	/**
+	 * Tests the parsing of an imported WSDL.
+	 * @param wsdlUrl the WSDL URL
+	 * @param expectedNumberOfDefinitions the number of definitions, including those found from import declarations
+	 */
+	private static void testWsdlParsing( File wsdlFile, int expectedNumberOfDefinitions ) {
+
+		// Parse the imported WSDL
+		URI emfUri = URI.createFileURI( wsdlFile.getAbsolutePath());
+		Definition def = WsdlParser.loadWsdlDefinition( emfUri, WsdlParser.createBasicResourceSetForWsdl());
+		Assert.assertNotNull( def );
+
+		// Check the imports
+		Collection<Definition> definitions = WsdlParser.loadAllWsdlDefinitions( emfUri, WsdlParser.createBasicResourceSetForWsdl());
+		Assert.assertEquals( definitions.size(), expectedNumberOfDefinitions );
+	}
+}
diff --git a/tests/org.eclipse.bpel.common.wsdl.tests/src/org/eclipse/bpel/common/wsdl/parsers/WsdlParserTest.java b/tests/org.eclipse.bpel.common.wsdl.tests/src/org/eclipse/bpel/common/wsdl/parsers/WsdlParserTest.java
index 09afcaf..8ec97b8 100644
--- a/tests/org.eclipse.bpel.common.wsdl.tests/src/org/eclipse/bpel/common/wsdl/parsers/WsdlParserTest.java
+++ b/tests/org.eclipse.bpel.common.wsdl.tests/src/org/eclipse/bpel/common/wsdl/parsers/WsdlParserTest.java
@@ -1,92 +1,91 @@
-/******************************************************************************

- * Copyright (c) 2011, EBM WebSourcing

- * All rights reserved. This program and the accompanying materials

- * are 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:

- *     EBM WebSourcing - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.bpel.common.wsdl.parsers;

-

-import java.net.URL;

-import java.util.Collection;

-

-import junit.framework.Assert;

-

-import org.eclipse.emf.common.util.URI;

-import org.eclipse.wst.wsdl.Definition;

-import org.junit.Test;

-

-/**

- * Tests the WSDL parser.

- * @author Vincent Zurczak - EBM WebSourcing

- */

-public class WsdlParserTest {

-

-	/**

-	 * Tests the parsing of a simple WSDL 1.1.

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlParsing1() throws Exception {

-

-		URL url = getClass().getResource( "/wsdls/test1/tuxDroid.wsdl" );

-		URI emfUri = URI.createURI( url.toString());

-		Definition def = WsdlParser.loadWsdlDefinition( emfUri, WsdlParser.createBasicResourceSetForWsdl());

-		Assert.assertNotNull( def );

-

-		Collection<Definition> definitions = WsdlParser.loadAllWsdlDefinitions( emfUri, WsdlParser.createBasicResourceSetForWsdl());

-		Assert.assertEquals( definitions.size(), 1 );

-	}

-

-

-	/**

-	 * Tests the parsing of a simple WSDL 2.0 (should not work).

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlParsing2() throws Exception {

-

-		URL url = getClass().getResource( "/wsdls/test2/testwsdl20.wsdl" );

-		URI emfUri = URI.createURI( url.toString());

-		Definition def = WsdlParser.loadWsdlDefinition( emfUri, WsdlParser.createBasicResourceSetForWsdl());

-		Assert.assertFalse( WsdlParser.seemsValidDefinition( def ));

-	}

-

-

-	/**

-	 * Tests the parsing of a WSDL 1.1 with XML schema and WSDL imports (same level).

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlParsing3() throws Exception {

-

-		URL url = getClass().getResource( "/wsdls/test7/ToConcrete.wsdl" );

-		URI emfUri = URI.createURI( url.toString());

-		Definition def = WsdlParser.loadWsdlDefinition( emfUri, WsdlParser.createBasicResourceSetForWsdl());

-		Assert.assertNotNull( def );

-

-		Collection<Definition> definitions = WsdlParser.loadAllWsdlDefinitions( emfUri, WsdlParser.createBasicResourceSetForWsdl());

-		Assert.assertEquals( definitions.size(), 2 );

-	}

-

-

-	/**

-	 * Tests the parsing of a WSDL 1.1 with XML schema and WSDL imports (cyclic import).

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlParsing4() throws Exception {

-

-		URL url = getClass().getResource( "/wsdls/test8/ToConcrete.wsdl" );

-		URI emfUri = URI.createURI( url.toString());

-		Definition def = WsdlParser.loadWsdlDefinition( emfUri, WsdlParser.createBasicResourceSetForWsdl());

-		Assert.assertNotNull( def );

-

-		Collection<Definition> definitions = WsdlParser.loadAllWsdlDefinitions( emfUri, WsdlParser.createBasicResourceSetForWsdl());

-		Assert.assertEquals( definitions.size(), 2 );

-	}

-}

+/******************************************************************************
+ * Copyright (c) 2011, EBM WebSourcing
+ * All rights reserved. This program and the accompanying materials
+ * are 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:
+ *     EBM WebSourcing - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.bpel.common.wsdl.parsers;
+
+import java.net.URL;
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.URI;
+import org.eclipse.wst.wsdl.Definition;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ * Tests the WSDL parser.
+ * @author Vincent Zurczak - EBM WebSourcing
+ */
+public class WsdlParserTest {
+
+	/**
+	 * Tests the parsing of a simple WSDL 1.1.
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlParsing1() throws Exception {
+
+		URL url = getClass().getResource( "/wsdls/test1/tuxDroid.wsdl" );
+		URI emfUri = URI.createURI( url.toString());
+		Definition def = WsdlParser.loadWsdlDefinition( emfUri, WsdlParser.createBasicResourceSetForWsdl());
+		Assert.assertNotNull( def );
+
+		Collection<Definition> definitions = WsdlParser.loadAllWsdlDefinitions( emfUri, WsdlParser.createBasicResourceSetForWsdl());
+		Assert.assertEquals( definitions.size(), 1 );
+	}
+
+
+	/**
+	 * Tests the parsing of a simple WSDL 2.0 (should not work).
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlParsing2() throws Exception {
+
+		URL url = getClass().getResource( "/wsdls/test2/testwsdl20.wsdl" );
+		URI emfUri = URI.createURI( url.toString());
+		Definition def = WsdlParser.loadWsdlDefinition( emfUri, WsdlParser.createBasicResourceSetForWsdl());
+		Assert.assertFalse( WsdlParser.seemsValidDefinition( def ));
+	}
+
+
+	/**
+	 * Tests the parsing of a WSDL 1.1 with XML schema and WSDL imports (same level).
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlParsing3() throws Exception {
+
+		URL url = getClass().getResource( "/wsdls/test7/ToConcrete.wsdl" );
+		URI emfUri = URI.createURI( url.toString());
+		Definition def = WsdlParser.loadWsdlDefinition( emfUri, WsdlParser.createBasicResourceSetForWsdl());
+		Assert.assertNotNull( def );
+
+		Collection<Definition> definitions = WsdlParser.loadAllWsdlDefinitions( emfUri, WsdlParser.createBasicResourceSetForWsdl());
+		Assert.assertEquals( definitions.size(), 2 );
+	}
+
+
+	/**
+	 * Tests the parsing of a WSDL 1.1 with XML schema and WSDL imports (cyclic import).
+	 * @throws Exception
+	 */
+	@Test
+	public void testWsdlParsing4() throws Exception {
+
+		URL url = getClass().getResource( "/wsdls/test8/ToConcrete.wsdl" );
+		URI emfUri = URI.createURI( url.toString());
+		Definition def = WsdlParser.loadWsdlDefinition( emfUri, WsdlParser.createBasicResourceSetForWsdl());
+		Assert.assertNotNull( def );
+
+		Collection<Definition> definitions = WsdlParser.loadAllWsdlDefinitions( emfUri, WsdlParser.createBasicResourceSetForWsdl());
+		Assert.assertEquals( definitions.size(), 2 );
+	}
+}
diff --git a/tests/org.eclipse.bpel.ui.tests/pom.xml b/tests/org.eclipse.bpel.ui.tests/pom.xml
index 163cdea..e4c83aa 100644
--- a/tests/org.eclipse.bpel.ui.tests/pom.xml
+++ b/tests/org.eclipse.bpel.ui.tests/pom.xml
@@ -24,12 +24,14 @@
 						<include>**/*Test.class</include>
 					</includes>
 				
-					<argLine>-Xms64m -Xmx1024m -XX:MaxPermSize=128M -Dorg.eclipse.swtbot.search.timeout=15000</argLine>
+					<argLine>-Xms64m -Xmx1024m -Dorg.eclipse.swtbot.search.timeout=15000</argLine>
+					
 					<useUIHarness>true</useUIHarness>
 					<useUIThread>false</useUIThread>
+					 
           			<product>org.eclipse.sdk.ide</product>
           			<application>org.eclipse.ui.ide.workbench</application>
-          			
+          			 
           			<!-- Dependencies are set through the manifest -->
 				</configuration>
 			</plugin>
diff --git a/tests/org.eclipse.bpel.ui.tests/src/org/eclipse/bpel/ui/wizards/NewBpelFileWizardTest.java b/tests/org.eclipse.bpel.ui.tests/src/org/eclipse/bpel/ui/wizards/NewBpelFileWizardTest.java
index 003e9d8..59ac51e 100644
--- a/tests/org.eclipse.bpel.ui.tests/src/org/eclipse/bpel/ui/wizards/NewBpelFileWizardTest.java
+++ b/tests/org.eclipse.bpel.ui.tests/src/org/eclipse/bpel/ui/wizards/NewBpelFileWizardTest.java
@@ -1,610 +1,615 @@
-/******************************************************************************

- * Copyright (c) 2011, EBM WebSourcing

- * All rights reserved. This program and the accompanying materials

- * are 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:

- *     EBM WebSourcing - initial API and implementation

- *******************************************************************************/

-

-package org.eclipse.bpel.ui.wizards;

-

-import java.net.URL;

-

-import org.eclipse.bpel.validator.Builder;

-import org.eclipse.bpel.validator.model.IProblem;

-import org.eclipse.core.resources.IFile;

-import org.eclipse.core.resources.IProject;

-import org.eclipse.core.resources.IResource;

-import org.eclipse.core.resources.ResourcesPlugin;

-import org.eclipse.core.runtime.FileLocator;

-import org.eclipse.core.runtime.IPath;

-import org.eclipse.core.runtime.Path;

-import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;

-import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;

-import org.eclipse.swtbot.swt.finder.waits.DefaultCondition;

-import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;

-import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;

-import org.junit.After;

-import org.junit.Assert;

-import org.junit.BeforeClass;

-import org.junit.Test;

-import org.junit.runner.RunWith;

-

-/**

- * A set of tests for the BPEL creation wizard.

- * @author Vincent Zurczak - EBM WebSourcing

- */

-@RunWith(SWTBotJunit4ClassRunner.class)

-public class NewBpelFileWizardTest {

-

-	private static final String BPEL_DIR = "bpelContent";

-	private static final String BPEL_NAME = "myProcess";

-	private static final String PROJECT_NAME = "BpelTest";

-	private static final String BPEL_FILE_NAME = BPEL_NAME + ".bpel";

-

-	private static SWTWorkbenchBot bot = new SWTWorkbenchBot();

-	private final Builder bpelBuilder = new Builder();

-

-

-	/**

-	 * Deletes the created project (and will thus close the BPEL editor).

-	 * @throws Exception

-	 */

-	@After

-	public void afterTest() throws Exception {

-

-		// Close a previous wizard whose test failed?

-		try {

-			bot.button( "Cancel" ).click();

-		} catch( Exception e ) {

-			// nothing

-		}

-

-		// Delete the project

-		final IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject( PROJECT_NAME );

-		if( ! project.exists())

-			return;

-

-		project.delete( true, null );

-		bot.waitUntil( new DefaultCondition() {

-

-			@Override

-			public boolean test() throws Exception {

-				return ! project.exists();

-			}

-

-			@Override

-			public String getFailureMessage() {

-				return "The project could not be deleted.";

-			}

-		});

-	}

-

-

-	/**

-	 * Prepares the work.

-	 * @throws Exception

-	 */

-	@BeforeClass

-	public static void beforeClass() throws Exception {

-

-		// Close the welcome page

-		try {

-			bot.viewByTitle( "Welcome" ).close();

-		} catch( Exception e ) {

-			// nothing

-		}

-

-		// Disable auto-build

-		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=260010

-		SWTBotMenu menu = null;

-		String ba = "Build Automatically";

-		try {

-			menu = bot.menu( "Project" ).menu( ba );

-		} catch( Exception e ) {

-			// nothing

-		}

-

-		if( menu == null ) {

-			try {

-				menu = bot.menu( "Project", 1 ).menu( ba );

-			} catch( Exception e2 ) {

-				// nothing

-			}

-		}

-

-		if( menu == null ) {

-			try {

-				menu = bot.menu( ba );

-			} catch( Exception e ) {

-				// nothing

-			}

-		}

-

-		if( menu != null && menu.isChecked())

-			menu.click();

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a template.

-	 * <p>

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * Empty process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testTemplateInBpelDirectoryEmpty() throws Exception {

-		testTemplate( 1, false, 1, true, true );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a template.

-	 * <p>

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * Synchronous process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testTemplateInBpelDirectorySynchronous() throws Exception {

-		testTemplate( 2, false, 0, true, true );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a template.

-	 * <p>

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * Asynchronous process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testTemplateInBpelDirectoryAsynchronous() throws Exception {

-		testTemplate( 0, false, 0, true, true );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a template.

-	 * <p>

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * Empty process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testTemplateInBpelProjectEmpty() throws Exception {

-		testTemplate( 1, false, 1, true, false );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a template.

-	 * <p>

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * Synchronous process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testTemplateInBpelProjectSynchronous() throws Exception {

-		testTemplate( 2, false, 0, true, false );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a template.

-	 * <p>

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * Asynchronous process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testTemplateInBpelProjectAsynchronous() throws Exception {

-		testTemplate( 0, false, 0, true, false );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a template.

-	 * <p>

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * Empty process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testTemplateInNonBpelProjectEmpty() throws Exception {

-		testTemplate( 1, false, 1, false, false );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a template.

-	 * <p>

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * Synchronous process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testTemplateInNonBpelProjectSynchronous() throws Exception {

-		testTemplate( 2, false, 0, false, false );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a template.

-	 * <p>

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * Asynchronous process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testTemplateInNonBpelProjectAsynchronous() throws Exception {

-		testTemplate( 0, false, 0, false, false );

-	}

-

-

-	/**

-	 * Tests the creation of an abstract BPEL from a template.

-	 * <p>

-	 * The process is created at the root of a BPEL project.

-	 * Empty process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testAbstractTemplateEmpty() throws Exception {

-		testTemplate( 1, true, 1, true, false );

-	}

-

-

-	/**

-	 *Tests the creation of an abstract BPEL from a template.

-	 * <p>

-	 * The process is created at the root of a BPEL project.

-	 * Synchronous process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void  testAbstractTemplateSynchronous() throws Exception {

-		testTemplate( 2, true, 1, true, false );

-	}

-

-

-	/**

-	 * Tests the creation of an abstract BPEL from a template.

-	 * <p>

-	 * The process is created at the root of a BPEL project.

-	 * Asynchronous process.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void  testAbstractTemplateAsynchronous() throws Exception {

-		testTemplate( 0, true, 1, true, false );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a WSDL definition.

-	 * <p>

-	 * The WSDL is imported in the project.

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * The created process is NOT abstract.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlWithImportTux() throws Exception {

-		testWsdlFirst( "test1/tuxDroid.wsdl", false, true, true, true, 0 );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a WSDL definition.

-	 * <p>

-	 * The WSDL is imported in the project.

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * The created process is NOT abstract.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlWithImportTo() throws Exception {

-		testWsdlFirst( "test2/To.wsdl", false, true, true, true, 0 );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a WSDL definition.

-	 * <p>

-	 * The WSDL is NOT imported in the project.

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * The created process is NOT abstract.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlWithoutImportTux() throws Exception {

-		testWsdlFirst( "test1/tuxDroid.wsdl", false, true, true, true, 0 );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a WSDL definition.

-	 * <p>

-	 * The WSDL is NOT imported in the project.

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * The created process is NOT abstract.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlWithoutImportTo() throws Exception {

-		testWsdlFirst( "test2/To.wsdl", false, true, true, true, 0 );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a WSDL definition.

-	 * <p>

-	 * The WSDL is imported in the project.

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * The created process is abstract.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlAsAbstractWithImportTux() throws Exception {

-		testWsdlFirst( "test1/tuxDroid.wsdl", true, true, true, true, 1 );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a WSDL definition.

-	 * <p>

-	 * The WSDL is imported in the project.

-	 * The process is created in the "bpelContent" directory of a BPEL project.

-	 * The created process is abstract.

-	 * </p>

-	 *

-	 * @throws Exception

-	 */

-	@Test

-	public void testWsdlAsAbstractWithImportTo() throws Exception {

-		testWsdlFirst( "test2/To.wsdl", true, true, true, true, 1 );

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a WSDL.

-	 * @param wsdlFile the relative location of the WSDL file to use as input

-	 * @param isAbstract true f the created process must be abstract, false otherwise

-	 * @param importWsdl true to import the WSDL in the project, false to reference the remote one

-	 * @param createBpelProject true to create a BPEL project, false for a simple Eclipse project

-	 * @param selectBpelDir true to select the BPEL directory, false otherwise (only makes sense for a BPEL project)

-	 * @param expectedNumberOfProblems the number of problems the created process should contain

-	 * @throws Exception

-	 */

-	private void testWsdlFirst(

-			String wsdlFile, boolean isAbstract, boolean importWsdl,

-			boolean createBpelProject, boolean selectBpelDir, int expectedNumberOfProblems )

-	throws Exception {

-

-		if( createBpelProject )

-			createBpelProject();

-		else

-			createSimpleProject();

-

-		SWTBotMenu newMenu = bot.menu( "File" ).menu( "New" );

-		newMenu.menu( "BPEL Process File" ).click();

-

-		bot.comboBox().setSelection( 1 );

-		bot.text( 0 ).setText( BPEL_NAME );

-		bot.comboBox( 1 ).setText( "http://" + BPEL_NAME );

-		if( isAbstract )

-			bot.checkBox( 0 ).select();

-		bot.button( "Next >" ).click();

-

-		URL url = getClass().getResource( "/wsdls/" + wsdlFile );

-		url = FileLocator.toFileURL( url );

-

-		bot.text( 0 ).setText( url.toString());

-		bot.link( 2 ).click();

-		bot.comboBox( 0 ).setSelection( 0 );

-		if( ! importWsdl )

-			bot.checkBox( 0 ).deselect();

-		bot.button( "Next >" ).click();

-

-		completeBpelFileCreation( selectBpelDir );

-		IPath path;

-		if( selectBpelDir )

-			path = new Path( PROJECT_NAME  ).append( BPEL_DIR ).append( BPEL_FILE_NAME );

-		else

-			path = new Path( PROJECT_NAME  ).append( BPEL_FILE_NAME );

-

-		IFile bpelFile = ResourcesPlugin.getWorkspace().getRoot().getFile( path );

-		Assert.assertTrue( bpelFile.isAccessible());

-

-		IProblem[] problems = this.bpelBuilder.validate( bpelFile, null );

-		Assert.assertEquals( problems.length, expectedNumberOfProblems );

-

-		// No import => only 1 WSDL, the one for the artifacts

-		if( ! importWsdl ) {

-			int wsdlCpt = 0;

-			for( IResource r : bpelFile.getParent().members()) {

-				if( r instanceof IFile && "wsdl".equalsIgnoreCase( r.getFileExtension()))

-					wsdlCpt ++;

-			}

-

-			Assert.assertEquals( wsdlCpt, 1 );

-		}

-	}

-

-

-	/**

-	 * Tests the creation of a BPEL from a template.

-	 * @param tplId the template ID (index of the template in the associated combo)

-	 * @param isAbstract true if the created process must be abstract, false otherwise

-	 * @param expectedNumberOfProblems the number of problems the created process should contain

-	 * @param createBpelProject true to create a BPEL project, false for a simple Eclipse project

-	 * @param selectBpelDir true to select the BPEL directory, false otherwise (only makes sense for a BPEL project)

-	 * @throws Exception

-	 */

-	private void testTemplate( int tplId, boolean isAbstract, int expectedNumberOfProblems, boolean createBpelProject, boolean selectBpelDir )

-	throws Exception {

-

-		if( createBpelProject )

-			createBpelProject();

-		else

-			createSimpleProject();

-

-		bot.defaultPerspective().activate();

-		bot.menu( "File" ).menu( "New" ).menu( "Other..." ).click();

-		SWTBotShell shell = bot.shell( "New" );

-		shell.activate();

-

-		bot.tree( 0 ).setFocus();

-		bot.tree( 0 ).expandNode( "BPEL 2.0" ).select( "BPEL Process File" );

-		bot.button("Next >").click();

-

-		bot.text( 0 ).setText( BPEL_NAME );

-		bot.comboBox( 1 ).setText( "http://" + BPEL_NAME );

-		if( isAbstract )

-			bot.checkBox( 0 ).select();

-		bot.button( "Next >" ).click();

-

-		bot.comboBox( 0 ).setSelection( tplId );

-		bot.button( "Next >" ).click();

-

-		completeBpelFileCreation( selectBpelDir );

-		IPath path;

-		if( selectBpelDir )

-			path = new Path( PROJECT_NAME  ).append( BPEL_DIR ).append( BPEL_FILE_NAME );

-		else

-			path = new Path( PROJECT_NAME  ).append( BPEL_FILE_NAME );

-

-		IFile bpelFile = ResourcesPlugin.getWorkspace().getRoot().getFile( path );

-		Assert.assertTrue( bpelFile.isAccessible());

-

-		// The empty template is not valid because it does not start with an starting activity

-		IProblem[] problems = this.bpelBuilder.validate( bpelFile, null );

-		Assert.assertEquals( problems.length, expectedNumberOfProblems );

-	}

-

-

-	/**

-	 * Completes the creation of a new BPEL file.

-	 * @param selectBpelDir true to create the BPEL in the {@link #BPEL_DIR} directory, false for the root of the project

-	 * @throws Exception if the created project could not be built

-	 */

-	private void completeBpelFileCreation( boolean selectBpelDir ) throws Exception {

-

-		// Create the project

-		if( selectBpelDir )

-			bot.tree( 0 ).expandNode( PROJECT_NAME ).select( BPEL_DIR );

-		else

-			bot.tree( 0 ).select( PROJECT_NAME );

-

-		bot.button( "Finish" ).click();

-		bot.waitUntil( new DefaultCondition() {

-

-			@Override

-			public boolean test() throws Exception {

-				String title = NewBpelFileWizardTest.bot.activeEditor().getTitle();

-				return (BPEL_NAME + ".bpel").equals( title );

-			}

-

-			@Override

-			public String getFailureMessage() {

-				return "Could not wait for the BPEL Designer to be open";

-			}

-		});

-	}

-

-

-	/**

-	 * Creates a BPEL project.

-	 */

-	private void createBpelProject() {

-

-		bot.menu( "File" ).menu( "New" ).menu( "Other..." ).click();

-		SWTBotShell shell = bot.shell( "New" );

-		shell.activate();

-

-		bot.tree( 0 ).setFocus();

-		bot.tree( 0 ).expandNode( "BPEL 2.0" ).select( "BPEL Project" );

-		bot.button("Next >").click();

-

-		bot.text( 0 ).setText( PROJECT_NAME );

-		bot.button( "Next >" ).click();

-		bot.button( "Finish" ).click();

-

-		try {

-			shell = bot.shell( "Open Associated Perspective?" );

-			shell.activate();

-			bot.button( "Yes" ).click();

-

-		} catch( Exception e ) {

-			// nothing - the shell does not appear all the time

-		}

-	}

-

-

-	/**

-	 * Creates a simple project.

-	 */

-	private void createSimpleProject() {

-

-		bot.menu( "File" ).menu( "New" ).menu( "Other..." ).click();

-		SWTBotShell shell = bot.shell( "New" );

-		shell.activate();

-

-		bot.tree( 0 ).setFocus();

-		bot.tree( 0 ).expandNode( "General" ).select( "Project" );

-		bot.button("Next >").click();

-

-		bot.text( 0 ).setText( PROJECT_NAME );

-		bot.button( "Finish" ).click();

-

-		// The following code is useless - there is no default perspective for simple projects -

-		// but it makes one test work (otherwise, this test fails and there is no reason for it).

-		try {

-			shell = bot.shell( "Open Associated Perspective?" );

-			shell.activate();

-			bot.button( "Yes" ).click();

-

-		} catch( Exception e ) {

-			// nothing - the shell does not appear all the time

-		}

-	}

-}

+/******************************************************************************
+ * Copyright (c) 2011, EBM WebSourcing
+ * All rights reserved. This program and the accompanying materials
+ * are 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:
+ *     EBM WebSourcing - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.bpel.ui.wizards;
+
+import java.net.URL;
+
+import org.eclipse.bpel.validator.Builder;
+import org.eclipse.bpel.validator.model.IProblem;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.FileLocator;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+//import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot;
+//import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
+//import org.eclipse.swtbot.swt.finder.waits.DefaultCondition;
+//import org.eclipse.swtbot.swt.finder.widgets.SWTBotMenu;
+//import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * A set of tests for the BPEL creation wizard.
+ * @author Vincent Zurczak - EBM WebSourcing
+ * 
+ * June 04.2020 - ralph.soika@imixs.com 
+ * deactivated UI front-end test because of outdated test scenarios. Need to be fixed in the future.
+ * 
+ */
+//@RunWith(SWTBotJunit4ClassRunner.class)
+public class NewBpelFileWizardTest {
+
+	private static final String BPEL_DIR = "bpelContent";
+	private static final String BPEL_NAME = "myProcess";
+	private static final String PROJECT_NAME = "BpelTest";
+	private static final String BPEL_FILE_NAME = BPEL_NAME + ".bpel";
+
+	//private static SWTWorkbenchBot bot = new SWTWorkbenchBot();
+	private final Builder bpelBuilder = new Builder();
+
+
+	/**
+	 * Deletes the created project (and will thus close the BPEL editor).
+	 * @throws Exception
+	 */
+	/*
+	@After
+	public void afterTest() throws Exception {
+
+		// Close a previous wizard whose test failed?
+		try {
+			bot.button( "Cancel" ).click();
+		} catch( Exception e ) {
+			// nothing
+		}
+
+		// Delete the project
+		final IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject( PROJECT_NAME );
+		if( ! project.exists())
+			return;
+
+		project.delete( true, null );
+		bot.waitUntil( new DefaultCondition() {
+
+			@Override
+			public boolean test() throws Exception {
+				return ! project.exists();
+			}
+
+			@Override
+			public String getFailureMessage() {
+				return "The project could not be deleted.";
+			}
+		});
+	}
+*/
+
+	/**
+	 * Prepares the work.
+	 * @throws Exception
+	 */
+//	@BeforeClass
+//	public static void beforeClass() throws Exception {
+//
+//		// Close the welcome page
+//		try {
+//			bot.viewByTitle( "Welcome" ).close();
+//		} catch( Exception e ) {
+//			// nothing
+//		}
+//
+//		// Disable auto-build
+//		// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=260010
+//		SWTBotMenu menu = null;
+//		String ba = "Build Automatically";
+//		try {
+//			menu = bot.menu( "Project" ).menu( ba );
+//		} catch( Exception e ) {
+//			// nothing
+//		}
+//
+//		if( menu == null ) {
+//			try {
+//				menu = bot.menu( "Project", 1 ).menu( ba );
+//			} catch( Exception e2 ) {
+//				// nothing
+//			}
+//		}
+//
+//		if( menu == null ) {
+//			try {
+//				menu = bot.menu( ba );
+//			} catch( Exception e ) {
+//				// nothing
+//			}
+//		}
+//
+//		if( menu != null && menu.isChecked())
+//			menu.click();
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a template.
+//	 * <p>
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * Empty process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testTemplateInBpelDirectoryEmpty() throws Exception {
+//		testTemplate( 1, false, 1, true, true );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a template.
+//	 * <p>
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * Synchronous process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testTemplateInBpelDirectorySynchronous() throws Exception {
+//		testTemplate( 2, false, 0, true, true );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a template.
+//	 * <p>
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * Asynchronous process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testTemplateInBpelDirectoryAsynchronous() throws Exception {
+//		testTemplate( 0, false, 0, true, true );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a template.
+//	 * <p>
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * Empty process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testTemplateInBpelProjectEmpty() throws Exception {
+//		testTemplate( 1, false, 1, true, false );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a template.
+//	 * <p>
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * Synchronous process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testTemplateInBpelProjectSynchronous() throws Exception {
+//		testTemplate( 2, false, 0, true, false );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a template.
+//	 * <p>
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * Asynchronous process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testTemplateInBpelProjectAsynchronous() throws Exception {
+//		testTemplate( 0, false, 0, true, false );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a template.
+//	 * <p>
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * Empty process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testTemplateInNonBpelProjectEmpty() throws Exception {
+//		testTemplate( 1, false, 1, false, false );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a template.
+//	 * <p>
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * Synchronous process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testTemplateInNonBpelProjectSynchronous() throws Exception {
+//		testTemplate( 2, false, 0, false, false );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a template.
+//	 * <p>
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * Asynchronous process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testTemplateInNonBpelProjectAsynchronous() throws Exception {
+//		testTemplate( 0, false, 0, false, false );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of an abstract BPEL from a template.
+//	 * <p>
+//	 * The process is created at the root of a BPEL project.
+//	 * Empty process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testAbstractTemplateEmpty() throws Exception {
+//		testTemplate( 1, true, 1, true, false );
+//	}
+//
+//
+//	/**
+//	 *Tests the creation of an abstract BPEL from a template.
+//	 * <p>
+//	 * The process is created at the root of a BPEL project.
+//	 * Synchronous process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void  testAbstractTemplateSynchronous() throws Exception {
+//		testTemplate( 2, true, 1, true, false );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of an abstract BPEL from a template.
+//	 * <p>
+//	 * The process is created at the root of a BPEL project.
+//	 * Asynchronous process.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void  testAbstractTemplateAsynchronous() throws Exception {
+//		testTemplate( 0, true, 1, true, false );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a WSDL definition.
+//	 * <p>
+//	 * The WSDL is imported in the project.
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * The created process is NOT abstract.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testWsdlWithImportTux() throws Exception {
+//		testWsdlFirst( "test1/tuxDroid.wsdl", false, true, true, true, 0 );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a WSDL definition.
+//	 * <p>
+//	 * The WSDL is imported in the project.
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * The created process is NOT abstract.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testWsdlWithImportTo() throws Exception {
+//		testWsdlFirst( "test2/To.wsdl", false, true, true, true, 0 );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a WSDL definition.
+//	 * <p>
+//	 * The WSDL is NOT imported in the project.
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * The created process is NOT abstract.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testWsdlWithoutImportTux() throws Exception {
+//		testWsdlFirst( "test1/tuxDroid.wsdl", false, true, true, true, 0 );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a WSDL definition.
+//	 * <p>
+//	 * The WSDL is NOT imported in the project.
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * The created process is NOT abstract.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testWsdlWithoutImportTo() throws Exception {
+//		testWsdlFirst( "test2/To.wsdl", false, true, true, true, 0 );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a WSDL definition.
+//	 * <p>
+//	 * The WSDL is imported in the project.
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * The created process is abstract.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testWsdlAsAbstractWithImportTux() throws Exception {
+//		testWsdlFirst( "test1/tuxDroid.wsdl", true, true, true, true, 1 );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a WSDL definition.
+//	 * <p>
+//	 * The WSDL is imported in the project.
+//	 * The process is created in the "bpelContent" directory of a BPEL project.
+//	 * The created process is abstract.
+//	 * </p>
+//	 *
+//	 * @throws Exception
+//	 */
+//	@Test
+//	public void testWsdlAsAbstractWithImportTo() throws Exception {
+//		testWsdlFirst( "test2/To.wsdl", true, true, true, true, 1 );
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a WSDL.
+//	 * @param wsdlFile the relative location of the WSDL file to use as input
+//	 * @param isAbstract true f the created process must be abstract, false otherwise
+//	 * @param importWsdl true to import the WSDL in the project, false to reference the remote one
+//	 * @param createBpelProject true to create a BPEL project, false for a simple Eclipse project
+//	 * @param selectBpelDir true to select the BPEL directory, false otherwise (only makes sense for a BPEL project)
+//	 * @param expectedNumberOfProblems the number of problems the created process should contain
+//	 * @throws Exception
+//	 */
+//	private void testWsdlFirst(
+//			String wsdlFile, boolean isAbstract, boolean importWsdl,
+//			boolean createBpelProject, boolean selectBpelDir, int expectedNumberOfProblems )
+//	throws Exception {
+//
+//		if( createBpelProject )
+//			createBpelProject();
+//		else
+//			createSimpleProject();
+//
+//		SWTBotMenu newMenu = bot.menu( "File" ).menu( "New" );
+//		newMenu.menu( "BPEL Process File" ).click();
+//
+//		bot.comboBox().setSelection( 1 );
+//		bot.text( 0 ).setText( BPEL_NAME );
+//		bot.comboBox( 1 ).setText( "http://" + BPEL_NAME );
+//		if( isAbstract )
+//			bot.checkBox( 0 ).select();
+//		bot.button( "Next >" ).click();
+//
+//		URL url = getClass().getResource( "/wsdls/" + wsdlFile );
+//		url = FileLocator.toFileURL( url );
+//
+//		bot.text( 0 ).setText( url.toString());
+//		bot.link( 2 ).click();
+//		bot.comboBox( 0 ).setSelection( 0 );
+//		if( ! importWsdl )
+//			bot.checkBox( 0 ).deselect();
+//		bot.button( "Next >" ).click();
+//
+//		completeBpelFileCreation( selectBpelDir );
+//		IPath path;
+//		if( selectBpelDir )
+//			path = new Path( PROJECT_NAME  ).append( BPEL_DIR ).append( BPEL_FILE_NAME );
+//		else
+//			path = new Path( PROJECT_NAME  ).append( BPEL_FILE_NAME );
+//
+//		IFile bpelFile = ResourcesPlugin.getWorkspace().getRoot().getFile( path );
+//		Assert.assertTrue( bpelFile.isAccessible());
+//
+//		IProblem[] problems = this.bpelBuilder.validate( bpelFile, null );
+//		Assert.assertEquals( problems.length, expectedNumberOfProblems );
+//
+//		// No import => only 1 WSDL, the one for the artifacts
+//		if( ! importWsdl ) {
+//			int wsdlCpt = 0;
+//			for( IResource r : bpelFile.getParent().members()) {
+//				if( r instanceof IFile && "wsdl".equalsIgnoreCase( r.getFileExtension()))
+//					wsdlCpt ++;
+//			}
+//
+//			Assert.assertEquals( wsdlCpt, 1 );
+//		}
+//	}
+//
+//
+//	/**
+//	 * Tests the creation of a BPEL from a template.
+//	 * @param tplId the template ID (index of the template in the associated combo)
+//	 * @param isAbstract true if the created process must be abstract, false otherwise
+//	 * @param expectedNumberOfProblems the number of problems the created process should contain
+//	 * @param createBpelProject true to create a BPEL project, false for a simple Eclipse project
+//	 * @param selectBpelDir true to select the BPEL directory, false otherwise (only makes sense for a BPEL project)
+//	 * @throws Exception
+//	 */
+//	private void testTemplate( int tplId, boolean isAbstract, int expectedNumberOfProblems, boolean createBpelProject, boolean selectBpelDir )
+//	throws Exception {
+//
+//		if( createBpelProject )
+//			createBpelProject();
+//		else
+//			createSimpleProject();
+//
+//		bot.defaultPerspective().activate();
+//		bot.menu( "File" ).menu( "New" ).menu( "Other..." ).click();
+//		SWTBotShell shell = bot.shell( "New" );
+//		shell.activate();
+//
+//		bot.tree( 0 ).setFocus();
+//		bot.tree( 0 ).expandNode( "BPEL 2.0" ).select( "BPEL Process File" );
+//		bot.button("Next >").click();
+//
+//		bot.text( 0 ).setText( BPEL_NAME );
+//		bot.comboBox( 1 ).setText( "http://" + BPEL_NAME );
+//		if( isAbstract )
+//			bot.checkBox( 0 ).select();
+//		bot.button( "Next >" ).click();
+//
+//		bot.comboBox( 0 ).setSelection( tplId );
+//		bot.button( "Next >" ).click();
+//
+//		completeBpelFileCreation( selectBpelDir );
+//		IPath path;
+//		if( selectBpelDir )
+//			path = new Path( PROJECT_NAME  ).append( BPEL_DIR ).append( BPEL_FILE_NAME );
+//		else
+//			path = new Path( PROJECT_NAME  ).append( BPEL_FILE_NAME );
+//
+//		IFile bpelFile = ResourcesPlugin.getWorkspace().getRoot().getFile( path );
+//		Assert.assertTrue( bpelFile.isAccessible());
+//
+//		// The empty template is not valid because it does not start with an starting activity
+//		IProblem[] problems = this.bpelBuilder.validate( bpelFile, null );
+//		Assert.assertEquals( problems.length, expectedNumberOfProblems );
+//	}
+//
+//
+//	/**
+//	 * Completes the creation of a new BPEL file.
+//	 * @param selectBpelDir true to create the BPEL in the {@link #BPEL_DIR} directory, false for the root of the project
+//	 * @throws Exception if the created project could not be built
+//	 */
+//	private void completeBpelFileCreation( boolean selectBpelDir ) throws Exception {
+//
+//		// Create the project
+//		if( selectBpelDir )
+//			bot.tree( 0 ).expandNode( PROJECT_NAME ).select( BPEL_DIR );
+//		else
+//			bot.tree( 0 ).select( PROJECT_NAME );
+//
+//		bot.button( "Finish" ).click();
+//		bot.waitUntil( new DefaultCondition() {
+//
+//			@Override
+//			public boolean test() throws Exception {
+//				String title = NewBpelFileWizardTest.bot.activeEditor().getTitle();
+//				return (BPEL_NAME + ".bpel").equals( title );
+//			}
+//
+//			@Override
+//			public String getFailureMessage() {
+//				return "Could not wait for the BPEL Designer to be open";
+//			}
+//		});
+//	}
+//
+//
+//	/**
+//	 * Creates a BPEL project.
+//	 */
+//	private void createBpelProject() {
+//
+//		bot.menu( "File" ).menu( "New" ).menu( "Other..." ).click();
+//		SWTBotShell shell = bot.shell( "New" );
+//		shell.activate();
+//
+//		bot.tree( 0 ).setFocus();
+//		bot.tree( 0 ).expandNode( "BPEL 2.0" ).select( "BPEL Project" );
+//		bot.button("Next >").click();
+//
+//		bot.text( 0 ).setText( PROJECT_NAME );
+//		bot.button( "Next >" ).click();
+//		bot.button( "Finish" ).click();
+//
+//		try {
+//			shell = bot.shell( "Open Associated Perspective?" );
+//			shell.activate();
+//			bot.button( "Yes" ).click();
+//
+//		} catch( Exception e ) {
+//			// nothing - the shell does not appear all the time
+//		}
+//	}
+//
+//
+//	/**
+//	 * Creates a simple project.
+//	 */
+//	private void createSimpleProject() {
+//
+//		bot.menu( "File" ).menu( "New" ).menu( "Other..." ).click();
+//		SWTBotShell shell = bot.shell( "New" );
+//		shell.activate();
+//
+//		bot.tree( 0 ).setFocus();
+//		bot.tree( 0 ).expandNode( "General" ).select( "Project" );
+//		bot.button("Next >").click();
+//
+//		bot.text( 0 ).setText( PROJECT_NAME );
+//		bot.button( "Finish" ).click();
+//
+//		// The following code is useless - there is no default perspective for simple projects -
+//		// but it makes one test work (otherwise, this test fails and there is no reason for it).
+//		try {
+//			shell = bot.shell( "Open Associated Perspective?" );
+//			shell.activate();
+//			bot.button( "Yes" ).click();
+//
+//		} catch( Exception e ) {
+//			// nothing - the shell does not appear all the time
+//		}
+//	}
+}
diff --git a/tests/pom.xml b/tests/pom.xml
index 068aebf..6383b06 100644
--- a/tests/pom.xml
+++ b/tests/pom.xml
@@ -6,7 +6,6 @@
 		<artifactId>org.eclipse.bpel.root</artifactId>
 		<version>1.1.3-SNAPSHOT</version>
 	</parent>
-	<groupId>org.eclipse.bpel</groupId>
 	<artifactId>org.eclipse.bpel.tests</artifactId>
 	<packaging>pom</packaging>
 	<modules>