Bug 323694
Fix failing unit test: Dom2ResourceMapperTest.testFindResourceWs
diff --git a/tests/org.eclipse.jst.ws.jaxws.testutils/src/org/eclipse/jst/ws/jaxws/testutils/dom/WaitingDomUtil.java b/tests/org.eclipse.jst.ws.jaxws.testutils/src/org/eclipse/jst/ws/jaxws/testutils/dom/WaitingDomUtil.java
new file mode 100644
index 0000000..6211914
--- /dev/null
+++ b/tests/org.eclipse.jst.ws.jaxws.testutils/src/org/eclipse/jst/ws/jaxws/testutils/dom/WaitingDomUtil.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2010 by SAP AG, Walldorf. 
+ * 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:
+ *     SAP AG - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.ws.jaxws.testutils.dom;
+
+import java.text.MessageFormat;
+
+import junit.framework.AssertionFailedError;
+
+import org.eclipse.jst.ws.jaxws.dom.runtime.DomUtil;
+import org.eclipse.jst.ws.jaxws.dom.runtime.api.IDOM;
+import org.eclipse.jst.ws.jaxws.dom.runtime.api.IWebServiceProject;
+import org.eclipse.jst.ws.jaxws.testutils.IWaitCondition;
+import org.eclipse.jst.ws.jaxws.testutils.assertions.Assertions;
+import org.eclipse.jst.ws.jaxws.testutils.assertions.ConditionCheckException;
+
+/**
+ * Extension of {@link DomUtil} which upon searching for web service project would wait until the project gets into the model<br>
+ * The utility is useful for test which implement tests which rely on the WS model
+ * 
+ * @author Danail Branekov
+ */
+public class WaitingDomUtil extends org.eclipse.jst.ws.jaxws.dom.runtime.DomUtil
+{
+	/**
+	 * The implementation, in contrast to its parent's one, would never return null. If the project is not found in the model, an {@link AssertionFailedError} is thrown
+	 * @see super{@link #findProjectByName(IDOM, String)}
+	 */
+	@Override
+	public IWebServiceProject findProjectByName(final IDOM dom, final String name)
+	{
+		final IWebServiceProject[] result = new IWebServiceProject[1];
+		Assertions.waitAssert(new IWaitCondition()
+		{
+			public boolean checkCondition() throws ConditionCheckException
+			{
+				result[0] = WaitingDomUtil.super.findProjectByName(dom, name);
+				return result[0] != null;
+			}
+		}, MessageFormat.format("Project {0} not found in WS DOM", name));
+
+		return result[0];
+	}
+}