Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.util.Base64;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.Executors;
Expand All @@ -40,7 +41,6 @@
import org.apache.geode.management.internal.cli.CommandRequest;
import org.apache.geode.management.internal.cli.shell.Gfsh;
import org.apache.geode.management.internal.cli.shell.OperationInvoker;
import org.apache.geode.management.internal.web.domain.QueryParameterSource;
import org.apache.geode.management.internal.web.http.support.HttpRequester;
import org.apache.geode.management.internal.web.shell.support.HttpMBeanProxyFactory;

Expand Down Expand Up @@ -383,8 +383,14 @@ public Object invoke(final String resourceName, final String operationName, fina
public Set<ObjectName> queryNames(final ObjectName objectName, final QueryExp queryExpression) {
final URI link = HttpRequester.createURI(baseUrl, "/mbean/query");

Object content = new QueryParameterSource(objectName, queryExpression);
try {
final MultiValueMap<String, Object> content = new LinkedMultiValueMap<String, Object>();
content.add("objectName", objectName.toString());
if (queryExpression != null) {
content.add("queryExpression",
Base64.getEncoder().encodeToString(IOUtils.serializeObject(queryExpression)));
}

return (Set<ObjectName>) IOUtils
.deserializeObject(httpRequester.post(link, content, byte[].class));
} catch (Exception e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.file.Path;
import java.util.Base64;
import java.util.Optional;
import java.util.Set;

Expand All @@ -29,6 +30,7 @@
import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.QueryExp;
import javax.management.ReflectionException;

import org.apache.commons.io.FileUtils;
Expand All @@ -39,7 +41,6 @@
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
Expand All @@ -55,7 +56,6 @@
import org.apache.geode.management.internal.cli.result.model.ResultModel;
import org.apache.geode.management.internal.cli.util.CommandStringBuilder;
import org.apache.geode.management.internal.i18n.CliStrings;
import org.apache.geode.management.internal.web.domain.QueryParameterSource;
import org.apache.geode.util.internal.GeodeConverter;

/**
Expand Down Expand Up @@ -162,11 +162,17 @@ public ResponseEntity<?> invoke(@RequestParam("resourceName") final String resou
}

@RequestMapping(method = RequestMethod.POST, value = "/mbean/query")
public ResponseEntity<?> queryNames(@RequestBody final QueryParameterSource query)
throws IOException {
public ResponseEntity<?> queryNames(@RequestParam("objectName") final String objectName,
@RequestParam(value = "queryExpression", required = false) final String queryExpressionBase64)
throws Exception {
// Exceptions are caught by the @ExceptionHandler AbstractCommandsController.handleAppException
final Set<ObjectName> objectNames =
getMBeanServer().queryNames(query.getObjectName(), query.getQueryExpression());
ObjectName name = ObjectName.getInstance(decode(objectName));
QueryExp query = null;
if (queryExpressionBase64 != null) {
query =
(QueryExp) IOUtils.deserializeObject(Base64.getDecoder().decode(queryExpressionBase64));
}
final Set<ObjectName> objectNames = getMBeanServer().queryNames(name, query);
return new ResponseEntity<>(IOUtils.serializeObject(objectNames), HttpStatus.OK);
}

Expand Down
1 change: 0 additions & 1 deletion geode-web/src/main/webapp/WEB-INF/geode-mgmt-servlet.xml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ limitations under the License.
<bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"/>
<bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter"/>
<bean class="org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter"/>
<bean class="org.apache.geode.management.internal.web.http.converter.ServerSerializableObjectHttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>

Expand Down
Loading