importorg.apache.activemq.command.ActiveMQQueue;importorg.apache.activemq.command.ActiveMQTopic;importorg.apache.http.auth.AuthScope;importorg.apache.http.auth.UsernamePasswordCredentials;importorg.apache.http.impl.client.BasicCredentialsProvider;importorg.apache.http.impl.client.DefaultHttpClient;importorg.springframework.http.HttpEntity;importorg.springframework.http.HttpHeaders;importorg.springframework.http.HttpMethod;importorg.springframework.http.MediaType;importorg.springframework.http.ResponseEntity;importorg.springframework.http.client.ClientHttpRequestFactory;importorg.springframework.http.client.HttpComponentsClientHttpRequestFactory;importorg.springframework.web.client.RestTemplate;importjavax.jms.Destination;importjavax.jms.JMSException;importjava.util.Arrays;publicclassMessageQueueAdmin {privatestaticfinalRestTemplate restTemplate=getRestTemplate("admin","admin");privatestaticString brokerHost="172.30.43.206";privatestaticString adminConsolePort="8161";privatestaticString protocol="http";publicstaticvoidremoveDestination(Destination destination)throwsJMSException {
String destName, destType;if(destinationinstanceofActiveMQQueue) {
destName=((ActiveMQQueue) destination).getQueueName();
destType="Queue";
}else{
destName=((ActiveMQTopic) destination).getTopicName();
destType="Topic";
}//build urlsString url=String.format("%s://%s:%s/api/jolokia/exec/org.apache.activemq:"+"brokerName=localhost,type=Broker/remove%s/%s", protocol, brokerHost, adminConsolePort, destType, destName);
System.out.println(url);//do operationHttpHeaders headers=newHttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
HttpEntityentity=newHttpEntity("parameters", headers);
ResponseEntity response=restTemplate.exchange(url, HttpMethod.GET, entity, String.class);
System.out.println(response.getBody());
}publicstaticvoidmain(String[] args)throwsJMSException {
ActiveMQTopic topic=newActiveMQTopic("test-activemq-topic");
removeDestination(topic);
}privatestaticRestTemplate getRestTemplate(String user, String password) {
DefaultHttpClient httpClient=newDefaultHttpClient();
BasicCredentialsProvider credentialsProvider=newBasicCredentialsProvider();
credentialsProvider.setCredentials(AuthScope.ANY,newUsernamePasswordCredentials(user, password));
httpClient.setCredentialsProvider(credentialsProvider);
ClientHttpRequestFactory rf=newHttpComponentsClientHttpRequestFactory(httpClient);returnnewRestTemplate(rf);
}
}