You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/03/04 15:25:19 UTC
svn commit: r750021 - in /camel/branches/camel-1.x: ./
camel-core/src/main/java/org/apache/camel/util/
components/camel-spring/src/test/java/org/apache/camel/spring/processor/onexception/
components/camel-spring/src/test/resources/org/apache/camel/spri...
Author: davsclaus
Date: Wed Mar 4 14:25:18 2009
New Revision: 750021
URL: http://svn.apache.org/viewvc?rev=750021&view=rev
Log:
Merged revisions 750017 via svnmerge from
https://svn.apache.org/repos/asf/camel/trunk
........
r750017 | davsclaus | 2009-03-04 15:20:14 +0100 (Wed, 04 Mar 2009) | 1 line
CAMEL-1418: Normalizes class names before loading to avoid \n or other chars by Spring DSL configuration with xml tags on newlines or hidden spaces etc.
........
Added:
camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/onexception/SpringOnExceptionNotNormalizedClassNameTest.java
- copied unchanged from r750017, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/onexception/SpringOnExceptionNotNormalizedClassNameTest.java
camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/onexception/onExceptionNotNormalizedClassNameTest.xml
- copied unchanged from r750017, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/onexception/onExceptionNotNormalizedClassNameTest.xml
Modified:
camel/branches/camel-1.x/ (props changed)
camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
Propchange: camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Mar 4 14:25:18 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,749956
+/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,749956,750017
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/util/ObjectHelper.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java?rev=750021&r1=750020&r2=750021&view=diff
==============================================================================
--- camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java (original)
+++ camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java Wed Mar 4 14:25:18 2009
@@ -478,6 +478,9 @@
* @return the class or null if it could not be loaded
*/
public static Class<?> loadClass(String name, ClassLoader loader) {
+ // must clean the name so its pure java name, eg remoing \n or whatever people can do in the Spring XML
+ name = normalizeClassName(name);
+
// try context class loader first
Class clazz = doLoadClass(name, Thread.currentThread().getContextClassLoader());
if (clazz == null) {
@@ -843,4 +846,23 @@
}
}
+ /**
+ * Cleans the string to pure java identifier so we can use it for loading class names.
+ * <p/>
+ * Especially from Sping DSL people can have \n \t or other characters that otherwise
+ * would result in ClassNotFoundException
+ *
+ * @param name the class name
+ * @return normalized classname that can be load by a class loader.
+ */
+ public static String normalizeClassName(String name) {
+ StringBuffer sb = new StringBuffer(name.length());
+ for (char ch : name.toCharArray()) {
+ if (ch == '.' || Character.isJavaIdentifierPart(ch)) {
+ sb.append(ch);
+ }
+ }
+ return sb.toString();
+ }
+
}
Re: svn commit: r750021 - in /camel/branches/camel-1.x: ./ camel-core/src/main/java/org/apache/camel/util/
components/camel-spring/src/test/java/org/apache/camel/spring/processor/onexception/
components/camel-spring/src/test/resources/org/apache/camel/spri...
Posted by Willem Jiang <wi...@gmail.com>.
Hi Claus,
Since Camel 1.x doesn't support the onException, I'd like to revert the
SpringOnExceptionNotNormalizedClassNameTest part and keep the change of
ObjectHelper.
Willem
davsclaus@apache.org wrote:
> Author: davsclaus
> Date: Wed Mar 4 14:25:18 2009
> New Revision: 750021
>
> URL: http://svn.apache.org/viewvc?rev=750021&view=rev
> Log:
> Merged revisions 750017 via svnmerge from
> https://svn.apache.org/repos/asf/camel/trunk
>
> ........
> r750017 | davsclaus | 2009-03-04 15:20:14 +0100 (Wed, 04 Mar 2009) | 1 line
>
> CAMEL-1418: Normalizes class names before loading to avoid \n or other chars by Spring DSL configuration with xml tags on newlines or hidden spaces etc.
> ........
>
> Added:
> camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/onexception/SpringOnExceptionNotNormalizedClassNameTest.java
> - copied unchanged from r750017, camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/onexception/SpringOnExceptionNotNormalizedClassNameTest.java
> camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/onexception/onExceptionNotNormalizedClassNameTest.xml
> - copied unchanged from r750017, camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/onexception/onExceptionNotNormalizedClassNameTest.xml
> Modified:
> camel/branches/camel-1.x/ (props changed)
> camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
>
> Propchange: camel/branches/camel-1.x/
> ------------------------------------------------------------------------------
> --- svn:mergeinfo (original)
> +++ svn:mergeinfo Wed Mar 4 14:25:18 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,749956
> +/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,749956,750017
>
> 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/util/ObjectHelper.java
> URL: http://svn.apache.org/viewvc/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java?rev=750021&r1=750020&r2=750021&view=diff
> ==============================================================================
> --- camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java (original)
> +++ camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java Wed Mar 4 14:25:18 2009
> @@ -478,6 +478,9 @@
> * @return the class or null if it could not be loaded
> */
> public static Class<?> loadClass(String name, ClassLoader loader) {
> + // must clean the name so its pure java name, eg remoing \n or whatever people can do in the Spring XML
> + name = normalizeClassName(name);
> +
> // try context class loader first
> Class clazz = doLoadClass(name, Thread.currentThread().getContextClassLoader());
> if (clazz == null) {
> @@ -843,4 +846,23 @@
> }
> }
>
> + /**
> + * Cleans the string to pure java identifier so we can use it for loading class names.
> + * <p/>
> + * Especially from Sping DSL people can have \n \t or other characters that otherwise
> + * would result in ClassNotFoundException
> + *
> + * @param name the class name
> + * @return normalized classname that can be load by a class loader.
> + */
> + public static String normalizeClassName(String name) {
> + StringBuffer sb = new StringBuffer(name.length());
> + for (char ch : name.toCharArray()) {
> + if (ch == '.' || Character.isJavaIdentifierPart(ch)) {
> + sb.append(ch);
> + }
> + }
> + return sb.toString();
> + }
> +
> }
>
>
>