NAME

JMX::Jmx4Perl::Agent::ArtifactHandler - Handler for extracting and manipulating Jolokia artifacts

DESCRIPTION

This module is responsible for mangaging a singe JAR or WAR Archive. It requires Archive::Zip for proper operation.

I.e. this module can

  • Extract jolokia-access.xml and web.xml from WAR/JAR archives

  • Check for the esistance of jolokia-access.xml

  • Update web.xml for WAR files

METHODS

$handler = JMX::Jmx4Perl::Agent::Jolokia::ArtifactHandler->new(...)

Create a new handler with the following options:

file => $file      : Path to archive to handle
logger => $logger  : Logger to use
meta => $meta      : Jolokia-Meta handler to extract the type of an archive
$info = $handler->info()

Extract information about an archive. Return value is a has with the following keys:

"version"      Agent's version
"type"         Agent type (war, osgi, osgi-bundle, mule, jdk6)
"artifactId"   Maven artifact id 
"groupId"      Maven group Id 
$handler->add_policy($policy)

Add or update the policy given as string to this archive. Dependening on whether it is a WAR or another agent, it is put into the proper place

For "war" agents, this is WEB-INF/classes/jolokia-access.xml, for all others it is /jolokia-access.xml

$handler->remove_policy()

Remove a policy file (no-op, when no policy is present)

$handler->has_policy()

Returns true (i.e. the path to the policy file) if a policy file is contained, undef otherwise.

$handler->get_policy()

Get the policy file as string or undef if no policy is contained.

$handler->extract_webxml()

Extract web.xml from WAR agents, for other types, a fatal error is raised. Return value is a string containing the web.xml.

$handler->update_webxml($webxml)

Update web.xml in WAR agents, for other types, a fatal error is raised. Return value is a string containing the web.xml. $webxml is the descriptor as a string.

$handler->type()

Return the agent's type, which is one of "war", "osgi", "osgi-bundle", "mule" or "jdk6"

LICENSE

This file is part of jmx4perl. Jmx4perl is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by The Free Software Foundation, either version 2 of the License, or (at your option) any later version.

jmx4perl is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with jmx4perl. If not, see <http://www.gnu.org/licenses/>.

A commercial license is available as well. Please contact roland@cpan.org for further details.

AUTHOR

roland@cpan.org