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 2009/02/11 14:49:09 UTC

svn commit: r743338 - in /webservices/jaxme/trunk/ws-jaxme: ./ jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/ jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/ jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/ jaxme...

Author: jochen
Date: Wed Feb 11 13:49:08 2009
New Revision: 743338

URL: http://svn.apache.org/viewvc?rev=743338&view=rev
Log:
Fixed several bugs in the handling of patterns.

Modified:
    webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/SimpleTypeSG.java
    webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/HandlerSGImpl.java
    webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
    webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/SimpleTypeSGImpl.java
    webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/StringSG.java
    webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/Java5REHandler.java
    webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/REHandler.java
    webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/XercesREHandler.java
    webservices/jaxme/trunk/ws-jaxme/status.xml

Modified: webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/SimpleTypeSG.java
URL: http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/SimpleTypeSG.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/SimpleTypeSG.java (original)
+++ webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/SimpleTypeSG.java Wed Feb 11 13:49:08 2009
@@ -159,7 +159,7 @@
   	/** Adds code for validating the value <code>pValue</code> within the
   	 * handler.
   	 */
-	public void addHandlerValidation(JavaMethod pJm, TypedValue pValue) throws SAXException;
+	public void addHandlerValidation(JavaMethod pJm, TypedValue pValue, Object pStringValue) throws SAXException;
 
 	/** Returns, whether the simple type is an instance of
 	 * <code>xs:id</code>.

Modified: webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/HandlerSGImpl.java
URL: http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/HandlerSGImpl.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/HandlerSGImpl.java (original)
+++ webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/HandlerSGImpl.java Wed Feb 11 13:49:08 2009
@@ -285,7 +285,7 @@
 			pJm.addTry();
 		}
 		Object s = new Object[]{"(", StringSG.STRING_TYPE, ") ", pValue};
-		pType.getSimpleTypeSG().addHandlerValidation(pJm, pValue);
+		pType.getSimpleTypeSG().addHandlerValidation(pJm, pValue, s);
 		TypedValue result = new TypedValueImpl(pType.getSimpleTypeSG().getCastFromString(pJm, s, "getHandler()"),
 							   				   pType.getSimpleTypeSG().getRuntimeType());
 		pPropertySG.addValue(pJm, pElement, result, null);

Modified: webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java
URL: http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java (original)
+++ webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/ListTypeSGImpl.java Wed Feb 11 13:49:08 2009
@@ -199,7 +199,7 @@
 		return itemType.getSimpleTypeSG().isCausingParseConversionEvent();
 	}
 
-	public void addHandlerValidation(SimpleTypeSG pController, JavaMethod pJm, TypedValue pValue) throws SAXException {
-		itemType.getSimpleTypeSG().addHandlerValidation(pJm, pValue);
+	public void addHandlerValidation(SimpleTypeSG pController, JavaMethod pJm, TypedValue pValue, Object pStringValue) throws SAXException {
+		itemType.getSimpleTypeSG().addHandlerValidation(pJm, pValue, pStringValue);
 	}
 }

Modified: webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/SimpleTypeSGImpl.java
URL: http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/SimpleTypeSGImpl.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/SimpleTypeSGImpl.java (original)
+++ webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/SimpleTypeSGImpl.java Wed Feb 11 13:49:08 2009
@@ -130,7 +130,7 @@
   public void addValidation(SimpleTypeSG pController, JavaMethod pMethod, DirectAccessible pValue) throws SAXException {
   }
 
-	public void addHandlerValidation(SimpleTypeSG pController, JavaMethod pJm, TypedValue pValue)
+	public void addHandlerValidation(SimpleTypeSG pController, JavaMethod pJm, TypedValue pValue, Object pStringValue)
 			throws SAXException {
 	}
 }

Modified: webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/StringSG.java
URL: http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/StringSG.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/StringSG.java (original)
+++ webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/generator/types/StringSG.java Wed Feb 11 13:49:08 2009
@@ -31,6 +31,7 @@
 import org.apache.ws.jaxme.js.JavaSource;
 import org.apache.ws.jaxme.js.LocalJavaField;
 import org.apache.ws.jaxme.js.TypedValue;
+import org.apache.ws.jaxme.js.JavaSource.Protection;
 import org.apache.ws.jaxme.js.impl.TypedValueImpl;
 import org.apache.ws.jaxme.xs.XSType;
 import org.apache.ws.jaxme.xs.parser.impl.LocSAXException;
@@ -86,27 +87,32 @@
 		   ||  atomicType.getPatterns() != null;
   	}
 
-	public void addHandlerValidation(SimpleTypeSG pController, JavaMethod pJm, TypedValue pValue)
+  	private String newReFieldName(JavaSource pJs) {
+  		for (int i = 0;  ;  i++) {
+  			String name = "_re_" + i;
+  			JavaField jf = pJs.getField(name);
+  			if (jf == null) {
+  				return name;
+  			}
+  		}
+  	}
+
+  	public void addHandlerValidation(SimpleTypeSG pController, JavaMethod pJm, TypedValue pValue, Object pStringValue)
 			throws SAXException {
   		String[] patterns = pController.getAtomicType().getPatterns();
-  		if (patterns == null) {
+  		if (patterns == null  ||  patterns.length == 0) {
   			return;
   		}
   		JavaSource js = pJm.getJavaSource();
-  		int i = 0;
-  		for (;;) {
-  			String name = "_re_" + i;
-  			JavaField jf = js.getField(name);
-  			if (jf == null) {
-  				break;
-  			}
-  		}
+  		
   		for (int j = 0;  j < patterns.length;  j++) {
-  			String name = "_re_" + i++;
-  			JavaField jf = js.newJavaField(name, REHandler.Matcher.class);
+  			String name = newReFieldName(js);
+  			JavaField jf = js.newJavaField(name, REHandler.Matcher.class, JavaSource.PRIVATE);
+  			jf.setStatic(true);
+  			jf.setFinal(true);
   			jf.addLine(REFactory.class, ".getREHandler().getMatcher(",
   					   JavaSource.getQuoted(patterns[j]), ")");
-  			pJm.addIf("!", jf, ".matches(", pValue, ")");
+  			pJm.addIf("!", jf, ".matches(", pStringValue, ")");
   			pJm.addThrowNew(IllegalArgumentException.class,
   							JavaSource.getQuoted("Value doesn't match pattern "),
   								" + ", jf, ".getPattern()");

Modified: webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/Java5REHandler.java
URL: http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/Java5REHandler.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/Java5REHandler.java (original)
+++ webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/Java5REHandler.java Wed Feb 11 13:49:08 2009
@@ -26,7 +26,7 @@
 		final RegularExpression re = new RegularExpression(pPattern, "X");
 		return new Matcher(){
 			public String getPattern() { return pPattern; }
-			public synchronized boolean matches(String pValue) {
+			public boolean matches(String pValue) {
 				return re.matches(pValue);
 			}
 		};

Modified: webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/REHandler.java
URL: http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/REHandler.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/REHandler.java (original)
+++ webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/REHandler.java Wed Feb 11 13:49:08 2009
@@ -23,8 +23,9 @@
  * Upon startup, an attempt is made to load an RE implementation.
  */
 public interface REHandler {
-	/** An RE matcher is a compiled regular expression.
-	 * Its method
+	/** An RE matcher is a thread safe, compiled regular expression.
+	 * Its method "matches" is used to determine, whether a given
+	 * string matches the pattern.
 	 */
 	public interface Matcher {
 		/** Returns the regular expressions pattern.

Modified: webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/XercesREHandler.java
URL: http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/XercesREHandler.java?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/XercesREHandler.java (original)
+++ webservices/jaxme/trunk/ws-jaxme/jaxme-jm/src/main/java/org/apache/ws/jaxme/impl/XercesREHandler.java Wed Feb 11 13:49:08 2009
@@ -26,7 +26,7 @@
 		final RegularExpression re = new RegularExpression(pPattern, "X");
 		return new Matcher(){
 			public String getPattern() { return pPattern; }
-			public synchronized boolean matches(String pValue) {
+			public boolean matches(String pValue) {
 				return re.matches(pValue);
 			}
 		};

Modified: webservices/jaxme/trunk/ws-jaxme/status.xml
URL: http://svn.apache.org/viewvc/webservices/jaxme/trunk/ws-jaxme/status.xml?rev=743338&r1=743337&r2=743338&view=diff
==============================================================================
--- webservices/jaxme/trunk/ws-jaxme/status.xml (original)
+++ webservices/jaxme/trunk/ws-jaxme/status.xml Wed Feb 11 13:49:08 2009
@@ -45,6 +45,15 @@
       <action dev="JW" type="fix" context="js">
         Upgrade to the latest version of java15.g.
       </action>
+      <action dev="JW" type="enhancement" context="all">
+        Upgrade from Maven 1 to Maven 2.
+      </action>
+      <action dev="JW" type="enhancement" context="api">
+        Upgraded the API to JAXB 2.1, so that Java 6 can be supported.
+      </action>
+      <action dev="JW" type="fix">
+        Fixed an endless loop when handling patterns.
+      </action>
     </release>
     <release version="0.5.3" date="Unpublished">
       <action dev="JW" type="fix" context="runtime">



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