Return-Path: Delivered-To: apmail-camel-commits-archive@www.apache.org Received: (qmail 21810 invoked from network); 12 Mar 2009 03:50:35 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 12 Mar 2009 03:50:35 -0000 Received: (qmail 55498 invoked by uid 500); 12 Mar 2009 03:50:35 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 55474 invoked by uid 500); 12 Mar 2009 03:50:35 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 55465 invoked by uid 99); 12 Mar 2009 03:50:35 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Mar 2009 20:50:35 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 12 Mar 2009 03:50:34 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id E4C4D23888F1; Thu, 12 Mar 2009 03:50:13 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r752763 - in /camel/branches/camel-1.x: ./ camel-core/src/main/java/org/apache/camel/ camel-core/src/main/java/org/apache/camel/converter/stream/ camel-core/src/main/java/org/apache/camel/impl/ camel-core/src/main/java/org/apache/camel/mode... Date: Thu, 12 Mar 2009 03:50:13 -0000 To: commits@camel.apache.org From: ningjiang@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090312035013.E4C4D23888F1@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ningjiang Date: Thu Mar 12 03:50:12 2009 New Revision: 752763 URL: http://svn.apache.org/viewvc?rev=752763&view=rev Log: Merged revisions 750396 via svnmerge from https://svn.apache.org/repos/asf/camel/trunk ........ r750396 | ningjiang | 2009-03-05 17:16:39 +0800 (Thu, 05 Mar 2009) | 1 line CAMEL-1425 Added the properties to the camel context ........ Added: camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/config/PropertiesType.java - copied unchanged from r750396, camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/PropertiesType.java camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/config/PropertyType.java - copied unchanged from r750396, camel/trunk/camel-core/src/main/java/org/apache/camel/model/config/PropertyType.java Modified: camel/branches/camel-1.x/ (props changed) camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/CamelContext.java camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java camel/branches/camel-1.x/camel-core/src/main/resources/org/apache/camel/model/config/jaxb.index camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java camel/branches/camel-1.x/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java camel/branches/camel-1.x/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextAwareTest.java camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/camelContextAwareBean.xml Propchange: camel/branches/camel-1.x/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu Mar 12 03:50:12 2009 @@ -1 +1 @@ -/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750761,750796,752068,752117 +/camel/trunk:736980,739733,739904,740251,740295,740306,740596,740663,741848,742231,742705,742739,742854,742856,742898,742906,743613,743762,743773,743920,743959-743960,744123,745105,745367,745541,745751,745826,745978,746269,746872,746895,746962,747258,747678-747704,748392,748436,748821,749563-749564,749574,749628-749629,749936,749956,750017,750334,750396,750761,750796,752068,752117 Propchange: camel/branches/camel-1.x/ ------------------------------------------------------------------------------ Binary property 'svnmerge-integrated' - no diff available. Modified: camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/CamelContext.java URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/CamelContext.java?rev=752763&r1=752762&r2=752763&view=diff ============================================================================== --- camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/CamelContext.java (original) +++ camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/CamelContext.java Thu Mar 12 03:50:12 2009 @@ -335,6 +335,16 @@ Map getDataFormats(); /** + * Sets the properties that can be referenced in the camel context + */ + void setProperties(Map properties); + + /** + * Gets the properties that can be referenced in the camel context + */ + Map getProperties(); + + /** * Create a FactoryFinder which will be used for the loading the factory class from META-INF * @return the factory finder */ Modified: camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java?rev=752763&r1=752762&r2=752763&view=diff ============================================================================== --- camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java (original) +++ camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/stream/CachedOutputStream.java Thu Mar 12 03:50:12 2009 @@ -28,40 +28,20 @@ import java.io.OutputStream; import java.util.ArrayList; import java.util.List; +import java.util.Map; import org.apache.camel.converter.IOConverter; import org.apache.camel.util.FileUtil; import org.apache.camel.util.IOHelper; public class CachedOutputStream extends OutputStream { - private static final File DEFAULT_TEMP_DIR; - private static final int DEFAULT_THRESHOLD; - static { - String s = System.getProperty("org.apache.camel.util.CachedOutputStream.Threshold", - "-1"); - int i = Integer.parseInt(s); - if (i <= 0) { - i = 64 * 1024; - } - DEFAULT_THRESHOLD = i; - - s = System.getProperty("org.apache.camel.util.CachedOutputStream.OutputDirectory"); - if (s != null) { - File f = new File(s); - if (f.exists() && f.isDirectory()) { - DEFAULT_TEMP_DIR = f; - } else { - DEFAULT_TEMP_DIR = null; - } - } else { - DEFAULT_TEMP_DIR = null; - } - } - + public static final String THRESHOLD = "CamelCachedOutputStreamThreshold"; + public static final String TEMP_DIR = "CamelCachedOutputStreamOutputDirectory"; + protected boolean outputLocked; protected OutputStream currentStream; - private long threshold = DEFAULT_THRESHOLD; + private long threshold = 64 * 1024; private int totalLength; @@ -69,7 +49,7 @@ private File tempFile; - private File outputDir = DEFAULT_TEMP_DIR; + private File outputDir; private List streamList = new ArrayList(); @@ -80,9 +60,30 @@ } public CachedOutputStream(long threshold) { - this.threshold = threshold; - currentStream = new ByteArrayOutputStream(2048); - inmem = true; + this(); + this.threshold = threshold; + } + + public CachedOutputStream(Map properties) { + this(); + String value = properties.get(THRESHOLD); + if (value != null) { + int i = Integer.parseInt(value); + if (i > 0) { + threshold = i; + } + } + value = properties.get(TEMP_DIR); + if (value != null) { + File f = new File(value); + if (f.exists() && f.isDirectory()) { + outputDir = f; + } else { + outputDir = null; + } + } else { + outputDir = null; + } } /** Modified: camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java?rev=752763&r1=752762&r2=752763&view=diff ============================================================================== --- camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java (original) +++ camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/converter/stream/StreamCacheConverter.java Thu Mar 12 03:50:12 2009 @@ -69,7 +69,8 @@ @Converter public StreamCache convertToStreamCache(InputStream stream, Exchange exchange) throws IOException { - CachedOutputStream cos = new CachedOutputStream(); + // set up CachedOutputStream with the properties + CachedOutputStream cos = new CachedOutputStream(exchange.getContext().getProperties()); IOHelper.copyAndCloseInput(stream, cos); return cos.getStreamCache(); } Modified: camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=752763&r1=752762&r2=752763&view=diff ============================================================================== --- camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java (original) +++ camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java Thu Mar 12 03:50:12 2009 @@ -97,6 +97,7 @@ private Long delay; private ErrorHandlerBuilder errorHandlerBuilder; private Map dataFormats = new HashMap(); + private Map properties = new HashMap(); private Class factoryFinderClass = FactoryFinder.class; public DefaultCamelContext() { @@ -784,6 +785,14 @@ public void setFactoryFinderClass(Class finderClass) { factoryFinderClass = finderClass; } + + public Map getProperties() { + return properties; + } + + public void setProperties(Map properties) { + this.properties = properties; + } public FactoryFinder createFactoryFinder() { try { @@ -818,6 +827,5 @@ } } } - - + } Modified: camel/branches/camel-1.x/camel-core/src/main/resources/org/apache/camel/model/config/jaxb.index URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/resources/org/apache/camel/model/config/jaxb.index?rev=752763&r1=752762&r2=752763&view=diff ============================================================================== --- camel/branches/camel-1.x/camel-core/src/main/resources/org/apache/camel/model/config/jaxb.index (original) +++ camel/branches/camel-1.x/camel-core/src/main/resources/org/apache/camel/model/config/jaxb.index Thu Mar 12 03:50:12 2009 @@ -14,5 +14,7 @@ ## See the License for the specific language governing permissions and ## limitations under the License. ## ------------------------------------------------------------------------ +PropertyType +PropertiesType StreamResequencerConfig BatchResequencerConfig Modified: camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java?rev=752763&r1=752762&r2=752763&view=diff ============================================================================== --- camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java (original) +++ camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/converter/stream/StreamCacheConverterTest.java Thu Mar 12 03:50:12 2009 @@ -19,6 +19,8 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.util.HashMap; +import java.util.Map; import javax.xml.transform.Source; import javax.xml.transform.TransformerException; @@ -63,6 +65,24 @@ assertNotNull(IOConverter.toString(cache)); assertNotNull(IOConverter.toString(cache)); } + + public void testConvertToStreamCacheInpuStreamWithFileCache() throws Exception { + // set up the properties + Map properties = new HashMap(); + properties.put(CachedOutputStream.THRESHOLD, "1"); + exchange.getContext().setProperties(properties); + InputStream is = getTestFileStream(); + InputStream cache = (InputStream)converter.convertToStreamCache(is, exchange); + assertNotNull(IOConverter.toString(cache)); + try { + // since the stream is closed you delete the temp file + // reset will not work any more + cache.reset(); + fail("except the exception here"); + } catch (Exception exception) { + // do nothing + } + } protected InputStream getTestFileStream() { Modified: camel/branches/camel-1.x/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java?rev=752763&r1=752762&r2=752763&view=diff ============================================================================== --- camel/branches/camel-1.x/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java (original) +++ camel/branches/camel-1.x/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java Thu Mar 12 03:50:12 2009 @@ -42,6 +42,7 @@ import org.apache.camel.model.RouteBuilderRef; import org.apache.camel.model.RouteContainer; import org.apache.camel.model.RouteType; +import org.apache.camel.model.config.PropertiesType; import org.apache.camel.model.dataformat.DataFormatsType; import org.apache.camel.processor.interceptor.Debugger; import org.apache.camel.processor.interceptor.Delayer; @@ -91,16 +92,18 @@ private String errorHandlerRef; @XmlAttribute(required = false) private Boolean shouldStartContext = Boolean.TRUE; + @XmlElement(name = "properties", required = false) + private PropertiesType properties; @XmlElement(name = "package", required = false) private String[] packages = {}; @XmlElement(name = "jmxAgent", type = CamelJMXAgentType.class, required = false) - private CamelJMXAgentType camelJMXAgent; + private CamelJMXAgentType camelJMXAgent; @XmlElements({ @XmlElement(name = "beanPostProcessor", type = CamelBeanPostProcessor.class, required = false), @XmlElement(name = "template", type = CamelTemplateFactoryBean.class, required = false), @XmlElement(name = "proxy", type = CamelProxyFactoryType.class, required = false), @XmlElement(name = "export", type = CamelServiceExporterType.class, required = false)}) - private List beans; + private List beans; @XmlElement(name = "routeBuilderRef", required = false) private List builderRefs = new ArrayList(); @XmlElement(name = "endpoint", required = false) @@ -110,7 +113,7 @@ @XmlElement(name = "intercept", required = false) private List intercepts = new ArrayList(); @XmlElement(name = "route", required = false) - private List routes = new ArrayList(); + private List routes = new ArrayList(); @XmlTransient private SpringCamelContext context; @XmlTransient @@ -151,7 +154,9 @@ public void afterPropertiesSet() throws Exception { // TODO there should be a neater way to do this! - + if (properties != null) { + getContext().setProperties(properties.asMap()); + } Debugger debugger = getBeanForType(Debugger.class); if (debugger != null) { getContext().addInterceptStrategy(debugger); @@ -370,6 +375,14 @@ public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } + + public PropertiesType getProperties() { + return properties; + } + + public void setProperties(PropertiesType properties) { + this.properties = properties; + } public String[] getPackages() { return packages; Modified: camel/branches/camel-1.x/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java?rev=752763&r1=752762&r2=752763&view=diff ============================================================================== --- camel/branches/camel-1.x/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java (original) +++ camel/branches/camel-1.x/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java Thu Mar 12 03:50:12 2009 @@ -31,6 +31,7 @@ import org.apache.camel.ExchangePattern; import org.apache.camel.builder.xml.Namespaces; +import org.apache.camel.model.config.PropertiesType; import org.apache.camel.model.dataformat.ArtixDSDataFormat; import org.apache.camel.model.dataformat.JaxbDataFormat; import org.apache.camel.model.dataformat.SerializationDataFormat; @@ -174,7 +175,7 @@ classes.add(org.apache.camel.spring.CamelContextFactoryBean.class); classes.add(ExchangePattern.class); classes.add(org.apache.camel.model.RouteType.class); - classes.add(org.apache.camel.model.config.StreamResequencerConfig.class); + classes.add(org.apache.camel.model.config.StreamResequencerConfig.class); classes.add(org.apache.camel.model.dataformat.DataFormatType.class); classes.add(org.apache.camel.model.language.ExpressionType.class); classes.add(org.apache.camel.model.loadbalancer.LoadBalancerType.class); @@ -208,6 +209,7 @@ builder.addPropertyValue("intercepts", factoryBean.getIntercepts()); builder.addPropertyValue("dataFormats", factoryBean.getDataFormats()); builder.addPropertyValue("builderRefs", factoryBean.getBuilderRefs()); + builder.addPropertyValue("properties", factoryBean.getProperties()); if (factoryBean.getPackages().length > 0) { builder.addPropertyValue("packages", factoryBean.getPackages()); Modified: camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextAwareTest.java URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextAwareTest.java?rev=752763&r1=752762&r2=752763&view=diff ============================================================================== --- camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextAwareTest.java (original) +++ camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/CamelContextAwareTest.java Thu Mar 12 03:50:12 2009 @@ -16,6 +16,8 @@ */ package org.apache.camel.spring; +import java.util.Map; + import org.springframework.context.support.AbstractXmlApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -27,6 +29,10 @@ public void testInjectionPoints() throws Exception { assertNotNull("No CamelContext injected!", bean.getCamelContext()); + Map properties = bean.getCamelContext().getProperties(); + assertNotNull("the properties should not been null", properties); + assertEquals("No properties injected", properties.size(), 1); + assertEquals("Should get the value of org.apache.camel.test", properties.get("org.apache.camel.test"), "this is a test"); } @Override Modified: camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/camelContextAwareBean.xml URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/camelContextAwareBean.xml?rev=752763&r1=752762&r2=752763&view=diff ============================================================================== --- camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/camelContextAwareBean.xml (original) +++ camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/camelContextAwareBean.xml Thu Mar 12 03:50:12 2009 @@ -23,12 +23,9 @@ "> - + + +