From e22b34c5772d1052e1be2fdb97ebd3ed79f71b3b Mon Sep 17 00:00:00 2001 From: Magesh Umasankar Date: Sun, 24 Feb 2002 01:57:33 +0000 Subject: [PATCH] Use classpath of AntFilterReader if available. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271522 13f79535-47bb-0310-9956-ffa450edef68 --- .../tools/ant/util/ChainReaderHelper.java | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/proposal/sandbox/filterreaders/src/main/org/apache/tools/ant/util/ChainReaderHelper.java b/proposal/sandbox/filterreaders/src/main/org/apache/tools/ant/util/ChainReaderHelper.java index 3b2764317..b27bf1022 100644 --- a/proposal/sandbox/filterreaders/src/main/org/apache/tools/ant/util/ChainReaderHelper.java +++ b/proposal/sandbox/filterreaders/src/main/org/apache/tools/ant/util/ChainReaderHelper.java @@ -53,9 +53,12 @@ */ package org.apache.tools.ant.util; +import org.apache.tools.ant.AntClassLoader; import org.apache.tools.ant.BuildException; +import org.apache.tools.ant.Project; import org.apache.tools.ant.types.AntFilterReader; import org.apache.tools.ant.types.FilterReaderSet; +import org.apache.tools.ant.types.Path; import org.apache.tools.ant.types.Parameter; import org.apache.tools.ant.types.Parameterizable; @@ -143,10 +146,25 @@ public final class ChainReaderHelper { final AntFilterReader filter = (AntFilterReader) finalFilters.elementAt(i); final String className = filter.getClassName(); + final Path classpath = filter.getClasspath(); + final Project project = filter.getProject(); if (className != null) { try { - final Class clazz = Class.forName(className); + Class clazz = null; + if (classpath == null) { + clazz = Class.forName(className); + } else { + System.out.println(project + " " + classpath); + AntClassLoader al = new AntClassLoader(project, + classpath); + clazz = al.loadClass(className); + AntClassLoader.initializeClass(clazz); + } if (clazz != null) { + if (!FilterReader.class.isAssignableFrom(clazz)) { + throw new BuildException(className + + " does not extend java.io.FilterReader"); + } final Constructor[] constructors = clazz.getConstructors(); final Reader[] rdr = {instream};