Polishing

This commit is contained in:
Juergen Hoeller 2014-01-13 23:18:31 +01:00
parent 1865361163
commit 26271fc30c
4 changed files with 64 additions and 38 deletions

View File

@ -86,6 +86,7 @@ public class BshScriptFactory implements ScriptFactory, BeanClassLoaderAware {
this.scriptInterfaces = scriptInterfaces; this.scriptInterfaces = scriptInterfaces;
} }
@Override @Override
public void setBeanClassLoader(ClassLoader classLoader) { public void setBeanClassLoader(ClassLoader classLoader) {
this.beanClassLoader = classLoader; this.beanClassLoader = classLoader;

View File

@ -1,12 +1,28 @@
package org.springframework.scripting.groovy; /*
* Copyright 2002-2013 the original author or authors.
*
* 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
*
* 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.
*/
import static org.junit.Assert.assertEquals; package org.springframework.scripting.groovy;
import static org.junit.Assert.fail;
import org.junit.After; import org.junit.After;
import org.junit.Test; import org.junit.Test;
import org.springframework.context.support.GenericXmlApplicationContext; import org.springframework.context.support.GenericXmlApplicationContext;
import static org.junit.Assert.*;
/** /**
* @author Dave Syer * @author Dave Syer
*/ */
@ -14,18 +30,9 @@ public class GroovyAspectIntegrationTests {
private GenericXmlApplicationContext context; private GenericXmlApplicationContext context;
@After
public void close() {
if (context != null) {
context.close();
}
}
@Test @Test
public void testJavaBean() { public void testJavaBean() {
context = new GenericXmlApplicationContext(getClass(), getClass().getSimpleName()+"-java-context.xml"); context = new GenericXmlApplicationContext(getClass(), getClass().getSimpleName()+"-java-context.xml");
TestService bean = context.getBean("javaBean", TestService.class); TestService bean = context.getBean("javaBean", TestService.class);
LogUserAdvice logAdvice = context.getBean(LogUserAdvice.class); LogUserAdvice logAdvice = context.getBean(LogUserAdvice.class);
@ -33,8 +40,9 @@ public class GroovyAspectIntegrationTests {
try { try {
bean.sayHello(); bean.sayHello();
fail("Expected exception"); fail("Expected exception");
} catch (RuntimeException e) { }
assertEquals("TestServiceImpl", e.getMessage()); catch (RuntimeException ex) {
assertEquals("TestServiceImpl", ex.getMessage());
} }
assertEquals(1, logAdvice.getCountThrows()); assertEquals(1, logAdvice.getCountThrows());
@ -43,7 +51,6 @@ public class GroovyAspectIntegrationTests {
@Test @Test
public void testGroovyBeanInterface() { public void testGroovyBeanInterface() {
context = new GenericXmlApplicationContext(getClass(), getClass().getSimpleName()+"-groovy-interface-context.xml"); context = new GenericXmlApplicationContext(getClass(), getClass().getSimpleName()+"-groovy-interface-context.xml");
TestService bean = context.getBean("groovyBean", TestService.class); TestService bean = context.getBean("groovyBean", TestService.class);
LogUserAdvice logAdvice = context.getBean(LogUserAdvice.class); LogUserAdvice logAdvice = context.getBean(LogUserAdvice.class);
@ -51,8 +58,9 @@ public class GroovyAspectIntegrationTests {
try { try {
bean.sayHello(); bean.sayHello();
fail("Expected exception"); fail("Expected exception");
} catch (RuntimeException e) { }
assertEquals("GroovyServiceImpl", e.getMessage()); catch (RuntimeException ex) {
assertEquals("GroovyServiceImpl", ex.getMessage());
} }
assertEquals(1, logAdvice.getCountThrows()); assertEquals(1, logAdvice.getCountThrows());
} }
@ -60,9 +68,7 @@ public class GroovyAspectIntegrationTests {
@Test @Test
public void testGroovyBeanDynamic() { public void testGroovyBeanDynamic() {
context = new GenericXmlApplicationContext(getClass(), getClass().getSimpleName()+"-groovy-dynamic-context.xml"); context = new GenericXmlApplicationContext(getClass(), getClass().getSimpleName()+"-groovy-dynamic-context.xml");
TestService bean = context.getBean("groovyBean", TestService.class); TestService bean = context.getBean("groovyBean", TestService.class);
LogUserAdvice logAdvice = context.getBean(LogUserAdvice.class); LogUserAdvice logAdvice = context.getBean(LogUserAdvice.class);
@ -70,8 +76,9 @@ public class GroovyAspectIntegrationTests {
try { try {
bean.sayHello(); bean.sayHello();
fail("Expected exception"); fail("Expected exception");
} catch (RuntimeException e) { }
assertEquals("GroovyServiceImpl", e.getMessage()); catch (RuntimeException ex) {
assertEquals("GroovyServiceImpl", ex.getMessage());
} }
// No proxy here because the pointcut only applies to the concrete class, not the interface // No proxy here because the pointcut only applies to the concrete class, not the interface
assertEquals(0, logAdvice.getCountThrows()); assertEquals(0, logAdvice.getCountThrows());
@ -80,9 +87,7 @@ public class GroovyAspectIntegrationTests {
@Test @Test
public void testGroovyBeanProxyTargetClass() { public void testGroovyBeanProxyTargetClass() {
context = new GenericXmlApplicationContext(getClass(), getClass().getSimpleName()+"-groovy-proxy-target-class-context.xml"); context = new GenericXmlApplicationContext(getClass(), getClass().getSimpleName()+"-groovy-proxy-target-class-context.xml");
TestService bean = context.getBean("groovyBean", TestService.class); TestService bean = context.getBean("groovyBean", TestService.class);
LogUserAdvice logAdvice = context.getBean(LogUserAdvice.class); LogUserAdvice logAdvice = context.getBean(LogUserAdvice.class);
@ -90,11 +95,19 @@ public class GroovyAspectIntegrationTests {
try { try {
bean.sayHello(); bean.sayHello();
fail("Expected exception"); fail("Expected exception");
} catch (TestException e) { }
assertEquals("GroovyServiceImpl", e.getMessage()); catch (TestException ex) {
assertEquals("GroovyServiceImpl", ex.getMessage());
} }
assertEquals(1, logAdvice.getCountBefore()); assertEquals(1, logAdvice.getCountBefore());
assertEquals(1, logAdvice.getCountThrows()); assertEquals(1, logAdvice.getCountThrows());
} }
@After
public void close() {
if (context != null) {
context.close();
}
}
} }

View File

@ -1,18 +1,33 @@
/*
* Copyright 2002-2013 the original author or authors.
*
* 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
*
* 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.springframework.scripting.groovy; package org.springframework.scripting.groovy;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import org.junit.Test; import org.junit.Test;
import org.springframework.aop.Advisor; import org.springframework.aop.Advisor;
import org.springframework.aop.aspectj.AspectJExpressionPointcut; import org.springframework.aop.aspectj.AspectJExpressionPointcut;
import org.springframework.aop.framework.ProxyFactory; import org.springframework.aop.framework.ProxyFactory;
import org.springframework.aop.support.DefaultPointcutAdvisor; import org.springframework.aop.support.DefaultPointcutAdvisor;
import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.ClassPathResource;
import org.springframework.scripting.groovy.GroovyScriptFactory;
import org.springframework.scripting.support.ResourceScriptSource; import org.springframework.scripting.support.ResourceScriptSource;
import org.springframework.util.ClassUtils; import org.springframework.util.ClassUtils;
import static org.junit.Assert.*;
/** /**
* @author Dave Syer * @author Dave Syer
*/ */
@ -20,7 +35,6 @@ public class GroovyAspectTests {
@Test @Test
public void testManualGroovyBeanWithUnconditionalPointcut() throws Exception { public void testManualGroovyBeanWithUnconditionalPointcut() throws Exception {
LogUserAdvice logAdvice = new LogUserAdvice(); LogUserAdvice logAdvice = new LogUserAdvice();
GroovyScriptFactory scriptFactory = new GroovyScriptFactory("GroovyServiceImpl.grv"); GroovyScriptFactory scriptFactory = new GroovyScriptFactory("GroovyServiceImpl.grv");
@ -28,7 +42,6 @@ public class GroovyAspectTests {
new ClassPathResource("GroovyServiceImpl.grv", getClass()))); new ClassPathResource("GroovyServiceImpl.grv", getClass())));
testAdvice(new DefaultPointcutAdvisor(logAdvice), logAdvice, target, "GroovyServiceImpl"); testAdvice(new DefaultPointcutAdvisor(logAdvice), logAdvice, target, "GroovyServiceImpl");
} }
@Test @Test
@ -46,7 +59,6 @@ public class GroovyAspectTests {
@Test @Test
public void testManualGroovyBeanWithDynamicPointcut() throws Exception { public void testManualGroovyBeanWithDynamicPointcut() throws Exception {
LogUserAdvice logAdvice = new LogUserAdvice(); LogUserAdvice logAdvice = new LogUserAdvice();
GroovyScriptFactory scriptFactory = new GroovyScriptFactory("GroovyServiceImpl.grv"); GroovyScriptFactory scriptFactory = new GroovyScriptFactory("GroovyServiceImpl.grv");
@ -61,7 +73,6 @@ public class GroovyAspectTests {
@Test @Test
public void testManualGroovyBeanWithDynamicPointcutProxyTargetClass() throws Exception { public void testManualGroovyBeanWithDynamicPointcutProxyTargetClass() throws Exception {
LogUserAdvice logAdvice = new LogUserAdvice(); LogUserAdvice logAdvice = new LogUserAdvice();
GroovyScriptFactory scriptFactory = new GroovyScriptFactory("GroovyServiceImpl.grv"); GroovyScriptFactory scriptFactory = new GroovyScriptFactory("GroovyServiceImpl.grv");
@ -76,6 +87,7 @@ public class GroovyAspectTests {
private void testAdvice(Advisor advisor, LogUserAdvice logAdvice, TestService target, String message) private void testAdvice(Advisor advisor, LogUserAdvice logAdvice, TestService target, String message)
throws Exception { throws Exception {
testAdvice(advisor, logAdvice, target, message, false); testAdvice(advisor, logAdvice, target, message, false);
} }
@ -93,9 +105,11 @@ public class GroovyAspectTests {
try { try {
bean.sayHello(); bean.sayHello();
fail("Expected exception"); fail("Expected exception");
} catch (TestException e) { }
assertEquals(message, e.getMessage()); catch (TestException ex) {
assertEquals(message, ex.getMessage());
} }
assertEquals(1, logAdvice.getCountThrows()); assertEquals(1, logAdvice.getCountThrows());
} }
} }

View File

@ -367,8 +367,7 @@ public class MockHttpServletRequestBuilder implements RequestBuilder, Mergeable
* requestURI and using any remaining part. If specified here, the pathInfo * requestURI and using any remaining part. If specified here, the pathInfo
* must start with a "/". * must start with a "/".
* <p>If specified, the pathInfo will be used as is. * <p>If specified, the pathInfo will be used as is.
* @see <a * @see <a href="http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getPathInfo%28%29">HttpServletRequest.getServletPath()</a>
* href="http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html#getPathInfo%28%29">HttpServletRequest.getServletPath()</a>
*/ */
public MockHttpServletRequestBuilder pathInfo(String pathInfo) { public MockHttpServletRequestBuilder pathInfo(String pathInfo) {
if (StringUtils.hasText(pathInfo)) { if (StringUtils.hasText(pathInfo)) {
@ -464,7 +463,6 @@ public class MockHttpServletRequestBuilder implements RequestBuilder, Mergeable
this.principal = parentBuilder.principal; this.principal = parentBuilder.principal;
} }
for (String attributeName : parentBuilder.attributes.keySet()) { for (String attributeName : parentBuilder.attributes.keySet()) {
if (!this.attributes.containsKey(attributeName)) { if (!this.attributes.containsKey(attributeName)) {
this.attributes.put(attributeName, parentBuilder.attributes.get(attributeName)); this.attributes.put(attributeName, parentBuilder.attributes.get(attributeName));