fixed broken "setManagedInterfaces" interface assertion (SPR-5615)

This commit is contained in:
Juergen Hoeller 2009-03-26 13:49:21 +00:00
parent fe99003b45
commit 40b06b5f19
3 changed files with 9 additions and 11 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2008 the original author or authors. * Copyright 2002-2009 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -75,7 +75,7 @@ public class InterfaceBasedMBeanInfoAssembler extends AbstractConfigurableMBeanI
/** /**
* Stores the mappings of bean keys to an array of <code>Class</code>es. * Stores the mappings of bean keys to an array of <code>Class</code>es.
*/ */
private Map resolvedInterfaceMappings; private Map<String, Class[]> resolvedInterfaceMappings;
/** /**
@ -89,7 +89,7 @@ public class InterfaceBasedMBeanInfoAssembler extends AbstractConfigurableMBeanI
public void setManagedInterfaces(Class[] managedInterfaces) { public void setManagedInterfaces(Class[] managedInterfaces) {
if (managedInterfaces != null) { if (managedInterfaces != null) {
for (Class ifc : managedInterfaces) { for (Class ifc : managedInterfaces) {
if (ifc.isInterface()) { if (!ifc.isInterface()) {
throw new IllegalArgumentException("Management interface [" + ifc.getName() + "] is no interface"); throw new IllegalArgumentException("Management interface [" + ifc.getName() + "] is no interface");
} }
} }
@ -99,7 +99,7 @@ public class InterfaceBasedMBeanInfoAssembler extends AbstractConfigurableMBeanI
/** /**
* Set the mappings of bean keys to a comma-separated list of interface names. * Set the mappings of bean keys to a comma-separated list of interface names.
* The property key should match the bean key and the property value should match * <p>The property key should match the bean key and the property value should match
* the list of interface names. When searching for interfaces for a bean, Spring * the list of interface names. When searching for interfaces for a bean, Spring
* will check these mappings first. * will check these mappings first.
* @param mappings the mappins of bean keys to interface names * @param mappings the mappins of bean keys to interface names
@ -124,7 +124,7 @@ public class InterfaceBasedMBeanInfoAssembler extends AbstractConfigurableMBeanI
* @param mappings the specified interface mappings * @param mappings the specified interface mappings
* @return the resolved interface mappings (with Class objects as values) * @return the resolved interface mappings (with Class objects as values)
*/ */
private Map resolveInterfaceMappings(Properties mappings) { private Map<String, Class[]> resolveInterfaceMappings(Properties mappings) {
Map<String, Class[]> resolvedMappings = new HashMap<String, Class[]>(mappings.size()); Map<String, Class[]> resolvedMappings = new HashMap<String, Class[]>(mappings.size());
for (Enumeration en = mappings.propertyNames(); en.hasMoreElements();) { for (Enumeration en = mappings.propertyNames(); en.hasMoreElements();) {
String beanKey = (String) en.nextElement(); String beanKey = (String) en.nextElement();
@ -217,7 +217,7 @@ public class InterfaceBasedMBeanInfoAssembler extends AbstractConfigurableMBeanI
Class[] ifaces = null; Class[] ifaces = null;
if (this.resolvedInterfaceMappings != null) { if (this.resolvedInterfaceMappings != null) {
ifaces = (Class[]) this.resolvedInterfaceMappings.get(beanKey); ifaces = this.resolvedInterfaceMappings.get(beanKey);
} }
if (ifaces == null) { if (ifaces == null) {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2005 the original author or authors. * Copyright 2002-2009 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); you may not * 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 * use this file except in compliance with the License. You may obtain a copy of
@ -24,7 +24,6 @@ import org.junit.Ignore;
/** /**
* @author Rob Harrop * @author Rob Harrop
*/ */
@Ignore
public class InterfaceBasedMBeanInfoAssemblerCustomTests extends AbstractJmxAssemblerTests { public class InterfaceBasedMBeanInfoAssemblerCustomTests extends AbstractJmxAssemblerTests {
protected static final String OBJECT_NAME = "bean:name=testBean5"; protected static final String OBJECT_NAME = "bean:name=testBean5";

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2002-2006 the original author or authors. * Copyright 2002-2009 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -59,7 +59,6 @@ public class InterfaceBasedMBeanInfoAssemblerMappedTests extends AbstractJmxAsse
} }
} }
@Ignore
public void ignoreTestWithFallThrough() throws Exception { public void ignoreTestWithFallThrough() throws Exception {
InterfaceBasedMBeanInfoAssembler assembler = InterfaceBasedMBeanInfoAssembler assembler =
getWithMapping("foobar", "org.springframework.jmx.export.assembler.ICustomJmxBean"); getWithMapping("foobar", "org.springframework.jmx.export.assembler.ICustomJmxBean");