{"id":26538,"date":"2014-06-14T15:00:47","date_gmt":"2014-06-14T12:00:47","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=26538"},"modified":"2014-06-13T14:21:50","modified_gmt":"2014-06-13T11:21:50","slug":"apache-ant-tasks-for-jmx-access","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html","title":{"rendered":"Apache Ant tasks for JMX access"},"content":{"rendered":"<p>I wanted to invoke JMX operations from the Ant tasks. However finding usable ant tasks library as well as the usage was rather tricky. So let me share my experience to make things easier for others.<\/p>\n<h2>Ant tasks for JMX operations<\/h2>\n<p>I decided to follow <a href=\"http:\/\/tomcat.apache.org\/tomcat-8.0-doc\/monitoring.html#Manage_Tomcat_with_JMX_remote_Ant_Tasks\">Tomcat documentation<\/a> and used ant tasks distributed with tomcat.<\/p>\n<p>Just for the record the <strong>usage is not restricted to Tomcat deployed JMX mBeans<\/strong>. For me it worked for java process accessible via JConsole via Remote connection.<\/p>\n<h2>Retrieving the library<\/h2>\n<ol>\n<li>As I wanted to get the latest version I used maven central repository \u201csearch by classname\u201d feature and searched for: <code>org.apache.catalina.ant.jmx.JMXAccessorTask<\/code> (see the <a href=\"http:\/\/search.maven.org\/#search%7Cga%7C1%7Cfc:%22org.apache.catalina.ant.jmx.JMXAccessorTask%22\">query<\/a>)<\/li>\n<li>afterwards I went for the <a href=\"http:\/\/search.maven.org\/#search%7Cga%7C1%7Ca:%22tomcat-catalina-ant%22\">tomcat 8 jar file<\/a> (called <code>tomcat-catalina-ant-8.0.8.jar<\/code>)<\/li>\n<li>and just copyied the latest available to my <code>$ANT_HOME\/lib<\/code> dir.<\/li>\n<\/ol>\n<h2>Usage<\/h2>\n<p>I didn\u2019t have a chance (or motivation?) to check all the tasks available, the full list of tasks available can be seen in the zipped file: <code>org\/apache\/catalina\/ant\/jmx\/antlib.xml<\/code>, following were present for me:<\/p>\n<pre class=\" brush:xml\">&lt;typedef\r\n    name=\"open\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorTask\" \/&gt;\r\n&lt;typedef\r\n    name=\"set\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorSetTask\" \/&gt;\r\n&lt;typedef\r\n    name=\"get\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorGetTask\" \/&gt;\r\n&lt;typedef\r\n    name=\"invoke\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorInvokeTask\" \/&gt;\r\n&lt;typedef\r\n    name=\"query\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorQueryTask\" \/&gt;\r\n&lt;typedef\r\n    name=\"create\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorCreateTask\" \/&gt;\r\n&lt;typedef\r\n    name=\"unregister\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorUnregisterTask\" \/&gt;\r\n&lt;typedef\r\n    name=\"equals\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorEqualsCondition\" \/&gt;\r\n&lt;typedef\r\n    name=\"condition\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorCondition\" \/&gt;<\/pre>\n<p>out of these, I gave following a try:<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<pre class=\" brush:java\">org.apache.catalina.ant.jmx.JMXAccessorTask\r\norg.apache.catalina.ant.jmx.JMXAccessorInvokeTask\r\norg.apache.catalina.ant.jmx.JMXAccessorQueryTask<\/pre>\n<p>For the demonstration purposes I\u2019m using Glassfish 4.0.<\/p>\n<h2>Example: Listing JMX MBeans<\/h2>\n<p>Let\u2019s assume we want to retrieve the MBean by name (namely: <code>java.lang:type=Memory<\/code>). Please note username and password were not required for access (otherwise they should be specified via respective properties).<\/p>\n<p>Noteworthy here is the <code>resultproperty<\/code>, which could hold array from which we could get a name. So having in ant build script:<\/p>\n<pre class=\" brush:xml\">&lt;typedef \r\n    name=\"jmxQuery\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorQueryTask\" \/&gt;\r\n\r\n&lt;jmxQuery\r\n    host=\"localhost\"\r\n    port=\"8686\"\r\n    echo=\"true\"\r\n    name=\"java.lang:type=Memory\"\r\n    resultproperty=\"memory\" \/&gt;\r\n\r\n&lt;echo&gt;Retrieved MBeans count: ${memory.Length}&lt;\/echo&gt;\r\n&lt;echo&gt;The 1.st one has name: ${memory.0.Name}&lt;\/echo&gt;<\/pre>\n<p>results for me in following output:<\/p>\n<pre class=\" brush:java\">[jmxQuery] memory.Length=1\r\n [jmxQuery] memory.0.Name=java.lang:type=Memory\r\n     [echo] Retrieved MBeans count: 1\r\n     [echo] The 1.st one has name: java.lang:type=Memory<\/pre>\n<h2>Example: Invoking operation via JMX<\/h2>\n<p>Here is a 2 step approach required:<\/p>\n<ol>\n<li>connect to remote server via JMX and afterwards<\/li>\n<li>invoke the operation on the particular MBean.<\/li>\n<\/ol>\n<p>For demonstration purposes, let\u2019s assume we want to call garbage collection (via invoking operation: <code>gc()<\/code> on MBean named: <code>java.lang:type=Memory<\/code>)<\/p>\n<p>Sample ant build file chunk does the job (please note <code>ref<\/code> property value that has to be the same across these 2 tasks):<\/p>\n<pre class=\" brush:xml\">&lt;typedef \r\n    name=\"jmxOpen\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorTask\" \/&gt;\r\n\r\n&lt;typedef \r\n    name=\"jmxInvoke\"\r\n    classname=\"org.apache.catalina.ant.jmx.JMXAccessorInvokeTask\" \/&gt;\r\n\r\n&lt;jmxOpen\r\n    host=\"localhost\"\r\n    port=\"8686\"\r\n    ref=\"glassfish\"\r\n    failOnError=\"true\" \/&gt;\r\n\r\n&lt;jmxInvoke\r\n    name=\"java.lang:type=Memory\"\r\n    operation=\"gc\"\r\n    echo=\"true\"\r\n    delimiter=\" \"\r\n    failOnError=\"true\"\r\n    ref=\"glassfish\" \/&gt;<\/pre>\n<h2>Further information<\/h2>\n<p>For more details, I recommend reading the official <a href=\"http:\/\/tomcat.apache.org\/tomcat-8.0-doc\/monitoring.html#Manage_Tomcat_with_JMX_remote_Ant_Tasks\">Tomcat documentation<\/a> as well as <a href=\"http:\/\/tomcat.apache.org\/tomcat-8.0-doc\/monitoring.html#Manage_Tomcat_with_JMX_remote_Ant_Tasks\">Javadocs<\/a>.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"http:\/\/peter-butkovic.blogspot.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html\">Apache Ant tasks for JMX access<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/jcg\">JCG partner<\/a> Peter Butkovic at the <a href=\"http:\/\/peter-butkovic.blogspot.com\/\">pb&#8217;s blog about life and IT<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>I wanted to invoke JMX operations from the Ant tasks. However finding usable ant tasks library as well as the usage was rather tricky. So let me share my experience to make things easier for others. Ant tasks for JMX operations I decided to follow Tomcat documentation and used ant tasks distributed with tomcat. Just &hellip;<\/p>\n","protected":false},"author":543,"featured_media":49,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[483,152],"class_list":["post-26538","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-enterprise-java","tag-apache-ant","tag-jmx"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Apache Ant tasks for JMX access<\/title>\n<meta name=\"description\" content=\"I wanted to invoke JMX operations from the Ant tasks. However finding usable ant tasks library as well as the usage was rather tricky. So let me share my\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Apache Ant tasks for JMX access\" \/>\n<meta property=\"og:description\" content=\"I wanted to invoke JMX operations from the Ant tasks. However finding usable ant tasks library as well as the usage was rather tricky. So let me share my\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2014-06-14T12:00:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-ant-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Peter Butkovic\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/typek_pb\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Peter Butkovic\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html\"},\"author\":{\"name\":\"Peter Butkovic\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/a5b042684dad802f297f97bdffa56ecf\"},\"headline\":\"Apache Ant tasks for JMX access\",\"datePublished\":\"2014-06-14T12:00:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html\"},\"wordCount\":345,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-ant-logo.jpg\",\"keywords\":[\"Apache Ant\",\"JMX\"],\"articleSection\":[\"Enterprise Java\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html\",\"name\":\"Apache Ant tasks for JMX access\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-ant-logo.jpg\",\"datePublished\":\"2014-06-14T12:00:47+00:00\",\"description\":\"I wanted to invoke JMX operations from the Ant tasks. However finding usable ant tasks library as well as the usage was rather tricky. So let me share my\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-ant-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/apache-ant-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2014\\\/06\\\/apache-ant-tasks-for-jmx-access.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/java\\\/enterprise-java\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Apache Ant tasks for JMX access\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/a5b042684dad802f297f97bdffa56ecf\",\"name\":\"Peter Butkovic\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c5fa0d37f45fe416448766a394ad7e5fae4ae72cb8e3416152e6ca6c05f832f?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c5fa0d37f45fe416448766a394ad7e5fae4ae72cb8e3416152e6ca6c05f832f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0c5fa0d37f45fe416448766a394ad7e5fae4ae72cb8e3416152e6ca6c05f832f?s=96&d=mm&r=g\",\"caption\":\"Peter Butkovic\"},\"description\":\"Peter is a java developer living in the Munich area. Prototyping is for him the most favourite part of the project work (especially in the phase when nobody really knows if things are really gonna work :) He is also quite influenced by the ideas of open source software. And important things except that? Family, friends and Jesus Christ (the best Friend :)\",\"sameAs\":[\"http:\\\/\\\/peter-butkovic.blogspot.gr\\\/\",\"http:\\\/\\\/de.linkedin.com\\\/in\\\/butkovic\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/typek_pb\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/peter-butkovic\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Apache Ant tasks for JMX access","description":"I wanted to invoke JMX operations from the Ant tasks. However finding usable ant tasks library as well as the usage was rather tricky. So let me share my","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html","og_locale":"en_US","og_type":"article","og_title":"Apache Ant tasks for JMX access","og_description":"I wanted to invoke JMX operations from the Ant tasks. However finding usable ant tasks library as well as the usage was rather tricky. So let me share my","og_url":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2014-06-14T12:00:47+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-ant-logo.jpg","type":"image\/jpeg"}],"author":"Peter Butkovic","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/typek_pb","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Peter Butkovic","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html"},"author":{"name":"Peter Butkovic","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/a5b042684dad802f297f97bdffa56ecf"},"headline":"Apache Ant tasks for JMX access","datePublished":"2014-06-14T12:00:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html"},"wordCount":345,"commentCount":0,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-ant-logo.jpg","keywords":["Apache Ant","JMX"],"articleSection":["Enterprise Java"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html","url":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html","name":"Apache Ant tasks for JMX access","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-ant-logo.jpg","datePublished":"2014-06-14T12:00:47+00:00","description":"I wanted to invoke JMX operations from the Ant tasks. However finding usable ant tasks library as well as the usage was rather tricky. So let me share my","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-ant-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/apache-ant-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2014\/06\/apache-ant-tasks-for-jmx-access.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java","item":"https:\/\/www.javacodegeeks.com\/category\/java"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/www.javacodegeeks.com\/category\/java\/enterprise-java"},{"@type":"ListItem","position":4,"name":"Apache Ant tasks for JMX access"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/a5b042684dad802f297f97bdffa56ecf","name":"Peter Butkovic","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0c5fa0d37f45fe416448766a394ad7e5fae4ae72cb8e3416152e6ca6c05f832f?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0c5fa0d37f45fe416448766a394ad7e5fae4ae72cb8e3416152e6ca6c05f832f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0c5fa0d37f45fe416448766a394ad7e5fae4ae72cb8e3416152e6ca6c05f832f?s=96&d=mm&r=g","caption":"Peter Butkovic"},"description":"Peter is a java developer living in the Munich area. Prototyping is for him the most favourite part of the project work (especially in the phase when nobody really knows if things are really gonna work :) He is also quite influenced by the ideas of open source software. And important things except that? Family, friends and Jesus Christ (the best Friend :)","sameAs":["http:\/\/peter-butkovic.blogspot.gr\/","http:\/\/de.linkedin.com\/in\/butkovic","https:\/\/x.com\/https:\/\/twitter.com\/typek_pb"],"url":"https:\/\/www.javacodegeeks.com\/author\/peter-butkovic"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/26538","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/543"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=26538"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/26538\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/49"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=26538"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=26538"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=26538"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}