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-unsubscr...@ws.apache.org For additional commands, e-mail: jaxme-dev-h...@ws.apache.org