You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ay...@apache.org on 2012/11/28 19:27:48 UTC
svn commit: r1414850 - in /cxf/trunk/api/src:
main/java/org/apache/cxf/io/CachedOutputStream.java
test/java/org/apache/cxf/io/CachedOutputStreamTest.java
Author: ay
Date: Wed Nov 28 18:27:47 2012
New Revision: 1414850
URL: http://svn.apache.org/viewvc?rev=1414850&view=rev
Log:
[CXF-4661] Make CachedOutputStream configurable using the Bus properties
Modified:
cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java
cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java
Modified: cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java?rev=1414850&r1=1414849&r2=1414850&view=diff
==============================================================================
--- cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java (original)
+++ cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java Wed Nov 28 18:27:47 2012
@@ -45,6 +45,8 @@ import javax.crypto.CipherOutputStream;
import javax.crypto.KeyGenerator;
import javax.crypto.spec.IvParameterSpec;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
import org.apache.cxf.common.util.SystemPropertyAction;
import org.apache.cxf.helpers.FileUtils;
import org.apache.cxf.helpers.IOUtils;
@@ -100,6 +102,7 @@ public class CachedOutputStream extends
public CachedOutputStream(PipedInputStream stream) throws IOException {
currentStream = new PipedOutputStream(stream);
inmem = true;
+ readBusProperties();
}
public CachedOutputStream() {
@@ -110,6 +113,30 @@ public class CachedOutputStream extends
this.threshold = threshold;
currentStream = new LoadingByteArrayOutputStream(2048);
inmem = true;
+ readBusProperties();
+ }
+
+ private void readBusProperties() {
+ Bus b = BusFactory.getDefaultBus(false);
+ if (b != null) {
+ String v = getBusProperty(b, "bus.io.CachedOutputStream.Threshold", null);
+ if (v != null && threshold == defaultThreshold) {
+ threshold = Integer.parseInt(v);
+ }
+ v = getBusProperty(b, "bus.io.CachedOutputStream.MaxSize", null);
+ if (v != null) {
+ maxSize = Integer.parseInt(v);
+ }
+ v = getBusProperty(b, "bus.io.CachedOutputStream.CipherTransformation", null);
+ if (v != null) {
+ cipherTransformation = v;
+ }
+ }
+ }
+
+ private static String getBusProperty(Bus b, String key, String dflt) {
+ String v = (String)b.getProperty(key);
+ return v != null ? v : dflt;
}
public void holdTempFile() {
Modified: cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java?rev=1414850&r1=1414849&r2=1414850&view=diff
==============================================================================
--- cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java (original)
+++ cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java Wed Nov 28 18:27:47 2012
@@ -24,6 +24,11 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.easymock.EasyMock;
+import org.easymock.IMocksControl;
+
import org.junit.Assert;
import org.junit.Test;
@@ -114,6 +119,39 @@ public class CachedOutputStreamTest exte
assertFalse("file is not deleted", tmpfile.exists());
}
+ @Test
+ public void testUseBusProps() throws Exception {
+ Bus oldbus = BusFactory.getDefaultBus(false);
+ try {
+ CachedOutputStream cos = new CachedOutputStream();
+ cos.write("Hello World!".getBytes());
+ cos.flush();
+ assertNull("expects no tmp file", cos.getTempFile());
+ cos.close();
+
+ IMocksControl control = EasyMock.createControl();
+
+ Bus b = control.createMock(Bus.class);
+ EasyMock.expect(b.getProperty("bus.io.CachedOutputStream.Threshold")).andReturn("4");
+ EasyMock.expect(b.getProperty("bus.io.CachedOutputStream.MaxSize")).andReturn(null);
+ EasyMock.expect(b.getProperty("bus.io.CachedOutputStream.CipherTransformation")).andReturn(null);
+
+ BusFactory.setDefaultBus(b);
+
+ control.replay();
+
+ cos = new CachedOutputStream();
+ cos.write("Hello World!".getBytes());
+ cos.flush();
+ assertNotNull("expects a tmp file", cos.getTempFile());
+ cos.close();
+
+ control.verify();
+ } finally {
+ BusFactory.setDefaultBus(oldbus);
+ }
+ }
+
private static String readFromStream(InputStream is) throws IOException {
ByteArrayOutputStream buf = new ByteArrayOutputStream();
try {
Re: svn commit: r1414850 - in /cxf/trunk/api/src: main/java/org/apache/cxf/io/CachedOutputStream.java
test/java/org/apache/cxf/io/CachedOutputStreamTest.java
Posted by Aki Yoshida <ay...@apache.org>.
Hi Dan,
thanks. I switched to the right method.
regards, aki
2012/11/28 Daniel Kulp <dk...@apache.org>:
>
> This likely should be BusFactory.getThreadDefaultBus() instead. Lots of situations where the thread default is not the default.
>
> Dan
>
>
>
> On Nov 28, 2012, at 1:27 PM, ay@apache.org wrote:
>
>> Author: ay
>> Date: Wed Nov 28 18:27:47 2012
>> New Revision: 1414850
>>
>> URL: http://svn.apache.org/viewvc?rev=1414850&view=rev
>> Log:
>> [CXF-4661] Make CachedOutputStream configurable using the Bus properties
>>
>> Modified:
>> cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java
>> cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java
>>
>> Modified: cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java
>> URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java?rev=1414850&r1=1414849&r2=1414850&view=diff
>> ==============================================================================
>> --- cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java (original)
>> +++ cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java Wed Nov 28 18:27:47 2012
>> @@ -45,6 +45,8 @@ import javax.crypto.CipherOutputStream;
>> import javax.crypto.KeyGenerator;
>> import javax.crypto.spec.IvParameterSpec;
>>
>> +import org.apache.cxf.Bus;
>> +import org.apache.cxf.BusFactory;
>> import org.apache.cxf.common.util.SystemPropertyAction;
>> import org.apache.cxf.helpers.FileUtils;
>> import org.apache.cxf.helpers.IOUtils;
>> @@ -100,6 +102,7 @@ public class CachedOutputStream extends
>> public CachedOutputStream(PipedInputStream stream) throws IOException {
>> currentStream = new PipedOutputStream(stream);
>> inmem = true;
>> + readBusProperties();
>> }
>>
>> public CachedOutputStream() {
>> @@ -110,6 +113,30 @@ public class CachedOutputStream extends
>> this.threshold = threshold;
>> currentStream = new LoadingByteArrayOutputStream(2048);
>> inmem = true;
>> + readBusProperties();
>> + }
>> +
>> + private void readBusProperties() {
>> + Bus b = BusFactory.getDefaultBus(false);
>> + if (b != null) {
>> + String v = getBusProperty(b, "bus.io.CachedOutputStream.Threshold", null);
>> + if (v != null && threshold == defaultThreshold) {
>> + threshold = Integer.parseInt(v);
>> + }
>> + v = getBusProperty(b, "bus.io.CachedOutputStream.MaxSize", null);
>> + if (v != null) {
>> + maxSize = Integer.parseInt(v);
>> + }
>> + v = getBusProperty(b, "bus.io.CachedOutputStream.CipherTransformation", null);
>> + if (v != null) {
>> + cipherTransformation = v;
>> + }
>> + }
>> + }
>> +
>> + private static String getBusProperty(Bus b, String key, String dflt) {
>> + String v = (String)b.getProperty(key);
>> + return v != null ? v : dflt;
>> }
>>
>> public void holdTempFile() {
>>
>> Modified: cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java
>> URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java?rev=1414850&r1=1414849&r2=1414850&view=diff
>> ==============================================================================
>> --- cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java (original)
>> +++ cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java Wed Nov 28 18:27:47 2012
>> @@ -24,6 +24,11 @@ import java.io.FileInputStream;
>> import java.io.IOException;
>> import java.io.InputStream;
>>
>> +import org.apache.cxf.Bus;
>> +import org.apache.cxf.BusFactory;
>> +import org.easymock.EasyMock;
>> +import org.easymock.IMocksControl;
>> +
>> import org.junit.Assert;
>> import org.junit.Test;
>>
>> @@ -114,6 +119,39 @@ public class CachedOutputStreamTest exte
>> assertFalse("file is not deleted", tmpfile.exists());
>> }
>>
>> + @Test
>> + public void testUseBusProps() throws Exception {
>> + Bus oldbus = BusFactory.getDefaultBus(false);
>> + try {
>> + CachedOutputStream cos = new CachedOutputStream();
>> + cos.write("Hello World!".getBytes());
>> + cos.flush();
>> + assertNull("expects no tmp file", cos.getTempFile());
>> + cos.close();
>> +
>> + IMocksControl control = EasyMock.createControl();
>> +
>> + Bus b = control.createMock(Bus.class);
>> + EasyMock.expect(b.getProperty("bus.io.CachedOutputStream.Threshold")).andReturn("4");
>> + EasyMock.expect(b.getProperty("bus.io.CachedOutputStream.MaxSize")).andReturn(null);
>> + EasyMock.expect(b.getProperty("bus.io.CachedOutputStream.CipherTransformation")).andReturn(null);
>> +
>> + BusFactory.setDefaultBus(b);
>> +
>> + control.replay();
>> +
>> + cos = new CachedOutputStream();
>> + cos.write("Hello World!".getBytes());
>> + cos.flush();
>> + assertNotNull("expects a tmp file", cos.getTempFile());
>> + cos.close();
>> +
>> + control.verify();
>> + } finally {
>> + BusFactory.setDefaultBus(oldbus);
>> + }
>> + }
>> +
>> private static String readFromStream(InputStream is) throws IOException {
>> ByteArrayOutputStream buf = new ByteArrayOutputStream();
>> try {
>>
>>
>
> --
> Daniel Kulp
> dkulp@apache.org - http://dankulp.com/blog
> Talend Community Coder - http://coders.talend.com
>
Re: svn commit: r1414850 - in /cxf/trunk/api/src: main/java/org/apache/cxf/io/CachedOutputStream.java test/java/org/apache/cxf/io/CachedOutputStreamTest.java
Posted by Daniel Kulp <dk...@apache.org>.
This likely should be BusFactory.getThreadDefaultBus() instead. Lots of situations where the thread default is not the default.
Dan
On Nov 28, 2012, at 1:27 PM, ay@apache.org wrote:
> Author: ay
> Date: Wed Nov 28 18:27:47 2012
> New Revision: 1414850
>
> URL: http://svn.apache.org/viewvc?rev=1414850&view=rev
> Log:
> [CXF-4661] Make CachedOutputStream configurable using the Bus properties
>
> Modified:
> cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java
> cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java
>
> Modified: cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java
> URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java?rev=1414850&r1=1414849&r2=1414850&view=diff
> ==============================================================================
> --- cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java (original)
> +++ cxf/trunk/api/src/main/java/org/apache/cxf/io/CachedOutputStream.java Wed Nov 28 18:27:47 2012
> @@ -45,6 +45,8 @@ import javax.crypto.CipherOutputStream;
> import javax.crypto.KeyGenerator;
> import javax.crypto.spec.IvParameterSpec;
>
> +import org.apache.cxf.Bus;
> +import org.apache.cxf.BusFactory;
> import org.apache.cxf.common.util.SystemPropertyAction;
> import org.apache.cxf.helpers.FileUtils;
> import org.apache.cxf.helpers.IOUtils;
> @@ -100,6 +102,7 @@ public class CachedOutputStream extends
> public CachedOutputStream(PipedInputStream stream) throws IOException {
> currentStream = new PipedOutputStream(stream);
> inmem = true;
> + readBusProperties();
> }
>
> public CachedOutputStream() {
> @@ -110,6 +113,30 @@ public class CachedOutputStream extends
> this.threshold = threshold;
> currentStream = new LoadingByteArrayOutputStream(2048);
> inmem = true;
> + readBusProperties();
> + }
> +
> + private void readBusProperties() {
> + Bus b = BusFactory.getDefaultBus(false);
> + if (b != null) {
> + String v = getBusProperty(b, "bus.io.CachedOutputStream.Threshold", null);
> + if (v != null && threshold == defaultThreshold) {
> + threshold = Integer.parseInt(v);
> + }
> + v = getBusProperty(b, "bus.io.CachedOutputStream.MaxSize", null);
> + if (v != null) {
> + maxSize = Integer.parseInt(v);
> + }
> + v = getBusProperty(b, "bus.io.CachedOutputStream.CipherTransformation", null);
> + if (v != null) {
> + cipherTransformation = v;
> + }
> + }
> + }
> +
> + private static String getBusProperty(Bus b, String key, String dflt) {
> + String v = (String)b.getProperty(key);
> + return v != null ? v : dflt;
> }
>
> public void holdTempFile() {
>
> Modified: cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java
> URL: http://svn.apache.org/viewvc/cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java?rev=1414850&r1=1414849&r2=1414850&view=diff
> ==============================================================================
> --- cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java (original)
> +++ cxf/trunk/api/src/test/java/org/apache/cxf/io/CachedOutputStreamTest.java Wed Nov 28 18:27:47 2012
> @@ -24,6 +24,11 @@ import java.io.FileInputStream;
> import java.io.IOException;
> import java.io.InputStream;
>
> +import org.apache.cxf.Bus;
> +import org.apache.cxf.BusFactory;
> +import org.easymock.EasyMock;
> +import org.easymock.IMocksControl;
> +
> import org.junit.Assert;
> import org.junit.Test;
>
> @@ -114,6 +119,39 @@ public class CachedOutputStreamTest exte
> assertFalse("file is not deleted", tmpfile.exists());
> }
>
> + @Test
> + public void testUseBusProps() throws Exception {
> + Bus oldbus = BusFactory.getDefaultBus(false);
> + try {
> + CachedOutputStream cos = new CachedOutputStream();
> + cos.write("Hello World!".getBytes());
> + cos.flush();
> + assertNull("expects no tmp file", cos.getTempFile());
> + cos.close();
> +
> + IMocksControl control = EasyMock.createControl();
> +
> + Bus b = control.createMock(Bus.class);
> + EasyMock.expect(b.getProperty("bus.io.CachedOutputStream.Threshold")).andReturn("4");
> + EasyMock.expect(b.getProperty("bus.io.CachedOutputStream.MaxSize")).andReturn(null);
> + EasyMock.expect(b.getProperty("bus.io.CachedOutputStream.CipherTransformation")).andReturn(null);
> +
> + BusFactory.setDefaultBus(b);
> +
> + control.replay();
> +
> + cos = new CachedOutputStream();
> + cos.write("Hello World!".getBytes());
> + cos.flush();
> + assertNotNull("expects a tmp file", cos.getTempFile());
> + cos.close();
> +
> + control.verify();
> + } finally {
> + BusFactory.setDefaultBus(oldbus);
> + }
> + }
> +
> private static String readFromStream(InputStream is) throws IOException {
> ByteArrayOutputStream buf = new ByteArrayOutputStream();
> try {
>
>
--
Daniel Kulp
dkulp@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com