Author: bodewig
Date: Mon Nov 17 21:09:22 2008
New Revision: 718486
URL: http://svn.apache.org/viewvc?rev=718486&view=rev
Log:
two more places where Appendable can be used
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/MappedResource.java
Modified: ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java?rev=718486&r1=718485&r2=718486&view=diff
==============================================================================
--- ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java
(original)
+++ ant/core/trunk/src/main/org/apache/tools/ant/taskdefs/SQLExec.java Mon Nov
17 21:09:22 2008
@@ -25,6 +25,7 @@
import org.apache.tools.ant.types.FileSet;
import org.apache.tools.ant.types.Resource;
import org.apache.tools.ant.types.ResourceCollection;
+import org.apache.tools.ant.types.resources.Appendable;
import org.apache.tools.ant.types.resources.FileProvider;
import org.apache.tools.ant.types.resources.FileResource;
import org.apache.tools.ant.types.resources.Union;
@@ -569,16 +570,26 @@
try {
if (output != null) {
log("Opening PrintStream to output Resource " +
output, Project.MSG_VERBOSE);
- OutputStream os;
+ OutputStream os = null;
FileProvider fp =
(FileProvider) output.as(FileProvider.class);
if (fp != null) {
os = new FileOutputStream(fp.getFile(), append);
} else {
- // TODO use Appendable
- os = output.getOutputStream();
if (append) {
- log("Ignoring append=true for non-file
resource " + output, Project.MSG_WARN);
+ Appendable a =
+ (Appendable) output.as(Appendable.class);
+ if (a != null) {
+ os = a.getAppendOutputStream();
+ }
+ }
+ if (os == null) {
+ os = output.getOutputStream();
+ if (append) {
+ log("Ignoring append=true for
non-appendable"
+ + " resource " + output,
+ Project.MSG_WARN);
+ }
}
}
out = new PrintStream(new BufferedOutputStream(os));
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java?rev=718486&r1=718485&r2=718486&view=diff
==============================================================================
---
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java
(original)
+++
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/ContentTransformingResource.java
Mon Nov 17 21:09:22 2008
@@ -252,6 +252,32 @@
}
/**
+ * Suppress FileProvider, re-implement Appendable
+ */
+ public Object as(Class clazz) {
+ if (Appendable.class.isAssignableFrom(clazz)) {
+ final Appendable a =
+ (Appendable) getResource().as(Appendable.class);
+ if (a != null) {
+ return new Appendable() {
+ public OutputStream getAppendOutputStream()
+ throws IOException {
+ OutputStream out = a.getAppendOutputStream();
+ if (out != null) {
+ out = wrapStream(out);
+ }
+ return out;
+ }
+ };
+ }
+ return null;
+ }
+
+ return FileProvider.class.isAssignableFrom(clazz)
+ ? null : getResource().as(clazz);
+ }
+
+ /**
* Is supposed to wrap the stream.
*
* @param in InputStream to wrap, will never be null.
Modified:
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/MappedResource.java
URL:
http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/resources/MappedResource.java?rev=718486&r1=718485&r2=718486&view=diff
==============================================================================
---
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/MappedResource.java
(original)
+++
ant/core/trunk/src/main/org/apache/tools/ant/types/resources/MappedResource.java
Mon Nov 17 21:09:22 2008
@@ -159,6 +159,9 @@
throw new UnsupportedOperationException();
}
+ /**
+ * Suppress FileProvider
+ */
public Object as(Class clazz) {
return FileProvider.class.isAssignableFrom(clazz)
? null : wrapped.as(clazz);