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, a...@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 > dk...@apache.org - http://dankulp.com/blog > Talend Community Coder - http://coders.talend.com >