Jolokia

Release History

Version Date Description
1.2.3 2014-11-08 Release 1.2.3
1.2.2 2014-06-14 Release 1.2.2
1.2.1 2014-04-29 Release 1.2.1
1.2.0 2014-02-24 Release 1.2.0
1.1.5 2013-11-08 Release 1.1.5
1.1.4 2013-10-03 Release 1.1.4
1.1.3 2013-07-30 Release 1.1.3
1.1.2 2013-05-28 Release 1.1.2
1.1.1 2013-03-26 Release 1.1.1
1.1.0 2013-02-28 Release 1.1.0
1.0.6 2012-11-26 Release 1.0.6
1.0.5 2012-07-23 Release 1.0.5
1.0.4 2012-06-07 Release 1.0.4
1.0.3 2012-04-11 Release 1.0.3
1.0.2 2012-01-06 Release 1.0.2
1.0.1 2011-10-31 Release 1.0.1
1.0.0 2011-10-03 Release 1.0.0
0.95 2011-08-21 Release 0.95
0.91 2011-05-30 Release 0.91
0.90 2011-04-04 Release 0.90
0.83 2011-02-19 Release 0.83
0.82 2011-01-16 Release 0.82
0.81 2010-12-14 Release 0.81

Release 1.2.3 – 2014-11-08

Type Changes By
Fix JVM Agent and SSL client authentication does not work Fixes 166. nevenr
Add Enabling additional configuration parameters for HTTPS Fixes 167. nevenr
Add Added support for Mule ESB 3.5 Fixes 165. ogis-nakagawa
Fix Missing attributes in multi attribute read won't croak with an error anymore when "ignoreErrors" is used. Fixes 158. roland
Add Allow system property and environment expansion of the value specified with "policyLocation". Fixes 156. roland
Fix Fixed MulticastSocketListenerThread to be a daemon thread so that it doesn't prevent the shutdown of the JVM Fixes 155. roland
Fix Lookup system resources when no class loader is available (e.g. because Jolokia is on the bootstrap classpath) Fixes 154. roland

Release 1.2.2 – 2014-06-14

Type Changes By
Fix Added missing configuration options to the configuration XSD for the spring config name space. Fixes 138. roland
Fix Fixed endless loop when using debugInfo Fixes 142. roland
Add Added wildcard ("*") support for pathes in order to skip 'levels' Fixes 106. roland
Add Added possibility to add a custom authenticator for the Java client. The standard implementation uses Basic Authentication and allows also to use preemptive authentication. Fixes 141. roland
Update Updated json-simple to version 1.1.1. Although it has a bogus dependency declaration on junit, it comes with a proper OSGi Manifest. The jUnit dependency is excluded by us, so this should be safe. Fixes 137. roland

Release 1.2.1 – 2014-04-29

Type Changes By
Add Added "strict-checking" for jolokia-access.xml in the CORS section in order to enable server side origin checking, too. roland
Fix Fixed issue with JBoss 4.2.3 and JNDI lookups. Fixes 123. roland
Update Update Java client for usage with Apache Http Components >= 4.3. Please stick to Jolokia >= 1.2.0 for the Java client if you need to use Apache Http Client libraries < 4.3. These will also work with the 1.2.1 agent. Fixes 122. cymantic
Add Added a server detector for ActiveMQ. Fixes 133. roland
Fix Cleaned up warnings for multicast discovery request failures. Fixes 135. roland
Add Allow for placeholders in "discoveryAgentUrl" configuration to be filled with environment variables and system properties. Fixes 134. roland
Fix Fixed typo in Spring configuration for automatic agent startup. Fixes 132. roland

Release 1.2.0 – 2014-02-24

Type Changes By
Add Agents can be configured to answer to discovery multicast request with there URL. This features is enabled by default for the JVM agent, and must enabled for the WAR agent with a configuration option. Fixes 127. roland
Add New MBean "jolokia:type=Discovery" for sending multicast request for detecting other agents. Fixes 127. roland
Update "version" command response contains configuration information which differs from the default values. In addition "agentType", "agentDescription" and "agentId" are added as possible configuration options. roland

Release 1.1.5 – 2013-11-08

