Hi folks,
Here are some new files that I'd like to offer to the Phoenix project. These files are:
JMXLauncher - JMX Mbean implementation that can be used to run phoenix inside a JMX container such as JBoss
JMXLauncherMBean - JMX Mbean interface that can be used to run phoenix inside a JMX container such as Jboss
JBossHostedSystemManager - New SystemManager that finds an existing JMX MBeanServer
Phoenix-service.xml - sample Jboss deployment config file for JMXLauncher
Some notes:
These files have been tested with Jboss 3.0.2 and Phoenix 4.0. I can sopt and start phoenix and browse the exported Mbeans. Note that no Jboss files are required to build these files.
The SystemManager works up to a point. All of the Phoenix Mbeans are exported into the Mbean server, but some of them have attributes which the Jboss HTML adaptor cannot handle, these are Kernel, Embeddor and ExtensionManager. I am using it to manage the James mail server and this works OK.
I placed the launcher files in package org.apache.avalon.phoenix.launcher. In order to keep my additions isolated, I haven't modified any existing code, but if you accept these files the launcher package is probably ripe for a bit of refactoring.
I placed the system manager in package org.apache.avalon.phoenix.components.manager. It's really really trivial.
The only logging for the JMXLauncher is to STDOUT. This is because I wanted to avoid adding log4j to Phoenix and I wanted to avoid adding Avalon jars to the Jboss deployment directories - a sure way to ClassLoader hell. I thought about making the build of JMXLauncher conditional on finding log4j.jar, but want to see what you think first.
ClassLoader: I chose to include the Phoenix 'lib' directory in the 'common' classloader used within Phoenix so as to avoid having to set the extension ClassLoader path. I'm sure this will change when the new Phoenix ClassLoader stuff becomes available.
Setup instructions (Windows based, but *nix equivalent is obvious):
Copy phoenix distribution to Jboss directory:
copy <phoenix_dist>\* <jboss>\phoenix
Copy phoenix loader to Jboss deployment dir (using Jboss 'default' server as example):
copy <jboss>\bin\phoenix-loader.jar <jboss>\server\defaultdeploy
Copy phoenix loader config file to Jboss deployment dir (using Jboss 'default' server as example):
copy <???>\phoenix-service.xml <jboss>\server\defaultdeploy
And don’t forget to copy your app to the apps directory.
I think that's everything - if I've forgotten anything just holler.
Cheers
Steve
<<JMXLauncher.java>> <<JMXLauncherMBean.java>> <<JBossHostedSystemManager.java>> <<phoenix-service.xml>>
JMXLauncher.java
Description: JMXLauncher.java
JMXLauncherMBean.java
Description: JMXLauncherMBean.java
JBossHostedSystemManager.java
Description: JBossHostedSystemManager.java
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE server>
<!-- $Id: user-service.xml,v 1.2 2002/09/16 23:14:59 steve Exp $ -->
<!-- ===================================================================== -->
<!-- -->
<!-- Phoenix Launcher Service Configuration -->
<!-- -->
<!-- ===================================================================== -->
<server>
<classpath codebase="." archives="phoenix-loader.jar"/>
<mbean code="org.apache.avalon.phoenix.launcher.JMXLauncher" name="Phoenix:service=Launcher">
<attribute name="PhoenixHome">../../phoenix/</attribute>
<attribute name="PhoenixConfigFile">../../phoenix/conf/kernel.xml</attribute>
<attribute name="AppsPath">../../phoenix/apps/</attribute>
<attribute name="LogFilename">../../phoenix/logs/phoenix.log/</attribute>
<attribute name="PhoenixDebug">false</attribute>
</mbean>
</server>
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
