DWR patch for Spring 4

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

DWR patch for Spring 4

Kornel
CONTENTS DELETED
The author has deleted this message.
Reply | Threaded
Open this post in threaded view
|

Re: DWR patch for Spring 4

david@butterdev.com
Thanks Kornel.  I have applied the Spring portion of your patch.  It has
built on our CI server.  Give it a try and let me know how it is working
with Spring 4:
http://directwebremoting.org/bamboo/browse/DWRTRUNK-ALL-522/artifact


On 2013-10-22 08:36, Kornel wrote:

> Hello.
>
>  I have submitted erroneously a question about Spring 4 compatibility
> issues to [hidden email].
>
> Here is a patch which fixes the ClassUtils issue. I also converted one
> test from ANSI to UTF8 and added a @Ignore to a
> test testSameMillisecond, which kept failing on my machine. I am not
> sure if this is a good test which relies on the time returned by
> currentTimeInMilis, and the performance of the machinge the test is
> being executed on.
>
> Hope you will find this patch useful. I am appending it in the email
> directly since I do not know if this email address allows attachments.
>
> Cheers,
>  Kornel Kiełczewski
>
> --- 
>
> Index:
> core/api/test/java/org/directwebremoting/datasync/AbstractStoreProviderTest.java
> ===================================================================
> ---
> core/api/test/java/org/directwebremoting/datasync/AbstractStoreProviderTest.java
> (revision 4043)
> +++
> core/api/test/java/org/directwebremoting/datasync/AbstractStoreProviderTest.java
> (working copy)
> @@ -1,45 +1,45 @@
> -/*
> - * Copyright 2005 Joe Walker
> - *
> - * Licensed under the Apache License, Version 2.0 (the "License");
> - * you may not use this file except in compliance with the License.
> - * You may obtain a copy of the License at
> - *
> - *     http://www.apache.org/licenses/LICENSE-2.0 [1]
> - *
> - * Unless required by applicable law or agreed to in writing,
> software
> - * distributed under the License is distributed on an "AS IS" BASIS,
> - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> - * See the License for the specific language governing permissions
> and
> - * limitations under the License.
> - */
> -package org.directwebremoting.datasync;
> -
> -import org.junit.Test;
> -
> -import static org.junit.Assert.*;
> -
> -public class AbstractStoreProviderTest
> -{
> -
> -    @Test
> -    public void testTestPattern()
> -    {
> -        assertFalse("Null entry",
> AbstractStoreProvider.testPattern("joe", null, false));
> -        assertTrue("Equal values",
> AbstractStoreProvider.testPattern("joe", "joe", false));
> -        assertTrue("Infer character",
> AbstractStoreProvider.testPattern("jo?", "joe", false));
> -        assertTrue("Infer character with trailing exp",
> AbstractStoreProvider.testPattern("jo?y", "joey", false));
> -        assertTrue("Infer two characters",
> AbstractStoreProvider.testPattern("jo??", "joey", false));
> -        assertTrue("Infer two characters with trailing exp",
> AbstractStoreProvider.testPattern("jo??!", "joey!", false));
> -        assertFalse("Infer character but wrong expression",
> AbstractStoreProvider.testPattern("jo?", "jae", false));
> -        assertFalse("Infer character but wrong expression and
> trailing exp", AbstractStoreProvider.testPattern("jo?y", "joe",
> false));
> -        assertFalse("Infer two characters but wrong expression
> and trailing exp", AbstractStoreProvider.testPattern("jo??y", "joeeu",
> false));
> -        assertTrue("Infer any",
> AbstractStoreProvider.testPattern("jo*", "joey", false));
> -        assertTrue("Infer chars and any",
> AbstractStoreProvider.testPattern("ye? jo?y*", "yes joey!", false));
> -        assertTrue("Equal ignore case",
> AbstractStoreProvider.testPattern("joe", "JOE", true));
> -        assertTrue("Equal alternate ignore case",
> AbstractStoreProvider.testPattern("joe", "JoE", true));
> -        assertTrue("Equal unicode ignore case",
> AbstractStoreProvider.testPattern("jo颬 "JOɢ, true));
> -    }
> -
> -}
> -
> +/*
> + * Copyright 2005 Joe Walker
> + *
> + * Licensed under the Apache License, Version 2.0 (the "License");
> + * you may not use this file except in compliance with the License.
> + * You may obtain a copy of the License at
> + *
> + *     http://www.apache.org/licenses/LICENSE-2.0 [1]
> + *
> + * Unless required by applicable law or agreed to in writing,
> software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
> + * See the License for the specific language governing permissions
> and
> + * limitations under the License.
> + */
> +package org.directwebremoting.datasync;
> +
> +import org.junit.Test;
> +
> +import static org.junit.Assert.*;
> +
> +public class AbstractStoreProviderTest
> +{
> +
> +    @Test
> +    public void testTestPattern()
> +    {
> +        assertFalse("Null entry",
> AbstractStoreProvider.testPattern("joe", null, false));
> +        assertTrue("Equal values",
> AbstractStoreProvider.testPattern("joe", "joe", false));
> +        assertTrue("Infer character",
> AbstractStoreProvider.testPattern("jo?", "joe", false));
> +        assertTrue("Infer character with trailing exp",
> AbstractStoreProvider.testPattern("jo?y", "joey", false));
> +        assertTrue("Infer two characters",
> AbstractStoreProvider.testPattern("jo??", "joey", false));
> +        assertTrue("Infer two characters with trailing exp",
> AbstractStoreProvider.testPattern("jo??!", "joey!", false));
> +        assertFalse("Infer character but wrong expression",
> AbstractStoreProvider.testPattern("jo?", "jae", false));
> +        assertFalse("Infer character but wrong expression and
> trailing exp", AbstractStoreProvider.testPattern("jo?y", "joe",
> false));
> +        assertFalse("Infer two characters but wrong expression
> and trailing exp", AbstractStoreProvider.testPattern("jo??y", "joeeu",
> false));
> +        assertTrue("Infer any",
> AbstractStoreProvider.testPattern("jo*", "joey", false));
> +        assertTrue("Infer chars and any",
> AbstractStoreProvider.testPattern("ye? jo?y*", "yes joey!", false));
> +        assertTrue("Equal ignore case",
> AbstractStoreProvider.testPattern("joe", "JOE", true));
> +        assertTrue("Equal alternate ignore case",
> AbstractStoreProvider.testPattern("joe", "JoE", true));
> +        assertTrue("Equal unicode ignore case",
> AbstractStoreProvider.testPattern("joé", "JOÉ", true));
> +    }
> +
> +}
> +
> Index:
> core/impl/test/java/org/directwebremoting/impl/DefaultSecureIdGeneratorTest.java
>
> ===================================================================
> ---
> core/impl/test/java/org/directwebremoting/impl/DefaultSecureIdGeneratorTest.java
> (revision 4043)
> +++
> core/impl/test/java/org/directwebremoting/impl/DefaultSecureIdGeneratorTest.java
> (working copy)
> @@ -81,6 +81,7 @@
>       * @throws Exception
>        */
>      @Test
> +    @org.junit.Ignore
>      public void testSameMillisecond() throws Exception
>      {
>          HashSet<String> tokenset = new HashSet<String>();
> Index:
> serverside/spring/main/java/org/directwebremoting/spring/DwrAnnotationPostProcessor.java
> ===================================================================
> ---
> serverside/spring/main/java/org/directwebremoting/spring/DwrAnnotationPostProcessor.java
> (revision 4043)
> +++
> serverside/spring/main/java/org/directwebremoting/spring/DwrAnnotationPostProcessor.java
> (working copy)
> @@ -93,7 +93,7 @@
>          try
>          {
>              String beanClassName =
> resolveBeanClassname(beanDefinitionHolder.getBeanDefinition(),
> beanDefinitionRegistry);
> -            return ClassUtils.forName(beanClassName);
> +            return ClassUtils.forName(beanClassName,
> getClass().getClassLoader());
>          }
>          catch (Exception cne)
>          {
> Index:
> serverside/spring/main/java/org/directwebremoting/spring/DwrClassPathBeanDefinitionScanner.java
> ===================================================================
> ---
> serverside/spring/main/java/org/directwebremoting/spring/DwrClassPathBeanDefinitionScanner.java
> (revision 4043)
> +++
> serverside/spring/main/java/org/directwebremoting/spring/DwrClassPathBeanDefinitionScanner.java
> (working copy)
> @@ -72,7 +72,8 @@
>      {
>          try
>          {
> -            Class<?> beanDefinitionClass =
> ClassUtils.forName(definitionHolder.getBeanDefinition().getBeanClassName());
>
> +            Class<?> beanDefinitionClass =
> ClassUtils.forName(definitionHolder.getBeanDefinition().getBeanClassName(),
> +                    getClass().getClassLoader());
>              RemoteProxy proxy =
> beanDefinitionClass.getAnnotation(RemoteProxy.class);
>              DataTransferObject converter =
> beanDefinitionClass.getAnnotation(DataTransferObject.class);
>              GlobalFilter globalFilter =
> beanDefinitionClass.getAnnotation(GlobalFilter.class);
> Index:
> serverside/spring/main/java/org/directwebremoting/spring/namespace/RemoteDecorator.java
> ===================================================================
> ---
> serverside/spring/main/java/org/directwebremoting/spring/namespace/RemoteDecorator.java
> (revision 4043)
> +++
> serverside/spring/main/java/org/directwebremoting/spring/namespace/RemoteDecorator.java
> (working copy)
> @@ -52,7 +52,7 @@
>              {
>                   throw new FatalBeanException("Unabled to
> find type for beanName '" + name + "'. " + "Check your bean has a
> correctly configured parent or provide a class for " + " the bean
> definition");
>              }
> -            beanCreator.addPropertyValue("beanClass",
> ClassUtils.forName(beanClassName));
> +            beanCreator.addPropertyValue("beanClass",
> ClassUtils.forName(beanClassName, getClass().getClassLoader()));
>          }
>          catch (ClassNotFoundException e)
>          {
> Index:
> serverside/spring/main/java/org/directwebremoting/spring/SpringContainer.java
> ===================================================================
> ---
> serverside/spring/main/java/org/directwebremoting/spring/SpringContainer.java
> (revision 4043)
> +++
> serverside/spring/main/java/org/directwebremoting/spring/SpringContainer.java
> (working copy)
> @@ -60,7 +60,7 @@
>      {
>          try
>          {
> -            Class<?> clz = ClassUtils.forName(askFor);
> +            Class<?> clz = ClassUtils.forName(askFor,
> getClass().getClassLoader());
>  
>              Map<String, Object> beansOfType =
> ((ListableBeanFactory) beanFactory).getBeansOfType(clz);
>  
>
>
>
> Links:
> ------
> [1] http://www.apache.org/licenses/LICENSE-2.0