Author: cbegin
Date: Mon Apr 20 03:49:34 2009
New Revision: 766566

URL: http://svn.apache.org/viewvc?rev=766566&view=rev
Log:
Updated DTDs to support new dynamic SQL elements

Added:
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/PostMapper.xml
Removed:
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/ExampleMapper.xml
Modified:
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/XMLMapperEntityResolver.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/PrefixSqlNode.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/SetSqlNode.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/WhereSqlNode.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/ibatis-3-mapper.dtd
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.xml
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/cache/WeakCacheTest.java
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/AuthorMapper.xml
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/CachedAuthorMapper.xml
    
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/MapperConfig.xml

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/XMLMapperEntityResolver.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/XMLMapperEntityResolver.java?rev=766566&r1=766565&r2=766566&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/XMLMapperEntityResolver.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/XMLMapperEntityResolver.java
 Mon Apr 20 03:49:34 2009
@@ -17,10 +17,10 @@
   private static final Map<String, String> doctypeMap = new HashMap<String, 
String>();
 
   static {
-    
doctypeMap.put("http://ibatis.apache.org/dtd/ibatis-config-3.dtd".toUpperCase(),
 MAPPER_CONFIG_DTD_RESOURCE);
+    
doctypeMap.put("http://ibatis.apache.org/dtd/ibatis-3-config.dtd".toUpperCase(),
 MAPPER_CONFIG_DTD_RESOURCE);
     doctypeMap.put("-//ibatis.apache.org//DTD Config 3.0//EN".toUpperCase(), 
MAPPER_CONFIG_DTD_RESOURCE);
 
-    
doctypeMap.put("http://ibatis.apache.org/dtd/ibatis-mapper-3.dtd".toUpperCase(),
 MAPPER_DTD_RESOURCE);
+    
doctypeMap.put("http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd".toUpperCase(),
 MAPPER_DTD_RESOURCE);
     doctypeMap.put("-//ibatis.apache.org//DTD Mapper 3.0//EN".toUpperCase(), 
MAPPER_DTD_RESOURCE);
   }
 

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/PrefixSqlNode.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/PrefixSqlNode.java?rev=766566&r1=766565&r2=766566&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/PrefixSqlNode.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/PrefixSqlNode.java
 Mon Apr 20 03:49:34 2009
