Author: davsclaus Date: Mon Mar 2 05:30:35 2009 New Revision: 749193 URL: http://svn.apache.org/viewvc?rev=749193&view=rev Log: CAMEL-588: Package tangle fixes. Tokenizer in spring renamed to Tokenize. And fixed a CamelCase.
Added: camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/ camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java (contents, props changed) - copied, changed from r748781, camel/trunk/camel-core/src/main/java/org/apache/camel/language/header/HeaderLanguage.java camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExchangeFormatter.java (contents, props changed) - copied, changed from r748781, camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/ExchangeFormatter.java Removed: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/ExchangeFormatter.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchangeFormatter.java camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatType.java camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/TokenizerExpression.java camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Logger.java camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java camel/trunk/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java camel/trunk/camel-core/src/test/java/org/apache/camel/processor/Camel715ThreadProcessorTest.java camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/sortExpressionTest.xml camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/splitterTokenizerTest.xml Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/Exchange.java Mon Mar 2 05:30:35 2009 @@ -52,6 +52,8 @@ String LOOP_INDEX = "CamelLoopIndex"; String LOOP_SIZE = "CamelLoopSize"; + String PROCESSED_SYNC = "CamelProcessedSync"; + String REDELIVERED = "CamelRedelivered"; String REDELIVERY_COUNTER = "CamelRedeliveryCounter"; Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/log/LogFormatter.java Mon Mar 2 05:30:35 2009 @@ -16,13 +16,11 @@ */ package org.apache.camel.component.log; -import java.io.InputStream; - import org.apache.camel.Exchange; import org.apache.camel.Message; import org.apache.camel.NoTypeConversionAvailableException; import org.apache.camel.converter.stream.StreamCache; -import org.apache.camel.processor.interceptor.ExchangeFormatter; +import org.apache.camel.spi.ExchangeFormatter; import org.apache.camel.util.ObjectHelper; /** Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchangeFormatter.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchangeFormatter.java?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchangeFormatter.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultExchangeFormatter.java Mon Mar 2 05:30:35 2009 @@ -17,7 +17,7 @@ package org.apache.camel.impl; import org.apache.camel.Exchange; -import org.apache.camel.processor.interceptor.ExchangeFormatter; +import org.apache.camel.spi.ExchangeFormatter; /** * A default {...@link ExchangeFormatter} which just uses the {...@link org.apache.camel.Exchange} <tt>toString()</tt> method @@ -32,6 +32,6 @@ } public Object format(Exchange exchange) { - return exchange; + return exchange.toString(); } } Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java Mon Mar 2 05:30:35 2009 @@ -112,12 +112,12 @@ } public static boolean isProcessedSync(Exchange exchange) { - Boolean rc = exchange.getProperty(ProducerCache.class.getName() + ".SYNC", Boolean.class); + Boolean rc = exchange.getProperty(Exchange.PROCESSED_SYNC, Boolean.class); return rc == null ? false : rc; } - public static void setProcessedSync(Exchange exchange, boolean b) { - exchange.setProperty(ProducerCache.class.getName() + ".SYNC", b ? Boolean.TRUE : Boolean.FALSE); + public static void setProcessedSync(Exchange exchange, boolean sync) { + exchange.setProperty(Exchange.PROCESSED_SYNC, sync ? Boolean.TRUE : Boolean.FALSE); } /** Copied: camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java (from r748781, camel/trunk/camel-core/src/main/java/org/apache/camel/language/header/HeaderLanguage.java) URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java?p2=camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java&p1=camel/trunk/camel-core/src/main/java/org/apache/camel/language/header/HeaderLanguage.java&r1=748781&r2=749193&rev=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/language/header/HeaderLanguage.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java Mon Mar 2 05:30:35 2009 @@ -14,28 +14,92 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.language.header; +package org.apache.camel.language.tokenizer; import org.apache.camel.Expression; import org.apache.camel.Predicate; import org.apache.camel.builder.ExpressionBuilder; import org.apache.camel.builder.PredicateBuilder; import org.apache.camel.spi.Language; +import org.apache.camel.util.ObjectHelper; /** - * A language for header expressions. + * A language for tokenizer expressions. */ -public class HeaderLanguage implements Language { +public class TokenizeLanguage implements Language { - public static Expression header(String headerName) { - return ExpressionBuilder.headerExpression(headerName); + private String token; + private String headerName; + private boolean regex; + + public static Expression tokenize(String token) { + return tokenize(token, false); + } + + public static Expression tokenize(String token, boolean regex) { + TokenizeLanguage langugage = new TokenizeLanguage(); + langugage.setToken(token); + langugage.setRegex(regex); + return langugage.createExpression(null); + } + + public static Expression tokenize(String headerName, String token) { + return tokenize(headerName, token, false); + } + + public static Expression tokenize(String headerName, String token, boolean regex) { + TokenizeLanguage langugage = new TokenizeLanguage(); + langugage.setHeaderName(headerName); + langugage.setToken(token); + langugage.setRegex(regex); + return langugage.createExpression(null); } public Predicate createPredicate(String expression) { return PredicateBuilder.toPredicate(createExpression(expression)); } + /** + * Creates a tokenize expression. + */ + public Expression createExpression() { + ObjectHelper.notNull(token, "token"); + Expression exp = headerName == null ? ExpressionBuilder.bodyExpression() : ExpressionBuilder.headerExpression(headerName); + if (regex) { + return ExpressionBuilder.regexTokenizeExpression(exp, token); + } else { + return ExpressionBuilder.tokenizeExpression(exp, token); + } + } + public Expression createExpression(String expression) { - return HeaderLanguage.header(expression); + if (ObjectHelper.isNotEmpty(expression)) { + this.token = expression; + } + return createExpression(); + } + + public String getToken() { + return token; + } + + public void setToken(String token) { + this.token = token; + } + + public String getHeaderName() { + return headerName; + } + + public void setHeaderName(String headerName) { + this.headerName = headerName; + } + + public boolean isRegex() { + return regex; + } + + public void setRegex(boolean regex) { + this.regex = regex; } -} +} \ No newline at end of file Propchange: camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: camel/trunk/camel-core/src/main/java/org/apache/camel/language/tokenizer/TokenizeLanguage.java ------------------------------------------------------------------------------ svn:keywords = Rev Date Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatType.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatType.java?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatType.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/dataformat/DataFormatType.java Mon Mar 2 05:30:35 2009 @@ -16,15 +16,11 @@ */ package org.apache.camel.model.dataformat; -import java.io.InputStream; -import java.io.OutputStream; - import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlTransient; import javax.xml.bind.annotation.XmlType; -import org.apache.camel.Exchange; import org.apache.camel.model.IdentifiedType; import org.apache.camel.spi.DataFormat; import org.apache.camel.spi.RouteContext; @@ -39,7 +35,7 @@ */ @XmlType(name = "dataFormatType") @XmlAccessorType(XmlAccessType.FIELD) -public class DataFormatType extends IdentifiedType implements DataFormat { +public class DataFormatType extends IdentifiedType { @XmlTransient private DataFormat dataFormat; @XmlTransient @@ -56,33 +52,46 @@ this.dataFormatTypeName = dataFormatTypeName; } + /** + * Factory method to create the data format + * @param routeContext route context + * @param type the data format type + * @param ref reference to lookup for a data format + * @return the data format or null if not possible to create + */ public static DataFormat getDataFormat(RouteContext routeContext, DataFormatType type, String ref) { if (type == null) { notNull(ref, "ref or dataFormatType"); - DataFormat dataFormat = routeContext.lookup(ref, DataFormat.class); - + + DataFormat dataFormat = lookup(routeContext, ref, DataFormat.class); if (dataFormat == null) { - dataFormat = routeContext.getDataFormat(ref); + // lookup type and create the data format from it + type = lookup(routeContext, ref, DataFormatType.class); + if (type == null) { + type = routeContext.getDataFormat(ref); + } + if (type != null) { + dataFormat = type.createDataFormat(routeContext); + } } - - if (dataFormat instanceof DataFormatType) { - type = (DataFormatType)dataFormat; - } else { - return dataFormat; - } - } - return type.getDataFormat(routeContext); - } + if (dataFormat == null) { + throw new IllegalArgumentException("Cannot find data format in registry with ref: " + ref); + } - public void marshal(Exchange exchange, Object graph, OutputStream stream) throws Exception { - ObjectHelper.notNull(dataFormat, "dataFormat"); - dataFormat.marshal(exchange, graph, stream); + return dataFormat; + } else { + return type.getDataFormat(routeContext); + } } - public Object unmarshal(Exchange exchange, InputStream stream) throws Exception { - ObjectHelper.notNull(dataFormat, "dataFormat"); - return dataFormat.unmarshal(exchange, stream); + private static <T> T lookup(RouteContext routeContext, String ref, Class<T> type) { + try { + return routeContext.lookup(ref, type); + } catch (Exception e) { + // need to ignore not same type and return it as null + return null; + } } public DataFormat getDataFormat(RouteContext routeContext) { @@ -122,10 +131,9 @@ try { IntrospectionSupport.setProperty(bean, name, value); } catch (Exception e) { - throw new IllegalArgumentException("Failed to set property " + name + " on " + bean - + ". Reason: " + e, e); + throw new IllegalArgumentException("Failed to set property: " + name + " on: " + bean + ". Reason: " + e, e); } } - } + Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/TokenizerExpression.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/TokenizerExpression.java?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/TokenizerExpression.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/language/TokenizerExpression.java Mon Mar 2 05:30:35 2009 @@ -22,20 +22,15 @@ import javax.xml.bind.annotation.XmlRootElement; import org.apache.camel.Expression; -import org.apache.camel.Predicate; +import org.apache.camel.language.tokenizer.TokenizeLanguage; import org.apache.camel.spi.RouteContext; -import static org.apache.camel.builder.Builder.body; -import static org.apache.camel.builder.Builder.header; -import static org.apache.camel.builder.ExpressionBuilder.regexTokenizeExpression; -import static org.apache.camel.builder.ExpressionBuilder.tokenizeExpression; -import static org.apache.camel.builder.PredicateBuilder.toPredicate; /** * For expressions and predicates using a body or header tokenzier * * @version $Revision$ */ -...@xmlrootelement(name = "tokenizer") +...@xmlrootelement(name = "tokenize") @XmlAccessorType(XmlAccessType.FIELD) public class TokenizerExpression extends ExpressionType { @XmlAttribute(required = true) @@ -48,6 +43,11 @@ public TokenizerExpression() { } + @Override + public String getLanguage() { + return "tokenize"; + } + public String getToken() { return token; } @@ -74,17 +74,13 @@ @Override public Expression createExpression(RouteContext routeContext) { - Expression exp = headerName == null ? body() : header(headerName); - if (regex != null && regex) { - return regexTokenizeExpression(exp, token); - } else { - return tokenizeExpression(exp, token); + TokenizeLanguage language = new TokenizeLanguage(); + language.setToken(token); + language.setHeaderName(headerName); + if (regex != null) { + language.setRegex(regex); } - } - - @Override - public Predicate createPredicate(RouteContext routeContext) { - return toPredicate(createExpression(routeContext)); + return language.createExpression(); } @Override Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Logger.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Logger.java?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Logger.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/Logger.java Mon Mar 2 05:30:35 2009 @@ -20,7 +20,7 @@ import org.apache.camel.Processor; import org.apache.camel.impl.DefaultExchangeFormatter; import org.apache.camel.model.LoggingLevel; -import org.apache.camel.processor.interceptor.ExchangeFormatter; +import org.apache.camel.spi.ExchangeFormatter; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/MarshalProcessor.java Mon Mar 2 05:30:35 2009 @@ -22,6 +22,7 @@ import org.apache.camel.Message; import org.apache.camel.Processor; import org.apache.camel.spi.DataFormat; +import org.apache.camel.util.ObjectHelper; /** * Marshals the body of the incoming message using the given @@ -37,6 +38,8 @@ } public void process(Exchange exchange) throws Exception { + ObjectHelper.notNull(dataFormat, "dataFormat"); + ByteArrayOutputStream buffer = new ByteArrayOutputStream(); Message in = exchange.getIn(); Object body = in.getBody(); Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/UnmarshalProcessor.java Mon Mar 2 05:30:35 2009 @@ -23,6 +23,7 @@ import org.apache.camel.Processor; import org.apache.camel.spi.DataFormat; import org.apache.camel.util.ExchangeHelper; +import org.apache.camel.util.ObjectHelper; /** * Unmarshals the body of the incoming message using the given @@ -38,6 +39,8 @@ } public void process(Exchange exchange) throws Exception { + ObjectHelper.notNull(dataFormat, "dataFormat"); + InputStream stream = ExchangeHelper.getMandatoryInBody(exchange, InputStream.class); try { // lets setup the out message before we invoke the dataFormat Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java Mon Mar 2 05:30:35 2009 @@ -28,6 +28,7 @@ import org.apache.camel.model.ProcessorType; import org.apache.camel.processor.DelegateProcessor; import org.apache.camel.processor.Logger; +import org.apache.camel.spi.ExchangeFormatter; import org.apache.camel.spi.InterceptStrategy; import org.apache.camel.spi.TraceableUnitOfWork; import org.apache.camel.util.IntrospectionSupport; Copied: camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExchangeFormatter.java (from r748781, camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/ExchangeFormatter.java) URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExchangeFormatter.java?p2=camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExchangeFormatter.java&p1=camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/ExchangeFormatter.java&r1=748781&r2=749193&rev=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/processor/interceptor/ExchangeFormatter.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExchangeFormatter.java Mon Mar 2 05:30:35 2009 @@ -14,13 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel.processor.interceptor; +package org.apache.camel.spi; import org.apache.camel.Exchange; /** - * A plugin used to turn an {...@link Exchange} into a String - * so it can be logged to a file + * A plugin used to turn an {...@link Exchange} into a String representation + * usually to be used for logging or tracing purposes. * * @version $Revision$ */ Propchange: camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExchangeFormatter.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ExchangeFormatter.java ------------------------------------------------------------------------------ svn:keywords = Rev Date Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/processor/Camel715ThreadProcessorTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/Camel715ThreadProcessorTest.java?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/processor/Camel715ThreadProcessorTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/processor/Camel715ThreadProcessorTest.java Mon Mar 2 05:30:35 2009 @@ -30,7 +30,7 @@ import org.apache.camel.impl.DefaultCamelContext; public class Camel715ThreadProcessorTest extends TestCase { - private static final int ITERS = 50000; + private static final int ITERS = 20000; class SendingProcessor implements Processor { int iterationNumber; Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/sortExpressionTest.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/sortExpressionTest.xml?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/sortExpressionTest.xml (original) +++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/sortExpressionTest.xml Mon Mar 2 05:30:35 2009 @@ -29,7 +29,7 @@ <!-- will tokenize the body by comma and sort it --> <sort> <expression> - <tokenizer token=","/> + <tokenize token=","/> </expression> </sort> <to uri="mock:result"/> @@ -40,7 +40,7 @@ <!-- will tokenize the body by comma and sort it using the comparator --> <sort comparatorRef="myReverseComparator"> <expression> - <tokenizer token=","/> + <tokenize token=","/> </expression> </sort> <to uri="mock:result"/> Modified: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/splitterTokenizerTest.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/splitterTokenizerTest.xml?rev=749193&r1=749192&r2=749193&view=diff ============================================================================== --- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/splitterTokenizerTest.xml (original) +++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/splitterTokenizerTest.xml Mon Mar 2 05:30:35 2009 @@ -27,7 +27,7 @@ <route> <from uri="direct:start"/> <split> - <tokenizer token="@"/> + <tokenize token="@"/> <to uri="mock:result"/> </split> </route>