Author: cziegeler Date: Fri Jan 21 06:06:49 2005 New Revision: 125929 URL: http://svn.apache.org/viewcvs?view=rev&rev=125929 Log: Use flat patterns for include Added: cocoon/trunk/src/core/java/org/apache/cocoon/matching/ cocoon/trunk/src/core/java/org/apache/cocoon/matching/helpers/ cocoon/trunk/src/core/java/org/apache/cocoon/matching/helpers/WildcardHelper.java - copied, changed from r125902, cocoon/trunk/src/java/org/apache/cocoon/matching/helpers/WildcardHelper.java Removed: cocoon/trunk/src/java/org/apache/cocoon/matching/helpers/WildcardHelper.java Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf cocoon/trunk/tools/targets/compile-build.xml
Modified: cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java?view=diff&rev=125929&p1=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java&r1=125928&p2=cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java&r2=125929 ============================================================================== --- cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/core/container/CoreServiceManager.java Fri Jan 21 06:06:49 2005 @@ -50,6 +50,7 @@ import org.apache.cocoon.core.container.handler.InstanceComponentHandler; import org.apache.cocoon.core.container.handler.LazyHandler; import org.apache.cocoon.core.source.SimpleSourceResolver; +import org.apache.cocoon.matching.helpers.WildcardHelper; import org.apache.excalibur.source.Source; import org.apache.excalibur.source.SourceResolver; import org.apache.excalibur.source.TraversableSource; @@ -674,7 +675,11 @@ loadURI(src, loadedURIs, includeStatement); } else { - final String ending = includeStatement.getAttribute("postfix", null); + final String pattern = includeStatement.getAttribute("pattern", null); + int[] parsedPattern = null; + if ( pattern != null ) { + parsedPattern = WildcardHelper.compilePattern(pattern); + } Source directory = null; try { directory = this.cachedSourceResolver.resolveURI(directoryURI, contextURI, CONTEXT_PARAMETERS); @@ -682,7 +687,7 @@ final Iterator children = ((TraversableSource)directory).getChildren().iterator(); while ( children.hasNext() ) { final Source s = (Source)children.next(); - if ( ending == null || s.getURI().endsWith(ending) ) { + if ( parsedPattern == null || this.match(s.getURI(), parsedPattern)) { this.loadURI(s, loadedURIs, includeStatement); } } @@ -766,6 +771,13 @@ } } + private boolean match(String uri, int[] parsedPattern ) { + int pos = uri.lastIndexOf('/'); + if ( pos != -1 ) { + uri = uri.substring(pos+1); + } + return WildcardHelper.match(null, uri, parsedPattern); + } /** * Release the source resolver that may have been created by the first call to * loadConfiguration(). Copied: cocoon/trunk/src/core/java/org/apache/cocoon/matching/helpers/WildcardHelper.java (from r125902, cocoon/trunk/src/java/org/apache/cocoon/matching/helpers/WildcardHelper.java) Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/core/java/org/apache/cocoon/matching/helpers/WildcardHelper.java?view=diff&rev=125929&p1=cocoon/trunk/src/java/org/apache/cocoon/matching/helpers/WildcardHelper.java&r1=125902&p2=cocoon/trunk/src/core/java/org/apache/cocoon/matching/helpers/WildcardHelper.java&r2=125929 ============================================================================== --- cocoon/trunk/src/java/org/apache/cocoon/matching/helpers/WildcardHelper.java (original) +++ cocoon/trunk/src/core/java/org/apache/cocoon/matching/helpers/WildcardHelper.java Fri Jan 21 06:06:49 2005 @@ -1,5 +1,5 @@ /* - * Copyright 1999-2004 The Apache Software Foundation. + * Copyright 1999-2005 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,7 +26,7 @@ * @author <a href="mailto:[EMAIL PROTECTED]">Giacomo Pati</a> * @author <a href="mailto:[EMAIL PROTECTED]">Stefano Mazzocchi</a> * @author <a href="mailto:[EMAIL PROTECTED]">Berin Loritsch</a> - * @version CVS $Id: WildcardHelper.java,v 1.2 2004/03/05 13:02:57 bdelacretaz Exp $ + * @version CVS $Id$ */ public class WildcardHelper { @@ -133,14 +133,14 @@ * match a pattern agains a string and isolates wildcard replacement into a * <code>Stack</code>. */ - public static boolean match (HashMap map, String data, - int[] expr) throws NullPointerException { - if (map == null) - throw new NullPointerException ("No map provided"); - if (data == null) + public static boolean match (HashMap map, String data, int[] expr) + throws NullPointerException { + if (data == null) { throw new NullPointerException ("No data provided"); - if (expr == null) + } + if (expr == null) { throw new NullPointerException ("No pattern expression provided"); + } char buff[] = data.toCharArray(); @@ -161,8 +161,10 @@ // The matching count int mcount = 0; - // We want the complete data be in {0} - map.put(Integer.toString(mcount),data); + if ( map != null ) { + // We want the complete data be in {0} + map.put(Integer.toString(mcount),data); + } // First check for MATCH_BEGIN boolean matchBegin = false; @@ -204,13 +206,15 @@ // Check for END's if (exprchr == MATCH_END) { - if (rsltpos > 0) + if (rsltpos > 0 && map != null) { map.put(Integer.toString(++mcount),new String(rslt, 0, rsltpos)); + } // Don't care about rest of input buffer return (true); } else if (exprchr == MATCH_THEEND) { - if (rsltpos > 0) + if (rsltpos > 0 && map != null ) { map.put (Integer.toString(++mcount),new String(rslt, 0, rsltpos)); + } // Check that we reach buffer's end return (buffpos == buff.length); } @@ -245,7 +249,9 @@ } } - map.put(Integer.toString(++mcount),new String (rslt, 0, rsltpos)); + if ( map != null ) { + map.put(Integer.toString(++mcount),new String (rslt, 0, rsltpos)); + } rsltpos = 0; } } Deleted: /cocoon/trunk/src/java/org/apache/cocoon/matching/helpers/WildcardHelper.java Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/matching/helpers/WildcardHelper.java?view=auto&rev=125928 ============================================================================== Modified: cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf Url: http://svn.apache.org/viewcvs/cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf?view=diff&rev=125929&p1=cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf&r1=125928&p2=cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf&r2=125929 ============================================================================== --- cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf (original) +++ cocoon/trunk/src/webapp/WEB-INF/cocoon.xconf Fri Jan 21 06:06:49 2005 @@ -32,11 +32,11 @@ | Include all configuration files ending with ".xconf" | from the xconf directory. +--> - <include dir="context://WEB-INF/xconf" postfix=".xconf"/> + <include dir="context://WEB-INF/xconf" pattern="*.xconf"/> <!--+ | Include all configuration files ending with ".samplesxconf" | from the xconf directory. +--> - <include dir="context://WEB-INF/xconf" postfix=".samplesxconf"/> + <include dir="context://WEB-INF/xconf" pattern="*.samplesxconf"/> </cocoon> Modified: cocoon/trunk/tools/targets/compile-build.xml Url: http://svn.apache.org/viewcvs/cocoon/trunk/tools/targets/compile-build.xml?view=diff&rev=125929&p1=cocoon/trunk/tools/targets/compile-build.xml&r1=125928&p2=cocoon/trunk/tools/targets/compile-build.xml&r2=125929 ============================================================================== --- cocoon/trunk/tools/targets/compile-build.xml (original) +++ cocoon/trunk/tools/targets/compile-build.xml Fri Jan 21 06:06:49 2005 @@ -48,6 +48,11 @@ <exclude name="**/*.java"/> </fileset> </copy> + <copy todir="${build.dest}"> + <fileset dir="${src.core}"> + <exclude name="**/*.java"/> + </fileset> + </copy> <echo message="Compiling Cocoon Core"/> <javac srcdir="${src.core}"