Type Changes By
Fix Fixed Glassfish detector's lazy initialization of the AMX boot system. Fixes 63. roland

Release 1.1.4 – 2013-10-03

Type Changes By
Fix Ignore Daemon Thread from Tanunki JSW when deciding whether the agent should shut down or not Fixes 116. jhermann
Fix Fixed InstanceNotFoundExceptions in case of a multiple attribute read, for the case that an MBean get deregistered between being included in the search result set and the actual query. Fixes 117. roland
Add Introduced new configuration parameter "authenticatorClass" which can be used to provide custom authenticator for JVM agent. Fixes 115. georgy
Add Introduced new configuration parameter "logHandlerClass" which can be used to specify an alternate LogHandler for the WAR and JVM agent. Also, if the JVM agent is used programmatically, a LogHandler instance can be provided during construction time. roland

Release 1.1.3 – 2013-07-30

Type Changes By
Fix Fixed issue wit the new CORS authentication in jolokia.js. roland
Add The authenticator for the JVM Agent can now be specified via the configuration in order to provide a custom authenticator which goes beyond simple BasicAuthentication. Fixes 108. roland
Add Added the possibility to provide an external HttpServer when creating the JvmAgent. roland

Release 1.1.2 – 2013-05-28

Type Changes By
Fix Conversion for TabularData optimized. If any index of an TabularData structure is not a SimpleType, then a direct serialization of the Tabular Data (i.e. an JSON Object with two entries "indexNames" and "values" is created). Otherwise, if it is the representation of an MXBean Map attribute, the map is recreated, otherwise, nested maps are used for simple acces. More on this in the reference manual. Fixes 105. roland
Fix Added extra CORS header for allowing authentication during Ajax CORS access. Fixes 104. roland
Fix Added support for non-string keys when serializing TabularData (i.e. long, int, short, byte, ObjectName). Fixes 97. roland
Fix Catch errors for registering on "start" and "stop" events for cubism. Still waiting for my pull request to be applied. roland
Fix J4pReadRequest now fetches all attributes if no attribute is given. Fixes 96. roland
Add Added converters for java.net.URL jpamador

Release 1.1.1 – 2013-03-26

Type Changes By
Fix "Expires" header contains now a valid date value, one hour less the current time. This follows almost the recommendation of RFC-2616. Fixes 71. roland
Fix Fixed assembly of distribution packages where the JMX and Spring packages were missing. Fixes 84. roland
Add JS: j4p.register() can now use a 'onlyIfModified' attribute to call the callback only if some changes has happened on the server side. This works currently only for list requests. Fixes 77. roland
Add Added the possibility to use the attributes "callback" and "config" in j4p.register() in the JS library. Fixes 78. roland
Add Added property errorValue to J4pRemoteException which contains a serialized version of the exception if the 'serializeException' processing parameter is switched on. Fixes 85. marosmars
Add If no host is given, the JVM agent will now bind to localhost. If a host of "0.0.0.0" or "*" is given, then the agent will listen on all interfaces. Fixes 86. benson-basis
Add If a port of 0 is given, then the JVM agent will select an arbitrary free port and prints out the selected port. Fixes 82. benson-basis
Add Added support for "ifModifiedSince" processing parameter. Fixes 77. roland
Fix Fixed wrong key order in path when diving into tabular data values. Fixes 83. roland
Fix Check whether the Jolokia MBeanServerHolder is registered in advance instead of relying on an InstanceNotFoundException Fixes 76. roland
Add Added BigDecimal and BigInteger converters for input parameters Fixes 79. roland

Release 1.1.0 – 2013-02-28

