You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jaxme-dev@ws.apache.org by jo...@apache.org on 2005/08/19 21:22:20 UTC

svn commit: r233543 - in /webservices/jaxme/trunk: ./ ant/ src/jaxme/org/apache/ws/jaxme/impl/ src/jaxme/org/apache/ws/jaxme/junit/

Author: jochen
Date: Fri Aug 19 12:22:07 2005
New Revision: 233543

URL: http://svn.apache.org/viewcvs?rev=233543&view=rev
Log:
Added a unit test for xs:pattern.

Modified:
    webservices/jaxme/trunk/ant/jm.xml
    webservices/jaxme/trunk/ant/macros.xml
    webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/impl/REFactory.java
    webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/BaseTestCase.java
    webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/JiraTest.java
    webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/MarshallerTest.java
    webservices/jaxme/trunk/status.xml

Modified: webservices/jaxme/trunk/ant/jm.xml
URL: http://svn.apache.org/viewcvs/webservices/jaxme/trunk/ant/jm.xml?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/ant/jm.xml (original)
+++ webservices/jaxme/trunk/ant/jm.xml Fri Aug 19 12:22:07 2005
@@ -136,6 +136,8 @@
             <exclude name="org/apache/ws/jaxme/impl/CharSetXMLWriter.java" unless="have14"/>
             <exclude name="org/apache/ws/jaxme/junit/*Test.java"/>
             <exclude name="org/apache/ws/jaxme/examples/misc/address/*.java"/>
+        	<exclude name="org/apache/ws/jaxme/impl/XercesREHandler.java" unless="haveXercesRe"/>
+        	<exclude name="org/apache/ws/jaxme/impl/Java5REHandler.java" unless="haveJava5Re"/>
         </javac>
         <jar destfile="${dist}/jaxme2-rt-${version}.jar">
             <fileset dir="${build.jm.classes}">

Modified: webservices/jaxme/trunk/ant/macros.xml
URL: http://svn.apache.org/viewcvs/webservices/jaxme/trunk/ant/macros.xml?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/ant/macros.xml (original)
+++ webservices/jaxme/trunk/ant/macros.xml Fri Aug 19 12:22:07 2005
@@ -44,6 +44,9 @@
       </and>
 	</condition>
 
+	<available classname="org.apache.xerces.impl.xpath.regex.RegularExpression" property="haveXercesRe"/>
+	<available classname="com.sun.org.apache.xerces.internal.impl.xpath.regex.RegularExpression" property="haveJava5Re"/>
+
     <macrodef name="jc">
         <attribute name="srcdir"/>
         <attribute name="destdir"/>

Modified: webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/impl/REFactory.java
URL: http://svn.apache.org/viewcvs/webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/impl/REFactory.java?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/impl/REFactory.java (original)
+++ webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/impl/REFactory.java Fri Aug 19 12:22:07 2005
@@ -70,8 +70,13 @@
 	 * </ol>
 	 */
 	public static REHandler getREHandler() { return reHandler; }
