mirror of https://github.com/apache/lucene.git
Revert "SOLR-9161: SolrPluginUtils.invokeSetters now accommodates setter variants"
This reverts commit 50658dd93d
.
Conflicts:
solr/CHANGES.txt
This commit is contained in:
parent
7be69c6038
commit
245e4839d1
|
@ -344,8 +344,6 @@ Other Changes
|
|||
|
||||
* SOLR-9110: Move JoinFromCollection- SubQueryTransformer- BlockJoinFacet- Distrib Tests to SolrCloudTestCase (Mikhail Khludnev)
|
||||
|
||||
* SOLR-9161: SolrPluginUtils.invokeSetters now accommodates setter variants (Christine Poerschke)
|
||||
|
||||
* SOLR-9136: Separate out the error statistics into server-side error vs client-side error
|
||||
(Jessica Cheng Mallet via Erick Erickson)
|
||||
|
||||
|
|
|
@ -1066,8 +1066,8 @@ public class SolrPluginUtils {
|
|||
String key = entry.getKey();
|
||||
String setterName = "set" + String.valueOf(Character.toUpperCase(key.charAt(0))) + key.substring(1);
|
||||
try {
|
||||
final Method method = findSetter(clazz, setterName, key);
|
||||
final Object val = entry.getValue();
|
||||
final Method method = findSetter(clazz, setterName, key, val.getClass());
|
||||
method.invoke(bean, val);
|
||||
} catch (InvocationTargetException | IllegalAccessException e1) {
|
||||
throw new RuntimeException("Error invoking setter " + setterName + " on class : " + clazz.getName(), e1);
|
||||
|
@ -1075,14 +1075,10 @@ public class SolrPluginUtils {
|
|||
}
|
||||
}
|
||||
|
||||
private static Method findSetter(Class<?> clazz, String setterName, String key, Class<?> paramClazz) {
|
||||
try {
|
||||
return clazz.getMethod(setterName, new Class<?>[] { paramClazz });
|
||||
} catch (NoSuchMethodException e) {
|
||||
for (Method m : clazz.getMethods()) {
|
||||
if (m.getName().equals(setterName) && m.getParameterTypes().length == 1) {
|
||||
return m;
|
||||
}
|
||||
private static Method findSetter(Class<?> clazz, String setterName, String key) {
|
||||
for (Method m : clazz.getMethods()) {
|
||||
if (m.getName().equals(setterName) && m.getParameterTypes().length == 1) {
|
||||
return m;
|
||||
}
|
||||
}
|
||||
throw new RuntimeException("No setter corrresponding to '" + key + "' in " + clazz.getName());
|
||||
|
|
|
@ -455,34 +455,6 @@ public class SolrPluginUtilsTest extends SolrTestCaseJ4 {
|
|||
assertEquals(3, q.build().getMinimumNumberShouldMatch());
|
||||
}
|
||||
|
||||
private class InvokeSettersTestClass {
|
||||
private float aFloat = random().nextFloat();
|
||||
public float getAFloat() {
|
||||
return aFloat;
|
||||
}
|
||||
public void setAFloat(float aFloat) {
|
||||
this.aFloat = aFloat;
|
||||
}
|
||||
public void setAFloat(String aFloat) {
|
||||
this.aFloat = Float.parseFloat(aFloat);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInvokeSetters() {
|
||||
final Float theFloat = new Float(random().nextFloat());
|
||||
implTestInvokeSetters(theFloat, theFloat);
|
||||
implTestInvokeSetters(theFloat, theFloat.toString());
|
||||
}
|
||||
|
||||
public void implTestInvokeSetters(final Float theFloat, final Object theFloatObject) {
|
||||
final InvokeSettersTestClass bean = new InvokeSettersTestClass();
|
||||
final Map<String,Object> initArgs = new HashMap<>();
|
||||
initArgs.put("aFloat", theFloatObject);
|
||||
SolrPluginUtils.invokeSetters(bean, initArgs.entrySet());
|
||||
assertEquals(bean.getAFloat(), theFloat.floatValue(), 0.0);
|
||||
}
|
||||
|
||||
/** macro */
|
||||
public String pe(CharSequence s) {
|
||||
return SolrPluginUtils.partialEscape(s).toString();
|
||||
|
|
Loading…
Reference in New Issue