dims        01/10/02 12:26:49

  Modified:    src/org/apache/cocoon/servlet Tag: cocoon_20_branch
                        CocoonServlet.java
               src/org/apache/cocoon/util Tag: cocoon_20_branch
                        StringUtils.java
  Log:
  Allow tokens in properties.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.13.2.25 +11 -14    xml-cocoon2/src/org/apache/cocoon/servlet/CocoonServlet.java
  
  Index: CocoonServlet.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/servlet/CocoonServlet.java,v
  retrieving revision 1.13.2.24
  retrieving revision 1.13.2.25
  diff -u -r1.13.2.24 -r1.13.2.25
  --- CocoonServlet.java        2001/10/01 18:27:11     1.13.2.24
  +++ CocoonServlet.java        2001/10/02 19:26:49     1.13.2.25
  @@ -30,6 +30,7 @@
   import org.apache.cocoon.util.IOUtils;
   import org.apache.cocoon.util.log.CocoonLogFormatter;
   import org.apache.cocoon.util.log.XMLCocoonLogFormatter;
  +import org.apache.cocoon.util.StringUtils;
   import org.apache.log.ContextMap;
   import org.apache.log.Hierarchy;
   import org.apache.log.LogTarget;
  @@ -67,7 +68,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Berin Loritsch</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Carsten Ziegeler</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Leo Sutic</a>
  - * @version CVS $Revision: 1.13.2.24 $ $Date: 2001/10/01 18:27:11 $
  + * @version CVS $Revision: 1.13.2.25 $ $Date: 2001/10/02 19:26:49 $
    */
   
   public class CocoonServlet extends HttpServlet {
  @@ -328,20 +329,14 @@
                        }
                    } else {
                        if(s.indexOf("${")!=-1) {
  -                         int startToken = s.indexOf("${");
  -                         int endToken = s.indexOf("}",startToken);
  -                         String token = s.substring(startToken+2,endToken);
  -                         StringBuffer value = new StringBuffer();
  -                         value.append(s.substring(0,startToken));
  -                         value.append(System.getProperty(token));
  -                         value.append(s.substring(endToken+1));
  -                         sb.append(value.toString());
  -                         log.debug ("extraClassPath is not absolute replacing using 
token: [" + token + "] : " + value.toString());
  +                         String path = StringUtils.replaceToken(s);
  +                         sb.append(path);
  +                         log.debug ("extraClassPath is not absolute replacing using 
token: [" + s + "] : " + path);
                            if (this.addClassDirs) {
                               try {
  -                                classLoader.addDirectory(value.toString());
  +                                classLoader.addDirectory(path);
                               } catch (Exception e) {
  -                                log.debug("Could not add " + value.toString());
  +                                log.debug("Could not add " + path);
                               }
                            }
                        } else {
  @@ -506,12 +501,14 @@
                   if(property.indexOf('=')==-1)
                       continue;
                   try {
  -                    
  +
                       String key = property.substring(0,property.indexOf('='));
                       String value = property.substring(property.indexOf('=')+1);
  +                    if(value.indexOf("${")!=-1)
  +                         value = StringUtils.replaceToken(value);
                       log.debug("setting " + key + "=" + value);
                       systemProps.setProperty(key,value);
  -                } catch (Exception e) {                    
  +                } catch (Exception e) {
                       log.warn("Could not set property: " + property, e);
                       // Do not throw an exception, because it is not a fatal error.
                   }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.1.1.2.2 +15 -1     xml-cocoon2/src/org/apache/cocoon/util/StringUtils.java
  
  Index: StringUtils.java
  ===================================================================
  RCS file: /home/cvs/xml-cocoon2/src/org/apache/cocoon/util/StringUtils.java,v
  retrieving revision 1.1.1.1.2.1
  retrieving revision 1.1.1.1.2.2
  diff -u -r1.1.1.1.2.1 -r1.1.1.1.2.2
  --- StringUtils.java  2001/08/20 14:07:35     1.1.1.1.2.1
  +++ StringUtils.java  2001/10/02 19:26:49     1.1.1.1.2.2
  @@ -14,7 +14,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Ricardo Rocha</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stefano Mazzocchi</a>
  - * @version CVS $Revision: 1.1.1.1.2.1 $ $Date: 2001/08/20 14:07:35 $
  + * @version CVS $Revision: 1.1.1.1.2.2 $ $Date: 2001/10/02 19:26:49 $
    */
   public class StringUtils {
     
  @@ -92,5 +92,19 @@
               if (ca[i] != cb[i]) break;
           }
           return i;
  +    }
  +
  +    /**
  +     * Replaces tokens in input with Value present in System.getProperty
  +     */
  +    public static String replaceToken(String s) {
  +        int startToken = s.indexOf("${");
  +        int endToken = s.indexOf("}",startToken);
  +        String token = s.substring(startToken+2,endToken);
  +        StringBuffer value = new StringBuffer();
  +        value.append(s.substring(0,startToken));
  +        value.append(System.getProperty(token));
  +        value.append(s.substring(endToken+1));
  +        return value.toString();
       }
   }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to