-	
-	private static class DummyREHandler implements REHandler {
+
+	/** Dummy implementation of an {@link REHandler},
+	 * which accepts any string as matching for any pattern.
+	 * Used as a fallback, if no other implementations are
+	 * available.
+	 */
+	public static class DummyREHandler implements REHandler {
 		public Matcher getMatcher(final String pPattern) {
 			return new REHandler.Matcher() {
 				public String getPattern() { return pPattern; }

Modified: webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/BaseTestCase.java
URL: http://svn.apache.org/viewcvs/webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/BaseTestCase.java?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/BaseTestCase.java (original)
+++ webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/BaseTestCase.java Fri Aug 19 12:22:07 2005
@@ -23,9 +23,12 @@
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Marshaller;
 import javax.xml.bind.Unmarshaller;
+import javax.xml.bind.ValidationEvent;
+import javax.xml.bind.ValidationEventHandler;
 
 import org.apache.ws.jaxme.JMElement;
 import org.apache.ws.jaxme.impl.JMMarshallerImpl;
+import org.apache.ws.jaxme.impl.ValidationEventImpl;
 import org.xml.sax.InputSource;
 
 import junit.framework.TestCase;
@@ -37,7 +40,19 @@
  * @version $Id$
  */
 public abstract class BaseTestCase extends TestCase {
-    protected BaseTestCase() {
+    protected static class EventDetector implements ValidationEventHandler {
+		private ValidationEvent event;
+		public boolean handleEvent(ValidationEvent pEvent) {
+			if (event == null) {
+				event = pEvent;
+			}
+			return true;
+		}
+		boolean isSuccess() { return event == null; }
+		ValidationEventImpl getEvent() { return (ValidationEventImpl) event; }
+	}
+
+	protected BaseTestCase() {
     }
 
     protected BaseTestCase(String pName) {

Modified: webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/JiraTest.java
URL: http://svn.apache.org/viewcvs/webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/JiraTest.java?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/JiraTest.java (original)
+++ webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/JiraTest.java Fri Aug 19 12:22:07 2005
@@ -7,8 +7,6 @@
 import javax.xml.bind.JAXBContext;
 import javax.xml.bind.JAXBException;
 import javax.xml.bind.Unmarshaller;
-import javax.xml.bind.ValidationEvent;
-import javax.xml.bind.ValidationEventHandler;
 
 import magoffin.matt.ieat.domain.impl.IngredientImpl;
 import net.dspc.commons.activitymodel.TransmissionData;
@@ -23,7 +21,6 @@
 import org.apache.ws.jaxme.generator.sg.SchemaSG;
 import org.apache.ws.jaxme.generator.sg.impl.JAXBSchemaReader;
 import org.apache.ws.jaxme.generator.util.JavaNamer;
-import org.apache.ws.jaxme.impl.ValidationEventImpl;
 import org.apache.ws.jaxme.test.jira.jaxme58.AuthorType;
 import org.apache.ws.jaxme.test.jira.jaxme58.BookType;
 import org.apache.ws.jaxme.test.jira.jaxme58.Booklist;
@@ -178,18 +175,6 @@
 			runFacetTest(i, "c", i == 4);
 		}
 	}
-
-	private static class EventDetector implements ValidationEventHandler {
-		private ValidationEvent event;
-		public boolean handleEvent(ValidationEvent pEvent) {
-			if (event == null) {
-				event = pEvent;
-			}
-			return true;
-		}
-		boolean isSuccess() { return event == null; }
-		ValidationEventImpl getEvent() { return (ValidationEventImpl) event; }
-	};
 
 	private void runFacetTest(int i, String pAttrName, boolean pSuccess) throws JAXBException {
 		JAXBContext ctx = super.getJAXBContext(Jira62.class);

Modified: webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/MarshallerTest.java
URL: http://svn.apache.org/viewcvs/webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/MarshallerTest.java?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/MarshallerTest.java (original)
+++ webservices/jaxme/trunk/src/jaxme/org/apache/ws/jaxme/junit/MarshallerTest.java Fri Aug 19 12:22:07 2005
@@ -44,6 +44,7 @@
 import org.apache.ws.jaxme.impl.DatatypeConverterImpl;
 import org.apache.ws.jaxme.impl.JAXBContextImpl;
 import org.apache.ws.jaxme.impl.JMMarshallerImpl;
+import org.apache.ws.jaxme.impl.REFactory;
 import org.apache.ws.jaxme.test.misc.address.Address;
 import org.apache.ws.jaxme.test.misc.address.AddressType;
 import org.apache.ws.jaxme.test.misc.types.AllElement;
@@ -52,6 +53,7 @@
 import org.apache.ws.jaxme.test.misc.types.Author;
 import org.apache.ws.jaxme.test.misc.types.Html;
 import org.apache.ws.jaxme.test.misc.types.ObjectFactory;
+import org.apache.ws.jaxme.test.misc.types.Patterns;
 import org.apache.ws.jaxme.test.misc.types.impl.AllElementImpl;
 import org.apache.ws.jaxme.test.misc.types.impl.AllSimpleTypesImpl;
 import org.apache.ws.jaxme.test.misc.types.impl.AllTypesElementImpl;
@@ -638,5 +640,33 @@
 		m.marshal(htmlElem, sw);
 		String got = sw.toString();
 		assertEquals(html, got);
+	}
+
+	private void testPattern(boolean pSuccess, String pValue) throws Exception {
+		boolean patternTestingAvailable = !(REFactory.getREHandler() instanceof REFactory.DummyREHandler);
+		final String prefix = "<ex:patterns xmlns:ex='http://ws.apache.org/jaxme/test/misc/types' foo='";
+		final String suffix = "'/>";
+		final String xml1 = prefix + pValue + suffix;
+		JAXBContext ctx = getJAXBContext(Patterns.class);
+		Unmarshaller u = ctx.createUnmarshaller();
+		EventDetector ed = new EventDetector();
+		u.setEventHandler(ed);
+		Patterns patterns = (Patterns) u.unmarshal(new InputSource(new StringReader(xml1)));
+		if (pSuccess  ||  !patternTestingAvailable) {
+			assertTrue(ed.isSuccess());
+			assertEquals(pValue, patterns.getFoo());
+		} else {
+			assertTrue(!ed.isSuccess());
+			assertNull(patterns.getFoo());
+		}
+	}
+
+	/** Tests, whether patterns are evaluated while unmarshalling.
+	 */
+	public void testPatterns() throws Exception {
+		testPattern(true, "xY01");
+		testPattern(false, "xY");
+		testPattern(false, "xY0123");
+		testPattern(false, "x012");
 	}
 }

Modified: webservices/jaxme/trunk/status.xml
URL: http://svn.apache.org/viewcvs/webservices/jaxme/trunk/status.xml?rev=233543&r1=233542&r2=233543&view=diff
==============================================================================
--- webservices/jaxme/trunk/status.xml (original)
+++ webservices/jaxme/trunk/status.xml Fri Aug 19 12:22:07 2005
@@ -50,6 +50,9 @@
         build scripts. (JAXME-67, Boris Gruschke,
         <boris at gruschke.de>)
       </action>
+      <action dev="JW" type="enhancement" context="generator">
+        Added support for xs:pattern.
+      </action>
     </release>
 	<release version="0.5" date="2005-Aug-08">
       <action dev="JW" type="enhancement" context="js">



---------------------------------------------------------------------
To unsubscribe, e-mail: jaxme-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: jaxme-dev-help@ws.apache.org