@@ -5,19 +5,30 @@
 public class PrefixSqlNode implements SqlNode {
 
   private SqlNode contents;
-  private List<String> stringsToRemove = new ArrayList<String>();
-  private String stringToInsert;
+  private String stringToPrefixWith;
+  private List<String> stringsToOverride = new ArrayList<String>();
 
-  public PrefixSqlNode(SqlNode contents, String stringToInsert, List<String> 
stringsToRemove) {
+  public PrefixSqlNode(SqlNode contents, String with, String overrides) {
     this.contents = contents;
-    this.stringsToRemove = stringsToRemove;
-    this.stringToInsert = stringToInsert;
+    this.stringToPrefixWith = with;
+    this.stringsToOverride = parseOverrides(overrides);
   }
 
   public boolean apply(DynamicContext context) {
     return contents.apply(new FilteredDynamicContext(context));
   }
 
+  private List<String> parseOverrides(String overrides) {
+    if (overrides != null) {
+      final StringTokenizer parser = new StringTokenizer(overrides, "|", 
false);
+      return new ArrayList<String>() {{
+          while (parser.hasMoreTokens()) {
+            add(parser.nextToken());
+          }}
+      };
+    }
+    return Collections.EMPTY_LIST;
+  }
 
   private class FilteredDynamicContext extends DynamicContext {
     private DynamicContext delegate;
@@ -41,14 +52,14 @@
       if (!filtered) {
         filtered = true;
         String filteredSql = sql.trim().toUpperCase();
-        for(String toRemove : stringsToRemove) {
+        for (String toRemove : stringsToOverride) {
           if (filteredSql.startsWith(toRemove)) {
             sql = sql.trim().substring(toRemove.trim().length()).trim();
             break;
           }
         }
-        if (stringToInsert != null) {
-          delegate.appendSql(stringToInsert);
+        if (stringToPrefixWith != null) {
+          delegate.appendSql(stringToPrefixWith);
         }
         delegate.appendSql(sql);
       } else {

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/SetSqlNode.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/SetSqlNode.java?rev=766566&r1=766565&r2=766566&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/SetSqlNode.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/SetSqlNode.java
 Mon Apr 20 03:49:34 2009
@@ -5,9 +5,7 @@
 public class SetSqlNode extends PrefixSqlNode {
 
   public SetSqlNode(SqlNode contents) {
-    super(contents, "SET", new ArrayList<String>() {{
-      add(",");
-    }});
+    super(contents, "SET", ",");
   }
 
 }

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/WhereSqlNode.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/WhereSqlNode.java?rev=766566&r1=766565&r2=766566&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/WhereSqlNode.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/dynamic/WhereSqlNode.java
 Mon Apr 20 03:49:34 2009
@@ -5,10 +5,7 @@
 public class WhereSqlNode extends PrefixSqlNode{
 
   public WhereSqlNode(SqlNode contents) {
-    super(contents, "WHERE", new ArrayList<String>() {{
-      add("AND ");
-      add("OR ");
-    }});
+    super(contents, "WHERE", "AND |OR ");
   }
 
 

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/ibatis-3-mapper.dtd
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/ibatis-3-mapper.dtd?rev=766566&r1=766565&r2=766566&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/ibatis-3-mapper.dtd
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/xml/ibatis-3-mapper.dtd
 Mon Apr 20 03:49:34 2009
@@ -128,17 +128,7 @@
 type CDATA #REQUIRED
 >
 
-<!ELEMENT include EMPTY>
-<!ATTLIST include
-refid CDATA #REQUIRED
->
-
-<!ELEMENT sql (#PCDATA | include)*>
-<!ATTLIST sql
-id CDATA #REQUIRED
->
-
-<!ELEMENT select (#PCDATA | include)*>
+<!ELEMENT select (#PCDATA | include | prefix | where | set | foreach | choose 
| if)*>
 <!ATTLIST select
 id CDATA #REQUIRED
 parameterMap CDATA #IMPLIED
@@ -152,7 +142,7 @@
 useCache (true|false) #IMPLIED
 >
 
-<!ELEMENT insert (#PCDATA | selectKey | include)*>
+<!ELEMENT insert (#PCDATA | selectKey | include | prefix | where | set | 
foreach | choose | if)*>
 <!ATTLIST insert
 id CDATA #REQUIRED
 parameterMap CDATA #IMPLIED
@@ -161,14 +151,14 @@
 flushCache (true|false) #IMPLIED
 >
 
-<!ELEMENT selectKey (#PCDATA | include)*>
+<!ELEMENT selectKey (#PCDATA | include | prefix | where | set | foreach | 
choose | if)*>
 <!ATTLIST selectKey
 resultType CDATA #IMPLIED
 keyProperty CDATA #IMPLIED
 order (before|after) #IMPLIED
 >
 
-<!ELEMENT update (#PCDATA | include)*>
+<!ELEMENT update (#PCDATA | include | prefix | where | set | foreach | choose 
| if)*>
 <!ATTLIST update
 id CDATA #REQUIRED
 parameterMap CDATA #IMPLIED
@@ -177,7 +167,7 @@
 flushCache (true|false) #IMPLIED
 >
 
-<!ELEMENT delete (#PCDATA | include)*>
+<!ELEMENT delete (#PCDATA | include | prefix | where | set | foreach | choose 
| if)*>
 <!ATTLIST delete
 id CDATA #REQUIRED
 parameterMap CDATA #IMPLIED
@@ -185,3 +175,47 @@
 timeout CDATA #IMPLIED
 flushCache (true|false) #IMPLIED
 >
+
+<!-- Dynamic -->
+
+<!ELEMENT include EMPTY>
+<!ATTLIST include
+refid CDATA #REQUIRED
+>
+
+<!ELEMENT sql (#PCDATA | include | prefix | where | set | foreach | choose | 
if)*>
+<!ATTLIST sql
+id CDATA #REQUIRED
+>
+
+<!ELEMENT prefix (#PCDATA | include | prefix | where | set | foreach | choose 
| if)*>
+<!ATTLIST prefix
+with CDATA #IMPLIED
+overrides CDATA #IMPLIED
+>
+<!ELEMENT where (#PCDATA | include | prefix | where | set | foreach | choose | 
if)*>
+<!ELEMENT set (#PCDATA | include | prefix | where | set | foreach | choose | 
if)*>
+
+<!ELEMENT foreach (#PCDATA | include | prefix | where | set | foreach | choose 
| if)*>
+<!ATTLIST foreach
+collection CDATA #REQUIRED
+item CDATA #IMPLIED
+index CDATA #IMPLIED
+open CDATA #IMPLIED
+close CDATA #IMPLIED
+separator CDATA #IMPLIED
+>
+
+<!ELEMENT choose (when* , otherwise?)>
+<!ELEMENT when (#PCDATA | include | prefix | where | set | foreach | choose | 
if)*>
+<!ATTLIST when
+test CDATA #REQUIRED
+>
+<!ELEMENT otherwise (#PCDATA | include | prefix | where | set | foreach | 
choose | if)*>
+
+<!ELEMENT if (#PCDATA | include | prefix | where | set | foreach | choose | 
if)*>
+<!ATTLIST if
+test CDATA #REQUIRED
+>
+
+

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.xml
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.xml?rev=766566&r1=766565&r2=766566&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.xml
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.xml
 Mon Apr 20 03:49:34 2009
@@ -2,7 +2,7 @@
 
 <!DOCTYPE mapper
     PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
-    "http://ibatis.apache.org/dtd/ibatis-mapper-3.dtd";>
+    "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd";>
 
 <mapper>
 

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/cache/WeakCacheTest.java
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/cache/WeakCacheTest.java?rev=766566&r1=766565&r2=766566&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/cache/WeakCacheTest.java
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/cache/WeakCacheTest.java
 Mon Apr 20 03:49:34 2009
@@ -4,10 +4,11 @@
 import org.apache.ibatis.cache.impl.PerpetualCache;
 import static org.junit.Assert.*;
 import org.junit.Test;
+import org.junit.Ignore;
 
 public class WeakCacheTest {
 
-  @Test
+  @Test @Ignore
   public void shouldDemonstrateObjectsBeingCollectedAsNeeded() {
     final int N = 300000;
     WeakCache cache = new WeakCache(new PerpetualCache("default"));

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/AuthorMapper.xml
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/AuthorMapper.xml?rev=766566&r1=766565&r2=766566&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/AuthorMapper.xml
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/AuthorMapper.xml
 Mon Apr 20 03:49:34 2009
@@ -2,7 +2,7 @@
 
 <!DOCTYPE mapper
     PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
-    "http://ibatis.apache.org/dtd/ibatis-mapper-3.dtd";>
+    "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd";>
 
 <mapper namespace="domain.blog.mappers.AuthorMapper">
 

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml?rev=766566&r1=766565&r2=766566&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
 Mon Apr 20 03:49:34 2009
@@ -2,7 +2,7 @@
 
 <!DOCTYPE mapper
     PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
-    "http://ibatis.apache.org/dtd/ibatis-mapper-3.dtd";>
+    "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd";>
 
 <mapper namespace="domain.blog.mappers.BlogMapper">
 

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/CachedAuthorMapper.xml
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/CachedAuthorMapper.xml?rev=766566&r1=766565&r2=766566&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/CachedAuthorMapper.xml
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/CachedAuthorMapper.xml
 Mon Apr 20 03:49:34 2009
@@ -2,7 +2,7 @@
 
 <!DOCTYPE mapper
     PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
-    "http://ibatis.apache.org/dtd/ibatis-mapper-3.dtd";>
+    "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd";>
 
 <mapper namespace="com.domain.CachedAuthorMapper">
 

Modified: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/MapperConfig.xml
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/MapperConfig.xml?rev=766566&r1=766565&r2=766566&view=diff
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/MapperConfig.xml
 (original)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/MapperConfig.xml
 Mon Apr 20 03:49:34 2009
@@ -2,7 +2,7 @@
 
 <!DOCTYPE configuration
     PUBLIC "-//ibatis.apache.org//DTD Config 3.0//EN"
-    "http://ibatis.apache.org/dtd/ibatis-config-3.dtd";>
+    "http://ibatis.apache.org/dtd/ibatis-3-config.dtd";>
 
 <configuration>
 

Added: 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/PostMapper.xml
URL: 
http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/PostMapper.xml?rev=766566&view=auto
==============================================================================
--- 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/PostMapper.xml
 (added)
+++ 
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/PostMapper.xml
 Mon Apr 20 03:49:34 2009
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!DOCTYPE mapper
+    PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
+    "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd";>
+
+<mapper namespace="domain.blog.mappers.PostMapper">
+
+  <select id="findPostIn" >
+  </select>
+
+</mapper>
\ No newline at end of file


Reply via email to