Type Changes By
Fix Fix a bug HistoryEntry.trim() when the list of values is empty and max duration is > 0 Fixes 67. mjr5749
Add Added enums for serialization/deserialization. It's really surprising how long this missing feature slipped without anybody missing it ;-) roland
Fix Added additional query parameters (serializeException, canonicalNaming and includeStackTrace) to the set of allowed query parameters for the Java client lib. Fixes 66. roland
Fix Fixed URI encoding for GET requests in the JavaScript client library. Fixes 64. roland
Fix Added safety net for serialization, so that OutputStreams and Writers are never obtained from get-methods if they declare a subclass as return value. It happens e.g. for Jetty 8.1 that FileResource.getOutputStream() opens a new FileOutputStream nuking the existing data. Nice side effect ;-) roland
Fix Added new global and process configuration options "includeStackTrace" (true,false,runtime) and "serializeException" (true, false) which can be used to tune the error responses. Fixes 59. roland
Fix "canonicalNaming" option can be as global agent configuration, too. Fixes 59. roland
Fix Fixed Glassfish detector which failed to boot AMX in certain circumstances. Fixes 63. roland
Add Added support for JSON-MBean. A dedicated @JsonMBean annotation can be used to export complex arguments/attributes/return values as JSON String to the Platform MBeanServer. Jolokia now offers an own MBeanServer as well for registering MBeans which won't show up in any other (exported) MBeanServer (except for the delegation of @JsonMBeans which are delegated and translated). roland
Fix Fixed issues with GET requests and MBean ObjectNames which end with a "/". Added to integration tests to deal with these issues. roland
Fix Fixed timestamp in the Java client library's response. twhite
Add New module "jolokia-spring" with Spring integration for the JVM agent has been added. It contains an own Spring configuration syntax and provides also a plugin for automatic startup the agent with default values by only declaring a dependency (works for containers which automatically lookup META-INF/spring/*.xml). Kudos to James Strachan for the initial idea. roland

Release 1.0.6 – 2012-11-26

Type Changes By
Fix Jolokia's Javascript poller fixes an register/unregister issue, where the returned handle from register() remains stable. roland
Fix Jolokia JVM agent used with startup options now initializes itself lazily in order to await all the MBeans required for a proper server detection. roland
Add One can now change the key property order for MBeans names with the query parameter "canonicalNaming" for read, list and search operations. By default this is set to "true" in which case an alphabetical ordering for the keys is used. If set to "false", then the original name as registered is used. mikael,jstrachan,roland
Add Added a method "jobs()" to the JavaScript Jolokia agent to get all handles for all currently registered jobs. roland
Fix Added GlassfishDetector to the list of detectors for the OSGi Agent. roland

Release 1.0.5 – 2012-07-23

Type Changes By
Add Added a deserialization to javax.management.ObjectName so that attributes of this type and operations taking such an argument can be properly invoked with a Jolokia request. Fixes JOL-35. matejj
Add Added Jolokia datasource for Cubism (with AMD support). roland
Add Jolokia WAR agent initialisation parameters can now be given as servlet context parameters, too. roland
Fix Fixed regular expression for detecting Oracle Glassfish server roland
Add Added specific check for 7.1.x to JBoss Handler since for 7.1 there seems to be an MBean for the version number (contrary to 7.0.x) roland

Release 1.0.4 – 2012-06-07

Type Changes By
Add Allow for custom detector options in the agent's configuration. These options can be evaluated during startup of the agent. The first (and only) option it 'bootAmx' for allowing a Glassfish detector to not boot up the AMX subsystem upon start of this agent. By default (since it is probably needed every time when Jolokia is installed), AMX is booted to provide the most userful information over JMX. roland
Add Added a page showing the Jolokia-Cubism integration including live demos. roland
Add Added a scheduler to the JavaScript client library. roland
Fix Fixed issue with HTTP method checker for policy based restrictions. roland
Fix Fixed fallback when registering ConfigMBean which didn't properly work (see pull request #42) roland

Release 1.0.3 – 2012-04-11

Type Changes By
Fix Fixed issue with Glassfish detector and Jolokia running under gcj roland
Update Added support for AMD in jolokia.js and jolokia-simple.js roland
Add The history store allows also for time based eviction (JOL-28) roland
Fix Fix for possible NPE when serializing a complex Java objects (#41) roland
Add New configuration property "httpServiceFilter" added for providing a OSGi filter expression which gets applied when selecting the HttpService to bind to. (#39) gid79
Update If registering of an ConfigMBean doesnt work because there has been already one be registered with the same name by another agent, a warning is giving out and a UUID is adde to the object name, so startup works as usual. Use either a "mbeanQualifier" or an "httpServiceFilter" in order to avoid naming collisions from the very beginning. roland
Add Added CORS support for the agents including preflight checks. The policy based restrictor allows for fine grained restriction of cross origin access with a <cors> section. Fixes JOL-27. roland
Update Added none-caching headers (cache-control: 'no-cache', pragma: 'no-cache', expires: '-1') to Jolokia's response for all requests. roland

Release 1.0.2 – 2012-01-06

Type Changes By
Update Verified that javascript client binding works with jQuery 1.7.1 roland
Update Updated Roo plugin for Roo 1.2. It won't work with older Roo versions. roland
Add Jolokia's Java client library now can request MBeans via an JSR-160 proxy. This is done either by giving a default proxy configuration to the J4pClient or by providing a proxy config to the request objects. roland
Add Added support for global and request processing parameter "mimeType" for specifying the HTTP content-type for the Jolokia response. By default this is "text/plain" (but "application/json" can be useful, too). roland
Add In case of an error, the request leading to this error is returned in the response, too. roland

Release 1.0.1 – 2011-10-31

Type Changes By
Fix Daemonized threads created by the thread pool for the JVM agent. Fixes 37. senthilnest
Add Added a CollectionConverter for deserializing collections in addition to Maps and Lists. roland
Update The JVM agent know can also take as argument a regular expression for matching a process' name in adition to a process id. roland
Fix Fixed path access which consists of a single slash (which is the same as no path at all). roland

Release 1.0.0 – 2011-10-03

Type Changes By
Add Applied patch from codewax for supporting an Equinox HTTP-Service roland
Fix Increased test coverage to 80.5%, documented public API to 100% (plus 100% rules coverage, 0% duplications, 0% package tangle index ...). See http://labs.consol.de/sonar/dashboard/index/org.jolokia:jolokia for more informations about Jolokia's code metrics. roland
Fix Fixed problem with URL encoding for GET request with the Java client library, which used to use URLEncoder.encode() and switched now to URI. See http://stackoverflow.com/questions/724043/http-url-address-encoding-in-java for details. roland
Add Added processing options for the Java client roland
Add Changed escaping scheme for GET URLs and paths so that a slash (/) can be escaped with an exclamation mark (!): / --> !/ roland
Add Multiple attibutes can be added to GET read requests as a comma separated value list within the URL. roland

Release 0.95 – 2011-08-21

Type Changes By
Add Added a dynamical attach mode for the JVM agent launcher (patch by Greg Bowyer). The agent now includes also a client for dynamically starting/stoping an agent on already running Java process. See the reference manual for more information. roland
Add Support for upstream serialization of open type, i.e. CompositeData and TabularData. This allows for easy access to MXBeans, which provide support of transparent translation between plain Java objects and collections, which follow some restrictions, to open type data. Jolokia knows how to deal with the fixed format used by this MXBean translation of Maps and transparentrly dispatch this to a JSON map. Initial patch provided by asssaf. roland

Release 0.91 – 2011-05-30

Type Changes By
Fix Fixed issue with overloaded methods where one variant takes no arguments. This no-arg variant can be specified with the signature "()" after the operation name. roland
Add Added HTTPS support for the JVM agent. In order to switch it on, the property "protocol=https" must be set and additional the properties "keystore" and "keystorePassword" for pointing to the keystore which holds the server side certificate. Client side certificate authentication is switched off currently alway. roland
Fix Fixed date handling when an MBean exports an attribute as date. It is now returned as an ISO-8601 formatted string, when used with a path "time" the epoch milliseconds are returned. Setting of date values and using dates as arguments for JMX operations is now also supported, the value can be given either in epoch milliseconds or as an ISO-86-1 formatted string. With a path "time" a given date value can be even updated for a write operation. roland
Update Reworked "list" handling. It's now much faster when used with paths since it doesn't slurp in the whole meta and truncate it afterwards but does the right thing directly to only fetch the required information. The list handler respect now a 'maxDepth' request option for truncating the data from top down. 'maxDepth' works with paths, too. Comprehensive unit tests has been added as well. roland
Add Added constructor to J4pListRequest() which takes an ObjectName as argument for fetching the meta data for a single MBean only. roland

Release 0.90 – 2011-04-04

Type Changes By
Add Added a Knopflerfish detector and tested Jolokia with Knopflerfish 3.1 roland
Fix Fixed content-type in javascript library to "text/json" for requests (was "application/x-www-form-urlencoded") roland
Update A search request will now return an empty list, not an error response with a 404 status code. A null result of a search query is considered to be a valid result, not an error condition. roland
Add Added a OSGi bundle property org.jolokia.listenForHttpService which, if set to false, prevents the automatic registration of a JolokiaServlet to an OSGi HttpService (default: true) roland
Add The activator in jolokia-osgi and jolokia-osgi-bundle can now use an OSGi restrictor service implementing org.jolokia.restrictor.Restrictor when bundle property org.jolokia.useRestrictorService is set to true. roland
Add Added a servlet init parameter "policyLocation" for specifying the location of the policy file. This can be an URL or an string with prefix "classpath:". Default: "classpath:/jolokia-access.xml" roland
Update Refactored restrictor handling and exported org.jolokia.restrictor in the OSGi bundles. JolokiaServlet can take now an Restrictor object as constructor parameter. roland
Update Lookup of policy file with the same classloader as used for loading the jolokia classes if lookup failed with context loader added. roland
Update jolokia.js: Works now with jQuery 1.5.1, too (but still doesn't use the advanced Ajax features) roland
Update jolokia.js: Added an HTTP method upgrade to "post" if a proxy target is provided. roland
Update jolokia.js: Add a trailing slash to the Jolokia URL if a "post" request is requested. roland
Update Changed protocol in order to support JSON types for return values and write/exec parameters instead of only plain strings as it was before. roland

Release 0.83 – 2011-02-19

Type Changes By
Update Reference Manual updated with sections about the OSGi agent and the new Roo addon. roland
Add Jolokia Roo addon added. roland
Add Added a Virgo detector (tested with 2.1) roland
Add Added PGP signing for the deployed artifacts roland
Add Introduced org.jolokia.osgi.servlet.JolokiaServlet which gets exported by the jolokia-osgi bundle and allows for programmatic registration of the servlet without the use of an OSGi HttpService. roland
Update Update jolokia-osgi-bundle to include Felix's HttpService implementation (since its is a bit smaller and fits better due to the packages already included). Now the bundle can be deployed without dependencies at all on Felix and Equinox. I recommend to use the 'pure' bundle and a given HttpService, though. roland
Fix Fixed problem for Jetty Detector with Jetty Version < 6.1.4 and made server detection to more conservative so that the servlet starts up nevertheless when an exception occurs during the detection phase (call in the servlet's init method). roland
Fix Fixed registering of simplifiers, which allows for simplified serialization of well known objects like java.io.File or javax.management.ObjectName roland

Release 0.82 – 2011-01-16

Type Changes By
Update The HTTP status code returned with a HTTP response does not reflect the status of the JMX operation itself. An HTTP error occurs only if an processing exception (like security constraint violations) happen on the top agent level, otherwise 200 is returned (even when an Jolokia response object contains an error). roland
Add Added a Javascript client library including about 120 unit tests and a new section in the reference manual. roland

Release 0.81 – 2010-12-14

Type Changes By
Fix Fixed MBean registration issue with Websphere AS 7.0 where MBean registration via the MBeanRegistration intefaces causes the WAS MBeanServer to raise a NPE (but register the MBean nevertheless, so no rollback here). roland
Add New request parameter "callback" allows for sending a response as JavaScript function (JSONP). For POST request this parameter must be given as URL parameter and is valid for bulk requests, too. roland
Add Security policy can now be globally restricted to a certain HTTP method. Within the <http> section of the policy file, <method> tags define the allowed methods ("get" or "post"). If this section is missing, all methods are allowed. If only one method is given, the other is forbidden. roland
Add Added an alias for MBean "jmx4perl:type=Config" to "jolokia:type=Config" for backwards compatibility with jmx4perl clients < 0.80 roland
Fix Change HttpClient to a thread safe connection manager by default, extended J4pClient construction with a builder pattern Fixes 14. roland
Add Added a server detection facility (available via the 'version' command) and made 'version' the default command if no command is given in the request URL for a GET request. roland
Add Added a "error_type" key to the Jolokia response in case of an remote exception, which will contain the Java class name of this error. Added getErrorType() to the J4pRemoteException for the Java-Client. roland