Jolokia

Release History

VersionDateDescription
1.2.22014-06-14Release 1.2.2
1.2.12014-04-29Release 1.2.1
1.2.02014-02-24Release 1.2.0
1.1.52013-11-08Release 1.1.5
1.1.42013-10-03Release 1.1.4
1.1.32013-07-30Release 1.1.3
1.1.22013-05-28Release 1.1.2
1.1.12013-03-26Release 1.1.1
1.1.02013-02-28Release 1.1.0
1.0.62012-11-26Release 1.0.6
1.0.52012-07-23Release 1.0.5
1.0.42012-06-07Release 1.0.4
1.0.32012-04-11Release 1.0.3
1.0.22012-01-06Release 1.0.2
1.0.12011-10-31Release 1.0.1
1.0.02011-10-03Release 1.0.0
0.952011-08-21Release 0.95
0.912011-05-30Release 0.91
0.902011-04-04Release 0.90
0.832011-02-19Release 0.83
0.822011-01-16Release 0.82
0.812010-12-14Release 0.81

Release 1.2.2 - 2014-06-14

TypeChangesBy

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

TypeChangesBy

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

TypeChangesBy

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

TypeChangesBy

fix

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

Release 1.1.4 - 2013-10-03

TypeChangesBy

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

TypeChangesBy

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

TypeChangesBy

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.URLjpamador

Release 1.1.1 - 2013-03-26

TypeChangesBy

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

TypeChangesBy

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

TypeChangesBy

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

TypeChangesBy

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 serverroland

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

TypeChangesBy

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

TypeChangesBy

fix

Fixed issue with Glassfish detector and Jolokia running under gcjroland

update

Added support for AMD in jolokia.js and jolokia-simple.jsroland

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

TypeChangesBy

update

Verified that javascript client binding works with jQuery 1.7.1roland

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

TypeChangesBy

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

TypeChangesBy

add

Applied patch from codewax for supporting an Equinox HTTP-Serviceroland

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 clientroland

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

TypeChangesBy

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

TypeChangesBy

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

TypeChangesBy

add

Added a Knopflerfish detector and tested Jolokia with Knopflerfish 3.1roland

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

TypeChangesBy

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 artifactsroland

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.ObjectNameroland

Release 0.82 - 2011-01-16

TypeChangesBy

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

TypeChangesBy

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.80roland

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