You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Daniel Kulp <dk...@apache.org> on 2012/11/28 20:34:23 UTC
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
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 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
>