Author: davsclaus Date: Tue Jul 26 05:49:04 2011 New Revision: 1150991 URL: http://svn.apache.org/viewvc?rev=1150991&view=rev Log: CAMEL-3961: Polished and reduced some package tangling.
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanHelper.java camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java camel/trunk/camel-core/src/main/java/org/apache/camel/util/StringHelper.java camel/trunk/camel-core/src/test/java/org/apache/camel/util/StringHelperTest.java Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanHelper.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanHelper.java?rev=1150991&r1=1150990&r2=1150991&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanHelper.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanHelper.java Tue Jul 26 05:49:04 2011 @@ -16,12 +16,12 @@ */ package org.apache.camel.component.bean; -import org.apache.camel.language.simple.SimpleLanguage; import org.apache.camel.spi.ClassResolver; import org.apache.camel.util.ObjectHelper; +import org.apache.camel.util.StringHelper; /** - * + * Helper for the bean component. */ public final class BeanHelper { @@ -61,7 +61,7 @@ public final class BeanHelper { } // simple language tokens is valid - if (SimpleLanguage.hasStartToken(value)) { + if (StringHelper.hasStartToken(value, "simple")) { return true; } @@ -84,12 +84,12 @@ public final class BeanHelper { * <li>FQN class name - com.foo.MyOrder</li> * <li>Simple class name - MyOrder</li> * </ul> - * If the given parameter type is <b>not</b> a class, then <tt>false</tt> is returned + * If the given parameter type is <b>not</b> a class, then <tt>null</tt> is returned * * @param resolver the class resolver * @param parameterType the parameter type as a String, can be a FQN or a simple name of the class * @param expectedType the expected type - * @return <tt>null</tt> if parameter type is <b>not</b> a class, <tt>true</tt> if parameter type is assignable, <tt>false</tt> otherwise + * @return <tt>null</tt> if parameter type is <b>not</b> a class, <tt>true</tt> if parameter type is assignable, <tt>false</tt> if not assignable */ public static Boolean isAssignableToExpectedType(ClassResolver resolver, String parameterType, Class<?> expectedType) { // if its a class, then it should be assignable Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java?rev=1150991&r1=1150990&r2=1150991&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/bean/BeanInfo.java Tue Jul 26 05:49:04 2011 @@ -723,7 +723,7 @@ public class BeanInfo { if (ObjectHelper.isEmpty(qualifyType)) { continue; } - // trim the time + // trim the type qualifyType = qualifyType.trim(); if ("*".equals(qualifyType)) { @@ -739,6 +739,7 @@ public class BeanInfo { // if qualify type indeed is a class, then it must be assignable with the parameter type Boolean assignable = BeanHelper.isAssignableToExpectedType(getCamelContext().getClassResolver(), qualifyType, parameterType); + // the method will return null if the qualifyType is not a class if (assignable != null && !assignable) { return false; } Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java?rev=1150991&r1=1150990&r2=1150991&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/FileComponent.java Tue Jul 26 05:49:04 2011 @@ -19,7 +19,7 @@ package org.apache.camel.component.file; import java.io.File; import java.util.Map; -import org.apache.camel.language.simple.SimpleLanguage; +import org.apache.camel.util.StringHelper; /** * File component. @@ -38,7 +38,7 @@ public class FileComponent extends Gener protected GenericFileEndpoint<File> buildFileEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { // the starting directory must be a static (not containing dynamic expressions) - if (SimpleLanguage.hasStartToken(remaining)) { + if (StringHelper.hasStartToken(remaining, "simple")) { throw new IllegalArgumentException("Invalid directory: " + remaining + ". Dynamic expressions with ${ } placeholders is not allowed." + " Use the fileName option to set the dynamic expression."); Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java?rev=1150991&r1=1150990&r2=1150991&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileEndpoint.java Tue Jul 26 05:49:04 2011 @@ -32,7 +32,6 @@ import org.apache.camel.Message; import org.apache.camel.Processor; import org.apache.camel.converter.IOConverter; import org.apache.camel.impl.ScheduledPollEndpoint; -import org.apache.camel.language.simple.SimpleLanguage; import org.apache.camel.processor.idempotent.MemoryIdempotentRepository; import org.apache.camel.spi.FactoryFinder; import org.apache.camel.spi.IdempotentRepository; @@ -595,7 +594,7 @@ public abstract class GenericFileEndpoin */ protected String configureMoveOrPreMoveExpression(String expression) { // if the expression already have ${ } placeholders then pass it unmodified - if (SimpleLanguage.hasStartToken(expression)) { + if (StringHelper.hasStartToken(expression, "simple")) { return expression; } @@ -685,7 +684,7 @@ public abstract class GenericFileEndpoin pattern = pattern.replaceFirst("\\$simple\\{file:name.noext\\}", FileUtil.stripExt(onlyName)); // must be able to resolve all placeholders supported - if (SimpleLanguage.hasStartToken(pattern)) { + if (StringHelper.hasStartToken(pattern, "simple")) { throw new ExpressionIllegalSyntaxException(fileName + ". Cannot resolve reminder: " + pattern); } @@ -715,7 +714,7 @@ public abstract class GenericFileEndpoin String pattern = getDoneFileName(); ObjectHelper.notEmpty(pattern, "doneFileName", pattern); - if (!SimpleLanguage.hasStartToken(pattern)) { + if (!StringHelper.hasStartToken(pattern, "simple")) { // no tokens, so just match names directly return pattern.equals(fileName); } @@ -731,7 +730,7 @@ public abstract class GenericFileEndpoin pattern = pattern.replaceFirst("\\$simple\\{file:name.noext\\}", ""); // must be able to resolve all placeholders supported - if (SimpleLanguage.hasStartToken(pattern)) { + if (StringHelper.hasStartToken(pattern, "simple")) { throw new ExpressionIllegalSyntaxException(fileName + ". Cannot resolve reminder: " + pattern); } Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java?rev=1150991&r1=1150990&r2=1150991&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/component/file/GenericFileProducer.java Tue Jul 26 05:49:04 2011 @@ -24,13 +24,13 @@ import org.apache.camel.Exchange; import org.apache.camel.Expression; import org.apache.camel.impl.DefaultExchange; import org.apache.camel.impl.DefaultProducer; -import org.apache.camel.language.simple.SimpleLanguage; import org.apache.camel.spi.Language; import org.apache.camel.util.ExchangeHelper; import org.apache.camel.util.FileUtil; import org.apache.camel.util.LRUCache; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.ServiceHelper; +import org.apache.camel.util.StringHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -268,7 +268,7 @@ public class GenericFileProducer<T> exte if (name != null) { // the header name can be an expression too, that should override // whatever configured on the endpoint - if (SimpleLanguage.hasStartToken(name)) { + if (StringHelper.hasStartToken(name, "simple")) { log.trace("{} contains a Simple expression: {}", Exchange.FILE_NAME, name); Language language = getEndpoint().getCamelContext().resolveLanguage("file"); expression = language.createExpression(name); Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java?rev=1150991&r1=1150990&r2=1150991&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguage.java Tue Jul 26 05:49:04 2011 @@ -119,20 +119,6 @@ public class SimpleLanguage extends Simp return answer; } - /** - * Does the expression have the simple language start token? - * - * @param expression the expression - * @return <tt>true</tt> if the expression contains the start token, <tt>false</tt> otherwise - */ - public static boolean hasStartToken(String expression) { - if (expression == null) { - return false; - } - - return expression.indexOf("${") >= 0 || expression.indexOf("$simple{") >= 0; - } - public static Expression simple(String expression) { return SIMPLE.createExpression(expression); } Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java?rev=1150991&r1=1150990&r2=1150991&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/language/simple/SimpleLanguageSupport.java Tue Jul 26 05:49:04 2011 @@ -32,6 +32,7 @@ import org.apache.camel.builder.ValueBui import org.apache.camel.spi.Language; import org.apache.camel.util.KeyValueHolder; import org.apache.camel.util.ObjectHelper; +import org.apache.camel.util.StringHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import static org.apache.camel.language.simple.SimpleLanguageOperator.*; @@ -83,7 +84,7 @@ public abstract class SimpleLanguageSupp if (matcher.matches() || startMatcher.matches()) { log.debug("Expression is evaluated as simple (with operator) expression: {}", expression); return createOperatorExpression(matcher, startMatcher, expression); - } else if (SimpleLanguage.hasStartToken(expression)) { + } else if (StringHelper.hasStartToken(expression, "simple")) { log.debug("Expression is evaluated as simple (strict) expression: {}", expression); return createComplexConcatExpression(expression); } else { Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/util/StringHelper.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/StringHelper.java?rev=1150991&r1=1150990&r2=1150991&view=diff ============================================================================== --- camel/trunk/camel-core/src/main/java/org/apache/camel/util/StringHelper.java (original) +++ camel/trunk/camel-core/src/main/java/org/apache/camel/util/StringHelper.java Tue Jul 26 05:49:04 2011 @@ -124,4 +124,27 @@ public final class StringHelper { return false; } + /** + * Does the expression have the language start token? + * + * @param expression the expression + * @param language the name of the language, such as simple + * @return <tt>true</tt> if the expression contains the start token, <tt>false</tt> otherwise + */ + public static boolean hasStartToken(String expression, String language) { + if (expression == null) { + return false; + } + + if (expression.indexOf("${") >= 0) { + return true; + } + + if (language != null && expression.indexOf("$" + language + "{") >= 0) { + return true; + } + + return false; + } + } Modified: camel/trunk/camel-core/src/test/java/org/apache/camel/util/StringHelperTest.java URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/util/StringHelperTest.java?rev=1150991&r1=1150990&r2=1150991&view=diff ============================================================================== --- camel/trunk/camel-core/src/test/java/org/apache/camel/util/StringHelperTest.java (original) +++ camel/trunk/camel-core/src/test/java/org/apache/camel/util/StringHelperTest.java Tue Jul 26 05:49:04 2011 @@ -79,4 +79,21 @@ public class StringHelperTest extends Te assertEquals(true, StringHelper.hasUpperCase("com.foo.My")); } + public void testHasStartToken() throws Exception { + assertEquals(false, StringHelper.hasStartToken(null, null)); + assertEquals(false, StringHelper.hasStartToken(null, "simple")); + assertEquals(false, StringHelper.hasStartToken("", null)); + assertEquals(false, StringHelper.hasStartToken("", "simple")); + assertEquals(false, StringHelper.hasStartToken("Hello World", null)); + assertEquals(false, StringHelper.hasStartToken("Hello World", "simple")); + + assertEquals(true, StringHelper.hasStartToken("${body}", null)); + assertEquals(true, StringHelper.hasStartToken("${body}", "simple")); + assertEquals(true, StringHelper.hasStartToken("$simple{body}", "simple")); + + assertEquals(true, StringHelper.hasStartToken("${body}", null)); + assertEquals(true, StringHelper.hasStartToken("${body}", "foo")); + assertEquals(true, StringHelper.hasStartToken("$foo{body}", "foo")); + } + }